# compiler: R8
# compiler_version: 1.7.16-dev
# compiler_hash: engineering
# pg_map_id: afa5558
# 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:2:java.lang.String com.android.tools.r8.utils.AndroidApiLevel.getName():59:59 -> a
    2:2:java.lang.String makeMessage(com.android.tools.r8.utils.AndroidApiLevel,java.lang.String,java.lang.String):24 -> a
    3:7:java.lang.String makeMessage(com.android.tools.r8.utils.AndroidApiLevel,java.lang.String,java.lang.String):24:28 -> a
    8:8:java.lang.String com.android.tools.r8.utils.AndroidApiLevel.getName():59:59 -> a
    8:8:java.lang.String makeMessage(com.android.tools.r8.utils.AndroidApiLevel,java.lang.String,java.lang.String):24 -> 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:2:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):100:100 -> a
    3:8:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):112:117 -> a
    9:9:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):116:116 -> a
    10:20:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):115:125 -> a
    21:21:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):121:121 -> a
    22:22: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):99:100 -> includeClassFileOrDexEntries
    2:3:boolean includeClassFileOrDexEntries(java.lang.String):51 -> includeClassFileOrDexEntries
    1:2:boolean com.android.tools.r8.utils.ZipUtils.isDexFile(java.lang.String):99:100 -> includeDexEntries
    1:2:boolean includeDexEntries(java.lang.String):47 -> includeDexEntries
    1:7:void readArchive(com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer):92:98 -> readArchive
    8:12:void readArchive(com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer):96:100 -> readArchive
    13:22:void readArchive(com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer):92:101 -> readArchive
    23:23:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> readArchive
    23:23:void readArchive(com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer):101 -> readArchive
    24:24:void readArchive(com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer):101:101 -> readArchive
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>
    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.Reporter getReporter():162:162 -> 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 setIgnoreDexInArchive(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
    com.android.tools.r8.BaseCommand makeCommand() -> b
    1:1:void lambda$addLibraryResourceProvider$1(com.android.tools.r8.ClassFileResourceProvider):189:189 -> b
    2:6:void lambda$addLibraryFiles$2(java.util.Collection):203:207 -> b
    7:7:void error(com.android.tools.r8.origin.Origin,java.lang.Throwable):358:358 -> b
    7:7:void lambda$addLibraryFiles$2(java.util.Collection):207 -> b
    8:8:void lambda$addClasspathFile$5(java.nio.file.Path):227:227 -> b
    9:9:void lambda$addDexProgramData$8(byte[],com.android.tools.r8.origin.Origin):244:244 -> b
    10:10:void lambda$addMainDexListFiles$9(java.nio.file.Path[]):260:260 -> b
    11:11:com.android.tools.r8.utils.AndroidApp$Builder com.android.tools.r8.utils.AndroidApp$Builder.addMainDexListFiles(java.nio.file.Path[]):628:628 -> b
    11:11:void lambda$addMainDexListFiles$9(java.nio.file.Path[]):260 -> b
    12:13:void lambda$addMainDexListFiles$9(java.nio.file.Path[]):262:263 -> b
    14:14:void lambda$addMainDexListFiles$9(java.nio.file.Path[]):262:262 -> b
    15:15:void lambda$setIgnoreDexInArchive$13(boolean):350:350 -> b
    1:6:com.android.tools.r8.BaseCommand build():138:143 -> build
    com.android.tools.r8.BaseCommand$Builder self() -> c
    1:1:void lambda$addMainDexClasses$12(java.util.Collection):308:308 -> c
    void validate() -> 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
    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):71:73 -> fatalError
    2:4:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic):345 -> fatalError
    1:1:com.android.tools.r8.utils.AndroidApp$Builder getAppBuilder():152:152 -> getAppBuilder
    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 -> n
    com.android.tools.r8.utils.Reporter reporter -> i
    boolean enableDesugaring -> j
    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.CompilationMode mode -> e
    1:1:void <clinit>():29:29 -> <clinit>
    1:10:void <init>(boolean,boolean):43:52 -> <init>
    11:22: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,boolean,boolean,boolean,java.util.function.BiPredicate):66:77 -> <init>
    boolean lambda$new$0(java.lang.String,java.lang.Long) -> a
    1:1:com.android.tools.r8.utils.Reporter getReporter():133:133 -> a
    1:1:java.util.function.BiPredicate getDexClassChecksumFilter():121:121 -> getDexClassChecksumFilter
    1:1:boolean getEnableDesugaring():111:111 -> getEnableDesugaring
    1:1:boolean getIncludeClassesChecksum():116:116 -> getIncludeClassesChecksum
    1:1:com.android.tools.r8.StringConsumer getMainDexListConsumer():106:106 -> getMainDexListConsumer
    1:1:int getMinApiLevel():90:90 -> getMinApiLevel
    1:1:com.android.tools.r8.CompilationMode getMode():85:85 -> getMode
    1:1:com.android.tools.r8.ProgramConsumer getProgramConsumer():99:99 -> getProgramConsumer
    1:1:boolean isOptimizeMultidexForLinearAlloc():129:129 -> isOptimizeMultidexForLinearAlloc
com.android.tools.r8.BaseCompilerCommand$Builder -> com.android.tools.r8.BaseCompilerCommand$Builder:
    boolean includeClassesChecksum -> n
    java.util.function.BiPredicate dexClassChecksumFilter -> p
    boolean optimizeMultidexForLinearAlloc -> o
    java.nio.file.Path outputPath -> h
    int minApiLevel -> k
    com.android.tools.r8.CompilationMode mode -> j
    boolean disableDesugaring -> l
    com.android.tools.r8.StringConsumer mainDexListConsumer -> g
    com.android.tools.r8.ProgramConsumer programConsumer -> f
    com.android.tools.r8.OutputMode outputMode -> i
    boolean $assertionsDisabled -> q
    java.util.List desugaredLibraryConfigurationResources -> m
    1:1:void <clinit>():143:143 -> <clinit>
    1:1:void <init>(com.android.tools.r8.DiagnosticsHandler):169:169 -> <init>
    2:25:void <init>(com.android.tools.r8.DiagnosticsHandler):147:170 -> <init>
    26:26:void <init>(com.android.tools.r8.utils.AndroidApp):175:175 -> <init>
    27:56:void <init>(com.android.tools.r8.utils.AndroidApp):147:176 -> <init>
    57:57:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):181:181 -> <init>
    58:93:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):147:182 -> <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):348:380 -> a
    34:45:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration getDesugaredLibraryConfiguration(com.android.tools.r8.graph.DexItemFactory,boolean):450:461 -> a
    46:46:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration getDesugaredLibraryConfiguration(com.android.tools.r8.graph.DexItemFactory,boolean):454:454 -> 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):454 -> 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):454 -> a
    49:49:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration getDesugaredLibraryConfiguration(com.android.tools.r8.graph.DexItemFactory,boolean):454:454 -> a
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder addDesugaredLibraryConfiguration(java.lang.String):437:438 -> addDesugaredLibraryConfiguration
    3:5:com.android.tools.r8.BaseCompilerCommand$Builder addDesugaredLibraryConfiguration(java.lang.String):437:439 -> addDesugaredLibraryConfiguration
    6:7:com.android.tools.r8.BaseCompilerCommand$Builder addDesugaredLibraryConfiguration(com.android.tools.r8.StringResource):444:445 -> addDesugaredLibraryConfiguration
    1:1:com.android.tools.r8.BaseCompilerCommand$Builder addSpecialLibraryConfiguration(java.lang.String):431:431 -> addSpecialLibraryConfiguration
    1:29:void validate():481:509 -> d
    com.android.tools.r8.CompilationMode defaultCompilationMode() -> e
    1:1:boolean hasDesugaredLibraryConfiguration():465:465 -> f
    1:1:boolean isOptimizeMultidexForLinearAlloc():261:261 -> g
    1:1:java.util.function.BiPredicate getDexClassChecksumFilter():243:243 -> getDexClassChecksumFilter
    1:1:boolean getDisableDesugaring():426:426 -> getDisableDesugaring
    1:1:boolean getIncludeClassesChecksum():476:476 -> getIncludeClassesChecksum
    1:1:com.android.tools.r8.StringConsumer getMainDexListConsumer():236:236 -> getMainDexListConsumer
    1:1:int getMinApiLevel():385:385 -> getMinApiLevel
    1:1:com.android.tools.r8.CompilationMode getMode():189:189 -> getMode
    1:1:com.android.tools.r8.OutputMode getOutputMode():218:218 -> getOutputMode
    1:1:java.nio.file.Path getOutputPath():208:208 -> getOutputPath
    1:1:com.android.tools.r8.ProgramConsumer getProgramConsumer():229:229 -> getProgramConsumer
    1:1:boolean isMinApiLevelSet():389:389 -> isMinApiLevelSet
    1:3:com.android.tools.r8.BaseCompilerCommand$Builder setDexClassChecksumFilter(java.util.function.BiPredicate):339:341 -> setDexClassChecksumFilter
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setDisableDesugaring(boolean):420:421 -> setDisableDesugaring
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setEnableDesugaring(boolean):404:405 -> setEnableDesugaring
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setIncludeClassesChecksum(boolean):470:471 -> setIncludeClassesChecksum
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setMainDexListConsumer(com.android.tools.r8.StringConsumer):304:305 -> setMainDexListConsumer
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setMainDexListOutputPath(java.nio.file.Path):291:292 -> setMainDexListOutputPath
    1:5:com.android.tools.r8.BaseCompilerCommand$Builder setMinApiLevel(int):395:399 -> setMinApiLevel
    1:3:com.android.tools.r8.BaseCompilerCommand$Builder setMode(com.android.tools.r8.CompilationMode):196:198 -> setMode
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setOptimizeMultidexForLinearAlloc(boolean):252:253 -> setOptimizeMultidexForLinearAlloc
    1:1:com.android.tools.r8.BaseCompilerCommand$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode):319:319 -> setOutput
    2:7:com.android.tools.r8.BaseCompilerCommand$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):324:329 -> setOutput
    1:4:com.android.tools.r8.BaseCompilerCommand$Builder setProgramConsumer(com.android.tools.r8.ProgramConsumer):275:278 -> 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):355:355 -> <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):362:362 -> <init>
com.android.tools.r8.BaseCompilerCommandParser -> com.android.tools.r8.b:
    1:1:void <init>():9:9 -> <init>
    1:10:void parseMinApi(com.android.tools.r8.BaseCompilerCommand$Builder,java.lang.String,com.android.tools.r8.origin.Origin):14:23 -> a
    11:11:void parseMinApi(com.android.tools.r8.BaseCompilerCommand$Builder,java.lang.String,com.android.tools.r8.origin.Origin):16:16 -> a
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():53:53 -> emptyConsumer
com.android.tools.r8.ClassFileConsumer$ArchiveConsumer -> com.android.tools.r8.ClassFileConsumer$ArchiveConsumer:
    boolean $assertionsDisabled -> e
    com.android.tools.r8.utils.OutputBuilder outputBuilder -> c
    boolean consumeDataResources -> d
    1:1:void <clinit>():89:89 -> <clinit>
    1:1:void <init>(java.nio.file.Path):96:96 -> <init>
    2:2:void <init>(java.nio.file.Path,boolean):100:100 -> <init>
    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.ClassFileConsumer):104:104 -> <init>
    4:9:void <init>(java.nio.file.Path,com.android.tools.r8.ClassFileConsumer,boolean):108:113 -> <init>
    1:1:java.lang.String access$100(java.lang.String):90:90 -> a
    2:2:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):174:174 -> a
    1:2:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):124:125 -> accept
    3:3:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):130:130 -> accept
    4:4:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):135:135 -> accept
    1:2:java.lang.String getClassFileName(java.lang.String):150:151 -> b
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):140:141 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():119:119 -> getDataResourceConsumer
    1:1:java.nio.file.Path internalGetOutputPath():146:146 -> internalGetOutputPath
    1:18:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):157:174 -> writeResources
    19:32:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):160:173 -> writeResources
    33:48:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):159:174 -> 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):185:185 -> <init>
    2:2:void <init>(java.nio.file.Path,boolean):189:189 -> <init>
    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.ClassFileConsumer):193:193 -> <init>
    4:6:void <init>(java.nio.file.Path,com.android.tools.r8.ClassFileConsumer,boolean):198:200 -> <init>
    1:2:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):210:211 -> accept
    3:3:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):216:216 -> accept
    4:4:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):221:221 -> accept
    1:1:void finished(com.android.tools.r8.DiagnosticsHandler):226:226 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():205:205 -> getDataResourceConsumer
    1:1:java.nio.file.Path internalGetOutputPath():231:231 -> 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>():60:60 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ClassFileConsumer):64:65 -> <init>
    1:1:com.android.tools.r8.ClassFileConsumer access$000():58:58 -> a
    1:2:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):75:76 -> accept
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):82:83 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():70:70 -> getDataResourceConsumer
com.android.tools.r8.CompatDxHelper -> com.android.tools.r8.c:
    1:12:void run(com.android.tools.r8.D8Command,java.lang.Boolean):13:24 -> a
    13:13:void ignoreDexInArchive(com.android.tools.r8.BaseCommand$Builder):28:28 -> 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):82:84 -> a
    4:15:void run(java.lang.String[]):107:118 -> a
    4:15:void lambda$main$2(java.lang.String[]):131 -> a
    16:16:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):187:187 -> a
    17:17:void lambda$run$4(java.lang.String):197:197 -> a
    18: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):244:246 -> 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):362:362 -> 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):246 -> a
    22:26: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):247:251 -> a
    1:1:void lambda$run$1(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):102:102 -> b
    1:3:void lambda$runForTesting$3(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):141:143 -> c
    1:27:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):150:176 -> d
    28:28: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):358:358 -> d
    28:28:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):176 -> d
    29:39:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):177:187 -> d
    40:44:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):183:187 -> d
    45:83:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):181:219 -> d
    84:84:com.android.tools.r8.dex.ClassesChecksum com.android.tools.r8.graph.DexApplication.getChecksums():112:112 -> d
    84:84:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):220 -> d
    85:96:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):221:232 -> d
    97:102:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):227:232 -> d
    1:5:void main(java.lang.String[]):127:131 -> main
    1:5:void run(com.android.tools.r8.D8Command):75:79 -> 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):78 -> run
    7:10:void run(com.android.tools.r8.D8Command,java.util.concurrent.ExecutorService):97:100 -> 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):99 -> run
    1:2:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):136:137 -> runForTesting
    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 -> runForTesting
    3:3:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):137 -> runForTesting
com.android.tools.r8.D8Command -> com.android.tools.r8.D8Command:
    com.android.tools.r8.graph.DexItemFactory factory -> s
    boolean intermediate -> o
    com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration libraryConfiguration -> r
    boolean $assertionsDisabled -> u
    com.android.tools.r8.DesugarGraphConsumer desugarGraphConsumer -> p
    com.android.tools.r8.StringConsumer desugaredLibraryKeepRuleConsumer -> q
    java.lang.String USAGE_MESSAGE -> t
    1:194:void <clinit>():32:225 -> <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,boolean,boolean,boolean,boolean,java.util.function.BiPredicate,com.android.tools.r8.DesugarGraphConsumer,com.android.tools.r8.StringConsumer,com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.D8Command$1):33:33 -> <init>
    2:2:void <init>(boolean,boolean,com.android.tools.r8.D8Command$1):33:33 -> <init>
    3:18: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,boolean,boolean,boolean,boolean,java.util.function.BiPredicate,com.android.tools.r8.DesugarGraphConsumer,com.android.tools.r8.StringConsumer,com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration,com.android.tools.r8.graph.DexItemFactory):289:304 -> <init>
    19:24:void <init>(boolean,boolean):308:313 -> <init>
    1:1:com.android.tools.r8.D8Command$Builder builder():234:234 -> builder
    2:2:com.android.tools.r8.D8Command$Builder builder(com.android.tools.r8.DiagnosticsHandler):238:238 -> builder
    3:3:com.android.tools.r8.D8Command$Builder builder(com.android.tools.r8.utils.AndroidApp):243:243 -> builder
    1:41:com.android.tools.r8.utils.InternalOptions getInternalOptions():318:358 -> getInternalOptions
    1:1:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):256:256 -> parse
    2:2:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):270:270 -> 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 -> s
    boolean intermediate -> r
    com.android.tools.r8.StringConsumer desugaredLibraryKeepRuleConsumer -> t
    1:1:void <init>(com.android.tools.r8.D8Command$1):65:65 -> <init>
    2:2:void <init>(com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.D8Command$1):65:65 -> <init>
    3:3:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.D8Command$1):65:65 -> <init>
    4:4:void <init>():72:72 -> <init>
    5:5:void <init>(com.android.tools.r8.DiagnosticsHandler):76:76 -> <init>
    6:8:void <init>(com.android.tools.r8.DiagnosticsHandler):67:69 -> <init>
    9:9:void <init>(com.android.tools.r8.utils.AndroidApp):80:80 -> <init>
    10:12:void <init>(com.android.tools.r8.utils.AndroidApp):67:69 -> <init>
    1:1:void lambda$addDexProgramData$0(byte[],com.android.tools.r8.origin.Origin):88:88 -> a
    1:1:com.android.tools.r8.BaseCommand$Builder addClasspathFiles(java.util.Collection):64:64 -> addClasspathFiles
    2:2:com.android.tools.r8.BaseCommand$Builder addClasspathFiles(java.nio.file.Path[]):64:64 -> addClasspathFiles
    3:3:com.android.tools.r8.D8Command$Builder addClasspathFiles(java.nio.file.Path[]):97:97 -> addClasspathFiles
    4:4:com.android.tools.r8.D8Command$Builder addClasspathFiles(java.util.Collection):105:105 -> addClasspathFiles
    1:1:com.android.tools.r8.BaseCommand$Builder addClasspathResourceProvider(com.android.tools.r8.ClassFileResourceProvider):64:64 -> addClasspathResourceProvider
    2:2:com.android.tools.r8.D8Command$Builder addClasspathResourceProvider(com.android.tools.r8.ClassFileResourceProvider):113:113 -> addClasspathResourceProvider
    1:1:com.android.tools.r8.BaseCommand$Builder addDexProgramData(byte[],com.android.tools.r8.origin.Origin):64:64 -> addDexProgramData
    2:2:com.android.tools.r8.D8Command$Builder addDexProgramData(byte[],com.android.tools.r8.origin.Origin):88:88 -> addDexProgramData
    1:1:com.android.tools.r8.BaseCommand makeCommand():64:64 -> b
    2:24:com.android.tools.r8.D8Command makeCommand():196:218 -> b
    25:25:com.android.tools.r8.D8Command makeCommand():197:197 -> b
    com.android.tools.r8.BaseCommand$Builder self() -> c
    1:19:void validate():166:184 -> d
    20:29:void validate():182:191 -> d
    1:1:com.android.tools.r8.CompilationMode defaultCompilationMode():161:161 -> e
    1:1:com.android.tools.r8.DesugarGraphConsumer getDesugarGraphConsumer():141:141 -> getDesugarGraphConsumer
    1:1:com.android.tools.r8.D8Command$Builder setDesugarGraphConsumer(com.android.tools.r8.DesugarGraphConsumer):150:150 -> setDesugarGraphConsumer
    1:1:com.android.tools.r8.D8Command$Builder setDesugaredLibraryKeepRuleConsumer(com.android.tools.r8.StringConsumer):133:133 -> setDesugaredLibraryKeepRuleConsumer
    1:1:com.android.tools.r8.D8Command$Builder setIntermediate(boolean):122:122 -> setIntermediate
com.android.tools.r8.D8Command$DefaultD8DiagnosticsHandler -> com.android.tools.r8.D8Command$b:
    1:1:void <init>():42:42 -> <init>
    2:2:void <init>(com.android.tools.r8.D8Command$1):42:42 -> <init>
    1:6:void error(com.android.tools.r8.Diagnostic):46:51 -> error
    7:13:void error(com.android.tools.r8.Diagnostic):49:55 -> error
com.android.tools.r8.D8CommandParser -> com.android.tools.r8.D8CommandParser:
    java.util.Set OPTIONS_WITH_PARAMETER -> a
    java.lang.String USAGE_MESSAGE -> b
    1:96:void <clinit>():26:121 -> <clinit>
    97:97:void <clinit>():110:110 -> <clinit>
    98:98:void <clinit>():108:108 -> <clinit>
    1:1:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):143:143 -> a
    2:2:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):157:157 -> 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):166:206 -> 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):204:216 -> a
    57:60:boolean isArchive(java.nio.file.Path):40:43 -> 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):219 -> 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):220:223 -> 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):222:225 -> a
    69:105:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):217:253 -> a
    106:106:boolean com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder.isEmpty():63:63 -> a
    106:106:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):256 -> a
    107:118:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):257:268 -> a
com.android.tools.r8.D8CommandParser$1 -> com.android.tools.r8.D8CommandParser$a:
com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider -> com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider:
    java.util.Set descriptors -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.D8CommandParser$1):46:46 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList):70:70 -> <init>
    3:8:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList):68:73 -> <init>
    1:1:void lambda$new$0(com.android.tools.r8.ClassFileResourceProvider):73:73 -> a
    1:1:com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder builder():77:77 -> builder
    1:1:java.util.Set getClassDescriptors():82:82 -> getClassDescriptors
    1:3:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):89:91 -> getProgramResource
com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder -> com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder:
    boolean empty -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList$Builder builder -> a
    1:4:void <init>():47:50 -> <init>
    1:2:com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder addClassFileResourceProvider(com.android.tools.r8.ClassFileResourceProvider):57:58 -> addClassFileResourceProvider
    1:1:com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider build():53:53 -> build
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.d:
    java.util.Map inputOrdering -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():28:28 -> <clinit>
    1:2:void <init>(java.util.Map):32:33 -> <init>
    1:2:void run(com.android.tools.r8.D8Command,java.lang.Boolean,java.util.Map):62:63 -> 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):63 -> a
    4:4:void lambda$run$0(com.android.tools.r8.D8Command,com.android.tools.r8.utils.InternalOptions,java.lang.Boolean,java.util.Map):65:65 -> a
    5:46:void runInternal(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.lang.Boolean,java.util.Map):74: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():667:667 -> a
    56:56:com.android.tools.r8.graph.DexProgramClass keepFirstProgramClassConflictResolver(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):38 -> a
    57:57:com.android.tools.r8.graph.DexProgramClass keepFirstProgramClassConflictResolver(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):38:38 -> a
    58:58:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():667:667 -> a
    58:58:com.android.tools.r8.graph.DexProgramClass keepFirstProgramClassConflictResolver(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):39 -> a
    59:76:com.android.tools.r8.graph.DexProgramClass keepFirstProgramClassConflictResolver(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):39:56 -> a
    77:88:com.android.tools.r8.graph.DexProgramClass keepFirstProgramClassConflictResolver(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):43:54 -> 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:7:void deleteClassesDexFiles(java.nio.file.Path):280:286 -> a
    8:14:void deleteClassesDexFiles(java.nio.file.Path):280: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>():37:37 -> <clinit>
    1:1:void <init>():38:38 -> <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):47:47 -> a
    2:3:java.util.Map getDistribution(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.FeatureClassMapping,com.android.tools.r8.naming.ClassNameMapper):127:128 -> a
    4:4:java.lang.String com.android.tools.r8.graph.DexProgramClass.toString():209:209 -> a
    4:4:java.util.Map getDistribution(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.FeatureClassMapping,com.android.tools.r8.naming.ClassNameMapper):130 -> a
    5:5:java.util.Map getDistribution(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.FeatureClassMapping,com.android.tools.r8.naming.ClassNameMapper):130:130 -> a
    6:6:java.lang.String com.android.tools.r8.graph.DexProgramClass.toString():209:209 -> a
    6:6:java.util.Map getDistribution(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.FeatureClassMapping,com.android.tools.r8.naming.ClassNameMapper):130 -> a
    7:17:java.util.Map getDistribution(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.FeatureClassMapping,com.android.tools.r8.naming.ClassNameMapper):131:141 -> a
    1:4:void run(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String):43:46 -> run
    5:9:void run(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String):45:49 -> run
    10:70:void run(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String,java.util.concurrent.ExecutorService):60:120 -> run
    71:73: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
    74:78: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.e:
    1:18:void disassemble(com.android.tools.r8.Disassemble$DisassembleCommand):219:236 -> a
com.android.tools.r8.Disassemble$1 -> com.android.tools.r8.e$a:
com.android.tools.r8.Disassemble$DisassembleCommand -> com.android.tools.r8.e$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:2:java.nio.file.Path getOutputPath():183:183 -> a
    1:1:boolean access$300(com.android.tools.r8.Disassemble$DisassembleCommand):26:26 -> b
    2:2:boolean useIr():191:191 -> b
    1:1:com.android.tools.r8.Disassemble$DisassembleCommand$Builder builder():107:107 -> builder
    1:1:boolean useSmali():187:187 -> c
    1:2:com.android.tools.r8.utils.InternalOptions getInternalOptions():196:197 -> getInternalOptions
com.android.tools.r8.Disassemble$DisassembleCommand$Builder -> com.android.tools.r8.e$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 -> a
    1:1:com.android.tools.r8.Disassemble$DisassembleCommand$Builder setProguardMapFile(java.nio.file.Path):45:45 -> b
    2:2:com.android.tools.r8.Disassemble$DisassembleCommand$Builder setUseSmali(boolean):64:64 -> b
    3:7:com.android.tools.r8.Disassemble$DisassembleCommand makeCommand():76:80 -> b
    3:7:com.android.tools.r8.BaseCommand makeCommand():31 -> b
    8:8:java.nio.file.Path getOutputPath():50:50 -> b
    8:8:com.android.tools.r8.Disassemble$DisassembleCommand makeCommand():81 -> b
    8:8:com.android.tools.r8.BaseCommand makeCommand():31 -> b
    9:9:com.android.tools.r8.Disassemble$DisassembleCommand makeCommand():82:82 -> b
    9:9:com.android.tools.r8.BaseCommand makeCommand():31 -> b
    10:10:com.android.tools.r8.Disassemble$DisassembleCommand makeCommand():77:77 -> b
    10:10:com.android.tools.r8.BaseCommand makeCommand():31 -> b
    com.android.tools.r8.BaseCommand$Builder self() -> c
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:57:void main(java.lang.String[]):127:128 -> main
    58:101:void main(java.lang.String[]):127: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.g:
    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.f:
com.android.tools.r8.ExtractMarkerCommand$Builder -> com.android.tools.r8.g$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.h:
    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>():59:59 -> <clinit>
    1:1:void <init>(java.lang.String,java.lang.String):72:72 -> <init>
    2:22:void <init>(java.lang.String,java.lang.String):63:83 -> <init>
    23:35:void <init>(java.lang.String,java.lang.String):80:92 -> <init>
    36:42:void <init>(java.lang.String,java.lang.String):91:97 -> <init>
    43:45:void <init>(java.lang.String,java.lang.String):96:98 -> <init>
    1:3:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration readDesugaredLibraryConfiguration(java.lang.String):109:111 -> a
    4:4:com.android.tools.r8.GenerateLintFiles$SupportedMethods collectSupportedMethods(com.android.tools.r8.utils.AndroidApiLevel,java.util.function.Predicate):197:197 -> a
    5:6:java.nio.file.Path getAndroidJarPath(com.android.tools.r8.utils.AndroidApiLevel):103:104 -> a
    5:6:com.android.tools.r8.GenerateLintFiles$SupportedMethods collectSupportedMethods(com.android.tools.r8.utils.AndroidApiLevel,java.util.function.Predicate):197 -> a
    7:64:com.android.tools.r8.GenerateLintFiles$SupportedMethods collectSupportedMethods(com.android.tools.r8.utils.AndroidApiLevel,java.util.function.Predicate):197:254 -> a
    65:65:java.util.List lambda$collectSupportedMethods$0(com.android.tools.r8.graph.DexClass):212:212 -> a
    66:69:java.nio.file.Path lintFile(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel,java.lang.String):265:268 -> a
    70:70:java.lang.String lintBaseFileName(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel):259:259 -> a
    70:70:java.nio.file.Path lintFile(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel,java.lang.String):271 -> a
    71:71:java.nio.file.Path lintFile(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel,java.lang.String):271:271 -> a
    72:72:java.nio.file.Path lintFile(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel,java.lang.String):268:268 -> a
    73:99:void writeLintFiles(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.GenerateLintFiles$SupportedMethods):281:307 -> a
    100:119:void writeLintFiles(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.GenerateLintFiles$SupportedMethods):306:325 -> a
    120:124: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):286:290 -> a
    125:125:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    125:125: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):294 -> a
    126:126: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):294:294 -> a
    127:127: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):290:290 -> a
    128:128:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    128:128: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):294 -> a
    129:129: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):297:297 -> a
    130:140:void addMethodsToHeaderJar(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):127:137 -> a
    130:140: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):300 -> a
    141:148:com.android.tools.r8.graph.CfCode buildEmptyThrowingCfCode(com.android.tools.r8.graph.DexMethod):115:122 -> a
    141:148:void addMethodsToHeaderJar(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):137 -> a
    141:148: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):300 -> a
    149:181:void addMethodsToHeaderJar(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):139:171 -> a
    149:181: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):300 -> a
    182:182:void addMethodsToHeaderJar(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):158:158 -> a
    182:182: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):300 -> a
    183:196:void generateLintFiles(com.android.tools.r8.utils.AndroidApiLevel,java.util.function.Predicate,java.util.function.BiPredicate):333:346 -> a
    197:197:boolean lambda$generateLintFiles$4(java.util.function.BiPredicate,com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.graph.DexEncodedMethod):343:343 -> a
    198:203:void run():351:356 -> a
    204:204:void run():355:355 -> a
    205:205:boolean lambda$run$5(com.android.tools.r8.utils.AndroidApiLevel):357:357 -> a
    206:211:boolean lambda$run$6(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.graph.DexEncodedMethod):359:364 -> a
    212:216:void main(java.lang.String[]):370:374 -> a
    1:1:java.util.List lambda$collectSupportedMethods$1(com.android.tools.r8.graph.DexClass):234:234 -> b
    1:1:java.util.List lambda$collectSupportedMethods$2(com.android.tools.r8.graph.DexClass):248:248 -> c
com.android.tools.r8.GenerateLintFiles$SupportedMethods -> com.android.tools.r8.h$a:
    java.util.Map supportedMethods -> b
    java.util.Set classesWithAllMethodsSupported -> a
    1:3:void <init>(java.util.Set,java.util.Map):185:187 -> <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:58:java.util.List run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):49:106 -> a
    59:59:java.lang.String lambda$run$0(com.android.tools.r8.graph.DexType):72:72 -> a
    60:64:java.lang.Iterable lambda$run$2(com.android.tools.r8.shaking.MainDexClasses,com.android.tools.r8.graph.AppView):84:88 -> a
    65:67: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):154:156 -> a
    68:68:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    68:68:void lambda$run$1(com.android.tools.r8.graph.AppView,java.util.ArrayList,com.android.tools.r8.graph.DexType):90 -> a
    69:70:void lambda$run$1(com.android.tools.r8.graph.AppView,java.util.ArrayList,com.android.tools.r8.graph.DexType):91:92 -> a
    1:13:void main(java.lang.String[]):163:175 -> main
    1:5:java.util.List run(com.android.tools.r8.GenerateMainDexListCommand):124:128 -> run
    6:10:java.util.List run(com.android.tools.r8.GenerateMainDexListCommand,java.util.concurrent.ExecutorService):147:151 -> 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):150 -> run
    12:12:java.util.List run(com.android.tools.r8.GenerateMainDexListCommand,java.util.concurrent.ExecutorService):159:159 -> 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:1:com.android.tools.r8.utils.Reporter getReporter():169:169 -> a
    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:8:com.android.tools.r8.utils.InternalOptions getInternalOptions():225:232 -> getInternalOptions
    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$0(java.nio.file.Path[]):60:61 -> a
    3:4:void lambda$addMainDexRulesFiles$1(java.util.List):72:73 -> a
    5:6:void lambda$addMainDexRules$2(java.util.List,com.android.tools.r8.origin.Origin):83:84 -> a
    7:7: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:21:com.android.tools.r8.GenerateMainDexListCommand makeCommand():107:127 -> b
    1:21:com.android.tools.r8.BaseCommand makeCommand():34 -> b
    22:22:com.android.tools.r8.GenerateMainDexListCommand makeCommand():108:108 -> b
    22:22:com.android.tools.r8.BaseCommand makeCommand():34 -> b
    com.android.tools.r8.BaseCommand$Builder self() -> c
    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.GeneratedOutlineSupport -> com.android.tools.r8.i:
    long outline0(long,long,long) -> a
    com.android.tools.r8.ir.code.BasicBlock outline1(com.android.tools.r8.ir.code.BasicBlock) -> a
    java.lang.String outline10(java.lang.StringBuilder,java.lang.String,java.lang.String) -> a
    java.lang.StringBuilder outline11(java.lang.String) -> a
    java.lang.StringBuilder outline12(java.lang.String,int,java.lang.String) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type outline2(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type) -> a
    java.lang.String outline3(com.android.tools.r8.graph.DexMethod,java.lang.StringBuilder,java.lang.String) -> a
    java.lang.String outline4(com.android.tools.r8.graph.DexType,java.lang.StringBuilder,java.lang.String) -> a
    java.lang.String outline5(java.lang.String,int) -> a
    java.lang.String outline6(java.lang.String,int,int) -> a
    java.lang.String outline8(java.lang.String,java.lang.String) -> a
    java.lang.String outline9(java.lang.StringBuilder,int,java.lang.String) -> a
    java.lang.String outline7(java.lang.String,int,java.lang.String) -> b
com.android.tools.r8.L8 -> com.android.tools.r8.L8:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():33:33 -> <clinit>
    1:1:void <init>():34:34 -> <init>
    1:1: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):87:87 -> a
    2:2:void com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):50:50 -> a
    2:2: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):87 -> a
    3: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):93:100 -> a
    11:38:void desugar(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):106:133 -> a
    11:38:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):90 -> a
    39:39:com.android.tools.r8.ClassFileConsumer com.android.tools.r8.utils.InternalOptions.getClassFileConsumer():347:347 -> a
    39:39:void desugar(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):135 -> a
    39:39:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):90 -> a
    40:48:void desugar(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):135:143 -> a
    40:48:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):90 -> a
    49:54:void desugar(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):138:143 -> a
    49:54:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):90 -> a
    1:5:void run(com.android.tools.r8.L8Command):43:47 -> run
    6:6:void run(com.android.tools.r8.L8Command):42:42 -> run
    7:11:void run(com.android.tools.r8.L8Command,java.util.concurrent.ExecutorService):59:63 -> run
    12:12:void run(com.android.tools.r8.L8Command,java.util.concurrent.ExecutorService):58:58 -> run
    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):74:75 -> runForTesting
com.android.tools.r8.L8Command -> com.android.tools.r8.L8Command:
    com.android.tools.r8.graph.DexItemFactory factory -> r
    com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration libraryConfiguration -> q
    com.android.tools.r8.R8Command r8Command -> p
    com.android.tools.r8.D8Command d8Command -> o
    boolean $assertionsDisabled -> s
    1:1:void <clinit>():23:23 -> <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,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.L8Command$1):24:24 -> <init>
    2:2:void <init>(boolean,boolean,com.android.tools.r8.L8Command$1):24:24 -> <init>
    3:17: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,com.android.tools.r8.graph.DexItemFactory):54:68 -> <init>
    18:22:void <init>(boolean,boolean):72:76 -> <init>
    boolean lambda$new$0(java.lang.String,java.lang.Long) -> a
    1:1:com.android.tools.r8.L8Command$Builder builder():96:96 -> builder
    2:2:com.android.tools.r8.L8Command$Builder builder(com.android.tools.r8.DiagnosticsHandler):100:100 -> builder
    1:1:com.android.tools.r8.D8Command getD8Command():36:36 -> getD8Command
    1:37:com.android.tools.r8.utils.InternalOptions getInternalOptions():105:141 -> getInternalOptions
    1:1:com.android.tools.r8.R8Command getR8Command():40:40 -> getR8Command
    1:1:boolean isShrinking():32:32 -> isShrinking
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 proguardConfigStrings -> r
    java.util.List proguardConfigFiles -> s
    1:1:void <init>(com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.L8Command$1):152:152 -> <init>
    2:2:void <init>(com.android.tools.r8.L8Command$1):152:152 -> <init>
    3:3:void <init>():158:158 -> <init>
    4:4:void <init>(com.android.tools.r8.DiagnosticsHandler):162:162 -> <init>
    5:6:void <init>(com.android.tools.r8.DiagnosticsHandler):154:155 -> <init>
    1:1:com.android.tools.r8.L8Command$Builder addProguardConfiguration(java.util.List,com.android.tools.r8.origin.Origin):194:194 -> addProguardConfiguration
    1:1:com.android.tools.r8.L8Command$Builder addProguardConfigurationFiles(java.nio.file.Path[]):182:182 -> addProguardConfigurationFiles
    2:2:com.android.tools.r8.L8Command$Builder addProguardConfigurationFiles(java.util.List):188:188 -> addProguardConfigurationFiles
    1:5:com.android.tools.r8.L8Command makeCommand():220:224 -> b
    1:5:com.android.tools.r8.BaseCommand makeCommand():151 -> b
    6:6:com.android.tools.r8.CompilationMode defaultCompilationMode():177:177 -> b
    6:6:com.android.tools.r8.L8Command makeCommand():225 -> b
    6:6:com.android.tools.r8.BaseCommand makeCommand():151 -> b
    7:63:com.android.tools.r8.L8Command makeCommand():225:281 -> b
    7:63:com.android.tools.r8.BaseCommand makeCommand():151 -> b
    64:64:com.android.tools.r8.L8Command makeCommand():221:221 -> b
    64:64:com.android.tools.r8.BaseCommand makeCommand():151 -> b
    com.android.tools.r8.BaseCommand$Builder self() -> c
    1:16:void validate():200:215 -> d
    1:1:com.android.tools.r8.CompilationMode defaultCompilationMode():177:177 -> e
    1:1:boolean isShrinking():167:167 -> isShrinking
com.android.tools.r8.L8Command$DefaultL8DiagnosticsHandler -> com.android.tools.r8.L8Command$b:
    1:1:void <init>():79:79 -> <init>
    1:5:void error(com.android.tools.r8.Diagnostic):83:87 -> error
    6:12:void error(com.android.tools.r8.Diagnostic):85:91 -> error
com.android.tools.r8.L8Command$DesugaredLibrary -> com.android.tools.r8.L8Command$c:
    java.util.List resources -> a
    1:3:void <init>():287:289 -> <init>
    1:3:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):295:297 -> accept
    4:4:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):296:296 -> accept
    5:5:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):295:295 -> accept
    1:1:java.util.Collection getProgramResources():302:302 -> getProgramResources
com.android.tools.r8.OptionalBool -> com.android.tools.r8.m:
    com.android.tools.r8.OptionalBool TRUE -> a
    com.android.tools.r8.OptionalBool FALSE -> b
    com.android.tools.r8.OptionalBool UNKNOWN -> c
    1:27:void <clinit>():9:35 -> <clinit>
    1:1:void <init>(com.android.tools.r8.OptionalBool$1):7:7 -> <init>
    2:2:void <init>():56:56 -> <init>
    boolean isFalse() -> a
    1:1:com.android.tools.r8.OptionalBool of(boolean):49:49 -> a
    1:1:boolean isPossiblyTrue():71:71 -> b
    boolean isTrue() -> c
    boolean isUnknown() -> d
    1:1:com.android.tools.r8.OptionalBool unknown():53:53 -> e
com.android.tools.r8.OptionalBool$1 -> com.android.tools.r8.j:
    1:1:void <init>():10:10 -> <init>
    boolean isTrue() -> c
com.android.tools.r8.OptionalBool$2 -> com.android.tools.r8.k:
    1:1:void <init>():23:23 -> <init>
    boolean isFalse() -> a
com.android.tools.r8.OptionalBool$3 -> com.android.tools.r8.l:
    1:1:void <init>():36:36 -> <init>
    boolean isUnknown() -> d
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>():134:134 -> <clinit>
    1:7:void <init>(com.android.tools.r8.utils.InternalOptions):140:146 -> <init>
    1:1:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    1:1:void lambda$run$4(com.android.tools.r8.graph.AppView,java.util.ArrayList,com.android.tools.r8.graph.DexType):586 -> a
    2:3:void lambda$run$4(com.android.tools.r8.graph.AppView,java.util.ArrayList,com.android.tools.r8.graph.DexType):587:588 -> a
    4:4:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):179:179 -> a
    5:6:java.util.Set filterMissingClasses(java.util.Set,com.android.tools.r8.shaking.ProguardClassFilter):218:219 -> a
    7:33:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):243:269 -> a
    34:64:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):268:298 -> a
    65:69:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):297:301 -> a
    70:70:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):300:300 -> a
    71:82:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):299:310 -> a
    83:85:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):309:311 -> a
    86:102:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):305:321 -> a
    103:112:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):319:328 -> a
    113:113:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):326:326 -> a
    114:132:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):325:343 -> a
    133:154:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):342:363 -> a
    155:155:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):360:360 -> a
    156:207:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):356:407 -> a
    208:230:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):406:428 -> a
    231:255:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):425:449 -> a
    256:275:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):446:465 -> a
    276:290:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):462:476 -> a
    291:300:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):473:482 -> a
    301:313:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):479:491 -> a
    314:322:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):489:497 -> a
    323:373:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):494:544 -> a
    374:378:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):540:544 -> a
    379:463:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):538:622 -> a
    464:464:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):620:620 -> a
    465:494:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):619:648 -> a
    495:495:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):645:645 -> a
    496:509:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):642:655 -> a
    510:514:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):654:658 -> a
    515:570:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):657:712 -> a
    571:665:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):711:805 -> a
    666:695:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):750:779 -> a
    696:696:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):775:775 -> a
    697:717:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):773:793 -> a
    718:735:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):788:805 -> a
    736:736:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):678:678 -> a
    737:737:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):523:523 -> a
    738:1168:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):375:805 -> a
    1169:1170:void lambda$run$2(com.android.tools.r8.graph.DexType):273:274 -> a
    1171:1171:void lambda$run$2(com.android.tools.r8.graph.DexType):273:273 -> a
    1172:1176:java.lang.Iterable lambda$run$5(com.android.tools.r8.shaking.MainDexClasses,com.android.tools.r8.graph.AppView):580:584 -> a
    1177:1177:java.lang.Iterable lambda$run$6(com.android.tools.r8.graph.AppView):659:659 -> a
    1178:1178:void lambda$run$7(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteShrinker):690:690 -> a
    1179:1179:void lambda$run$8(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):698:698 -> a
    1180:1180:void lambda$run$9(java.lang.String):744:744 -> a
    1181:1181:void lambda$run$10(com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder,com.android.tools.r8.graph.DexEncodedMethod):755:755 -> a
    1182:1182:boolean lambda$run$11(com.android.tools.r8.graph.DexProgramClass):767:767 -> a
    1183:1185: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):822:824 -> a
    1186:1208: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):823:845 -> a
    1209:1220: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):843:854 -> a
    1221:1226: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):853:858 -> a
    1227:1232: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):856:861 -> a
    1233:1233:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    1233:1233: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):861 -> a
    1234:1234:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    1234:1234:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    1234:1234: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):861 -> a
    1235:1235: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):861:861 -> a
    1236:1239:void computeKotlinInfoForProgramClasses(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView):865:868 -> a
    1240:1240:void lambda$run$12(com.android.tools.r8.R8Command,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):887:887 -> a
    1241:1241:void lambda$main$13(java.lang.String[]):903:903 -> 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):230:232 -> b
    4:5:void run(java.lang.String[]):873:874 -> b
    6:6:void com.android.tools.r8.utils.SelfRetraceTest.test():25:25 -> b
    6:6:void run(java.lang.String[]):875 -> b
    7:7:void run(java.lang.String[]):876:876 -> 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[]):875 -> b
    9:16:void run(java.lang.String[]):879:886 -> 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[]):886 -> b
    18:18:void run(java.lang.String[]):889:889 -> b
    1:1:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):239:239 -> c
    1:5:void main(java.lang.String[]):899:903 -> main
    1:3:void run(com.android.tools.r8.R8Command):158:160 -> run
    4:7:void run(com.android.tools.r8.R8Command,java.util.concurrent.ExecutorService):174:177 -> 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):176 -> run
    1:2:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):225:226 -> runForTesting
    3:3:void com.android.tools.r8.utils.ExceptionUtils.withR8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):55:55 -> runForTesting
    3:3:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):226 -> runForTesting
    1:2: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):193:194 -> writeApplication
    3:3:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> writeApplication
    3: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):195 -> writeApplication
    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):196:196 -> writeApplication
    5:5:com.android.tools.r8.ClassFileConsumer com.android.tools.r8.utils.InternalOptions.getClassFileConsumer():347:347 -> writeApplication
    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):198 -> writeApplication
    6: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):198:212 -> writeApplication
com.android.tools.r8.R8Command -> com.android.tools.r8.R8Command:
    java.util.List mainDexKeepRules -> o
    com.android.tools.r8.StringConsumer proguardSeedsConsumer -> w
    com.android.tools.r8.StringConsumer proguardConfigurationConsumer -> x
    com.android.tools.r8.StringConsumer proguardMapConsumer -> u
    com.android.tools.r8.StringConsumer proguardUsageConsumer -> v
    com.android.tools.r8.features.FeatureSplitConfiguration featureSplitConfiguration -> D
    boolean enableTreeShaking -> q
    boolean enableMinification -> r
    boolean disableVerticalClassMerging -> s
    boolean forceProguardCompatibility -> t
    com.android.tools.r8.experimental.graphinfo.GraphConsumer keptGraphConsumer -> y
    com.android.tools.r8.shaking.ProguardConfiguration proguardConfiguration -> p
    com.android.tools.r8.experimental.graphinfo.GraphConsumer mainDexKeptGraphConsumer -> z
    java.util.function.Consumer syntheticProguardRulesConsumer -> A
    boolean $assertionsDisabled -> F
    com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration libraryConfiguration -> C
    java.lang.String USAGE_MESSAGE -> E
    com.android.tools.r8.StringConsumer desugaredLibraryKeepRuleConsumer -> B
    1:559:void <clinit>():56:614 -> <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,boolean,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,com.android.tools.r8.R8Command$1):57:57 -> <init>
    2:2:void <init>(boolean,boolean,com.android.tools.r8.R8Command$1):57:57 -> <init>
    3:31: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,boolean,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):707:735 -> <init>
    32:48:void <init>(boolean,boolean):739:755 -> <init>
    1:3:com.android.tools.r8.StringConsumer wrapStringConsumer(com.android.tools.r8.StringConsumer,boolean,java.nio.file.Path):882:884 -> a
    1:1:com.android.tools.r8.R8Command$Builder builder():635:635 -> builder
    2:2:void com.android.tools.r8.R8Command$Builder.<init>():109:109 -> builder
    2:2:com.android.tools.r8.R8Command$Builder builder():635 -> builder
    3:3:com.android.tools.r8.R8Command$Builder builder(com.android.tools.r8.DiagnosticsHandler):640:640 -> builder
    4:4:com.android.tools.r8.R8Command$Builder builder(com.android.tools.r8.utils.AndroidApp):645:645 -> builder
    5:5:com.android.tools.r8.R8Command$Builder builder(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):650:650 -> builder
    1:1:boolean getEnableMinification():765:765 -> getEnableMinification
    1:1:boolean getEnableTreeShaking():760:760 -> getEnableTreeShaking
    1:53:com.android.tools.r8.utils.InternalOptions getInternalOptions():770:822 -> getInternalOptions
    54:64:com.android.tools.r8.utils.InternalOptions getInternalOptions():819:829 -> getInternalOptions
    65:75:com.android.tools.r8.utils.InternalOptions getInternalOptions():826:836 -> getInternalOptions
    76:86:com.android.tools.r8.utils.InternalOptions getInternalOptions():833:843 -> getInternalOptions
    87:104:com.android.tools.r8.utils.InternalOptions getInternalOptions():840:857 -> getInternalOptions
    105:105:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> getInternalOptions
    105:105:com.android.tools.r8.utils.InternalOptions getInternalOptions():858 -> getInternalOptions
    106:120:com.android.tools.r8.utils.InternalOptions getInternalOptions():859:873 -> getInternalOptions
    1:1:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):663:663 -> parse
    2:2:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):677:677 -> 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:
    java.util.List mainDexRules -> r
    com.android.tools.r8.experimental.graphinfo.GraphConsumer mainDexKeptGraphConsumer -> F
    boolean $assertionsDisabled -> I
    java.util.function.Consumer syntheticProguardRulesConsumer -> t
    java.util.List proguardConfigs -> v
    java.util.function.Consumer proguardConfigurationConsumerForTesting -> s
    com.android.tools.r8.StringConsumer desugaredLibraryKeepRuleConsumer -> u
    boolean disableTreeShaking -> w
    boolean disableMinification -> x
    boolean disableVerticalClassMerging -> y
    boolean forceProguardCompatibility -> z
    java.util.List featureSplits -> G
    boolean allowTestProguardOptions -> H
    com.android.tools.r8.StringConsumer proguardSeedsConsumer -> C
    com.android.tools.r8.StringConsumer proguardConfigurationConsumer -> D
    com.android.tools.r8.experimental.graphinfo.GraphConsumer keptGraphConsumer -> E
    com.android.tools.r8.StringConsumer proguardMapConsumer -> A
    com.android.tools.r8.StringConsumer proguardUsageConsumer -> B
    1:1:void <clinit>():64:64 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.R8Command$1):65:65 -> <init>
    2:2:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.R8Command$1):65:65 -> <init>
    3:3:void <init>():109:109 -> <init>
    4:4:void <init>(com.android.tools.r8.DiagnosticsHandler):113:113 -> <init>
    5:25:void <init>(com.android.tools.r8.DiagnosticsHandler):85:105 -> <init>
    26:26:void <init>(com.android.tools.r8.utils.AndroidApp):117:117 -> <init>
    27:47:void <init>(com.android.tools.r8.utils.AndroidApp):85:105 -> <init>
    48:48:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):121:121 -> <init>
    49:69:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):85:105 -> <init>
    1:1:java.lang.Boolean lambda$new$0(java.lang.String,java.lang.Long):100:100 -> a
    2:3:void lambda$addMainDexRulesFiles$1(java.nio.file.Path[]):169:170 -> a
    4:5:void lambda$addMainDexRulesFiles$2(java.util.Collection):179:180 -> a
    6:7:void lambda$addMainDexRules$3(java.util.List,com.android.tools.r8.origin.Origin):188:189 -> a
    8:8:void lambda$addMainDexRules$3(java.util.List,com.android.tools.r8.origin.Origin):188:188 -> a
    9:10:void lambda$addProguardConfigurationFiles$5(java.util.List):206:207 -> a
    11:11:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):377:377 -> a
    12:14:void lambda$makeR8Command$7(com.android.tools.r8.DataResourceProvider$Visitor,com.android.tools.r8.utils.Reporter,com.android.tools.r8.DataResourceProvider):496:498 -> a
    15:17:void lambda$addProguardConfigurationConsumerForTesting$8(java.util.function.Consumer,java.util.function.Consumer,com.android.tools.r8.shaking.ProguardConfiguration$Builder):561:563 -> a
    1:1:com.android.tools.r8.R8Command$Builder addFeatureSplit(java.util.function.Function):366:366 -> 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):366 -> addFeatureSplit
    3:5:com.android.tools.r8.R8Command$Builder addFeatureSplit(java.util.function.Function):366:368 -> addFeatureSplit
    1:1:com.android.tools.r8.R8Command$Builder addMainDexRules(java.util.List,com.android.tools.r8.origin.Origin):188:188 -> addMainDexRules
    1:1:com.android.tools.r8.R8Command$Builder addMainDexRulesFiles(java.nio.file.Path[]):168:168 -> addMainDexRulesFiles
    2:2:com.android.tools.r8.R8Command$Builder addMainDexRulesFiles(java.util.Collection):178:178 -> addMainDexRulesFiles
    1:1:com.android.tools.r8.BaseCommand$Builder addProgramResourceProvider(com.android.tools.r8.ProgramResourceProvider):64:64 -> addProgramResourceProvider
    2:2:com.android.tools.r8.R8Command$Builder addProgramResourceProvider(com.android.tools.r8.ProgramResourceProvider):353:353 -> addProgramResourceProvider
    1:1:com.android.tools.r8.R8Command$Builder addProguardConfiguration(java.util.List,com.android.tools.r8.origin.Origin):215:215 -> addProguardConfiguration
    1:2:void addProguardConfigurationConsumerForTesting(java.util.function.Consumer):557:558 -> addProguardConfigurationConsumerForTesting
    1:1:com.android.tools.r8.R8Command$Builder addProguardConfigurationFiles(java.nio.file.Path[]):195:195 -> addProguardConfigurationFiles
    2:2:com.android.tools.r8.R8Command$Builder addProguardConfigurationFiles(java.util.List):205:205 -> addProguardConfigurationFiles
    1:3:void addSyntheticProguardRulesConsumerForTesting(java.util.function.Consumer):570:572 -> addSyntheticProguardRulesConsumerForTesting
    1:1:void allowTestProguardOptions():583:583 -> allowTestProguardOptions
    1:1:com.android.tools.r8.BaseCommand makeCommand():64:64 -> b
    2:2:void setDisableVerticalClassMerging(boolean):131:131 -> b
    3:4:void lambda$addProguardConfigurationFiles$4(java.nio.file.Path[]):196:197 -> b
    5:6:void lambda$addProguardConfiguration$6(java.util.List,com.android.tools.r8.origin.Origin):215:216 -> b
    7:7:void lambda$addProguardConfiguration$6(java.util.List,com.android.tools.r8.origin.Origin):215:215 -> b
    8:11:com.android.tools.r8.R8Command makeCommand():428:431 -> b
    12:12:com.android.tools.r8.R8Command makeCommand():429:429 -> b
    com.android.tools.r8.BaseCommand$Builder self() -> c
    1:18:void validate():382:399 -> d
    19:44:void validate():397:422 -> d
    1:1:com.android.tools.r8.CompilationMode defaultCompilationMode():141:141 -> e
    1:1:void internalForceProguardCompatibility():127:127 -> h
    1:113:com.android.tools.r8.R8Command makeR8Command():435:547 -> i
    1:1:com.android.tools.r8.R8Command$Builder setDesugaredLibraryKeepRuleConsumer(com.android.tools.r8.StringConsumer):255:255 -> setDesugaredLibraryKeepRuleConsumer
    1:1:com.android.tools.r8.R8Command$Builder setDisableMinification(boolean):162:162 -> setDisableMinification
    1:1:com.android.tools.r8.R8Command$Builder setDisableTreeShaking(boolean):151:151 -> setDisableTreeShaking
    1:1:com.android.tools.r8.R8Command$Builder setKeptGraphConsumer(com.android.tools.r8.experimental.graphinfo.GraphConsumer):298:298 -> setKeptGraphConsumer
    1:1:com.android.tools.r8.R8Command$Builder setMainDexKeptGraphConsumer(com.android.tools.r8.experimental.graphinfo.GraphConsumer):306:306 -> setMainDexKeptGraphConsumer
    1:1:com.android.tools.r8.BaseCompilerCommand$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode):64:64 -> setOutput
    2:2:com.android.tools.r8.BaseCompilerCommand$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):64:64 -> setOutput
    3:3:com.android.tools.r8.R8Command$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode):325:325 -> setOutput
    4:4:com.android.tools.r8.R8Command$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):348:348 -> setOutput
    1:1:com.android.tools.r8.R8Command$Builder setProguardConfigurationConsumer(com.android.tools.r8.StringConsumer):290:290 -> setProguardConfigurationConsumer
    1:1:com.android.tools.r8.R8Command$Builder setProguardMapConsumer(com.android.tools.r8.StringConsumer):244:244 -> setProguardMapConsumer
    1:2:com.android.tools.r8.R8Command$Builder setProguardMapOutputPath(java.nio.file.Path):230:231 -> setProguardMapOutputPath
    1:1:com.android.tools.r8.R8Command$Builder setProguardSeedsConsumer(com.android.tools.r8.StringConsumer):279:279 -> setProguardSeedsConsumer
    1:1:com.android.tools.r8.R8Command$Builder setProguardUsageConsumer(com.android.tools.r8.StringConsumer):267:267 -> setProguardUsageConsumer
com.android.tools.r8.R8Command$Builder$1 -> com.android.tools.r8.R8Command$Builder$a:
    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):467:467 -> <init>
    1:6:void visit(com.android.tools.r8.DataEntryResource):475:480 -> visit
    7:15:void visit(com.android.tools.r8.DataEntryResource):476:484 -> visit
    16:17:void visit(com.android.tools.r8.DataEntryResource):481:482 -> visit
    18:18:void visit(com.android.tools.r8.DataEntryResource):481:481 -> visit
com.android.tools.r8.R8Command$Builder$DefaultR8DiagnosticsHandler -> com.android.tools.r8.R8Command$Builder$b:
    1:1:void <init>():67:67 -> <init>
    2:2:void <init>(com.android.tools.r8.R8Command$1):67:67 -> <init>
    1:6:void error(com.android.tools.r8.Diagnostic):71:76 -> error
    7:14:void error(com.android.tools.r8.Diagnostic):74:81 -> 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):592:593 -> <init>
    1:1:com.android.tools.r8.DataResourceProvider getDataResourceProvider():610:610 -> getDataResourceProvider
    1:4:java.util.Collection getProgramResources():598:601 -> getProgramResources
com.android.tools.r8.R8Command$StandardOutConsumer -> com.android.tools.r8.R8Command$c:
    1:1:void <init>(com.android.tools.r8.StringConsumer):893:893 -> <init>
    1:2:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):898:899 -> accept
com.android.tools.r8.R8CommandParser -> com.android.tools.r8.p:
    java.util.Set OPTIONS_WITH_PARAMETER -> a
    java.lang.String USAGE_MESSAGE -> b
    1:47:void <clinit>():18:64 -> <clinit>
    48:48:void <clinit>():51:51 -> <clinit>
    49:49:void <clinit>() -> <clinit>
    1:1:void <init>():16:16 -> <init>
    1:1:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):89:89 -> a
    2:2:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):103:103 -> 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):107:107 -> 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):120:173 -> 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):108 -> a
    58:103:void parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder,com.android.tools.r8.R8CommandParser$ParseState):170:215 -> a
    58:103:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder):108 -> a
    104:109:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder):109:114 -> a
com.android.tools.r8.R8CommandParser$1 -> com.android.tools.r8.n:
com.android.tools.r8.R8CommandParser$ParseState -> com.android.tools.r8.o:
    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>():40:45 -> <init>
    7:7:void <init>(com.android.tools.r8.R8CommandParser$1):40:40 -> <init>
    1:1:boolean access$100(com.android.tools.r8.R8CommandParser$ParseState):40:40 -> a
    2:2:boolean access$102(com.android.tools.r8.R8CommandParser$ParseState,boolean):40:40 -> 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>():95:95 -> <init>
    1:6:void run(com.android.tools.r8.ResourceShrinker$Command,com.android.tools.r8.ResourceShrinker$ReferenceChecker):462:467 -> run
com.android.tools.r8.ResourceShrinker$Builder -> com.android.tools.r8.ResourceShrinker$Builder:
    1:1:void <init>():111:111 -> <init>
    1:1:com.android.tools.r8.ResourceShrinker$Command makeCommand():120:120 -> b
    1:1:com.android.tools.r8.BaseCommand makeCommand():110 -> b
    com.android.tools.r8.BaseCommand$Builder self() -> c
com.android.tools.r8.ResourceShrinker$Command -> com.android.tools.r8.ResourceShrinker$Command:
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp):101:101 -> <init>
    1:1:com.android.tools.r8.utils.InternalOptions getInternalOptions():106:106 -> getInternalOptions
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>():146:146 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ResourceShrinker$ReferenceChecker):151:153 -> <init>
    1:6:void visit():157:162 -> a
    7:17:void processFieldValue(com.android.tools.r8.graph.DexValue):178:188 -> a
    7:17:void visit():164 -> a
    18:18:void visit():168:168 -> a
    19:19:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):195:195 -> a
    19:19:void visit():169 -> 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):199 -> a
    20:20:void visit():169 -> 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):202 -> a
    21:21:void visit():169 -> a
    22:26:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):204:208 -> a
    22:26:void visit():169 -> a
    27:44:void processIntConstInstruction(com.android.tools.r8.code.Instruction):332:349 -> a
    27:44:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):209 -> a
    27:44:void visit():169 -> a
    45:45:void processIntConstInstruction(com.android.tools.r8.code.Instruction):346:346 -> a
    45:45:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):209 -> a
    45:45:void visit():169 -> a
    46:46:boolean isStringConstInstruction(com.android.tools.r8.code.Instruction):353:353 -> a
    46:46:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):210 -> a
    46:46:void visit():169 -> a
    47:47:void processStringConstantInstruction(com.android.tools.r8.code.Instruction):358:358 -> a
    47:47:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):211 -> a
    47:47:void visit():169 -> a
    48:48:boolean isStringConstInstruction(com.android.tools.r8.code.Instruction):353:353 -> a
    48:48:void processStringConstantInstruction(com.android.tools.r8.code.Instruction):358 -> a
    48:48:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):211 -> a
    48:48:void visit():169 -> a
    49:62:void processStringConstantInstruction(com.android.tools.r8.code.Instruction):358:371 -> a
    49:62:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):211 -> a
    49:62:void visit():169 -> a
    63:63:void processStringConstantInstruction(com.android.tools.r8.code.Instruction):368:368 -> a
    63:63:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):211 -> a
    63:63:void visit():169 -> a
    64:64:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):212:212 -> a
    64:64:void visit():169 -> a
    65:93:void processGetStatic(com.android.tools.r8.code.Instruction):386:414 -> a
    65:93:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):213 -> a
    65:93:void visit():169 -> a
    94:94:void processGetStatic(com.android.tools.r8.code.Instruction):411:411 -> a
    94:94:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):213 -> a
    94:94:void visit():169 -> a
    95:95:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):214:214 -> a
    95:95:void visit():169 -> a
    96:103:void processInvokeInstruction(com.android.tools.r8.code.Instruction):427:434 -> a
    96:103:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):215 -> a
    96:103:void visit():169 -> a
    104:104:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    104:104:void processInvokeInstruction(com.android.tools.r8.code.Instruction):435 -> a
    104:104:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):215 -> a
    104:104:void visit():169 -> a
    105:105:void processInvokeInstruction(com.android.tools.r8.code.Instruction):432:432 -> a
    105:105:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):215 -> a
    105:105:void visit():169 -> a
    106:106:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    106:106:void processInvokeInstruction(com.android.tools.r8.code.Instruction):435 -> a
    106:106:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):215 -> a
    106:106:void visit():169 -> a
    107:107:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):216:216 -> a
    107:107:void visit():169 -> a
    108:115:void processInvokeRangeInstruction(com.android.tools.r8.code.Instruction):448:455 -> a
    108:115:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):217 -> a
    108:115:void visit():169 -> a
    116:116:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    116:116:void processInvokeRangeInstruction(com.android.tools.r8.code.Instruction):456 -> a
    116:116:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):217 -> a
    116:116:void visit():169 -> a
    117:117:void processInvokeRangeInstruction(com.android.tools.r8.code.Instruction):453:453 -> a
    117:117:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):217 -> a
    117:117:void visit():169 -> a
    118:118:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    118:118:void processInvokeRangeInstruction(com.android.tools.r8.code.Instruction):456 -> a
    118:118:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):217 -> a
    118:118:void visit():169 -> a
    119:119:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):218:218 -> a
    119:119:void visit():169 -> a
    120:122:void processFillArray(com.android.tools.r8.code.Instruction[],int,java.util.Set):288:290 -> a
    120:122:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):219 -> a
    120:122:void visit():169 -> a
    123:123:com.android.tools.r8.graph.DexType com.android.tools.r8.code.NewArray.getType():46:46 -> a
    123:123:void processFillArray(com.android.tools.r8.code.Instruction[],int,java.util.Set):291 -> a
    123:123:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):219 -> a
    123:123:void visit():169 -> a
    124:131:void processFillArray(com.android.tools.r8.code.Instruction[],int,java.util.Set):291:298 -> a
    124:131:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):219 -> a
    124:131:void visit():169 -> a
    132:138:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):220:226 -> a
    132:138:void visit():169 -> a
    139:144:boolean isIntArrayPayload(com.android.tools.r8.code.Instruction,java.util.Set):278:283 -> a
    139:144:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):227 -> a
    139:144:void visit():169 -> a
    145:147:void processIntArrayPayload(com.android.tools.r8.code.Instruction):270:272 -> a
    145:147:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):228 -> a
    145:147:void visit():169 -> a
    148:149:void visit():172:173 -> a
    150:173:void processAnnotations(com.android.tools.r8.graph.DexProgramClass):236:259 -> a
    174:174:java.util.stream.Stream lambda$processAnnotations$0(com.android.tools.r8.graph.DexEncodedField):238:238 -> a
    175:175:java.util.stream.Stream lambda$processAnnotations$2(com.android.tools.r8.graph.DexEncodedMethod):246:246 -> a
    176:178:void lambda$processAnnotations$4(com.android.tools.r8.graph.DexAnnotation):260:262 -> a
    179:193:void processAnnotationValue(com.android.tools.r8.graph.DexValue):302:316 -> a
    194:194:boolean isGetStatic(com.android.tools.r8.code.Instruction):375:375 -> a
    1:1:java.util.stream.Stream lambda$processAnnotations$1(com.android.tools.r8.graph.DexEncodedField):242:242 -> b
    2:2:java.util.stream.Stream lambda$processAnnotations$3(com.android.tools.r8.graph.DexEncodedMethod):250:250 -> b
    3:3:boolean isIntConstInstruction(com.android.tools.r8.code.Instruction):322:322 -> b
    1:1:boolean isInvokeInstruction(com.android.tools.r8.code.Instruction):418:418 -> c
    1:1:boolean isInvokeRangeInstruction(com.android.tools.r8.code.Instruction):439:439 -> 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.q:
    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.q$a:
com.android.tools.r8.StringResource$FileResource -> com.android.tools.r8.q$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.q$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:2:void printToolVersion(java.lang.String):20:21 -> a
    1:1:java.lang.String getVersionString():34:34 -> getVersionString
com.android.tools.r8.bisect.Bisect -> com.android.tools.r8.r.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:18:void writeApp(com.android.tools.r8.graph.DexApplication,java.nio.file.Path,java.util.concurrent.ExecutorService):183:196 -> a
    5:18: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
    19:26: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.r.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.r.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.r.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:50:com.android.tools.r8.bisect.BisectState$Range com.android.tools.r8.bisect.BisectState$Range.sub(com.android.tools.r8.bisect.BisectState$Range):73:81 -> a
    42:50:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():293 -> a
    42:50:com.android.tools.r8.graph.DexApplication bisect():250 -> a
    51:58:com.android.tools.r8.graph.DexApplication bisect():251:258 -> a
    59:60:com.android.tools.r8.bisect.BisectState$Range com.android.tools.r8.bisect.BisectState$Range.split():85:86 -> a
    59:60:com.android.tools.r8.graph.DexApplication bisect():259 -> a
    61:67:com.android.tools.r8.graph.DexApplication bisect():259:265 -> a
    68:69:com.android.tools.r8.graph.DexProgramClass getGoodClass(com.android.tools.r8.graph.DexProgramClass):281:282 -> a
    68:69:com.android.tools.r8.graph.DexApplication bisect():266 -> a
    70:70:boolean com.android.tools.r8.bisect.BisectState$Range.contains(int):90:90 -> a
    70:70:com.android.tools.r8.graph.DexProgramClass getGoodClass(com.android.tools.r8.graph.DexProgramClass):282 -> a
    70:70:com.android.tools.r8.graph.DexApplication bisect():266 -> a
    71:71:com.android.tools.r8.graph.DexProgramClass getGoodClass(com.android.tools.r8.graph.DexProgramClass):283:283 -> a
    71:71:com.android.tools.r8.graph.DexApplication bisect():266 -> a
    72:81:com.android.tools.r8.graph.DexApplication bisect():268:277 -> a
    82:82:com.android.tools.r8.graph.DexApplication bisect():252:252 -> a
    83:83:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    83:83:com.android.tools.r8.graph.DexApplication bisect():252 -> a
    84:84:com.android.tools.r8.graph.DexApplication bisect():252:252 -> a
    85:85:com.android.tools.r8.bisect.BisectState$Range com.android.tools.r8.bisect.BisectState$Range.sub(com.android.tools.r8.bisect.BisectState$Range):73:73 -> a
    85:85:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():293 -> a
    85:85:com.android.tools.r8.graph.DexApplication bisect():250 -> a
    86:86:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():295:295 -> a
    86:86:com.android.tools.r8.graph.DexApplication bisect():250 -> a
    87:94: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
    87:94:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():295 -> a
    87:94:com.android.tools.r8.graph.DexApplication bisect():250 -> a
    95:95:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():297:297 -> a
    95:95:com.android.tools.r8.graph.DexApplication bisect():250 -> a
    96:99: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:6:java.lang.String makeSignature(com.android.tools.r8.graph.DexApplication):335:337 -> b
    7:7:java.lang.String com.android.tools.r8.graph.DexProgramClass.toString():209:209 -> b
    7:7:java.lang.String makeSignature(com.android.tools.r8.graph.DexApplication):338 -> b
    8:10:java.lang.String makeSignature(com.android.tools.r8.graph.DexApplication):338: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.r.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.r.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.s.a:
    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 -> q
    java.util.Set methodNames -> l
    java.util.List sortedLabels -> m
    java.util.List methods -> k
    1:1:void <clinit>():71:71 -> <clinit>
    1:1:void <init>():86:86 -> <init>
    2:13:void <init>():73:84 -> <init>
    void print(com.android.tools.r8.cf.code.CfNop) -> a
    void print(com.android.tools.r8.cf.code.CfPosition) -> a
    1:2:java.util.List getImports():89:90 -> a
    3:10:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):99:106 -> a
    11:11:java.lang.String r8Type(java.lang.String,java.lang.String):186:186 -> a
    11:11:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):109 -> a
    12:15:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):109:112 -> a
    16:16:java.lang.String r8Type(java.lang.String,java.lang.String):186:186 -> a
    16:16:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):113 -> a
    17:18:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):113:114 -> a
    19:19:java.lang.String r8Type(java.lang.String,java.lang.String):186:186 -> a
    19:19:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):115 -> a
    20:35:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):115:130 -> a
    36:36:java.lang.String r8Type(java.lang.String,java.lang.String):186:186 -> a
    36:36:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):131 -> a
    37:62:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):131:156 -> a
    63:73:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):151:161 -> a
    74:74:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):100:100 -> a
    75:77:java.lang.String r8Type(java.lang.String,java.util.List):190:192 -> a
    78:78:java.lang.String r8Type(java.lang.String,java.util.List):190:190 -> a
    79:79:java.lang.String cfType(java.lang.String):200:200 -> a
    80:80:java.lang.String valueType(com.android.tools.r8.ir.code.ValueType):208:208 -> a
    81:81:java.lang.String numericType(com.android.tools.r8.ir.code.NumericType):212:212 -> a
    82:82:java.lang.String dexString(com.android.tools.r8.graph.DexString):224:224 -> a
    83:83:java.lang.String quote(java.lang.String):165:165 -> a
    83:83:java.lang.String dexString(com.android.tools.r8.graph.DexString):224 -> a
    84:84:java.lang.String dexString(com.android.tools.r8.graph.DexString):224:224 -> a
    85:85:java.lang.String dexType(com.android.tools.r8.graph.DexType):228:228 -> a
    86:86:java.lang.String quote(java.lang.String):165:165 -> a
    86:86:java.lang.String dexType(com.android.tools.r8.graph.DexType):228 -> a
    87:87:java.lang.String dexType(com.android.tools.r8.graph.DexType):228:228 -> a
    88:91:void ensureComma():253:256 -> a
    88:91:void print(com.android.tools.r8.cf.code.CfLabel):432 -> a
    92:92:void print(com.android.tools.r8.cf.code.CfLabel):433:433 -> a
    93:96:void ensureComma():253:256 -> a
    93:96:void printNewInstruction(java.lang.String,java.lang.String[]):260 -> a
    97:98:void printNewInstruction(java.lang.String,java.lang.String[]):261:262 -> a
    99:99:void printNewVarInstruction(java.lang.String,com.android.tools.r8.ir.code.ValueType,int):266:266 -> a
    100:100: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):270:270 -> a
    101:101:java.lang.String ifTypeKind(com.android.tools.r8.ir.code.If$Type):220:220 -> a
    101:101: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):270 -> a
    102:102: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):270:270 -> a
    103:105:void print(com.android.tools.r8.cf.code.CfStackInstruction):280:282 -> a
    106:106:void print(com.android.tools.r8.cf.code.CfStackInstruction):280:280 -> a
    107:107:void print(com.android.tools.r8.cf.code.CfThrow):287:287 -> a
    108:108:void print(com.android.tools.r8.cf.code.CfConstNull):292:292 -> a
    109:110:void print(com.android.tools.r8.cf.code.CfConstNumber):297:298 -> a
    111:111:java.lang.String longValue(long):169:169 -> a
    111:111:void print(com.android.tools.r8.cf.code.CfConstNumber):298 -> a
    112:112:void print(com.android.tools.r8.cf.code.CfConstNumber):298:298 -> a
    113:113:void print(com.android.tools.r8.cf.code.CfConstNumber):297:297 -> a
    114:114:void print(com.android.tools.r8.cf.code.CfConstClass):303:303 -> a
    115:115:void print(com.android.tools.r8.cf.code.CfReturnVoid):308:308 -> a
    116:116:void print(com.android.tools.r8.cf.code.CfReturn):313:313 -> a
    117:117:void print(com.android.tools.r8.cf.code.CfMonitor):318:318 -> a
    118:121:void print(com.android.tools.r8.cf.code.CfArithmeticBinop):323:326 -> a
    122:122:void print(com.android.tools.r8.cf.code.CfArithmeticBinop):323:323 -> a
    123:124:void print(com.android.tools.r8.cf.code.CfCmp):331:332 -> a
    125:125:void print(com.android.tools.r8.cf.code.CfCmp):331:331 -> a
    126:129:void print(com.android.tools.r8.cf.code.CfLogicalBinop):337:340 -> a
    130:130:void print(com.android.tools.r8.cf.code.CfLogicalBinop):337:337 -> a
    131:131:void print(com.android.tools.r8.cf.code.CfNeg):345:345 -> a
    132:135:void print(com.android.tools.r8.cf.code.CfNumberConversion):350:353 -> a
    136:136:void print(com.android.tools.r8.cf.code.CfNumberConversion):350:350 -> a
    137:137:void print(com.android.tools.r8.cf.code.CfConstString):358:358 -> a
    138:138:void print(com.android.tools.r8.cf.code.CfDexItemBasedConstString):363:363 -> a
    139:139:void print(com.android.tools.r8.cf.code.CfArrayLoad):368:368 -> a
    140:140:void print(com.android.tools.r8.cf.code.CfArrayStore):373:373 -> a
    141:144:void print(com.android.tools.r8.cf.code.CfInvoke):378:381 -> a
    145:146:java.lang.String dexMethod(com.android.tools.r8.graph.DexMethod):243:244 -> a
    145:146:void print(com.android.tools.r8.cf.code.CfInvoke):381 -> a
    147:154:java.lang.String dexProto(com.android.tools.r8.graph.DexProto):232:239 -> a
    147:154:java.lang.String dexMethod(com.android.tools.r8.graph.DexMethod):246 -> a
    147:154:void print(com.android.tools.r8.cf.code.CfInvoke):381 -> a
    155:157:java.lang.String dexMethod(com.android.tools.r8.graph.DexMethod):246:248 -> a
    155:157:void print(com.android.tools.r8.cf.code.CfInvoke):381 -> a
    158:159:void print(com.android.tools.r8.cf.code.CfInvoke):381:382 -> a
    160:160:void print(com.android.tools.r8.cf.code.CfInvoke):378:378 -> a
    161:161:void print(com.android.tools.r8.cf.code.CfInvokeDynamic):387:387 -> a
    162:162:void print(com.android.tools.r8.cf.code.CfFrame):392:392 -> a
    163:163:void print(com.android.tools.r8.cf.code.CfInstanceOf):397:397 -> a
    164:164:void print(com.android.tools.r8.cf.code.CfCheckCast):402:402 -> a
    165:165:void print(com.android.tools.r8.cf.code.CfFieldInstruction):407:407 -> a
    166:166:void print(com.android.tools.r8.cf.code.CfNew):412:412 -> a
    167:167:void print(com.android.tools.r8.cf.code.CfNewArray):417:417 -> a
    168:168:void print(com.android.tools.r8.cf.code.CfMultiANewArray):422:422 -> a
    169:169:void print(com.android.tools.r8.cf.code.CfArrayLength):427:427 -> a
    170:170:void print(com.android.tools.r8.cf.code.CfGoto):443:443 -> a
    171:171:void print(com.android.tools.r8.cf.code.CfIf):449:449 -> a
    172:172:void print(com.android.tools.r8.cf.code.CfIf):448:448 -> a
    173:173:void print(com.android.tools.r8.cf.code.CfIfCmp):455:455 -> a
    174:174:void print(com.android.tools.r8.cf.code.CfIfCmp):454:454 -> a
    175:175:void print(com.android.tools.r8.cf.code.CfSwitch):460:460 -> a
    176:176:void print(com.android.tools.r8.cf.code.CfLoad):465:465 -> a
    177:177:void print(com.android.tools.r8.cf.code.CfStore):470:470 -> a
    178:181:void print(com.android.tools.r8.cf.code.CfIinc):475:478 -> a
    182:182:void print(com.android.tools.r8.cf.code.CfIinc):475:475 -> a
    183:183:void print(com.android.tools.r8.cf.code.CfConstMethodHandle):483:483 -> a
    184:184:void print(com.android.tools.r8.cf.code.CfConstMethodType):488:488 -> a
    1:1:java.util.List getMethods():95:95 -> b
    2:4:java.lang.String type(java.lang.String,java.util.List):175:177 -> b
    5:5:java.lang.String irType(java.lang.String):196:196 -> b
    6:6:java.lang.String labelName(com.android.tools.r8.cf.code.CfLabel):204:204 -> b
    7:7:java.lang.String memberType(com.android.tools.r8.ir.code.MemberType):216:216 -> b
    1:1:boolean lambda$type$0(java.lang.String):176:176 -> c
    2:2:java.lang.String immutableListType():182:182 -> c
com.android.tools.r8.cf.CfPrinter -> com.android.tools.r8.s.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:138:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    138:138:void print(com.android.tools.r8.cf.code.CfInvokeDynamic):385 -> a
    139:139:void print(com.android.tools.r8.cf.code.CfInvokeDynamic):385:385 -> a
    140:140:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    140:140:void print(com.android.tools.r8.cf.code.CfInvokeDynamic):385 -> a
    141:160:void print(com.android.tools.r8.cf.code.CfFrame):389:408 -> a
    161:164:void print(com.android.tools.r8.cf.code.CfFrame$FrameType):412:415 -> a
    165:168:void appendType(com.android.tools.r8.graph.DexType):697:700 -> a
    165:168:void print(com.android.tools.r8.cf.code.CfFrame$FrameType):415 -> a
    169:169:void appendType(com.android.tools.r8.graph.DexType):698:698 -> a
    169:169:void print(com.android.tools.r8.cf.code.CfFrame$FrameType):415 -> a
    170:170:void print(com.android.tools.r8.cf.code.CfFrame$FrameType):417:417 -> a
    171:173:void print(com.android.tools.r8.cf.code.CfInstanceOf):422:424 -> a
    174:176:void print(com.android.tools.r8.cf.code.CfCheckCast):428:430 -> a
    177:192:void print(com.android.tools.r8.cf.code.CfFieldInstruction):434:449 -> a
    193:193:void print(com.android.tools.r8.cf.code.CfFieldInstruction):440:440 -> a
    194:203:void print(com.android.tools.r8.cf.code.CfFieldInstruction):437:446 -> a
    204:212:void print(com.android.tools.r8.cf.code.CfFieldInstruction):443:451 -> a
    213:218:void appendField(com.android.tools.r8.graph.DexField):718:723 -> a
    213:218:void print(com.android.tools.r8.cf.code.CfFieldInstruction):451 -> a
    219:220:void print(com.android.tools.r8.cf.code.CfFieldInstruction):452:453 -> a
    221:225:void appendDescriptor(com.android.tools.r8.graph.DexType):689:693 -> a
    221:225:void print(com.android.tools.r8.cf.code.CfFieldInstruction):453 -> a
    226:228:void print(com.android.tools.r8.cf.code.CfNew):457:459 -> a
    229:242:void print(com.android.tools.r8.cf.code.CfNewArray):463:476 -> a
    243:246:void print(com.android.tools.r8.cf.code.CfMultiANewArray):482:485 -> a
    247:257:void print(com.android.tools.r8.cf.code.CfLabel):493:503 -> a
    258:258:void print(com.android.tools.r8.cf.code.CfLabel):501:501 -> a
    259:259:void print(com.android.tools.r8.cf.code.CfLabel):499:499 -> a
    260:264:void print(com.android.tools.r8.cf.code.CfPosition):508:512 -> a
    265:266:void print(com.android.tools.r8.cf.code.CfGoto):517:518 -> a
    267:271:void print(com.android.tools.r8.cf.code.CfIf):526:530 -> a
    272:272:java.lang.String ifPostfix(com.android.tools.r8.ir.code.If$Type):522:522 -> a
    272:272:void print(com.android.tools.r8.cf.code.CfIf):530 -> a
    273:275:void print(com.android.tools.r8.cf.code.CfIf):530:532 -> a
    276:279:void print(com.android.tools.r8.cf.code.CfIfCmp):536:539 -> a
    280:280:java.lang.String ifPostfix(com.android.tools.r8.ir.code.If$Type):522:522 -> a
    280:280:void print(com.android.tools.r8.cf.code.CfIfCmp):539 -> a
    281:283:void print(com.android.tools.r8.cf.code.CfIfCmp):539:541 -> a
    284:301:void print(com.android.tools.r8.cf.code.CfSwitch):545:562 -> a
    302:302:void print(com.android.tools.r8.cf.code.CfLoad):566:566 -> a
    303:304:void printPrefixed(com.android.tools.r8.ir.code.ValueType,java.lang.String,int):583:584 -> a
    303:304:void print(com.android.tools.r8.cf.code.CfLoad):566 -> a
    305:305:void print(com.android.tools.r8.cf.code.CfStore):570:570 -> a
    306:307:void printPrefixed(com.android.tools.r8.ir.code.ValueType,java.lang.String,int):583:584 -> a
    306:307:void print(com.android.tools.r8.cf.code.CfStore):570 -> a
    308:313:void print(com.android.tools.r8.cf.code.CfIinc):574:579 -> a
    314:326:char typePrefix(com.android.tools.r8.ir.code.ValueType):588:600 -> a
    327:345:char typePrefix(com.android.tools.r8.ir.code.MemberType):605:623 -> a
    346:348:void print(com.android.tools.r8.cf.code.CfConstMethodHandle):646:648 -> a
    349:351:void print(com.android.tools.r8.cf.code.CfConstMethodType):652:654 -> a
    352:354:void indent():674:676 -> a
    355:355:void appendComment(java.lang.String):685:685 -> a
    356:364:void appendClass(com.android.tools.r8.graph.DexType):705:713 -> a
    365:365:void appendClass(com.android.tools.r8.graph.DexType):712:712 -> a
    366:366:void appendClass(com.android.tools.r8.graph.DexType):711:711 -> a
    367:374:void appendMethod(com.android.tools.r8.graph.DexMethod):727:734 -> a
    375:375:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    375:375:void appendMethod(com.android.tools.r8.graph.DexMethod):734 -> a
    376:376:void appendMethod(com.android.tools.r8.graph.DexMethod):734:734 -> a
    377:377:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    377:377:void appendMethod(com.android.tools.r8.graph.DexMethod):734 -> a
    378:378: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:16:java.lang.String getLabel(com.android.tools.r8.cf.code.CfLabel):658:658 -> b
    17:18: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.s.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:5:int getRegisterForValue(com.android.tools.r8.ir.code.Value):132:136 -> a
    6:6:int getArgumentOrAllocateRegisterForValue(com.android.tools.r8.ir.code.Value,int):141:141 -> a
    7:7:com.android.tools.r8.utils.InternalOptions options():146:146 -> a
    8:29:int getNextFreeRegister(boolean):264:285 -> a
    30:33:void freeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):289:292 -> a
    34:34:void assignRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):350:350 -> a
    34:34:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):334 -> a
    35:36:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):335:336 -> a
    37:40:void updateRegisterState(int,boolean):343:346 -> a
    37:40:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):336 -> a
    41:45:void updateHints(com.android.tools.r8.ir.regalloc.LiveIntervals):305:309 -> a
    41:45:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):337 -> a
    46:46:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):338:338 -> a
    47:51:void addToLiveAtEntrySet(com.android.tools.r8.ir.code.BasicBlock,java.util.Collection):354:358 -> a
    52:52:com.android.tools.r8.cf.CfRegisterAllocator$TypesAtBlockEntry getTypesAtBlockEntry(com.android.tools.r8.ir.code.BasicBlock):364:364 -> a
    53:75:boolean hasEqualTypesAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):400:422 -> a
    76:83:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):529:536 -> 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):536 -> a
    85:87:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):538:540 -> 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):472:475 -> a
    88:91:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):539 -> 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):433:460 -> 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):477 -> a
    92:119:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):539 -> 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):480:500 -> a
    120:140:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):539 -> a
    141:147:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):545:551 -> 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):551 -> a
    149:149:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):552:552 -> a
    150:163:void applyInstructionsBackwardsToRegisterLiveness(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet,int):507:520 -> a
    150:163:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):553 -> a
    164:165:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):559:560 -> 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):560 -> a
    167:167:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):561:561 -> 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):561 -> a
    169:176:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):561:568 -> a
    177:182:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):567:572 -> 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):579:590 -> a
    195:204:void updateFirstStackByJoiningTheSecond(java.util.List,java.util.List):597:606 -> a
    1:6:void computeNeedsRegister():165:170 -> b
    1:6:void allocateRegisters():151 -> b
    7:10:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():176:179 -> b
    7:10:void allocateRegisters():152 -> b
    11:11:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():178:178 -> b
    11:11:void allocateRegisters():152 -> b
    12:52:void performLinearScan():184:224 -> b
    12:52:void allocateRegisters():153 -> b
    53:61:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals):316:324 -> b
    53:61:void performLinearScan():231 -> b
    53:61:void allocateRegisters():153 -> b
    62:62:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):340:340 -> b
    62:62:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals):324 -> b
    62:62:void performLinearScan():231 -> b
    62:62:void allocateRegisters():153 -> b
    63:63:void performLinearScan():233:233 -> b
    63:63:void allocateRegisters():153 -> b
    64:74:void performLinearScan():232:242 -> b
    64:74:void allocateRegisters():153 -> b
    75:75:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):340:340 -> b
    75:75:void performLinearScan():243 -> b
    75:75:void allocateRegisters():153 -> b
    76:77:void performLinearScan():256:257 -> b
    76:77:void allocateRegisters():153 -> b
    78:78:void performLinearScan():252:252 -> b
    78:78:void allocateRegisters():153 -> b
    79:80:void allocateRegisters():158:159 -> b
    81:84:void takeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):297:300 -> b
    85:86:com.android.tools.r8.cf.CfRegisterAllocator$TypesAtBlockEntry lambda$getTypesAtBlockEntry$0(com.android.tools.r8.ir.code.BasicBlock):367:368 -> b
    87:87:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(int):110:110 -> b
    87:87:com.android.tools.r8.cf.CfRegisterAllocator$TypesAtBlockEntry lambda$getTypesAtBlockEntry$0(com.android.tools.r8.ir.code.BasicBlock):368 -> b
    88:97:com.android.tools.r8.cf.CfRegisterAllocator$TypesAtBlockEntry lambda$getTypesAtBlockEntry$0(com.android.tools.r8.ir.code.BasicBlock):369:378 -> b
    98:109:void mergeBlocks(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):384:395 -> b
    1:1:int registersUsed():123:123 -> c
    1:1:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):128:128 -> getRegisterForValue
com.android.tools.r8.cf.CfRegisterAllocator$TypesAtBlockEntry -> com.android.tools.r8.s.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.s.e:
    com.android.tools.r8.ir.code.Phi phi -> r
    1:2:void <init>(com.android.tools.r8.ir.code.Phi):21:22 -> <init>
    boolean isConstant() -> E
    boolean needsRegister() -> R
    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 -> c0
    1:1:java.lang.String toString():45:45 -> toString
com.android.tools.r8.cf.LoadStoreHelper -> com.android.tools.r8.s.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:57:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):178:179 -> b
    58:68:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):178: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.s.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.s.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():216:216 -> 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():200:200 -> 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():204:204 -> 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():208:208 -> 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,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    50:50:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):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.s.h:
    int[] $SwitchMap$com$android$tools$r8$ir$code$ValueType -> a
    1:1:void <clinit>():161:161 -> <clinit>
com.android.tools.r8.cf.TypeVerificationHelper$InitializedTypeInfo -> com.android.tools.r8.s.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.s.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.s.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.s.l:
    com.android.tools.r8.graph.DexType getDexType() -> a
com.android.tools.r8.cf.code.CfArithmeticBinop -> com.android.tools.r8.s.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>():22:22 -> <clinit>
    1:5:void <init>(com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode,com.android.tools.r8.ir.code.NumericType):35:39 -> <init>
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forBinop():75:75 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):175 -> a
    2:2:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):93:93 -> a
    3:3:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):91:91 -> a
    4:4:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):89:89 -> a
    5:5:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):87:87 -> a
    6:6:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):85:85 -> a
    7:7:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):83:83 -> a
    8:8:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):81:81 -> a
    9:9:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):79:79 -> a
    10:10:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):77:77 -> a
    11:11:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):75:75 -> a
    12:12:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):73:73 -> a
    13:13:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):71:71 -> a
    14:14:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):69:69 -> a
    15:15:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):67:67 -> a
    16:16:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):65:65 -> a
    17:17:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):63:63 -> a
    18:18:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):61:61 -> a
    19:19:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):59:59 -> a
    20:20:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):57:57 -> a
    21:21:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):55:55 -> a
    22:22:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):53:53 -> a
    23:23:void print(com.android.tools.r8.cf.CfPrinter):129:129 -> a
    24:24:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):134:134 -> 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):145:165 -> 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):162:162 -> 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):159:159 -> 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):156:156 -> 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):153:153 -> 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):150:150 -> a
    1:1:boolean canThrow():139:139 -> e
    1:13:int getAsmOpcode():98:110 -> q
    14:14:int getAsmOpcode():108:108 -> q
    15:15:int getAsmOpcode():106:106 -> q
    16:16:int getAsmOpcode():104:104 -> q
    17:17:int getAsmOpcode():102:102 -> q
    18:18:int getAsmOpcode():100:100 -> q
    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getOpcode():43:43 -> r
    1:1:com.android.tools.r8.ir.code.NumericType getType():47:47 -> s
    1:1:int getAsmOpcodeTypeOffset():115:115 -> t
com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode -> com.android.tools.r8.s.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>():25:29 -> <clinit>
    6:6:void <clinit>():24:24 -> <clinit>
    1:1:void <init>(java.lang.String,int):24:24 -> <init>
com.android.tools.r8.cf.code.CfArrayLength -> com.android.tools.r8.s.n.b:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():20:20 -> <clinit>
    1:1:void <init>():20:20 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):24:24 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):29:29 -> 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):39:42 -> 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):41:41 -> a
    8:8:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArrayLength():67:67 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):51 -> a
    boolean canThrow() -> e
com.android.tools.r8.cf.code.CfArrayLoad -> com.android.tools.r8.s.n.c:
    boolean $assertionsDisabled -> b
    com.android.tools.r8.ir.code.MemberType type -> a
    1:1:void <clinit>():23:23 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.MemberType):27:29 -> <init>
    1:19:int getLoadType():37:55 -> a
    1:19:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):61 -> a
    20:20:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):61:61 -> a
    21:21:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArrayGet():63:63 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):96 -> a
    22:22:void print(com.android.tools.r8.cf.CfPrinter):66:66 -> a
    23:34:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):76:87 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.ir.code.MemberType getType():33:33 -> q
com.android.tools.r8.cf.code.CfArrayStore -> com.android.tools.r8.s.n.d:
    com.android.tools.r8.ir.code.MemberType type -> a
    1:2:void <init>(com.android.tools.r8.ir.code.MemberType):26:27 -> <init>
    1:19:int getStoreType():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:22:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArrayPut():71:71 -> a
    22:22:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):86 -> a
    23: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:77 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.ir.code.MemberType getType():31:31 -> q
com.android.tools.r8.cf.code.CfCheckCast -> com.android.tools.r8.s.n.e:
    com.android.tools.r8.graph.DexType type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexType):25:26 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):35:35 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):40:40 -> a
    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):45:45 -> 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):56:58 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):67:67 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexType getType():30:30 -> q
com.android.tools.r8.cf.code.CfCmp -> com.android.tools.r8.s.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>():24:24 -> <clinit>
    1:8:void <init>(com.android.tools.r8.ir.code.Cmp$Bias,com.android.tools.r8.ir.code.NumericType):29:36 -> <init>
    1:1:com.android.tools.r8.cf.code.CfCmp fromAsm(int):60:60 -> a
    2:2:com.android.tools.r8.cf.code.CfCmp fromAsm(int):58:58 -> a
    3:3:com.android.tools.r8.cf.code.CfCmp fromAsm(int):56:56 -> a
    4:4:com.android.tools.r8.cf.code.CfCmp fromAsm(int):54:54 -> a
    5:5:com.android.tools.r8.cf.code.CfCmp fromAsm(int):52:52 -> a
    6:6:com.android.tools.r8.cf.code.CfCmp fromAsm(int):50:50 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forBinop():75:75 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):100 -> a
    8:8:void print(com.android.tools.r8.cf.CfPrinter):79:79 -> a
    9:9:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):84:84 -> a
    10:12:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):89:91 -> a
    1:9:int getAsmOpcode():65:73 -> q
    10:10:int getAsmOpcode():71:71 -> q
    11:11:int getAsmOpcode():69:69 -> q
    1:1:com.android.tools.r8.ir.code.Cmp$Bias getBias():40:40 -> r
    1:1:com.android.tools.r8.ir.code.NumericType getType():44:44 -> s
com.android.tools.r8.cf.code.CfConstClass -> com.android.tools.r8.s.n.g:
    com.android.tools.r8.graph.DexType type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexType):25:26 -> <init>
    1:1:void print(com.android.tools.r8.cf.CfPrinter):40:40 -> a
    2:23:java.lang.String getInternalName(com.android.tools.r8.naming.NamingLens):49:70 -> a
    2:23:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):35 -> a
    24:24:java.lang.String getInternalName(com.android.tools.r8.naming.NamingLens):52:52 -> a
    24:24:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):35 -> a
    25:25:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):35:35 -> a
    26:26:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):76:76 -> 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):81:81 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):90:90 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexType getType():30:30 -> q
com.android.tools.r8.cf.code.CfConstMethodHandle -> com.android.tools.r8.s.n.h:
    com.android.tools.r8.graph.DexMethodHandle handle -> a
    1:2:void <init>(com.android.tools.r8.graph.DexMethodHandle):25:26 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):35:35 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):40:40 -> a
    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):45:45 -> a
    4:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):56:57 -> a
    6:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):56:56 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstMethodHandle():275:275 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):66 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexMethodHandle getHandle():30:30 -> q
com.android.tools.r8.cf.code.CfConstMethodType -> com.android.tools.r8.s.n.i:
    com.android.tools.r8.graph.DexProto type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexProto):25:26 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):35:35 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):40:40 -> a
    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):45:45 -> a
    4:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):56:57 -> a
    6:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):56:56 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstMethodType():279:279 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):66 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexProto getType():30:30 -> q
com.android.tools.r8.cf.code.CfConstNull -> com.android.tools.r8.s.n.j:
    1:1:void <init>():20:20 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):24:24 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):29:29 -> 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):34:34 -> a
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstInstruction():92:92 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):43 -> a
com.android.tools.r8.cf.code.CfConstNumber -> com.android.tools.r8.s.n.k:
    com.android.tools.r8.ir.code.ValueType type -> b
    long value -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():21:21 -> <clinit>
    1:3:void <init>(long,com.android.tools.r8.ir.code.ValueType):26:28 -> <init>
    1:53:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):61:113 -> a
    54:61:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):101:108 -> a
    62:62:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):103:103 -> a
    63:63:boolean isNegativeZeroDouble(double):118:118 -> a
    63:63:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):104 -> a
    64:64:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):105:105 -> a
    65:69:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):78:82 -> a
    70:85:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):80:95 -> a
    86:86:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):90:90 -> a
    87:87:boolean isNegativeZeroFloat(float):122:122 -> a
    87:87:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):91 -> a
    88:88:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):92:92 -> a
    89:97:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):64:72 -> a
    98:98:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstInstruction():92:92 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):141 -> a
    99:99:boolean isNegativeZeroDouble(double):118:118 -> a
    100:100:boolean isNegativeZeroFloat(float):122:122 -> a
    101:101:void print(com.android.tools.r8.cf.CfPrinter):127:127 -> 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):132:132 -> 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):132 -> 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):132 -> 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):132 -> 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):132 -> 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):132 -> 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):132:132 -> a
    1:2:double getDoubleValue():55:56 -> q
    1:2:float getFloatValue():50:51 -> r
    1:2:int getIntValue():40:41 -> s
    1:2:long getLongValue():45:46 -> t
    1:1:long getRawValue():36:36 -> u
    1:1:com.android.tools.r8.ir.code.ValueType getType():32:32 -> v
com.android.tools.r8.cf.code.CfConstString -> com.android.tools.r8.s.n.l:
    com.android.tools.r8.graph.DexString string -> a
    1:2:void <init>(com.android.tools.r8.graph.DexString):23:24 -> <init>
    com.android.tools.r8.cf.code.CfConstString asConstString() -> a
    1:1:void setString(com.android.tools.r8.graph.DexString):32:32 -> a
    2:2:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):47:47 -> a
    3:3:void print(com.android.tools.r8.cf.CfPrinter):52:52 -> a
    4:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):63:64 -> a
    6:6: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
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstInstruction():92:92 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):73 -> a
    boolean canThrow() -> e
    boolean isConstString() -> i
    1:1:com.android.tools.r8.graph.DexString getString():28:28 -> q
com.android.tools.r8.cf.code.CfDexItemBasedConstString -> com.android.tools.r8.s.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>():22:22 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):27:29 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):52:52 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):58:58 -> a
    3:5:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):69:71 -> a
    6:7: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
    8:8:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):77:77 -> 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):80:80 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):89 -> 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():33:33 -> q
    1:1:com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo getNameComputationInfo():37:37 -> r
com.android.tools.r8.cf.code.CfFieldInstruction -> com.android.tools.r8.s.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>():23:23 -> <clinit>
    1:5:void <init>(int,com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):29:33 -> <init>
    1:4:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):56:59 -> a
    5:5:void print(com.android.tools.r8.cf.CfPrinter):64:64 -> a
    6:20:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):69:83 -> a
    21:21:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):74:74 -> a
    22:31:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):71:80 -> a
    32:32:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):77:77 -> 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):94:121 -> 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):115:117 -> 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):109:110 -> 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):103:104 -> 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):98:98 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):131:141 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):139:139 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):137:137 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):135:135 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):133:133 -> a
    com.android.tools.r8.cf.code.CfFieldInstruction asFieldInstruction() -> c
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexField getField():37:37 -> q
    1:1:int getOpcode():41:41 -> r
com.android.tools.r8.cf.code.CfFrame -> com.android.tools.r8.s.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>():26:26 -> <clinit>
    1:5:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap,java.util.List):200:204 -> <init>
    1:1:int computeStackCount():225:225 -> a
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):217 -> a
    2:8:java.lang.Object[] computeStackTypes(int,com.android.tools.r8.naming.NamingLens):229:235 -> a
    2:8:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):218 -> a
    9:18:int computeLocalsCount():241:250 -> a
    9:18:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):219 -> a
    19:25:java.lang.Object[] computeLocalsTypes(int,com.android.tools.r8.naming.NamingLens):261:267 -> a
    19:25:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):220 -> a
    26:26:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):221:221 -> a
    27:27:void print(com.android.tools.r8.cf.CfPrinter):281:281 -> 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):287:287 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):301:301 -> a
    boolean emitsIR() -> f
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap getLocals():208:208 -> q
    1:1:java.util.List getStack():212:212 -> r
    1:1:java.lang.String toString():276:276 -> toString
com.android.tools.r8.cf.code.CfFrame$1 -> com.android.tools.r8.s.n.o:
com.android.tools.r8.cf.code.CfFrame$FrameType -> com.android.tools.r8.s.n.p$a:
    1:1:void <init>(com.android.tools.r8.cf.code.CfFrame$1):28:28 -> <init>
    2:2:void <init>():76:76 -> <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):31:31 -> a
    2:2:com.android.tools.r8.cf.code.CfFrame$FrameType uninitializedNew(com.android.tools.r8.cf.code.CfLabel):35:35 -> 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():43:43 -> h
    1:1:com.android.tools.r8.cf.code.CfFrame$FrameType uninitializedThis():39:39 -> i
com.android.tools.r8.cf.code.CfFrame$InitializedType -> com.android.tools.r8.s.n.q:
    com.android.tools.r8.graph.DexType type -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():79:79 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.cf.code.CfFrame$1):79:79 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexType):83:85 -> <init>
    1:16:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):95:110 -> a
    17:17:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):102:102 -> a
    18:26:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):100:108 -> a
    27:27:com.android.tools.r8.graph.DexType getInitializedType():126:126 -> a
    boolean isInitialized() -> c
    1:1:boolean isWide():116:116 -> g
    1:1:java.lang.String toString():90:90 -> toString
com.android.tools.r8.cf.code.CfFrame$Top -> com.android.tools.r8.s.n.r:
    com.android.tools.r8.cf.code.CfFrame$Top SINGLETON -> a
    1:1:void <clinit>():132:132 -> <clinit>
    1:1:void <init>():130:130 -> <init>
    1:1:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):141:141 -> a
    boolean isTop() -> d
    1:1:com.android.tools.r8.cf.code.CfFrame$Top access$300():130:130 -> j
com.android.tools.r8.cf.code.CfFrame$UninitializedNew -> com.android.tools.r8.s.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):150:150 -> <init>
    2:3:void <init>(com.android.tools.r8.cf.code.CfLabel):153:154 -> <init>
    1:1:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):164:164 -> a
    1:1:com.android.tools.r8.cf.code.CfLabel getUninitializedLabel():174:174 -> b
    boolean isUninitializedNew() -> e
com.android.tools.r8.cf.code.CfFrame$UninitializedThis -> com.android.tools.r8.s.n.t:
    1:1:void <init>(com.android.tools.r8.cf.code.CfFrame$1):178:178 -> <init>
    2:2:void <init>():179:179 -> <init>
    1:1:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):183:183 -> a
    boolean isUninitializedThis() -> f
com.android.tools.r8.cf.code.CfGoto -> com.android.tools.r8.s.n.u:
    com.android.tools.r8.cf.code.CfLabel target -> a
    1:2:void <init>(com.android.tools.r8.cf.code.CfLabel):23:24 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):49:49 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):54:54 -> 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):59:59 -> a
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forJumpInstruction():203:203 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):68 -> a
    1:1:com.android.tools.r8.cf.code.CfLabel getTarget():44:44 -> g
    boolean isJump() -> l
com.android.tools.r8.cf.code.CfIf -> com.android.tools.r8.s.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):29:32 -> <init>
    1:1:void print(com.android.tools.r8.cf.CfPrinter):69:69 -> a
    2:2:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):74:74 -> 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):89:92 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forJumpInstruction():203:203 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):101 -> a
    1:1:com.android.tools.r8.cf.code.CfLabel getTarget():45:45 -> g
    boolean isConditionalJump() -> h
    boolean isJump() -> l
    1:1:com.android.tools.r8.ir.code.If$Type getKind():40:40 -> q
    1:15:int getOpcode():49:63 -> r
    16:16:int getOpcode():61:61 -> r
    17:17:int getOpcode():51:51 -> r
    1:1:com.android.tools.r8.ir.code.ValueType getType():36:36 -> s
com.android.tools.r8.cf.code.CfIfCmp -> com.android.tools.r8.s.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):29:32 -> <init>
    1:15:int getOpcode():49:63 -> a
    1:15:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):74 -> a
    16:16:int getOpcode():61:61 -> a
    16:16:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):74 -> a
    17:17:int getOpcode():51:51 -> a
    17:17:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):74 -> a
    18:18:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):74:74 -> a
    19:19:void print(com.android.tools.r8.cf.CfPrinter):69:69 -> 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):89:93 -> a
    25:25: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):1294:1294 -> a
    25:25:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):93 -> a
    26:28: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):1292:1294 -> a
    26:28:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):93 -> a
    29:29:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forJumpInstruction():203:203 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):102 -> a
    1:1:com.android.tools.r8.cf.code.CfLabel getTarget():45:45 -> g
    boolean isConditionalJump() -> h
    boolean isJump() -> l
    1:1:com.android.tools.r8.ir.code.If$Type getKind():36:36 -> q
    1:1:com.android.tools.r8.ir.code.ValueType getType():40:40 -> r
com.android.tools.r8.cf.code.CfIinc -> com.android.tools.r8.s.n.x:
    int increment -> b
    int var -> a
    1:3:void <init>(int,int):24:26 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):31:31 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):36:36 -> 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):49:50 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):59:59 -> a
    1:1:int getIncrement():44:44 -> q
    1:1:int getLocalIndex():40:40 -> r
com.android.tools.r8.cf.code.CfInstanceOf -> com.android.tools.r8.s.n.y:
    com.android.tools.r8.graph.DexType type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexType):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:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):44:44 -> 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:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):55:55 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):65:65 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexType getType():29:29 -> q
com.android.tools.r8.cf.code.CfInstruction -> com.android.tools.r8.s.n.z:
    1:1:void <init>():19:19 -> <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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView) -> 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 isInvoke() -> k
    boolean isJump() -> l
    boolean isLabel() -> m
    boolean isLoad() -> n
    boolean isReturn() -> o
    boolean isStore() -> p
    1:3:java.lang.String toString():27:29 -> toString
com.android.tools.r8.cf.code.CfInvoke -> com.android.tools.r8.s.n.A:
    int opcode -> b
    com.android.tools.r8.graph.DexMethod method -> a
    boolean itf -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():32:32 -> <clinit>
    1:7:void <init>(int,com.android.tools.r8.graph.DexMethod,boolean):38:44 -> <init>
    1:4:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):71:74 -> a
    5:5:void print(com.android.tools.r8.cf.CfPrinter):79:79 -> a
    6:26:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):84:104 -> a
    27:42:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):86:101 -> a
    43:48:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):92:97 -> a
    49:49:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):89:89 -> a
    50:52:boolean isInvokeSuper(com.android.tools.r8.graph.DexType):109:111 -> a
    53:119:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):124:190 -> a
    120:179:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):127:186 -> a
    180:197:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):157:174 -> a
    198:214:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):164:180 -> a
    215:286:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):133:204 -> a
    287:290:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):203:206 -> a
    291:291:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):216:216 -> a
    com.android.tools.r8.cf.code.CfInvoke asInvoke() -> d
    boolean canThrow() -> e
    boolean isInvoke() -> k
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> q
    1:1:int getOpcode():52:52 -> r
    1:1:boolean isInterface():56:56 -> s
com.android.tools.r8.cf.code.CfInvokeDynamic -> com.android.tools.r8.s.n.B:
    com.android.tools.r8.graph.DexCallSite callSite -> a
    1:2:void <init>(com.android.tools.r8.graph.DexCallSite):41:42 -> <init>
    1:5:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):47:51 -> a
    6:21:java.lang.Object decodeBootstrapArgument(com.android.tools.r8.graph.DexValue,com.android.tools.r8.naming.NamingLens):60:75 -> a
    6:21:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):51 -> a
    22:22:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):51:51 -> a
    23:24:java.lang.Object decodeBootstrapArgument(com.android.tools.r8.graph.DexValue,com.android.tools.r8.naming.NamingLens):77:78 -> a
    23:24:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):51 -> a
    25:28:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):53:56 -> a
    29:29:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):55:55 -> a
    30:30:void print(com.android.tools.r8.cf.CfPrinter):84:84 -> a
    31:31:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):93:93 -> 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):103:105 -> a
    35:37:int[] com.android.tools.r8.ir.conversion.CfState.popReverse(int):182:184 -> a
    35:37:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):105 -> a
    38:47:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):105:114 -> a
    48:48:int[] com.android.tools.r8.ir.conversion.CfState.popReverse(int):182:182 -> 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):105 -> a
    49:49:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forInvokeCustom():154:154 -> a
    49:49:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):124 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexCallSite getCallSite():88:88 -> q
com.android.tools.r8.cf.code.CfLabel -> com.android.tools.r8.s.n.C:
    com.android.tools.r8.org.objectweb.asm.Label label -> a
    1:3:void <init>():19:21 -> <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):42:42 -> a
    2:2:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):47:47 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):66:66 -> a
    boolean emitsIR() -> f
    boolean isLabel() -> m
    1:4:com.android.tools.r8.org.objectweb.asm.Label getLabel():24:27 -> q
com.android.tools.r8.cf.code.CfLoad -> com.android.tools.r8.s.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):27:29 -> <init>
    1:13:int getLoadType():33:45 -> a
    1:13:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):61 -> a
    14:14:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):61:61 -> a
    15:15:void print(com.android.tools.r8.cf.CfPrinter):66:66 -> 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):79:81 -> a
    19:19:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    19:19:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):81 -> a
    20:20:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forLoad():207:207 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):95 -> a
    boolean emitsIR() -> f
    boolean isLoad() -> n
    1:1:int getLocalIndex():74:74 -> q
    1:1:com.android.tools.r8.ir.code.ValueType getType():70:70 -> r
com.android.tools.r8.cf.code.CfLogicalBinop -> com.android.tools.r8.s.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>():22:22 -> <clinit>
    1:6:void <init>(com.android.tools.r8.cf.code.CfLogicalBinop$Opcode,com.android.tools.r8.ir.code.NumericType):36:41 -> <init>
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forBinop():75:75 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):147 -> a
    2:2:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):79:79 -> a
    3:3:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):77:77 -> a
    4:4:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):75:75 -> a
    5:5:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):73:73 -> a
    6:6:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):71:71 -> a
    7:7:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):69:69 -> a
    8:8:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):67:67 -> a
    9:9:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):65:65 -> a
    10:10:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):63:63 -> a
    11:11:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):61:61 -> a
    12:12:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):59:59 -> a
    13:13:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):57:57 -> a
    14:14:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):55:55 -> a
    15:15:void print(com.android.tools.r8.cf.CfPrinter):104:104 -> a
    16:16:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):109:109 -> 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):114:137 -> 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):134:134 -> 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):131:131 -> 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):128:128 -> 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):125:125 -> 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):122:122 -> 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):119:119 -> a
    1:15:int getAsmOpcode():84:98 -> q
    16:16:int getAsmOpcode():96:96 -> q
    17:17:int getAsmOpcode():94:94 -> q
    18:18:int getAsmOpcode():92:92 -> q
    19:19:int getAsmOpcode():90:90 -> q
    20:20:int getAsmOpcode():88:88 -> q
    21:21:int getAsmOpcode():86:86 -> q
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getOpcode():49:49 -> r
    1:1:com.android.tools.r8.ir.code.NumericType getType():45:45 -> s
com.android.tools.r8.cf.code.CfLogicalBinop$Opcode -> com.android.tools.r8.s.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>():25:30 -> <clinit>
    7:7:void <clinit>():24:24 -> <clinit>
    1:1:void <init>(java.lang.String,int):24:24 -> <init>
com.android.tools.r8.cf.code.CfMonitor -> com.android.tools.r8.s.n.F:
    com.android.tools.r8.ir.code.Monitor$Type type -> a
    1:2:void <init>(com.android.tools.r8.ir.code.Monitor$Type):25:26 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):35:35 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):40:40 -> 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):50:51 -> a
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forMonitor():211:211 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):60 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.ir.code.Monitor$Type getType():30:30 -> q
com.android.tools.r8.cf.code.CfMultiANewArray -> com.android.tools.r8.s.n.G:
    com.android.tools.r8.graph.DexType type -> a
    int dimensions -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():20:20 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexType,int):25:27 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):40:40 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):45:45 -> a
    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):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):60:62 -> a
    7:9:int[] com.android.tools.r8.ir.conversion.CfState.popReverse(int):182:184 -> a
    7:9:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):62 -> a
    10:10: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
    11:11:int[] com.android.tools.r8.ir.conversion.CfState.popReverse(int):182:182 -> a
    11:11:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):62 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):72:72 -> a
    boolean canThrow() -> e
    1:1:int getDimensions():35:35 -> q
    1:1:com.android.tools.r8.graph.DexType getType():31:31 -> r
com.android.tools.r8.cf.code.CfNeg -> com.android.tools.r8.s.n.H:
    com.android.tools.r8.ir.code.NumericType type -> a
    1:2:void <init>(com.android.tools.r8.ir.code.NumericType):26:27 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):36:36 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):41:41 -> 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):79:80 -> a
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forUnop():271:271 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):89 -> a
    1:14:int getAsmOpcode():45:58 -> q
    1:1:com.android.tools.r8.ir.code.NumericType getType():31:31 -> r
com.android.tools.r8.cf.code.CfNew -> com.android.tools.r8.s.n.I:
    com.android.tools.r8.graph.DexType type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexType):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:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):44:44 -> 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):54: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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):63:63 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexType getType():29:29 -> q
com.android.tools.r8.cf.code.CfNewArray -> com.android.tools.r8.s.n.J:
    com.android.tools.r8.graph.DexType type -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():23:23 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexType):27:29 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):69:69 -> a
    2:20:int getPrimitiveTypeCode():37:55 -> a
    2:20:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):70 -> a
    21:21:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):70:70 -> a
    22:26:java.lang.String getElementInternalName(com.android.tools.r8.naming.NamingLens):60:64 -> a
    22:26:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):72 -> a
    27:27:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):72:72 -> a
    28:28:void print(com.android.tools.r8.cf.CfPrinter):78:78 -> a
    29:30:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):83:84 -> 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):95:97 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):106:106 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexType getType():33:33 -> q
com.android.tools.r8.cf.code.CfNop -> com.android.tools.r8.s.n.K:
    1:1:void <init>():19: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 write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):23:23 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):28:28 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):47:47 -> a
    boolean emitsIR() -> f
com.android.tools.r8.cf.code.CfNumberConversion -> com.android.tools.r8.s.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>():22:22 -> <clinit>
    1:7:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType):27:33 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):46:46 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):51:51 -> a
    3:3:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):144:144 -> a
    4:4:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):142:142 -> a
    5:5:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):140:140 -> a
    6:6:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):138:138 -> a
    7:7:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):136:136 -> a
    8:8:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):134:134 -> a
    9:9:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):132:132 -> a
    10:10:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):130:130 -> a
    11:11:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):128:128 -> a
    12:12:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):126:126 -> a
    13:13:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):124:124 -> a
    14:14:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):122:122 -> a
    15:15:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):120:120 -> a
    16:16:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):118:118 -> a
    17:17:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):116:116 -> a
    18:18:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):114:114 -> 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):150:151 -> a
    21:21:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forUnop():271:271 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):160 -> a
    1:53:int getAsmOpcode():55:107 -> q
    54:62:int getAsmOpcode():96:104 -> q
    63:71:int getAsmOpcode():85:93 -> q
    72:80:int getAsmOpcode():74:82 -> q
    81:95:int getAsmOpcode():57:71 -> q
    1:1:com.android.tools.r8.ir.code.NumericType getFromType():37:37 -> r
    1:1:com.android.tools.r8.ir.code.NumericType getToType():41:41 -> s
com.android.tools.r8.cf.code.CfPosition -> com.android.tools.r8.s.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):24:26 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):31:31 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):36:36 -> 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):54:56 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):65:65 -> a
    boolean emitsIR() -> f
    1:1:com.android.tools.r8.cf.code.CfLabel getLabel():44:44 -> q
    1:1:com.android.tools.r8.ir.code.Position getPosition():40:40 -> r
com.android.tools.r8.cf.code.CfReturn -> com.android.tools.r8.s.n.N:
    com.android.tools.r8.ir.code.ValueType type -> a
    1:2:void <init>(com.android.tools.r8.ir.code.ValueType):26:27 -> <init>
    1:13:int getOpcode():35:47 -> a
    1:13:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):58 -> a
    14:14:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):58:58 -> a
    15:15:void print(com.android.tools.r8.cf.CfPrinter):63:63 -> 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):73:74 -> a
    18:18:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forReturn():243:243 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):83 -> a
    boolean isJump() -> l
    boolean isReturn() -> o
    1:1:com.android.tools.r8.ir.code.ValueType getType():31:31 -> q
com.android.tools.r8.cf.code.CfReturnVoid -> com.android.tools.r8.s.n.O:
    1:1:void <init>():19:19 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):28:28 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):33:33 -> 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):43:43 -> a
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forReturn():243:243 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):52 -> a
    boolean isJump() -> l
    boolean isReturn() -> o
com.android.tools.r8.cf.code.CfStackInstruction -> com.android.tools.r8.s.n.P:
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode opcode -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():23:23 -> <clinit>
    1:2:void <init>(com.android.tools.r8.cf.code.CfStackInstruction$Opcode):74:75 -> <init>
    1:1:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):66:66 -> a
    2:2:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):64:64 -> a
    3:3:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):62:62 -> a
    4:4:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):60:60 -> a
    5:5:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):58:58 -> a
    6:6:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):56:56 -> a
    7:7:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):54:54 -> a
    8:8:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):52:52 -> a
    9:9:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):50:50 -> a
    10:10:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):48:48 -> a
    11:11:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):80:80 -> a
    12:12:void print(com.android.tools.r8.cf.CfPrinter):85:85 -> 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):94:216 -> 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):168:187 -> 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):183:183 -> 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):183 -> a
    158:158:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    158:158:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    158:158:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):183 -> a
    159:174:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):183:198 -> a
    175:184: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):290:299 -> a
    175:184:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):203 -> a
    185:185:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    185:185: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
    185:185:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):203 -> a
    186:186: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
    186:186:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):203 -> a
    187:187:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    187:187: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
    187:187:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):203 -> a
    188:188: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
    188:188:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):203 -> a
    189:189:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    189:189: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
    189:189:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):203 -> a
    190:190: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
    190:190:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):203 -> a
    191:191:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    191:191: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
    191:191:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):203 -> a
    192:192: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
    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):203 -> a
    193:193:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    193:193: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
    193:193:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):203 -> a
    194:194: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):309:309 -> a
    194:194:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):203 -> a
    195:195:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    195:195: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):309 -> a
    195:195:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):203 -> a
    196:196:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    196:196: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
    196:196:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):203 -> a
    197:197:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):199:199 -> a
    198:198:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    198:198:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):199 -> a
    199:199:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    199:199:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    199:199:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):199 -> a
    200:200:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):199:199 -> a
    201:201:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):191:191 -> a
    202:202:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    202:202:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):191 -> a
    203:203:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    203:203:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    203:203:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):191 -> a
    204:204:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):191:191 -> a
    205:213:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):154:162 -> a
    214:216:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):142:144 -> a
    217:217:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    217:217:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):144 -> a
    218:219:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):146:147 -> a
    220:220:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    220:220:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):147 -> a
    221:221: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
    222:222:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    222:222:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):148 -> a
    223:223:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    223:223:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):147 -> a
    224:232:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):128:136 -> a
    233:237:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):119:123 -> a
    238:240:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):112:114 -> a
    241:241:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    241:241:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):114 -> a
    242:245:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):103:106 -> a
    246:247:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):97:98 -> a
    248:253: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):226:231 -> a
    254:254:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    254:254: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
    255:255: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
    256:256:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    256:256: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
    257:257: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):235:235 -> a
    258:258:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    258:258: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):235 -> a
    259:259:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    259:259: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
    260:266: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):243:249 -> a
    267:267:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    267:267: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
    268:268: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
    269:269:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    269:269: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
    270:270: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
    271:271:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    271:271: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
    272:272: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):255:255 -> a
    273:273:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    273:273: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):255 -> a
    274:274:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    274:274: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
    275:275:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):323:323 -> 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):262:269 -> b
    9:9:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> b
    9:9: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
    10:10: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
    11:11:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> b
    11:11: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
    12:12: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
    13:13:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> b
    13:13: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
    14:14: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
    15:15:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> b
    15:15: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
    16:16: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):277:277 -> b
    17:17:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> b
    17:17: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):277 -> b
    18:18:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> b
    18:18: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
    boolean emitsIR() -> f
    1:1:com.android.tools.r8.cf.code.CfStackInstruction$Opcode getOpcode():89:89 -> q
com.android.tools.r8.cf.code.CfStackInstruction$Opcode -> com.android.tools.r8.s.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>():26:34 -> <clinit>
    10:10:void <clinit>():25:25 -> <clinit>
    1:2:void <init>(java.lang.String,int,int):38:39 -> <init>
    1:1:int access$000(com.android.tools.r8.cf.code.CfStackInstruction$Opcode):25:25 -> a
com.android.tools.r8.cf.code.CfStore -> com.android.tools.r8.s.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):27:29 -> <init>
    1:13:int getStoreType():33:45 -> a
    1:13:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):61 -> a
    14:14:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):61:61 -> a
    15:15:void print(com.android.tools.r8.cf.CfPrinter):66:66 -> 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):79:80 -> a
    18:18:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> a
    18:18:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):80 -> a
    19:19:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forStore():259:259 -> a
    19:19:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):94 -> a
    boolean emitsIR() -> f
    boolean isStore() -> p
    1:1:int getLocalIndex():74:74 -> q
    1:1:com.android.tools.r8.ir.code.ValueType getType():70:70 -> r
com.android.tools.r8.cf.code.CfSwitch -> com.android.tools.r8.s.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>():23:23 -> <clinit>
    1:7:void <init>(com.android.tools.r8.cf.code.CfSwitch$Kind,com.android.tools.r8.cf.code.CfLabel,int[],java.util.List):32:38 -> <init>
    1:12:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):74:85 -> a
    13:13:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):80:80 -> a
    14:14:void print(com.android.tools.r8.cf.CfPrinter):92:92 -> 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):97:102 -> a
    21:21:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forJumpInstruction():203:203 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):111 -> a
    boolean isJump() -> l
    1:1:com.android.tools.r8.cf.code.CfLabel getDefaultTarget():46:46 -> q
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList getKeys():50:50 -> r
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>(int[]):135:135 -> r
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList getKeys():50 -> r
    1:1:com.android.tools.r8.cf.code.CfSwitch$Kind getKind():42:42 -> s
    1:1:java.util.List getSwitchTargets():54:54 -> t
com.android.tools.r8.cf.code.CfSwitch$Kind -> com.android.tools.r8.s.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>():25:25 -> <clinit>
    1:1:void <init>(java.lang.String,int):25:25 -> <init>
com.android.tools.r8.cf.code.CfThrow -> com.android.tools.r8.s.n.T:
    1:1:void <init>():20:20 -> <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):44:45 -> a
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forJumpInstruction():203:203 -> 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,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView):54 -> a
    boolean canThrow() -> e
    boolean isJump() -> l
com.android.tools.r8.cf.code.CfTryCatch -> com.android.tools.r8.s.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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> l
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() -> l
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() -> l
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() -> l
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() -> l
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    boolean isCheckCast() -> p
    1:1:com.android.tools.r8.graph.DexType getType():51:51 -> x
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    6: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:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    5: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:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:com.android.tools.r8.graph.DexType getType():46:46 -> x
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:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    7: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:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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
    com.android.tools.r8.code.ConstString asConstString() -> b
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):59:59 -> b
    boolean canThrow() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    boolean isConstString() -> q
    1:1:com.android.tools.r8.graph.DexString getString():29:29 -> x
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:6:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):231:231 -> a
    6:6:void com.android.tools.r8.code.Format31c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):64 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    7:7: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() -> c
    boolean canThrow() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    boolean isConstStringJumbo() -> r
    1:1:com.android.tools.r8.graph.DexString getString():26:26 -> x
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:10:boolean com.android.tools.r8.code.Format51l.equals(java.lang.Object):44:48 -> a
    11:12:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    13:13:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
    14:14:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:60 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    boolean com.android.tools.r8.code.Format51l.equals(java.lang.Object) -> equals
    java.lang.String getName() -> h
    int com.android.tools.r8.code.Format51l.hashCode() -> hashCode
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:int com.android.tools.r8.code.Format51l.hashCode():39:39 -> x
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:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    7: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:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    6: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:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    7: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:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.DexItemBasedConstString -> com.android.tools.r8.code.g0:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo nameComputationInfo -> h
    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: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() -> d
    boolean canThrow() -> e
    java.lang.String getName() -> h
    1:1:int getOpcode():48:48 -> j
    java.lang.String getSmaliName() -> m
    boolean isDexItemBasedConstString() -> s
    1:1:com.android.tools.r8.graph.DexReference getItem():29:29 -> x
    1:1:com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo getNameComputationInfo():33:33 -> y
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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 -> l
    boolean isPayload() -> u
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
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.Format11n:
    boolean $assertionsDisabled -> f
    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.C0:
    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.Format12x:
    boolean $assertionsDisabled -> f
    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.Format21c:
    short AA -> f
    boolean $assertionsDisabled -> g
    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:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):55:56 -> b
    3: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.D0:
    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.Format21s:
    short AA -> f
    boolean $assertionsDisabled -> g
    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.E0:
    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>
    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 -> n
    com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint() -> x
    com.android.tools.r8.ir.code.If$Type getType() -> y
com.android.tools.r8.code.Format22b -> com.android.tools.r8.code.F0:
    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:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):64:65 -> a
    6: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.G0:
    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:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):59:60 -> b
    3: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.H0:
    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:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):64:65 -> a
    6: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.I0:
    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>
    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 -> n
    com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint() -> x
    com.android.tools.r8.ir.code.If$Type getType() -> y
com.android.tools.r8.code.Format22x -> com.android.tools.r8.code.J0:
    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.K0:
    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.Format30t:
    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):179:179 -> 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.Format31c:
    short AA -> f
    boolean $assertionsDisabled -> g
    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:5:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):231:231 -> a
    5:5:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):64 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):57:58 -> b
    3: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.L0:
    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.M0:
    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 -> k
    boolean hasPayload() -> o
com.android.tools.r8.code.Format32x -> com.android.tools.r8.code.N0:
    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.O0:
    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.P0:
    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.S0:
    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:5:boolean com.android.tools.r8.code.Format10t.equals(java.lang.Object):40:43 -> a
    6:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
    7:7:java.lang.String com.android.tools.r8.code.Format10t.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):53:53 -> a
    7:7: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
    boolean com.android.tools.r8.code.Format10t.equals(java.lang.Object) -> equals
    java.lang.String getName() -> h
    int com.android.tools.r8.code.Format10t.hashCode() -> hashCode
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:int[] getTargets():39:39 -> n
    1:1:int com.android.tools.r8.code.Format10t.hashCode():35:35 -> x
com.android.tools.r8.code.Goto16 -> com.android.tools.r8.code.Q0:
    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:7:boolean com.android.tools.r8.code.Format20t.equals(java.lang.Object):40:43 -> a
    8:8:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
    9:9:java.lang.String com.android.tools.r8.code.Format20t.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):53:53 -> a
    9:9: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
    boolean com.android.tools.r8.code.Format20t.equals(java.lang.Object) -> equals
    java.lang.String getName() -> h
    int com.android.tools.r8.code.Format20t.hashCode() -> hashCode
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:int[] getTargets():39:39 -> n
    1:1:int com.android.tools.r8.code.Format20t.hashCode():35:35 -> x
com.android.tools.r8.code.Goto32 -> com.android.tools.r8.code.R0:
    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):179:179 -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:int[] getTargets():39:39 -> n
com.android.tools.r8.code.IfEq -> com.android.tools.r8.code.T0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> x
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> y
com.android.tools.r8.code.IfEqz -> 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,int):20:20 -> <init>
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> x
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> y
com.android.tools.r8.code.IfGe -> com.android.tools.r8.code.V0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> x
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> y
com.android.tools.r8.code.IfGez -> com.android.tools.r8.code.W0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> x
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> y
com.android.tools.r8.code.IfGt -> com.android.tools.r8.code.X0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> x
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> y
com.android.tools.r8.code.IfGtz -> 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>
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> x
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> y
com.android.tools.r8.code.IfLe -> 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>
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> x
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> y
com.android.tools.r8.code.IfLez -> 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>
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> x
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> y
com.android.tools.r8.code.IfLt -> 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>
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> x
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> y
com.android.tools.r8.code.IfLtz -> 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>
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> x
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> y
com.android.tools.r8.code.IfNe -> 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>
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> x
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> y
com.android.tools.r8.code.IfNez -> 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>
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> x
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> y
com.android.tools.r8.code.Iget -> com.android.tools.r8.code.f1:
    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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.IgetBoolean -> com.android.tools.r8.code.g1:
    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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.IgetByte -> com.android.tools.r8.code.h1:
    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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():46:46 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.IgetChar -> com.android.tools.r8.code.i1:
    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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():46:46 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.IgetObject -> com.android.tools.r8.code.j1:
    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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():42:42 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.IgetShort -> com.android.tools.r8.code.k1:
    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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():42:42 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.IgetWide -> 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):47:47 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexField getField():42:42 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.InstanceOf -> 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.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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:com.android.tools.r8.graph.DexType getType():46:46 -> x
com.android.tools.r8.code.Instruction -> com.android.tools.r8.code.n1:
    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):187:187 -> a
    10:10:java.lang.String formatOffset(int):179:179 -> a
    10:10:java.lang.String formatRelativeOffset(int):187 -> a
    11:11:java.lang.String formatRelativeOffset(int):187:187 -> a
    12:12:java.lang.String formatDecimalOffset(int):183:183 -> a
    12:12:java.lang.String formatRelativeOffset(int):187 -> a
    13:13:java.lang.String formatRelativeOffset(int):187:187 -> a
    14:22:java.lang.String formatSmaliString(java.lang.String):200:208 -> a
    23:23:java.lang.String toSmaliString(com.android.tools.r8.code.Instruction):248:248 -> a
    24:24:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):260:260 -> a
    com.android.tools.r8.code.ConstString asConstString() -> 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):191:192 -> b
    6:6:java.lang.String formatOffset(int):179:179 -> b
    6:6:java.lang.String formatString(java.lang.String):192 -> b
    7:11:java.lang.String formatString(java.lang.String):192:196 -> b
    com.android.tools.r8.code.ConstStringJumbo asConstStringJumbo() -> c
    1:1:short read8BitValue(com.android.tools.r8.code.BytecodeStream):43:43 -> c
    com.android.tools.r8.code.DexItemBasedConstString asDexItemBasedConstString() -> d
    1:1:short readSigned16BitValue(com.android.tools.r8.code.BytecodeStream):48:48 -> d
    boolean canThrow() -> e
    1:2:int readSigned32BitValue(com.android.tools.r8.code.BytecodeStream):56:57 -> e
    com.android.tools.r8.graph.DexField getField() -> f
    1:1:byte readSigned8BitValue(com.android.tools.r8.code.BytecodeStream):39:39 -> f
    com.android.tools.r8.graph.DexMethod getMethod() -> g
    java.lang.String getName() -> h
    1:1:int getOffset():119:119 -> i
    int getOpcode() -> j
    int getPayloadOffset() -> k
    int getSize() -> l
    java.lang.String getSmaliName() -> m
    1:1:int[] getTargets():212:212 -> n
    boolean hasPayload() -> o
    boolean isCheckCast() -> p
    boolean isConstString() -> q
    boolean isConstStringJumbo() -> r
    boolean isDexItemBasedConstString() -> s
    boolean isIntSwitch() -> t
    1:1:java.lang.String toString():265:265 -> toString
    boolean isPayload() -> u
    1:1:boolean isSimpleNop():155:155 -> v
    boolean isSwitchPayload() -> w
com.android.tools.r8.code.InstructionFactory -> com.android.tools.r8.code.o1:
    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.o1$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.p1:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.IntToChar -> com.android.tools.r8.code.q1:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.IntToDouble -> com.android.tools.r8.code.r1:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.IntToFloat -> com.android.tools.r8.code.s1:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.IntToLong -> com.android.tools.r8.code.t1:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.IntToShort -> com.android.tools.r8.code.u1:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.InvokeCustom -> com.android.tools.r8.code.v1:
    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[]):1428:1444 -> 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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.InvokeCustomRange -> com.android.tools.r8.code.w1:
    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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.InvokeDirect -> com.android.tools.r8.code.x1:
    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() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():49:49 -> g
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.InvokeDirectRange -> com.android.tools.r8.code.y1:
    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() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():43:43 -> g
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.InvokeInterface -> com.android.tools.r8.code.z1:
    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:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):54:55 -> a
    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):54:54 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():49:49 -> g
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.InvokeInterfaceRange -> com.android.tools.r8.code.A1:
    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() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> g
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.InvokePolymorphic -> com.android.tools.r8.code.B1:
    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:17:boolean com.android.tools.r8.code.Format45cc.equals(java.lang.Object):75:86 -> a
    18:19:void com.android.tools.r8.code.Format45cc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):92:93 -> a
    18:19:void com.android.tools.r8.code.Format45cc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0 -> a
    20:22:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):98:100 -> a
    20:22:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):0 -> a
    23:23:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    23:23:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):100 -> a
    23:23:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):0 -> a
    24:24:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):101:101 -> a
    24:24:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):0 -> a
    25:32:java.lang.String com.android.tools.r8.code.Format45cc.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):106:113 -> a
    25:32:java.lang.String com.android.tools.r8.code.Format45cc.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):0 -> a
    33:35: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
    36:44: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
    boolean canThrow() -> e
    boolean com.android.tools.r8.code.Format45cc.equals(java.lang.Object) -> equals
    com.android.tools.r8.graph.DexMethod com.android.tools.r8.code.Format45cc.getMethod() -> g
    java.lang.String getName() -> h
    int com.android.tools.r8.code.Format45cc.hashCode() -> hashCode
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:com.android.tools.r8.graph.DexMethod com.android.tools.r8.code.Format45cc.getMethod():151:151 -> x
    1:9:int com.android.tools.r8.code.Format45cc.hashCode():62:70 -> y
com.android.tools.r8.code.InvokePolymorphicRange -> com.android.tools.r8.code.C1:
    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:16:boolean com.android.tools.r8.code.Format4rcc.equals(java.lang.Object):58:62 -> a
    17:24:java.lang.String com.android.tools.r8.code.Format4rcc.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):85:92 -> a
    17:24:java.lang.String com.android.tools.r8.code.Format4rcc.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):0 -> a
    25:26:void com.android.tools.r8.code.Format4rcc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):98:99 -> a
    25:26:void com.android.tools.r8.code.Format4rcc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0 -> a
    27:33: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
    boolean canThrow() -> e
    boolean com.android.tools.r8.code.Format4rcc.equals(java.lang.Object) -> equals
    1:1:com.android.tools.r8.graph.DexMethod getMethod():46:46 -> g
    java.lang.String getName() -> h
    int com.android.tools.r8.code.Format4rcc.hashCode() -> hashCode
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:2:int com.android.tools.r8.code.Format4rcc.hashCode():52:53 -> x
com.android.tools.r8.code.InvokeStatic -> com.android.tools.r8.code.D1:
    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() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> g
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.InvokeStaticRange -> 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):43:43 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> g
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.InvokeSuper -> 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:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):54:54 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():49:49 -> g
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.InvokeSuperRange -> 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() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> g
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.InvokeVirtual -> com.android.tools.r8.code.H1:
    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() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> g
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.InvokeVirtualRange -> com.android.tools.r8.code.I1:
    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() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> g
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.Iput -> com.android.tools.r8.code.J1:
    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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.IputBoolean -> com.android.tools.r8.code.K1:
    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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.IputByte -> 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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.IputChar -> 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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.IputObject -> 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):52:52 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.IputShort -> 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):52:52 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.IputWide -> 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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.LongToDouble -> com.android.tools.r8.code.Q1:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.LongToFloat -> com.android.tools.r8.code.R1:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.LongToInt -> com.android.tools.r8.code.S1:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MonitorEnter -> com.android.tools.r8.code.T1:
    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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MonitorExit -> com.android.tools.r8.code.U1:
    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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.Move -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.Move16 -> com.android.tools.r8.code.V1:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MoveException -> 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):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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MoveFrom16 -> 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: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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MoveObject -> 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
    4:4:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1198:1198 -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MoveObject16 -> 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 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):1198:1198 -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MoveObjectFrom16 -> 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: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):1198:1198 -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MoveResult -> com.android.tools.r8.code.c2:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MoveResultObject -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MoveResultWide -> com.android.tools.r8.code.e2:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MoveWide -> 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
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MoveWide16 -> 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
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MoveWideFrom16 -> 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: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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MulDouble -> com.android.tools.r8.code.j2:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MulDouble2Addr -> com.android.tools.r8.code.i2:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MulFloat -> com.android.tools.r8.code.l2:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MulFloat2Addr -> 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):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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MulInt -> com.android.tools.r8.code.n2:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MulInt2Addr -> 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):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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MulIntLit16 -> 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,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MulIntLit8 -> com.android.tools.r8.code.p2:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MulLong -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.MulLong2Addr -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.NegDouble -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.NegFloat -> 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
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.NegInt -> 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):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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.NegLong -> com.android.tools.r8.code.v2:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.NewArray -> com.android.tools.r8.code.w2:
    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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.NewInstance -> com.android.tools.r8.code.x2:
    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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:com.android.tools.r8.graph.DexType getType():46:46 -> x
com.android.tools.r8.code.Nop -> com.android.tools.r8.code.y2:
    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
    java.lang.String getName() -> h
    1:1:int com.android.tools.r8.code.Format10x.hashCode():30:30 -> hashCode
    1:1:int hashCode():36 -> hashCode
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.NotInt -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.NotLong -> 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,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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.OrInt -> com.android.tools.r8.code.C2:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.OrInt2Addr -> 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 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.OrIntLit16 -> com.android.tools.r8.code.D2:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.OrIntLit8 -> 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,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.OrLong -> 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,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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.OrLong2Addr -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.PackedSwitch -> com.android.tools.r8.code.H2:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    boolean isIntSwitch() -> t
com.android.tools.r8.code.PackedSwitchPayload -> com.android.tools.r8.code.I2:
    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: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):179:179 -> 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):183:183 -> 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 -> l
    boolean isPayload() -> u
    1:1:int[] keys():85:85 -> x
    1:1:int numberOfKeys():75:75 -> y
    1:1:int[] switchTargetOffsets():80:80 -> z
com.android.tools.r8.code.RemDouble -> 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>
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.RemDouble2Addr -> 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,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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.RemFloat -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.RemFloat2Addr -> com.android.tools.r8.code.L2:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.RemInt -> 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,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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.RemInt2Addr -> 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: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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.RemIntLit16 -> com.android.tools.r8.code.P2:
    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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.RemIntLit8 -> com.android.tools.r8.code.Q2:
    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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.RemLong -> com.android.tools.r8.code.S2:
    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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.RemLong2Addr -> com.android.tools.r8.code.R2:
    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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.Return -> com.android.tools.r8.code.T2:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:int[] getTargets():39:39 -> n
com.android.tools.r8.code.ReturnObject -> com.android.tools.r8.code.U2:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:int[] getTargets():39:39 -> n
com.android.tools.r8.code.ReturnVoid -> com.android.tools.r8.code.V2:
    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
    java.lang.String getName() -> h
    1:1:int com.android.tools.r8.code.Format10x.hashCode():30:30 -> hashCode
    1:1:int hashCode():8 -> hashCode
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:int[] getTargets():37:37 -> n
com.android.tools.r8.code.ReturnWide -> 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):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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    1:1:int[] getTargets():39:39 -> n
com.android.tools.r8.code.RsubInt -> 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,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.RsubIntLit8 -> 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,int):19:19 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.Sget -> com.android.tools.r8.code.Z2:
    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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SgetBoolean -> 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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SgetByte -> 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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SgetChar -> 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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SgetObject -> 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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SgetShort -> 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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SgetWide -> 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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.ShlInt -> 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,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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.ShlInt2Addr -> 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):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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.ShlIntLit8 -> com.android.tools.r8.code.i3:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.ShlLong -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.ShlLong2Addr -> com.android.tools.r8.code.j3:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.ShrInt -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.ShrInt2Addr -> com.android.tools.r8.code.l3:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.ShrIntLit8 -> 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>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.ShrLong -> 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,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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.ShrLong2Addr -> com.android.tools.r8.code.o3:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SparseSwitch -> 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):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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
    boolean isIntSwitch() -> t
com.android.tools.r8.code.SparseSwitchPayload -> com.android.tools.r8.code.r3:
    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: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 -> l
    boolean isPayload() -> u
    1:1:int[] keys():87:87 -> x
    1:1:int numberOfKeys():82:82 -> y
    1:1:int[] switchTargetOffsets():92:92 -> z
com.android.tools.r8.code.Sput -> com.android.tools.r8.code.s3:
    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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SputBoolean -> com.android.tools.r8.code.t3:
    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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SputByte -> com.android.tools.r8.code.u3:
    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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SputChar -> com.android.tools.r8.code.v3:
    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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SputObject -> com.android.tools.r8.code.w3:
    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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SputShort -> com.android.tools.r8.code.x3:
    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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SputWide -> 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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> f
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SubDouble -> com.android.tools.r8.code.A3:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SubDouble2Addr -> 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):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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SubFloat -> com.android.tools.r8.code.C3:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SubFloat2Addr -> com.android.tools.r8.code.B3:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SubInt -> com.android.tools.r8.code.E3:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SubInt2Addr -> com.android.tools.r8.code.D3:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SubLong -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SubLong2Addr -> com.android.tools.r8.code.F3:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.SwitchPayload -> com.android.tools.r8.code.H3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):11:11 -> <init>
    2:2:void <init>():14:14 -> <init>
    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder) -> a
    boolean isSwitchPayload() -> w
    int[] keys() -> x
    int numberOfKeys() -> y
    int[] switchTargetOffsets() -> z
com.android.tools.r8.code.Throw -> com.android.tools.r8.code.I3:
    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() -> e
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.UshrInt -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.UshrInt2Addr -> com.android.tools.r8.code.J3:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.UshrIntLit8 -> com.android.tools.r8.code.L3:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.UshrLong -> com.android.tools.r8.code.N3:
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.UshrLong2Addr -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.XorInt -> 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,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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.XorInt2Addr -> 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):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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.XorIntLit16 -> 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>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.XorIntLit8 -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.XorLong -> 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>
    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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.code.XorLong2Addr -> 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() -> h
    int getOpcode() -> j
    java.lang.String getSmaliName() -> m
com.android.tools.r8.com.google.common.base.Absent -> com.android.tools.r8.t.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.t.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:37:java.lang.String toLowerCase(java.lang.String):403:413 -> a
com.android.tools.r8.com.google.common.base.CharMatcher -> com.android.tools.r8.t.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 none():117:117 -> b
    1:1:java.util.function.Predicate negate():53:53 -> negate
    2:2:com.android.tools.r8.com.google.common.base.CharMatcher negate():497:497 -> negate
com.android.tools.r8.com.google.common.base.CharMatcher$Any -> com.android.tools.r8.t.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 -> negate
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():1209 -> negate
    2:2:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher.none():117:117 -> negate
    2:2:com.android.tools.r8.com.google.common.base.CharMatcher negate():1209 -> negate
    2:2:java.util.function.Predicate negate():1117 -> negate
com.android.tools.r8.com.google.common.base.CharMatcher$Ascii -> com.android.tools.r8.t.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.t.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 -> c
    1:1:char[] zeroes():1444:1444 -> d
com.android.tools.r8.com.google.common.base.CharMatcher$Invisible -> com.android.tools.r8.t.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.t.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.t.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: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
    2:2:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.negate():1056:1056 -> negate
    2:2:com.android.tools.r8.com.google.common.base.CharMatcher 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.t.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 -> negate
    2:2:com.android.tools.r8.com.google.common.base.CharMatcher negate():1629:1629 -> negate
    2:2: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.t.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.t.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 -> negate
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():1312 -> negate
    2:2:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher.any():108:108 -> negate
    2:2:com.android.tools.r8.com.google.common.base.CharMatcher negate():1312 -> negate
    2:2:java.util.function.Predicate negate():1214 -> negate
com.android.tools.r8.com.google.common.base.CharMatcher$RangesMatcher -> com.android.tools.r8.t.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.t.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.t.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.t.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.t.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.t.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.t.a.a.a.r:
com.android.tools.r8.com.google.common.base.Equivalence$Equals -> com.android.tools.r8.t.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.t.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.t.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.t.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.t.a.a.a.w:
com.android.tools.r8.com.google.common.base.FunctionalEquivalence -> com.android.tools.r8.t.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.t.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.t.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.t.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$ObjectPredicate.withNarrowedType():0:0 -> a
    2:2:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.alwaysFalse():62 -> a
    3:3: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
    4:8: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
    9:9:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean):121:121 -> a
    10:10:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.Object):135:135 -> a
    11:30:java.lang.String com.android.tools.r8.com.google.common.base.Strings.repeat(java.lang.String,int):146:165 -> a
    31:31:java.lang.String com.android.tools.r8.com.google.common.base.Strings.repeat(java.lang.String,int):155:155 -> a
    32:32: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
    33:33: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
    33:33: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
    34:34: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
    35:35:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    35:35: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
    36:36:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    36:36: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
    37:37:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,char):170:170 -> a
    38:46:java.lang.String com.android.tools.r8.com.google.common.base.Strings.commonPrefix(java.lang.CharSequence,java.lang.CharSequence):180:188 -> a
    47:47:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    47:47:java.lang.String com.android.tools.r8.com.google.common.base.Strings.commonPrefix(java.lang.CharSequence,java.lang.CharSequence):178 -> a
    48:48:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    48:48:java.lang.String com.android.tools.r8.com.google.common.base.Strings.commonPrefix(java.lang.CharSequence,java.lang.CharSequence):177 -> a
    49:49:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,int):181:181 -> a
    50:50:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,long):192:192 -> a
    51:51:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,java.lang.Object):204:204 -> a
    52:54:boolean com.android.tools.r8.com.google.common.base.Strings.validSurrogatePairAt(java.lang.CharSequence,int):222:224 -> a
    55:55:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,int,int):276:276 -> a
    56:56:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,java.lang.Object,java.lang.Object):396:396 -> a
    57:57:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    58:58:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object,java.lang.Object):805:805 -> a
    59:59:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196:1196 -> a
    59:59:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
    60:60:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badElementIndex(int,int,java.lang.String):1207:1207 -> a
    60:60:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196 -> a
    60:60:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
    61:61:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badElementIndex(int,int,java.lang.String):1205:1205 -> a
    61:61:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196 -> a
    61:61:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
    62:62:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badElementIndex(int,int,java.lang.String):1203:1203 -> a
    62:62:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196 -> a
    62:62:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
    63:63:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196:1196 -> a
    63:63:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
    64:68:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndex(int,int,java.lang.String):1248:1252 -> a
    69:69:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndex(int,int,java.lang.String):1250:1250 -> a
    70:70:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271:1271 -> a
    71:71:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndexes(int,int,int):1283:1283 -> a
    71:71:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271 -> a
    72:72:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndexes(int,int,int):1280:1280 -> a
    72:72:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271 -> a
    73:73:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndexes(int,int,int):1277:1277 -> a
    73:73:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271 -> a
    74:74:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271:1271 -> a
    75:103: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.Predicate com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate.withNarrowedType():0:0 -> b
    2:2:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.alwaysTrue():54 -> b
    3:3:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper toStringHelper(java.lang.Object):100:100 -> b
    4:4:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean):443:443 -> b
    5:5:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean,java.lang.String,int):509:509 -> b
    6:6:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean,java.lang.String,java.lang.Object):534:534 -> b
    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
    7:7:java.lang.Object firstNonNull(java.lang.Object,java.lang.Object):56 -> b
    8:8:int com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndex(int,int,java.lang.String):1241:1241 -> b
    8:8: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.t.a.a.a.A:
com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper -> com.android.tools.r8.t.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
    2:2:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper add(java.lang.String,int):218:218 -> 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:20:java.lang.String toString():331:350 -> toString
    21:39:java.lang.String toString():336:354 -> toString
com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper$ValueHolder -> com.android.tools.r8.t.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.t.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.t.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.t.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:2:com.android.tools.r8.com.google.common.base.CommonPattern com.android.tools.r8.com.google.common.base.Platform$JdkPatternCompiler.compile(java.lang.String):98:98 -> a
    2:2:com.android.tools.r8.com.google.common.base.CommonPattern compilePattern(java.lang.String):66 -> a
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    3:3: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.t.a.a.a.G:
com.android.tools.r8.com.google.common.base.Platform$JdkPatternCompiler -> com.android.tools.r8.t.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.t.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.t.a.a.a.K:
com.android.tools.r8.com.google.common.base.Predicates$NotPredicate -> com.android.tools.r8.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.a.a.a.V:
com.android.tools.r8.com.google.common.base.Suppliers$MemoizingSupplier -> com.android.tools.r8.t.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.t.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.t.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:1:void throwIfInstanceOf(java.lang.Throwable,java.lang.Class):75:75 -> a
    1:1:void propagateIfInstanceOf(java.lang.Throwable,java.lang.Class):104 -> a
    1:1:void propagateIfPossible(java.lang.Throwable,java.lang.Class):184 -> a
    2:6:void throwIfUnchecked(java.lang.Throwable):129:133 -> a
    2:6:void propagateIfPossible(java.lang.Throwable):159 -> a
    2:6:void propagateIfPossible(java.lang.Throwable,java.lang.Class):185 -> a
    7:7:void throwIfUnchecked(java.lang.Throwable):130:130 -> a
    7:7:void propagateIfPossible(java.lang.Throwable):159 -> a
    7:7:void propagateIfPossible(java.lang.Throwable,java.lang.Class):185 -> a
    8:8:void throwIfInstanceOf(java.lang.Throwable,java.lang.Class):76:76 -> a
    8:8:void propagateIfInstanceOf(java.lang.Throwable,java.lang.Class):104 -> a
    8:8:void propagateIfPossible(java.lang.Throwable,java.lang.Class):184 -> a
com.android.tools.r8.com.google.common.collect.AbstractIndexedListIterator -> com.android.tools.r8.t.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.t.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>
    java.lang.Object computeNext() -> f
    1:1:java.lang.Object endOfData():125:125 -> g
    1:2:boolean hasNext():132:133 -> hasNext
    3:6:boolean tryToComputeNext():144:147 -> hasNext
    3:6:boolean hasNext():140 -> hasNext
    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.t.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.t.a.a.b.d:
    1:1:void <init>(java.util.Map):45:45 -> <init>
    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
    2:2:java.util.List get(java.lang.Object):67:67 -> 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.t.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:10:java.util.Spliterator entrySpliterator():1263:1272 -> i
    11: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.t.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.t.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:2:void clear():1369:1370 -> clear
    3:3:void com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap$AsMapIterator.<init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap):1418:1418 -> clear
    3:3:void clear():1372 -> clear
    4:4:boolean com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap$AsMapIterator.hasNext():1423:1423 -> clear
    4:4:void com.android.tools.r8.com.google.common.collect.Iterators.clear(java.util.Iterator):1033 -> clear
    4:4:void clear():1372 -> clear
    5:7:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap$AsMapIterator.next():1428:1430 -> clear
    5:7:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap$AsMapIterator.next():1417 -> clear
    5:7:void com.android.tools.r8.com.google.common.collect.Iterators.clear(java.util.Iterator):1034 -> clear
    5:7:void clear():1372 -> clear
    8:10:void com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap$AsMapIterator.remove():1435:1437 -> clear
    8:10:void com.android.tools.r8.com.google.common.collect.Iterators.clear(java.util.Iterator):1035 -> clear
    8:10: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.t.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:java.util.Map map():1385:1385 -> a
    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.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.t.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.t.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.t.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.t.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.t.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:1:java.util.NavigableSet createKeySet():1598:1598 -> f
    1:1:java.util.SortedSet createKeySet():1498 -> f
    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.SortedMap com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedAsMap.sortedMap():1449:1449 -> g
    1:1:java.util.NavigableMap sortedMap():1506 -> g
    2:2:java.util.NavigableMap sortedMap():1506:1506 -> g
    3:3:java.util.SortedMap sortedMap():1498:1498 -> g
    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:2:java.util.SortedSet com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedAsMap.keySet():1488:1489 -> keySet
    1:2:java.util.NavigableSet keySet():1593 -> keySet
    3:3:java.util.NavigableSet keySet():1593:1593 -> keySet
    4:4:java.util.Set keySet():1498:1498 -> keySet
    5:5:java.util.SortedSet keySet():1498:1498 -> keySet
    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.t.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.util.SortedMap sortedMap():1057:1057 -> a
    2:2:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> a
    2:2:java.util.SortedMap com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedKeySet.sortedMap():1023 -> a
    2:2:java.util.NavigableMap sortedMap():1065 -> a
    3:3:java.util.SortedMap com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedKeySet.sortedMap():1023:1023 -> a
    3:3:java.util.NavigableMap sortedMap():1065 -> a
    4:4:java.util.NavigableMap sortedMap():1065:1065 -> a
    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.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.t.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.t.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.util.SortedSet createKeySet():1494:1494 -> f
    1:1:java.lang.Object firstKey():1459:1459 -> firstKey
    1:1:java.util.SortedMap sortedMap():1449:1449 -> g
    1:1:java.util.SortedMap headMap(java.lang.Object):1469:1469 -> headMap
    1:1:java.util.Set keySet():1442:1442 -> keySet
    2:3:java.util.SortedSet keySet():1488:1489 -> 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.t.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.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> a
    1:1:java.util.SortedMap sortedMap():1023 -> a
    2:2:java.util.SortedMap sortedMap():1023:1023 -> a
    1:1:java.util.Comparator comparator():1028:1028 -> comparator
    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.t.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:4:void addToMap():413:416 -> a
    1:7:boolean add(java.lang.Object):514:520 -> add
    1:10:boolean addAll(java.util.Collection):534:543 -> addAll
    1:1:java.util.Collection getDelegate():448:448 -> b
    1:3:void refreshIfEmpty():376:378 -> c
    4:4:java.util.Collection getDelegate():448:448 -> c
    4:4:void refreshIfEmpty():378 -> c
    5:11:void refreshIfEmpty():378:384 -> c
    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 removeIfEmpty():394:397 -> d
    1:2:boolean equals(java.lang.Object):431:432 -> equals
    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.t.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:3:void validateIterator():481:483 -> f
    1:2:boolean hasNext():489:490 -> hasNext
    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.t.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.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> e
    1:1:java.util.List getListDelegate():785 -> e
    2:2:java.util.List getListDelegate():785:785 -> e
    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: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:8: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):331:331 -> subList
    8:8: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:8:java.util.List subList(int,int):864 -> subList
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedList$WrappedListIterator -> com.android.tools.r8.t.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:2:java.util.Iterator com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection$WrappedIterator.getDelegateIterator():507:508 -> g
    1:2:java.util.ListIterator getDelegateListIterator():879 -> g
    3:3:java.util.ListIterator getDelegateListIterator():879:879 -> g
    1:1:boolean hasPrevious():884:884 -> hasPrevious
    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.t.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.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> e
    1:1:java.util.SortedSet com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedSortedSet.getSortedSetDelegate():655 -> e
    1:1:java.util.NavigableSet getSortedSetDelegate():712 -> e
    2:2:java.util.SortedSet com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedSortedSet.getSortedSetDelegate():655:655 -> e
    2:2:java.util.NavigableSet getSortedSetDelegate():712 -> e
    3:3:java.util.NavigableSet getSortedSetDelegate():712:712 -> e
    4:4:java.util.SortedSet getSortedSetDelegate():703:703 -> e
    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.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.t.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.t.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:1:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> e
    1:1:java.util.SortedSet getSortedSetDelegate():655 -> e
    2:2:java.util.SortedSet getSortedSetDelegate():655:655 -> e
    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: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.t.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:2:int distinctElements():145:145 -> b
    3:4:int count(java.lang.Object):208:209 -> b
    5:19: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:3:java.util.Iterator entryIterator():86:87 -> c
    4:9:int setCount(java.lang.Object,int):274:279 -> 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):280 -> c
    11:11:int setCount(java.lang.Object,int):282:282 -> c
    12:12:int getAndSet(com.android.tools.r8.com.google.common.collect.Count,int):299:299 -> c
    12:12:int setCount(java.lang.Object,int):283 -> c
    13:17: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 size():152:152 -> size
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset$1 -> com.android.tools.r8.t.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.t.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.t.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.t.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.t.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.t.a.a.b.l:
com.android.tools.r8.com.google.common.collect.AbstractMultimap$Entries -> com.android.tools.r8.t.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.t.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:1:java.util.Set createEntrySet():212:212 -> a
    2:6: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
    2:6: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
    int count(java.lang.Object) -> b
    int distinctElements() -> b
    1:1:int add(java.lang.Object,int):91:91 -> b
    java.util.Iterator entryIterator() -> c
    1:9: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
    1:9:int setCount(java.lang.Object,int):109 -> c
    1:3:java.util.Set entrySet():186:188 -> entrySet
    1:1:boolean equals(java.lang.Object):226:226 -> equals
    1:1:int hashCode():237:237 -> hashCode
    1:1:boolean isEmpty():57:57 -> isEmpty
    1:1:java.util.Set elementSet():155:155 -> k
    2:2:java.util.Set createElementSet():167:167 -> k
    2:2:java.util.Set elementSet():157 -> k
    3:3:java.util.Set elementSet():157:157 -> k
    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.t.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.t.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 -> a
    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.t.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
    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:java.util.List get(java.lang.Object):65:65 -> get
    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.t.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() -> i
com.android.tools.r8.com.google.common.collect.CollectCollectors -> com.android.tools.r8.t.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.t.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.t.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.t.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.t.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.t.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.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[]):219:219 -> a
    177:177:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[],int):225:225 -> a
    177:177:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[]):219 -> a
    178:178:java.lang.Object com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementNotNull(java.lang.Object,int):235:235 -> a
    179:179:int com.android.tools.r8.com.google.common.collect.Maps.capacity(int):309:309 -> a
    180:180:boolean com.android.tools.r8.com.google.common.collect.Iterables.addAll(java.util.Collection,java.lang.Iterable):331:331 -> a
    181:181:java.util.Collection cast(java.lang.Iterable):377:377 -> a
    181:181:boolean com.android.tools.r8.com.google.common.collect.Iterables.addAll(java.util.Collection,java.lang.Iterable):332 -> a
    182:184:boolean com.android.tools.r8.com.google.common.collect.Iterables.addAll(java.util.Collection,java.lang.Iterable):333:335 -> a
    185:185:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    185:185:boolean com.android.tools.r8.com.google.common.collect.Iterables.addAll(java.util.Collection,java.lang.Iterable):335 -> a
    186:194: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
    195:242: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
    243:243:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    243: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):343 -> 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):342 -> a
    245:246:boolean com.android.tools.r8.com.google.common.collect.Iterators.addAll(java.util.Collection,java.util.Iterator):372:373 -> a
    247:247:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    247:247:boolean com.android.tools.r8.com.google.common.collect.Iterators.addAll(java.util.Collection,java.util.Iterator):370 -> 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):369 -> a
    249:249:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.cycle(java.lang.Iterable):411:411 -> a
    250:250:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    250:250:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.cycle(java.lang.Iterable):410 -> a
    251:251:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
    252:252:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean,java.lang.Object):459:459 -> a
    252:252:void com.android.tools.r8.com.google.common.collect.CollectPreconditions.checkRemove(boolean):65 -> a
    253:253:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.concat(java.util.Iterator,java.util.Iterator):503:503 -> a
    254:254:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.consumingForArray(java.lang.Object[]):471:471 -> a
    254:254:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.concat(java.util.Iterator,java.util.Iterator):503 -> a
    255:255:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.concat(java.util.Iterator):578:578 -> 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.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    256:256:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.concat(java.util.Iterator,java.util.Iterator):502 -> a
    257:257: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
    258:261: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
    258:261: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
    258:261: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
    262:262: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
    263:265: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
    263:265: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
    266:266:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    266:266: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
    266:266: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
    267:267:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    267: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):743 -> a
    267: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:275:java.util.List com.android.tools.r8.com.google.common.collect.Lists.reverse(java.util.List):840:847 -> a
    276:288: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
    289:292: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
    293:294:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.limit(java.util.Iterator,int):951:952 -> a
    295:295:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    295:295:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.limit(java.util.Iterator,int):950 -> a
    296:313:boolean com.android.tools.r8.com.google.common.collect.Lists.equalsImpl(java.util.List,java.lang.Object):1017:1034 -> a
    314:324:boolean com.android.tools.r8.com.google.common.collect.Iterators.elementsEqual(java.util.Iterator,java.util.Iterator):274:284 -> a
    314:324:boolean com.android.tools.r8.com.google.common.collect.Lists.equalsImpl(java.util.List,java.lang.Object):1034 -> a
    325:330: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
    331:331:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.Iterators.emptyListIterator():90:90 -> a
    331:331: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
    332: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):1094:1094 -> a
    333:333: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
    334:334: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
    335:337: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
    338:339:int com.android.tools.r8.com.google.common.collect.Sets.hashCodeImpl(java.util.Set):1770:1771 -> a
    340:344:boolean com.android.tools.r8.com.google.common.collect.Sets.equalsImpl(java.util.Set,java.lang.Object):1786:1790 -> a
    345:348:java.util.NavigableSet com.android.tools.r8.com.google.common.collect.Sets.unmodifiableNavigableSet(java.util.NavigableSet):1817:1820 -> a
    349:350:boolean com.android.tools.r8.com.google.common.collect.Sets.removeAllImpl(java.util.Set,java.util.Iterator):1980:1981 -> a
    351:364:boolean com.android.tools.r8.com.google.common.collect.Sets.removeAllImpl(java.util.Set,java.util.Collection):1988:2001 -> a
    365:365:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    365:365:boolean com.android.tools.r8.com.google.common.collect.Sets.removeAllImpl(java.util.Set,java.util.Collection):1987 -> a
    366:366:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.safeGet(java.util.Map,java.lang.Object):3706:3706 -> a
    367:367:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    367:367:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.safeGet(java.util.Map,java.lang.Object):3704 -> a
    368:368:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.keyOrNull(java.util.Map$Entry):3891:3891 -> a
    369:374: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
    369:374:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.combinations(java.util.Set,int):1668 -> a
    375:378:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.combinations(java.util.Set,int):1669:1672 -> a
    379:379: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
    379:379:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.combinations(java.util.Set,int):1672 -> a
    380:383: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.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.emptyModifiableIterator():125:125 -> b
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.getOnlyElement(java.lang.Iterable):266:266 -> b
    4:18:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.getOnlyElement(java.util.Iterator):314:328 -> b
    4:18:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.getOnlyElement(java.lang.Iterable):266 -> b
    19:19:java.util.HashMap com.android.tools.r8.com.google.common.collect.Maps.newHashMapWithExpectedSize(int):300:300 -> 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.Set com.android.tools.r8.com.google.common.collect.Sets.newConcurrentHashSet():310:310 -> 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(java.lang.Object[]):235:235 -> d
    9:9:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSetWithExpectedSize(int):253:253 -> d
    9:9:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Object[]):235 -> d
    10:10:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Object[]):236:236 -> d
    11:11:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Iterable):275:275 -> d
    12:12:java.util.Collection cast(java.lang.Iterable):377:377 -> d
    12:12:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Iterable):276 -> d
    13:14:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Iterable):276:277 -> d
    15:15:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet():218:218 -> d
    15:15:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.util.Iterator):293 -> d
    15:15:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Iterable):277 -> d
    16:16:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.util.Iterator):294:294 -> 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.HashMap com.android.tools.r8.com.google.common.collect.Maps.newHashMap():283:283 -> 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.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet():218:218 -> 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
    1:1:java.util.IdentityHashMap com.android.tools.r8.com.google.common.collect.Maps.newIdentityHashMap():511:511 -> g
    1:1:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.newIdentityHashSet():466 -> g
    2:2:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.newIdentityHashSet():466:466 -> g
    1:1:java.util.LinkedHashSet com.android.tools.r8.com.google.common.collect.Sets.newLinkedHashSet():347:347 -> h
com.android.tools.r8.com.google.common.collect.ComparatorOrdering -> com.android.tools.r8.t.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.t.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.t.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.t.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,java.lang.Iterable):232:232 -> a
    3:3: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.t.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.t.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.t.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>
    java.lang.Object com.android.tools.r8.com.google.common.collect.ForwardingObject.delegate() -> a
    java.util.Collection delegate() -> a
    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
    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.t.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>
    java.util.Set com.android.tools.r8.com.google.common.collect.ForwardingSet.delegate() -> a
    java.util.SortedSet delegate() -> a
    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
    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.t.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:1:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry access$000(com.android.tools.r8.com.google.common.collect.HashBiMap):58:58 -> a
    2:2: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
    3:3: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
    4:4: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
    5:5:com.android.tools.r8.com.google.common.collect.HashBiMap create(java.util.Map):83:83 -> a
    6:6:com.android.tools.r8.com.google.common.collect.HashBiMap create(int):75:75 -> a
    6:6:com.android.tools.r8.com.google.common.collect.HashBiMap create(java.util.Map):83 -> a
    7:7:com.android.tools.r8.com.google.common.collect.HashBiMap create(java.util.Map):84:84 -> a
    8:9:void init(int):120:121 -> a
    10:10:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] createTable(int):361:361 -> a
    10:10:void init(int):122 -> a
    11:11:void init(int):122:122 -> a
    12:12:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] createTable(int):361:361 -> a
    12:12:void init(int):123 -> a
    13:18:void init(int):123:128 -> a
    19:64:void delete(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):136:181 -> a
    65:65:void delete(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):156:156 -> a
    66:66:void delete(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):140:140 -> a
    67:100: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
    101:104:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry seekByKey(java.lang.Object,int):222:225 -> a
    105:105:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry seekByKey(java.lang.Object,int):224:224 -> a
    106:106:java.lang.Object forcePut(java.lang.Object,java.lang.Object):268:268 -> a
    107:136:java.lang.Object put(java.lang.Object,java.lang.Object,boolean):272:301 -> a
    137:166:java.lang.Object putInverse(java.lang.Object,java.lang.Object,boolean):308:337 -> a
    137:166:java.lang.Object access$800(com.android.tools.r8.com.google.common.collect.HashBiMap,java.lang.Object,java.lang.Object,boolean):58 -> a
    167:167:java.lang.Object putInverse(java.lang.Object,java.lang.Object,boolean):308:308 -> a
    167:167:java.lang.Object access$800(com.android.tools.r8.com.google.common.collect.HashBiMap,java.lang.Object,java.lang.Object,boolean):58 -> 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: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:1:java.util.Iterator entryIterator():474:474 -> f
    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:com.android.tools.r8.com.google.common.collect.HashBiMap create(int):75:75 -> g
    1:1:com.android.tools.r8.com.google.common.collect.HashBiMap create():65 -> g
    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:com.android.tools.r8.com.google.common.collect.BiMap inverse():547:547 -> i
    1:3:void rehashIfNecessary():341:343 -> k
    4:4:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] createTable(int):361:361 -> k
    4:4:void rehashIfNecessary():345 -> k
    5:5:void rehashIfNecessary():345:345 -> k
    6:6:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] createTable(int):361:361 -> k
    6:6:void rehashIfNecessary():346 -> k
    7:14:void rehashIfNecessary():346:353 -> k
    15:18:void rehashIfNecessary():352:355 -> k
    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.t.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.t.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.t.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.t.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:java.util.Iterator entryIterator():645:645 -> f
    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:com.android.tools.r8.com.google.common.collect.BiMap forward():553:553 -> i
    1:1:com.android.tools.r8.com.google.common.collect.BiMap inverse():602 -> i
    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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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: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:com.android.tools.r8.com.google.common.collect.HashMultiset create():41:41 -> d
    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: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:java.util.Set elementSet():33:33 -> k
    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.t.a.a.b.L:
    1:1:void <init>():34:34 -> <init>
    1:1:boolean isPartialView():56:56 -> b
    1:1:boolean contains(java.lang.Object):41:41 -> contains
    com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection() -> h
    1:1:boolean isEmpty():51:51 -> isEmpty
    1:1:int size():46:46 -> size
com.android.tools.r8.com.google.common.collect.ImmutableBiMap -> com.android.tools.r8.t.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
    com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse() -> i
    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.ImmutableBiMap of():66:66 -> q
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet values():358:358 -> values
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection values():36 -> values
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet values():358:358 -> values
    2:2:java.util.Collection values():36 -> values
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet values():358:358 -> values
    3:3:java.util.Set values():36 -> values
com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder -> com.android.tools.r8.t.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
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder put(java.lang.Object,java.lang.Object):172:172 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder put(java.lang.Object,java.lang.Object):153 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):240:240 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):153 -> a
    5:29:com.android.tools.r8.com.google.common.collect.ImmutableBiMap build():253:277 -> a
    30:30:com.android.tools.r8.com.google.common.collect.ImmutableBiMap build():257:257 -> a
    31:31: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
    31:31:com.android.tools.r8.com.google.common.collect.ImmutableBiMap build():257 -> a
    32:32:com.android.tools.r8.com.google.common.collect.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of():66:66 -> a
    32:32:com.android.tools.r8.com.google.common.collect.ImmutableBiMap build():255 -> a
com.android.tools.r8.com.google.common.collect.ImmutableBiMapFauxverideShim -> com.android.tools.r8.t.a.a.b.N:
    1:1:void <init>():32:32 -> <init>
com.android.tools.r8.com.google.common.collect.ImmutableCollection -> com.android.tools.r8.t.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:7:com.android.tools.r8.com.google.common.collect.ImmutableList asList():311:317 -> a
    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 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableList asList():317 -> a
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableList asList():315:315 -> a
    10:10:com.android.tools.r8.com.google.common.collect.ImmutableList asList():313:313 -> a
    11:12: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
    boolean isPartialView() -> b
    1:1:void clear():297:297 -> clear
    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.t.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:7:com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder add(java.lang.Object):481:482 -> a
    8:8:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder add(java.lang.Object):480 -> a
    9:12:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder add(java.lang.Object[]):489:492 -> a
    13:15:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder addAll(java.lang.Iterable):499:501 -> a
    16:17: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
    16:17:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder addAll(java.lang.Iterable):503 -> a
    18:20:com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):510:512 -> a
    21:21:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    21:21:com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):509 -> a
com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder -> com.android.tools.r8.t.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.t.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.t.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:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createEntrySet():474:474 -> f
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createEntrySet():0 -> f
    1:1:void forEach(java.util.function.BiConsumer):103:103 -> forEach
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createKeySet():457:457 -> g
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createKeySet():0 -> g
    1:1:java.lang.Object get(java.lang.Object):78:78 -> get
    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() -> m
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator keyIterator():58:58 -> n
    1:1:java.util.Spliterator keySpliterator():63:63 -> o
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator entryIterator():94:94 -> r
    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 -> r
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator entryIterator():94 -> r
    1:1:int size():68:68 -> size
    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.t.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
    boolean isPartialView() -> b
    1:1:boolean contains(java.lang.Object):89:89 -> contains
    1:4:boolean containsAll(java.util.Collection):94:97 -> containsAll
    boolean isHashCodeFast() -> d
    1:4:boolean equals(java.lang.Object):110:113 -> equals
    1:1:void forEach(java.util.function.Consumer):79:79 -> forEach
    1:2:int hashCode():126:127 -> hashCode
    1:1:boolean isEmpty():102:102 -> isEmpty
    1:1:java.util.Iterator iterator():33:33 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():69:69 -> iterator
    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.t.a.a.b.W:
    1:1:void <init>():377:377 -> <init>
    com.android.tools.r8.com.google.common.collect.ImmutableList asList() -> a
    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
    10:10:com.android.tools.r8.com.google.common.collect.ImmutableList subListUnchecked(int,int):454:454 -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList reverse():598:598 -> c
    1:1:boolean contains(java.lang.Object):422:422 -> contains
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder builder():711:711 -> d
    2:2:void com.android.tools.r8.com.google.common.collect.ImmutableList$Builder.<init>():739:739 -> d
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder builder():711 -> d
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList of():81:81 -> e
    1:1:boolean equals(java.lang.Object):663:663 -> equals
    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:3:int hashCode():669:671 -> hashCode
    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
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator():388:388 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():383 -> iterator
    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
    3:3:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):393:393 -> 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
    2:4:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):435:437 -> subList
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableList of():81:81 -> subList
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):440 -> subList
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):442:442 -> subList
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object):93:93 -> subList
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):442 -> subList
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):444:444 -> subList
com.android.tools.r8.com.google.common.collect.ImmutableList$1 -> com.android.tools.r8.t.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.t.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$Builder add(java.lang.Object):757:757 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder addAll(java.lang.Iterable):772:772 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder add(java.lang.Object[]):787:787 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):809:809 -> a
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableList build():819:819 -> a
com.android.tools.r8.com.google.common.collect.ImmutableList$ReverseImmutableList -> com.android.tools.r8.t.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:int size():652:652 -> b
    1:1:int reverseIndex(int):609 -> b
    2:2:boolean isPartialView():657:657 -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList reverse():618:618 -> c
    1:1:boolean contains(java.lang.Object):623:623 -> contains
    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: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
    2:2:int size():652:652 -> subList
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):640 -> subList
    3:4:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):640:641 -> subList
    5:5:int size():652:652 -> subList
    5:5:int reversePosition(int):613 -> subList
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):641 -> subList
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):641:641 -> subList
com.android.tools.r8.com.google.common.collect.ImmutableList$SubList -> com.android.tools.r8.t.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>
    boolean isPartialView() -> b
    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
    2:3:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):479:480 -> subList
com.android.tools.r8.com.google.common.collect.ImmutableListMultimap -> com.android.tools.r8.t.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.t.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.t.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:com.android.tools.r8.com.google.common.collect.RegularImmutableMap com.android.tools.r8.com.google.common.collect.RegularImmutableMap.fromEntries(java.util.Map$Entry[]):54:54 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableMap of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):132 -> a
    4:4:void checkNoConflict(boolean,java.lang.String,java.util.Map$Entry,java.util.Map$Entry):190:190 -> a
    5:13:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):392:400 -> a
    14:18:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOfEnumMap(java.util.EnumMap):436:440 -> a
    14:18:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):400 -> a
    19:19:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403:403 -> a
    20:20:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):418:418 -> a
    20:20:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
    21:23:java.util.Collection com.android.tools.r8.com.google.common.collect.Iterables.castOrCopyToCollection(java.lang.Iterable):318:320 -> a
    21:23:java.lang.Object[] com.android.tools.r8.com.google.common.collect.Iterables.toArray(java.lang.Iterable,java.lang.Object[]):297 -> a
    21:23:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):418 -> a
    21:23:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
    24:24:java.lang.Object[] com.android.tools.r8.com.google.common.collect.Iterables.toArray(java.lang.Iterable,java.lang.Object[]):298:298 -> a
    24:24:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):418 -> a
    24:24:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
    25:37:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):418:430 -> a
    25:37:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
    38:39:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):423:424 -> a
    38: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.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of(java.lang.Object,java.lang.Object):73:73 -> a
    40:40:com.android.tools.r8.com.google.common.collect.ImmutableMap of(java.lang.Object,java.lang.Object):123 -> a
    40:40:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):424 -> a
    40:40:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
    41:41:com.android.tools.r8.com.google.common.collect.ImmutableMap of():113:113 -> a
    41:41:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):421 -> a
    41:41: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
    2:3:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():679:680 -> 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
    com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet() -> f
    com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet() -> g
    1:1:java.lang.Object getOrDefault(java.lang.Object,java.lang.Object):666:666 -> getOrDefault
    1:1:int hashCode():842:842 -> hashCode
    1:1:boolean isEmpty():647:647 -> isEmpty
    com.android.tools.r8.com.google.common.collect.ImmutableCollection createValues() -> k
    1:1:java.util.Set keySet():60:60 -> keySet
    2:3:com.android.tools.r8.com.google.common.collect.ImmutableSet keySet():694:695 -> keySet
    boolean isHashCodeFast() -> l
    boolean isPartialView() -> m
    1:1:java.lang.Object merge(java.lang.Object,java.lang.Object,java.util.function.BiFunction):582:582 -> merge
    1:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator keyIterator():706:707 -> n
    1:1:java.util.Spliterator keySpliterator():721:721 -> o
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder builder():184:184 -> p
    2:2:void com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder.<init>():234:234 -> p
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder builder():184 -> 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:com.android.tools.r8.com.google.common.collect.ImmutableMap of():113:113 -> q
    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: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
    2:3:com.android.tools.r8.com.google.common.collect.ImmutableCollection values():733:734 -> values
com.android.tools.r8.com.google.common.collect.ImmutableMap$1 -> com.android.tools.r8.t.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.t.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:14:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):330:332 -> a
    15:15:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    15:15:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):329 -> a
    16:23:com.android.tools.r8.com.google.common.collect.ImmutableMap build():366:373 -> a
    24:24:com.android.tools.r8.com.google.common.collect.ImmutableMap build():371:371 -> a
    25:25: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
    25:25: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
    25:25:com.android.tools.r8.com.google.common.collect.ImmutableMap build():371 -> a
    26:26:com.android.tools.r8.com.google.common.collect.ImmutableMap com.android.tools.r8.com.google.common.collect.ImmutableMap.of():113:113 -> a
    26:26: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.t.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 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():471:471 -> iterator
    2:2:java.util.Iterator iterator():462 -> iterator
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap map():466:466 -> j
com.android.tools.r8.com.google.common.collect.ImmutableMapEntry -> com.android.tools.r8.t.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() -> c
    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry getNextInValueBucket() -> d
    boolean isReusable() -> e
com.android.tools.r8.com.google.common.collect.ImmutableMapEntry$NonTerminalImmutableBiMapEntry -> com.android.tools.r8.t.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 -> d
com.android.tools.r8.com.google.common.collect.ImmutableMapEntry$NonTerminalImmutableMapEntry -> com.android.tools.r8.t.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 -> c
    boolean isReusable() -> e
com.android.tools.r8.com.google.common.collect.ImmutableMapEntrySet -> com.android.tools.r8.t.a.a.b.h0:
    1:1:void <init>():77:77 -> <init>
    1:1:boolean isPartialView():98:98 -> b
    1:4:boolean contains(java.lang.Object):88:91 -> contains
    1:1:boolean isHashCodeFast():104:104 -> d
    1:1:int hashCode():109:109 -> hashCode
    com.android.tools.r8.com.google.common.collect.ImmutableMap map() -> j
    1:1:int size():83:83 -> size
com.android.tools.r8.com.google.common.collect.ImmutableMapEntrySet$RegularEntrySet -> com.android.tools.r8.t.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:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():73:73 -> c
    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 -> c
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():73 -> c
    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 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():55:55 -> iterator
    2:2:java.util.Iterator iterator():39 -> iterator
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap map():50:50 -> j
    1:1:java.util.Spliterator spliterator():60:60 -> spliterator
com.android.tools.r8.com.google.common.collect.ImmutableMapKeySet -> com.android.tools.r8.t.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
    boolean isPartialView() -> b
    1:1:boolean contains(java.lang.Object):60:60 -> contains
    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:java.lang.Object get(int):65:65 -> get
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():50:50 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():50:50 -> iterator
    2:2: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.t.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:3:com.android.tools.r8.com.google.common.collect.ImmutableList asList():82:83 -> a
    4:4:void lambda$forEach$0(java.util.function.Consumer,java.lang.Object,java.lang.Object):100:100 -> a
    boolean isPartialView() -> b
    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: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 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():51:51 -> iterator
    2:2: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.t.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.t.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 -> h
com.android.tools.r8.com.google.common.collect.ImmutableMultimap -> com.android.tools.r8.t.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
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMap asMap():515:515 -> b
    2:2:java.util.Map asMap():67 -> b
    3:3:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> b
    3:3: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.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.t.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.t.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.t.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:1:boolean isPartialView():550:550 -> b
    2:2:boolean com.android.tools.r8.com.google.common.collect.ImmutableMultimap.isPartialView():476:476 -> b
    2:2:boolean isPartialView():550 -> b
    1:3:boolean contains(java.lang.Object):560:562 -> contains
    1:1:java.util.Iterator iterator():536:536 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():545:545 -> iterator
    3:3:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.ImmutableMultimap.entryIterator():595:595 -> iterator
    3:3:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():545 -> 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.t.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.t.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>
    boolean isPartialView() -> b
    1:2:int count(java.lang.Object):650:651 -> b
    3:4:com.android.tools.r8.com.google.common.collect.Multiset$Entry getEntry(int):666:667 -> b
    5:5: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 -> b
    5:5:com.android.tools.r8.com.google.common.collect.Multiset$Entry getEntry(int):667 -> b
    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
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():656:656 -> k
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMultimap.keySet():504:504 -> k
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():656 -> k
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():656:656 -> k
    3:3:java.util.Set elementSet():640 -> k
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMultimap.keySet():504:504 -> k
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():656 -> k
    4:4:java.util.Set elementSet():640 -> k
    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.t.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:5:com.android.tools.r8.com.google.common.collect.ImmutableList asList():267:268 -> a
    6:6:int remove(java.lang.Object,int):299:299 -> a
    7:7:boolean setCount(java.lang.Object,int,int):325:325 -> a
    8:10:int copyIntoArray(java.lang.Object[],int):331:333 -> a
    com.android.tools.r8.com.google.common.collect.Multiset$Entry getEntry(int) -> b
    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:1:java.util.Set entrySet():53:53 -> entrySet
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():362:362 -> entrySet
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():367:367 -> entrySet
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():363 -> entrySet
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():363:363 -> entrySet
    1:1:boolean equals(java.lang.Object):340:340 -> equals
    1:1:int hashCode():345:345 -> hashCode
    1:1:java.util.Iterator iterator():53:53 -> iterator
    2:3:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():239:240 -> iterator
    com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet() -> k
    1:1:java.lang.String toString():350:350 -> toString
com.android.tools.r8.com.google.common.collect.ImmutableMultiset$1 -> com.android.tools.r8.t.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.t.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:1:boolean isPartialView():376:376 -> b
    1:7:boolean contains(java.lang.Object):391:397 -> contains
    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.t.a.a.b.s0:
    1:1:void <init>():40:40 -> <init>
com.android.tools.r8.com.google.common.collect.ImmutableSet -> com.android.tools.r8.t.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:14: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
    15:22:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOf(java.util.Collection):259:266 -> a
    23:23:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOfEnumSet(java.util.EnumSet):329:329 -> a
    23:23:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOf(java.util.Collection):266 -> a
    24:25:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOf(java.util.Collection):268:269 -> a
    26:27:com.android.tools.r8.com.google.common.collect.ImmutableList asList():368:369 -> 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
    40:48:int chooseTableSize(int):229:237 -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():373:373 -> c
    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 -> c
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():373 -> c
    boolean isHashCodeFast() -> d
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder builder():445:445 -> e
    2:2:void com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder.<init>():471:471 -> e
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder builder():445 -> e
    1:7:boolean equals(java.lang.Object):343:349 -> equals
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet of():74:74 -> h
    1:1:int hashCode():354:354 -> hashCode
    1:1:java.util.stream.Collector toImmutableSet():65:65 -> i
com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder -> com.android.tools.r8.t.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:2:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder add(java.lang.Object):490:490 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder add(java.lang.Object[]):506:506 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder addAll(java.lang.Iterable):522:522 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):545:545 -> a
    6:9:com.android.tools.r8.com.google.common.collect.ImmutableSet build():555:558 -> a
com.android.tools.r8.com.google.common.collect.ImmutableSet$Indexed -> com.android.tools.r8.t.a.a.b.v0:
    1:1:void <init>():376:376 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():400:400 -> c
    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:java.util.Iterator iterator():376:376 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():381:381 -> 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.t.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 -> h
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():400 -> h
com.android.tools.r8.com.google.common.collect.ImmutableSortedAsList -> com.android.tools.r8.t.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.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableList.subListUnchecked(int,int):454:454 -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList subListUnchecked(int,int):83 -> b
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList subListUnchecked(int,int):84:84 -> b
    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.ImmutableSortedSet delegateCollection():39:39 -> h
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():29 -> h
    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: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.t.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:50:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap fromEntries(java.util.Comparator,boolean,java.util.Map$Entry[],int):374:375 -> a
    49:50:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap access$100(java.util.Comparator,boolean,java.util.Map$Entry[],int):63 -> a
    51:51:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap fromEntries(java.util.Comparator,boolean,java.util.Map$Entry[],int):374:374 -> a
    51: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:int size():594:594 -> a
    53:53:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap getSubMap(int,int):724 -> a
    54:54:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> a
    54:54:java.util.Comparator comparator():710 -> a
    54:54:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap getSubMap(int,int):727 -> a
    55:55:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> a
    55:55:java.util.Comparator comparator():710 -> a
    55:55:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap getSubMap(int,int):727 -> a
    56:59:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap getSubMap(int,int):727:730 -> a
    60:60:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet,com.android.tools.r8.com.google.common.collect.ImmutableList):580:580 -> a
    60:60:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap getSubMap(int,int):730 -> 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
    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
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():623:623 -> entrySet
    2:2:java.util.Set entrySet():62 -> entrySet
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():672:672 -> f
    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:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():685:685 -> g
    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
    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
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap headMap(java.lang.Object,boolean):763:763 -> headMap
    4:4:java.util.NavigableMap headMap(java.lang.Object,boolean):62 -> headMap
    5:5:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> headMap
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap headMap(java.lang.Object,boolean):763 -> headMap
    5:5: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.ImmutableCollection createValues():699:699 -> k
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> keySet
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet keySet():62 -> keySet
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> keySet
    2:2:java.util.Set keySet():62 -> keySet
    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 -> m
    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:java.util.Map$Entry pollFirstEntry():905:905 -> pollFirstEntry
    1:1:java.util.Map$Entry pollLastEntry():918:918 -> pollLastEntry
    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.ImmutableSortedSet keySet():680:680 -> subMap
    2:2:java.util.Comparator comparator():710 -> subMap
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):805 -> subMap
    3:3:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> subMap
    3:3:java.util.Comparator comparator():710 -> subMap
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):805 -> subMap
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):805:805 -> subMap
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):804:804 -> subMap
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap headMap(java.lang.Object,boolean):763:763 -> subMap
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):809 -> subMap
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842:842 -> subMap
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):809 -> subMap
    8:8:int size():594:594 -> subMap
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842 -> subMap
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):809 -> subMap
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842:842 -> subMap
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):809 -> subMap
    10:10:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> subMap
    10:10:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):803 -> subMap
    11:11:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> subMap
    11:11:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):802 -> subMap
    12:12:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,java.lang.Object):781:781 -> subMap
    12:12: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
    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
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842:842 -> 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
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842:842 -> tailMap
    6:6:java.util.NavigableMap tailMap(java.lang.Object,boolean):62 -> tailMap
    7:7:int size():594:594 -> tailMap
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842 -> tailMap
    7:7:java.util.NavigableMap tailMap(java.lang.Object,boolean):62 -> tailMap
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842:842 -> tailMap
    8:8:java.util.NavigableMap tailMap(java.lang.Object,boolean):62 -> tailMap
    9:9:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> tailMap
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842 -> tailMap
    9:9: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
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableCollection values():694:694 -> values
    2:2:java.util.Collection values():62 -> values
com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$1 -> com.android.tools.r8.t.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.t.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:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():647:647 -> c
    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 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():632:632 -> iterator
    2:2:java.util.Iterator iterator():628 -> iterator
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap map():669:669 -> j
    1:1:java.util.Spliterator spliterator():637:637 -> spliterator
com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$1EntrySet$1 -> com.android.tools.r8.t.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
    3:4:java.util.Map$Entry get(int):650:651 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():662:662 -> h
    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.t.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 build():467:467 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$Builder put(java.lang.Object,java.lang.Object):487:487 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder put(java.lang.Object,java.lang.Object):467 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$Builder put(java.lang.Object,java.lang.Object):487:487 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):552:552 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):467 -> a
    5:11:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap build():564:570 -> a
    12:12:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap build():568:568 -> a
    13:13:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap build():566:566 -> a
com.android.tools.r8.com.google.common.collect.ImmutableSortedMapFauxverideShim -> com.android.tools.r8.t.a.a.b.B0:
    1:1:void <init>():32:32 -> <init>
com.android.tools.r8.com.google.common.collect.ImmutableSortedSet -> com.android.tools.r8.t.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 subSetImpl(java.lang.Object,boolean,java.lang.Object,boolean) -> a
    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
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder orderedBy(java.util.Comparator):416:416 -> b
    1:1:java.util.Comparator comparator():577:577 -> comparator
    1:1:java.util.NavigableSet descendingSet():63:63 -> descendingSet
    2:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet descendingSet():762:765 -> 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() -> j
    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
    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
    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
    6:7:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):635:636 -> subSet
    6:7:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):63 -> subSet
    8:8:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> subSet
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):634 -> subSet
    8:8:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):63 -> subSet
    9:9:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> subSet
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):633 -> subSet
    9:9: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.t.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
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder add(java.lang.Object):479:479 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder add(java.lang.Object):455 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder add(java.lang.Object):479:479 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder add(java.lang.Object[]):494:494 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder add(java.lang.Object[]):455 -> a
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder addAll(java.lang.Iterable):509:509 -> a
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder addAll(java.lang.Iterable):455 -> a
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder addAll(java.lang.Iterable):509:509 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):531:531 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):455 -> a
    9:11:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet build():542:544 -> a
com.android.tools.r8.com.google.common.collect.ImmutableSortedSetFauxverideShim -> com.android.tools.r8.t.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.t.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.t.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.t.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.t.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.t.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 -> f
com.android.tools.r8.com.google.common.collect.Iterators$6 -> com.android.tools.r8.t.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.t.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.t.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.t.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.t.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.t.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.t.a.a.b.P0:
com.android.tools.r8.com.google.common.collect.Lists$RandomAccessReverseList -> com.android.tools.r8.t.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.t.a.a.b.S0:
    java.util.List forwardList -> a
    1:2:void <init>(java.util.List):854:855 -> <init>
    1:1:java.util.List getForwardList():859:859 -> a
    2:2:int size():906:906 -> a
    2:2:int reversePosition(int):869 -> a
    2:2:int access$000(com.android.tools.r8.com.google.common.collect.Lists$ReverseList,int):851 -> a
    3:3:int reversePosition(int):870:870 -> a
    3:3: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.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.t.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.t.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:int getConcurrencyLevel():186:186 -> a
    1:1:int getInitialCapacity():152:152 -> b
    1:1:com.android.tools.r8.com.google.common.base.Equivalence getKeyEquivalence():127:127 -> c
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength getKeyStrength():217:217 -> d
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength getValueStrength():263:263 -> e
    1:2:java.util.concurrent.ConcurrentMap makeMap():278:279 -> f
    3:3:int getInitialCapacity():152:152 -> f
    3:3:java.util.concurrent.ConcurrentMap makeMap():279 -> f
    4:4:int getConcurrencyLevel():186:186 -> f
    4:4:java.util.concurrent.ConcurrentMap makeMap():279 -> f
    5:7:java.util.concurrent.ConcurrentMap makeMap():279:281 -> f
    1:1:com.android.tools.r8.com.google.common.collect.MapMaker weakValues():239:239 -> g
    2:6:com.android.tools.r8.com.google.common.collect.MapMaker setValueStrength(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength):253:257 -> g
    2:6:com.android.tools.r8.com.google.common.collect.MapMaker weakValues():239 -> g
    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> g
    7:7:com.android.tools.r8.com.google.common.collect.MapMaker setValueStrength(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength):254 -> g
    7:7:com.android.tools.r8.com.google.common.collect.MapMaker weakValues():239 -> g
    1:17:java.lang.String toString():290:306 -> toString
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap -> com.android.tools.r8.t.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 createSegment(int,int):1133:1133 -> a
    27:27:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment[] newSegmentArray(int):1153:1153 -> a
    28:29:java.util.ArrayList toArrayList(java.util.Collection):2861:2862 -> a
    28:29:java.util.ArrayList access$900(java.util.Collection):69 -> a
    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:10:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.containsKey(java.lang.Object,int):1462:1469 -> containsKey
    3:10:boolean containsKey(java.lang.Object):2396 -> containsKey
    11:11:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.containsKey(java.lang.Object,int):0:0 -> containsKey
    11:11: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:1:com.android.tools.r8.com.google.common.base.Equivalence valueEquivalence():2322:2322 -> f
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference unsetWeakValueReference():401:401 -> g
    1:2:java.lang.Object get(java.lang.Object):2374:2375 -> get
    3:14:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.get(java.lang.Object,int):1445:1456 -> get
    3:14:java.lang.Object get(java.lang.Object):2375 -> get
    15:21:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.get(java.lang.Object,int):1450:1456 -> get
    15:21:java.lang.Object get(java.lang.Object):2375 -> get
    22:22:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.get(java.lang.Object,int):0:0 -> get
    22:22:java.lang.Object get(java.lang.Object):2375 -> get
    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.t.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.t.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.t.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.t.a.a.b.X0:
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$EntryIterator -> com.android.tools.r8.t.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.t.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.t.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:6:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.getLiveValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1141:1144 -> a
    3:6:boolean advanceTo(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):2613 -> a
    7:14:boolean advanceTo(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):2615:2622 -> a
    15:15:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.getLiveValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1141:1141 -> a
    15:15:boolean advanceTo(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):2613 -> a
    16:16:boolean advanceTo(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):2622:2622 -> a
    1:16:void advance():2556:2571 -> f
    1:6:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry nextEntry():2632:2637 -> g
    7:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry nextEntry():2633:2633 -> g
    1:1:boolean hasNext():2628:2628 -> hasNext
    1:3:boolean nextInChain():2582:2584 -> i
    4:4:boolean nextInChain():2583:2583 -> i
    1:3:boolean nextInTable():2596:2598 -> j
    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.t.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.t.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.t.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.t.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.t.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.t.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:6:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1108:1109 -> b
    5:6:void drainKeyReferenceQueue(java.lang.ref.ReferenceQueue):1383 -> b
    7:27:boolean reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,int):1850:1870 -> b
    7:27:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1109 -> b
    7:27:void drainKeyReferenceQueue(java.lang.ref.ReferenceQueue):1383 -> b
    28:41:boolean reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,int):1857:1870 -> b
    28:41:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1109 -> b
    28:41:void drainKeyReferenceQueue(java.lang.ref.ReferenceQueue):1383 -> b
    42:42:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1108:1108 -> b
    42:42:void drainKeyReferenceQueue(java.lang.ref.ReferenceQueue):1383 -> b
    void maybeDrainReferenceQueues() -> c
    1:4:void drainValueReferenceQueue(java.lang.ref.ReferenceQueue):1394:1397 -> c
    5:7:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1102:1104 -> c
    5:7:void drainValueReferenceQueue(java.lang.ref.ReferenceQueue):1397 -> c
    8:35:boolean reclaimValue(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1877:1904 -> c
    8:35:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1104 -> c
    8:35:void drainValueReferenceQueue(java.lang.ref.ReferenceQueue):1397 -> c
    36:56:boolean reclaimValue(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1884:1904 -> c
    36:56:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1104 -> c
    36:56:void drainValueReferenceQueue(java.lang.ref.ReferenceQueue):1397 -> c
    57:57:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1102:1102 -> c
    57:57: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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.a.a.b.v1:
com.android.tools.r8.com.google.common.collect.Maps$5 -> com.android.tools.r8.t.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.t.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.t.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.t.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.t.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.t.a.a.b.B1:
    1:1:void <init>():4112:4112 -> <init>
    java.util.Map map() -> a
    1:1:void clear():4122:4122 -> clear
    1:5:boolean contains(java.lang.Object):4127:4131 -> contains
    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.t.a.a.b.D1:
    1:1:void <init>():3653:3653 -> <init>
    1:1:java.util.Set entrySet():3666:3666 -> entrySet
    java.util.Iterator entryIterator() -> f
com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap$1 -> com.android.tools.r8.t.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 -> a
    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.t.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
    5:5:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> iterator
    5:5: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):816 -> iterator
    5:5:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.keyIterator(java.util.Iterator):120 -> iterator
    5:5: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.t.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
    5:5:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> iterator
    5:5: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):816 -> iterator
    5:5:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.valueIterator(java.util.Iterator):124 -> iterator
    5:5: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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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:2:java.util.Set createEntrySet():1688:1688 -> a
    3:21:int remove(java.lang.Object,int):1755:1773 -> a
    1:1:int distinctElements():1683:1683 -> b
    2:3:int count(java.lang.Object):1749:1750 -> b
    1:2:java.util.Iterator entryIterator():1651:1652 -> c
    1:1:void clear():1781:1781 -> clear
    1:1:boolean contains(java.lang.Object):1739:1739 -> contains
    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: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
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> 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):816 -> 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():1744 -> iterator
    1:1:java.util.Set elementSet():1786:1786 -> k
    1:1:java.util.Spliterator spliterator():1672:1672 -> spliterator
com.android.tools.r8.com.google.common.collect.Multimaps$Keys$1 -> com.android.tools.r8.t.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.t.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.t.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:1:com.android.tools.r8.com.google.common.collect.Multiset multiset():1695:1695 -> a
    1:4:boolean contains(java.lang.Object):1715:1718 -> contains
    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.t.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
    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
    java.util.Set elementSet() -> k
    1:1:java.util.Spliterator spliterator():504:504 -> spliterator
com.android.tools.r8.com.google.common.collect.Multiset$Entry -> com.android.tools.r8.t.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.t.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.t.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.t.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.t.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.t.a.a.b.X1:
    1:1:void <init>():1021:1021 -> <init>
    com.android.tools.r8.com.google.common.collect.Multiset multiset() -> a
    1:1:void clear():1061:1061 -> clear
    1:11:boolean contains(java.lang.Object):1026:1036 -> contains
    1:9:boolean remove(java.lang.Object):1045:1053 -> remove
com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry -> com.android.tools.r8.t.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.t.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.t.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.t.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.ImmutableCollection delegateCollection():46:46 -> h
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList delegateList():50:50 -> i
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):56:56 -> listIterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):56:56 -> listIterator
    2:2:java.util.ListIterator listIterator(int):29 -> listIterator
com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap -> com.android.tools.r8.t.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:2:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():144:145 -> f
    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:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():151:151 -> g
    1:1:java.lang.Object get(java.lang.Object):139:139 -> get
    1:1:int hashCode():169:169 -> hashCode
    1:1:com.android.tools.r8.com.google.common.collect.BiMap inverse():41:41 -> i
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():188:188 -> i
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of():66:66 -> i
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():189 -> i
    4:5:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():191:192 -> i
    boolean isHashCodeFast() -> l
    boolean isPartialView() -> m
    1:1:int size():179:179 -> size
com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$1 -> com.android.tools.r8.t.a.a.b.c2:
com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse -> com.android.tools.r8.t.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.ImmutableSet createEntrySet():236:236 -> f
    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:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():231:231 -> g
    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.ImmutableBiMap inverse():204:204 -> i
    1:1:com.android.tools.r8.com.google.common.collect.BiMap inverse():195 -> i
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():204:204 -> i
    boolean isPartialView() -> m
    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
com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse$InverseEntrySet -> com.android.tools.r8.t.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:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():268:268 -> c
    boolean isHashCodeFast() -> d
    1:1:void forEach(java.util.function.Consumer):263:263 -> forEach
    1:1:int hashCode():253:253 -> hashCode
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():258:258 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():258:258 -> iterator
    2:2:java.util.Iterator iterator():239 -> iterator
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap map():243:243 -> j
com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse$InverseEntrySet$1 -> com.android.tools.r8.t.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 -> h
com.android.tools.r8.com.google.common.collect.RegularImmutableList -> com.android.tools.r8.t.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() -> b
    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 -> listIterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):68:68 -> listIterator
    2:2: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.t.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:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():169:169 -> f
    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:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():174:174 -> g
    1:1:java.lang.Object get(java.lang.Object):122:122 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection createValues():229:229 -> k
    boolean isPartialView() -> m
    1:1:int size():159:159 -> size
com.android.tools.r8.com.google.common.collect.RegularImmutableMap$KeySet -> com.android.tools.r8.t.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>
    boolean isPartialView() -> b
    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
    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.t.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() -> b
    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.t.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
    boolean isPartialView() -> b
    1:11:int count(java.lang.Object):117:127 -> b
    12:12:int count(java.lang.Object):125:125 -> b
    13:13:com.android.tools.r8.com.google.common.collect.Multiset$Entry getEntry(int):170:170 -> b
    1:1:int hashCode():175:175 -> hashCode
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():140:141 -> k
    3:4:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():140:141 -> k
    3:4:java.util.Set elementSet():34 -> k
    1:1:int size():135:135 -> size
com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset$1 -> com.android.tools.r8.t.a.a.b.j2:
com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset$ElementSet -> com.android.tools.r8.t.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>
    boolean isPartialView() -> b
    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
    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.t.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.t.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
    boolean isPartialView() -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():90:90 -> c
    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 -> c
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():90 -> c
    1:10:boolean contains(java.lang.Object):52:61 -> contains
    boolean isHashCodeFast() -> d
    1:1:int hashCode():100:100 -> hashCode
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():74:74 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():74:74 -> iterator
    2:2:java.util.Iterator iterator():30 -> iterator
    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.t.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
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSetImpl(java.lang.Object,boolean,java.lang.Object,boolean):251 -> 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
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSetImpl(java.lang.Object,boolean,java.lang.Object,boolean):251 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean):256:256 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSetImpl(java.lang.Object,boolean,java.lang.Object,boolean):251 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSetImpl(java.lang.Object,boolean):236:236 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSetImpl(java.lang.Object,boolean,java.lang.Object,boolean):251 -> a
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean):256:256 -> a
    7:7:int size():77:77 -> a
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean):256 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean):256:256 -> a
    1:1:int size():77:77 -> b
    1:1:com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet getSubSet(int,int):277 -> b
    2:5:com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet getSubSet(int,int):280:283 -> b
    6:6:boolean isPartialView():149:149 -> b
    7:7:int headIndex(java.lang.Object,boolean):240:240 -> b
    8:8:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> b
    8:8:int headIndex(java.lang.Object,boolean):240 -> b
    9:9:int headIndex(java.lang.Object,boolean):240:240 -> b
    10:10:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
    10:10:int headIndex(java.lang.Object,boolean):240 -> b
    1:1:int size():77:77 -> c
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():303 -> c
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():303:303 -> c
    3:3:int tailIndex(java.lang.Object,boolean):260:260 -> c
    4:4:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> c
    4:4:int tailIndex(java.lang.Object,boolean):260 -> c
    5:5:int tailIndex(java.lang.Object,boolean):260:260 -> c
    6:6:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> c
    6:6: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: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: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: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 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
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():56:56 -> iterator
    2:2:java.util.Iterator iterator():41 -> iterator
    1:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet createDescendingSet():308:311 -> j
    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: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.t.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.t.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.t.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.t.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 -> f
com.android.tools.r8.com.google.common.collect.Sets$2 -> com.android.tools.r8.t.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.t.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 -> f
com.android.tools.r8.com.google.common.collect.Sets$3 -> com.android.tools.r8.t.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.t.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 -> f
com.android.tools.r8.com.google.common.collect.Sets$5 -> com.android.tools.r8.t.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.t.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 -> f
    1:29:java.lang.Object computeNext():1688 -> f
com.android.tools.r8.com.google.common.collect.Sets$5$1$1 -> com.android.tools.r8.t.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.t.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 -> f
com.android.tools.r8.com.google.common.collect.Sets$ImprovedAbstractSet -> com.android.tools.r8.t.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.t.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.t.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.util.SortedSet delegate():1835:1835 -> a
    1:1:java.lang.Object delegate():1823 -> a
    2:2:java.util.SortedSet delegate():1835:1835 -> a
    2:2:java.util.Collection delegate():1823 -> a
    3:3:java.util.SortedSet delegate():1835:1835 -> a
    3:3:java.util.Set delegate():1823 -> a
    4:4:java.util.SortedSet delegate():1835:1835 -> a
    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.lang.Object floor(java.lang.Object):1867:1867 -> floor
    1:1:void forEach(java.util.function.Consumer):1857:1857 -> forEach
    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:2:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):1910:1911 -> subSet
    3: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.t.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:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():85:85 -> f
    2:2:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> f
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():85 -> f
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():85:85 -> f
    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:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():90:90 -> g
    1:1:java.lang.Object get(java.lang.Object):55:55 -> get
    1:3:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():100:102 -> i
    1:3:com.android.tools.r8.com.google.common.collect.BiMap inverse():34 -> i
    4:6:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():100:102 -> i
    boolean isPartialView() -> m
com.android.tools.r8.com.google.common.collect.SingletonImmutableList -> com.android.tools.r8.t.a.a.b.E2:
    java.lang.Object element -> b
    1:2:void <init>(java.lang.Object):37:38 -> <init>
    boolean isPartialView() -> b
    1:2:java.lang.Object get(int):43:44 -> get
    1:1:java.util.Iterator iterator():31:31 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():49:49 -> iterator
    3:3:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.singletonIterator(java.lang.Object):1104:1104 -> iterator
    3:3:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():49 -> iterator
    1:1:java.util.Spliterator spliterator():54:54 -> spliterator
    1:1:java.util.List subList(int,int):31:31 -> subList
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):64:64 -> subList
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableList.of():81:81 -> subList
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):65 -> subList
    1:1:java.lang.String toString():70:70 -> toString
com.android.tools.r8.com.google.common.collect.SingletonImmutableSet -> com.android.tools.r8.t.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
    boolean isPartialView() -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():71:71 -> c
    1:1:boolean contains(java.lang.Object):61:61 -> contains
    1:1:boolean isHashCodeFast():97:97 -> d
    1:3:int hashCode():88:90 -> hashCode
    1:1:java.util.Iterator iterator():29:29 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():66:66 -> iterator
    3:3:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.singletonIterator(java.lang.Object):1104:1104 -> iterator
    3:3:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():66 -> iterator
    1:1:java.lang.String toString():102:102 -> toString
com.android.tools.r8.com.google.common.collect.SortedIterable -> com.android.tools.r8.t.a.a.b.G2:
com.android.tools.r8.com.google.common.collect.Streams$1Splitr -> com.android.tools.r8.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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
    2:2:com.android.tools.r8.com.google.common.hash.HashCode hashBytes(byte[],int,int):62:62 -> a
    3:5:com.android.tools.r8.com.google.common.hash.Hasher newHasher(int):73:75 -> a
    3:5:com.android.tools.r8.com.google.common.hash.HashCode hashBytes(byte[],int,int):63 -> a
    6:6:com.android.tools.r8.com.google.common.hash.HashCode hashBytes(byte[],int,int):63:63 -> a
com.android.tools.r8.com.google.common.hash.AbstractHasher -> com.android.tools.r8.t.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.t.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.t.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.t.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.t.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.t.a.a.c.g:
    com.android.tools.r8.com.google.common.hash.HashCode hash() -> a
    com.android.tools.r8.com.google.common.hash.Hasher putBytes(byte[],int,int) -> 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.t.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.t.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.t.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.t.a.a.c.j:
com.android.tools.r8.com.google.common.hash.MessageDigestHashFunction$MessageDigestHasher -> com.android.tools.r8.t.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.t.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.t.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.t.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
    com.android.tools.r8.com.google.common.io.BaseEncoding omitPadding() -> 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
    1:1:com.android.tools.r8.com.google.common.io.BaseEncoding base64Url():355:355 -> b
com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet -> com.android.tools.r8.t.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.t.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.t.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.t.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 omitPadding():762:762 -> 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):810:810 -> a
    1:19:void encodeChunkTo(java.lang.Appendable,byte[],int,int):641:659 -> 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.t.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
    11:11:java.io.OutputStream nullOutputStream():624:624 -> a
com.android.tools.r8.com.google.common.io.ByteStreams$1 -> com.android.tools.r8.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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
    4:7:int getAsInt():310:313 -> a
    1:4:long getAsLong():294:297 -> c
    1:4:java.lang.String getAsString():212:215 -> d
    1:1:boolean equals(java.lang.Object):366:366 -> equals
    1:1:int hashCode():371:371 -> hashCode
    1:1:java.util.Iterator iterator():171:171 -> iterator
com.android.tools.r8.com.google.gson.JsonElement -> com.android.tools.r8.t.a.b.b:
    1:1:void <init>():33:33 -> <init>
    1:1:int getAsInt():243:243 -> a
    1:1:boolean isJsonObject():55:55 -> b
    1:1:com.android.tools.r8.com.google.gson.JsonObject getAsJsonObject():87 -> b
    2:4:com.android.tools.r8.com.google.gson.JsonObject getAsJsonObject():88:90 -> b
    1:1:long getAsLong():230:230 -> c
    1:1:java.lang.String getAsString():191:191 -> d
    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.t.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.t.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.t.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:com.android.tools.r8.com.google.gson.JsonElement createJsonElement(java.lang.Object):122:122 -> a
    4:4:void addProperty(java.lang.String,java.lang.Number):90 -> 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.Number):90 -> a
    6:6:com.android.tools.r8.com.google.gson.JsonElement createJsonElement(java.lang.Object):122:122 -> a
    6:6:void addProperty(java.lang.String,java.lang.String):79 -> 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.String):79 -> a
    8:8: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.t.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.t.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:4:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonNull():74:74 -> a
    4:4:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):60 -> a
    4:4:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
    5:6:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):60:61 -> a
    5:6:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
    7:7:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonNull():74:74 -> a
    7:7:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):60 -> a
    7:7:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
    8:8:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):69:69 -> a
    8:8:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
    9:9:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):67:67 -> a
    9:9:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
    10:10:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):65:65 -> a
    10:10:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
    11:20:com.android.tools.r8.com.google.gson.JsonElement parse(com.android.tools.r8.com.google.gson.stream.JsonReader):81:90 -> a
    21:21:com.android.tools.r8.com.google.gson.JsonElement parse(com.android.tools.r8.com.google.gson.stream.JsonReader):88:88 -> a
    22:26: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.t.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:17:boolean isNumber():146:146 -> a
    17:17:int getAsInt():260 -> a
    18:18:int getAsInt():260:260 -> a
    19:21:boolean isIntegral(com.android.tools.r8.com.google.gson.JsonPrimitive):334:336 -> a
    1:1:boolean isNumber():146:146 -> c
    1:1:long getAsLong():238 -> c
    2:2:long getAsLong():238:238 -> c
    1:1:boolean isNumber():146:146 -> d
    1:1:java.lang.String getAsString():176 -> d
    2:2:java.lang.String getAsString():177:177 -> d
    3:3:boolean isBoolean():112:112 -> d
    3:3:java.lang.String getAsString():178 -> d
    4:4:java.lang.Boolean getAsBooleanWrapper():122:122 -> d
    4:4:java.lang.String getAsString():179 -> d
    5:7:java.lang.String getAsString():179:181 -> d
    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:java.lang.Number getAsNumber():157:157 -> h
    1:13:int hashCode():289:301 -> hashCode
    1:1:boolean isBoolean():112:112 -> i
    1:1:boolean isNumber():146:146 -> j
com.android.tools.r8.com.google.gson.JsonSyntaxException -> com.android.tools.r8.t.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.t.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.t.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.t.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.t.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:80:void removeInternal(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):219:237 -> a
    81:84:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node.last():517:520 -> a
    81:84:void removeInternal(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):237 -> a
    85:88:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node.first():504:507 -> a
    85:88:void removeInternal(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):237 -> a
    89:124:void removeInternal(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):238:273 -> a
    125:139: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
    140:160:void rotateLeft(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node):374:394 -> a
    1:19:void rebalance(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):312:330 -> b
    20:42:void rebalance(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):326:348 -> b
    43:61:void rebalance(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):344:362 -> b
    62:62:void rebalance(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):311:311 -> b
    63:83: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.t.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.t.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.t.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.t.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.t.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.t.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:9:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node nextNode():539:547 -> f
    10:10:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node nextNode():544:544 -> f
    11:11:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node nextNode():541:541 -> f
    1:1:boolean hasNext():535:535 -> hasNext
    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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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.t.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:12:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):766:766 -> a
    13:13:com.android.tools.r8.com.google.gson.JsonArray com.android.tools.r8.com.google.gson.JsonElement.getAsJsonArray():104:104 -> a
    13:13:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):767 -> a
    14:17:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):767:770 -> a
    18:18:com.android.tools.r8.com.google.gson.JsonArray com.android.tools.r8.com.google.gson.JsonElement.getAsJsonArray():106:106 -> a
    18:18:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):767 -> a
    19:19:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonObject():55:55 -> a
    19:19:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):772 -> a
    20:28:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):773:781 -> a
    29:29:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):754:754 -> a
    30:30:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):714:714 -> a
    31:31:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):714:714 -> a
    32:64:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):716:748 -> a
    65:66:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):725:726 -> a
    67:67:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):723:723 -> a
    68:69:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):720:721 -> a
    70:93:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):718:741 -> a
    94:99:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):728:733 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$3 -> com.android.tools.r8.t.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.t.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.t.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.t.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.t.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.t.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.t.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:1:void setLenient(boolean):326:326 -> a
    2:11:void beginArray():341:350 -> a
    12:12:boolean isLiteral(char):751:751 -> a
    13:34:boolean fillBuffer(int):1276:1297 -> a
    35:35:java.io.IOException syntaxError(java.lang.String):1559:1559 -> a
    1:9:void beginObject():377:385 -> b
    10:26:java.lang.String nextQuotedValue(char):987:1003 -> b
    27:82:char readEscapeCharacter():1495:1550 -> b
    27:82:java.lang.String nextQuotedValue(char):1004 -> b
    83:121:char readEscapeCharacter():1502:1540 -> b
    83:121:java.lang.String nextQuotedValue(char):1004 -> b
    122:124:java.lang.String nextQuotedValue(char):1004:1006 -> b
    125:125:char readEscapeCharacter():1550:1550 -> b
    125:125:java.lang.String nextQuotedValue(char):1004 -> b
    126:134:java.lang.String nextQuotedValue(char):1009:1017 -> b
    135:146:void push(int):1256:1267 -> b
    147:221:int nextNonWhitespace(boolean):1319:1393 -> b
    222:264:int nextNonWhitespace(boolean):1328:1370 -> b
    265:265:int nextNonWhitespace(boolean):1357:1357 -> b
    266:273:boolean skipTo(java.lang.String):1428:1435 -> b
    266:273:int nextNonWhitespace(boolean):1358 -> b
    274:274:boolean skipTo(java.lang.String):1428:1428 -> b
    274:274:int nextNonWhitespace(boolean):1358 -> b
    275:276:int nextNonWhitespace(boolean):1361:1362 -> b
    277:306:int nextNonWhitespace(boolean):1359:1388 -> b
    1:15:int doPeek():462:476 -> c
    16:77:int doPeek():472:533 -> c
    78:92:void consumeNonExecutePrefix():1567:1581 -> c
    78:92:int doPeek():534 -> c
    93:133:int doPeek():536:576 -> c
    134:173:int peekKeyword():599:638 -> c
    134:173:int doPeek():579 -> c
    174:269:int peekNumber():643:738 -> c
    174:269:int doPeek():584 -> c
    270:275:int doPeek():589:594 -> c
    276:276:int doPeek():590:590 -> c
    277:277:int doPeek():574:574 -> c
    278:297:int doPeek():553:572 -> c
    298:298:int doPeek():564:564 -> c
    299:309:int doPeek():560:570 -> c
    310:310:int doPeek():546:546 -> c
    311:323:int doPeek():479:491 -> c
    324:350:int doPeek():487:513 -> c
    351:353:int doPeek():503:505 -> c
    354:355:int doPeek():499:500 -> c
    356:356:int doPeek():497:497 -> c
    1:4:void close():1208:1211 -> close
    1:10:void endArray():359:368 -> d
    1:11:void endObject():394:404 -> e
    1:3:boolean hasNext():412:414 -> f
    1:1:boolean isLenient():333:333 -> g
    1:14:boolean nextBoolean():840:853 -> h
    1:13:int nextInt():1155:1167 -> i
    14:39:int nextInt():1164:1189 -> i
    40:64:int nextInt():1176:1200 -> i
    65:65:int nextInt():1196:1196 -> i
    1:16:java.lang.String nextName():777:792 -> j
    17:17:java.lang.String nextName():789:789 -> j
    1:9:void nextNull():864:872 -> k
    1:24:java.lang.String nextString():805:828 -> l
    25:25:java.lang.String nextString():825:825 -> l
    1:35:com.android.tools.r8.com.google.gson.stream.JsonToken peek():423:457 -> m
    36:36:com.android.tools.r8.com.google.gson.stream.JsonToken peek():455:455 -> m
    37:37:com.android.tools.r8.com.google.gson.stream.JsonToken peek():453:453 -> m
    38:48:com.android.tools.r8.com.google.gson.stream.JsonToken peek():440:450 -> m
    49:49:com.android.tools.r8.com.google.gson.stream.JsonToken peek():445:445 -> m
    50:50:com.android.tools.r8.com.google.gson.stream.JsonToken peek():443:443 -> m
    51:51:com.android.tools.r8.com.google.gson.stream.JsonToken peek():436:436 -> m
    52:52:com.android.tools.r8.com.google.gson.stream.JsonToken peek():434:434 -> m
    53:53:com.android.tools.r8.com.google.gson.stream.JsonToken peek():432:432 -> m
    54:54:com.android.tools.r8.com.google.gson.stream.JsonToken peek():430:430 -> m
    1:2:void checkLenient():1400:1401 -> n
    1:3:java.lang.String locationString():1449:1451 -> o
    4:17:java.lang.String getPath():1459:1472 -> o
    4:17:java.lang.String locationString():1451 -> o
    18:36:java.lang.String getPath():1464:1482 -> o
    18:36:java.lang.String locationString():1451 -> o
    37:37:java.lang.String locationString():1451:1451 -> o
    1:52:java.lang.String nextUnquotedValue():1032:1083 -> 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.t.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.t.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:2:com.android.tools.r8.com.google.gson.stream.JsonWriter beginArray():287:287 -> a
    3:5:com.android.tools.r8.com.google.gson.stream.JsonWriter open(int,java.lang.String):325:327 -> a
    3:5:com.android.tools.r8.com.google.gson.stream.JsonWriter beginArray():288 -> a
    6:18:com.android.tools.r8.com.google.gson.stream.JsonWriter close(int,int,java.lang.String):337:349 -> a
    19:19:com.android.tools.r8.com.google.gson.stream.JsonWriter close(int,int,java.lang.String):342:342 -> a
    20:25:void push(int):354:359 -> a
    26:32:com.android.tools.r8.com.google.gson.stream.JsonWriter name(java.lang.String):389:395 -> a
    33:33:com.android.tools.r8.com.google.gson.stream.JsonWriter name(java.lang.String):393:393 -> a
    34:34:com.android.tools.r8.com.google.gson.stream.JsonWriter name(java.lang.String):390:390 -> a
    35:35:com.android.tools.r8.com.google.gson.stream.JsonWriter name(java.lang.String):387:387 -> a
    36:40:com.android.tools.r8.com.google.gson.stream.JsonWriter value(java.lang.Boolean):478:482 -> a
    41:43:com.android.tools.r8.com.google.gson.stream.JsonWriter value(long):509:511 -> a
    44:54:com.android.tools.r8.com.google.gson.stream.JsonWriter value(java.lang.Number):524:534 -> a
    1:1:com.android.tools.r8.com.google.gson.stream.JsonWriter beginObject():307:307 -> 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 beginObject():308 -> b
    5:5:void replaceTop(int):376:376 -> b
    6:10:com.android.tools.r8.com.google.gson.stream.JsonWriter value(java.lang.String):415:419 -> b
    11:13:com.android.tools.r8.com.google.gson.stream.JsonWriter value(boolean):465:467 -> b
    1:1:com.android.tools.r8.com.google.gson.stream.JsonWriter endArray():297:297 -> c
    2:30:void string(java.lang.String):565:593 -> 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 endObject():317:317 -> d
    1:10:com.android.tools.r8.com.google.gson.stream.JsonWriter nullValue():446:455 -> e
    1:28:void beforeValue():629:656 -> f
    29:50:void beforeValue():631:652 -> f
    51:51:void beforeValue():646:646 -> f
    52:52:void beforeValue():641:641 -> 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.t.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:
    java.lang.String input -> a
    java.lang.String output -> b
    int numberOfThreads -> c
    boolean noLocals -> d
    1:27:void <init>():36:62 -> <init>
    1:44:void run(java.lang.String[]):70:113 -> a
    45:45:void run(java.lang.String[]):109:109 -> a
    46:46:void run(java.lang.String[]):98:98 -> a
    47:90:void run(java.lang.String[]):95:138 -> a
    91:91:void addEntry(java.lang.String,java.io.InputStream,java.util.zip.ZipOutputStream):183:183 -> a
    91:91:void run(java.lang.String[]):138 -> a
    92:92:void run(java.lang.String[]):139:139 -> a
    93:109:void run(java.lang.String[]):137:153 -> a
    110:110:byte[] com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer.getBytes():55:55 -> a
    110:110:void run(java.lang.String[]):153 -> a
    111:115:void run(java.lang.String[]):153:157 -> a
    116:139:void run(java.lang.String[]):132:155 -> a
    140:169:void run(java.lang.String[]):128:157 -> a
    170:170:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):156:156 -> a
    171:183:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer dexEntry(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):163:175 -> a
    171:183:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer lambda$run$0(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):148 -> a
    184:189:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer dexEntry(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):172:177 -> a
    184:189:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer lambda$run$0(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):148 -> a
    190:195:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer dexEntry(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):171:176 -> a
    190:195:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer lambda$run$0(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):148 -> a
    196:205:void addEntry(java.lang.String,byte[],java.util.zip.ZipOutputStream):187:196 -> a
    1:1:void main(java.lang.String[]):66:66 -> 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[]):323:325 -> a
    4:4:void printHelpOn(java.io.PrintStream):590:590 -> a
    4:4:void run(java.lang.String[]):325 -> a
    5:83:void com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec.<init>():157:235 -> a
    5:83:void printHelpOn(java.io.PrintStream):591 -> a
    5:83:void run(java.lang.String[]):325 -> a
    84:84:void printHelpOn(java.io.PrintStream):591:591 -> a
    84:84:void run(java.lang.String[]):325 -> a
    85:210:void run(java.lang.String[]):328:453 -> a
    211:219:com.android.tools.r8.ProgramConsumer createConsumer(java.util.List,java.nio.file.Path,boolean,boolean):471:479 -> a
    211:219:void run(java.lang.String[]):455 -> a
    220:229:void run(java.lang.String[]):454:463 -> a
    230:230:void run(java.lang.String[]):445:445 -> a
    231:231:void run(java.lang.String[]):411:411 -> a
    232:232:void run(java.lang.String[]):407:407 -> a
    233:233:void run(java.lang.String[]):391:391 -> a
    234:234:void run(java.lang.String[]):362:362 -> a
    235:235:void run(java.lang.String[]):358:358 -> a
    236:240:com.android.tools.r8.DexIndexedConsumer createDexConsumer(java.nio.file.Path,java.util.List,boolean):486:490 -> a
    241:248:com.android.tools.r8.DexIndexedConsumer createDexConsumer(java.nio.file.Path,java.util.List,boolean):487:494 -> a
    249:252:void processPath(java.io.File,java.util.List):595:598 -> a
    253:255:void processDirectory(java.io.File,java.util.List):613:615 -> a
    253:255:void processPath(java.io.File,java.util.List):599 -> a
    256:257:void processPath(java.io.File,java.util.List):602:603 -> a
    258:259:boolean com.android.tools.r8.utils.FileUtils.isApkFile(java.nio.file.Path):66:67 -> a
    258:259:void processPath(java.io.File,java.util.List):607 -> a
    260:260:void processPath(java.io.File,java.util.List):608:608 -> a
    261:261:void processPath(java.io.File,java.util.List):604:604 -> a
    262:262:void processPath(java.io.File,java.util.List):596:596 -> a
    263:263:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    263:263:void processPath(java.io.File,java.util.List):596 -> a
    264:264:void processPath(java.io.File,java.util.List):596:596 -> a
    1:7:void main(java.lang.String[]):311:317 -> main
    8:9:void main(java.lang.String[]):313:314 -> main
    10:10:void com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$DxUsageMessage.printHelpOn(java.io.PrintStream):115:115 -> main
    10:10:void main(java.lang.String[]):314 -> main
    11:11:void main(java.lang.String[]):315:315 -> 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):554:555 -> <init>
    1:11:void writeZipWithClasses(com.android.tools.r8.DiagnosticsHandler):570:580 -> a
    12:18:void writeZipWithClasses(com.android.tools.r8.DiagnosticsHandler):577:583 -> a
    19:30:void writeZipWithClasses(com.android.tools.r8.DiagnosticsHandler):572:583 -> a
    31:31:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):583:583 -> a
    1:5:void finished(com.android.tools.r8.DiagnosticsHandler):561:565 -> finished
com.android.tools.r8.compatdx.CompatDx$DxCompatOptions -> com.android.tools.r8.compatdx.CompatDx$b:
    com.android.tools.r8.com.google.common.collect.ImmutableList inputs -> z
    java.lang.String noOptimizeList -> j
    boolean noStrict -> k
    boolean forceJumbo -> u
    java.lang.String dumpTo -> n
    boolean dump -> q
    int maxIndexNumber -> A
    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 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
    boolean noFiles -> r
    boolean incremental -> t
    java.lang.String mainDexList -> w
    boolean noOptimize -> g
    boolean help -> a
    boolean $assertionsDisabled -> B
    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):239:259 -> <init>
    22:22:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):256:256 -> <init>
    23:23:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):253:253 -> <init>
    24:24:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):250:250 -> <init>
    25:73:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):247:295 -> <init>
    1:2:com.android.tools.r8.compatdx.CompatDx$DxCompatOptions parse(java.lang.String[]):299:300 -> a
    3:4:int lastIntOf(java.util.List):304:305 -> 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):110:111 -> <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>():103:103 -> <clinit>
    1:1:void <init>(java.lang.String,int):102:102 -> <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 inputs -> C
    com.android.tools.r8.joptsimple.OptionSpec noOptimize -> f
    com.android.tools.r8.joptsimple.OptionSpec help -> E
    com.android.tools.r8.joptsimple.OptionSpec optimizeList -> h
    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 inputList -> B
    com.android.tools.r8.joptsimple.OptionSpec version -> D
    com.android.tools.r8.joptsimple.OptionSpec verbose -> c
    com.android.tools.r8.joptsimple.OptionSpec maxIndexNumber -> 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:80:void <init>():156:235 -> <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):531:532 -> <init>
    1:6:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):538:543 -> accept
    7:10:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):541:544 -> 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>():497:497 -> <clinit>
    1:1:void <init>(com.android.tools.r8.DexIndexedConsumer):502:502 -> <init>
    2:2:void <init>(com.android.tools.r8.DexIndexedConsumer):499:499 -> <init>
    1:3:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):513:515 -> accept
    4:4:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):509:509 -> 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):509 -> accept
    6:6:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):509:509 -> accept
    1:4:void finished(com.android.tools.r8.DiagnosticsHandler):520:523 -> finished
com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions -> com.android.tools.r8.u.a:
    java.lang.String mainDexList -> f
    boolean multiDex -> e
    java.lang.String output -> a
    java.util.List proguardConfig -> g
    boolean disableVerticalClassMerging -> h
    int minApi -> b
    boolean forceProguardCompatibility -> c
    boolean includeDataResources -> 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>():56:56 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):68:68 -> <init>
    2:12:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):62:72 -> <init>
    1:1:com.android.tools.r8.utils.InternalOptions access$100(com.android.tools.r8.dex.ApplicationReader):56:56 -> a
    2:2:com.android.tools.r8.graph.DexApplication read():76:76 -> a
    3:7:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource):80:84 -> a
    8:11:com.android.tools.r8.graph.DexApplication read(java.util.concurrent.ExecutorService):90:93 -> a
    12:12:com.android.tools.r8.graph.DexApplication read(java.util.concurrent.ExecutorService):90:90 -> a
    13:16:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService):98:101 -> a
    17:17:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService):98:98 -> a
    18:18:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):109:109 -> a
    19:28:boolean verifyMainDexOptionsCompatible(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):150:159 -> a
    19:28:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):109 -> a
    29:64:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):110:145 -> a
    65:65:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):141:141 -> a
    66:68:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> a
    66:68:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):141 -> a
    69:73:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):139:143 -> a
    74:75:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):164:165 -> a
    74:75:int access$200(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):56 -> a
    76:86:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):77:87 -> a
    76:86:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):167 -> a
    76:86:int access$200(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):56 -> a
    87:87:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):85:85 -> a
    87:87:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):167 -> a
    87:87:int access$200(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):56 -> a
    88:88:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):83:83 -> a
    88:88:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):167 -> a
    88:88:int access$200(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):56 -> a
    89:89:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):81:81 -> a
    89:89:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):167 -> a
    89:89:int access$200(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):56 -> a
    90:90:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):79:79 -> a
    90:90:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):167 -> a
    90:90:int access$200(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):56 -> a
    91:94:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):167:170 -> a
    91:94:int access$200(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):56 -> a
    95:95:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    95:95:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):170 -> a
    95:95:int access$200(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):56 -> a
    96:96:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    96:96:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    96:96:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):170 -> a
    96:96:int access$200(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):56 -> a
    97:97:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):170:170 -> a
    97:97:int access$200(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):56 -> a
    98:98:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):164:164 -> a
    98:98:int access$200(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):56 -> a
    99:100:void readProguardMap(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,java.util.List):185:186 -> a
    101:101:void readProguardMap(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,java.util.List):185:185 -> a
    102:105:void lambda$readProguardMap$0(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexApplication$Builder):189:192 -> a
    106:106:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    106:106:void lambda$readProguardMap$0(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexApplication$Builder):192 -> a
    107:107:void lambda$readProguardMap$0(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexApplication$Builder):192:192 -> a
    108:109:void readMainDexList(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,java.util.List):199:200 -> a
    110:118:void lambda$readMainDexList$2(com.android.tools.r8.graph.DexApplication$Builder):201:209 -> a
    119:119:void lambda$readMainDexList$2(com.android.tools.r8.graph.DexApplication$Builder):205:205 -> a
    120:120:com.android.tools.r8.graph.DexType lambda$readMainDexList$1(java.lang.String):208:208 -> a
    1:1:com.android.tools.r8.utils.AndroidApp access$300(com.android.tools.r8.dex.ApplicationReader):56:56 -> 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>():214:214 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.ApplicationReader,java.util.concurrent.ExecutorService,java.util.List):226:226 -> <init>
    2:10:void <init>(com.android.tools.r8.dex.ApplicationReader,java.util.concurrent.ExecutorService,java.util.List):220:228 -> <init>
    1:1:com.android.tools.r8.graph.JarApplicationReader access$000(com.android.tools.r8.dex.ApplicationReader$ClassReader):214:214 -> a
    2:3:void lambda$readDexSources$0(com.android.tools.r8.dex.DexParser,com.android.tools.r8.graph.ClassKind,java.util.Queue):253:254 -> a
    4:4:void lambda$readDexSources$0(com.android.tools.r8.dex.DexParser,com.android.tools.r8.graph.ClassKind,java.util.Queue):253:253 -> a
    5:10:com.android.tools.r8.graph.JarClassFileReader readClassSources(java.util.List,com.android.tools.r8.graph.ClassKind,java.util.Queue):263:268 -> a
    11:11:com.android.tools.r8.graph.JarClassFileReader readClassSources(java.util.List,com.android.tools.r8.graph.ClassKind,java.util.Queue):267:267 -> a
    12:14:java.lang.Object lambda$readClassSources$1(com.android.tools.r8.ProgramResource,com.android.tools.r8.graph.JarClassFileReader,com.android.tools.r8.graph.ClassKind):270:272 -> a
    15:17:java.lang.Object lambda$readClassSources$1(com.android.tools.r8.ProgramResource,com.android.tools.r8.graph.JarClassFileReader,com.android.tools.r8.graph.ClassKind):270:272 -> a
    18:30:com.android.tools.r8.graph.JarClassFileReader readSources():283:295 -> a
    31:48: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):301:318 -> a
    49:50:void initializeLazyClassCollection(com.android.tools.r8.graph.LazyLoadedDexApplication$Builder):323:324 -> a
    51:51:com.android.tools.r8.graph.DexProgramClass com.android.tools.r8.graph.DexProgramClass.asProgramClass():0:0 -> a
    51:51:void initializeLazyClassCollection(com.android.tools.r8.graph.LazyLoadedDexApplication$Builder):324 -> a
    52:53:void initializeLazyClassCollection(com.android.tools.r8.graph.LazyLoadedDexApplication$Builder):328:329 -> a
    54:62:void initializeLazyClassCollection(com.android.tools.r8.graph.LazyLoadedDexApplication$Builder):328:336 -> a
    63:66:void initializeLazyClassCollection(com.android.tools.r8.graph.LazyLoadedDexApplication$Builder):335:338 -> a
    1:19:void readDexSources(java.util.List,com.android.tools.r8.graph.ClassKind,java.util.Queue):234:252 -> 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.dex.ClassesChecksum checksums -> h
    com.android.tools.r8.graph.AppView appView -> b
    java.util.List markers -> f
    com.android.tools.r8.DexIndexedConsumer programConsumer -> i
    boolean $assertionsDisabled -> k
    com.android.tools.r8.graph.GraphLense graphLense -> c
    com.android.tools.r8.utils.InternalOptions options -> e
    com.android.tools.r8.naming.NamingLens namingLens -> d
    java.util.List markerStrings -> g
    com.android.tools.r8.naming.ProguardMapSupplier proguardMapSupplier -> j
    1:1:void <clinit>():71:71 -> <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.dex.ClassesChecksum,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.naming.ProguardMapSupplier):151:151 -> <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.dex.ClassesChecksum,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.naming.ProguardMapSupplier,com.android.tools.r8.DexIndexedConsumer):172:183 -> <init>
    1:1:void encodeChecksums(java.lang.Iterable):213:213 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMap com.android.tools.r8.dex.ClassesChecksum.getChecksums():40:40 -> a
    2:2:void encodeChecksums(java.lang.Iterable):213 -> a
    3:3:java.util.HashMap com.android.tools.r8.com.google.common.collect.Maps.newHashMap():283:283 -> a
    3:3:void encodeChecksums(java.lang.Iterable):214 -> a
    4:7:void encodeChecksums(java.lang.Iterable):215:218 -> a
    8:8:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():671:671 -> a
    8:8:void encodeChecksums(java.lang.Iterable):219 -> a
    9:18:void encodeChecksums(java.lang.Iterable):219:228 -> a
    19:19:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    19:19:void encodeChecksums(java.lang.Iterable):228 -> a
    20:20:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    20:20:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    20:20:void encodeChecksums(java.lang.Iterable):228 -> a
    21:21:void encodeChecksums(java.lang.Iterable):228:228 -> a
    22:22:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():671:671 -> a
    22:22:void encodeChecksums(java.lang.Iterable):226 -> a
    23:23:void encodeChecksums(java.lang.Iterable):226:226 -> a
    24:43:void encodeChecksums(java.lang.Iterable):225:244 -> a
    44:44:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():671:671 -> a
    44:44:void encodeChecksums(java.lang.Iterable):245 -> a
    45:49:void encodeChecksums(java.lang.Iterable):245:249 -> a
    50:50:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():671:671 -> a
    50:50:void encodeChecksums(java.lang.Iterable):250 -> a
    51:64:void encodeChecksums(java.lang.Iterable):250:263 -> a
    65:65:com.android.tools.r8.dex.ClassesChecksum com.android.tools.r8.dex.ClassesChecksum.addChecksum(java.lang.String,java.lang.Long):35:35 -> a
    65:65:void encodeChecksums(java.lang.Iterable):264 -> a
    66:66:void encodeChecksums(java.lang.Iterable):266:266 -> a
    67:98:void write(java.util.concurrent.ExecutorService):271:302 -> a
    99:111:void write(java.util.concurrent.ExecutorService):300:312 -> a
    112:176:void write(java.util.concurrent.ExecutorService):311:375 -> a
    177:185:void write(java.util.concurrent.ExecutorService):369:377 -> a
    186:186:void lambda$write$0(com.android.tools.r8.dex.ApplicationWriter$SortAnnotations,com.android.tools.r8.graph.DexProgramClass):305:305 -> a
    187:191:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):316:320 -> a
    192:192:com.android.tools.r8.DexFilePerClassFileConsumer com.android.tools.r8.utils.InternalOptions.getDexFilePerClassFileConsumer():343:343 -> a
    192:192:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):320 -> a
    193:200:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):323:330 -> a
    201:201:com.android.tools.r8.DexIndexedConsumer com.android.tools.r8.utils.InternalOptions.getDexIndexedConsumer():339:339 -> a
    201:201:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):330 -> a
    202:205:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):334:337 -> a
    206:206:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):336:336 -> a
    207:212: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):631:636 -> a
    207:212:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):339 -> a
    213:221:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):340:348 -> a
    222:232:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):345:355 -> a
    233:242:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):352:361 -> a
    243:246: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):388:391 -> a
    247:253: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):389:395 -> a
    254:256:boolean validateProguardMapParses(java.lang.String):498:500 -> a
    254:256: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):395 -> a
    257:264: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):395:402 -> a
    265:312: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):401:448 -> a
    313:313: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):447:447 -> a
    314:314: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):424:424 -> a
    315:324: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):423:432 -> a
    325:333: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):427:435 -> a
    334:334: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):426:426 -> a
    335:335: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):425:425 -> a
    336:369:void adaptAndPassDataResources(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.DataResourceConsumer,java.util.Collection,com.android.tools.r8.dex.ResourceAdapter):458:491 -> a
    370:383:void insertAttributeAnnotations():508:521 -> a
    384:384:void insertAttributeAnnotations():520:520 -> a
    385:393:void insertAttributeAnnotations():519:527 -> a
    394:394:void insertAttributeAnnotations():526:526 -> a
    395:411:void insertAttributeAnnotations():525:541 -> a
    412:418:void insertAttributeAnnotations():540:546 -> a
    419:428: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
    419:428:void insertAttributeAnnotations():544 -> a
    429:437:void insertAttributeAnnotations():543:551 -> a
    438:438:void insertAttributeAnnotations():550:550 -> a
    439:450:void insertAttributeAnnotations():549:560 -> a
    451:461:void insertAttributeAnnotations():559:569 -> a
    462:462: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
    462:462:void insertAttributeAnnotations():567 -> a
    463:463:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.newArray(java.lang.Class,int):49:49 -> a
    463:463:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.concat(java.lang.Object[],java.lang.Object[],java.lang.Class):72 -> a
    463:463:void insertAttributeAnnotations():567 -> a
    464:465: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
    464:465:void insertAttributeAnnotations():567 -> a
    466:475:void insertAttributeAnnotations():567:576 -> a
    476:478:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):592:594 -> a
    479:479:com.android.tools.r8.dex.MethodToCodeObjectMapping com.android.tools.r8.dex.MethodToCodeObjectMapping.fromMethodBacking():21:21 -> a
    479:479:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):595 -> a
    480:481:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):598:599 -> a
    482:482:com.android.tools.r8.dex.MethodToCodeObjectMapping com.android.tools.r8.dex.MethodToCodeObjectMapping.fromMethodBacking():21:21 -> a
    482:482:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):600 -> a
    483:486:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):605:608 -> a
    487:487:com.android.tools.r8.dex.MethodToCodeObjectMapping com.android.tools.r8.dex.MethodToCodeObjectMapping.fromMapBacking(java.util.Map):25:25 -> a
    487:487:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):624 -> a
    488:498: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):610:620 -> a
    499:500:java.lang.String mapMainDexListName(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.NamingLens):640:641 -> a
    499:500:void lambda$writeMainDexList$4(java.lang.StringBuilder,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexType):649 -> a
    501:501:void lambda$writeMainDexList$4(java.lang.StringBuilder,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexType):649:649 -> a
    502:507:java.lang.String writeMainDexList(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):645:650 -> a
    1:1:java.lang.Iterable distribute(java.util.concurrent.ExecutorService):190:190 -> b
    2:2:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingDexFilePerClassFile():331:331 -> b
    2:2:java.lang.Iterable distribute(java.util.concurrent.ExecutorService):190 -> b
    3:3:java.lang.Iterable distribute(java.util.concurrent.ExecutorService):191:191 -> b
    4:4:com.android.tools.r8.DexFilePerClassFileConsumer com.android.tools.r8.utils.InternalOptions.getDexFilePerClassFileConsumer():343:343 -> b
    4:4:java.lang.Iterable distribute(java.util.concurrent.ExecutorService):192 -> b
    5:15:java.lang.Iterable distribute(java.util.concurrent.ExecutorService):192:202 -> 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):463:463 -> <init>
    1:4:void visit(com.android.tools.r8.DataDirectoryResource):466:469 -> visit
    5:5:void visit(com.android.tools.r8.DataEntryResource):475:475 -> visit
    6:6:boolean com.android.tools.r8.dex.ResourceAdapter.isService(com.android.tools.r8.DataEntryResource):97:97 -> visit
    6:6:void visit(com.android.tools.r8.DataEntryResource):475 -> visit
    7:12:void visit(com.android.tools.r8.DataEntryResource):480:485 -> visit
    13:16:void visit(com.android.tools.r8.DataEntryResource):484:487 -> visit
    17:17:boolean com.android.tools.r8.dex.ResourceAdapter.isService(com.android.tools.r8.DataEntryResource):97:97 -> visit
    17:17:void visit(com.android.tools.r8.DataEntryResource):475 -> visit
com.android.tools.r8.dex.ApplicationWriter$SortAnnotations -> com.android.tools.r8.dex.b$b:
    1:1:void <init>():85:85 -> <init>
    2:2:void <init>(com.android.tools.r8.dex.ApplicationWriter$1):85:85 -> <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):90:90 -> a
    2:2:boolean add(com.android.tools.r8.graph.DexAnnotation):97:97 -> a
    3:4:boolean add(com.android.tools.r8.graph.DexEncodedArray):104:105 -> a
com.android.tools.r8.dex.BinaryReader -> com.android.tools.r8.dex.BinaryReader:
    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
    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
    1:1:void position(int):86:86 -> position
com.android.tools.r8.dex.ClassesChecksum -> com.android.tools.r8.dex.c:
    java.util.Map dictionary -> a
    1:1:void <init>():26:26 -> <init>
    2:2:void <init>():21:21 -> <init>
    3:3:void <init>(com.android.tools.r8.com.google.gson.JsonObject):29:29 -> <init>
    4:13:void <init>(com.android.tools.r8.com.google.gson.JsonObject):21:30 -> <init>
    1:1:com.android.tools.r8.dex.ClassesChecksum addChecksum(java.lang.String,java.lang.Long):35:35 -> a
    2:3:void lambda$merge$1(java.util.Map$Entry):45:46 -> a
    4:4:void lambda$merge$1(java.util.Map$Entry):45:45 -> a
    5:5:com.android.tools.r8.dex.ClassesChecksum merge(com.android.tools.r8.dex.ClassesChecksum):45:45 -> a
    6:6:void lambda$toString$2(com.android.tools.r8.com.google.gson.JsonObject,java.util.Map$Entry):59:59 -> a
    7:13:com.android.tools.r8.dex.ClassesChecksum parse(com.android.tools.r8.graph.DexString):66:72 -> a
    14:14:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonObject():55:55 -> a
    14:14:com.android.tools.r8.dex.ClassesChecksum parse(com.android.tools.r8.graph.DexString):73 -> a
    15:15:com.android.tools.r8.dex.ClassesChecksum parse(com.android.tools.r8.graph.DexString):74:74 -> a
    1:1:void lambda$new$0(java.util.Map$Entry):31:31 -> b
    1:7:java.lang.String toString():54:60 -> toString
com.android.tools.r8.dex.CodeToKeep -> com.android.tools.r8.dex.f:
    1:1:void <init>():21:21 -> <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):24:25 -> a
    3:3:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():314:314 -> a
    3:3:com.android.tools.r8.dex.CodeToKeep createCodeToKeep(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.NamingLens):26 -> a
    4:6:com.android.tools.r8.dex.CodeToKeep createCodeToKeep(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.NamingLens):27:29 -> a
com.android.tools.r8.dex.CodeToKeep$DesugaredLibraryCodeToKeep -> com.android.tools.r8.dex.d:
    java.util.Map toKeep -> c
    com.android.tools.r8.naming.NamingLens namingLens -> a
    java.util.Set emulatedInterfaces -> b
    1:1:void <init>(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):49:49 -> <init>
    2:8:void <init>(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):45:51 -> <init>
    9:11:void <init>(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):50:52 -> <init>
    boolean isNop() -> a
    1:10:void recordMethod(com.android.tools.r8.graph.DexMethod):61:70 -> a
    11:16:void recordField(com.android.tools.r8.graph.DexField):77:82 -> a
    17:17:void recordClass(com.android.tools.r8.graph.DexType):88:88 -> a
    18:19:void keepClass(com.android.tools.r8.graph.DexType):94:95 -> a
    18:19:void recordClass(com.android.tools.r8.graph.DexType):89 -> a
    20:20:void keepClass(com.android.tools.r8.graph.DexType):94:94 -> a
    20:20:void recordClass(com.android.tools.r8.graph.DexType):89 -> a
    21:57:void generateKeepRules(com.android.tools.r8.utils.InternalOptions):112:148 -> a
    1:3:java.lang.String convertType(com.android.tools.r8.graph.DexType):104:106 -> b
    1:2:void keepClass(com.android.tools.r8.graph.DexType):94:95 -> c
    3:3:void keepClass(com.android.tools.r8.graph.DexType):94:94 -> c
    1:1:boolean shouldKeep(com.android.tools.r8.graph.DexType):56:56 -> d
com.android.tools.r8.dex.CodeToKeep$NopCodeToKeep -> com.android.tools.r8.dex.e:
    1:1:void <init>():152:152 -> <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):170:170 -> a
com.android.tools.r8.dex.CompatByteBuffer -> com.android.tools.r8.dex.g:
    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.h:
    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.i:
    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:14:void putByte(int):54:55 -> a
    15:15:void putNoIndex():75:75 -> a
    15:15:void putString(com.android.tools.r8.graph.DexString):89 -> a
    16:16:void putString(com.android.tools.r8.graph.DexString):91:91 -> a
    17:17:void putUleb128p1(int):71:71 -> a
    17:17:void putString(com.android.tools.r8.graph.DexString):92 -> a
    18:18:void putNoIndex():75:75 -> a
    18:18:void putType(com.android.tools.r8.graph.DexType):80 -> a
    19:19:void putType(com.android.tools.r8.graph.DexType):82:82 -> a
    20:20:void putUleb128p1(int):71:71 -> a
    20:20:void putType(com.android.tools.r8.graph.DexType):83 -> a
    1:3:void putSleb128(int):59:61 -> b
    1:3:void putUleb128(int):65:67 -> c
    1:4:void maybeGrow(int):46:49 -> d
com.android.tools.r8.dex.DexOutputBuffer -> com.android.tools.r8.dex.DexOutputBuffer:
    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:19:void putInstructions(com.android.tools.r8.code.Instruction[],com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.dex.CodeToKeep):98:116 -> a
    20:21:void putShort(short):130:131 -> a
    22:26:int align(int):146:150 -> a
    27:28:com.android.tools.r8.dex.CompatByteBuffer stealByteBuffer():181:182 -> a
    1:1:byte[] asArray():177:177 -> asArray
    1:2:void forward(int):159:160 -> b
    1:1:boolean isAligned(int):173:173 -> c
    1:2:void moveTo(int):168:169 -> d
    1:2:void putInt(int):135:136 -> e
    1:20:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):51:70 -> f
    21:23:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):65:67 -> f
    24:24:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> f
    24:24:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):67 -> f
    25:25:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):67:67 -> f
    26:31:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):57:62 -> f
    32:32:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> f
    32:32:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):62 -> f
    33:33:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):62:62 -> f
    34:34:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):53:53 -> f
    35:35:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> f
    35:35:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):53 -> f
    36:36:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):53:53 -> f
    1:6:void ensureSpaceFor(int):40:45 -> g
    7:8:void freeByteBuffer(com.android.tools.r8.dex.CompatByteBuffer):75:76 -> g
    7:8:void ensureSpaceFor(int):45 -> g
    9:9:void ensureSpaceFor(int):46:46 -> g
    1:1:int position():155:155 -> position
    1:2:void putByte(byte):120:121 -> putByte
    1:2:void putBytes(byte[]):125:126 -> putBytes
com.android.tools.r8.dex.DexOutputBuffer$1 -> com.android.tools.r8.dex.DexOutputBuffer$a:
    1:1:void <init>():31:31 -> <init>
com.android.tools.r8.dex.DexParser -> com.android.tools.r8.dex.j:
    com.android.tools.r8.graph.OffsetToObjectMapping indexedItems -> h
    com.android.tools.r8.graph.ClassKind classKind -> e
    com.android.tools.r8.com.google.common.collect.ImmutableMap checksums -> g
    com.android.tools.r8.origin.Origin origin -> a
    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.it.unimi.dsi.fastutil.ints.Int2ObjectMap codes -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap offsetMap -> j
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> k
    com.android.tools.r8.utils.InternalOptions options -> f
    1:1:void <clinit>():81:81 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.DexReader,com.android.tools.r8.graph.ClassKind,com.android.tools.r8.utils.InternalOptions):126:126 -> <init>
    2:22:void <init>(com.android.tools.r8.dex.DexReader,com.android.tools.r8.graph.ClassKind,com.android.tools.r8.utils.InternalOptions):115:135 -> <init>
    1:1:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.nio.file.Path):93:93 -> a
    2:2:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.io.InputStream,com.android.tools.r8.origin.Origin):97:97 -> a
    2:2:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.nio.file.Path):93 -> a
    3:4:com.android.tools.r8.dex.DexSection[] parseMapFrom(com.android.tools.r8.dex.DexReader):101:102 -> a
    3:4:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.io.InputStream,com.android.tools.r8.origin.Origin):97 -> a
    3:4:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.nio.file.Path):93 -> a
    5:8:void checkName(com.android.tools.r8.graph.DexString):279:282 -> 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):282 -> a
    10:10:void checkName(com.android.tools.r8.graph.DexString):282:282 -> a
    11:20:java.lang.Object cacheAt(int,java.util.function.Supplier):410:419 -> a
    21:21:com.android.tools.r8.graph.DexAnnotation annotationAt(int):432:432 -> a
    22:27:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):602:607 -> a
    28:28:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    28:28:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):607 -> a
    29:30:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):608:609 -> a
    31:31:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    31:31:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):609 -> a
    32:40:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):609:617 -> a
    41:41:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    41:41:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):609 -> a
    42:42:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    42:42:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):607 -> a
    43:50:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):628:635 -> a
    51:51:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    51:51:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):635 -> a
    52:52:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):636:636 -> a
    53:53:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    53:53:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):636 -> a
    54:55:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):636:637 -> a
    56:56:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    56:56: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
    57:71:void ensureCodesInited(int):143:157 -> a
    57:71:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    72:72:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> a
    72:72:void ensureCodesInited(int):157 -> a
    72:72:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    73:74:void ensureCodesInited(int):158:159 -> a
    73:74:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    75:78:void com.android.tools.r8.dex.BinaryReader.align(int):90:93 -> a
    75:78:void ensureCodesInited(int):159 -> a
    75:78:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    79:91:com.android.tools.r8.graph.DexCode parseCodeItem():829:841 -> a
    79:91:void ensureCodesInited(int):160 -> a
    79:91:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    92:92:short com.android.tools.r8.dex.BinaryReader.getShort():68:68 -> a
    92:92:com.android.tools.r8.graph.DexCode parseCodeItem():841 -> a
    92:92:void ensureCodesInited(int):160 -> a
    92:92:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    93:108:com.android.tools.r8.graph.DexCode parseCodeItem():841:856 -> a
    93:108:void ensureCodesInited(int):160 -> a
    93:108:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    109:109:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> a
    109:109:com.android.tools.r8.graph.DexCode parseCodeItem():856 -> a
    109:109:void ensureCodesInited(int):160 -> a
    109:109:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    110:110:com.android.tools.r8.graph.DexCode parseCodeItem():858:858 -> a
    110:110:void ensureCodesInited(int):160 -> a
    110:110:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    111:111:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    111:111:com.android.tools.r8.graph.DexCode parseCodeItem():858 -> a
    111:111:void ensureCodesInited(int):160 -> a
    111:111:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    112:116:com.android.tools.r8.graph.DexCode parseCodeItem():859:863 -> a
    112:116:void ensureCodesInited(int):160 -> a
    112:116:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    117:117:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> a
    117:117:com.android.tools.r8.graph.DexCode parseCodeItem():863 -> a
    117:117:void ensureCodesInited(int):160 -> a
    117:117:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    118:120:com.android.tools.r8.graph.DexCode parseCodeItem():864:866 -> a
    118:120:void ensureCodesInited(int):160 -> a
    118:120:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    121:121:int com.android.tools.r8.dex.BinaryReader.getSleb128():48:48 -> a
    121:121:com.android.tools.r8.graph.DexCode parseCodeItem():866 -> a
    121:121:void ensureCodesInited(int):160 -> a
    121:121:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    122:126:com.android.tools.r8.graph.DexCode parseCodeItem():867:871 -> a
    122:126:void ensureCodesInited(int):160 -> a
    122:126:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    127:127:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    127:127:com.android.tools.r8.graph.DexCode parseCodeItem():871 -> a
    127:127:void ensureCodesInited(int):160 -> a
    127:127:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    128:128:com.android.tools.r8.graph.DexCode parseCodeItem():872:872 -> a
    128:128:void ensureCodesInited(int):160 -> a
    128:128:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    129:129:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    129:129:com.android.tools.r8.graph.DexCode parseCodeItem():872 -> a
    129:129:void ensureCodesInited(int):160 -> a
    129:129:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    130:130:com.android.tools.r8.graph.DexCode parseCodeItem():873:873 -> a
    130:130:void ensureCodesInited(int):160 -> a
    130:130:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    131:131:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    131:131:com.android.tools.r8.graph.DexCode parseCodeItem():872 -> a
    131:131:void ensureCodesInited(int):160 -> a
    131:131:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    132:132:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    132:132:com.android.tools.r8.graph.DexCode parseCodeItem():871 -> a
    132:132:void ensureCodesInited(int):160 -> a
    132:132:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    133:133:com.android.tools.r8.graph.DexCode parseCodeItem():877:877 -> a
    133:133:void ensureCodesInited(int):160 -> a
    133:133:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    134:134:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    134:134:com.android.tools.r8.graph.DexCode parseCodeItem():877 -> a
    134:134:void ensureCodesInited(int):160 -> a
    134:134:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    135:135:com.android.tools.r8.graph.DexCode parseCodeItem():879:879 -> a
    135:135:void ensureCodesInited(int):160 -> a
    135:135:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    136:136:int com.android.tools.r8.dex.BinaryReader.getSleb128():48:48 -> a
    136:136:com.android.tools.r8.graph.DexCode parseCodeItem():866 -> a
    136:136:void ensureCodesInited(int):160 -> a
    136:136:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    137:137:com.android.tools.r8.graph.DexCode parseCodeItem():882:882 -> a
    137:137:void ensureCodesInited(int):160 -> a
    137:137:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    138:138:void com.android.tools.r8.graph.DexCode$Try.setHandlerIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap):464:464 -> a
    138:138:com.android.tools.r8.graph.DexCode parseCodeItem():883 -> a
    138:138:void ensureCodesInited(int):160 -> a
    138:138:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    139:139:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    139:139:com.android.tools.r8.graph.DexCode parseCodeItem():858 -> a
    139:139:void ensureCodesInited(int):160 -> a
    139:139:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    140:140:com.android.tools.r8.graph.DexCode parseCodeItem():888:888 -> a
    140:140:void ensureCodesInited(int):160 -> a
    140:140:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    141:141:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> a
    141:141:com.android.tools.r8.graph.DexCode parseCodeItem():888 -> a
    141:141:void ensureCodesInited(int):160 -> a
    141:141:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    142:147:com.android.tools.r8.graph.DexCode parseCodeItem():889:894 -> a
    142:147:void ensureCodesInited(int):160 -> a
    142:147:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    148:149:void ensureCodesInited(int):161:162 -> a
    148:149:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    150:150:void com.android.tools.r8.dex.BinaryReader.align(int):90:90 -> a
    150:150:void ensureCodesInited(int):159 -> a
    150:150:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):640 -> a
    151:165:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):641:655 -> a
    166:166:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    166:166:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):655 -> a
    167:170:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):656:659 -> a
    171:171:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    171:171: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
    172:172:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    172:172:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):636 -> a
    173:173:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    173:173:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):635 -> a
    174:193:void addClassDefsTo(java.util.function.Consumer):665:684 -> a
    194:194:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> a
    194:194:void addClassDefsTo(java.util.function.Consumer):684 -> a
    195:195:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> a
    195:195:void addClassDefsTo(java.util.function.Consumer):684 -> a
    196:198:void addClassDefsTo(java.util.function.Consumer):686:688 -> a
    199:199:int com.android.tools.r8.dex.BinaryReader.getInt():78:78 -> a
    199:199:void addClassDefsTo(java.util.function.Consumer):688 -> a
    200:202:void addClassDefsTo(java.util.function.Consumer):688:690 -> a
    203:203:int com.android.tools.r8.dex.BinaryReader.getInt():78:78 -> a
    203:203:void addClassDefsTo(java.util.function.Consumer):690 -> a
    204:240:void addClassDefsTo(java.util.function.Consumer):690:726 -> a
    241:241:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    241:241:void addClassDefsTo(java.util.function.Consumer):726 -> a
    242:242:void addClassDefsTo(java.util.function.Consumer):727:727 -> a
    243:243:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    243:243:void addClassDefsTo(java.util.function.Consumer):727 -> a
    244:244:void addClassDefsTo(java.util.function.Consumer):728:728 -> a
    245:245:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    245:245:void addClassDefsTo(java.util.function.Consumer):728 -> a
    246:246:void addClassDefsTo(java.util.function.Consumer):729:729 -> a
    247:247:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    247:247:void addClassDefsTo(java.util.function.Consumer):729 -> a
    248:249:void addClassDefsTo(java.util.function.Consumer):731:732 -> a
    250:260:void addClassDefsTo(java.util.function.Consumer):731:741 -> a
    261:275:void addClassDefsTo(java.util.function.Consumer):735:749 -> a
    276:276:void addClassDefsTo(java.util.function.Consumer):743:743 -> a
    277:277:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    277:277:void addClassDefsTo(java.util.function.Consumer):729 -> a
    278:278:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    278:278:void addClassDefsTo(java.util.function.Consumer):728 -> a
    279:279:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    279:279:void addClassDefsTo(java.util.function.Consumer):727 -> a
    280:280:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    280:280:void addClassDefsTo(java.util.function.Consumer):726 -> a
    281:302:void addClassDefsTo(java.util.function.Consumer):752:773 -> a
    303:321:void addClassDefsTo(java.util.function.Consumer):756:774 -> a
    322:322:void addClassDefsTo(java.util.function.Consumer):706:706 -> a
    323:323:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    323:323:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    323:323:void addClassDefsTo(java.util.function.Consumer):706 -> a
    324:324:void addClassDefsTo(java.util.function.Consumer):706:706 -> a
    325:327:void populateStrings():910:912 -> a
    325:327:void populateIndexTables():899 -> a
    328:330:com.android.tools.r8.graph.DexString stringAt(int):1144:1146 -> a
    328:330:void populateStrings():912 -> a
    328:330:void populateIndexTables():899 -> a
    331:331:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    331:331:com.android.tools.r8.graph.DexString stringAt(int):1146 -> a
    331:331:void populateStrings():912 -> a
    331:331:void populateIndexTables():899 -> a
    332:335:com.android.tools.r8.graph.DexString stringAt(int):1147:1150 -> a
    332:335:void populateStrings():912 -> a
    332:335:void populateIndexTables():899 -> a
    336:336:byte com.android.tools.r8.dex.BinaryReader.get():97:97 -> a
    336:336:com.android.tools.r8.graph.DexString stringAt(int):1150 -> a
    336:336:void populateStrings():912 -> a
    336:336:void populateIndexTables():899 -> a
    337:339:com.android.tools.r8.graph.DexString stringAt(int):1151:1153 -> a
    337:339:void populateStrings():912 -> a
    337:339:void populateIndexTables():899 -> a
    340:340:void populateStrings():912:912 -> a
    340:340:void populateIndexTables():899 -> a
    341:341:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    341:341:com.android.tools.r8.graph.DexString stringAt(int):1146 -> a
    341:341:void populateStrings():912 -> a
    341:341:void populateIndexTables():899 -> a
    342:349:void populateChecksums():943:950 -> a
    342:349:void populateIndexTables():900 -> a
    350:350:boolean com.android.tools.r8.dex.ClassesChecksum.preceedChecksumMarker(com.android.tools.r8.graph.DexString):82:82 -> a
    350:350:void populateChecksums():952 -> a
    350:350:void populateIndexTables():900 -> a
    351:351:com.android.tools.r8.com.google.common.collect.ImmutableMap com.android.tools.r8.dex.ClassesChecksum.getChecksums():40:40 -> a
    351:351:void populateChecksums():957 -> a
    351:351:void populateIndexTables():900 -> a
    352:352:void populateChecksums():957:957 -> a
    352:352:void populateIndexTables():900 -> a
    353:354:void populateTypes():933:934 -> a
    353:354:void populateIndexTables():901 -> a
    355:374:boolean verifyOrderOfTypeIds(com.android.tools.r8.dex.DexSection):967:986 -> a
    355:374:void populateTypes():934 -> a
    355:374:void populateIndexTables():901 -> a
    375:375:boolean verifyOrderOfTypeIds(com.android.tools.r8.dex.DexSection):981:981 -> a
    375:375:void populateTypes():934 -> a
    375:375:void populateIndexTables():901 -> a
    376:378:void populateTypes():935:937 -> a
    376:378:void populateIndexTables():901 -> a
    379:385:com.android.tools.r8.graph.DexType typeAt(int):1157:1163 -> a
    379:385:void populateTypes():937 -> a
    379:385:void populateIndexTables():901 -> a
    386:386:void populateTypes():937:937 -> a
    386:386:void populateIndexTables():901 -> a
    387:388:void populateFields():995:996 -> a
    387:388:void populateIndexTables():902 -> a
    389:424:boolean verifyOrderOfFieldIds(com.android.tools.r8.dex.DexSection):1011:1046 -> a
    389:424:void populateFields():996 -> a
    389:424:void populateIndexTables():902 -> a
    425:435:boolean verifyOrderOfFieldIds(com.android.tools.r8.dex.DexSection):1043:1053 -> a
    425:435:void populateFields():996 -> a
    425:435:void populateIndexTables():902 -> a
    436:440:boolean verifyOrderOfFieldIds(com.android.tools.r8.dex.DexSection):1050:1054 -> a
    436:440:void populateFields():996 -> a
    436:440:void populateIndexTables():902 -> a
    441:441:boolean verifyOrderOfFieldIds(com.android.tools.r8.dex.DexSection):1039:1039 -> a
    441:441:void populateFields():996 -> a
    441:441:void populateIndexTables():902 -> a
    442:444:void populateFields():997:999 -> a
    442:444:void populateIndexTables():902 -> a
    445:457:com.android.tools.r8.graph.DexField fieldAt(int):1167:1179 -> a
    445:457:void populateFields():999 -> a
    445:457:void populateIndexTables():902 -> a
    458:458:void populateFields():999:999 -> a
    458:458:void populateIndexTables():902 -> a
    459:462:void populateProtos():1065:1068 -> a
    459:462:void populateIndexTables():903 -> a
    463:475:com.android.tools.r8.graph.DexProto protoAt(int):1240:1252 -> a
    463:475:void populateProtos():1068 -> a
    463:475:void populateIndexTables():903 -> a
    476:476:void populateProtos():1068:1068 -> a
    476:476:void populateIndexTables():903 -> a
    477:478:void populateMethods():1073:1074 -> a
    477:478:void populateIndexTables():904 -> a
    479:514:boolean verifyOrderOfMethodIds(com.android.tools.r8.dex.DexSection):1090:1125 -> a
    479:514:void populateMethods():1074 -> a
    479:514:void populateIndexTables():904 -> a
    515:525:boolean verifyOrderOfMethodIds(com.android.tools.r8.dex.DexSection):1122:1132 -> a
    515:525:void populateMethods():1074 -> a
    515:525:void populateIndexTables():904 -> a
    526:530:boolean verifyOrderOfMethodIds(com.android.tools.r8.dex.DexSection):1129:1133 -> a
    526:530:void populateMethods():1074 -> a
    526:530:void populateIndexTables():904 -> a
    531:531:boolean verifyOrderOfMethodIds(com.android.tools.r8.dex.DexSection):1118:1118 -> a
    531:531:void populateMethods():1074 -> a
    531:531:void populateIndexTables():904 -> a
    532:534:void populateMethods():1075:1077 -> a
    532:534:void populateIndexTables():904 -> a
    535:547:com.android.tools.r8.graph.DexMethod methodAt(int):1256:1268 -> a
    535:547:void populateMethods():1077 -> a
    535:547:void populateIndexTables():904 -> a
    548:548:com.android.tools.r8.graph.DexMethod methodAt(int):1265:1265 -> a
    548:548:void populateMethods():1077 -> a
    548:548:void populateIndexTables():904 -> a
    549:549:void populateMethods():1077:1077 -> a
    549:549:void populateIndexTables():904 -> a
    550:553:void populateMethodHandles():917:920 -> a
    550:553:void populateIndexTables():905 -> a
    554:581:com.android.tools.r8.graph.DexMethodHandle methodHandleAt(int):1183:1210 -> a
    554:581:void populateMethodHandles():920 -> a
    554:581:void populateIndexTables():905 -> a
    582:582:com.android.tools.r8.graph.DexMethodHandle methodHandleAt(int):1206:1206 -> a
    582:582:void populateMethodHandles():920 -> a
    582:582:void populateIndexTables():905 -> a
    583:599:com.android.tools.r8.graph.DexMethodHandle methodHandleAt(int):1198:1214 -> a
    583:599:void populateMethodHandles():920 -> a
    583:599:void populateIndexTables():905 -> a
    600:600:void populateMethodHandles():920:920 -> a
    600:600:void populateIndexTables():905 -> a
    601:604:void populateCallSites():925:928 -> a
    601:604:void populateIndexTables():906 -> a
    605:622:com.android.tools.r8.graph.DexCallSite callSiteAt(int):1219:1236 -> a
    605:622:void populateCallSites():928 -> a
    605:622:void populateIndexTables():906 -> a
    623:623:com.android.tools.r8.graph.DexCallSite callSiteAt(int):1231:1231 -> a
    623:623:void populateCallSites():928 -> a
    623:623:void populateIndexTables():906 -> a
    624:624:void populateCallSites():928:928 -> a
    624:624:void populateIndexTables():906 -> a
    1:2:com.android.tools.r8.graph.DexAnnotation parseAnnotation():424:425 -> b
    3:3:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> b
    3:3:com.android.tools.r8.graph.DexAnnotation parseAnnotation():425 -> 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.DexAnnotation parseAnnotation():425 -> b
    5:5:com.android.tools.r8.graph.DexAnnotation parseAnnotation():427:427 -> b
    6:6:byte com.android.tools.r8.dex.BinaryReader.get():97:97 -> b
    6:6:com.android.tools.r8.graph.DexAnnotation parseAnnotation():427 -> b
    7:7:com.android.tools.r8.graph.DexAnnotation parseAnnotation():428:428 -> b
    8:8:com.android.tools.r8.graph.DexAnnotationSet annotationSetAt(int):471:471 -> b
    9:11:java.lang.Object cacheAt(int,java.util.function.Supplier,java.util.function.Supplier):401:403 -> b
    9:11:com.android.tools.r8.graph.DexAnnotationSet annotationSetAt(int):471 -> b
    12:12:com.android.tools.r8.graph.DexAnnotationSet annotationSetAt(int):471:471 -> b
    1:1:com.android.tools.r8.graph.ParameterAnnotationsList annotationSetRefListAt(int):360:360 -> c
    2:3:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():436:437 -> c
    4:4:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> c
    4:4:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():437 -> c
    5:5:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> c
    5:5:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():437 -> c
    6:14:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():439:447 -> c
    15:16:boolean retainAnnotation(com.android.tools.r8.graph.DexAnnotation):466:467 -> c
    15:16:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():448 -> c
    17:30:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():449:462 -> c
    31:32:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():459:460 -> c
    33:33:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> c
    33:33:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():460 -> c
    34:34:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():460:460 -> c
    1:10:com.android.tools.r8.graph.ParameterAnnotationsList parseAnnotationSetRefList():364:373 -> d
    11:11:void com.android.tools.r8.graph.ParameterAnnotationsList.<init>(com.android.tools.r8.graph.DexAnnotationSet[]):56:56 -> d
    11:11:com.android.tools.r8.graph.ParameterAnnotationsList parseAnnotationSetRefList():373 -> d
    12:12:com.android.tools.r8.dex.DexParser$AnnotationsDirectory annotationsDirectoryAt(int):475:475 -> d
    13:15:java.lang.Object cacheAt(int,java.util.function.Supplier,java.util.function.Supplier):401:403 -> d
    13:15:com.android.tools.r8.dex.DexParser$AnnotationsDirectory annotationsDirectoryAt(int):475 -> d
    16:16:com.android.tools.r8.dex.DexParser$AnnotationsDirectory annotationsDirectoryAt(int):475:475 -> d
    1:4:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():480:483 -> e
    5:11:com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[] parseFieldAnnotations(int):321:327 -> e
    5:11:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():484 -> e
    12:12:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> e
    12:12:com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[] parseFieldAnnotations(int):327 -> e
    12:12:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():484 -> e
    13:19:com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[] parseFieldAnnotations(int):328:334 -> e
    13:19:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():484 -> e
    20:26:com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[] parseMethodAnnotations(int):342:348 -> e
    20:26:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():485 -> e
    27:27:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> e
    27:27:com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[] parseMethodAnnotations(int):348 -> e
    27:27:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():485 -> e
    28:34:com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[] parseMethodAnnotations(int):349:355 -> e
    28:34:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():485 -> e
    35:41:com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[] parseParameterAnnotations(int):380:386 -> e
    35:41:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():486 -> e
    42:42:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> e
    42:42:com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[] parseParameterAnnotations(int):386 -> e
    42:42:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():486 -> e
    43:51:com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[] parseParameterAnnotations(int):387:395 -> e
    43:51:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():486 -> e
    52:53:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():487:488 -> e
    54:54:com.android.tools.r8.graph.DexDebugInfo debugInfoAt(int):495:495 -> e
    1:1:com.android.tools.r8.graph.DexEncodedArray encodedArrayAt(int):314:314 -> f
    2:2:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():499:499 -> f
    3:3:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    3:3:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():499 -> f
    4:4:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():500:500 -> f
    5:5:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    5:5:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():500 -> f
    6:68:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():501:563 -> f
    69:71:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():557:559 -> f
    72:72:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():553:553 -> f
    73:73:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():549:549 -> f
    74:74:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():545:545 -> f
    75:75:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    75:75:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():545 -> f
    76:76:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():545:545 -> f
    77:77:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    77:77:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():545 -> f
    78:78:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():541:541 -> f
    79:79:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    79:79:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():541 -> f
    80:80:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():541:541 -> f
    81:81:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    81:81:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():541 -> f
    82:82:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():529:529 -> f
    83:83:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    83:83:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():529 -> f
    84:91:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():530:537 -> f
    92:92:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():533:533 -> f
    93:93:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    93:93:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():529 -> f
    94:94:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():518:518 -> f
    95:95:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    95:95:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():518 -> f
    96:101:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():519:524 -> f
    102:102:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():521:521 -> f
    103:103:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    103:103:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():518 -> f
    104:104:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():515:515 -> f
    105:105:int com.android.tools.r8.dex.BinaryReader.getSleb128():48:48 -> f
    105:105:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():515 -> f
    106:106:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():515:515 -> f
    107:107:int com.android.tools.r8.dex.BinaryReader.getSleb128():48:48 -> f
    107:107:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():515 -> f
    108:108:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():512:512 -> f
    109:109:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    109:109:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():512 -> f
    110:110:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():512:512 -> f
    111:111:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    111:111:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():512 -> f
    112:113:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():563:564 -> f
    114:173:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():509:568 -> f
    174:174:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    174:174:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():500 -> f
    175:175:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    175:175:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():499 -> f
    1:1:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():288:288 -> g
    2:2:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> g
    2:2:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():288 -> g
    3:3:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():289:289 -> g
    4:4:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> g
    4:4:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():289 -> g
    5:7:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():290:292 -> g
    8:8:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> g
    8:8:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():292 -> g
    9:10:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():293:294 -> g
    11:11:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> g
    11:11:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():292 -> g
    12:12:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():296:296 -> g
    13:13:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> g
    13:13:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():289 -> g
    14:14:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> g
    14:14:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():288 -> g
    15:21:com.android.tools.r8.dex.DexSection lookupSection(int):791:797 -> g
    1:3:com.android.tools.r8.graph.DexTypeList typeListAt(int):176:178 -> h
    4:4:com.android.tools.r8.graph.DexEncodedArray parseEncodedArray():310:310 -> h
    1:1:com.android.tools.r8.graph.DexValue[] parseEncodedArrayValues():300:300 -> i
    2:2:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> i
    2:2:com.android.tools.r8.graph.DexValue[] parseEncodedArrayValues():300 -> i
    3:5:com.android.tools.r8.graph.DexValue[] parseEncodedArrayValues():301:303 -> i
    6:6:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> i
    6:6:com.android.tools.r8.graph.DexValue[] parseEncodedArrayValues():300 -> i
    1:1:com.android.tools.r8.graph.DexValue parseEncodedValue():182:182 -> j
    2:2:byte com.android.tools.r8.dex.BinaryReader.get():97:97 -> j
    2:2:com.android.tools.r8.graph.DexValue parseEncodedValue():182 -> j
    3:3:com.android.tools.r8.graph.DexValue parseEncodedValue():274:274 -> j
    4:4:com.android.tools.r8.graph.DexValue parseEncodedValue():261:261 -> j
    5:6:com.android.tools.r8.graph.DexValue parseEncodedValue():256:257 -> j
    7:8:com.android.tools.r8.graph.DexValue parseEncodedValue():252:253 -> j
    9:10:com.android.tools.r8.graph.DexValue parseEncodedValue():248:249 -> j
    11:12:com.android.tools.r8.graph.DexValue parseEncodedValue():244:245 -> j
    13:15:com.android.tools.r8.graph.DexValue parseEncodedValue():238:240 -> j
    16:18:com.android.tools.r8.graph.DexValue parseEncodedValue():232:234 -> j
    19:20:com.android.tools.r8.graph.DexValue parseEncodedValue():227:228 -> j
    21:71:com.android.tools.r8.graph.DexValue parseEncodedValue():221:271 -> j
    72:73:com.android.tools.r8.graph.DexValue parseEncodedValue():265:266 -> j
    74:74:com.android.tools.r8.graph.DexValue parseEncodedValue():217:217 -> j
    75:75:com.android.tools.r8.graph.DexValue parseEncodedValue():213:213 -> j
    76:77:com.android.tools.r8.graph.DexValue parseEncodedValue():203:204 -> j
    78:79:com.android.tools.r8.graph.DexValue parseEncodedValue():198:199 -> j
    80:96:com.android.tools.r8.graph.DexValue parseEncodedValue():193:209 -> j
    97:99:com.android.tools.r8.graph.DexValue parseEncodedValue():187:189 -> j
    1:17:com.android.tools.r8.dex.DexSection[] parseMap():802:818 -> k
    18:23:com.android.tools.r8.dex.DexSection[] parseMap():817:822 -> k
    24:24:void com.android.tools.r8.dex.DexSection.setEnd(int):0:0 -> k
    24:24:com.android.tools.r8.dex.DexSection[] parseMap():822 -> k
    25:25:com.android.tools.r8.dex.DexSection[] parseMap():824:824 -> k
    26:26:int com.android.tools.r8.dex.BinaryReader.end():107:107 -> k
    26:26:com.android.tools.r8.dex.DexSection[] parseMap():824 -> k
    27:27:void com.android.tools.r8.dex.DexSection.setEnd(int):0:0 -> k
    27:27:com.android.tools.r8.dex.DexSection[] parseMap():824 -> k
    1:8:void parseStringIDs():779:786 -> l
    1:5:com.android.tools.r8.graph.DexTypeList parseTypeList():167:171 -> m
com.android.tools.r8.dex.DexParser$1 -> com.android.tools.r8.dex.j$a:
    int[] $SwitchMap$com$android$tools$r8$graph$DexMethodHandle$MethodHandleType -> a
    1:1:void <clinit>():1193:1193 -> <clinit>
com.android.tools.r8.dex.DexParser$AnnotationsDirectory -> com.android.tools.r8.dex.j$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.j$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.j$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):571:571 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexMemberAnnotation[],java.util.function.Supplier):578:578 -> <init>
    3:10:void <init>(com.android.tools.r8.graph.DexMemberAnnotation[],java.util.function.Supplier):573:580 -> <init>
    1:7:com.android.tools.r8.graph.DexItem getNextFor(com.android.tools.r8.graph.Descriptor):590:596 -> a
    8:8:com.android.tools.r8.graph.DexItem getNextFor(com.android.tools.r8.graph.Descriptor):594:594 -> a
com.android.tools.r8.dex.DexReader -> com.android.tools.r8.dex.DexReader:
    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.k:
    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.m:
    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):104:112 -> <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):117:118 -> 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):118 -> a
    5:5:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):120:120 -> a
    6:6:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    6:6:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):120 -> a
    7:7:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):121:121 -> a
    8:8:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    8:8:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):121 -> a
    9:9:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):122:122 -> a
    10:10:boolean com.android.tools.r8.graph.PresortedComparable.isSorted(java.lang.Object[],java.util.function.Function):19:19 -> a
    10:10:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):122 -> a
    11:13:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):122:124 -> a
    14:14:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    14:14:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):124 -> a
    15:15:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):125:125 -> a
    16:16:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    16:16:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):120 -> a
    17:17:com.android.tools.r8.graph.DexString lambda$writeEncodedAnnotation$0(com.android.tools.r8.graph.DexAnnotationElement):122:122 -> a
    18:38:com.android.tools.r8.dex.FileWriter collect():131:151 -> a
    39:76:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):256:293 -> a
    77:77:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    77:77:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):293 -> a
    78:78:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):293:293 -> a
    79:80:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):269:270 -> a
    81:81:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    81:81:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):270 -> a
    82:82:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):270:270 -> a
    83:88:void lambda$sortDexCodesByClassName$1(java.util.List,java.util.Map,com.android.tools.r8.graph.DexEncodedMethod):324:329 -> a
    89:95:void addSignaturesFromMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexCode,java.util.Map,com.android.tools.r8.naming.ClassNameMapper):345:351 -> a
    89:95:void lambda$sortDexCodesByClassName$1(java.util.List,java.util.Map,com.android.tools.r8.graph.DexEncodedMethod):328 -> a
    96:98:void writeFixedSectionItems(java.util.Collection,int,java.util.function.Consumer):356:358 -> a
    99:103:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer,int):377:381 -> a
    104:105:void writeTypeItem(com.android.tools.r8.graph.DexType):430:431 -> a
    106:108:void writeProtoItem(com.android.tools.r8.graph.DexProto):435:437 -> a
    109:116:void writeFieldItem(com.android.tools.r8.graph.DexField):441:448 -> a
    117:124:void writeMethodItem(com.android.tools.r8.graph.DexMethod):452:459 -> a
    125:126:void writeDebugItem(com.android.tools.r8.graph.DexDebugInfo):477:478 -> a
    127:141:void writeCodeItem(com.android.tools.r8.graph.DexCode):482:496 -> a
    142:142:void com.android.tools.r8.dex.DexOutputBuffer.rewind(int):164:164 -> a
    142:142:void writeCodeItem(com.android.tools.r8.graph.DexCode):496 -> a
    143:151:void writeCodeItem(com.android.tools.r8.graph.DexCode):497:505 -> a
    152:152:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    152:152:void writeCodeItem(com.android.tools.r8.graph.DexCode):505 -> a
    153:158:void writeCodeItem(com.android.tools.r8.graph.DexCode):506:511 -> a
    159:159:void com.android.tools.r8.dex.DexOutputBuffer.putSleb128(int):84:84 -> a
    159:159:void writeCodeItem(com.android.tools.r8.graph.DexCode):511 -> a
    160:161:void writeCodeItem(com.android.tools.r8.graph.DexCode):512:513 -> a
    162:162:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    162:162:void writeCodeItem(com.android.tools.r8.graph.DexCode):513 -> a
    163:163:void writeCodeItem(com.android.tools.r8.graph.DexCode):514:514 -> a
    164:164:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    164:164:void writeCodeItem(com.android.tools.r8.graph.DexCode):514 -> a
    165:165:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    165:165:void writeCodeItem(com.android.tools.r8.graph.DexCode):513 -> a
    166:166:void writeCodeItem(com.android.tools.r8.graph.DexCode):517:517 -> a
    167:167:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    167:167:void writeCodeItem(com.android.tools.r8.graph.DexCode):517 -> a
    168:168:void com.android.tools.r8.dex.DexOutputBuffer.putSleb128(int):84:84 -> a
    168:168:void writeCodeItem(com.android.tools.r8.graph.DexCode):511 -> a
    169:178:void writeCodeItem(com.android.tools.r8.graph.DexCode):520:529 -> a
    179:179:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    179:179:void writeCodeItem(com.android.tools.r8.graph.DexCode):505 -> a
    180:185:void writeTypeList(com.android.tools.r8.graph.DexTypeList):534:539 -> a
    186:187:void writeStringData(com.android.tools.r8.graph.DexString):544:545 -> a
    188:188:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    188:188:void writeStringData(com.android.tools.r8.graph.DexString):545 -> a
    189:189:void writeStringData(com.android.tools.r8.graph.DexString):546:546 -> a
    190:190:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    190:190:void writeStringData(com.android.tools.r8.graph.DexString):545 -> a
    191:191:com.android.tools.r8.graph.DexType lambda$writeAnnotationSet$2(com.android.tools.r8.graph.DexAnnotation):559:559 -> a
    192:192:void writeAnnotationSet(com.android.tools.r8.graph.DexAnnotationSet):559:559 -> a
    193:193:boolean com.android.tools.r8.graph.PresortedComparable.isSorted(java.lang.Object[],java.util.function.Function):19:19 -> a
    193:193:void writeAnnotationSet(com.android.tools.r8.graph.DexAnnotationSet):559 -> a
    194:198:void writeAnnotationSet(com.android.tools.r8.graph.DexAnnotationSet):559:563 -> a
    199:199:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> a
    199:199:void writeAnnotationSet(com.android.tools.r8.graph.DexAnnotationSet):563 -> a
    200:202:void writeAnnotationSet(com.android.tools.r8.graph.DexAnnotationSet):565:567 -> a
    203:212:void writeAnnotationSetRefList(com.android.tools.r8.graph.ParameterAnnotationsList):572:581 -> a
    213:215:void writeMemberAnnotations(java.util.List,java.util.function.ToIntFunction):587:589 -> a
    216:228:void writeAnnotationDirectory(com.android.tools.r8.graph.DexAnnotationDirectory):594:606 -> a
    229:229:int lambda$writeAnnotationDirectory$3(com.android.tools.r8.graph.DexEncodedField):603:603 -> a
    230:235:void writeEncodedFields(java.util.List):611:616 -> a
    236:236:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    236:236:void writeEncodedFields(java.util.List):616 -> a
    237:237:void writeEncodedFields(java.util.List):618:618 -> a
    238:238:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    238:238:void writeEncodedFields(java.util.List):618 -> a
    239:239:void writeEncodedFields(java.util.List):619:619 -> a
    240:240:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    240:240:void writeEncodedFields(java.util.List):618 -> a
    241:241:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    241:241:void writeEncodedFields(java.util.List):616 -> a
    242:247:void writeEncodedMethods(java.util.List,boolean):624:629 -> a
    248:248:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    248:248:void writeEncodedMethods(java.util.List,boolean):629 -> a
    249:249:void writeEncodedMethods(java.util.List,boolean):631:631 -> a
    250:250:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    250:250:void writeEncodedMethods(java.util.List,boolean):631 -> a
    251:255:void writeEncodedMethods(java.util.List,boolean):632:636 -> a
    256:256:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    256:256:void writeEncodedMethods(java.util.List,boolean):636 -> a
    257:257:void writeEncodedMethods(java.util.List,boolean):638:638 -> a
    258:258:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    258:258:void writeEncodedMethods(java.util.List,boolean):638 -> a
    259:259:void writeEncodedMethods(java.util.List,boolean):641:641 -> a
    260:260:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    260:260:void writeEncodedMethods(java.util.List,boolean):638 -> a
    261:261:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    261:261:void writeEncodedMethods(java.util.List,boolean):631 -> a
    262:262:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    262:262:void writeEncodedMethods(java.util.List,boolean):629 -> a
    263:269:void addStaticFieldValues(com.android.tools.r8.graph.DexProgramClass):665:671 -> a
    270:272:void writeEncodedArray(com.android.tools.r8.graph.DexEncodedArray):708:710 -> a
    273:273:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> a
    273:273:void writeEncodedArray(com.android.tools.r8.graph.DexEncodedArray):710 -> a
    274:274:void writeEncodedArray(com.android.tools.r8.graph.DexEncodedArray):712:712 -> a
    275:275:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    275:275:void writeEncodedArray(com.android.tools.r8.graph.DexEncodedArray):712 -> a
    276:277:void writeEncodedArray(com.android.tools.r8.graph.DexEncodedArray):713:714 -> a
    278:278:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    278:278:void writeEncodedArray(com.android.tools.r8.graph.DexEncodedArray):712 -> a
    279:285:int writeMapItem(int,int,int):722:728 -> a
    286:286:void checkThatInvokeCustomIsAllowed():1370:1370 -> a
    286:286:void writeCallSite(com.android.tools.r8.graph.DexCallSite):702 -> a
    287:288:void writeCallSite(com.android.tools.r8.graph.DexCallSite):703:704 -> a
    289:289:void checkThatInvokeCustomIsAllowed():1371:1371 -> a
    289:289:void writeCallSite(com.android.tools.r8.graph.DexCallSite):702 -> a
    290:290:void checkThatInvokeCustomIsAllowed():1370:1370 -> a
    290:290:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):676 -> a
    291:296:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):678:683 -> a
    297:305:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):680:688 -> a
    306:306:boolean com.android.tools.r8.graph.DexMethodHandle.isMethodHandle():297:297 -> a
    306:306:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):690 -> a
    307:309:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):691:693 -> a
    310:310:boolean com.android.tools.r8.graph.DexMethodHandle.isFieldHandle():293:293 -> a
    310:310:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):693 -> a
    311:316:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):693:698 -> a
    317:317:void checkThatInvokeCustomIsAllowed():1371:1371 -> a
    317:317:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):676 -> a
    1:7:void checkInterfaceMethods():237:243 -> b
    1:7:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():158 -> b
    8:8:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():161:161 -> b
    9:22:boolean verifyNames():298:311 -> b
    9:22:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():161 -> b
    23:33:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():163:173 -> b
    34:34:int sizeOfCodeItems(java.lang.Iterable):387:387 -> b
    34:34:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():173 -> b
    35:57:int sizeOfCodeItem(com.android.tools.r8.graph.DexCode):397:419 -> b
    35:57:int sizeOfCodeItems(java.lang.Iterable):389 -> b
    35:57:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():173 -> 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):420 -> b
    58:58:int sizeOfCodeItems(java.lang.Iterable):389 -> b
    58:58:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():173 -> b
    59:60:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():173:174 -> b
    61:61:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):372:372 -> b
    61:61:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():174 -> b
    62:72:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():178:188 -> b
    73:73:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):372:372 -> b
    73:73:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():188 -> b
    74:74:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():189:189 -> b
    75:75:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):372:372 -> b
    75:75:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():189 -> b
    76:76:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():191:191 -> b
    77:77:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):372:372 -> b
    77:77:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():191 -> b
    78:78:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():193:193 -> b
    79:79:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):372:372 -> b
    79:79:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():193 -> b
    80:80:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():195:195 -> b
    81:81:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):372:372 -> b
    81:81:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():195 -> b
    82:90:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():197:205 -> b
    91:96:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):733:738 -> b
    91:96:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    97:100:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):737:740 -> b
    97:100:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    101:104:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):739:742 -> b
    101:104:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    105:108:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):741:744 -> b
    105:108:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    109:112:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):743:746 -> b
    109:112:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    113:116:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):745:748 -> b
    113:116:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    117:120:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):747:750 -> b
    117:120:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    121:124:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):749:752 -> b
    121:124:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    125:128:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):751:754 -> b
    125:128:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    129:132:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):753:756 -> b
    129:132:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    133:136:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):755:758 -> b
    133:136:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    137:140:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):757:760 -> b
    137:140:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    141:144:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):759:762 -> b
    141:144:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    145:148:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):761:764 -> b
    145:148:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    149:152:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):763:766 -> b
    149:152:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    153:156:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):765:768 -> b
    153:156:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    157:161:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):767:771 -> b
    157:161:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    162:167:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):769:774 -> b
    162:167:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    168:174:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):772:778 -> b
    168:174:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():206 -> b
    175:184:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207:216 -> b
    185:187:void writeFixedSectionItems(com.android.tools.r8.graph.DexProgramClass[],int,java.util.function.Consumer):364:366 -> b
    185:187:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():216 -> b
    188:190:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():217:219 -> b
    191:191:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():218:218 -> b
    192:198:void writeHeader(com.android.tools.r8.dex.FileWriter$Layout):782:788 -> b
    192:198:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():222 -> b
    199:200:void writeHeader(com.android.tools.r8.dex.FileWriter$Layout):787:788 -> b
    199:200:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():222 -> b
    201:235:void writeHeader(com.android.tools.r8.dex.FileWriter$Layout):784:818 -> b
    201:235:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():222 -> b
    236:238:void writeSignature(com.android.tools.r8.dex.FileWriter$Layout):823:825 -> b
    236:238:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():223 -> b
    239:241:void writeSignature(com.android.tools.r8.dex.FileWriter$Layout):824:826 -> b
    239:241:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():223 -> b
    242:244:void writeChecksum(com.android.tools.r8.dex.FileWriter$Layout):833:835 -> b
    242:244:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():224 -> b
    245:248:void writeChecksum(com.android.tools.r8.dex.FileWriter$Layout):834:837 -> b
    245:248:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():224 -> b
    249:250:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():227:228 -> b
    251:251:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():314:314 -> b
    251:251:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():228 -> b
    252:257:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():228:233 -> b
    258:258:void writeSignature(com.android.tools.r8.dex.FileWriter$Layout):828:828 -> b
    258:258:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():223 -> b
    259:259:void writeStringItem(com.android.tools.r8.graph.DexString):426:426 -> b
    260:262:void writeAnnotation(com.android.tools.r8.graph.DexAnnotation):550:552 -> b
    263:263:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> b
    263:263:void writeAnnotation(com.android.tools.r8.graph.DexAnnotation):552 -> b
    264:265:void writeAnnotation(com.android.tools.r8.graph.DexAnnotation):554:555 -> b
    266:266:int lambda$writeAnnotationDirectory$4(com.android.tools.r8.graph.DexEncodedMethod):605:605 -> b
    267:273:void writeClassData(com.android.tools.r8.graph.DexProgramClass):647:653 -> b
    274:274:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> b
    274:274:void writeClassData(com.android.tools.r8.graph.DexProgramClass):653 -> b
    275:275:void writeClassData(com.android.tools.r8.graph.DexProgramClass):654:654 -> b
    276:276:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> b
    276:276:void writeClassData(com.android.tools.r8.graph.DexProgramClass):654 -> b
    277:277:void writeClassData(com.android.tools.r8.graph.DexProgramClass):655:655 -> b
    278:278:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> b
    278:278:void writeClassData(com.android.tools.r8.graph.DexProgramClass):655 -> b
    279:279:void writeClassData(com.android.tools.r8.graph.DexProgramClass):656:656 -> b
    280:280:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> b
    280:280:void writeClassData(com.android.tools.r8.graph.DexProgramClass):656 -> b
    281:285:void writeClassData(com.android.tools.r8.graph.DexProgramClass):657:661 -> b
    286:286:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> b
    286:286:void writeClassData(com.android.tools.r8.graph.DexProgramClass):656 -> b
    287:287:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> b
    287:287:void writeClassData(com.android.tools.r8.graph.DexProgramClass):655 -> b
    288:288:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> b
    288:288:void writeClassData(com.android.tools.r8.graph.DexProgramClass):654 -> b
    289:289:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> b
    289:289:void writeClassData(com.android.tools.r8.graph.DexProgramClass):653 -> b
    1:15:java.util.List sortDexCodesByClassName():319:333 -> c
    16:19:void writeClassDefItem(com.android.tools.r8.graph.DexProgramClass):463:466 -> c
    20:24:void writeClassDefItem(com.android.tools.r8.graph.DexProgramClass):465:469 -> c
    25:29:void writeClassDefItem(com.android.tools.r8.graph.DexProgramClass):468:472 -> c
    30:32:void writeClassDefItem(com.android.tools.r8.graph.DexProgramClass):471:473 -> c
    33:33:int lambda$writeAnnotationDirectory$5(com.android.tools.r8.graph.DexEncodedMethod):607:607 -> c
com.android.tools.r8.dex.FileWriter$1 -> com.android.tools.r8.dex.l:
    int[] $SwitchMap$com$android$tools$r8$graph$DexMethodHandle$MethodHandleType -> a
    1:1:void <clinit>():678:678 -> <clinit>
com.android.tools.r8.dex.FileWriter$ByteBufferResult -> com.android.tools.r8.dex.m$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.n:
    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>():845:845 -> <clinit>
    1:1:void <init>(int,int,int,int,int,int,int,int,int):877:877 -> <init>
    2:35:void <init>(int,int,int,int,int,int,int,int,int):861:894 -> <init>
    void alreadySetOffset(int) -> a
    1:10:com.android.tools.r8.dex.FileWriter$Layout from(com.android.tools.r8.graph.ObjectToOffsetMapping):899:908 -> a
    11:11:boolean isValidOffset(int,boolean):918:918 -> a
    12:13:int getAnnotationDirectoriesOffset():996:997 -> a
    1:2:int getAnnotationSetRefListsOffset():986:987 -> b
    3:4:void setAnnotationDirectoriesOffset(int):1001:1002 -> b
    1:2:int getAnnotationSetsOffset():972:973 -> c
    3:4:void setAnnotationSetRefListsOffset(int):991:992 -> c
    1:2:int getAnnotationsOffset():962:963 -> d
    3:4:void setAnnotationSetsOffset(int):981:982 -> d
    1:2:void setAnnotationsOffset(int):967:968 -> e
    3:4:int getClassDataOffset():1006:1007 -> e
    1:2:int getCodesOffset():922:923 -> f
    3:4:void setClassDataOffset(int):1011:1012 -> f
    1:2:void setCodesOffset(int):927:928 -> g
    3:3:int getEndOfFile():1034:1034 -> g
    3:3:int getDataSectionSize():912 -> g
    4:5:int getDataSectionSize():912:913 -> g
    1:2:int getDebugInfosOffset():932:933 -> h
    3:4:void setDebugInfosOffset(int):937:938 -> h
    1:2:int getEncodedArrarysOffset():1016:1017 -> i
    3:4:void setEncodedArrarysOffset(int):1021:1022 -> i
    1:1:int getEndOfFile():1034:1034 -> j
    2:2:void setEndOfFile(int):1038:1038 -> j
    1:1:int getMapOffset():1026:1026 -> k
    2:2:void setMapOffset(int):1030:1030 -> k
    1:2:int getStringDataOffsets():952:953 -> l
    3:4:void setStringDataOffsets(int):957:958 -> l
    1:2:int getTypeListsOffset():942:943 -> m
    3:4:void setTypeListsOffset(int):947:948 -> m
com.android.tools.r8.dex.FileWriter$MixedSectionOffsets -> com.android.tools.r8.dex.o:
    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>():1049:1049 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.dex.MethodToCodeObjectMapping,com.android.tools.r8.dex.FileWriter$1):1049:1049 -> <init>
    2:2:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.dex.MethodToCodeObjectMapping):1085:1085 -> <init>
    3:34:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.dex.MethodToCodeObjectMapping):1056:1087 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap access$100(com.android.tools.r8.dex.FileWriter$MixedSectionOffsets):1049:1049 -> a
    2:3:boolean add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,java.lang.Object):1091:1092 -> a
    4:4:boolean add(com.android.tools.r8.graph.DexProgramClass):1108:1108 -> a
    5:5:boolean add(com.android.tools.r8.graph.DexEncodedArray):1113:1113 -> a
    6:9:boolean add(com.android.tools.r8.graph.DexAnnotationSet):1120:1123 -> a
    10:10:void visit(com.android.tools.r8.graph.DexEncodedMethod):1128:1128 -> a
    11:11:boolean add(com.android.tools.r8.graph.DexCode):1133:1133 -> a
    12:13:boolean add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,java.lang.Object):1099:1100 -> a
    12:13:boolean add(com.android.tools.r8.graph.DexCode):1133 -> a
    14:14:boolean add(com.android.tools.r8.graph.DexDebugInfo):1138:1138 -> a
    15:18:boolean add(com.android.tools.r8.graph.DexTypeList):1143:1146 -> a
    19:22:boolean add(com.android.tools.r8.graph.ParameterAnnotationsList):1151:1154 -> a
    23:23:boolean add(com.android.tools.r8.graph.DexAnnotation):1159:1159 -> a
    24:26:boolean setAnnotationsDirectoryForClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotationDirectory):1165:1167 -> a
    27:27:boolean add(com.android.tools.r8.graph.DexString):1171:1171 -> a
    28:29:boolean add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,java.lang.Object):1099:1100 -> a
    28:29:boolean add(com.android.tools.r8.graph.DexString):1171 -> a
    30:30:java.util.Collection getAnnotationDirectories():1207:1207 -> a
    31:32:int lookup(java.lang.Object,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap):1218:1219 -> a
    33:34:int lookup(java.lang.Object,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1227:1228 -> a
    35:36:void setOffsetFor(java.lang.Object,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap):1290:1291 -> a
    37:37:void setOffsetFor(com.android.tools.r8.graph.DexDebugInfo,int):1300:1300 -> a
    38:38:void setOffsetFor(com.android.tools.r8.graph.DexCode,int):1304:1304 -> a
    39:40:void setOffsetFor(java.lang.Object,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1295:1296 -> a
    39:40:void setOffsetFor(com.android.tools.r8.graph.DexCode,int):1304 -> a
    41:42:void setOffsetFor(com.android.tools.r8.graph.DexTypeList,int):1308:1309 -> a
    43:43:void setOffsetFor(com.android.tools.r8.graph.DexString,int):1313:1313 -> a
    44:45:void setOffsetFor(java.lang.Object,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1295:1296 -> a
    44:45:void setOffsetFor(com.android.tools.r8.graph.DexString,int):1313 -> a
    46:46:void setOffsetFor(com.android.tools.r8.graph.DexAnnotation,int):1317:1317 -> a
    47:48:void setOffsetFor(com.android.tools.r8.graph.DexAnnotationSet,int):1323:1324 -> a
    49:49:void setOffsetForAnnotationsDirectory(com.android.tools.r8.graph.DexAnnotationDirectory,int):1328:1328 -> a
    50:50:void setOffsetFor(com.android.tools.r8.graph.DexProgramClass,int):1332:1332 -> a
    51:51:void setOffsetFor(com.android.tools.r8.graph.DexEncodedArray,int):1336:1336 -> a
    52:53:void setOffsetFor(com.android.tools.r8.graph.ParameterAnnotationsList,int):1340:1341 -> a
    1:1:java.util.Collection getAnnotationSetRefLists():1199:1199 -> b
    2:2:int getOffsetFor(com.android.tools.r8.graph.DexString):1233:1233 -> b
    3:6:int getOffsetFor(com.android.tools.r8.graph.DexTypeList):1237:1240 -> b
    7:7:int getOffsetFor(com.android.tools.r8.graph.DexProgramClass):1244:1244 -> b
    8:8:int getOffsetFor(com.android.tools.r8.graph.DexEncodedArray):1248:1248 -> b
    9:9:int getOffsetFor(com.android.tools.r8.graph.DexDebugInfo):1252:1252 -> b
    10:10:int getOffsetFor(com.android.tools.r8.graph.DexAnnotation):1266:1266 -> b
    11:14:int getOffsetFor(com.android.tools.r8.graph.DexAnnotationSet):1272:1275 -> b
    15:18:int getOffsetFor(com.android.tools.r8.graph.ParameterAnnotationsList):1279:1282 -> b
    19:19:int getOffsetFor(com.android.tools.r8.graph.DexCode):1286:1286 -> b
    1:1:java.util.Collection getAnnotationSets():1195:1195 -> c
    2:6:int getOffsetForAnnotationsDirectory(com.android.tools.r8.graph.DexProgramClass):1257:1261 -> c
    1:1:java.util.Collection getAnnotations():1191:1191 -> d
    1:1:java.util.Collection getClassesWithData():1203:1203 -> e
    1:1:java.util.Collection getCodes():1175:1175 -> f
    1:1:java.util.Collection getDebugInfos():1179:1179 -> g
    1:1:java.util.Collection getEncodedArrays():1211:1211 -> h
    1:1:java.util.Collection getStringData():1187:1187 -> i
    1:1:java.util.Collection getTypeLists():1183:1183 -> j
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap createObject2IntMap():1074:1075 -> k
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createReference2IntMap():1080:1080 -> l
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.<init>():176:176 -> l
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createReference2IntMap():1080 -> l
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createReference2IntMap():1081:1081 -> l
com.android.tools.r8.dex.FileWriter$ProgramClassDependencyCollector -> com.android.tools.r8.dex.p:
    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[]):1349:1350 -> <init>
    3:7:void <init>(com.android.tools.r8.dex.FileWriter,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexProgramClass[]):1347:1351 -> <init>
    void visit(com.android.tools.r8.graph.DexType) -> a
    1:4:void visit(com.android.tools.r8.graph.DexClass):1362:1365 -> a
com.android.tools.r8.dex.IndexedItemCollection -> com.android.tools.r8.dex.q:
    1:1:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexMethod):103:103 -> a
    2:2:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexField):107:107 -> a
    3:3:com.android.tools.r8.graph.DexString getRenamedDescriptor(com.android.tools.r8.graph.DexType):111:111 -> a
com.android.tools.r8.dex.InheritanceClassInDexDistributor -> com.android.tools.r8.dex.u:
    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:int lambda$static$0(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):46:46 -> a
    4:5:int getTotalClassNumber(java.util.List):366:367 -> a
    6:8:java.util.Collection assignGroup(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup,java.util.List):373:375 -> a
    9:9:boolean com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup.canFitInOneDex():82:82 -> a
    9:9:java.util.Collection assignGroup(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup,java.util.List):376 -> a
    10:34:java.util.Collection assignGroup(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup,java.util.List):379:403 -> a
    35:35:boolean lambda$assignGroup$1(java.util.List,com.android.tools.r8.dex.VirtualFile):379:379 -> a
    36:36:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> a
    36:36:boolean lambda$assignGroup$1(java.util.List,com.android.tools.r8.dex.VirtualFile):379 -> a
    37:37:boolean lambda$assignClassesWithLinkingError$3(java.util.Set,com.android.tools.r8.dex.VirtualFile):432:432 -> a
    38:38:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> a
    38:38:boolean lambda$assignClassesWithLinkingError$3(java.util.Set,com.android.tools.r8.dex.VirtualFile):432 -> a
    39:39:java.util.List collectNoDirectInheritanceGroups(java.util.Set):478:478 -> a
    39:39:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):416 -> a
    40:44:java.util.List getTopologicalOrder(java.util.Set):691:695 -> a
    40:44:java.util.List collectNoDirectInheritanceGroups(java.util.Set):479 -> a
    40:44:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):416 -> a
    45:69:java.util.List collectNoDirectInheritanceGroups(java.util.Set):480:504 -> a
    45:69:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):416 -> a
    70:89:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):418:437 -> a
    90:90:boolean com.android.tools.r8.dex.VirtualFile.isFull():201:201 -> a
    90:90:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):438 -> a
    91:98:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):439:446 -> a
    99:99:void markDexFull(com.android.tools.r8.dex.VirtualFile):716:716 -> a
    99:99:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):447 -> a
    100:103:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):450:453 -> a
    104:104:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):442:442 -> a
    105:105:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():667:667 -> a
    105:105:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):443 -> a
    106:106:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):443:443 -> a
    107:107:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    107:107:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):443 -> a
    108:108:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    108:108:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    108:108:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):443 -> a
    109:121:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):443:455 -> a
    122:133:java.util.List collectInheritanceGroups():522:533 -> a
    122:133:void distribute():310 -> a
    134:144:void distribute():312:322 -> a
    145:145:boolean com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup.canFitInOneDex():82:82 -> a
    145:145:void distribute():325 -> a
    146:180:void distribute():325:359 -> a
    181:181:void lambda$updateGroupsNumberOfIds$5(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):540:540 -> a
    182:202:void collectGroup(java.util.Collection,com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup,com.android.tools.r8.graph.DexProgramClass):562:582 -> a
    203:207:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):591:595 -> a
    208:208:boolean com.android.tools.r8.dex.VirtualFile.isFull():201:201 -> a
    208:208:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):597 -> a
    209:210:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):598:599 -> a
    211:211:void markDexFull(com.android.tools.r8.dex.VirtualFile):716:716 -> a
    211:211:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):600 -> a
    212:218:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):602:608 -> a
    219:219:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):607:607 -> a
    220:227:com.android.tools.r8.graph.DexProgramClass findOneRootInSetFrom(com.android.tools.r8.graph.DexProgramClass,java.util.Set):702:709 -> a
    228:228:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> a
    1:1:java.util.Comparator access$200():43:43 -> b
    2:2:com.android.tools.r8.dex.VirtualFile access$300(com.android.tools.r8.dex.InheritanceClassInDexDistributor):43:43 -> b
    3:3:boolean lambda$assignGroup$2(java.util.List,com.android.tools.r8.dex.VirtualFile):393:393 -> b
    4:4:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> b
    4:4:boolean lambda$assignGroup$2(java.util.List,com.android.tools.r8.dex.VirtualFile):393 -> b
    5:5:boolean lambda$assignClassesWithLinkingError$4(java.util.Set,com.android.tools.r8.dex.VirtualFile):451:451 -> b
    6:6:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> b
    6:6:boolean lambda$assignClassesWithLinkingError$4(java.util.Set,com.android.tools.r8.dex.VirtualFile):451 -> b
    7:21:void updateGroupsNumberOfIds(java.util.List):538:552 -> b
    22:22:void updateGroupsNumberOfIds(java.util.List):547:547 -> b
    23:32:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):619:628 -> b
    33:37:boolean hasDirectInheritanceInCollection(com.android.tools.r8.graph.DexProgramClass,java.util.Set):660:664 -> b
    33:37:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):629 -> b
    38:38:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):632:632 -> b
    39:39:boolean com.android.tools.r8.dex.VirtualFile.isFull():201:201 -> b
    39:39:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):633 -> b
    40:48:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):634:642 -> b
    49:49:void markDexFull(com.android.tools.r8.dex.VirtualFile):716:716 -> b
    49:49:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):643 -> b
    50:50:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):637:637 -> b
    51:51:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():667:667 -> b
    51:51:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):638 -> b
    52:52:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):638:638 -> b
    53:53:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> b
    53:53:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):638 -> b
    54:54:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> b
    54:54:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> b
    54:54:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):638 -> b
    55:65:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):638:648 -> b
    66:90:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):630:654 -> b
    91:91:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):653:653 -> b
    92:93: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.r:
    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.s:
    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:4:int compareTo(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):89:91 -> compareTo
    2:4:int compareTo(java.lang.Object):54 -> compareTo
    5:25:int compareTo(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):89:109 -> compareTo
    5: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.t:
    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.v:
    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:151:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):241:241 -> a
    151:151:java.util.List expandCode():287 -> a
    151:151:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    152:156:java.util.List expandCode():288:292 -> a
    152:156:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    157:157:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):241:241 -> a
    157:157:java.util.List expandCode():287 -> a
    157:157:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    158:181:java.util.List expandCode():294:317 -> a
    158:181:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    182:182:java.util.List expandCode():314:314 -> a
    182:182:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    183:183:java.util.List expandCode():311:311 -> a
    183:183:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    184:184:java.util.List expandCode():308:308 -> a
    184:184:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    185:185:java.util.List expandCode():305:305 -> a
    185:185:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    186:229:java.util.List expandCode():302:345 -> a
    186:229:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    230:230:java.util.List expandCode():342:342 -> a
    230:230:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    231:231:java.util.List expandCode():339:339 -> a
    231:231:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    232:232:java.util.List expandCode():336:336 -> a
    232:232:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    233:233:java.util.List expandCode():333:333 -> a
    233:233:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    234:263:java.util.List expandCode():330:359 -> a
    234:263:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    264:316:java.util.List expandCode():357:409 -> a
    264:316:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    317:354:void rewriteInstructionOffsets(java.util.List):140:177 -> a
    317:354:com.android.tools.r8.graph.DexCode rewrite():118 -> a
    355:361:com.android.tools.r8.graph.DexCode$Try[] rewriteTryOffsets():184:190 -> a
    355:361:com.android.tools.r8.graph.DexCode rewrite():119 -> a
    362:380:com.android.tools.r8.graph.DexCode$TryHandler[] rewriteHandlerOffsets():196:214 -> a
    362:380:com.android.tools.r8.graph.DexCode rewrite():120 -> a
    381:399:com.android.tools.r8.graph.DexDebugInfo rewriteDebugInfoOffsets():220:238 -> a
    381:399:com.android.tools.r8.graph.DexCode rewrite():121 -> a
    400:411:void addDefaultEvent(int,int,java.util.List):260:271 -> a
    400:411:com.android.tools.r8.graph.DexDebugInfo rewriteDebugInfoOffsets():239 -> a
    400:411:com.android.tools.r8.graph.DexCode rewrite():121 -> a
    412:422:com.android.tools.r8.graph.DexDebugInfo rewriteDebugInfoOffsets():240:250 -> a
    412:422:com.android.tools.r8.graph.DexCode rewrite():121 -> a
    423:435: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.v$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.w:
    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:23:void <clinit>():18:40 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.Marker$Tool):46:46 -> <init>
    2:4:void <init>(com.android.tools.r8.dex.Marker$Tool,com.android.tools.r8.com.google.gson.JsonObject):49:51 -> <init>
    1:2:com.android.tools.r8.dex.Marker setMinApi(long):85:86 -> a
    3:3:java.lang.String getCompilationMode():101:101 -> a
    4:5:com.android.tools.r8.dex.Marker setCompilationMode(com.android.tools.r8.CompilationMode):105:106 -> a
    6:7:com.android.tools.r8.dex.Marker setPgMapId(java.lang.String):115:116 -> a
    8:8:void lambda$toString$0(com.android.tools.r8.com.google.gson.JsonObject,java.util.Map$Entry):127:127 -> a
    9:20:com.android.tools.r8.dex.Marker parse(com.android.tools.r8.graph.DexString):148:159 -> a
    21:21:com.android.tools.r8.dex.Marker internalParse(com.android.tools.r8.dex.Marker$Tool,java.lang.String):167:167 -> a
    22:22:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonObject():55:55 -> a
    22:22:com.android.tools.r8.dex.Marker internalParse(com.android.tools.r8.dex.Marker$Tool,java.lang.String):168 -> a
    23:23:com.android.tools.r8.dex.Marker internalParse(com.android.tools.r8.dex.Marker$Tool,java.lang.String):169:169 -> a
    1:1:java.lang.Long getMinApi():81:81 -> b
    2:3:com.android.tools.r8.dex.Marker setSha1(java.lang.String):95:96 -> b
    1:2:com.android.tools.r8.dex.Marker setVersion(java.lang.String):75:76 -> c
    3:3:java.lang.String getPgMapId():111:111 -> c
    1:1:com.android.tools.r8.dex.Marker$Tool getTool():55:55 -> d
    1:1:java.lang.String getVersion():71:71 -> e
    1:3:boolean equals(java.lang.Object):133:135 -> equals
    1:1:boolean isD8():59:59 -> f
    1:1:int hashCode():142:142 -> hashCode
    1:6:java.lang.String toString():123:128 -> toString
com.android.tools.r8.dex.Marker$Tool -> com.android.tools.r8.dex.w$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>():27:29 -> <clinit>
    1:1:void <init>(java.lang.String,int):26:26 -> <init>
    1:1:com.android.tools.r8.dex.Marker$Tool[] valuesR8andD8():32:32 -> a
com.android.tools.r8.dex.MethodToCodeObjectMapping -> com.android.tools.r8.dex.z:
    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.x:
    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.y:
    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.A:
    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.H:
    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:32:byte[] adaptFileContents(com.android.tools.r8.DataEntryResource):122:130 -> a
    24:32:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):69 -> a
    33:45:byte[] adaptFileContents(com.android.tools.r8.DataEntryResource):122:134 -> a
    33:45:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):69 -> a
    46:47:byte[] adaptFileContents(com.android.tools.r8.DataEntryResource):131:132 -> a
    46:47:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):69 -> a
    48:48:byte[] adaptFileContents(com.android.tools.r8.DataEntryResource):131:131 -> a
    48: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.B:
    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.C:
    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.D:
    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.E:
    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.F:
    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.G:
    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:12:boolean renameJavaPackageInRange(int,int):292:301 -> c
    13:13:void outputJavaType(java.lang.String):327:327 -> c
    13:13:boolean renameJavaPackageInRange(int,int):299 -> c
    14:15:boolean renameJavaPackageInRange(int,int):303:304 -> c
    1:7:boolean renameJavaTypeInRange(int,int):262:268 -> d
    8:21:boolean renameJavaTypeInRange(int,int):267:280 -> d
    22:22:void outputJavaType(java.lang.String):327:327 -> d
    22:22:boolean renameJavaTypeInRange(int,int):278 -> d
    23:24:boolean renameJavaTypeInRange(int,int):282:283 -> d
    25:25:boolean eof():331:331 -> d
    25:25:void handleMisc():194 -> d
    25:25:boolean run():171 -> d
    26:27:void handleMisc():194:195 -> d
    26:27:boolean run():171 -> d
    28:28:boolean eof():331:331 -> d
    28:28:void handleJavaType():202 -> d
    28:28:boolean run():172 -> d
    29:32:void handleJavaType():206:209 -> d
    29:32:boolean run():172 -> d
    33:33:boolean eof():331:331 -> d
    33:33:void handleJavaType():210 -> d
    33:33:boolean run():172 -> d
    34:39:void handleJavaType():211:216 -> d
    34:39:boolean run():172 -> d
    40:40:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.push(int):487:487 -> d
    40:40:void handleJavaType():216 -> d
    40:40:boolean run():172 -> d
    41:51:void handleJavaType():218:228 -> d
    41:51:boolean run():172 -> d
    52:52:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.push(int):487:487 -> d
    52:52:void handleJavaType():228 -> d
    52:52:boolean run():172 -> d
    53:61:void handleJavaType():231:239 -> d
    53:61:boolean run():172 -> d
    62:62:boolean eof():331:331 -> d
    62:62:void handleJavaType():239 -> d
    62:62:boolean run():172 -> d
    63:64:void handleJavaType():239:240 -> d
    63:64:boolean run():172 -> d
    65:65:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.push(int):487:487 -> d
    65:65:void handleJavaType():240 -> d
    65:65:boolean run():172 -> d
    66:70:void handleJavaType():243:247 -> d
    66:70:boolean run():172 -> d
    71:72:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.popInt():492:493 -> d
    71:72:void handleJavaType():247 -> d
    71:72:boolean run():172 -> d
    73:74:void handleJavaType():248:249 -> d
    73:74:boolean run():172 -> d
    75:75:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.popInt():492:492 -> d
    75:75:void handleJavaType():247 -> d
    75:75:boolean run():172 -> d
    76:78:void handleJavaType():253:255 -> d
    76:78:boolean run():172 -> d
    79:80:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.popInt():492:493 -> d
    79:80:void handleJavaType():255 -> d
    79:80:boolean run():172 -> d
    81:81:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.popInt():492:492 -> d
    81:81:void handleJavaType():255 -> d
    81:81:boolean run():172 -> d
    82:82:boolean eof():331:331 -> d
    82:82:boolean run():173 -> d
    83:93:boolean run():174:184 -> d
    1:1:void outputRangeFromInput(int,int):322:322 -> e
com.android.tools.r8.dex.VDexParser -> com.android.tools.r8.dex.I:
    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:14:byte[] com.android.tools.r8.dex.BinaryReader.getByteArray(int):38:39 -> b
    13:14:void parseDexFiles():48 -> b
    15:15:void parseDexFiles():48:48 -> b
    16:16:byte[] com.android.tools.r8.dex.BinaryReader.getByteArray(int):38:38 -> b
    16:16:void parseDexFiles():48 -> b
    17:17:void parseDexFiles():53:53 -> b
    18:18:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> b
    18:18:void parseDexFiles():53 -> b
    19:19:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> b
    19:19:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> b
    19:19:void parseDexFiles():53 -> b
    20:20:void parseDexFiles():53:53 -> b
com.android.tools.r8.dex.VDexReader -> com.android.tools.r8.dex.J:
    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) -> b
    boolean supportedVersion(int) -> c
    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.K:
    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:28:void lambda$computeOriginalNameMapping$0(java.util.Map,com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.graph.DexProgramClass):155:156 -> a
    29: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:48:void com.android.tools.r8.dex.VirtualFile$IndexedItemTransaction.addClassAndDependencies(com.android.tools.r8.graph.DexProgramClass):644:644 -> a
    48:48:void addClass(com.android.tools.r8.graph.DexProgramClass):192 -> a
    49:50:boolean isFull(int):196:197 -> a
    51:51:boolean isFull():201:201 -> a
    51:51:void throwIfFull(boolean,com.android.tools.r8.utils.Reporter):213 -> a
    52:54:void throwIfFull(boolean,com.android.tools.r8.utils.Reporter):216:218 -> a
    55:57:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> a
    55:57:void throwIfFull(boolean,com.android.tools.r8.utils.Reporter):216 -> a
    58:58:boolean isFilledEnough(com.android.tools.r8.dex.VirtualFile$FillStrategy):222:222 -> a
    58:58:boolean access$1500(com.android.tools.r8.dex.VirtualFile,com.android.tools.r8.dex.VirtualFile$FillStrategy):51 -> a
    59:59: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.K$a:
com.android.tools.r8.dex.VirtualFile$Distributor -> com.android.tools.r8.dex.K$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.K$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.K$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.K$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
    83:83:int lambda$run$0(com.android.tools.r8.dex.VirtualFile):497:497 -> a
com.android.tools.r8.dex.VirtualFile$FillStrategy -> com.android.tools.r8.dex.K$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.K$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:6:com.android.tools.r8.graph.DexString getRenamedDescriptor(com.android.tools.r8.graph.DexType):689:689 -> a
    7:8:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexMethod):694:695 -> a
    9:9:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexField):700:700 -> a
    10:14:void commitItemsIn(java.util.Set,java.util.function.Function):712:716 -> a
    15:16:void lambda$commitItemsIn$0(java.util.function.Function,com.android.tools.r8.graph.DexItem):713:714 -> a
    17:22: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
com.android.tools.r8.dex.VirtualFile$MonoDexDistributor -> com.android.tools.r8.dex.K$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.K$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:4: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
    2:6:java.util.Map call():908:912 -> call
    7:7:java.lang.String getOriginalName(com.android.tools.r8.graph.DexProgramClass):899:899 -> call
    7:7:java.util.Map call():913 -> call
    8:8:java.lang.String com.android.tools.r8.graph.DexProgramClass.toString():209:209 -> call
    8:8:java.lang.String getOriginalName(com.android.tools.r8.graph.DexProgramClass):899 -> call
    8:8:java.util.Map call():913 -> call
    9:13:boolean coveredByPrefix(java.lang.String,java.lang.String):890:894 -> call
    9:13:java.util.Map call():914 -> call
    14:52:java.util.Map call():916:954 -> call
    53:53:boolean com.android.tools.r8.dex.VirtualFile.isFull():201:201 -> call
    53:53:java.util.Map call():954 -> call
    54:83:java.util.Map call():955:984 -> call
    84:129:java.util.Map call():948:993 -> call
    130:137:void addNonPackageClasses(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler,java.util.List):1000:1007 -> call
    130:137:java.util.Map call():993 -> call
    138:138:boolean com.android.tools.r8.dex.VirtualFile.isFull():201:201 -> call
    138:138:void addNonPackageClasses(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler,java.util.List):1008 -> call
    138:138:java.util.Map call():993 -> call
    139:142:void addNonPackageClasses(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler,java.util.List):1010:1013 -> call
    139:142:java.util.Map call():993 -> call
    143:143:boolean com.android.tools.r8.dex.VirtualFile.isFull():201:201 -> call
    143:143:void addNonPackageClasses(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler,java.util.List):1014 -> call
    143:143:java.util.Map call():993 -> call
    144:144:void addNonPackageClasses(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler,java.util.List):1015:1015 -> call
    144:144:java.util.Map call():993 -> call
    145:145:java.lang.String com.android.tools.r8.graph.DexProgramClass.toString():209:209 -> call
    145:145:void addNonPackageClasses(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler,java.util.List):1016 -> call
    145:145:java.util.Map call():993 -> call
    146:149:void addNonPackageClasses(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler,java.util.List):1016:1019 -> call
    146:149:java.util.Map call():993 -> call
com.android.tools.r8.dex.VirtualFile$VirtualFileCycler -> com.android.tools.r8.dex.K$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.K$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
    3:3:com.android.tools.r8.graph.DexString getRenamedDescriptor(com.android.tools.r8.graph.DexType):600:600 -> a
    4:5:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexMethod):605:606 -> a
    6:6:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexField):611:611 -> 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: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:
    int[] $SwitchMap$com$android$tools$r8$dexfilemerger$DexFileMerger$MultidexStrategy -> a
    1:1:void <clinit>():66:66 -> <clinit>
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>
    1:1:com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy[] values():49:49 -> a
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.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.d:
    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.e:
    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.v.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:27:boolean isInFeature(com.android.tools.r8.graph.DexProgramClass):111:112 -> a
    28: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.v.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.AccessFlags -> com.android.tools.r8.graph.a:
    java.util.List NAMES -> c
    int modifiedFlags -> b
    boolean $assertionsDisabled -> d
    int originalFlags -> a
    1:12:void <clinit>():12:23 -> <clinit>
    1:3:void <init>(int,int):51:53 -> <init>
    1:7:int visibilityOrdinal():110:116 -> A
    1:5:boolean isMoreVisibleThan(com.android.tools.r8.graph.AccessFlags,java.lang.String,java.lang.String):88:92 -> a
    6:6:boolean isVisibilityDependingOnPackage():124:124 -> a
    6:6:boolean isMoreVisibleThan(com.android.tools.r8.graph.AccessFlags,java.lang.String,java.lang.String):93 -> a
    7:7:boolean isMoreVisibleThan(com.android.tools.r8.graph.AccessFlags,java.lang.String,java.lang.String):94:94 -> a
    8:8:boolean isAtLeastAsVisibleAs(com.android.tools.r8.graph.AccessFlags):101:101 -> a
    9:9:boolean isSet(int):224:224 -> a
    10:10:void demote(int):246:246 -> a
    10:10:void demoteFromFinal():203 -> a
    11:24:java.lang.String toStringInternal(boolean):259:272 -> a
    1:1:java.util.List getNames():45:45 -> b
    2:2:boolean isSameVisiblity(com.android.tools.r8.graph.AccessFlags):105:105 -> b
    3:3:void promote(int):242:242 -> b
    1:1:int getOriginalAccessFlags():69:69 -> c
    2:3:void set(int):228:229 -> c
    1:1:java.util.List getPredicates():34:34 -> d
    2:3:void unset(int):233:234 -> d
    1:1:boolean isFinal():175:175 -> e
    1:3:boolean equals(java.lang.Object):74:76 -> equals
    1:1:boolean isPrivate():141:141 -> f
    1:1:boolean wasSet(int):220:220 -> g
    1:1:boolean isPromoted(int):238 -> g
    1:1:boolean isPromotedToPublic():207 -> g
    2:2:boolean isSet(int):224:224 -> g
    2:2:boolean isPromoted(int):238 -> g
    2:2:boolean isPromotedToPublic():207 -> g
    1:1:boolean isProtected():154:154 -> h
    1:1:int hashCode():83:83 -> hashCode
    1:1:boolean isPublic():128:128 -> i
    1:1:boolean isStatic():167:167 -> j
    1:1:boolean isSynthetic():187:187 -> k
    1:1:int materialize():61:61 -> l
    1:1:void promoteToFinal():199:199 -> m
    1:1:void demote(int):246:246 -> n
    1:1:void promoteToPublic():211 -> n
    2:2:void promoteToPublic():212:212 -> n
    1:1:void promoteToStatic():216:216 -> o
    1:1:void setFinal():179:179 -> p
    1:2:void setPrivate():145:146 -> q
    1:2:void setProtected():158:159 -> r
    1:2:void setPublic():132:133 -> s
    1:1:void setStatic():171:171 -> t
    1:1:java.lang.String toString():255:255 -> toString
    1:1:void setSynthetic():191:191 -> u
    1:1:java.lang.String toSmaliString():250:250 -> v
    1:1:void unsetPrivate():150:150 -> w
    1:1:void unsetProtected():163:163 -> x
    1:1:void unsetPublic():137:137 -> y
    1:1:void unsetSynthetic():195:195 -> z
com.android.tools.r8.graph.AppInfo -> com.android.tools.r8.graph.b:
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexApplication):36:36 -> <init>
    2:14:void <init>(com.android.tools.r8.graph.DexApplication):26:38 -> <init>
    15:15:void <init>(com.android.tools.r8.graph.AppInfo):41:41 -> <init>
    16:36:void <init>(com.android.tools.r8.graph.AppInfo):26:46 -> <init>
    1:1:com.android.tools.r8.graph.DexField com.android.tools.r8.graph.DexEncodedField.getKey():94:94 -> a
    1:1:void lambda$computeDefinitions$1(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder,com.android.tools.r8.graph.DexEncodedField):102 -> a
    2:2:void lambda$computeDefinitions$1(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder,com.android.tools.r8.graph.DexEncodedField):102:102 -> a
    3:9:java.util.Map computeDefinitions(com.android.tools.r8.graph.DexType):98:104 -> a
    10:15:com.android.tools.r8.graph.ResolutionResult resolveMethodOnArray(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):313:318 -> a
    16:18:com.android.tools.r8.graph.DexEncodedMethod resolveMethodOnClassStep2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):372:374 -> a
    19:26:com.android.tools.r8.graph.DexEncodedMethod resolveMethodOnClassStep2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):373:380 -> a
    27:27:boolean com.android.tools.r8.graph.MethodAccessFlags.isVarargs():134:134 -> a
    27:27:com.android.tools.r8.graph.DexEncodedMethod resolveMethodOnClassStep2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):380 -> a
    28:36:com.android.tools.r8.graph.DexEncodedMethod resolveMethodOnClassStep2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):385:393 -> a
    37:60:com.android.tools.r8.graph.DexEncodedMethod resolveMethodStep3Helper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.AppInfo$MultiResultBuilder):430:453 -> a
    61:65:com.android.tools.r8.graph.DexEncodedMethod selectCandidate(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):613:617 -> a
    66:66:com.android.tools.r8.graph.DexMethod com.android.tools.r8.graph.DexEncodedMethod.getKey():1058:1058 -> a
    66:66:void lambda$computeDefinitions$0(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder,com.android.tools.r8.graph.DexEncodedMethod):101 -> a
    67:67:void lambda$computeDefinitions$0(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder,com.android.tools.r8.graph.DexEncodedMethod):101:101 -> a
    1:4:void addSynthesizedClass(com.android.tools.r8.graph.DexProgramClass):86:89 -> addSynthesizedClass
    1:2:com.android.tools.r8.graph.DexApplication app():75:76 -> app
    1:7:java.util.Map getDefinitions(com.android.tools.r8.graph.DexType):171:177 -> b
    1:1:boolean checkIfObsolete():70:70 -> checkIfObsolete
    1:2:java.lang.Iterable classes():108:109 -> classes
    1:2:java.lang.Iterable classesWithDeterministicOrder():113:114 -> classesWithDeterministicOrder
    1:1:void copyMetadataFromPrevious(com.android.tools.r8.graph.AppInfo):54:54 -> copyMetadataFromPrevious
    1:9:com.android.tools.r8.graph.DexDefinition definitionFor(com.android.tools.r8.graph.DexReference):119:127 -> definitionFor
    10:16:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):132:138 -> definitionFor
    17:22:com.android.tools.r8.graph.DexEncodedMethod definitionFor(com.android.tools.r8.graph.DexMethod):154:159 -> definitionFor
    23:24:com.android.tools.r8.graph.DexEncodedField definitionFor(com.android.tools.r8.graph.DexField):166:167 -> definitionFor
    1:1:com.android.tools.r8.graph.DexProgramClass definitionForProgramType(com.android.tools.r8.graph.DexType):143:143 -> definitionForProgramType
    1:2:com.android.tools.r8.graph.DexItemFactory dexItemFactory():81:82 -> dexItemFactory
    1:3:com.android.tools.r8.graph.DexEncodedMethod dispatchDirectInvoke(com.android.tools.r8.graph.ResolutionResult):599:601 -> dispatchDirectInvoke
    1:3:com.android.tools.r8.graph.DexEncodedMethod dispatchStaticInvoke(com.android.tools.r8.graph.ResolutionResult):585:587 -> dispatchStaticInvoke
    1:2:java.util.Collection getSynthesizedClassesForSanityCheck():93:94 -> getSynthesizedClassesForSanityCheck
    1:1:boolean hasLiveness():634:634 -> hasLiveness
    1:1:boolean hasSubtyping():624:624 -> hasSubtyping
    1:2:boolean isInMainDexList(com.android.tools.r8.graph.DexType):649:650 -> isInMainDexList
    1:1:boolean isObsolete():58:58 -> isObsolete
    1:4:com.android.tools.r8.graph.DexEncodedMethod lookupDirectTarget(com.android.tools.r8.graph.DexMethod):239:242 -> lookupDirectTarget
    1:4:com.android.tools.r8.graph.DexEncodedField lookupInstanceTarget(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):517:520 -> lookupInstanceTarget
    1:4:com.android.tools.r8.graph.DexEncodedMethod lookupStaticTarget(com.android.tools.r8.graph.DexMethod):191:194 -> lookupStaticTarget
    5:8:com.android.tools.r8.graph.DexEncodedField lookupStaticTarget(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):530:533 -> lookupStaticTarget
    1:20:com.android.tools.r8.graph.DexEncodedMethod lookupSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):208:227 -> lookupSuperTarget
    1:5:com.android.tools.r8.graph.DexEncodedMethod lookupVirtualTarget(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):252:256 -> lookupVirtualTarget
    1:1:void markObsolete():62:62 -> markObsolete
    1:1:com.android.tools.r8.utils.InternalOptions options():50:50 -> options
    1:3:com.android.tools.r8.origin.Origin originFor(com.android.tools.r8.graph.DexType):147:149 -> originFor
    1:1:void registerNewType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):645:645 -> registerNewType
    1:2:com.android.tools.r8.graph.DexEncodedField resolveField(com.android.tools.r8.graph.DexField):541:542 -> resolveField
    1:20:com.android.tools.r8.graph.DexEncodedField resolveFieldOn(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):552:571 -> resolveFieldOn
    1:9:com.android.tools.r8.graph.ResolutionResult resolveMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):270:278 -> resolveMethod
    10:12:com.android.tools.r8.graph.ResolutionResult resolveMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):282:284 -> resolveMethod
    13:16:com.android.tools.r8.graph.ResolutionResult resolveMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,boolean):299:302 -> resolveMethod
    1:13:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):334:346 -> resolveMethodOnClass
    14:17:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):350:353 -> resolveMethodOnClass
    18:26:com.android.tools.r8.graph.ResolutionResult resolveMethodStep3(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):409:417 -> resolveMethodOnClass
    18:26:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):358 -> resolveMethodOnClass
    1:15:com.android.tools.r8.graph.ResolutionResult resolveMethodOnInterface(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):471:485 -> resolveMethodOnInterface
    16:29:com.android.tools.r8.graph.ResolutionResult resolveMethodOnInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):489:502 -> resolveMethodOnInterface
    30:38:com.android.tools.r8.graph.ResolutionResult resolveMethodStep3(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):409:417 -> resolveMethodOnInterface
    30:38:com.android.tools.r8.graph.ResolutionResult resolveMethodOnInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):507 -> resolveMethodOnInterface
    1:1:void unsetObsolete():66:66 -> unsetObsolete
    1:1:com.android.tools.r8.shaking.AppInfoWithLiveness withLiveness():639:639 -> withLiveness
    1:1:com.android.tools.r8.graph.AppInfoWithSubtyping withSubtyping():629:629 -> withSubtyping
com.android.tools.r8.graph.AppInfo$1 -> com.android.tools.r8.graph.b$a:
com.android.tools.r8.graph.AppInfo$MultiResultBuilder -> com.android.tools.r8.graph.b$b:
    com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder builder -> a
    com.android.tools.r8.graph.DexEncodedMethod singleResult -> b
    1:1:void <init>():653:653 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.AppInfo$1):653:653 -> <init>
    1:8:void add(com.android.tools.r8.graph.DexEncodedMethod):659:666 -> a
    9:12:com.android.tools.r8.graph.ResolutionResult build():671:674 -> a
com.android.tools.r8.graph.AppInfoWithSubtyping -> com.android.tools.r8.graph.c:
    1:8:void <clinit>():28:35 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexApplication):134:134 -> <init>
    2:23:void <init>(com.android.tools.r8.graph.DexApplication):116:137 -> <init>
    24:24:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping):141:141 -> <init>
    25:54:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping):116:145 -> <init>
    1:1:java.util.Set access$000():28:28 -> a
    2:3:com.android.tools.r8.graph.AppInfoWithSubtyping$TypeInfo getTypeInfo(com.android.tools.r8.graph.DexType):215:216 -> a
    4:27:void populateAllSuperTypes(java.util.Map,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,java.util.function.Function):221:244 -> a
    28:36:void populateSubtypeMap(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.DexItemFactory):250:258 -> a
    37:71:boolean validateLevelsAreCorrect(java.util.function.Function,com.android.tools.r8.graph.DexItemFactory):263:297 -> a
    37:71:void populateSubtypeMap(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.DexItemFactory):258 -> a
    72:81:boolean isInterfaceSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):522:531 -> a
    82:91:boolean isSubtypeOfClass(com.android.tools.r8.graph.AppInfoWithSubtyping$TypeInfo,com.android.tools.r8.graph.AppInfoWithSubtyping$TypeInfo,boolean):539:548 -> a
    92:104:void implementedInterfaces(com.android.tools.r8.graph.DexType,java.util.Set):624:636 -> a
    105:138:boolean computeMayHaveFinalizeMethodDirectlyOrIndirectlyIfAbsent(com.android.tools.r8.graph.DexType,boolean):734:767 -> a
    1:22:void addSynthesizedClass(com.android.tools.r8.graph.DexProgramClass):150:171 -> addSynthesizedClass
    1:9:java.lang.Iterable allImmediateExtendsSubtypes(com.android.tools.r8.graph.DexType):563:571 -> allImmediateExtendsSubtypes
    1:5:java.lang.Iterable allImmediateImplementsSubtypes(com.android.tools.r8.graph.DexType):587:591 -> allImmediateImplementsSubtypes
    1:1:java.util.Set allImmediateSubtypes(com.android.tools.r8.graph.DexType):457:457 -> allImmediateSubtypes
    1:4:void populateSuperType(java.util.Map,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,java.util.function.Function):206:209 -> b
    5:5:boolean lambda$isStrictSubtypeOf$1(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):516:516 -> b
    6:6:boolean lambda$allImmediateExtendsSubtypes$2(com.android.tools.r8.graph.DexType):566:566 -> b
    1:1:boolean lambda$allImmediateExtendsSubtypes$3(com.android.tools.r8.graph.DexType):569:569 -> c
    1:49:com.android.tools.r8.graph.DexType computeLeastUpperBoundOfClasses(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):662:710 -> computeLeastUpperBoundOfClasses
    1:1:boolean lambda$allImmediateImplementsSubtypes$4(com.android.tools.r8.graph.DexType):589:589 -> d
    1:1:java.util.Set lambda$populateSuperType$0(com.android.tools.r8.graph.DexType):206:206 -> e
    1:1:void forAllImmediateExtendsSubtypes(com.android.tools.r8.graph.DexType,java.util.function.Consumer):559:559 -> forAllImmediateExtendsSubtypes
    1:1:void forAllImmediateImplementsSubtypes(com.android.tools.r8.graph.DexType,java.util.function.Consumer):583:583 -> forAllImmediateImplementsSubtypes
    1:2:java.util.Set getMissingClasses():192:193 -> getMissingClasses
    1:4:com.android.tools.r8.graph.DexType getSingleSubtype(com.android.tools.r8.graph.DexType):641:644 -> 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):644 -> 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):644 -> getSingleSubtype
    7:7:com.android.tools.r8.graph.DexType getSingleSubtype(com.android.tools.r8.graph.DexType):644:644 -> getSingleSubtype
    1:1:boolean hasAnyInstantiatedLambdas(com.android.tools.r8.graph.DexType):338:338 -> hasAnyInstantiatedLambdas
    1:1:boolean hasSubtypes(com.android.tools.r8.graph.DexType):470:470 -> hasSubtypes
    1:1:boolean hasSubtyping():446:446 -> hasSubtyping
    1:12:java.util.Set implementedInterfaces(com.android.tools.r8.graph.DexType):609:620 -> implementedInterfaces
    13:13:java.util.Set implementedInterfaces(com.android.tools.r8.graph.DexType):619:619 -> implementedInterfaces
    1:1:boolean inDifferentHierarchy(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):716:716 -> inDifferentHierarchy
    1:3:boolean isDirectSubtype(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):652:654 -> isDirectSubtype
    1:1:boolean isExternalizable(com.android.tools.r8.graph.DexType):600:600 -> isExternalizable
    1:1:boolean isMarkedAsInterface(com.android.tools.r8.graph.DexType):465:465 -> isMarkedAsInterface
    1:1:boolean isMissingOrHasMissingSuperType(com.android.tools.r8.graph.DexType):595:595 -> isMissingOrHasMissingSuperType
    2:6:boolean com.android.tools.r8.graph.DexClass.hasMissingSuperType(com.android.tools.r8.graph.AppInfoWithSubtyping):697:701 -> isMissingOrHasMissingSuperType
    2:6:boolean isMissingOrHasMissingSuperType(com.android.tools.r8.graph.DexType):596 -> isMissingOrHasMissingSuperType
    1:1:boolean isSerializable(com.android.tools.r8.graph.DexType):604:604 -> isSerializable
    1:4:boolean isStrictSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):486:489 -> isStrictSubtypeOf
    5:7:boolean isSynthesizedClassStrictSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):176:178 -> isStrictSubtypeOf
    5:7:boolean isStrictSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):490 -> isStrictSubtypeOf
    8:23:boolean isStrictSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,boolean):503:518 -> isStrictSubtypeOf
    1:4:boolean isStringConcat(com.android.tools.r8.graph.DexMethodHandle):431:434 -> isStringConcat
    1:4:boolean isSubtype(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):475:478 -> isSubtype
    5:7:boolean isSynthesizedClassStrictSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):176:178 -> isSubtype
    5:7:boolean isSubtype(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):479 -> isSubtype
    1:1:boolean isUnknown(com.android.tools.r8.graph.DexType):461:461 -> isUnknown
    2:2:boolean com.android.tools.r8.graph.AppInfoWithSubtyping$TypeInfo.isUnknown():103:103 -> isUnknown
    2:2:boolean isUnknown(com.android.tools.r8.graph.DexType):461 -> isUnknown
    1:1:java.lang.Iterable libraryClasses():187:187 -> libraryClasses
    2:2:com.android.tools.r8.graph.DirectMappedDexApplication getDirectApplication():183:183 -> libraryClasses
    2:2:java.lang.Iterable libraryClasses():188 -> libraryClasses
    3:3:java.lang.Iterable libraryClasses():188:188 -> libraryClasses
    1:11:java.util.Set lookupLambdaImplementedMethods(com.android.tools.r8.graph.DexCallSite):390:400 -> lookupLambdaImplementedMethods
    12:12:boolean com.android.tools.r8.graph.AppInfoWithSubtyping$TypeInfo.isUnknown():103:103 -> lookupLambdaImplementedMethods
    12:12:java.util.Set lookupLambdaImplementedMethods(com.android.tools.r8.graph.DexCallSite):400 -> lookupLambdaImplementedMethods
    13:26:java.util.Set lookupLambdaImplementedMethods(com.android.tools.r8.graph.DexCallSite):411:424 -> lookupLambdaImplementedMethods
    27:27:java.util.Set lookupLambdaImplementedMethods(com.android.tools.r8.graph.DexCallSite):393:393 -> lookupLambdaImplementedMethods
    1:5:com.android.tools.r8.graph.DexEncodedMethod lookupSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):327:331 -> lookupSuperTarget
    6:6:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():667:667 -> lookupSuperTarget
    6:6:com.android.tools.r8.graph.DexEncodedMethod lookupSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):332 -> lookupSuperTarget
    7:7:com.android.tools.r8.graph.DexEncodedMethod lookupSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):332:332 -> lookupSuperTarget
    8:8:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> lookupSuperTarget
    8:8:com.android.tools.r8.graph.DexEncodedMethod lookupSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):332 -> lookupSuperTarget
    9:11:com.android.tools.r8.graph.DexEncodedMethod lookupSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):332:334 -> lookupSuperTarget
    1:10:boolean mayHaveFinalizeMethodDirectlyOrIndirectly(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):720:729 -> mayHaveFinalizeMethodDirectlyOrIndirectly
    1:7:boolean methodDefinedInInterface(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):356:362 -> methodDefinedInInterface
    8:8:boolean com.android.tools.r8.graph.DexMethod.hasSameProtoAndName(com.android.tools.r8.graph.DexMethod):103:103 -> methodDefinedInInterface
    8:8:boolean methodDefinedInInterface(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):362 -> methodDefinedInInterface
    9:15:boolean methodDefinedInInterface(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):362:368 -> methodDefinedInInterface
    1:6:boolean methodDefinedInInterfaces(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):343:348 -> methodDefinedInInterfaces
    1:3:void registerNewType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):439:441 -> registerNewType
    1:4:java.util.Set subtypes(com.android.tools.r8.graph.DexType):197:200 -> subtypes
    1:1:com.android.tools.r8.graph.AppInfoWithSubtyping withSubtyping():452:452 -> withSubtyping
com.android.tools.r8.graph.AppInfoWithSubtyping$TypeInfo -> com.android.tools.r8.graph.c$a:
    java.util.Set directSubtypes -> c
    java.util.Set implementedInterfaces -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.DexType type -> a
    int hierarchyLevel -> b
    1:1:void <clinit>():37:37 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType):51:51 -> <init>
    2:13:void <init>(com.android.tools.r8.graph.DexType):41:52 -> <init>
    1:11:void setLevel(int):67:77 -> a
    12:15:void addDirectSubtype(com.android.tools.r8.graph.AppInfoWithSubtyping$TypeInfo):82:85 -> a
    16:18:boolean isInterface():97:99 -> a
    19:21:void addInterfaceSubtype(com.android.tools.r8.graph.DexType):109:111 -> a
    1:1:com.android.tools.r8.graph.DexType access$100(com.android.tools.r8.graph.AppInfoWithSubtyping$TypeInfo):37:37 -> b
    2:2:void tagAsInterface():93:93 -> b
    1:1:void tagAsSubtypeRoot():89:89 -> c
    1:2:void ensureDirectSubTypeSet():61:62 -> d
    1:1:java.lang.String toString():57:57 -> toString
com.android.tools.r8.graph.AppServices -> com.android.tools.r8.graph.d:
    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.d$a:
com.android.tools.r8.graph.AppServices$Builder -> com.android.tools.r8.graph.d$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.d$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.e:
    com.android.tools.r8.shaking.VerticalClassMerger$VerticallyMergedClasses verticallyMergedClasses -> o
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
    boolean $assertionsDisabled -> p
    boolean allCodeProcessed -> k
    com.android.tools.r8.graph.AppView$WholeProgramOptimizations wholeProgramOptimizations -> d
    com.android.tools.r8.utils.InternalOptions options -> f
    com.android.tools.r8.ir.analysis.proto.ProtoShrinker protoShrinker -> j
    com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator callSiteOptimizationInfoPropagator -> i
    com.android.tools.r8.shaking.RootSetBuilder$RootSet rootSet -> g
    com.android.tools.r8.ir.desugar.PrefixRewritingMapper rewritePrefix -> h
    java.util.function.Predicate classesEscapingIntoLibrary -> l
    com.android.tools.r8.graph.AppServices appServices -> b
    com.android.tools.r8.graph.GraphLense graphLense -> e
    com.android.tools.r8.graph.AppInfo appInfo -> a
    com.android.tools.r8.graph.analysis.InitializedClassesInInstanceMethodsAnalysis$InitializedClassesInInstanceMethods initializedClassesInInstanceMethods -> m
    java.util.Set unneededVisibilityBridgeMethods -> n
    1:1:void <clinit>():25:25 -> <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):70:70 -> <init>
    2:42: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:88 -> <init>
    1:1:com.android.tools.r8.graph.AppView createForD8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):93:93 -> a
    2:2:com.android.tools.r8.ir.desugar.PrefixRewritingMapper com.android.tools.r8.ir.desugar.PrefixRewritingMapper.empty():22:22 -> a
    2:2:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):61 -> a
    2:2:com.android.tools.r8.graph.AppView createForD8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):93 -> a
    3:3:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):62:62 -> a
    3:3:com.android.tools.r8.graph.AppView createForD8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):93 -> a
    4:4:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):56:56 -> a
    4:4:com.android.tools.r8.graph.AppView createForD8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):93 -> 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):98:98 -> a
    6:6:com.android.tools.r8.graph.AppInfo appInfo():111:111 -> a
    7:11:com.android.tools.r8.graph.AppView setAppInfo(com.android.tools.r8.graph.AppInfo):115:119 -> a
    12:12:void setAppServices(com.android.tools.r8.graph.AppServices):139:139 -> a
    13:13:void setClassesEscapingIntoLibrary(java.util.function.Predicate):148:148 -> a
    14:14:com.android.tools.r8.graph.DexProgramClass definitionForProgramType(com.android.tools.r8.graph.DexType):173:173 -> a
    15:16:void withGeneratedExtensionRegistryShrinker(java.util.function.Consumer):210:211 -> a
    17:18:java.lang.Object withGeneratedExtensionRegistryShrinker(java.util.function.Function,java.lang.Object):217:218 -> a
    19:20:boolean setGraphLense(com.android.tools.r8.graph.GraphLense):235:236 -> a
    21:21:void setInitializedClassesInInstanceMethods(com.android.tools.r8.graph.analysis.InitializedClassesInInstanceMethodsAnalysis$InitializedClassesInInstanceMethods):244:244 -> a
    22:23:void setRootSet(com.android.tools.r8.shaking.RootSetBuilder$RootSet):264:265 -> a
    24:24:void setUnneededVisibilityBridgeMethods(java.util.Set):273:273 -> a
    25:25:void setVerticallyMergedClasses(com.android.tools.r8.shaking.VerticalClassMerger$VerticallyMergedClasses):283:283 -> a
    26:28:com.android.tools.r8.OptionalBool isSubtype(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):300:302 -> a
    1:1:com.android.tools.r8.graph.AppView createForR8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):102:102 -> b
    2:2:com.android.tools.r8.ir.desugar.PrefixRewritingMapper com.android.tools.r8.ir.desugar.PrefixRewritingMapper.empty():22:22 -> b
    2:2:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):61 -> b
    2:2:com.android.tools.r8.graph.AppView createForR8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):102 -> b
    3:3:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):62:62 -> b
    3:3:com.android.tools.r8.graph.AppView createForR8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):102 -> b
    4:4:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):56:56 -> b
    4:4:com.android.tools.r8.graph.AppView createForR8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):102 -> 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):107:107 -> b
    6:6:com.android.tools.r8.graph.AppServices appServices():135:135 -> b
    7:8:boolean isClassEscapingIntoLibrary(com.android.tools.r8.graph.DexType):143:144 -> b
    9:10:void withGeneratedMessageLiteShrinker(java.util.function.Consumer):224:225 -> b
    11:12:java.lang.Object withInitializedClassesInInstanceMethods(java.util.function.Function,java.lang.Object):249:250 -> b
    1:10:com.android.tools.r8.OptionalBool isInterface(com.android.tools.r8.graph.DexType):179:188 -> c
    11:11:com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator callSiteOptimizationInfoPropagator():201:201 -> c
    1:1:boolean enableWholeProgramOptimizations():197:197 -> d
    1:1:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):168:168 -> definitionFor
    1:1:com.android.tools.r8.graph.DexItemFactory dexItemFactory():193:193 -> dexItemFactory
    1:1:com.android.tools.r8.graph.GraphLense graphLense():230:230 -> e
    1:1:boolean isAllCodeProcessed():127:127 -> f
    1:1:com.android.tools.r8.utils.InternalOptions options():256:256 -> g
    1:1:com.android.tools.r8.ir.analysis.proto.ProtoShrinker protoShrinker():205:205 -> h
    1:1:com.android.tools.r8.shaking.RootSetBuilder$RootSet rootSet():260:260 -> i
    1:1:void setAllCodeProcessed():131:131 -> j
    1:1:java.util.Set unneededVisibilityBridgeMethods():269:269 -> k
    1:1:com.android.tools.r8.shaking.VerticalClassMerger$VerticallyMergedClasses verticallyMergedClasses():279:279 -> l
    com.android.tools.r8.graph.AppView withLiveness() -> m
    1:1:com.android.tools.r8.graph.AppView withSubtyping():288:288 -> n
com.android.tools.r8.graph.AppView$WholeProgramOptimizations -> com.android.tools.r8.graph.e$a:
    com.android.tools.r8.graph.AppView$WholeProgramOptimizations ON -> a
    com.android.tools.r8.graph.AppView$WholeProgramOptimizations OFF -> b
    1:2:void <clinit>():28:29 -> <clinit>
    1:1:void <init>(java.lang.String,int):27:27 -> <init>
com.android.tools.r8.graph.AppliedGraphLens -> com.android.tools.r8.graph.f:
    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>():21:21 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.List):32:32 -> <init>
    2:50:void <init>(com.android.tools.r8.graph.AppView,java.util.List):25:73 -> <init>
    1:1:com.android.tools.r8.graph.DexField getOriginalFieldSignature(com.android.tools.r8.graph.DexField):88:88 -> getOriginalFieldSignature
    1:4:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):93:96 -> getOriginalMethodSignature
    1:1:com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType):83:83 -> getOriginalType
    1:1:com.android.tools.r8.graph.DexField getRenamedFieldSignature(com.android.tools.r8.graph.DexField):101:101 -> getRenamedFieldSignature
    1:1:com.android.tools.r8.graph.DexMethod getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):106:106 -> 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):121:121 -> lookupMethod
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):126:126 -> lookupPrototypeChanges
    1:5:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType):111:115 -> lookupType
com.android.tools.r8.graph.ArgumentUse -> com.android.tools.r8.graph.g:
    1:1:void <init>():7:7 -> <init>
    boolean register(int) -> a
com.android.tools.r8.graph.AssemblyWriter -> com.android.tools.r8.graph.h:
    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):27:27 -> <init>
    2:20:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions,boolean,boolean):23:41 -> <init>
    java.lang.String getFileEnding() -> a
    void writeClassFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> a
    1:7:void writeField(com.android.tools.r8.graph.DexEncodedField,java.io.PrintStream):84:90 -> a
    8:19:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):101:112 -> a
    20:21:void writeIR(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):121:122 -> a
    20:21:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):113 -> a
    22:22: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):362:362 -> a
    22:22:void writeIR(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):122 -> a
    22:22:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):113 -> a
    23:24:void writeIR(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):123:124 -> a
    23:24:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):113 -> a
    25:25:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):115:115 -> a
    26:31:void writeAnnotations(com.android.tools.r8.graph.DexAnnotationSet,java.io.PrintStream):128:133 -> a
    1:18:void writeClassHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):53:70 -> b
    1:1:void writeFieldsFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):96:96 -> c
    1:4:void writeFieldsHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):75:78 -> d
com.android.tools.r8.graph.BottomUpClassHierarchyTraversal -> com.android.tools.r8.graph.i:
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.ClassHierarchyTraversal$Scope):12:12 -> <init>
    com.android.tools.r8.graph.ClassHierarchyTraversal self() -> a
    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):168:168 -> 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.j:
    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.k:
    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>():39:39 -> <clinit>
    1:7:void <init>(com.android.tools.r8.graph.DexType,int,int,java.util.List,java.util.List,java.util.List):105:111 -> <init>
    1:1: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):196:196 -> a
    2:11:boolean shouldAddParameterNames(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView):175:184 -> a
    2:11: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):198 -> a
    12: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):199:199 -> a
    13:13:void com.android.tools.r8.cf.code.CfLabel.write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):47:47 -> 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):200 -> a
    14:15: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):202:203 -> a
    16:16:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():314:314 -> a
    16:16:boolean com.android.tools.r8.utils.InternalOptions.shouldKeepStackMapTable():318 -> a
    16: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):205 -> a
    17:17:boolean com.android.tools.r8.utils.InternalOptions.shouldKeepStackMapTable():319:319 -> 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):205 -> a
    18:34: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:224 -> a
    35:48: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):218:231 -> a
    49:55: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):230:236 -> a
    56: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):235:235 -> a
    57:62: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):248:253 -> a
    63:63: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):248:248 -> a
    64:66: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):307:309 -> a
    67: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):308:308 -> a
    68:69: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):331:332 -> a
    68:69: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):317 -> a
    70:81: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):331:342 -> a
    70:81: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):317 -> a
    82: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):341:341 -> a
    82: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):317 -> a
    83:92: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):361:370 -> a
    93:104: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):486:497 -> a
    105:105:boolean com.android.tools.r8.graph.MethodAccessFlags.isSynchronized():110:110 -> a
    105: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):497 -> a
    106:106:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forMonitor():211:211 -> 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):498 -> a
    107:116: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):499:508 -> a
    117:125: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:514 -> a
    126:126:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forMoveException():219:219 -> a
    126: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):517 -> 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):517:517 -> a
    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):281:281 -> 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):293:295 -> buildInliningIR
    1:2:int countNonStackOperations(int):150:151 -> 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):389:429 -> 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):428:428 -> 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):400:400 -> collectParameterInfo
    1:1:boolean computeEquals(java.lang.Object):264:264 -> computeEquals
    1:1:int computeHashCode():259:259 -> computeHashCode
    1:1:int estimatedSizeForInlining():140:140 -> estimatedSizeForInlining
    1:1:boolean estimatedSizeForInliningAtMost(int):145:145 -> estimatedSizeForInliningAtMost
    1:1:java.util.List getInstructions():131:131 -> f
    1:1:java.util.List getLocalVariables():135:135 -> g
    1:1:int getMaxLocals():123:123 -> h
    1:1:int getMaxStack():119:119 -> i
    1:1:com.android.tools.r8.graph.DexType getOriginalHolder():115:115 -> j
    1:1:java.util.List getTryCatchRanges():127:127 -> k
    1:29:void registerArgumentReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.ArgumentUse):437:465 -> registerArgumentReferences
    1:6:void registerCodeReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry):375:380 -> registerCodeReferences
    1:1:java.lang.String toString():472:472 -> 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():472 -> toString
    3:3:java.lang.String toString():472:472 -> toString
    4:4:java.lang.String toString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):477:477 -> toString
com.android.tools.r8.graph.CfCode$LocalVariableInfo -> com.android.tools.r8.graph.k$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>():41:41 -> <clinit>
    1:4:void <init>(int,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.cf.code.CfLabel):48:51 -> <init>
    1:1:com.android.tools.r8.graph.DebugLocalInfo access$000(com.android.tools.r8.graph.CfCode$LocalVariableInfo):41:41 -> a
    2:4:void setEnd(com.android.tools.r8.cf.code.CfLabel):60:62 -> a
    5:5:com.android.tools.r8.cf.code.CfLabel getEnd():78:78 -> a
    1:1:com.android.tools.r8.cf.code.CfLabel access$100(com.android.tools.r8.graph.CfCode$LocalVariableInfo):41:41 -> b
    2:2:int getIndex():66:66 -> b
    1:1:com.android.tools.r8.cf.code.CfLabel access$200(com.android.tools.r8.graph.CfCode$LocalVariableInfo):41:41 -> c
    2:2:com.android.tools.r8.graph.DebugLocalInfo getLocal():70:70 -> c
    1:1:int access$300(com.android.tools.r8.graph.CfCode$LocalVariableInfo):41:41 -> d
    2:2:com.android.tools.r8.cf.code.CfLabel getStart():74:74 -> d
    1:1:java.lang.String toString():83:83 -> toString
com.android.tools.r8.graph.ClassAccessFlags -> com.android.tools.r8.graph.l:
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():11:11 -> <clinit>
    1:1:void <init>(int,int):57:57 -> <init>
    1:1:com.android.tools.r8.graph.ClassAccessFlags copy():77:77 -> A
    1:1:int com.android.tools.r8.graph.AccessFlags.materialize():61:61 -> B
    1:1:int getAsCfAccessFlags():98 -> B
    1:1:int com.android.tools.r8.graph.AccessFlags.materialize():61:61 -> C
    1:1:int getAsDexAccessFlags():89 -> C
    2:2:boolean isInterface():125:125 -> C
    2:2:int getAsDexAccessFlags():90 -> C
    1:1:boolean isAbstract():137:137 -> D
    1:1:boolean isAnnotation():149:149 -> E
    1:1:boolean isEnum():161:161 -> F
    1:1:boolean isInterface():125:125 -> G
    1:1:boolean isSuper():169:169 -> H
    1:1:void setAbstract():141:141 -> I
    1:1:void unsetAbstract():145:145 -> J
    1:1:void unsetAnnotation():157:157 -> K
    1:1:void unsetInterface():133:133 -> L
    1:1:boolean isInterface():125:125 -> a
    1:1:boolean areValid(int,boolean):106 -> a
    2:2:boolean isSuper():169:169 -> a
    2:2:boolean areValid(int,boolean):108 -> a
    3:7:boolean areValid(int,boolean):114:118 -> a
    8:8:boolean isEnum():161:161 -> a
    8:8:boolean areValid(int,boolean):118 -> a
    9:9:boolean areValid(int,boolean):120:120 -> a
    1:8:java.util.List getNames():30:37 -> b
    1:8:java.util.List getPredicates():42:49 -> d
    1:1:com.android.tools.r8.graph.ClassAccessFlags fromCfAccessFlags(int):72:72 -> e
    2:2:void <init>(int):53:53 -> e
    2:2:com.android.tools.r8.graph.ClassAccessFlags fromCfAccessFlags(int):72 -> e
    1:1:com.android.tools.r8.graph.ClassAccessFlags fromDexAccessFlags(int):68:68 -> f
    2:2:void <init>(int):53:53 -> f
    2:2:com.android.tools.r8.graph.ClassAccessFlags fromDexAccessFlags(int):68 -> f
    1:3:com.android.tools.r8.graph.ClassAccessFlags fromSharedAccessFlags(int):61:63 -> g
com.android.tools.r8.graph.ClassHierarchyTraversal -> com.android.tools.r8.graph.n:
    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
    com.android.tools.r8.graph.ClassHierarchyTraversal self() -> 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.m:
    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.o:
    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:4:void <clinit>():14:17 -> <clinit>
    1:3:void <init>(java.lang.String,int,com.android.tools.r8.graph.ClassKind$Factory,java.util.function.Predicate):43:45 -> <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):66:66 -> a
    2:2:boolean isOfKind(com.android.tools.r8.graph.DexClass):87:87 -> a
    3:3:java.util.function.Consumer bridgeConsumer(java.util.function.Consumer):91:91 -> a
    4:4:void lambda$bridgeConsumer$0(java.util.function.Consumer,com.android.tools.r8.graph.DexClass):92:92 -> a
    5:5:boolean isOfKind(com.android.tools.r8.graph.DexClass):87:87 -> a
    5:5:void lambda$bridgeConsumer$0(java.util.function.Consumer,com.android.tools.r8.graph.DexClass):92 -> a
    6:8:void lambda$bridgeConsumer$0(java.util.function.Consumer,com.android.tools.r8.graph.DexClass):92:94 -> a
com.android.tools.r8.graph.ClassKind$Factory -> com.android.tools.r8.graph.o$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) -> a
com.android.tools.r8.graph.Code -> com.android.tools.r8.graph.p:
    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.q:
    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.q$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.r:
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory):10:10 -> <init>
com.android.tools.r8.graph.Descriptor -> com.android.tools.r8.graph.s:
    1:1:void <init>():6:6 -> <init>
    boolean match(com.android.tools.r8.graph.DexItem) -> a
com.android.tools.r8.graph.DexAnnotation -> com.android.tools.r8.graph.t:
    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:12:boolean retainCompileTimeAnnotation(com.android.tools.r8.graph.DexType,com.android.tools.r8.utils.InternalOptions):77:88 -> a
    13:13:com.android.tools.r8.graph.DexAnnotation createEnclosingClassAnnotation(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):96:96 -> a
    14:16:com.android.tools.r8.graph.DexType getEnclosingClassFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):102:104 -> a
    17:17:com.android.tools.r8.graph.DexAnnotation createEnclosingMethodAnnotation(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):109:109 -> a
    18:22:com.android.tools.r8.graph.DexAnnotation createMemberClassesAnnotation(java.util.List,com.android.tools.r8.graph.DexItemFactory):175:179 -> a
    23:26:com.android.tools.r8.graph.DexAnnotation createAnnotationDefaultAnnotation(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):223:226 -> a
    27:27: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
    28:28:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):231:231 -> a
    29:56:com.android.tools.r8.graph.DexValue compressSignature(java.lang.String,com.android.tools.r8.graph.DexItemFactory):302:329 -> a
    29:56:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):232 -> a
    57:57:com.android.tools.r8.graph.DexValue toDexValue(java.lang.String,com.android.tools.r8.graph.DexItemFactory):337:337 -> a
    57:57:com.android.tools.r8.graph.DexValue compressSignature(java.lang.String,com.android.tools.r8.graph.DexItemFactory):329 -> a
    57:57:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):232 -> a
    58:62:com.android.tools.r8.graph.DexValue compressSignature(java.lang.String,com.android.tools.r8.graph.DexItemFactory):329:333 -> a
    58:62:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):232 -> a
    63:63:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):231:231 -> a
    64:69:java.lang.String getSignature(com.android.tools.r8.graph.DexAnnotation):236:241 -> a
    70:70:com.android.tools.r8.graph.DexAnnotation createThrowsAnnotation(com.android.tools.r8.graph.DexValue[],com.android.tools.r8.graph.DexItemFactory):246:246 -> a
    71:73: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
    74:78:com.android.tools.r8.graph.DexValue getSystemValueAnnotationValue(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotation):259:263 -> a
    79:102:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):343:366 -> a
    103:104:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):363:364 -> a
    105:105:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    105:105:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):364 -> a
    106:106:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):364:364 -> a
    107:108:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):356:357 -> 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):357 -> a
    110:110:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):357:357 -> a
    111:112:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):352:353 -> a
    113:113:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    113:113:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):353 -> a
    114:114:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):353:353 -> a
    115:116:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):347:348 -> a
    117:117:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    117:117:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):348 -> a
    118:140:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):348:370 -> a
    141:144:java.lang.String getInvalidSynthesizedClassMapMessage(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotation):376:379 -> a
    145:151:com.android.tools.r8.graph.DexAnnotation createAnnotationSynthesizedClassMap(java.util.TreeSet,com.android.tools.r8.graph.DexItemFactory):385:391 -> a
    152:159:com.android.tools.r8.graph.DexAnnotation rewrite(java.util.function.Function):403:410 -> 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
    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
    13:13:com.android.tools.r8.graph.DexValue$DexValueType[] lambda$createAnnotationSynthesizedClassMap$0(int):387:387 -> c
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> collectIndexedItems
    2:3:void com.android.tools.r8.graph.DexEncodedAnnotation.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):29:30 -> collectIndexedItems
    2:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):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:com.android.tools.r8.graph.DexType getAnnotationType():40:40 -> f
    2:2: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.u:
    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:boolean isSorted(java.util.List):112:112 -> a
    2:4:boolean isSorted(java.util.List,java.util.function.Function):118:120 -> a
    2:4:boolean isSorted(java.util.List):112 -> a
    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:11:boolean equals(java.lang.Object):78:88 -> equals
    1:1:com.android.tools.r8.graph.DexAnnotationSet getClazzAnnotations():54:54 -> f
    1:1:java.util.List getFieldAnnotations():66:66 -> g
    1:1:java.util.List getMethodAnnotations():58:58 -> h
    1:4:int hashCode():93:96 -> hashCode
    1:1:java.util.List getParameterAnnotations():62:62 -> i
com.android.tools.r8.graph.DexAnnotationElement -> com.android.tools.r8.graph.v:
    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:2:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):231:231 -> collectIndexedItems
    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):45 -> collectIndexedItems
    3:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):46:46 -> collectIndexedItems
    4:4:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):231:231 -> collectIndexedItems
    4:4:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):45 -> 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.w:
    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>():16:21 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexAnnotation[]):27:27 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.DexAnnotation[]):25:28 -> <init>
    1:1:com.android.tools.r8.graph.DexType findDuplicateEntryType(com.android.tools.r8.graph.DexAnnotation[]):32:32 -> a
    2:2:int lambda$sort$0(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexAnnotation):88:88 -> a
    3:3:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):160:160 -> a
    3:3:int lambda$sort$0(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexAnnotation):88 -> a
    4:5:com.android.tools.r8.graph.DexAnnotation getFirstMatching(com.android.tools.r8.graph.DexType):96:97 -> a
    6:6:com.android.tools.r8.graph.DexAnnotationSet keepIf(java.util.function.Predicate):146:146 -> a
    7:7:com.android.tools.r8.graph.DexAnnotation lambda$keepIf$1(java.util.function.Predicate,com.android.tools.r8.graph.DexAnnotation):146:146 -> a
    8:18:com.android.tools.r8.graph.DexAnnotationSet rewrite(java.util.function.Function):150:160 -> a
    1:4:com.android.tools.r8.graph.DexType findDuplicateEntryType(java.util.List):36:39 -> b
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):70:70 -> collectIndexedItems
    1:2:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):75:76 -> collectMixedSectionItems
    1:3:boolean computeEquals(java.lang.Object):60:62 -> computeEquals
    1:1:int computeHashCode():55:55 -> computeHashCode
    1:1:boolean isEmpty():80:80 -> f
    1:1:int size():50:50 -> g
    1:2:void sort():84:85 -> h
    3:3:int sortedHashCode():121:121 -> h
    3:3:void sort():85 -> h
    4:11:void sort():85:92 -> h
    1:1:com.android.tools.r8.graph.DexAnnotationSet empty():46:46 -> i
    1:1:java.lang.String toString():165:165 -> toString
com.android.tools.r8.graph.DexApplication -> com.android.tools.r8.graph.x:
    com.android.tools.r8.dex.ClassesChecksum checksums -> g
    com.android.tools.r8.naming.ClassNameMapper proguardMap -> c
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> f
    com.android.tools.r8.utils.Timing timing -> d
    com.android.tools.r8.graph.DexString highestSortingString -> h
    com.android.tools.r8.utils.InternalOptions options -> e
    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>():26:26 -> <clinit>
    1:9: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.dex.ClassesChecksum,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing):51:59 -> <init>
    com.android.tools.r8.graph.DexClass definitionFor(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):106:106 -> a
    2:3:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder builder(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):240:241 -> 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):246:246 -> a
    4:4:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder builder(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):240 -> 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):246:246 -> a
    6:6:com.android.tools.r8.graph.DirectMappedDexApplication asDirect():250:250 -> a
    com.android.tools.r8.graph.DexApplication$Builder builder() -> b
    com.android.tools.r8.graph.DexProgramClass programDefinitionFor(com.android.tools.r8.graph.DexType) -> b
    1:3:java.util.List classes():95:97 -> c
    1:6:java.lang.Iterable classesWithDeterministicOrder():101:106 -> d
    1:1:com.android.tools.r8.naming.ClassNameMapper getProguardMap():123:123 -> 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.x$a:
    java.util.List dataResourceProviders -> b
    com.android.tools.r8.utils.Timing timing -> g
    java.util.List programClasses -> a
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> d
    java.util.Set mainDexList -> i
    com.android.tools.r8.naming.ClassNameMapper proguardMap -> f
    boolean $assertionsDisabled -> k
    com.android.tools.r8.dex.ClassesChecksum checksums -> e
    com.android.tools.r8.utils.InternalOptions options -> c
    com.android.tools.r8.graph.DexString highestSortingString -> h
    java.util.Collection synthesizedClasses -> j
    1:1:void <clinit>():126:126 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):148:148 -> <init>
    2:21:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):134:153 -> <init>
    22:22:void <init>(com.android.tools.r8.graph.DexApplication):158:158 -> <init>
    23:57:void <init>(com.android.tools.r8.graph.DexApplication):134:168 -> <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):172:174 -> a
    4:7:com.android.tools.r8.graph.DexApplication$Builder replaceProgramClasses(java.util.List):178:181 -> a
    8:9:com.android.tools.r8.graph.DexApplication$Builder addDataResourceProvider(com.android.tools.r8.DataResourceProvider):185:186 -> a
    10:11:com.android.tools.r8.graph.DexApplication$Builder setHighestSortingString(com.android.tools.r8.graph.DexString):190:191 -> a
    12:13:com.android.tools.r8.graph.DexApplication$Builder addProgramClass(com.android.tools.r8.graph.DexProgramClass):195:196 -> a
    14:14:com.android.tools.r8.graph.DexApplication$Builder addSynthesizedClass(com.android.tools.r8.graph.DexProgramClass,boolean):201:201 -> 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):201 -> a
    16:21:com.android.tools.r8.graph.DexApplication$Builder addSynthesizedClass(com.android.tools.r8.graph.DexProgramClass,boolean):202:207 -> a
    22:22:com.android.tools.r8.graph.DexApplication$Builder addToMainDexList(java.util.Collection):223:223 -> a
    23:26:com.android.tools.r8.graph.DexApplication$Builder mergeChecksums(com.android.tools.r8.dex.ClassesChecksum):228:231 -> a
    1:1:java.util.Set getMainDexList():219:219 -> b
    1:1:java.util.Collection getProgramClasses():211:211 -> c
    1:1:java.util.Collection getSynthesizedClasses():215:215 -> d
    com.android.tools.r8.graph.DexApplication$Builder self() -> e
com.android.tools.r8.graph.DexApplication$ReorderBox -> com.android.tools.r8.graph.x$b:
    java.util.List classes -> a
    1:2:void <init>(java.util.List):74:75 -> <init>
    1:1:java.util.List getClasses():88:88 -> a
    1:3:boolean reorderClasses():80:82 -> b
com.android.tools.r8.graph.DexByteCodeWriter -> com.android.tools.r8.graph.y:
    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 writeClassFooter(com.android.tools.r8.graph.DexProgramClass,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:2:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):39:40 -> a
    3:6:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):39:42 -> a
    7:7:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):41:41 -> a
    8:10:void ensureParentExists(java.nio.file.Path):31:33 -> a
    8:10:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):43 -> a
    11:11:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):44:44 -> a
    12:13:void write(java.nio.file.Path):49:50 -> a
    14:16:void ensureParentExists(java.nio.file.Path):31:33 -> a
    14:16:void write(java.nio.file.Path):52 -> a
    17:19:void write(java.nio.file.Path):53:55 -> a
    20:22:void write(java.nio.file.Path):53:55 -> a
    23:23:void write(java.io.PrintStream):60:60 -> a
    24:31:void write(com.android.tools.r8.graph.DexByteCodeWriter$OutputStreamProvider,java.util.function.Consumer):66:73 -> a
    32:34:boolean anyMethodMatches(com.android.tools.r8.graph.DexClass):80:82 -> a
    35:35:void lambda$writeClass$3(java.io.PrintStream,com.android.tools.r8.graph.DexEncodedField):88:88 -> a
    36:36:void lambda$writeClass$4(java.io.PrintStream,com.android.tools.r8.graph.DexEncodedMethod):91:91 -> a
    void lambda$write$2(java.io.PrintStream) -> b
    void writeClassHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> b
    1:1:com.android.tools.r8.graph.DexByteCodeWriter$OutputStreamProvider oneFilePerClass(java.nio.file.Path):38:38 -> b
    void writeFieldsFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> c
    void writeFieldsHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> d
    1:8:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):86:93 -> e
com.android.tools.r8.graph.DexByteCodeWriter$OutputStreamProvider -> com.android.tools.r8.graph.y$a:
    java.io.PrintStream get(com.android.tools.r8.graph.DexClass) -> a
com.android.tools.r8.graph.DexCallSite -> com.android.tools.r8.graph.A:
    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:14: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:102 -> a
    13:14: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
    15: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
    15: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:10:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):120:129 -> collectIndexedItems
    11:11:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):231:231 -> collectIndexedItems
    11:11:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):129 -> collectIndexedItems
    12:15:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):130:133 -> collectIndexedItems
    16:16:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):231:231 -> collectIndexedItems
    16:16:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):129 -> 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:14:com.android.tools.r8.graph.DexEncodedArray getEncodedArray():289:302 -> h
    1:1:java.lang.String getHash():155:155 -> i
    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.z:
com.android.tools.r8.graph.DexCallSite$HashBuilder -> com.android.tools.r8.graph.A$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.B:
    com.android.tools.r8.graph.DexEncodedField[] instanceFields -> j
    com.android.tools.r8.graph.DexEncodedField[] staticFields -> i
    com.android.tools.r8.graph.DexTypeList interfaces -> f
    java.util.List nestMembers -> p
    java.util.Optional cachedClassInitializer -> a
    com.android.tools.r8.graph.EnclosingMethodAttribute enclosingMethod -> m
    boolean $assertionsDisabled -> r
    com.android.tools.r8.graph.DexEncodedMethod[] directMethods -> k
    com.android.tools.r8.origin.Origin origin -> b
    com.android.tools.r8.graph.DexString sourceFile -> g
    com.android.tools.r8.graph.NestHostClassAttribute nestHost -> o
    com.android.tools.r8.graph.DexAnnotationSet annotations -> q
    com.android.tools.r8.OptionalBool isResolvable -> h
    com.android.tools.r8.graph.DexType type -> c
    java.util.List innerClasses -> n
    com.android.tools.r8.graph.ClassAccessFlags accessFlags -> d
    com.android.tools.r8.graph.DexType superType -> e
    com.android.tools.r8.graph.DexEncodedMethod[] virtualMethods -> l
    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):90:90 -> <init>
    2:81: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:119 -> <init>
    82:82: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):109:109 -> <init>
    1:2:com.android.tools.r8.graph.InnerClassAttribute getInnerClassAttributeForThisClass():836:837 -> A
    1:1:java.util.List getInnerClasses():810:810 -> B
    com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo() -> C
    1:5:com.android.tools.r8.graph.DexType getNestHost():898:902 -> D
    1:1:com.android.tools.r8.graph.NestHostClassAttribute getNestHostClassAttribute():908:908 -> E
    1:1:java.util.List getNestMembersClassAttributes():912:912 -> F
    1:1:com.android.tools.r8.graph.DexType getType():671:671 -> G
    1:1:boolean hasClassInitializer():675:675 -> H
    1:1:com.android.tools.r8.graph.DexEncodedMethod getDefaultInitializer():693:693 -> I
    1:1:boolean hasDefaultInitializer():679 -> I
    1:1:boolean hasKotlinInfo():919:919 -> J
    1:2:boolean hasStaticSynchronizedMethods():933:934 -> K
    3:3:boolean com.android.tools.r8.graph.MethodAccessFlags.isSynchronized():110:110 -> K
    3:3:boolean hasStaticSynchronizedMethods():934 -> K
    1:5:java.util.List instanceFields():454:458 -> L
    1:4:boolean isAnonymousClass():870:873 -> M
    boolean isClasspathClass() -> N
    1:1:boolean isEnum():597:597 -> O
    2:2:boolean com.android.tools.r8.graph.ClassAccessFlags.isEnum():161:161 -> O
    2:2:boolean isEnum():597 -> O
    1:1:boolean isInANest():877:877 -> P
    1:1:boolean isInterface():593:593 -> Q
    2:2:boolean com.android.tools.r8.graph.ClassAccessFlags.isInterface():125:125 -> Q
    2:2:boolean isInterface():593 -> Q
    boolean isLibraryClass() -> R
    1:3:boolean isLocalClass():857:859 -> S
    1:3:boolean isMemberClass():863:865 -> T
    1:1:boolean isNestHost():890:890 -> U
    1:1:boolean isNestMember():894:894 -> V
    boolean isNotProgramClass() -> W
    boolean isProgramClass() -> X
    1:1:java.lang.Iterable methods():135:135 -> Y
    1:5:java.util.List staticFields():396:400 -> 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):129:131 -> 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):129 -> a
    5:11:void appendDirectMethod(com.android.tools.r8.graph.DexEncodedMethod):158:164 -> a
    12:22:void appendDirectMethods(java.util.Collection):168:178 -> a
    23:26:void setDirectMethod(int,com.android.tools.r8.graph.DexEncodedMethod):190:193 -> a
    27:30:void setDirectMethods(com.android.tools.r8.graph.DexEncodedMethod[]):197:200 -> a
    31:31:int lambda$allMethodsSorted$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):308:308 -> a
    32:54:void virtualizeMethods(java.util.Set):329:351 -> a
    55:57:void setInstanceField(int,com.android.tools.r8.graph.DexEncodedField):492:494 -> a
    58:60:void setInstanceFields(com.android.tools.r8.graph.DexEncodedField[]):498:500 -> a
    61:62:boolean verifyCorrectnessOfFieldHolders(java.lang.Iterable):514:515 -> a
    63:63:com.android.tools.r8.graph.DexEncodedField lookupInstanceField(com.android.tools.r8.graph.DexField):536:536 -> a
    63:63:com.android.tools.r8.graph.DexEncodedField lookupField(com.android.tools.r8.graph.DexField):554 -> a
    64:64:com.android.tools.r8.graph.DexEncodedField lookupStaticField(com.android.tools.r8.graph.DexField):531:531 -> a
    64:64:com.android.tools.r8.graph.DexEncodedField lookupField(com.android.tools.r8.graph.DexField):555 -> a
    65:65:com.android.tools.r8.graph.DexEncodedMethod lookupDirectMethod(com.android.tools.r8.graph.DexMethod):560:560 -> a
    66:67:com.android.tools.r8.graph.DexItem lookupTarget(com.android.tools.r8.graph.DexItem[],com.android.tools.r8.graph.Descriptor):580:581 -> a
    68:70:com.android.tools.r8.graph.DexEncodedMethod getInitializer(com.android.tools.r8.graph.DexType[]):683:685 -> a
    71:77:boolean isResolvable(com.android.tools.r8.graph.AppView):709:715 -> a
    78:78:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    78:78:boolean com.android.tools.r8.graph.DexType.isResolvable(com.android.tools.r8.graph.AppView):276 -> a
    78:78:boolean isResolvable(com.android.tools.r8.graph.AppView):716 -> a
    79:79:boolean com.android.tools.r8.graph.DexType.isResolvable(com.android.tools.r8.graph.AppView):277:277 -> a
    79:79:boolean isResolvable(com.android.tools.r8.graph.AppView):716 -> a
    80:80:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    80:80:boolean com.android.tools.r8.graph.DexType.isResolvable(com.android.tools.r8.graph.AppView):276 -> a
    80:80:boolean isResolvable(com.android.tools.r8.graph.AppView):716 -> a
    81:84:boolean isResolvable(com.android.tools.r8.graph.AppView):722:725 -> a
    85:92:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView,java.util.function.Predicate):742:749 -> a
    93:101:boolean hasClassInitializerThatCannotBePostponed():763:771 -> a
    93:101:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView,java.util.function.Predicate):753 -> a
    102:105:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView,java.util.function.Predicate):756:759 -> a
    106:106:boolean lambda$defaultValuesForStaticFieldsMayTriggerAllocation$4(com.android.tools.r8.graph.DexEncodedField):806:806 -> a
    107:115:void replaceInnerClassAttributeForThisClass(com.android.tools.r8.graph.InnerClassAttribute):845:853 -> a
    116:117:void setNestHost(com.android.tools.r8.graph.DexType):885:886 -> a
    1:5:java.util.List virtualMethods():204:208 -> a0
    1:6:void appendVirtualMethod(com.android.tools.r8.graph.DexEncodedMethod):212:217 -> b
    7:16:void appendVirtualMethods(java.util.Collection):221:230 -> b
    17:19:void setVirtualMethod(int,com.android.tools.r8.graph.DexEncodedMethod):242:244 -> b
    20:22:void setVirtualMethods(com.android.tools.r8.graph.DexEncodedMethod[]):248:250 -> b
    23:24:boolean verifyCorrectnessOfMethodHolders(java.lang.Iterable):264:265 -> b
    25:25:int lambda$directMethodsSorted$1(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):316:316 -> b
    26:30:void forEachField(java.util.function.Consumer):387:391 -> b
    31:33:void setStaticField(int,com.android.tools.r8.graph.DexEncodedField):433:435 -> b
    34:36:void setStaticFields(com.android.tools.r8.graph.DexEncodedField[]):439:441 -> b
    37:41:boolean verifyCorrectnessOfFieldHolder(com.android.tools.r8.graph.DexEncodedField):504:508 -> b
    42:42:com.android.tools.r8.graph.DexEncodedField lookupInstanceField(com.android.tools.r8.graph.DexField):536:536 -> b
    43:43:com.android.tools.r8.graph.DexEncodedMethod lookupDirectMethod(com.android.tools.r8.graph.DexMethod):560:560 -> b
    43:43:com.android.tools.r8.graph.DexEncodedMethod lookupMethod(com.android.tools.r8.graph.DexMethod):575 -> b
    44:44:com.android.tools.r8.graph.DexEncodedMethod lookupVirtualMethod(com.android.tools.r8.graph.DexMethod):565:565 -> b
    44:44:com.android.tools.r8.graph.DexEncodedMethod lookupMethod(com.android.tools.r8.graph.DexMethod):576 -> b
    45:45:com.android.tools.r8.graph.DexEncodedMethod lookupVirtualMethod(java.util.function.Predicate):570:570 -> b
    46:47:java.lang.Object com.android.tools.r8.utils.PredicateUtils.findFirst(java.lang.Object[],java.util.function.Predicate):12:13 -> b
    46:47:com.android.tools.r8.graph.DexEncodedMethod lookupVirtualMethod(java.util.function.Predicate):570 -> b
    48:48:boolean isSerializable(com.android.tools.r8.graph.AppView):729:729 -> b
    49:54:boolean initializationOfParentTypesMayHaveSideEffects(com.android.tools.r8.graph.AppView,java.util.function.Predicate):789:794 -> b
    55:55:boolean isValid(com.android.tools.r8.utils.InternalOptions):923:923 -> b
    56:56:boolean verifyNoAbstractMethodsOnNonAbstractClasses(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):272:272 -> b
    56:56:boolean isValid(com.android.tools.r8.utils.InternalOptions):923 -> b
    57:57:boolean isAbstract():589:589 -> b
    57:57:boolean verifyNoAbstractMethodsOnNonAbstractClasses(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):273 -> b
    57:57:boolean isValid(com.android.tools.r8.utils.InternalOptions):923 -> b
    58:59:boolean verifyNoAbstractMethodsOnNonAbstractClasses(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):274:275 -> b
    58:59:boolean isValid(com.android.tools.r8.utils.InternalOptions):923 -> b
    60:60:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():248:248 -> b
    60:60:boolean verifyNoAbstractMethodsOnNonAbstractClasses(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):275 -> b
    60:60:boolean isValid(com.android.tools.r8.utils.InternalOptions):923 -> b
    61:62:boolean verifyNoAbstractMethodsOnNonAbstractClasses(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):275:276 -> b
    61:62:boolean isValid(com.android.tools.r8.utils.InternalOptions):923 -> b
    63:67:boolean isValid(com.android.tools.r8.utils.InternalOptions):924:928 -> b
    1:3:com.android.tools.r8.graph.DexEncodedMethod[] virtualMethodsSorted():321:323 -> b0
    1:3:java.lang.Iterable methods(java.util.function.Predicate):139:141 -> c
    4:4:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> c
    4:4:java.lang.Iterable methods(java.util.function.Predicate):139 -> c
    5:9:void removeDirectMethod(int):182:186 -> c
    10:14:boolean verifyCorrectnessOfMethodHolder(com.android.tools.r8.graph.DexEncodedMethod):254:258 -> c
    15:19:void forEachMethod(java.util.function.Consumer):293:297 -> c
    20:20:int lambda$virtualMethodsSorted$2(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):324:324 -> c
    21:21:com.android.tools.r8.graph.DexEncodedField lookupStaticField(com.android.tools.r8.graph.DexField):531:531 -> c
    22:22:com.android.tools.r8.graph.DexEncodedMethod lookupVirtualMethod(com.android.tools.r8.graph.DexMethod):565:565 -> c
    1:4:boolean verifyNoDuplicateFields():521:524 -> c0
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):146:146 -> collectMixedSectionItems
    1:2:void removeEnclosingMethod(java.util.function.Predicate):822:823 -> d
    1:4:boolean verifyNoDuplicateMethods():284:287 -> d0
    1:1:void removeInnerClasses(java.util.function.Predicate):832:832 -> e
    com.android.tools.r8.graph.DexClass asDexClass() -> f
    boolean isDexClass() -> i
    boolean isStaticMember() -> l
    1:1:com.android.tools.r8.graph.DexType getType():671:671 -> m
    1:1:com.android.tools.r8.graph.DexReference toReference():604 -> m
    1:3:java.lang.Iterable allImmediateSupertypes():776:778 -> n
    4:7:java.lang.Iterable allImmediateSupertypes():777:780 -> n
    1:6:com.android.tools.r8.graph.DexEncodedMethod[] allMethodsSorted():302:307 -> o
    com.android.tools.r8.graph.DexLibraryClass asLibraryClass() -> p
    com.android.tools.r8.graph.DexProgramClass asProgramClass() -> q
    1:1:void clearEnclosingMethod():818:818 -> r
    1:1:void clearInnerClasses():828:828 -> s
    1:1:void clearNestHost():881:881 -> t
    1:2:boolean defaultValuesForStaticFieldsMayTriggerAllocation():805:806 -> u
    1:5:java.util.List directMethods():150:154 -> v
    1:3:com.android.tools.r8.graph.DexEncodedMethod[] directMethodsSorted():313:315 -> w
    1:1:java.lang.Iterable fields():125:125 -> x
    1:10:com.android.tools.r8.graph.DexEncodedMethod getClassInitializer():654:663 -> y
    1:1:com.android.tools.r8.graph.EnclosingMethodAttribute getEnclosingMethod():814:814 -> z
com.android.tools.r8.graph.DexClass$FieldSetter -> com.android.tools.r8.graph.B$a:
    void setField(int,com.android.tools.r8.graph.DexEncodedField) -> a
com.android.tools.r8.graph.DexClass$MethodSetter -> com.android.tools.r8.graph.B$b:
    void setMethod(int,com.android.tools.r8.graph.DexEncodedMethod) -> a
com.android.tools.r8.graph.DexClasspathClass -> com.android.tools.r8.graph.C:
    boolean $assertionsDisabled -> s
    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 -> C
    boolean isClasspathClass() -> N
    boolean isNotProgramClass() -> W
    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
    1:1:java.lang.String toString():64:64 -> toString
com.android.tools.r8.graph.DexCode -> com.android.tools.r8.graph.D:
    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:3:void setDebugInfo(com.android.tools.r8.graph.DexDebugInfo):104:106 -> a
    4:25:com.android.tools.r8.graph.DexDebugInfo debugInfoWithFakeThisParameter(com.android.tools.r8.graph.DexItemFactory):111:132 -> a
    26:29:int getLargestPrefix(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexString):136:139 -> a
    30:32:void updateHighestSortingString(com.android.tools.r8.graph.DexString):428:430 -> a
    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: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:4:void com.android.tools.r8.graph.DexDebugInfo.collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):66:66 -> collectMixedSectionItems
    4:4: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:com.android.tools.r8.graph.DexDebugInfo getDebugInfo():100:100 -> f
    1:8:com.android.tools.r8.graph.DexDebugInfoForWriting getDebugInfoForWriting():417:424 -> g
    1:1:com.android.tools.r8.graph.DexCode withoutThisParameter():74:74 -> h
    2:11:com.android.tools.r8.graph.DexDebugInfo debugInfoWithoutFirstParameter():148:157 -> h
    2:11:com.android.tools.r8.graph.DexCode withoutThisParameter():81 -> h
    12:12:com.android.tools.r8.graph.DexCode withoutThisParameter():81:81 -> h
    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.D$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.D$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.D$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
    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.E:
    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.F:
    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.F$a:
com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry -> com.android.tools.r8.graph.F$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.DexDebugEvent:
    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.DexDebugEvent$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.DexDebugEvent$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.DexDebugEvent$Default:
    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
    1:1:boolean equals(java.lang.Object):468:468 -> equals
    1:2:int getLineDelta():451:452 -> getLineDelta
    1:2:int getPCDelta():446:447 -> getPCDelta
    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.DexDebugEvent$c:
    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.DexDebugEvent$d:
    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.DexDebugEvent$e:
    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.DexDebugEvent$f:
    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:2:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):231:231 -> collectIndexedItems
    2:2: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.DexDebugEvent$g:
    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.DexDebugEvent$h:
    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.DexDebugEvent$i:
    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:2:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):231:231 -> collectIndexedItems
    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):220 -> collectIndexedItems
    3:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):222:225 -> collectIndexedItems
    7:7:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):231:231 -> collectIndexedItems
    7:7: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.G:
    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.H:
    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.I:
    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.J:
    1:4:void <init>(com.android.tools.r8.graph.DexDebugInfo):17:20 -> <init>
    5: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 -> c
com.android.tools.r8.graph.DexDebugPositionState -> com.android.tools.r8.graph.K:
    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.L:
    1:1:void <init>():13:13 -> <init>
    1:1:java.util.stream.Stream filterDexEncodedField(java.util.stream.Stream):71:71 -> a
    2:2:java.util.stream.Stream filter(java.util.stream.Stream,java.util.function.Predicate,java.util.function.Function):63:63 -> a
    2:2:java.util.stream.Stream filterDexEncodedField(java.util.stream.Stream):71 -> a
    1:1:java.util.stream.Stream filterDexEncodedMethod(java.util.stream.Stream):75:75 -> b
    2:2:java.util.stream.Stream filter(java.util.stream.Stream,java.util.function.Predicate,java.util.function.Function):63:63 -> b
    2:2:java.util.stream.Stream filterDexEncodedMethod(java.util.stream.Stream):75 -> b
    com.android.tools.r8.graph.DexClass asDexClass() -> f
    com.android.tools.r8.graph.DexEncodedField asDexEncodedField() -> g
    com.android.tools.r8.graph.DexEncodedMethod asDexEncodedMethod() -> h
    boolean isDexClass() -> i
    boolean isDexEncodedField() -> j
    boolean isDexEncodedMethod() -> k
    boolean isStaticMember() -> l
    com.android.tools.r8.graph.DexReference toReference() -> m
com.android.tools.r8.graph.DexDefinitionSupplier -> com.android.tools.r8.graph.M:
com.android.tools.r8.graph.DexEncodedAnnotation -> com.android.tools.r8.graph.N:
    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:1:int lambda$sort$0(com.android.tools.r8.graph.DexAnnotationElement,com.android.tools.r8.graph.DexAnnotationElement):66:66 -> a
    2:2:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):241:241 -> a
    2:2:int lambda$sort$0(com.android.tools.r8.graph.DexAnnotationElement,com.android.tools.r8.graph.DexAnnotationElement):66 -> a
    3:9:com.android.tools.r8.graph.DexEncodedAnnotation rewrite(java.util.function.Function,java.util.function.Function):81:87 -> a
    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):29: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:2:void sort():62:63 -> f
    3:3:int sortedHashCode():74:74 -> f
    3:3:void sort():63 -> f
    4:9:void sort():63:68 -> f
    10:10:int sortedHashCode():74:74 -> f
    10:10:void sort():70 -> f
    11:11:void sort():70:70 -> f
    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.O:
    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.P:
    com.android.tools.r8.graph.DexAnnotationSet annotations -> c
    com.android.tools.r8.graph.DexEncodedField[] EMPTY_ARRAY -> f
    com.android.tools.r8.graph.DexField field -> a
    boolean $assertionsDisabled -> g
    com.android.tools.r8.ir.optimize.info.FieldOptimizationInfo optimizationInfo -> e
    com.android.tools.r8.graph.FieldAccessFlags accessFlags -> b
    com.android.tools.r8.graph.DexValue staticValue -> d
    1:2:void <clinit>():15:16 -> <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):29:29 -> <init>
    2:12: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):23:33 -> <init>
    1:3:boolean isProgramField(com.android.tools.r8.graph.DexDefinitionSupplier):37:39 -> a
    4:4:void setOptimizationInfo(com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo):59:59 -> a
    5:5:boolean isStatic():114:114 -> a
    5:5:boolean mayTriggerClassInitializationSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):179 -> a
    6:6:boolean mayTriggerClassInitializationSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):182:182 -> a
    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    7:7:boolean mayTriggerClassInitializationSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):182 -> a
    8:17:boolean mayTriggerClassInitializationSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):186:195 -> a
    18:18:boolean mayTriggerClassInitializationSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):194:194 -> a
    19:21:void setStaticValue(com.android.tools.r8.graph.DexValue):136:138 -> a
    22:22:com.android.tools.r8.ir.code.ConstInstruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):153:153 -> a
    23:23:boolean isStatic():114:114 -> a
    23:23:com.android.tools.r8.ir.code.ConstInstruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):156 -> a
    24:30:com.android.tools.r8.ir.code.ConstInstruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):156:162 -> a
    31:31:boolean isStatic():114:114 -> a
    31:31:com.android.tools.r8.ir.code.ConstInstruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):162 -> a
    32:32:com.android.tools.r8.ir.code.ConstInstruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):163:163 -> a
    33:33:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    33:33:com.android.tools.r8.ir.code.ConstInstruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):163 -> a
    34:38:com.android.tools.r8.ir.code.ConstInstruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):164:168 -> a
    39:39:boolean com.android.tools.r8.graph.DexValue.isDefault(com.android.tools.r8.graph.DexType):166:166 -> a
    39:39:com.android.tools.r8.ir.code.ConstInstruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):168 -> a
    40:40:com.android.tools.r8.ir.code.ConstInstruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):169:169 -> a
    41:41:boolean com.android.tools.r8.graph.DexValue.isDefault(com.android.tools.r8.graph.DexType):166:166 -> a
    41:41:com.android.tools.r8.ir.code.ConstInstruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):168 -> a
    42:42:boolean lambda$mayTriggerClassInitializationSideEffects$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):190:190 -> a
    43:43:java.lang.Boolean lambda$mayTriggerClassInitializationSideEffects$1(com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):195:195 -> a
    44:51:com.android.tools.r8.graph.DexEncodedField toTypeSubstitutedField(com.android.tools.r8.graph.DexField):202:209 -> a
    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):65:66 -> collectIndexedItems
    3:3:void com.android.tools.r8.graph.DexAnnotationSet.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):70:70 -> collectIndexedItems
    3:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):66 -> collectIndexedItems
    4:5:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):67:68 -> collectIndexedItems
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):74:74 -> collectMixedSectionItems
    com.android.tools.r8.graph.DexEncodedField asDexEncodedField() -> g
    boolean isDexEncodedField() -> j
    1:1:boolean isStatic():114:114 -> l
    1:1:boolean isStaticMember():123 -> l
    1:1:com.android.tools.r8.graph.DexReference toReference():99:99 -> m
    1:1:com.android.tools.r8.graph.DexField getKey():94:94 -> n
    2:2:com.android.tools.r8.graph.DexField getKey():94:94 -> n
    2:2:com.android.tools.r8.graph.PresortedComparable getKey():15 -> n
    1:7:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo getMutableOptimizationInfo():49:55 -> o
    1:1:com.android.tools.r8.ir.optimize.info.FieldOptimizationInfo getOptimizationInfo():45:45 -> p
    1:2:com.android.tools.r8.graph.DexValue getStaticValue():142:143 -> q
    1:1:boolean hasAnnotation():127:127 -> r
    1:2:boolean hasExplicitStaticValue():131:132 -> s
    1:1:boolean isStatic():114:114 -> t
    1:1:java.lang.String toSmaliString():84:84 -> toSmaliString
    1:1:java.lang.String toSourceString():89:89 -> toSourceString
    1:1:java.lang.String toString():79:79 -> toString
com.android.tools.r8.graph.DexEncodedMethod -> com.android.tools.r8.graph.Q:
    com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo callSiteOptimizationInfo -> h
    boolean obsolete -> m
    com.android.tools.r8.graph.DexAnnotationSet annotations -> c
    com.android.tools.r8.graph.ParameterAnnotationsList parameterAnnotationsList -> d
    int classFileVersion -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap NO_PARAMETER_INFO -> q
    boolean $assertionsDisabled -> r
    com.android.tools.r8.graph.DexMethod method -> a
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState compilationState -> f
    com.android.tools.r8.graph.Code code -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap parameterInfo -> l
    com.android.tools.r8.graph.DexEncodedMethod defaultInterfaceMethodImplementation -> j
    com.android.tools.r8.graph.DexEncodedMethod ANNOTATION_REFERENCE -> p
    com.android.tools.r8.graph.DexEncodedMethod SENTINEL -> o
    com.android.tools.r8.graph.MethodAccessFlags accessFlags -> b
    com.android.tools.r8.OptionalBool isLibraryMethodOverride -> k
    com.android.tools.r8.graph.DexEncodedMethod[] EMPTY_ARRAY -> n
    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo optimizationInfo -> g
    1:46:void <clinit>():80:125 -> <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):201:201 -> <init>
    2:75: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):135:208 -> <init>
    76:77: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):218:219 -> <init>
    1:2:boolean hasAnnotation():1080:1081 -> A
    1:2:boolean hasClassFileVersion():565:566 -> B
    1:1:boolean hasCode():545:545 -> C
    1:1:boolean hasParameterInfo():500:500 -> D
    1:2:boolean isClassInitializer():271:272 -> E
    3:3:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():170:170 -> E
    3:3:boolean isClassInitializer():272 -> E
    4:4:boolean isClassInitializer():272:272 -> E
    1:1:boolean isDefaultMethod():277:277 -> F
    2:2:boolean isAbstract():248:248 -> F
    2:2:boolean isDefaultMethod():277 -> F
    3:3:boolean isDefaultMethod():277:277 -> F
    1:2:boolean isDirectMethod():322:323 -> G
    3:3:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():170:170 -> G
    3:3:boolean isDirectMethod():323 -> G
    4:4:boolean isDirectMethod():323:323 -> G
    1:1:boolean isFinal():252:252 -> H
    1:2:boolean isInitializer():256:257 -> I
    1:2:boolean isInstanceInitializer():261:262 -> J
    3:3:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():170:170 -> J
    3:3:boolean isInstanceInitializer():262 -> J
    4:4:boolean isInstanceInitializer():262:262 -> J
    1:1:com.android.tools.r8.OptionalBool isLibraryMethodOverride():223:223 -> K
    1:2:boolean isNonAbstractNonNativeMethod():299:300 -> L
    1:2:boolean isNonAbstractVirtualMethod():294:295 -> M
    1:1:boolean isObsolete():160:160 -> N
    1:1:boolean isOnlyInlinedIntoNestMembers():347:347 -> O
    1:2:boolean isPrivateMethod():314:315 -> P
    1:2:boolean isProcessed():243:244 -> Q
    1:2:boolean isPublicMethod():309:310 -> R
    1:2:boolean isPublicized():304:305 -> S
    1:2:boolean isStatic():328:329 -> T
    1:2:boolean isSyntheticMethod():342:343 -> U
    1:2:boolean isVirtualMethod():285:286 -> V
    3:3:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():170:170 -> V
    3:3:boolean isVirtualMethod():286 -> V
    1:2:void markNotProcessed():451:452 -> W
    1:2:java.lang.String qualifiedName():577:578 -> X
    1:2:void removeCode():554:555 -> Y
    1:5:void setLibraryMethodOverride():227:231 -> Z
    1:1:com.android.tools.r8.graph.DexEncodedMethod$CompilationState access$402(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$CompilationState):80:80 -> a
    2:2:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo access$502(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo):80:80 -> a
    3:5:boolean isProgramMethod(com.android.tools.r8.graph.DexDefinitionSupplier):235:237 -> a
    6:6:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    6:6:boolean com.android.tools.r8.utils.InternalOptions.canUseNestBasedAccess():1055 -> a
    6:6:boolean isValidVirtualTarget(com.android.tools.r8.utils.InternalOptions):1317 -> a
    7:7:boolean isValidVirtualTarget(com.android.tools.r8.utils.InternalOptions):1318:1318 -> a
    8:8:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():170:170 -> a
    8:8:boolean isValidVirtualTarget(com.android.tools.r8.utils.InternalOptions):1318 -> a
    9:9:boolean isValidVirtualTarget(com.android.tools.r8.utils.InternalOptions):1319:1319 -> a
    10:11: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):355:356 -> a
    12:67: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):365:420 -> a
    68:71: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):405:408 -> a
    72:75: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):398:401 -> a
    76:79: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):391:394 -> a
    80:112: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):384:416 -> a
    113:132:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):425:444 -> a
    133:133:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):441:441 -> a
    134:134:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):438:438 -> a
    135:135:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):435:435 -> a
    136:136:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):432:432 -> a
    137:155:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):429:447 -> a
    156:157:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):456:457 -> a
    158:159: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):466:467 -> a
    160:163:void setCode(com.android.tools.r8.graph.Code,com.android.tools.r8.graph.AppView):472:475 -> a
    164:164:boolean hasParameterInfo():500:500 -> a
    164:164:void setCode(com.android.tools.r8.graph.Code,com.android.tools.r8.graph.AppView):475 -> a
    165:166:void setCode(com.android.tools.r8.graph.Code,com.android.tools.r8.graph.AppView):475:476 -> a
    167:168:void setParameterInfo(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):495:496 -> a
    167:168:void setCode(com.android.tools.r8.graph.Code,com.android.tools.r8.graph.AppView):476 -> a
    169:169:void setCode(com.android.tools.r8.graph.Code,com.android.tools.r8.graph.AppView):478:478 -> a
    170:172:void setCode(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,com.android.tools.r8.graph.AppView):482:484 -> a
    173:178:void collectMixedSectionItemsWithCodeMapping(com.android.tools.r8.dex.MixedSectionCollection,com.android.tools.r8.dex.MethodToCodeObjectMapping):532:537 -> a
    179:187:java.lang.String descriptor(com.android.tools.r8.naming.NamingLens):587:595 -> a
    188:200:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):599:611 -> 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):612 -> a
    259:262:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):612:615 -> a
    263:272:com.android.tools.r8.graph.DexCode generateCodeFromTemplate(int,int,com.android.tools.r8.code.Instruction[]):642:651 -> a
    273:274:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):706:707 -> a
    275:279:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorDexCode(com.android.tools.r8.graph.DexItemFactory):726:730 -> a
    275:279:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):707 -> a
    280:287:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorDexCode(com.android.tools.r8.graph.DexItemFactory):729:736 -> a
    280:287:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):707 -> a
    288:294:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorDexCode(com.android.tools.r8.graph.DexItemFactory):735:741 -> a
    288:294:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):707 -> a
    295:310:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorDexCode(com.android.tools.r8.graph.DexItemFactory):739:754 -> a
    295:310:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):707 -> a
    311:311:void setObsolete():166:166 -> a
    311:311:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorDexCode(com.android.tools.r8.graph.DexItemFactory):755 -> a
    311:311:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):707 -> a
    312:312:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorDexCode(com.android.tools.r8.graph.DexItemFactory):756:756 -> a
    312:312:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):707 -> a
    313:313:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):709:709 -> a
    314:318:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):760:764 -> a
    314:318:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):709 -> a
    319:327:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):763:771 -> a
    319:327:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):709 -> a
    328:336:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):768:776 -> a
    328:336:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):709 -> a
    337:345:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):773:781 -> a
    337:345:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):709 -> a
    346:350:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):779:783 -> a
    346:350:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):709 -> a
    351:352:boolean isStaticMember():334:335 -> a
    351:352:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):784 -> a
    351:352:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):709 -> a
    353:375:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):788:810 -> a
    353:375:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):709 -> a
    376:376:void setObsolete():166:166 -> a
    376:376:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):811 -> a
    376:376:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):709 -> a
    377:377:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):812:812 -> a
    377:377:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):709 -> a
    378:382:void setDebugInfoWithFakeThisParameter(com.android.tools.r8.graph.Code,int,com.android.tools.r8.graph.AppView):714:718 -> a
    383:387:void setDebugInfoWithFakeThisParameter(com.android.tools.r8.graph.Code,int,com.android.tools.r8.graph.AppView):717:721 -> a
    388:388:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():314:314 -> a
    388:388:void setDebugInfoWithFakeThisParameter(com.android.tools.r8.graph.Code,int,com.android.tools.r8.graph.AppView):721 -> a
    389:389:void setDebugInfoWithFakeThisParameter(com.android.tools.r8.graph.Code,int,com.android.tools.r8.graph.AppView):721:721 -> a
    390:391:com.android.tools.r8.graph.DexEncodedMethod toTypeSubstitutedMethod(com.android.tools.r8.graph.DexMethod):816:817 -> a
    392:406:com.android.tools.r8.graph.DexEncodedMethod toTypeSubstitutedMethod(com.android.tools.r8.graph.DexMethod,java.util.function.Consumer):821:835 -> a
    407:425:com.android.tools.r8.graph.DexEncodedMethod toInitializerForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):851:869 -> a
    426:426:void com.android.tools.r8.graph.AccessFlags.unsetPrivate():150:150 -> a
    426:426:com.android.tools.r8.graph.DexEncodedMethod toInitializerForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):869 -> a
    427:427:com.android.tools.r8.graph.DexEncodedMethod toInitializerForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):870:870 -> a
    428:428:void com.android.tools.r8.graph.AccessFlags.setSynthetic():191:191 -> a
    428:428:com.android.tools.r8.graph.DexEncodedMethod toInitializerForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):870 -> a
    429:429:com.android.tools.r8.graph.DexEncodedMethod toInitializerForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):871:871 -> a
    430:430:void com.android.tools.r8.graph.MethodAccessFlags.setConstructor():174:174 -> a
    430:430:com.android.tools.r8.graph.DexEncodedMethod toInitializerForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):871 -> a
    431:431:com.android.tools.r8.graph.DexEncodedMethod toInitializerForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):872:872 -> a
    432:437: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):877:882 -> a
    438: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):879:902 -> a
    462:462: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):887:887 -> a
    463:466:void lambda$createFieldAccessorBridge$2(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.UseRegistry):890:893 -> a
    467:467:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isInstance():466:466 -> a
    467:467:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isInstancePut():482 -> a
    467:467:void lambda$createFieldAccessorBridge$2(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.UseRegistry):894 -> a
    468:468:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isInstancePut():482:482 -> a
    468:468:void lambda$createFieldAccessorBridge$2(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.UseRegistry):894 -> a
    469:471:void lambda$createFieldAccessorBridge$2(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.UseRegistry):895:897 -> a
    472:472:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isStaticPut():474:474 -> a
    472:472:void lambda$createFieldAccessorBridge$2(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.UseRegistry):897 -> a
    473:474:void lambda$createFieldAccessorBridge$2(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.UseRegistry):897:898 -> a
    475:477:com.android.tools.r8.graph.DexEncodedMethod toRenamedHolderMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):906:908 -> a
    478:481:com.android.tools.r8.graph.DexEncodedMethod toEmulateInterfaceLibraryMethod(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):917:920 -> a
    482:482:void com.android.tools.r8.graph.AccessFlags.setSynthetic():191:191 -> a
    482:482:com.android.tools.r8.graph.DexEncodedMethod toEmulateInterfaceLibraryMethod(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):920 -> a
    483:484:com.android.tools.r8.graph.DexEncodedMethod toEmulateInterfaceLibraryMethod(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):921:922 -> a
    485:485:void com.android.tools.r8.graph.AccessFlags.unsetPrivate():150:150 -> a
    485:485:com.android.tools.r8.graph.DexEncodedMethod toEmulateInterfaceLibraryMethod(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):922 -> a
    486:490:com.android.tools.r8.graph.DexEncodedMethod toEmulateInterfaceLibraryMethod(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):923:927 -> a
    491:495:com.android.tools.r8.graph.DexEncodedMethod toEmulateInterfaceLibraryMethod(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):924:928 -> a
    496:501:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):963:968 -> a
    502:502:void com.android.tools.r8.graph.AccessFlags.demote(int):246:246 -> a
    502:502:void com.android.tools.r8.graph.AccessFlags.demoteFromFinal():203 -> a
    502:502:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):968 -> a
    503:510:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):970:977 -> a
    511:511:void com.android.tools.r8.graph.MethodAccessFlags.setAbstract():154:154 -> a
    511:511:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):977 -> a
    512:531:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):980:999 -> a
    532:532:void com.android.tools.r8.graph.MethodAccessFlags.setBridge():126:126 -> a
    532:532:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):999 -> a
    533:533:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1001:1001 -> a
    534:534:void com.android.tools.r8.graph.AccessFlags.setSynthetic():191:191 -> a
    534:534:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1001 -> a
    535:535:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1004:1004 -> a
    536:547:com.android.tools.r8.graph.DexCode rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.graph.DexItemFactory,boolean):1024:1035 -> a
    548:558:com.android.tools.r8.graph.DexCode rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.graph.DexItemFactory,boolean):1034:1044 -> a
    559:562:void registerCodeReferences(com.android.tools.r8.graph.UseRegistry):1085:1088 -> a
    563:563:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> a
    563:563:void registerCodeReferences(com.android.tools.r8.graph.UseRegistry):1088 -> a
    564:564:void registerCodeReferences(com.android.tools.r8.graph.UseRegistry):1090:1090 -> a
    565:566:void setOptimizationInfo(com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo):1166:1167 -> a
    567:567:void copyMetadata(com.android.tools.r8.graph.DexEncodedMethod):1189:1189 -> a
    568:569:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo getOptimizationInfo():1153:1154 -> a
    568:569:void copyMetadata(com.android.tools.r8.graph.DexEncodedMethod):1191 -> a
    570:574:void copyMetadata(com.android.tools.r8.graph.DexEncodedMethod):1191:1195 -> a
    575:575:boolean hasSingleTarget():1341:1341 -> a
    576:577:void forEachTarget(java.util.function.Consumer):1353:1354 -> a
    1:1:void setObsolete():166:166 -> a0
    1:5:void setDefaultInterfaceMethodImplementation(com.android.tools.r8.graph.DexEncodedMethod):174:178 -> b
    6:6:void com.android.tools.r8.graph.MethodAccessFlags.setAbstract():154:154 -> b
    6:6:void setDefaultInterfaceMethodImplementation(com.android.tools.r8.graph.DexEncodedMethod):178 -> b
    7:8:void setDefaultInterfaceMethodImplementation(com.android.tools.r8.graph.DexEncodedMethod):179:180 -> b
    9:12:boolean keepLocals(com.android.tools.r8.utils.InternalOptions):488:491 -> b
    13:14:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo getOptimizationInfo():1153:1154 -> b
    13:14:boolean keepLocals(com.android.tools.r8.utils.InternalOptions):491 -> b
    15:15:boolean keepLocals(com.android.tools.r8.utils.InternalOptions):491:491 -> b
    16:37:com.android.tools.r8.graph.DexEncodedMethod toStaticForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):932:953 -> b
    38:38:void com.android.tools.r8.graph.AccessFlags.setSynthetic():191:191 -> b
    38:38:com.android.tools.r8.graph.DexEncodedMethod toStaticForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):953 -> b
    39:40:com.android.tools.r8.graph.DexEncodedMethod toStaticForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):954:955 -> b
    41:41:void com.android.tools.r8.graph.AccessFlags.unsetPrivate():150:150 -> b
    41:41:com.android.tools.r8.graph.DexEncodedMethod toStaticForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):955 -> b
    42:45:com.android.tools.r8.graph.DexEncodedMethod toStaticForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):956:959 -> b
    46:49:void lambda$toForwardingMethod$4(com.android.tools.r8.graph.UseRegistry):993:996 -> b
    50:50:com.android.tools.r8.graph.DexEncodedMethod asSingleTarget():1335:1335 -> b
    1:1:boolean shouldNotHaveCode():541:541 -> b0
    1:1:com.android.tools.r8.graph.Code access$300(com.android.tools.r8.graph.DexEncodedMethod):80:80 -> c
    2:5:void upgradeClassFileVersion(int):570:573 -> c
    6:6:void lambda$toInitializerForwardingBridge$0(com.android.tools.r8.graph.UseRegistry):866:866 -> c
    7:7:com.android.tools.r8.graph.DexEncodedMethod asResultOfResolve():1329:1329 -> c
    1:7:com.android.tools.r8.graph.DexEncodedMethod toAbstractMethod():625:631 -> c0
    8:8:void com.android.tools.r8.graph.MethodAccessFlags.setAbstract():154:154 -> c0
    8:8:com.android.tools.r8.graph.DexEncodedMethod toAbstractMethod():631 -> c0
    9:9:com.android.tools.r8.graph.DexEncodedMethod toAbstractMethod():632:632 -> c0
    1:7:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):516:522 -> collectIndexedItems
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):527:527 -> collectMixedSectionItems
    1:1:com.android.tools.r8.graph.DexEncodedMethod$CompilationState access$400(com.android.tools.r8.graph.DexEncodedMethod):80:80 -> d
    2:5:void lambda$toStaticForwardingBridge$3(com.android.tools.r8.graph.UseRegistry):947:950 -> d
    6:6:boolean isValidVirtualTargetForDynamicDispatch():1324:1324 -> d
    1:7:com.android.tools.r8.graph.DexEncodedMethod toEmptyThrowingMethodCf():696:702 -> d0
    1:1:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo access$500(com.android.tools.r8.graph.DexEncodedMethod):80:80 -> e
    2:3:java.util.List asListOfTargets():1347:1348 -> e
    1:10:com.android.tools.r8.graph.DexEncodedMethod toEmptyThrowingMethodDex():672:681 -> e0
    1:1:int access$600(com.android.tools.r8.graph.DexEncodedMethod):80:80 -> f
    1:9:com.android.tools.r8.graph.DexEncodedMethod toStaticMethodWithoutThis():1008:1016 -> f0
    10:10:void setObsolete():166:166 -> f0
    10:10:com.android.tools.r8.graph.DexEncodedMethod toStaticMethodWithoutThis():1017 -> f0
    1:1:com.android.tools.r8.graph.DexEncodedMethod$Builder builder(com.android.tools.r8.graph.DexEncodedMethod):1200:1200 -> g
    1:1:void unsetObsolete():193:193 -> g0
    1:1:com.android.tools.r8.graph.DexEncodedMethod asDexEncodedMethod():1075:1075 -> h
    1:1:void checkIfObsolete():154:154 -> h0
    1:1:boolean isDexEncodedMethod():1069:1069 -> k
    1:2:boolean isStaticMember():334:335 -> l
    1:2:com.android.tools.r8.graph.DexReference toReference():1063:1064 -> m
    1:1:com.android.tools.r8.graph.DexMethod getKey():1058:1058 -> n
    2:2:com.android.tools.r8.graph.DexMethod getKey():1058:1058 -> n
    2:2:com.android.tools.r8.graph.PresortedComparable getKey():80 -> n
    1:8:com.android.tools.r8.graph.CfCode buildEmptyThrowingCfCode():685:692 -> o
    1:2:com.android.tools.r8.graph.DexCode buildEmptyThrowingDexCode():661:662 -> p
    1:2:java.lang.String codeToString():1050:1051 -> q
    1:2:java.lang.String descriptor():582:583 -> r
    1:2:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo getCallSiteOptimizationInfo():1171:1172 -> s
    1:3:int getClassFileVersion():559:561 -> t
    1:2:java.lang.String toSourceString():620:621 -> toSourceString
    1:2:java.lang.String toString():509:510 -> toString
    1:2:com.android.tools.r8.graph.Code getCode():549:550 -> u
    1:1:com.android.tools.r8.graph.DexEncodedMethod getDefaultInterfaceMethodImplementation():170:170 -> v
    1:9:com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo getMutableCallSiteOptimizationInfo(com.android.tools.r8.graph.AppView):1177:1185 -> w
    1:5:com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo getMutableOptimizationInfo():1158:1162 -> x
    1:2:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo getOptimizationInfo():1153:1154 -> y
    1:1:java.util.Map getParameterInfo():504:504 -> z
com.android.tools.r8.graph.DexEncodedMethod$1 -> com.android.tools.r8.graph.Q$a:
    int[] $SwitchMap$com$android$tools$r8$ir$optimize$Inliner$Constraint -> b
    int[] $SwitchMap$com$android$tools$r8$graph$DexEncodedMethod$CompilationState -> a
    1:1:void <clinit>():427:427 -> <clinit>
    2:2:void <clinit>():379:379 -> <clinit>
com.android.tools.r8.graph.DexEncodedMethod$Builder -> com.android.tools.r8.graph.Q$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
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.ParameterAnnotationsList parameterAnnotations -> d
    int classFileVersion -> h
    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>():1203:1203 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$1):1203:1203 -> <init>
    2:18:void <init>(com.android.tools.r8.graph.DexEncodedMethod):1214:1230 -> <init>
    19:19:void <init>(com.android.tools.r8.graph.DexEncodedMethod):1226:1226 -> <init>
    1:1:com.android.tools.r8.graph.MethodAccessFlags access$000(com.android.tools.r8.graph.DexEncodedMethod$Builder):1203:1203 -> a
    2:2:void setMethod(com.android.tools.r8.graph.DexMethod):1235:1235 -> a
    3:22:com.android.tools.r8.graph.DexEncodedMethod$Builder removeParameterAnnotations(java.util.function.IntPredicate):1244:1263 -> a
    23:23:com.android.tools.r8.graph.DexEncodedMethod$Builder setParameterAnnotations(com.android.tools.r8.graph.ParameterAnnotationsList):1239:1239 -> a
    23:23:com.android.tools.r8.graph.DexEncodedMethod$Builder removeParameterAnnotations(java.util.function.IntPredicate):1263 -> a
    24:26:com.android.tools.r8.graph.DexEncodedMethod$Builder removeParameterAnnotations(java.util.function.IntPredicate):1266:1268 -> a
    27:27:com.android.tools.r8.graph.DexEncodedMethod$Builder setParameterAnnotations(com.android.tools.r8.graph.ParameterAnnotationsList):1239:1239 -> a
    27:27:com.android.tools.r8.graph.DexEncodedMethod$Builder removeParameterAnnotations(java.util.function.IntPredicate):1266 -> a
    28:30:com.android.tools.r8.graph.DexEncodedMethod$Builder adjustOptimizationInfoAfterRemovingThisParameter():1288:1290 -> a
    31:31:void setCode(com.android.tools.r8.graph.Code):1296:1296 -> a
    1:6:com.android.tools.r8.graph.DexEncodedMethod build():1300:1305 -> b
    7:13:com.android.tools.r8.graph.DexEncodedMethod build():1304:1310 -> b
    1:1:com.android.tools.r8.graph.DexEncodedMethod$Builder promoteToStatic():1273:1273 -> c
    2:2:void com.android.tools.r8.graph.AccessFlags.promoteToStatic():216:216 -> c
    2:2:com.android.tools.r8.graph.DexEncodedMethod$Builder promoteToStatic():1273 -> c
    1:5:com.android.tools.r8.graph.DexEncodedMethod$Builder withoutThisParameter():1278:1282 -> d
com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility -> com.android.tools.r8.graph.Q$c:
    boolean returnsReceiver -> a
    1:2:void <init>(boolean):1102:1103 -> <init>
com.android.tools.r8.graph.DexEncodedMethod$CompilationState -> com.android.tools.r8.graph.Q$d:
    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>():94:117 -> <clinit>
    25:25:void <clinit>():90:90 -> <clinit>
    1:1:void <init>(java.lang.String,int):90:90 -> <init>
    1:1:com.android.tools.r8.graph.DexEncodedMethod$CompilationState[] values():90:90 -> a
com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer -> com.android.tools.r8.graph.Q$e:
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod$1):1107:1107 -> <init>
    2:2:void <init>():1109:1109 -> <init>
    com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer$TrivialClassInitializer asTrivialClassInitializer() -> a
    boolean isTrivialInstanceInitializer() -> b
com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer$TrivialClassInitializer -> com.android.tools.r8.graph.Q$e$a:
    com.android.tools.r8.graph.DexField field -> a
    1:2:void <init>(com.android.tools.r8.graph.DexField):1141:1142 -> <init>
    com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer$TrivialClassInitializer asTrivialClassInitializer() -> a
com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer$TrivialInstanceInitializer -> com.android.tools.r8.graph.S:
    com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer$TrivialInstanceInitializer INSTANCE -> a
    1:1:void <clinit>():1124:1124 -> <clinit>
    1:1:void <init>():1127:1127 -> <init>
    boolean isTrivialInstanceInitializer() -> b
com.android.tools.r8.graph.DexField -> com.android.tools.r8.graph.T:
    com.android.tools.r8.graph.DexString name -> e
    com.android.tools.r8.graph.DexType type -> d
    com.android.tools.r8.graph.DexType holder -> c
    1:7:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,boolean):17:23 -> <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.DexItem):10:10 -> a
    3:3:int slowCompareTo(java.lang.Object):10:10 -> a
    4:4:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):63:63 -> a
    5:13:int slowCompareTo(com.android.tools.r8.graph.DexField):83:91 -> a
    14:14:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):109:109 -> a
    15:15:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):160:160 -> a
    15:15:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):109 -> a
    16:16:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):113:113 -> a
    17:17:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):241:241 -> a
    17:17:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):113 -> a
    18:18:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):117:117 -> a
    19:19:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):160:160 -> a
    19:19:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):117 -> a
    20:20:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):241:241 -> a
    20:20:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):113 -> a
    21:21:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):160:160 -> a
    21:21:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):109 -> a
    22:22:boolean match(com.android.tools.r8.graph.DexEncodedField):127:127 -> a
    23:23:boolean match(com.android.tools.r8.graph.DexField):122:122 -> a
    23:23:boolean match(com.android.tools.r8.graph.DexEncodedField):127 -> a
    1:4:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):53:56 -> collectIndexedItems
    5:5:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):231:231 -> collectIndexedItems
    5:5:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):56 -> collectIndexedItems
    1:1:int compareTo(java.lang.Object):10:10 -> compareTo
    2:2:int compareTo(com.android.tools.r8.graph.DexField):78:78 -> compareTo
    2:2:int compareTo(java.lang.Object):10 -> compareTo
    1:5:boolean computeEquals(java.lang.Object):36:40 -> computeEquals
    1:3:int computeHashCode():29:31 -> computeHashCode
    com.android.tools.r8.graph.DexField asDexField() -> h
    boolean isDexField() -> k
    1:1:java.lang.String toSmaliString():136:136 -> toSmaliString
    1:1:java.lang.String toSourceString():141:141 -> toSourceString
    1:1:java.lang.String toString():47:47 -> toString
com.android.tools.r8.graph.DexItem -> com.android.tools.r8.graph.U:
    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):84:84 -> 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.V:
    com.android.tools.r8.graph.DexString getDeclaredFieldName -> A0
    com.android.tools.r8.graph.DexString unboxLongMethodName -> Q
    com.android.tools.r8.graph.DexString mathDescriptor -> b1
    com.android.tools.r8.graph.DexType methodHandleType -> F2
    com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd setPrologueEnd -> m
    java.util.concurrent.ConcurrentHashMap classTypeLatticeInterfaces -> q
    com.android.tools.r8.graph.DexString assertionErrorDescriptor -> I0
    com.android.tools.r8.graph.DexString proxyDescriptor -> j1
    com.android.tools.r8.graph.DexString nameMethodName -> r0
    com.android.tools.r8.graph.DexString shortDescriptor -> A
    java.util.Map fields -> c
    com.android.tools.r8.graph.DexType externalizableType -> W3
    com.android.tools.r8.graph.DexType intType -> V1
    com.android.tools.r8.graph.DexType referenceFieldUpdaterType -> w2
    com.android.tools.r8.graph.DexString getFieldName -> z0
    java.util.Set libraryMethodsReturningNonNull -> g4
    com.android.tools.r8.graph.DexType dalvikCriticalNativeAnnotation -> O3
    com.android.tools.r8.graph.DexType classArrayType -> o2
    com.android.tools.r8.graph.DexString contentEqualsMethodName -> a0
    com.android.tools.r8.graph.DexType annotationSignature -> G3
    com.android.tools.r8.graph.DexString unboxFloatMethodName -> R
    com.android.tools.r8.graph.DexType boxedShortType -> g2
    com.android.tools.r8.graph.DexString referenceFieldUpdaterDescriptor -> I1
    com.android.tools.r8.graph.DexString valueOfMethodName -> i0
    com.android.tools.r8.graph.DexString classLoaderDescriptor -> Q0
    com.android.tools.r8.graph.DexString comparatorDescriptor -> r1
    com.android.tools.r8.graph.DexString voidDescriptor -> B
    java.util.Map protos -> d
    com.android.tools.r8.graph.DexType runtimeExceptionType -> W2
    com.android.tools.r8.graph.DexItemFactory$ObjectMethods objectMethods -> i3
    java.util.concurrent.ConcurrentHashMap referenceTypeLatticeElements -> p
    com.android.tools.r8.graph.DexString objectsDescriptor -> Y0
    com.android.tools.r8.graph.DexString illegalAccessErrorDescriptor -> z1
    com.android.tools.r8.graph.DexType mapEntryType -> O2
    com.android.tools.r8.graph.DexMethod metafactoryAltMethod -> b4
    boolean skipNameValidationForTesting -> l4
    com.android.tools.r8.graph.DexString icceDescriptor -> A1
    com.android.tools.r8.graph.DexString unboxDoubleMethodName -> S
    com.android.tools.r8.graph.DexItemFactory$JavaUtilArraysMethods utilArraysMethods -> k3
    com.android.tools.r8.graph.DexString booleanDescriptor -> t
    com.android.tools.r8.graph.DexString invocationHandlerDescriptor -> i1
    com.android.tools.r8.graph.DexType varHandleType -> E2
    com.android.tools.r8.graph.DexString runtimeExceptionDescriptor -> H0
    com.android.tools.r8.graph.DexString classDescriptor -> P0
    com.android.tools.r8.graph.DexString collectionDescriptor -> q1
    com.android.tools.r8.graph.DexString ordinalMethodName -> q0
    com.android.tools.r8.graph.DexType floatType -> U1
    com.android.tools.r8.graph.DexType strictMathType -> v2
    com.android.tools.r8.graph.DexString boxedBooleanDescriptor -> C
    com.android.tools.r8.graph.DexType serializableType -> V3
    com.android.tools.r8.graph.DexString getDeclaredConstructorName -> y0
    java.util.Set libraryMethodsReturningReceiver -> f4
    com.android.tools.r8.graph.DexType objectArrayType -> n2
    java.util.Map methods -> e
    com.android.tools.r8.graph.DexType dalvikFastNativeAnnotation -> N3
    com.android.tools.r8.graph.DexString iterableDescriptor -> a1
    com.android.tools.r8.graph.DexType boxedLongType -> f2
    com.android.tools.r8.graph.DexString isEmptyMethodName -> T
    com.android.tools.r8.com.google.common.collect.BiMap primitiveToBoxed -> Z3
    com.android.tools.r8.graph.DexString byteDescriptor -> u
    com.android.tools.r8.graph.DexString trimName -> h0
    com.android.tools.r8.graph.DexString longFieldUpdaterDescriptor -> H1
    com.android.tools.r8.graph.DexType annotationMethodParameters -> F3
    com.android.tools.r8.graph.DexItemFactory$AtomicFieldUpdaterMethods atomicFieldUpdaterMethods -> s3
    com.android.tools.r8.graph.DexString finalizeMethodName -> p0
    com.android.tools.r8.graph.DexString throwableArrayDescriptor -> P1
    com.android.tools.r8.graph.DexType optionalType -> V2
    com.android.tools.r8.graph.DexString boxedByteDescriptor -> D
    com.android.tools.r8.graph.DexString annotationDescriptor -> X0
    com.android.tools.r8.graph.DexString throwableDescriptor -> y1
    com.android.tools.r8.graph.DexType mapType -> N2
    com.android.tools.r8.graph.DexItemFactory$EnumMethods enumMethods -> p3
    java.util.Map methodHandles -> f
    com.android.tools.r8.graph.DexMethod metafactoryMethod -> a4
    com.android.tools.r8.graph.DexMethod stringConcatMethod -> e4
    com.android.tools.r8.graph.DexString getDeclaredMethodName -> C0
    com.android.tools.r8.graph.DexString stringBuilderDescriptor -> d1
    com.android.tools.r8.graph.DexType reflectiveOperationExceptionType -> e3
    com.android.tools.r8.graph.DexProto deserializeLambdaMethodProto -> z3
    java.util.Map setInlineFrames -> o
    com.android.tools.r8.graph.DexType stringBufferType -> D2
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap defaults -> i
    com.android.tools.r8.graph.DexString charSequenceArrayDescriptor -> K0
    com.android.tools.r8.graph.DexString serviceLoaderConfigurationErrorDescriptor -> l1
    com.android.tools.r8.graph.DexItemFactory$ProxyMethods proxyMethods -> v3
    com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin setEpilogueBegin -> l
    com.android.tools.r8.graph.DexString forNameMethodName -> t0
    com.android.tools.r8.graph.DexType enumerationType -> U3
    com.android.tools.r8.graph.DexType doubleType -> T1
    com.android.tools.r8.graph.DexType mathType -> u2
    java.util.Set libraryMethodsWithReturnValueDependingOnlyOnArguments -> i4
    com.android.tools.r8.graph.DexType annotationReachabilitySensitive -> M3
    com.android.tools.r8.graph.DexString unboxByteMethodName -> M
    com.android.tools.r8.graph.DexType objectType -> m2
    com.android.tools.r8.graph.DexString noClassDefFoundErrorDescriptor -> C1
    com.android.tools.r8.graph.DexString lastIndexOfMethodName -> c0
    com.android.tools.r8.graph.DexType boxedIntType -> e2
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap advancePCs -> h
    com.android.tools.r8.graph.DexType annotationMemberClasses -> E3
    com.android.tools.r8.graph.DexString constructorMethodName -> K1
    com.android.tools.r8.graph.DexString internMethodName -> k0
    com.android.tools.r8.graph.DexString classArrayDescriptor -> S0
    com.android.tools.r8.graph.DexString supplierDescriptor -> t1
    com.android.tools.r8.graph.DexType runnableType -> U2
    com.android.tools.r8.graph.DexType setType -> M2
    java.util.IdentityHashMap internalSentinels -> o4
    com.android.tools.r8.graph.DexString unboxCharMethodName -> N
    com.android.tools.r8.graph.DexMethod stringConcatWithConstantsMethod -> d4
    com.android.tools.r8.graph.DexString strictMathDescriptor -> c1
    com.android.tools.r8.graph.DexItemFactory$NullPointerExceptionMethods npeMethods -> q3
    com.android.tools.r8.graph.DexString getMethodName -> B0
    com.android.tools.r8.graph.DexType stringBuilderType -> C2
    com.android.tools.r8.graph.DexType npeType -> d3
    com.android.tools.r8.graph.DexString serviceLoaderDescriptor -> k1
    com.android.tools.r8.graph.DexString charSequenceDescriptor -> J0
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap restartLocals -> k
    java.util.Map strings -> a
    com.android.tools.r8.graph.DexString desiredAssertionStatusMethodName -> s0
    com.android.tools.r8.graph.DexType charType -> S1
    com.android.tools.r8.graph.DexType iterableType -> t2
    com.android.tools.r8.graph.DexType listIteratorType -> T3
    com.android.tools.r8.graph.DexType stringArrayType -> l2
    com.android.tools.r8.graph.DexType nullValueType -> m4
    com.android.tools.r8.graph.DexString unboxShortMethodName -> O
    com.android.tools.r8.graph.DexType annotationCovariantReturnTypes -> L3
    com.android.tools.r8.graph.DexString unboxIntMethodName -> P
    com.android.tools.r8.graph.DexString indexOfMethodName -> b0
    com.android.tools.r8.graph.DexString exceptionInInitializerErrorDescriptor -> B1
    com.android.tools.r8.graph.DexType boxedFloatType -> d2
    com.android.tools.r8.graph.DexType annotationInnerClass -> D3
    com.android.tools.r8.graph.DexItemFactory$StringBuildingMethods stringBuilderMethods -> f3
    com.android.tools.r8.graph.DexString toStringMethodName -> j0
    com.android.tools.r8.graph.DexString newUpdaterName -> J1
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap endLocals -> j
    com.android.tools.r8.graph.DexString autoCloseableDescriptor -> R0
    com.android.tools.r8.graph.DexString callableDescriptor -> s1
    java.util.Map types -> b
    com.android.tools.r8.graph.DexType consumerType -> T2
    com.android.tools.r8.graph.DexString collectionsDescriptor -> Z0
    com.android.tools.r8.graph.DexType listType -> L2
    com.android.tools.r8.graph.DexItemFactory$ClassMethods classMethods -> n3
    com.android.tools.r8.graph.DexString assertionsDisabled -> E0
    com.android.tools.r8.graph.DexString varHandleDescriptor -> f1
    com.android.tools.r8.graph.DexType autoCloseableType -> B2
    com.android.tools.r8.graph.DexType noSuchFieldErrorType -> c3
    com.android.tools.r8.graph.DexString equalsMethodName -> Y
    com.android.tools.r8.graph.DexString longDescriptor -> z
    com.android.tools.r8.graph.DexString stringArrayDescriptor -> M0
    com.android.tools.r8.graph.DexString setDescriptor -> n1
    com.android.tools.r8.graph.DexType boxedBooleanType -> Z1
    com.android.tools.r8.graph.DexString getCanonicalNameName -> v0
    java.util.Set libraryClassesWithoutStaticInitialization -> k4
    com.android.tools.r8.graph.DexItemFactory$ServiceLoaderMethods serviceLoaderMethods -> Y3
    com.android.tools.r8.graph.DexType iteratorType -> S3
    com.android.tools.r8.graph.DexType byteType -> R1
    com.android.tools.r8.graph.DexType collectionsType -> s2
    com.android.tools.r8.graph.DexString boxedLongDescriptor -> I
    com.android.tools.r8.graph.DexType annotationCovariantReturnType -> K3
    com.android.tools.r8.graph.DexType stringType -> k2
    com.android.tools.r8.graph.DexString npeDescriptor -> E1
    com.android.tools.r8.utils.LRUCacheTable leastUpperBoundOfInterfacesTable -> r
    com.android.tools.r8.graph.DexString compareToIgnoreCaseMethodName -> e0
    com.android.tools.r8.graph.DexItemFactory$StringBuildingMethods stringBufferMethods -> g3
    com.android.tools.r8.graph.DexType annotationEnclosingMethod -> C3
    com.android.tools.r8.graph.DexType boxedDoubleType -> c2
    com.android.tools.r8.graph.DexItemFactory$StringMethods stringMethods -> j3
    com.android.tools.r8.graph.DexString equalsIgnoreCaseMethodName -> Z
    com.android.tools.r8.graph.DexString thisName -> M1
    com.android.tools.r8.graph.DexString wrapperFieldName -> m0
    com.android.tools.r8.graph.DexString twrCloseResourceMethodName -> w3
    com.android.tools.r8.graph.DexString fieldDescriptor -> U0
    com.android.tools.r8.graph.DexString runnableDescriptor -> v1
    com.android.tools.r8.graph.DexType supplierType -> S2
    boolean $assertionsDisabled -> p4
    com.android.tools.r8.graph.DexString boxedShortDescriptor -> J
    com.android.tools.r8.graph.DexProto twrCloseResourceMethodProto -> x3
    com.android.tools.r8.graph.DexType serviceLoaderConfigurationErrorType -> K2
    com.android.tools.r8.graph.DexString stringBufferDescriptor -> e1
    com.android.tools.r8.graph.DexType proxyType -> I2
    com.android.tools.r8.graph.DexItemFactory$ObjectsMethods objectsMethods -> h3
    com.android.tools.r8.graph.DexString newInstanceName -> D0
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap advanceLines -> g
    com.android.tools.r8.graph.DexType noClassDefFoundErrorType -> b3
    com.android.tools.r8.graph.DexString stringDescriptor -> L0
    com.android.tools.r8.graph.DexString listDescriptor -> m1
    com.android.tools.r8.graph.DexType methodType -> A2
    com.android.tools.r8.graph.DexType voidType -> Y1
    com.android.tools.r8.graph.DexType fieldType -> z2
    com.android.tools.r8.graph.DexString getNameName -> u0
    java.util.Set libraryTypesAssumedToBePresent -> j4
    com.android.tools.r8.graph.DexType booleanType -> Q1
    com.android.tools.r8.graph.DexType objectsType -> r2
    com.android.tools.r8.graph.DexType lookupType -> R3
    com.android.tools.r8.graph.DexString boxedNumberDescriptor -> K
    com.android.tools.r8.graph.DexType charSequenceArrayType -> j2
    com.android.tools.r8.graph.DexString compareToMethodName -> d0
    com.android.tools.r8.graph.DexString noSuchFieldErrorDescriptor -> D1
    com.android.tools.r8.graph.DexType annotationSynthesizedClassMap -> J3
    java.util.Map setFiles -> n
    com.android.tools.r8.graph.DexType boxedCharType -> b2
    com.android.tools.r8.graph.DexString unknownTypeName -> n4
    com.android.tools.r8.graph.DexType stringConcatFactoryType -> c4
    com.android.tools.r8.graph.DexString convertMethodName -> l0
    com.android.tools.r8.graph.DexType annotationEnclosingClass -> B3
    com.android.tools.r8.graph.DexString classConstructorMethodName -> L1
    com.android.tools.r8.graph.DexType icceType -> Z2
    com.android.tools.r8.graph.DexString constructorDescriptor -> T0
    com.android.tools.r8.graph.DexString consumerDescriptor -> u1
    com.android.tools.r8.graph.DexType callableType -> R2
    com.android.tools.r8.graph.DexString unboxBooleanMethodName -> L
    com.android.tools.r8.graph.DexType serviceLoaderType -> J2
    com.android.tools.r8.graph.DexType invocationHandlerType -> H2
    com.android.tools.r8.graph.DexString lengthMethodName -> U
    com.android.tools.r8.graph.DexString charDescriptor -> v
    com.android.tools.r8.graph.DexString invokeExactMethodName -> G0
    com.android.tools.r8.graph.DexString methodTypeDescriptor -> h1
    com.android.tools.r8.kotlin.Kotlin kotlin -> t3
    com.android.tools.r8.graph.DexType exceptionInInitializerErrorType -> a3
    com.android.tools.r8.graph.DexItemFactory$ConstructorMethods constructorMethods -> o3
    com.android.tools.r8.graph.DexString objectArrayDescriptor -> O0
    com.android.tools.r8.graph.DexString mapEntryDescriptor -> p1
    com.android.tools.r8.graph.DexType shortType -> X1
    com.android.tools.r8.graph.DexType classLoaderType -> y2
    com.android.tools.r8.graph.DexString boxedCharDescriptor -> E
    com.android.tools.r8.graph.DexString getTypeNameName -> x0
    com.android.tools.r8.graph.DexItemFactory$PolymorphicMethods polymorphicMethods -> u3
    com.android.tools.r8.graph.DexType callSiteType -> Q3
    com.android.tools.r8.graph.DexType annotationType -> q2
    com.android.tools.r8.graph.DexItemFactory$AssertionErrorMethods assertionErrorMethods -> m3
    com.android.tools.r8.graph.DexType charSequenceType -> i2
    com.android.tools.r8.graph.DexType annotationThrows -> I3
    com.android.tools.r8.graph.DexItemFactory$PrimitiveTypesBoxedTypeFields primitiveTypesBoxedTypeFields -> r3
    com.android.tools.r8.graph.DexString intFieldUpdaterDescriptor -> G1
    com.android.tools.r8.graph.DexString containsMethodName -> V
    com.android.tools.r8.graph.DexString doubleDescriptor -> w
    com.android.tools.r8.graph.DexString substringName -> g0
    com.android.tools.r8.graph.DexType boxedByteType -> a2
    com.android.tools.r8.graph.DexType annotationDefault -> A3
    com.android.tools.r8.graph.DexString getClassMethodName -> o0
    com.android.tools.r8.graph.DexType illegalAccessErrorType -> Y2
    com.android.tools.r8.graph.DexString deserializeLambdaMethodName -> y3
    com.android.tools.r8.graph.DexString boxedDoubleDescriptor -> F
    com.android.tools.r8.graph.DexString enumDescriptor -> W0
    com.android.tools.r8.graph.DexString arraysDescriptor -> x1
    com.android.tools.r8.graph.DexType comparatorType -> Q2
    com.android.tools.r8.graph.DexType methodTypeType -> G2
    com.android.tools.r8.graph.DexString methodHandleDescriptor -> g1
    com.android.tools.r8.graph.DexString invokeMethodName -> F0
    com.android.tools.r8.graph.DexString startsWithMethodName -> W
    com.android.tools.r8.graph.DexString floatDescriptor -> x
    com.android.tools.r8.graph.DexString objectDescriptor -> N0
    com.android.tools.r8.graph.DexString mapDescriptor -> o1
    boolean sorted -> s
    com.android.tools.r8.graph.DexType longType -> W1
    com.android.tools.r8.graph.DexType classType -> x2
    com.android.tools.r8.graph.DexItemFactory$ThrowableMethods throwableMethods -> l3
    com.android.tools.r8.graph.DexType comparableType -> X3
    com.android.tools.r8.graph.DexString boxedFloatDescriptor -> G
    com.android.tools.r8.graph.DexString getSimpleNameName -> w0
    com.android.tools.r8.graph.DexType charArrayType -> O1
    com.android.tools.r8.graph.DexType enumType -> p2
    com.android.tools.r8.graph.DexType metafactoryType -> P3
    java.util.Map libraryMethodsWithoutSideEffects -> h4
    com.android.tools.r8.graph.DexType boxedNumberType -> h2
    com.android.tools.r8.graph.DexType annotationSourceDebugExtension -> H3
    com.android.tools.r8.graph.DexString cloneMethodName -> f0
    com.android.tools.r8.graph.DexString reflectiveOperationExceptionDescriptor -> F1
    com.android.tools.r8.graph.DexString endsWithMethodName -> X
    com.android.tools.r8.graph.DexString intDescriptor -> y
    com.android.tools.r8.graph.DexString initMethodName -> n0
    com.android.tools.r8.graph.DexString charArrayDescriptor -> N1
    com.android.tools.r8.graph.DexType throwableType -> X2
    com.android.tools.r8.graph.DexString methodDescriptor -> V0
    com.android.tools.r8.graph.DexString optionalDescriptor -> w1
    com.android.tools.r8.graph.DexString boxedIntDescriptor -> H
    com.android.tools.r8.graph.DexType collectionType -> P2
    1:41:void <clinit>():61:101 -> <clinit>
    1:1:void <init>():105:105 -> <init>
    2:366:void <init>():65:429 -> <init>
    367:415:void <init>():419:467 -> <init>
    416:432:void <init>():457:473 -> <init>
    433:451:void <init>():470:488 -> <init>
    452:472:void <init>():479:499 -> <init>
    473:505:void <init>():492:524 -> <init>
    506:510:void <init>():523:527 -> <init>
    511:514:void <init>():526:529 -> <init>
    515:552:void <init>():520:557 -> <init>
    553:555:void <init>():106:108 -> <init>
    556:556:void <init>():107:107 -> <init>
    com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame lambda$createSetInlineFrame$4(com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame) -> a
    1:1:com.android.tools.r8.graph.DexType access$1900(com.android.tools.r8.graph.DexItemFactory):61:61 -> a
    2:2:boolean isInternalSentinel(com.android.tools.r8.graph.DexItem):112:112 -> a
    3:4:com.android.tools.r8.graph.DexType getBoxedForPrimitiveType(com.android.tools.r8.graph.DexType):432:433 -> a
    5:7:com.android.tools.r8.graph.DexMethod lambda$boxedValueOfMethods$0(java.util.Map$Entry):445:447 -> a
    8:8:com.android.tools.r8.utils.Pair lambda$mapToPredicate$1(java.util.function.Predicate,com.android.tools.r8.graph.DexMethod):534:534 -> a
    9:9:java.util.stream.Stream mapToPredicate(java.util.Set,java.util.function.Predicate):534:534 -> a
    10:10:void setSkipNameValidationForTesting(boolean):560:560 -> a
    11:12:com.android.tools.r8.graph.DexItem canonicalize(java.util.Map,com.android.tools.r8.graph.DexItem):1176:1177 -> a
    13:13:boolean isInternalSentinel(com.android.tools.r8.graph.DexItem):112:112 -> a
    13:13:com.android.tools.r8.graph.DexItem canonicalize(java.util.Map,com.android.tools.r8.graph.DexItem):1177 -> a
    14:15:com.android.tools.r8.graph.DexItem canonicalize(java.util.Map,com.android.tools.r8.graph.DexItem):1177:1178 -> a
    16:17:com.android.tools.r8.graph.DexString createString(int,byte[]):1183:1184 -> a
    18:19:com.android.tools.r8.graph.DexString createString(java.lang.String):1188:1189 -> a
    20:20:com.android.tools.r8.dex.ClassesChecksum lambda$extractChecksum$3(com.android.tools.r8.dex.ClassesChecksum,com.android.tools.r8.dex.ClassesChecksum):1225:1225 -> a
    21:22:com.android.tools.r8.graph.DexType createArrayType(int,com.android.tools.r8.graph.DexType):1251:1252 -> a
    23:25: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):1256:1258 -> a
    26:26:com.android.tools.r8.graph.DexField createField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,java.lang.String):1262:1262 -> a
    27:29: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):1266:1268 -> a
    30:33:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType[]):1272:1275 -> a
    34:39:com.android.tools.r8.graph.DexString createShorty(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType[]):1341:1346 -> a
    34:39:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType[]):1276 -> a
    40:40:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType[]):1273:1273 -> a
    41:41:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,java.util.List):1280:1280 -> a
    42:45:com.android.tools.r8.graph.DexProto prependTypeToProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto):1290:1293 -> a
    46:48:com.android.tools.r8.graph.DexProto prependTypeToProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto):1292:1294 -> a
    49:53:com.android.tools.r8.graph.DexProto applyClassMappingToProto(com.android.tools.r8.graph.DexProto,java.util.function.Function,java.util.Map):1307:1311 -> a
    54:63:com.android.tools.r8.graph.DexType[] applyClassMappingToDexTypes(com.android.tools.r8.graph.DexType[],java.util.function.Function):1328:1337 -> a
    54:63:com.android.tools.r8.graph.DexProto applyClassMappingToProto(com.android.tools.r8.graph.DexProto,java.util.function.Function,java.util.Map):1311 -> a
    64:70:com.android.tools.r8.graph.DexProto applyClassMappingToProto(com.android.tools.r8.graph.DexProto,java.util.function.Function,java.util.Map):1312:1318 -> a
    71:75:com.android.tools.r8.graph.DexProto applyClassMappingToProto(com.android.tools.r8.graph.DexProto,java.util.function.Function,java.util.Map):1317:1321 -> a
    76:78: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):1350:1352 -> a
    79:79:com.android.tools.r8.graph.DexMethod createMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto,java.lang.String):1356:1356 -> a
    80:82:com.android.tools.r8.graph.DexMethodHandle createMethodHandle(com.android.tools.r8.graph.DexMethodHandle$MethodHandleType,com.android.tools.r8.graph.Descriptor,boolean):1363:1365 -> a
    83:84: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):1374:1375 -> a
    85:94: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[]):1383:1392 -> a
    95:97:com.android.tools.r8.graph.DexDebugEvent$AdvanceLine createAdvanceLine(int):1396:1398 -> a
    98:100:com.android.tools.r8.graph.DexDebugEvent$SetFile createSetFile(com.android.tools.r8.graph.DexString):1434:1436 -> a
    101:103:com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame createSetInlineFrame(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):1441:1443 -> a
    104:104:boolean isClassConstructor(com.android.tools.r8.graph.DexMethod):1451:1451 -> a
    105:107:void clearTypeLatticeElementsCache():1455:1457 -> a
    108:115: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):1484:1491 -> a
    116:144: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):1490:1518 -> a
    145:153:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement lambda$createReferenceTypeLatticeElement$5(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):1498:1506 -> a
    154:165:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement lambda$createReferenceTypeLatticeElement$5(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):1505:1516 -> a
    166:167:java.util.Set getOrComputeLeastUpperBoundOfImplementedInterfaces(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):1523:1524 -> a
    168:169:java.util.Set lambda$getOrComputeLeastUpperBoundOfImplementedInterfaces$6(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):1527:1528 -> a
    170:174:void assignSortedIndices(java.util.Collection,com.android.tools.r8.naming.NamingLens):1535:1539 -> a
    175:175:int lambda$assignSortedIndices$7(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.PresortedComparable,com.android.tools.r8.graph.PresortedComparable):1536:1536 -> a
    176:182:void sort(com.android.tools.r8.naming.NamingLens):1544:1550 -> a
    183:183:void forAllTypes(java.util.function.Consumer):1567:1567 -> a
    1:7:com.android.tools.r8.graph.DexType createType(com.android.tools.r8.graph.DexString):1229:1235 -> b
    8:10:com.android.tools.r8.graph.DexType createType(com.android.tools.r8.graph.DexString):1234:1236 -> b
    11:11:boolean isInternalSentinel(com.android.tools.r8.graph.DexItem):112:112 -> b
    11:11:com.android.tools.r8.graph.DexType createType(com.android.tools.r8.graph.DexString):1236 -> b
    12:13:com.android.tools.r8.graph.DexType createType(com.android.tools.r8.graph.DexString):1236:1237 -> b
    14:14:com.android.tools.r8.graph.DexType createType(java.lang.String):1243:1243 -> b
    15:17:com.android.tools.r8.graph.DexDebugEvent$AdvancePC createAdvancePC(int):1402:1404 -> b
    18:18:com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin createSetEpilogueBegin():1426:1426 -> b
    19:19:boolean isConstructor(com.android.tools.r8.graph.DexMethod):1447:1447 -> b
    1:1:boolean isLambdaMetafactoryMethod(com.android.tools.r8.graph.DexMethod):568:568 -> c
    2:2:com.android.tools.r8.graph.DexString lookupString(java.lang.String):1193:1193 -> c
    3:3:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexString):1247:1247 -> c
    4:6:com.android.tools.r8.graph.DexDebugEvent$Default createDefault(int):1408:1410 -> c
    7:7:com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd createSetPrologueEnd():1430:1430 -> c
    1:2:com.android.tools.r8.dex.ClassesChecksum extractChecksum():1224:1225 -> d
    3:3:com.android.tools.r8.dex.ClassesChecksum lambda$extractChecksum$2(com.android.tools.r8.graph.DexString):1224:1224 -> d
    4:6:com.android.tools.r8.graph.DexDebugEvent$EndLocal createEndLocal(int):1414:1416 -> d
    1:5:java.util.Collection extractMarker():1199:1203 -> e
    6:8:com.android.tools.r8.graph.DexDebugEvent$RestartLocal createRestartLocal(int):1420:1422 -> e
    1:5:java.util.List extractMarkers():1213:1217 -> f
    1:1:boolean getSkipNameValidationForTesting():564:564 -> g
    1:10:void resetSortedIndices():1554:1563 -> h
    1:3:boolean verifyNoCachedTypeLatticeElements():1461:1463 -> i
    1:12:java.util.Set boxedValueOfMethods():442:453 -> j
com.android.tools.r8.graph.DexItemFactory$1 -> com.android.tools.r8.graph.V$a:
com.android.tools.r8.graph.DexItemFactory$AssertionErrorMethods -> com.android.tools.r8.graph.V$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):618:618 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.DexItemFactory):622:627 -> <init>
com.android.tools.r8.graph.DexItemFactory$AtomicFieldUpdaterMethods -> com.android.tools.r8.graph.V$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):850:850 -> <init>
    2:21:void <init>(com.android.tools.r8.graph.DexItemFactory):856:875 -> <init>
    1:1:boolean isFieldUpdater(com.android.tools.r8.graph.DexMethod):879:879 -> a
com.android.tools.r8.graph.DexItemFactory$ClassMethods -> com.android.tools.r8.graph.V$d:
    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):661:661 -> <init>
    2:41:void <init>(com.android.tools.r8.graph.DexItemFactory):679:718 -> <init>
    1:1:java.util.Set access$1700(com.android.tools.r8.graph.DexItemFactory$ClassMethods):661:661 -> a
    2:2:boolean isReflectiveClassLookup(com.android.tools.r8.graph.DexMethod):722:722 -> a
    1:1:boolean isReflectiveMemberLookup(com.android.tools.r8.graph.DexMethod):726:726 -> b
    1:1:boolean isReflectiveNameLookup(com.android.tools.r8.graph.DexMethod):730:730 -> c
com.android.tools.r8.graph.DexItemFactory$ConstructorMethods -> com.android.tools.r8.graph.V$e:
    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):734:734 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexItemFactory):738:740 -> <init>
com.android.tools.r8.graph.DexItemFactory$EnumMethods -> com.android.tools.r8.graph.V$f:
    com.android.tools.r8.graph.DexItemFactory this$0 -> f
    com.android.tools.r8.graph.DexMethod finalize -> 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 <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):748:748 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexItemFactory):758:758 -> <init>
    3:26:void <init>(com.android.tools.r8.graph.DexItemFactory):755:778 -> <init>
com.android.tools.r8.graph.DexItemFactory$JavaUtilArraysMethods -> com.android.tools.r8.graph.V$g:
    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):581:581 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.DexItemFactory):585:589 -> <init>
    7:7:void <init>(com.android.tools.r8.graph.DexItemFactory):587:587 -> <init>
com.android.tools.r8.graph.DexItemFactory$LongMethods -> com.android.tools.r8.graph.V$h:
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):571:571 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexItemFactory):575:577 -> <init>
    5:5:void <init>(com.android.tools.r8.graph.DexItemFactory):576:576 -> <init>
com.android.tools.r8.graph.DexItemFactory$NullPointerExceptionMethods -> com.android.tools.r8.graph.V$i:
    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):786:786 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexItemFactory):790:792 -> <init>
com.android.tools.r8.graph.DexItemFactory$ObjectMethods -> com.android.tools.r8.graph.V$j:
    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):632:632 -> <init>
    2:9:void <init>(com.android.tools.r8.graph.DexItemFactory):639:646 -> <init>
com.android.tools.r8.graph.DexItemFactory$ObjectsMethods -> com.android.tools.r8.graph.V$k:
    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):651:651 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexItemFactory):655:657 -> <init>
    5:5:void <init>(com.android.tools.r8.graph.DexItemFactory):656:656 -> <init>
com.android.tools.r8.graph.DexItemFactory$PolymorphicMethods -> com.android.tools.r8.graph.V$l:
    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):1064:1099 -> <init>
    1:11:com.android.tools.r8.graph.DexMethod canonicalize(com.android.tools.r8.graph.DexMethod):1107:1117 -> a
    12:17:java.util.Set createStrings(java.lang.String[]):1124:1129 -> a
com.android.tools.r8.graph.DexItemFactory$PrimitiveTypesBoxedTypeFields -> com.android.tools.r8.graph.V$m:
    com.android.tools.r8.graph.DexField longTYPE -> f
    com.android.tools.r8.graph.DexField intTYPE -> e
    com.android.tools.r8.graph.DexField doubleTYPE -> h
    com.android.tools.r8.graph.DexField floatTYPE -> g
    com.android.tools.r8.graph.DexField byteTYPE -> b
    java.util.Map boxedFieldTypeToPrimitiveType -> i
    com.android.tools.r8.graph.DexField booleanTYPE -> a
    com.android.tools.r8.graph.DexField shortTYPE -> d
    com.android.tools.r8.graph.DexField charTYPE -> c
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):806:806 -> <init>
    2:22:void <init>(com.android.tools.r8.graph.DexItemFactory):818:838 -> <init>
    1:1:com.android.tools.r8.graph.DexType boxedFieldTypeToPrimitiveType(com.android.tools.r8.graph.DexField):842:842 -> a
com.android.tools.r8.graph.DexItemFactory$ProxyMethods -> com.android.tools.r8.graph.V$n:
    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):1133:1133 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.DexItemFactory):1137:1142 -> <init>
    8:8:void <init>(com.android.tools.r8.graph.DexItemFactory):1139:1139 -> <init>
com.android.tools.r8.graph.DexItemFactory$ServiceLoaderMethods -> com.android.tools.r8.graph.V$o:
    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):1146:1146 -> <init>
    2:8:void <init>(com.android.tools.r8.graph.DexItemFactory):1153:1159 -> <init>
    9:17:void <init>(com.android.tools.r8.graph.DexItemFactory):1157:1165 -> <init>
    18:23:void <init>(com.android.tools.r8.graph.DexItemFactory):1162:1167 -> <init>
    1:1:boolean isLoadMethod(com.android.tools.r8.graph.DexMethod):1171:1171 -> a
com.android.tools.r8.graph.DexItemFactory$StringBuildingMethods -> com.android.tools.r8.graph.V$p:
    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>():956:956 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory$1):956:956 -> <init>
    2:46:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):980:1024 -> <init>
    1:1:java.util.Set access$1600(com.android.tools.r8.graph.DexItemFactory$StringBuildingMethods):956:956 -> a
    2:2:boolean isAppendMethod(com.android.tools.r8.graph.DexMethod):1029:1029 -> a
    3:29:boolean constructorInvokeIsSideEffectFree(com.android.tools.r8.ir.code.InvokeMethod):1033:1059 -> a
    1:1:java.util.Set access$1800(com.android.tools.r8.graph.DexItemFactory$StringBuildingMethods):956:956 -> b
com.android.tools.r8.graph.DexItemFactory$StringMethods -> com.android.tools.r8.graph.V$q:
    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):883:883 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexItemFactory):908:908 -> <init>
    3:48:void <init>(com.android.tools.r8.graph.DexItemFactory):906:951 -> <init>
com.android.tools.r8.graph.DexItemFactory$ThrowableMethods -> com.android.tools.r8.graph.V$r:
    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):595:595 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexItemFactory):602:604 -> <init>
    5:8:void <init>(com.android.tools.r8.graph.DexItemFactory):603:606 -> <init>
    9:16:void <init>(com.android.tools.r8.graph.DexItemFactory):605:612 -> <init>
    17:17:void <init>(com.android.tools.r8.graph.DexItemFactory):610:610 -> <init>
com.android.tools.r8.graph.DexLibraryClass -> com.android.tools.r8.graph.W:
    boolean $assertionsDisabled -> s
    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() -> C
    boolean isLibraryClass() -> R
    boolean isNotProgramClass() -> W
    1:1:boolean verifyLibraryField(com.android.tools.r8.graph.DexEncodedField):74:74 -> a
    2:2:boolean com.android.tools.r8.graph.DexEncodedField.isPrivate():118:118 -> a
    2:2:boolean verifyLibraryField(com.android.tools.r8.graph.DexEncodedField):74 -> a
    3:4:boolean verifyLibraryField(com.android.tools.r8.graph.DexEncodedField):74:75 -> a
    5:5:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():114:114 -> a
    5:5:boolean verifyLibraryField(com.android.tools.r8.graph.DexEncodedField):75 -> a
    6:6:boolean verifyLibraryField(com.android.tools.r8.graph.DexEncodedField):75:75 -> a
    7:7:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):98:98 -> a
    1:3:boolean verifyLibraryMethod(com.android.tools.r8.graph.DexEncodedMethod):67:69 -> c
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):82:82 -> collectIndexedItems
    com.android.tools.r8.graph.DexLibraryClass asLibraryClass() -> p
    1:1:java.lang.String toSourceString():92:92 -> toSourceString
    1:1:java.lang.String toString():87:87 -> toString
com.android.tools.r8.graph.DexMemberAnnotation -> com.android.tools.r8.graph.X:
    com.android.tools.r8.graph.Descriptor item -> a
    com.android.tools.r8.graph.DexItem annotations -> b
    1:3:void <init>(com.android.tools.r8.graph.Descriptor,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.X$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.X$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.X$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.Y:
    com.android.tools.r8.graph.DexProto proto -> d
    com.android.tools.r8.graph.DexString name -> e
    com.android.tools.r8.graph.DexType holder -> c
    boolean $assertionsDisabled -> g
    java.util.Map singleTargetCache -> f
    1:1:void <clinit>():12:12 -> <clinit>
    1:7:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexString,boolean):22:28 -> <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.DexItem):12:12 -> a
    3:3:boolean match(com.android.tools.r8.graph.DexEncodedMethod):157:157 -> a
    3:3:boolean match(com.android.tools.r8.graph.DexItem):12 -> a
    4:4:int slowCompareTo(java.lang.Object):12:12 -> a
    5:5:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):67:67 -> a
    6:6:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):139:139 -> a
    7:7:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):160:160 -> a
    7:7:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):139 -> a
    8:8:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):143:143 -> a
    9:9:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):241:241 -> a
    9:9:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):143 -> a
    10:10:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):147:147 -> a
    11:11:int com.android.tools.r8.graph.DexProto.compareTo(com.android.tools.r8.graph.DexProto):63:63 -> a
    11:11:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):147 -> a
    12:12:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):241:241 -> a
    12:12:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):143 -> a
    13:13:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):160:160 -> a
    13:13:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):139 -> a
    14:14:boolean match(com.android.tools.r8.graph.DexMethod):152:152 -> a
    15:26:java.lang.String toSourceString(boolean):179:190 -> a
    27:27:void setSingleVirtualMethodCache(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):200:200 -> a
    28:28:java.util.IdentityHashMap com.android.tools.r8.com.google.common.collect.Maps.newIdentityHashMap():511:511 -> a
    28:28:void setSingleVirtualMethodCache(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):201 -> a
    29:31:void setSingleVirtualMethodCache(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):201:203 -> a
    32:32:com.android.tools.r8.graph.DexEncodedMethod getSingleVirtualMethodCache(com.android.tools.r8.graph.DexType):211:211 -> a
    33:33:boolean isSingleVirtualMethodCached(com.android.tools.r8.graph.DexType):207:207 -> a
    33:33:com.android.tools.r8.graph.DexEncodedMethod getSingleVirtualMethodCache(com.android.tools.r8.graph.DexType):211 -> a
    34:35:com.android.tools.r8.graph.DexEncodedMethod getSingleVirtualMethodCache(com.android.tools.r8.graph.DexType):211:212 -> a
    1:9:int slowCompareTo(com.android.tools.r8.graph.DexMethod):113:121 -> b
    10:10:boolean isSingleVirtualMethodCached(com.android.tools.r8.graph.DexType):207:207 -> b
    1:3:boolean collectIndexedItemsExceptName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):52:54 -> collectIndexedItems
    1:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):45 -> collectIndexedItems
    4:4:void collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):62:62 -> collectIndexedItems
    4:4:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):46 -> collectIndexedItems
    5:5:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):231:231 -> collectIndexedItems
    5:5:void collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):62 -> collectIndexedItems
    5:5:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):46 -> collectIndexedItems
    1:1:int compareTo(java.lang.Object):12:12 -> compareTo
    2:2:int compareTo(com.android.tools.r8.graph.DexMethod):108:108 -> compareTo
    2:2:int compareTo(java.lang.Object):12 -> compareTo
    1:5:boolean computeEquals(java.lang.Object):89:93 -> computeEquals
    1:3:int computeHashCode():82:84 -> computeHashCode
    com.android.tools.r8.graph.DexMethod asDexMethod() -> i
    boolean isDexMethod() -> l
    1:1:int getArity():39:39 -> n
    1:1:java.lang.String qualifiedName():161:161 -> o
    1:1:java.lang.String toSourceStringWithoutHolder():175:175 -> p
    1:1:java.lang.String toSmaliString():166:166 -> toSmaliString
    1:1:java.lang.String toSourceString():171:171 -> toSourceString
    1:1:java.lang.String toString():35:35 -> toString
com.android.tools.r8.graph.DexMethodHandle -> com.android.tools.r8.graph.Z:
    com.android.tools.r8.graph.Descriptor fieldOrMethod -> d
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType type -> c
    boolean isInterface -> e
    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.Descriptor,boolean):208:212 -> <init>
    6:10:void <init>(com.android.tools.r8.graph.DexMethodHandle$MethodHandleType,com.android.tools.r8.graph.Descriptor,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.Descriptor,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:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):266:271 -> collectIndexedItems
    7:9:boolean com.android.tools.r8.graph.DexMethod.collectIndexedItemsExceptName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):52:54 -> collectIndexedItems
    7:9:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):271 -> collectIndexedItems
    10:10:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):273:273 -> collectIndexedItems
    11:11:void com.android.tools.r8.graph.DexMethod.collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):62:62 -> collectIndexedItems
    11:11:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):273 -> collectIndexedItems
    12:12:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):231:231 -> collectIndexedItems
    12:12:void com.android.tools.r8.graph.DexMethod.collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):62 -> collectIndexedItems
    12:12:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):273 -> collectIndexedItems
    13:13:void com.android.tools.r8.graph.DexMethod.collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):62:62 -> collectIndexedItems
    13:13:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):273 -> collectIndexedItems
    14:14:boolean com.android.tools.r8.graph.DexMethod.collectIndexedItemsExceptName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):52:52 -> collectIndexedItems
    14:14:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):271 -> collectIndexedItems
    15:15: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.DexField asField():310:310 -> h
    2:2:boolean isFieldHandle():293:293 -> h
    2:2:com.android.tools.r8.graph.DexField asField():310 -> h
    3:4:com.android.tools.r8.graph.DexField asField():310:311 -> h
    1:1:com.android.tools.r8.graph.DexMethod asMethod():305:305 -> i
    2:2:boolean isMethodHandle():297:297 -> i
    2:2:com.android.tools.r8.graph.DexMethod asMethod():305 -> i
    3:4:com.android.tools.r8.graph.DexMethod asMethod():305:306 -> i
    1:1:boolean isStaticHandle():301:301 -> j
    2:2:boolean com.android.tools.r8.graph.DexMethodHandle$MethodHandleType.isStaticPut():126:126 -> j
    2:2:boolean isStaticHandle():301 -> j
    3:3:boolean isStaticHandle():301:301 -> j
    4:4:boolean com.android.tools.r8.graph.DexMethodHandle$MethodHandleType.isStaticGet():130:130 -> j
    4:4:boolean isStaticHandle():301 -> j
    5:5:boolean isStaticHandle():301:301 -> j
    6:6:boolean com.android.tools.r8.graph.DexMethodHandle$MethodHandleType.isStaticGet():130:130 -> j
    6:6:boolean isStaticHandle():301 -> j
    7:7:boolean com.android.tools.r8.graph.DexMethodHandle$MethodHandleType.isStaticPut():126:126 -> j
    7:7:boolean isStaticHandle():301 -> j
    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.Z$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:12:void <clinit>():18:29 -> <clinit>
    13: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.a0:
    java.util.Collection synthesizedFrom -> u
    com.android.tools.r8.kotlin.KotlinInfo kotlinInfo -> w
    com.android.tools.r8.graph.DexEncodedArray staticValues -> t
    com.android.tools.r8.graph.DexProgramClass[] EMPTY_ARRAY -> x
    boolean $assertionsDisabled -> z
    com.android.tools.r8.graph.DexEncodedArray SENTINEL_NOT_YET_COMPUTED -> y
    com.android.tools.r8.ProgramResource$Kind originKind -> s
    int initialClassFileVersion -> v
    1:4:void <clinit>():22:25 -> <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):70:70 -> <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):52:52 -> <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,java.util.Collection):92:92 -> <init>
    4:87: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,java.util.Collection):29:112 -> <init>
    1:1:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo():234:234 -> C
    boolean isNotProgramClass() -> W
    boolean isProgramClass() -> X
    1:5:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):177:181 -> a
    6:9:void sortMembers():364:367 -> a
    6:9:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):185 -> a
    10:18:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):186:194 -> a
    19:19:void com.android.tools.r8.graph.DexTypeList.collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):46:46 -> a
    19:19:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):195 -> a
    20:20:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):197:197 -> a
    21:22:void setKotlinInfo(com.android.tools.r8.kotlin.KotlinInfo):238:239 -> a
    23:26:void addSynthesizedFrom(com.android.tools.r8.graph.DexProgramClass):282:285 -> a
    27:31:boolean isSorted(com.android.tools.r8.graph.KeyedDexItem[]):323:327 -> a
    32:32:com.android.tools.r8.graph.DexField lambda$sortEncodedFields$0(com.android.tools.r8.graph.DexEncodedField):372:372 -> a
    33:56:boolean hasReachabilitySensitiveAnnotation(com.android.tools.r8.graph.DexItemFactory):410:433 -> a
    57:57:java.lang.Iterable asProgramClasses(java.lang.Iterable,com.android.tools.r8.graph.DexDefinitionSupplier):443:443 -> a
    1:3:void synchronizedCollectAll(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexItem[]):157:159 -> b
    4:6:void synchronizedCollectAll(com.android.tools.r8.dex.MixedSectionCollection,com.android.tools.r8.graph.DexItem[]):202:204 -> b
    7:7:java.util.Iterator lambda$asProgramClasses$2(java.lang.Iterable,com.android.tools.r8.graph.DexDefinitionSupplier):444:444 -> b
    1:3:boolean hasAnnotations(com.android.tools.r8.graph.DexEncodedField[]):270:272 -> c
    4:6:boolean hasAnnotations(com.android.tools.r8.graph.DexEncodedMethod[]):276:278 -> c
    7:7:void addDirectMethod(com.android.tools.r8.graph.DexEncodedMethod):357:357 -> c
    8:8:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():170:170 -> c
    8:8:void addDirectMethod(com.android.tools.r8.graph.DexEncodedMethod):358 -> c
    9:12:void addDirectMethod(com.android.tools.r8.graph.DexEncodedMethod):357:360 -> c
    1:12:void computeStaticValues():291:302 -> c0
    13:13:boolean com.android.tools.r8.graph.DexValue.isDefault(com.android.tools.r8.graph.DexType):166:166 -> c0
    13:13:void computeStaticValues():302 -> c0
    14:16:void computeStaticValues():308:310 -> c0
    1:8:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):126:133 -> collectIndexedItems
    9:9:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):231:231 -> collectIndexedItems
    9:9:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):134 -> collectIndexedItems
    10:10:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):136:136 -> collectIndexedItems
    11:11:void com.android.tools.r8.graph.DexAnnotationSet.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):70:70 -> collectIndexedItems
    11:11:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):137 -> collectIndexedItems
    12:24:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):139:151 -> collectIndexedItems
    1:4:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):168:171 -> collectMixedSectionItems
    1:2:void addMethod(com.android.tools.r8.graph.DexEncodedMethod):339:340 -> d
    3:3:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():170:170 -> d
    3:3:void addMethod(com.android.tools.r8.graph.DexEncodedMethod):341 -> d
    4:6:void addVirtualMethod(com.android.tools.r8.graph.DexEncodedMethod):349:351 -> d
    4:6:void addMethod(com.android.tools.r8.graph.DexEncodedMethod):344 -> d
    7:7:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():170:170 -> d
    7:7:void addVirtualMethod(com.android.tools.r8.graph.DexEncodedMethod):351 -> d
    7:7:void addMethod(com.android.tools.r8.graph.DexEncodedMethod):344 -> d
    8:10:void addVirtualMethod(com.android.tools.r8.graph.DexEncodedMethod):351:353 -> d
    8:10:void addMethod(com.android.tools.r8.graph.DexEncodedMethod):344 -> d
    11:11:void addMethod(com.android.tools.r8.graph.DexEncodedMethod):342:342 -> d
    12:14:void sortEncodedFields(com.android.tools.r8.graph.DexEncodedField[]):371:373 -> d
    15:17:void sortEncodedMethods(com.android.tools.r8.graph.DexEncodedMethod[]):377:379 -> d
    18:19:void setInitialClassFileVersion(int):388:389 -> d
    1:2:int getInitialClassFileVersion():397:398 -> d0
    1:1:com.android.tools.r8.graph.DexMethod lambda$sortEncodedMethods$1(com.android.tools.r8.graph.DexEncodedMethod):378:378 -> e
    1:2:com.android.tools.r8.graph.DexEncodedArray getStaticValues():331:332 -> e0
    1:1:java.util.Collection getSynthesizedFrom():163:163 -> f0
    1:5:boolean hasAnnotations():255:259 -> g0
    1:1:boolean hasClassFileVersion():393:393 -> h0
    1:1:boolean hasMethods():247:247 -> i0
    1:1:boolean hasMethods():247:247 -> j0
    1:1:boolean hasMethodsOrFields():251 -> j0
    2:2:boolean hasFields():243:243 -> j0
    2:2:boolean hasMethodsOrFields():251 -> j0
    1:4:boolean hasOnlyInternalizableAnnotations():263:266 -> k0
    1:4:boolean isSorted():315:318 -> l0
    1:1:boolean originatesFromClassResource():120:120 -> m0
    1:1:boolean originatesFromDexResource():116:116 -> n0
    com.android.tools.r8.graph.DexProgramClass asProgramClass() -> q
    1:1:java.lang.String toSourceString():214:214 -> toSourceString
    1:1:java.lang.String toString():209:209 -> toString
com.android.tools.r8.graph.DexProgramClass$1 -> com.android.tools.r8.graph.a0$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):444:448 -> <init>
    1:5:com.android.tools.r8.graph.DexProgramClass findNext():463:467 -> f
    1:1:boolean hasNext():452:452 -> hasNext
    1:2:com.android.tools.r8.graph.DexProgramClass next():457:458 -> next
    1:2:java.lang.Object next():444 -> next
com.android.tools.r8.graph.DexProto -> com.android.tools.r8.graph.b0:
    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 layeredCompareTo(com.android.tools.r8.graph.DexProto,com.android.tools.r8.naming.NamingLens):86:86 -> a
    2:2:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):9 -> a
    3:3:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):160:160 -> a
    3:3:int layeredCompareTo(com.android.tools.r8.graph.DexProto,com.android.tools.r8.naming.NamingLens):86 -> a
    3:3:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):9 -> a
    4:4:int layeredCompareTo(com.android.tools.r8.graph.DexProto,com.android.tools.r8.naming.NamingLens):88:88 -> a
    4:4:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):9 -> a
    5:5:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):160:160 -> a
    5:5:int layeredCompareTo(com.android.tools.r8.graph.DexProto,com.android.tools.r8.naming.NamingLens):86 -> a
    5:5:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):9 -> a
    6:6:int slowCompareTo(java.lang.Object):9:9 -> a
    7:7:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):58:58 -> a
    8:10:int slowCompareTo(com.android.tools.r8.graph.DexProto):68:70 -> a
    11:23:int com.android.tools.r8.graph.DexTypeList.slowCompareTo(com.android.tools.r8.graph.DexTypeList):96:108 -> a
    11:23:int slowCompareTo(com.android.tools.r8.graph.DexProto):70 -> a
    24:31:java.lang.String toDescriptorString(com.android.tools.r8.naming.NamingLens):103:110 -> a
    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):49:50 -> collectIndexedItems
    3:3:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):231:231 -> collectIndexedItems
    3:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):50 -> collectIndexedItems
    4:5:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):51:52 -> collectIndexedItems
    6:6:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):231:231 -> collectIndexedItems
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):50 -> 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:2:int computeHashCode():25:26 -> computeHashCode
    3:3:int com.android.tools.r8.graph.DexTypeList.hashCode():33:33 -> computeHashCode
    3:3:int computeHashCode():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.c0:
    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):59:59 -> a
    1:1:java.util.stream.Stream filterDexType(java.util.stream.Stream):86:86 -> b
    2:2:java.util.stream.Stream filter(java.util.stream.Stream,java.util.function.Predicate,java.util.function.Function):82:82 -> b
    2:2:java.util.stream.Stream filterDexType(java.util.stream.Stream):86 -> b
    com.android.tools.r8.graph.DexField asDexField() -> h
    com.android.tools.r8.graph.DexMethod asDexMethod() -> i
    com.android.tools.r8.graph.DexType asDexType() -> j
    boolean isDexField() -> k
    boolean isDexMethod() -> l
    boolean isDexType() -> m
com.android.tools.r8.graph.DexString -> com.android.tools.r8.graph.d0:
    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 layeredCompareTo(com.android.tools.r8.graph.DexString,com.android.tools.r8.naming.NamingLens):286:286 -> a
    2:2:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):17 -> a
    3:3:int slowCompareTo(java.lang.Object):17:17 -> a
    4:6:int countBytes(java.lang.String):186:188 -> a
    4:6:byte[] encodeToMutf8(java.lang.String):205 -> a
    7:12:byte[] encodeToMutf8(java.lang.String):205:210 -> a
    13:20:int encodeToMutf8(char,byte[],int):216:223 -> a
    21:21:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):236:236 -> a
    22:29:boolean isValidSimpleName(int,java.lang.String):380:387 -> a
    30:34:boolean endsWith(com.android.tools.r8.graph.DexString):432:436 -> a
    1:13:int slowCompareTo(com.android.tools.r8.graph.DexString):254:266 -> b
    1:5:boolean startsWith(com.android.tools.r8.graph.DexString):420:424 -> c
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):231:231 -> collectIndexedItems
    1:1:int compareTo(java.lang.Object):17:17 -> compareTo
    2:2:int compareTo(com.android.tools.r8.graph.DexString):241:241 -> 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:3:boolean isValidSimpleName(int):395:397 -> d
    1:32:int decodedHashCode():147:178 -> h
    33:46:int decodedHashCode():161:174 -> h
    1:11:java.lang.String dump():406:416 -> i
    1:1:com.android.tools.r8.utils.ThrowingCharIterator iterator():36:36 -> iterator
    1:1:boolean isValidClassDescriptor():372:372 -> j
    2:13:boolean isValidClassDescriptor(java.lang.String):290:301 -> j
    2:13:boolean isValidClassDescriptor():372 -> j
    14:14:boolean isValidClassDescriptor(java.lang.String):299:299 -> j
    14:14:boolean isValidClassDescriptor():372 -> j
    1:1:boolean isValidFieldName():364:364 -> k
    2:18:boolean isValidFieldName(java.lang.String):331:347 -> k
    2:18:boolean isValidFieldName():364 -> k
    19:19:boolean isValidFieldName(java.lang.String):345:345 -> k
    19:19:boolean isValidFieldName():364 -> k
    1:1:boolean isValidMethodName():356:356 -> l
    2:16:boolean isValidMethodName(java.lang.String):309:323 -> l
    2:16:boolean isValidMethodName():356 -> l
    17:17:boolean isValidMethodName(java.lang.String):321:321 -> l
    17:17:boolean isValidMethodName():356 -> l
    1:3:java.lang.String toASCIIString():100:102 -> m
    1:15:java.lang.String decode():118:132 -> n
    16:25:java.lang.String decode():130:139 -> n
    26:30:java.lang.String decode():137:141 -> n
    1:3:java.lang.String toString():92:94 -> toString
com.android.tools.r8.graph.DexString$1 -> com.android.tools.r8.graph.d0$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.e0:
    com.android.tools.r8.graph.DexString descriptor -> c
    boolean $assertionsDisabled -> f
    com.android.tools.r8.graph.DexType[] EMPTY_ARRAY -> e
    java.lang.String toStringCache -> d
    1:2:void <clinit>():30:31 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexString):36:36 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.DexString):34:38 -> <init>
    1:4:boolean isPrimitiveArrayType():244:247 -> A
    1:1:boolean isPrimitiveType():183:183 -> B
    1:2:boolean isReferenceType():238:239 -> C
    1:1:boolean isVoidType():192:192 -> D
    1:1:java.lang.String toDescriptorString():89:89 -> E
    1:1:char toShorty():114:114 -> F
    boolean isPrimitiveType(char) -> a
    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):30:30 -> a
    2:3:int layeredCompareTo(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.NamingLens):177:178 -> a
    2:3:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):30 -> a
    4:4:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):241:241 -> a
    4:4:int layeredCompareTo(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.NamingLens):179 -> a
    4:4:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):30 -> a
    5:5:int slowCompareTo(java.lang.Object):30:30 -> a
    6:6:boolean isAlwaysNull(com.android.tools.r8.graph.AppView):75:75 -> a
    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    7:7:boolean isAlwaysNull(com.android.tools.r8.graph.AppView):76 -> a
    8:9:boolean isAlwaysNull(com.android.tools.r8.graph.AppView):78:79 -> a
    10:10:boolean isSamePackage(com.android.tools.r8.graph.DexType):85:85 -> a
    11:11:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):145:145 -> a
    12:12:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    12:12:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView,java.util.function.Predicate):60 -> a
    13:13:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView,java.util.function.Predicate):61:61 -> a
    14:23:com.android.tools.r8.graph.DexType replaceBaseType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):319:328 -> a
    24:26:com.android.tools.r8.graph.DexType toArrayElementType(com.android.tools.r8.graph.DexItemFactory):332:334 -> a
    27:29:com.android.tools.r8.graph.DexType toArrayElementType(com.android.tools.r8.graph.DexItemFactory):333:335 -> a
    30:37:java.lang.String getPackageOrName(boolean):339:346 -> a
    1:1:int slowCompareTo(com.android.tools.r8.graph.DexType):165:165 -> b
    2:7:com.android.tools.r8.graph.DexType toBaseType(com.android.tools.r8.graph.DexItemFactory):309:314 -> b
    8:10:com.android.tools.r8.graph.DexType toBaseType(com.android.tools.r8.graph.DexItemFactory):313:315 -> b
    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):131:132 -> collectIndexedItems
    3:3:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):231:231 -> collectIndexedItems
    3:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):132 -> collectIndexedItems
    1:1:int compareTo(java.lang.Object):30:30 -> compareTo
    2:2:int compareTo(com.android.tools.r8.graph.DexType):160:160 -> compareTo
    2:2:int compareTo(java.lang.Object):30 -> compareTo
    1:2:boolean computeEquals(java.lang.Object):48:49 -> computeEquals
    1:1:int computeHashCode():43:43 -> computeHashCode
    1:2:void flushCachedValues():139:140 -> flushCachedValues
    com.android.tools.r8.graph.DexType asDexType() -> j
    boolean isDexType() -> m
    1:16:int elementSizeForPrimitiveArrayType():281:296 -> n
    1:2:java.lang.String getInternalName():363:364 -> o
    1:4:java.lang.String getName():355:358 -> p
    1:1:int getNumberOfLeadingSquareBrackets():302:302 -> q
    1:1:java.lang.String getPackageDescriptor():351:351 -> r
    1:4:java.lang.String toBinaryName():93:96 -> s
    1:4:java.lang.String getPackageName():368 -> s
    5:8:java.lang.String toBinaryName():94:97 -> s
    5:8:java.lang.String getPackageName():368 -> s
    9:9:java.lang.String getPackageName():368:368 -> s
    1:1:boolean isArrayType():228:228 -> t
    1:1:java.lang.String toSmaliString():120:120 -> toSmaliString
    1:9:java.lang.String toSourceString():102:110 -> toSourceString
    1:1:java.lang.String toString():125:125 -> toString
    1:1:boolean isBooleanType():196:196 -> u
    1:1:boolean isClassType():233:233 -> v
    1:13:boolean isD8R8SynthesizedClassType():255:267 -> w
    1:1:boolean isDoubleType():224:224 -> x
    1:1:boolean isIntType():212:212 -> y
    1:1:boolean isLongType():220:220 -> z
com.android.tools.r8.graph.DexTypeList -> com.android.tools.r8.graph.f0:
    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:7:int compareTo(com.android.tools.r8.graph.DexTypeList):80:86 -> a
    8:8:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):160:160 -> a
    8:8:int compareTo(com.android.tools.r8.graph.DexTypeList):86 -> a
    9:9:int compareTo(com.android.tools.r8.graph.DexTypeList):92:92 -> a
    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):39: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:boolean isEmpty():59:59 -> f
    1:1:int size():63:63 -> g
    1:1:com.android.tools.r8.graph.DexTypeList empty():19:19 -> h
    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.DexValue:
    com.android.tools.r8.graph.DexValue$UnknownDexValue UNKNOWN -> b
    com.android.tools.r8.graph.DexValue[] EMPTY_ARRAY -> a
    1:3:void <clinit>():28:30 -> <clinit>
    1:1:void <init>():27:27 -> <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
    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):77:98 -> 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):92:105 -> a
    37:57:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):133:153 -> a
    58:74:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):135:151 -> a
    75:75:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):145:145 -> a
    76:82:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):143:149 -> a
    83:83:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):139:139 -> a
    84:84:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):137:137 -> a
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):116:116 -> collectMixedSectionItems
    java.lang.Object asAsmEncodedObject() -> f
    com.android.tools.r8.graph.DexValue$DexValueArray asDexValueArray() -> g
    com.android.tools.r8.graph.DexValue$DexValueMethodHandle asDexValueMethodHandle() -> h
    com.android.tools.r8.graph.DexValue$DexValueMethodType asDexValueMethodType() -> i
    com.android.tools.r8.graph.DexValue$DexValueType asDexValueType() -> j
    java.lang.Object getBoxedValue() -> k
    boolean isDexValueArray() -> l
    boolean isDexValueType() -> m
    boolean mayHaveSideEffects() -> n
    void sort() -> o
com.android.tools.r8.graph.DexValue$1 -> com.android.tools.r8.graph.DexValue$a:
com.android.tools.r8.graph.DexValue$DexItemBasedValueString -> com.android.tools.r8.graph.DexValue$b:
    com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo nameComputationInfo -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():792:792 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):797:798 -> <init>
    1: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):818:825 -> a
    9:9:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):833:833 -> 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):725:725 -> collectIndexedItems
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):792 -> collectIndexedItems
    1:1:boolean equals(java.lang.Object):792:792 -> equals
    1:1:java.lang.Object asAsmEncodedObject():807:807 -> f
    1:1:int hashCode():792:792 -> hashCode
    1:1:java.lang.Object getBoxedValue():792:792 -> k
    void sort() -> o
    byte getValueKind() -> p
    1:1:com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo getNameComputationInfo():802:802 -> q
    1:1:java.lang.String toString():792:792 -> toString
com.android.tools.r8.graph.DexValue$DexValueAnnotation -> com.android.tools.r8.graph.DexValue$c:
    com.android.tools.r8.graph.DexEncodedAnnotation value -> c
    1:2:void <init>(com.android.tools.r8.graph.DexEncodedAnnotation):1024:1025 -> <init>
    1:1:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):110:110 -> 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):1036 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1037:1037 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):1031:1031 -> collectIndexedItems
    2:3:void com.android.tools.r8.graph.DexEncodedAnnotation.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):29:30 -> collectIndexedItems
    2:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):1031 -> collectIndexedItems
    1:3:boolean equals(java.lang.Object):1065:1067 -> equals
    1:1:java.lang.Object asAsmEncodedObject():1047:1047 -> f
    1:1:int hashCode():1057:1057 -> hashCode
    1:1:java.lang.Object getBoxedValue():1042:1042 -> k
    1:1:void sort():1052:1052 -> o
    1:1:java.lang.String toString():1074:1074 -> toString
com.android.tools.r8.graph.DexValue$DexValueArray -> com.android.tools.r8.graph.DexValue$d:
    com.android.tools.r8.graph.DexValue[] values -> c
    1:2:void <init>(com.android.tools.r8.graph.DexValue[]):947:948 -> <init>
    1:1:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):110:110 -> 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):963 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):964:964 -> 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):964 -> a
    4:5:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):965:966 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):958:958 -> collectIndexedItems
    1:3:boolean equals(java.lang.Object):997:999 -> equals
    1:1:java.lang.Object asAsmEncodedObject():977:977 -> f
    com.android.tools.r8.graph.DexValue$DexValueArray asDexValueArray() -> g
    1:1:int hashCode():989:989 -> hashCode
    1:1:java.lang.Object getBoxedValue():972:972 -> k
    boolean isDexValueArray() -> l
    1:2:void sort():982:983 -> o
    1:1:com.android.tools.r8.graph.DexValue[] getValues():952:952 -> p
    1:1:java.lang.String toString():1006:1006 -> toString
com.android.tools.r8.graph.DexValue$DexValueBoolean -> com.android.tools.r8.graph.DexValue$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>():1132:1135 -> <clinit>
    1:2:void <init>(boolean):1139:1140 -> <init>
    1:1:com.android.tools.r8.graph.DexValue$DexValueBoolean create(boolean):1144:1144 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1158:1158 -> a
    3:3:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):110:110 -> 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):1158 -> 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):1187:1187 -> a
    1:1:boolean equals(java.lang.Object):1176:1176 -> equals
    1:1:java.lang.Object asAsmEncodedObject():1163:1163 -> f
    1:1:boolean getValue():1148:1148 -> getValue
    1:1:int hashCode():1168:1168 -> hashCode
    1:1:java.lang.Object getBoxedValue():1153:1153 -> k
    boolean mayHaveSideEffects() -> n
    void sort() -> o
    1:1:com.android.tools.r8.graph.DexValue$DexValueBoolean access$000():1130:1130 -> p
    1:1:java.lang.String toString():1181:1181 -> toString
com.android.tools.r8.graph.DexValue$DexValueByte -> com.android.tools.r8.graph.DexValue$f:
    byte value -> c
    com.android.tools.r8.graph.DexValue$DexValueByte DEFAULT -> d
    1:1:void <clinit>():273:273 -> <clinit>
    1:2:void <init>(byte):277:278 -> <init>
    1:1:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):110:110 -> 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):296 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):297:297 -> 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):297 -> a
    4:4:com.android.tools.r8.graph.DexValue$DexValueByte create(byte):282:282 -> 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):326:326 -> a
    1:1:boolean equals(java.lang.Object):315:315 -> equals
    1:1:java.lang.Object asAsmEncodedObject():302:302 -> f
    1:1:byte getValue():286:286 -> getValue
    1:1:int hashCode():307:307 -> hashCode
    1:1:java.lang.Object getBoxedValue():291:291 -> k
    boolean mayHaveSideEffects() -> n
    void sort() -> o
    1:1:java.lang.String toString():320:320 -> toString
com.android.tools.r8.graph.DexValue$DexValueChar -> com.android.tools.r8.graph.DexValue$g:
    com.android.tools.r8.graph.DexValue$DexValueChar DEFAULT -> d
    char value -> c
    1:1:void <clinit>():389:389 -> <clinit>
    1:2:void <init>(char):392:393 -> <init>
    1:1:com.android.tools.r8.graph.DexValue$DexValueChar create(char):397:397 -> a
    2:3:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):411:412 -> 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):412 -> a
    5:5:void com.android.tools.r8.dex.DexOutputBuffer.rewind(int):164:164 -> a
    5:5:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):413 -> a
    6:6:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):110:110 -> 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):414 -> a
    7:7:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):415:415 -> 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):444:444 -> a
    1:1:boolean equals(java.lang.Object):433:433 -> equals
    1:1:java.lang.Object asAsmEncodedObject():420:420 -> f
    1:1:char getValue():401:401 -> getValue
    1:1:int hashCode():425:425 -> hashCode
    1:1:java.lang.Object getBoxedValue():406:406 -> k
    boolean mayHaveSideEffects() -> n
    void sort() -> o
    1:1:java.lang.String toString():438:438 -> toString
com.android.tools.r8.graph.DexValue$DexValueDouble -> com.android.tools.r8.graph.DexValue$h:
    com.android.tools.r8.graph.DexValue$DexValueDouble DEFAULT -> d
    double value -> c
    1:1:void <clinit>():627:627 -> <clinit>
    1:2:void <init>(double):631:632 -> <init>
    1:1:com.android.tools.r8.graph.DexValue$DexValueDouble create(double):636:636 -> a
    2:3:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):650:651 -> a
    4:4:void com.android.tools.r8.dex.DexOutputBuffer.rewind(int):164:164 -> a
    4:4:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):652 -> a
    5:5:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):110:110 -> 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):653 -> a
    6:6:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):654:654 -> a
    7: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):665:665 -> a
    8:9:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createDoubleConstant(double,com.android.tools.r8.graph.DebugLocalInfo):1016:1017 -> a
    8: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):665 -> a
    10:10:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createDoubleConstant(double,com.android.tools.r8.graph.DebugLocalInfo):1016:1016 -> a
    10:10: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):665 -> a
    1:2:boolean equals(java.lang.Object):678:679 -> equals
    1:1:java.lang.Object asAsmEncodedObject():659:659 -> f
    1:1:double getValue():640:640 -> getValue
    1:1:int hashCode():670:670 -> hashCode
    1:1:java.lang.Object getBoxedValue():645:645 -> k
    boolean mayHaveSideEffects() -> n
    void sort() -> o
    1:1:java.lang.String toString():684:684 -> toString
com.android.tools.r8.graph.DexValue$DexValueEnum -> com.android.tools.r8.graph.DexValue$i:
    1:1:void <init>(com.android.tools.r8.graph.DexField):905:905 -> <init>
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):902:902 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):916:916 -> collectIndexedItems
    1:1:boolean equals(java.lang.Object):902:902 -> equals
    1:1:java.lang.Object asAsmEncodedObject():902:902 -> f
    1:1:int hashCode():902:902 -> hashCode
    1:1:java.lang.Object getBoxedValue():902:902 -> k
    void sort() -> o
    byte getValueKind() -> p
    1:1:java.lang.String toString():902:902 -> toString
com.android.tools.r8.graph.DexValue$DexValueField -> com.android.tools.r8.graph.DexValue$j:
    1:1:void <init>(com.android.tools.r8.graph.DexField):869:869 -> <init>
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):866:866 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):880:880 -> collectIndexedItems
    1:1:boolean equals(java.lang.Object):866:866 -> equals
    1:1:java.lang.Object asAsmEncodedObject():866:866 -> f
    1:1:int hashCode():866:866 -> hashCode
    1:1:java.lang.Object getBoxedValue():866:866 -> k
    void sort() -> o
    byte getValueKind() -> p
    1:1:java.lang.String toString():866:866 -> toString
com.android.tools.r8.graph.DexValue$DexValueFloat -> com.android.tools.r8.graph.DexValue$k:
    float value -> c
    com.android.tools.r8.graph.DexValue$DexValueFloat DEFAULT -> d
    1:1:void <clinit>():564:564 -> <clinit>
    1:2:void <init>(float):567:568 -> <init>
    1:1:com.android.tools.r8.graph.DexValue$DexValueFloat create(float):572:572 -> a
    2:3:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):586:587 -> a
    4:4:void com.android.tools.r8.dex.DexOutputBuffer.rewind(int):164:164 -> a
    4:4:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):588 -> a
    5:5:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):110:110 -> 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):589 -> a
    6:6:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):590:590 -> a
    7: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):601:601 -> a
    8:9:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createFloatConstant(float,com.android.tools.r8.graph.DebugLocalInfo):1021:1022 -> a
    8: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):601 -> a
    10:10:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createFloatConstant(float,com.android.tools.r8.graph.DebugLocalInfo):1021:1021 -> a
    10:10: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):601 -> a
    1:2:boolean equals(java.lang.Object):614:615 -> equals
    1:1:java.lang.Object asAsmEncodedObject():595:595 -> f
    1:1:float getValue():576:576 -> getValue
    1:1:int hashCode():606:606 -> hashCode
    1:1:java.lang.Object getBoxedValue():581:581 -> k
    boolean mayHaveSideEffects() -> n
    void sort() -> o
    1:1:java.lang.String toString():620:620 -> toString
com.android.tools.r8.graph.DexValue$DexValueInt -> com.android.tools.r8.graph.DexValue$l:
    int value -> c
    com.android.tools.r8.graph.DexValue$DexValueInt DEFAULT -> d
    1:1:void <clinit>():450:450 -> <clinit>
    1:2:void <init>(int):453:454 -> <init>
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):472:472 -> a
    2:2: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):501:501 -> a
    1:1:com.android.tools.r8.graph.DexValue$DexValueInt create(int):458:458 -> c
    1:1:boolean equals(java.lang.Object):490:490 -> equals
    1:1:java.lang.Object asAsmEncodedObject():477:477 -> f
    1:1:int getValue():462:462 -> getValue
    1:1:int hashCode():482:482 -> hashCode
    1:1:java.lang.Object getBoxedValue():467:467 -> k
    boolean mayHaveSideEffects() -> n
    void sort() -> o
    1:1:java.lang.String toString():495:495 -> toString
com.android.tools.r8.graph.DexValue$DexValueLong -> com.android.tools.r8.graph.DexValue$m:
    com.android.tools.r8.graph.DexValue$DexValueLong DEFAULT -> d
    long value -> c
    1:1:void <clinit>():507:507 -> <clinit>
    1:2:void <init>(long):510:511 -> <init>
    1:1:com.android.tools.r8.graph.DexValue$DexValueLong create(long):515:515 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):529:529 -> 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):558:558 -> a
    4:5:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createLongConstant(long,com.android.tools.r8.graph.DebugLocalInfo):1035:1036 -> a
    4: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):558 -> a
    6:6:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createLongConstant(long,com.android.tools.r8.graph.DebugLocalInfo):1035:1035 -> 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):558 -> a
    1:1:boolean equals(java.lang.Object):547:547 -> equals
    1:1:java.lang.Object asAsmEncodedObject():534:534 -> f
    1:1:long getValue():519:519 -> getValue
    1:1:int hashCode():539:539 -> hashCode
    1:1:java.lang.Object getBoxedValue():524:524 -> k
    boolean mayHaveSideEffects() -> n
    void sort() -> o
    1:1:java.lang.String toString():552:552 -> toString
com.android.tools.r8.graph.DexValue$DexValueMethod -> com.android.tools.r8.graph.DexValue$n:
    1:1:void <init>(com.android.tools.r8.graph.DexMethod):887:887 -> <init>
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):884:884 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):898:898 -> collectIndexedItems
    1:1:boolean equals(java.lang.Object):884:884 -> equals
    1:1:java.lang.Object asAsmEncodedObject():884:884 -> f
    1:1:int hashCode():884:884 -> hashCode
    1:1:java.lang.Object getBoxedValue():884:884 -> k
    void sort() -> o
    byte getValueKind() -> p
    1:1:java.lang.String toString():884:884 -> toString
com.android.tools.r8.graph.DexValue$DexValueMethodHandle -> com.android.tools.r8.graph.DexValue$o:
    1:1:void <init>(com.android.tools.r8.graph.DexMethodHandle):1194:1194 -> <init>
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1191:1191 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):1210:1210 -> collectIndexedItems
    1:1:boolean equals(java.lang.Object):1191:1191 -> equals
    1:1:java.lang.Object asAsmEncodedObject():1191:1191 -> f
    com.android.tools.r8.graph.DexValue$DexValueMethodHandle asDexValueMethodHandle() -> h
    1:1:int hashCode():1191:1191 -> hashCode
    1:1:java.lang.Object getBoxedValue():1191:1191 -> k
    void sort() -> o
    byte getValueKind() -> p
    1:1:java.lang.String toString():1191:1191 -> toString
com.android.tools.r8.graph.DexValue$DexValueMethodType -> com.android.tools.r8.graph.DexValue$p:
    1:1:void <init>(com.android.tools.r8.graph.DexProto):923:923 -> <init>
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):920:920 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):939:939 -> collectIndexedItems
    1:1:boolean equals(java.lang.Object):920:920 -> equals
    1:1:java.lang.Object asAsmEncodedObject():920:920 -> f
    1:1:int hashCode():920:920 -> hashCode
    com.android.tools.r8.graph.DexValue$DexValueMethodType asDexValueMethodType() -> i
    1:1:java.lang.Object getBoxedValue():920:920 -> k
    void sort() -> o
    byte getValueKind() -> p
    1:1:java.lang.String toString():920:920 -> toString
com.android.tools.r8.graph.DexValue$DexValueNull -> com.android.tools.r8.graph.DexValue$q:
    com.android.tools.r8.graph.DexValue NULL -> c
    1:1:void <clinit>():1080:1080 -> <clinit>
    1:1:void <init>():1083:1083 -> <init>
    1:1:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):110:110 -> 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):1092 -> a
    2:3:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createConstNull(com.android.tools.r8.graph.DebugLocalInfo):1059:1060 -> a
    2: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):1126 -> a
    4:4:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createConstNull(com.android.tools.r8.graph.DebugLocalInfo):1059:1059 -> 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):1126 -> a
    1:1:boolean equals(java.lang.Object):1115:1115 -> equals
    java.lang.Object asAsmEncodedObject() -> f
    java.lang.Object getBoxedValue() -> k
    boolean mayHaveSideEffects() -> n
    void sort() -> o
com.android.tools.r8.graph.DexValue$DexValueShort -> com.android.tools.r8.graph.DexValue$r:
    com.android.tools.r8.graph.DexValue$DexValueShort DEFAULT -> d
    short value -> c
    1:1:void <clinit>():332:332 -> <clinit>
    1:2:void <init>(short):335:336 -> <init>
    1:1:com.android.tools.r8.graph.DexValue$DexValueShort create(short):340:340 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):354:354 -> 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):383:383 -> a
    1:1:boolean equals(java.lang.Object):372:372 -> equals
    1:1:java.lang.Object asAsmEncodedObject():359:359 -> f
    1:1:short getValue():344:344 -> getValue
    1:1:int hashCode():364:364 -> hashCode
    1:1:java.lang.Object getBoxedValue():349:349 -> k
    boolean mayHaveSideEffects() -> n
    void sort() -> o
    1:1:java.lang.String toString():377:377 -> toString
com.android.tools.r8.graph.DexValue$DexValueString -> com.android.tools.r8.graph.DexValue$s:
    1:1:void <init>(com.android.tools.r8.graph.DexString):759:759 -> <init>
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):756:756 -> a
    2: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):775:779 -> 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):725:725 -> collectIndexedItems
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):756 -> collectIndexedItems
    1:1:boolean equals(java.lang.Object):756:756 -> equals
    1:1:java.lang.Object asAsmEncodedObject():764:764 -> f
    1:1:int hashCode():756:756 -> hashCode
    1:1:java.lang.Object getBoxedValue():756:756 -> k
    boolean mayHaveSideEffects() -> n
    void sort() -> o
    byte getValueKind() -> p
    1:1:java.lang.String toString():756:756 -> toString
com.android.tools.r8.graph.DexValue$DexValueType -> com.android.tools.r8.graph.DexValue$t:
    1:1:void <init>(com.android.tools.r8.graph.DexType):841:841 -> <init>
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):838:838 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):852:852 -> collectIndexedItems
    1:1:boolean equals(java.lang.Object):838:838 -> equals
    1:1:java.lang.Object asAsmEncodedObject():838:838 -> f
    1:1:int hashCode():838:838 -> hashCode
    com.android.tools.r8.graph.DexValue$DexValueType asDexValueType() -> j
    1:1:java.lang.Object getBoxedValue():838:838 -> k
    boolean isDexValueType() -> m
    void sort() -> o
    byte getValueKind() -> p
    1:1:java.lang.String toString():838:838 -> toString
com.android.tools.r8.graph.DexValue$NestedDexValue -> com.android.tools.r8.graph.DexValue$NestedDexValue:
    1:1:void <init>(com.android.tools.r8.graph.IndexedDexItem,com.android.tools.r8.graph.DexValue$1):688:688 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.IndexedDexItem):692:693 -> <init>
    1:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):704:705 -> 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):706 -> a
    4:4:void com.android.tools.r8.dex.DexOutputBuffer.rewind(int):164:164 -> a
    4:4:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):707 -> a
    5:5:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):708:708 -> a
    6:6:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):110:110 -> 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):708 -> a
    7:7:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):709:709 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):725:725 -> collectIndexedItems
    1:3:boolean equals(java.lang.Object):743:745 -> equals
    1:1:java.lang.Object asAsmEncodedObject():719:719 -> f
    1:1:com.android.tools.r8.graph.IndexedDexItem getValue():699:699 -> getValue
    1:1:int hashCode():735:735 -> hashCode
    1:1:java.lang.Object getBoxedValue():714:714 -> k
    void sort() -> o
    byte getValueKind() -> p
    1:1:java.lang.String toString():752:752 -> toString
com.android.tools.r8.graph.DexValue$SimpleDexValue -> com.android.tools.r8.graph.DexValue$u:
    1:1:void <init>():242:242 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexValue$1):242:242 -> <init>
    1:1:void writeIntegerTo(byte,long,int,com.android.tools.r8.dex.DexOutputBuffer):263:263 -> 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):264 -> a
    3:3:void com.android.tools.r8.dex.DexOutputBuffer.rewind(int):164:164 -> a
    3:3:void writeIntegerTo(byte,long,int,com.android.tools.r8.dex.DexOutputBuffer):265 -> a
    4:4:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):110:110 -> 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):266 -> a
    5:5:void writeIntegerTo(byte,long,int,com.android.tools.r8.dex.DexOutputBuffer):267:267 -> a
com.android.tools.r8.graph.DexValue$UnknownDexValue -> com.android.tools.r8.graph.DexValue$v:
    com.android.tools.r8.graph.DexValue$UnknownDexValue UNKNOWN -> c
    1:1:void <clinit>():184:184 -> <clinit>
    1:1:void <init>():186:186 -> <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):207:207 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):192:192 -> collectIndexedItems
    1:1:java.lang.Object asAsmEncodedObject():217:217 -> f
    1:1:int hashCode():222:222 -> hashCode
    1:1:java.lang.Object getBoxedValue():212:212 -> k
    boolean mayHaveSideEffects() -> n
    1:1:void sort():197:197 -> o
com.android.tools.r8.graph.DirectMappedDexApplication -> com.android.tools.r8.graph.g0:
    com.android.tools.r8.com.google.common.collect.ImmutableList libraryClasses -> n
    com.android.tools.r8.com.google.common.collect.ImmutableList classpathClasses -> m
    boolean $assertionsDisabled -> o
    com.android.tools.r8.com.google.common.collect.ImmutableList programClasses -> l
    java.util.Map codeOwners -> j
    java.util.Map allClasses -> k
    1:1:void <clinit>():23:23 -> <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.dex.ClassesChecksum,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):23:23 -> <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.dex.ClassesChecksum,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing):48:48 -> <init>
    3:35: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.dex.ClassesChecksum,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing):27:59 -> <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):23:23 -> a
    2:3:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):77:78 -> a
    4:4:com.android.tools.r8.graph.DirectMappedDexApplication$Builder builder():89:89 -> a
    4:4:com.android.tools.r8.graph.DirectMappedDexApplication rewrittenWithLense(com.android.tools.r8.graph.GraphLense):109 -> a
    5:6:com.android.tools.r8.graph.DirectMappedDexApplication rewrittenWithLense(com.android.tools.r8.graph.GraphLense):109:110 -> a
    7:13:boolean mappingIsValid(com.android.tools.r8.graph.GraphLense,java.lang.Iterable):119:125 -> a
    7:13:com.android.tools.r8.graph.DirectMappedDexApplication rewrittenWithLense(com.android.tools.r8.graph.GraphLense):110 -> a
    14:14:com.android.tools.r8.graph.DirectMappedDexApplication rewrittenWithLense(com.android.tools.r8.graph.GraphLense):111:111 -> a
    15:17:void addAll(java.util.Map,java.lang.Iterable):215:217 -> a
    15:17:void access$300(java.util.Map,java.lang.Iterable):23 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$200(com.android.tools.r8.graph.DirectMappedDexApplication):23:23 -> b
    2:3:com.android.tools.r8.graph.DexProgramClass programDefinitionFor(com.android.tools.r8.graph.DexType):83:84 -> b
    4:4:com.android.tools.r8.graph.DirectMappedDexApplication$Builder builder():89:89 -> b
    4:4:com.android.tools.r8.graph.DexApplication$Builder builder():23 -> b
    1:1:java.util.List programClasses():68:68 -> f
    com.android.tools.r8.graph.DirectMappedDexApplication toDirect() -> g
    1:1:java.util.Collection allClasses():63:63 -> h
    1:1:java.util.Collection libraryClasses():72:72 -> i
    1:12:boolean verifyCodeObjectsOwners():144:155 -> j
com.android.tools.r8.graph.DirectMappedDexApplication$1 -> com.android.tools.r8.graph.g0$a:
com.android.tools.r8.graph.DirectMappedDexApplication$Builder -> com.android.tools.r8.graph.g0$b:
    com.android.tools.r8.com.google.common.collect.ImmutableList classpathClasses -> m
    com.android.tools.r8.com.google.common.collect.ImmutableList libraryClasses -> l
    1:1:void <init>(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.DirectMappedDexApplication$1):161:161 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.LazyLoadedDexApplication):167:172 -> <init>
    8:10:void <init>(com.android.tools.r8.graph.DirectMappedDexApplication):176:178 -> <init>
    1:16:com.android.tools.r8.graph.DexApplication build():190:205 -> a
    com.android.tools.r8.graph.DexApplication$Builder self() -> e
com.android.tools.r8.graph.EnclosingMethodAttribute -> com.android.tools.r8.graph.h0:
    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.i0:
    boolean $assertionsDisabled -> e
    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():61:61 -> A
    1:1:int getAsCfAccessFlags():72 -> A
    1:1:int com.android.tools.r8.graph.AccessFlags.materialize():61:61 -> B
    1:1:int getAsDexAccessFlags():77 -> B
    1:1:boolean isEnum():97:97 -> C
    1:1:boolean isTransient():89:89 -> D
    1:1:boolean isVolatile():81:81 -> E
    1:6:java.util.List getNames():21:26 -> b
    1:6:java.util.List getPredicates():31:36 -> d
    1:1:com.android.tools.r8.graph.FieldAccessFlags fromCfAccessFlags(int):67:67 -> e
    2:2:void <init>(int):40:40 -> e
    2:2:com.android.tools.r8.graph.FieldAccessFlags fromCfAccessFlags(int):67 -> e
    1:1:com.android.tools.r8.graph.FieldAccessFlags fromDexAccessFlags(int):63:63 -> f
    2:2:void <init>(int):40:40 -> f
    2:2:com.android.tools.r8.graph.FieldAccessFlags fromDexAccessFlags(int):63 -> f
    1:2:com.android.tools.r8.graph.FieldAccessFlags fromSharedAccessFlags(int):58:59 -> g
    3:3:void <init>(int):40:40 -> g
    3:3:com.android.tools.r8.graph.FieldAccessFlags fromSharedAccessFlags(int):59 -> g
com.android.tools.r8.graph.FieldAccessInfo -> com.android.tools.r8.graph.j0:
com.android.tools.r8.graph.FieldAccessInfoCollection -> com.android.tools.r8.graph.k0:
com.android.tools.r8.graph.FieldAccessInfoCollectionImpl -> com.android.tools.r8.graph.l0:
    java.util.Map infos -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():13:13 -> <clinit>
    1:4:void <init>():13:16 -> <init>
    1:1:com.android.tools.r8.graph.FieldAccessInfoImpl get(com.android.tools.r8.graph.DexField):20:20 -> a
    1:1:com.android.tools.r8.graph.FieldAccessInfo get(com.android.tools.r8.graph.DexField):13 -> a
    2:2:com.android.tools.r8.graph.FieldAccessInfoImpl get(com.android.tools.r8.graph.DexField):20:20 -> a
    3:4:void extend(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.FieldAccessInfoImpl):24:25 -> a
    5:6:void forEach(java.util.function.Consumer):31:32 -> a
    7:7:boolean lambda$removeIf$0(java.util.function.BiPredicate,java.util.Map$Entry):36:36 -> a
    8:8:void removeIf(java.util.function.BiPredicate):36:36 -> a
    9:10:com.android.tools.r8.graph.FieldAccessInfoCollectionImpl rewrittenWithLens(com.android.tools.r8.graph.GraphLense):40:41 -> a
    11:11:void lambda$rewrittenWithLens$1(com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.FieldAccessInfoImpl):43:43 -> a
    12:12:boolean verifyMappingIsOneToOne():50:50 -> a
com.android.tools.r8.graph.FieldAccessInfoImpl -> com.android.tools.r8.graph.m0:
    java.util.Map readsWithContexts -> b
    java.util.Map writesWithContexts -> c
    com.android.tools.r8.graph.FieldAccessInfoImpl MISSING_FIELD_ACCESS_INFO -> d
    com.android.tools.r8.graph.DexField field -> a
    1:3:void <clinit>():20:22 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexField):35:36 -> <init>
    1:4:void forEachIndirectAccess(java.util.function.Consumer):64:67 -> a
    5:5:boolean lambda$forEachIndirectAccess$0(java.util.Set,com.android.tools.r8.graph.DexField):66:66 -> a
    6:6:void forEachAccessInMap(java.util.Map,java.util.function.Predicate,java.util.function.Consumer):76:76 -> a
    7:8:void lambda$forEachAccessInMap$2(java.util.function.Predicate,java.util.function.Consumer,com.android.tools.r8.graph.DexField,java.util.Set):78:79 -> a
    9:14:void forEachIndirectAccessWithContexts(java.util.function.BiConsumer):88:93 -> a
    15:15:void extendAccessesWithContexts(java.util.Map,java.util.function.Predicate,java.util.Map):101:101 -> a
    16:19:void lambda$extendAccessesWithContexts$6(java.util.function.Predicate,java.util.Map,com.android.tools.r8.graph.DexField,java.util.Set):103:106 -> a
    20:20:java.util.Set lambda$extendAccessesWithContexts$5(com.android.tools.r8.graph.DexField):105:105 -> a
    21:23:boolean isWrittenOutside(com.android.tools.r8.graph.DexEncodedMethod):154:156 -> a
    24:29:boolean recordRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):167:172 -> a
    30:30:void clearWrites():189:189 -> a
    31:43:com.android.tools.r8.graph.FieldAccessInfoImpl rewrittenWithLens(com.android.tools.r8.graph.GraphLense):193:205 -> a
    44:45:void lambda$rewrittenWithLens$10(com.android.tools.r8.graph.FieldAccessInfoImpl,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexField,java.util.Set):200:201 -> a
    1:1:com.android.tools.r8.graph.DexField getField():46:46 -> b
    2:2:boolean lambda$forEachIndirectAccess$1(java.util.Set,com.android.tools.r8.graph.DexField):68:68 -> b
    3:3:boolean lambda$forEachIndirectAccessWithContexts$3(com.android.tools.r8.graph.DexField):90:90 -> b
    4:10:void forEachReadContext(java.util.function.Consumer):116:122 -> b
    11:16:boolean recordWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):176:181 -> b
    17:18:void lambda$rewrittenWithLens$12(com.android.tools.r8.graph.FieldAccessInfoImpl,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexField,java.util.Set):209:210 -> b
    1:4:com.android.tools.r8.graph.DexEncodedMethod getUniqueReadContext():51:54 -> c
    5:5:boolean lambda$forEachIndirectAccessWithContexts$4(com.android.tools.r8.graph.DexField):92:92 -> c
    1:1:boolean isRead():132:132 -> d
    2:2:java.util.Set lambda$recordRead$7(com.android.tools.r8.graph.DexField):171:171 -> d
    1:1:boolean isWritten():146:146 -> e
    2:2:java.util.Set lambda$recordWrite$8(com.android.tools.r8.graph.DexField):180:180 -> e
    1:1:java.util.Set lambda$rewrittenWithLens$11(com.android.tools.r8.graph.DexField):209:209 -> f
    1:1:java.util.Set lambda$rewrittenWithLens$9(com.android.tools.r8.graph.DexField):200:200 -> g
com.android.tools.r8.graph.GraphLense -> com.android.tools.r8.graph.n0:
    1:1:void <clinit>():50:50 -> <clinit>
    1:1:void <init>():50:50 -> <init>
    1:1:com.android.tools.r8.graph.GraphLense$Builder builder():408:408 -> a
    2:6:com.android.tools.r8.com.google.common.collect.ImmutableMap rewriteReferenceKeys(java.util.Map,java.util.function.Function):674:678 -> a
    1:6:boolean assertDefinitionsNotModified(java.lang.Iterable):505:510 -> assertDefinitionsNotModified
    1:11:boolean assertReferencesNotModified(java.lang.Iterable):516:526 -> assertReferencesNotModified
    1:1:com.android.tools.r8.graph.GraphLense getIdentityLense():497:497 -> b
    1:1:boolean isContextFreeForMethod(com.android.tools.r8.graph.DexMethod):493:493 -> isContextFreeForMethod
    1:1:boolean isIdentityLense():501:501 -> isIdentityLense
    1:2:com.android.tools.r8.graph.DexMethod lookupMethod(com.android.tools.r8.graph.DexMethod):440:441 -> lookupMethod
    1:6:java.util.Set lookupMethodInAllContexts(com.android.tools.r8.graph.DexMethod):451:456 -> lookupMethodInAllContexts
    1:7:com.android.tools.r8.graph.DexReference lookupReference(com.android.tools.r8.graph.DexReference):470:476 -> lookupReference
    1:10:com.android.tools.r8.graph.DexEncodedMethod mapDexEncodedMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexDefinitionSupplier):423:432 -> mapDexEncodedMethod
    1:19:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet rewriteMethodsConservatively(java.util.Set):630:648 -> rewriteMethodsConservatively
    1:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet rewriteMethodsWithRenamedSignature(java.util.Set):621:626 -> rewriteMethodsWithRenamedSignature
    1:14:java.util.SortedSet rewriteMutableMethodsConservatively(java.util.Set):652:665 -> rewriteMutableMethodsConservatively
    1:11:java.util.Set rewriteMutableReferencesConservatively(java.util.Set):567:577 -> rewriteMutableReferencesConservatively
    1:3:java.util.Set rewriteMutableTypesConservatively(java.util.Set):613:615 -> rewriteMutableTypesConservatively
    1:14:com.android.tools.r8.com.google.common.collect.ImmutableList rewriteReferencesConservatively(java.util.List):533:546 -> rewriteReferencesConservatively
    15:28:com.android.tools.r8.com.google.common.collect.ImmutableSet rewriteReferencesConservatively(java.util.Set):550:563 -> rewriteReferencesConservatively
    29:42:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap rewriteReferencesConservatively(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap):585:598 -> rewriteReferencesConservatively
    1:5:com.android.tools.r8.com.google.common.collect.ImmutableSet rewriteTypesConservatively(java.util.Set):605:609 -> rewriteTypesConservatively
    1:31:boolean verifyMappingToOriginalProgram(java.lang.Iterable,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexItemFactory):695:725 -> verifyMappingToOriginalProgram
    32:52:boolean verifyIsBridgeMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexApplication,java.util.Set,com.android.tools.r8.graph.DexItemFactory):744:764 -> verifyMappingToOriginalProgram
    32:52:boolean verifyMappingToOriginalProgram(java.lang.Iterable,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexItemFactory):726 -> verifyMappingToOriginalProgram
    53:57:boolean verifyMappingToOriginalProgram(java.lang.Iterable,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexItemFactory):725:729 -> verifyMappingToOriginalProgram
com.android.tools.r8.graph.GraphLense$1 -> com.android.tools.r8.graph.n0$a:
com.android.tools.r8.graph.GraphLense$Builder -> com.android.tools.r8.graph.n0$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>():342:349 -> <init>
    1:1:void map(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):362:362 -> a
    2:2:void map(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):369:369 -> a
    3:6:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.GraphLense):393:396 -> a
    1:1:void map(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):362:362 -> b
    1:1:void move(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):376 -> b
    2:2:void move(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):377:377 -> b
com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult -> com.android.tools.r8.graph.n0$c:
    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):62:64 -> <init>
    1:1:com.android.tools.r8.graph.DexMethod getMethod():68:68 -> a
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():72:72 -> b
com.android.tools.r8.graph.GraphLense$IdentityGraphLense -> com.android.tools.r8.graph.n0$d:
    com.android.tools.r8.graph.GraphLense$IdentityGraphLense INSTANCE -> a
    1:1:void <clinit>():772:772 -> <clinit>
    1:1:void <init>():774:774 -> <init>
    1:1:com.android.tools.r8.graph.GraphLense$IdentityGraphLense getInstance():777:777 -> c
    1:1:com.android.tools.r8.graph.GraphLense$IdentityGraphLense access$100():770 -> c
    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):812:812 -> lookupMethod
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):817:817 -> lookupPrototypeChanges
com.android.tools.r8.graph.GraphLense$NestedGraphLense -> com.android.tools.r8.graph.n0$e:
    1:1:void <clinit>():841:841 -> <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):869:869 -> <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):847:871 -> <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):870:878 -> <init>
    1:4:com.android.tools.r8.graph.DexField getOriginalFieldSignature(com.android.tools.r8.graph.DexField):889:892 -> getOriginalFieldSignature
    1:4:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):898:901 -> getOriginalMethodSignature
    1:1:com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType):883:883 -> getOriginalType
    1:3:com.android.tools.r8.graph.DexField getRenamedFieldSignature(com.android.tools.r8.graph.DexField):906:908 -> getRenamedFieldSignature
    1:3:com.android.tools.r8.graph.DexMethod getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):914:916 -> getRenamedMethodSignature
    1:1:boolean isContextFreeForMethod(com.android.tools.r8.graph.DexMethod):1035:1035 -> isContextFreeForMethod
    1:1:boolean isContextFreeForMethods():1030:1030 -> isContextFreeForMethods
    1:2:com.android.tools.r8.graph.DexField lookupField(com.android.tools.r8.graph.DexField):1024:1025 -> lookupField
    1:1:com.android.tools.r8.graph.DexMethod lookupGetFieldForMethod(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexMethod):967:967 -> 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):946:957 -> lookupMethod
    1:3:java.util.Set lookupMethodInAllContexts(com.android.tools.r8.graph.DexMethod):1015:1017 -> lookupMethodInAllContexts
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):962:962 -> lookupPrototypeChanges
    1:1:com.android.tools.r8.graph.DexMethod lookupPutFieldForMethod(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexMethod):972:972 -> lookupPutFieldForMethod
    1:19:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType):922:940 -> 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):995:1006 -> mapVirtualInterfaceInvocationTypes
    13:13:boolean com.android.tools.r8.graph.ClassAccessFlags.isInterface():125:125 -> 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):1006 -> 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):1006:1008 -> mapVirtualInterfaceInvocationTypes
    17:17:boolean com.android.tools.r8.graph.ClassAccessFlags.isInterface():125:125 -> 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):1008 -> 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):1008:1008 -> mapVirtualInterfaceInvocationTypes
    1:17:java.lang.String toString():1040:1056 -> toString
com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription -> com.android.tools.r8.graph.n0$f:
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription none -> d
    boolean hasBeenChangedToReturnVoid -> a
    boolean extraNullParameter -> b
    com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo removedArgumentsInfo -> c
    1:161:void <clinit>():76:236 -> <clinit>
    162:162:void <init>():243:243 -> <clinit>
    162:162:void <clinit>():236 -> <clinit>
    163:163:void <clinit>():236:236 -> <clinit>
    1:5:void <init>(boolean,boolean,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):249:253 -> <init>
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo getRemovedArgumentsInfo():275:275 -> a
    2:4:com.android.tools.r8.ir.code.ConstInstruction getConstantReturn(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position):288:290 -> a
    5:6:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription withRemovedArguments(com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):328:329 -> a
    1:1:boolean hasBeenChangedToReturnVoid():271:271 -> b
    1:1:boolean hasExtraNullParameter():267:267 -> c
    1:1:boolean isEmpty():261:261 -> d
    2:2:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo getRemovedArgumentsInfo():275:275 -> d
    2:2:boolean isEmpty():263 -> d
    3:3:boolean isEmpty():263:263 -> d
    1:2:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription withConstantReturn():322:323 -> e
    1:2:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription withExtraNullParameter():333:334 -> f
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription none():257:257 -> g
com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo -> com.android.tools.r8.graph.n0$f$a:
    com.android.tools.r8.graph.DexType type -> c
    boolean isAlwaysNull -> b
    int argumentIndex -> a
    1:1:void <init>(int,boolean,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.GraphLense$1):78:78 -> <init>
    2:5:void <init>(int,boolean,com.android.tools.r8.graph.DexType):112:115 -> <init>
    1:1:int getArgumentIndex():123:123 -> a
    2:3:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo withArgumentIndex(int):139:140 -> a
    1:1:com.android.tools.r8.graph.DexType getType():127:127 -> b
    1:1:boolean isAlwaysNull():131:131 -> c
    1:1:boolean isNeverUsed():135:135 -> d
com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo$Builder -> com.android.tools.r8.graph.o0:
    com.android.tools.r8.graph.DexType type -> c
    boolean isAlwaysNull -> b
    boolean $assertionsDisabled -> d
    int argumentIndex -> a
    1:1:void <clinit>():80:80 -> <clinit>
    1:5:void <init>():80:84 -> <init>
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo$Builder setArgumentIndex(int):87:87 -> a
    2:2:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo$Builder setType(com.android.tools.r8.graph.DexType):97:97 -> a
    3:5:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo build():102:104 -> a
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo$Builder setIsAlwaysNull():92:92 -> b
com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo -> com.android.tools.r8.graph.n0$f$b:
    java.util.List removedArguments -> a
    com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo empty -> b
    boolean $assertionsDisabled -> c
    1:3:void <clinit>():145:147 -> <clinit>
    1:3:void <init>(java.util.List):151:153 -> <init>
    1:6:boolean verifyRemovedArguments(java.util.List):157:162 -> a
    7:7:boolean hasRemovedArguments():180:180 -> a
    8:10:boolean isArgumentRemoved(int):184:186 -> a
    11:32:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo combine(com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):199:220 -> a
    33:34:java.util.function.Consumer createParameterAnnotationsRemover(com.android.tools.r8.graph.DexEncodedMethod):225:226 -> a
    35:36:void lambda$createParameterAnnotationsRemover$1(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$Builder):227:228 -> a
    37:37:boolean lambda$createParameterAnnotationsRemover$0(int,int):229:229 -> a
    1:3:java.util.ListIterator iterator():174:176 -> b
    1:1:int numberOfRemovedArguments():195:195 -> c
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo empty():170:170 -> d
com.android.tools.r8.graph.IndexedDexItem -> com.android.tools.r8.graph.p0:
    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:3:void setSortedIndex(int):33:35 -> b
    1:4:int sortedCompareTo(int):45:48 -> c
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):24:24 -> collectMixedSectionItems
    1:1:int getSortedIndex():40:40 -> f
    1:1:void flushCachedValues():53:53 -> flushCachedValues
    2:2:void resetSortedIndex():58:58 -> flushCachedValues
    2:2:void flushCachedValues():54 -> flushCachedValues
    1:1:void resetSortedIndex():58:58 -> g
com.android.tools.r8.graph.InnerClassAttribute -> com.android.tools.r8.graph.q0:
    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.JarApplicationReader -> com.android.tools.r8.graph.r0:
    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:3:com.android.tools.r8.graph.DexProto getProto(java.lang.String):113:113 -> c
    4:5:java.lang.String getReturnTypeDescriptor(java.lang.String):150:151 -> c
    4:5:com.android.tools.r8.graph.DexProto getProto(java.lang.String):114 -> c
    6:40:java.lang.String[] getArgumentTypeDescriptors(java.lang.String):180:214 -> c
    6:40:com.android.tools.r8.graph.DexProto getProto(java.lang.String):115 -> c
    41:46:java.lang.String[] getArgumentTypeDescriptors(java.lang.String):201:206 -> c
    41:46:com.android.tools.r8.graph.DexProto getProto(java.lang.String):115 -> c
    47:70:java.lang.String[] getArgumentTypeDescriptors(java.lang.String):188:211 -> c
    47:70:com.android.tools.r8.graph.DexProto getProto(java.lang.String):115 -> c
    71:71:java.lang.String[] getArgumentTypeDescriptors(java.lang.String):197:197 -> c
    71:71:com.android.tools.r8.graph.DexProto getProto(java.lang.String):115 -> c
    72:79:com.android.tools.r8.graph.DexProto getProto(java.lang.String):116:123 -> c
    80:86:com.android.tools.r8.graph.DexTypeList getTypeListFromDescriptors(java.lang.String[]):74:80 -> c
    80:86:com.android.tools.r8.graph.DexProto getProto(java.lang.String):124 -> c
    87:87:com.android.tools.r8.graph.DexProto getProto(java.lang.String):125:125 -> c
    88:88:com.android.tools.r8.graph.DexProto getProto(java.lang.String):122:122 -> c
    1:1:com.android.tools.r8.graph.DexString getString(java.lang.String):44:44 -> d
    1:1:com.android.tools.r8.graph.DexType getTypeFromDescriptor(java.lang.String):57:57 -> e
    2:2:boolean isValidDescriptor(java.lang.String):138:138 -> e
    2:2:com.android.tools.r8.graph.DexType getTypeFromDescriptor(java.lang.String):57 -> e
    3:4:com.android.tools.r8.graph.DexType getTypeFromDescriptor(java.lang.String):57:58 -> e
    1:1:com.android.tools.r8.graph.DexType getTypeFromName(java.lang.String):52:52 -> f
    2:2:boolean isValidInternalName(java.lang.String):142:142 -> f
    2:2:com.android.tools.r8.graph.DexType getTypeFromName(java.lang.String):52 -> f
    3:4:com.android.tools.r8.graph.DexType getTypeFromName(java.lang.String):52:53 -> f
    5:5:com.android.tools.r8.graph.DexType getType(com.android.tools.r8.org.objectweb.asm.Type):48:48 -> f
    5:5:com.android.tools.r8.graph.DexType getTypeFromName(java.lang.String):53 -> f
    1:3:int getArgumentCount(java.lang.String):158:160 -> g
    1:4:java.lang.String getShortyDescriptor(java.lang.String):130:133 -> h
    1:1:com.android.tools.r8.org.objectweb.asm.Type lambda$getAsmObjectType$0(java.lang.String):32:32 -> i
    1:1:com.android.tools.r8.org.objectweb.asm.Type lambda$getAsmType$1(java.lang.String):36:36 -> j
com.android.tools.r8.graph.JarClassFileReader -> com.android.tools.r8.graph.s0:
    com.android.tools.r8.dex.ClassesChecksum checksums -> c
    java.util.function.Consumer classConsumer -> b
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.JarApplicationReader application -> a
    byte[] CLASSFILE_HEADER -> d
    1:3:void <clinit>():69:71 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.JarApplicationReader,java.util.function.Consumer):81:84 -> <init>
    1:1:int access$000(int):69:69 -> 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):69:69 -> 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):69:69 -> a
    4:13:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):88:97 -> a
    14:14:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    14:14:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    14:14:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):97 -> a
    15:37:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):97:119 -> 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):119 -> 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):102:102 -> a
    54:54:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    54:54:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    54:54:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):102 -> a
    55:55:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):102:102 -> a
    56:56:com.android.tools.r8.dex.ClassesChecksum getChecksums():140:140 -> a
    57:59:com.android.tools.r8.graph.MethodAccessFlags createMethodAccessFlags(java.lang.String,int):154:156 -> a
    60:62:void lambda$createAnnotationVisitor$0(java.util.List,int,java.lang.String,com.android.tools.r8.graph.JarApplicationReader,java.util.List,java.util.List):168:170 -> a
    63:63:void lambda$createAnnotationVisitor$0(java.util.List,int,java.lang.String,com.android.tools.r8.graph.JarApplicationReader,java.util.List,java.util.List):168:168 -> a
    64:71:com.android.tools.r8.graph.DexAnnotationSet createAnnotationSet(java.util.List,com.android.tools.r8.utils.InternalOptions):546:553 -> a
    64:71:com.android.tools.r8.graph.DexAnnotationSet access$200(java.util.List,com.android.tools.r8.utils.InternalOptions):69 -> a
    72:72:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    72:72:com.android.tools.r8.graph.DexAnnotationSet createAnnotationSet(java.util.List,com.android.tools.r8.utils.InternalOptions):553 -> a
    72:72:com.android.tools.r8.graph.DexAnnotationSet access$200(java.util.List,com.android.tools.r8.utils.InternalOptions):69 -> a
    73:76:com.android.tools.r8.graph.DexAnnotationSet createAnnotationSet(java.util.List,com.android.tools.r8.utils.InternalOptions):553:556 -> a
    73:76:com.android.tools.r8.graph.DexAnnotationSet access$200(java.util.List,com.android.tools.r8.utils.InternalOptions):69 -> a
    77:77:com.android.tools.r8.graph.DexAnnotationSet createAnnotationSet(java.util.List,com.android.tools.r8.utils.InternalOptions):547:547 -> a
    77:77:com.android.tools.r8.graph.DexAnnotationSet access$200(java.util.List,com.android.tools.r8.utils.InternalOptions):69 -> 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):162:162 -> b
    2:4:boolean retainCompileTimeAnnotation(java.lang.String,com.android.tools.r8.graph.JarApplicationReader):177:179 -> 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):163 -> b
    5:5:boolean retainCompileTimeAnnotation(java.lang.String,com.android.tools.r8.graph.JarApplicationReader):178:178 -> 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):163 -> 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):165:165 -> b
    7:8:com.android.tools.r8.graph.DexEncodedAnnotation createEncodedAnnotation(java.lang.String,java.util.List,java.util.List,com.android.tools.r8.graph.JarApplicationReader):184:185 -> b
    9:15:com.android.tools.r8.graph.DexEncodedAnnotation createEncodedAnnotation(java.lang.String,java.util.List,java.util.List,com.android.tools.r8.graph.JarApplicationReader):184:190 -> b
    1:1:com.android.tools.r8.graph.FieldAccessFlags createFieldAccessFlags(int):149:149 -> c
com.android.tools.r8.graph.JarClassFileReader$CreateAnnotationVisitor -> com.android.tools.r8.graph.s0$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>():874:874 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.JarApplicationReader,java.util.function.BiConsumer):883:883 -> <init>
    2:9:void <init>(com.android.tools.r8.graph.JarApplicationReader,java.util.function.BiConsumer):878:885 -> <init>
    1:2:void visitEnum(java.lang.String,java.lang.String,java.lang.String):895:896 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,java.lang.String):901:901 -> a
    4:5:void lambda$visitAnnotation$0(java.lang.String,java.lang.String,java.util.List,java.util.List):902:903 -> a
    6:6:void lambda$visitAnnotation$0(java.lang.String,java.lang.String,java.util.List,java.util.List):902:902 -> a
    7:7:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitArray(java.lang.String):908:908 -> a
    8:9:void lambda$visitArray$1(java.lang.String,java.util.List,java.util.List):909:910 -> a
    10:10:void visitEnd():916:916 -> a
    11:16:void addElement(java.lang.String,com.android.tools.r8.graph.DexValue):921:926 -> a
    17:38:com.android.tools.r8.graph.DexValue getDexValue(java.lang.Object):992:1013 -> a
    17:38:void visit(java.lang.String,java.lang.Object):890 -> a
    39:94:com.android.tools.r8.graph.DexValue$DexValueArray getDexValueArray(java.lang.Object):930:985 -> a
    39:94:com.android.tools.r8.graph.DexValue getDexValue(java.lang.Object):1015 -> a
    39:94:void visit(java.lang.String,java.lang.Object):890 -> a
    95:95:void visit(java.lang.String,java.lang.Object):890:890 -> a
    96:96:com.android.tools.r8.graph.DexValue$DexValueArray getDexValueArray(java.lang.Object):987:987 -> a
    96:96:com.android.tools.r8.graph.DexValue getDexValue(java.lang.Object):1015 -> a
    96:96:void visit(java.lang.String,java.lang.Object):890 -> a
com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor -> com.android.tools.r8.graph.s0$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
    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.dex.ClassesChecksum checksums -> A
    boolean $assertionsDisabled -> B
    com.android.tools.r8.graph.DexString sourceFile -> m
    1:1:void <clinit>():193:193 -> <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,com.android.tools.r8.dex.ClassesChecksum):230:230 -> <init>
    2:39: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,com.android.tools.r8.dex.ClassesChecksum):199:236 -> <init>
    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):193:193 -> a
    2:2:boolean access$1376(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor,int):193:193 -> a
    3:7:void visitInnerClass(java.lang.String,java.lang.String,java.lang.String,int):242:246 -> a
    8:22:void visitInnerClass(java.lang.String,java.lang.String,java.lang.String,int):244:258 -> a
    23:23:void visitInnerClass(java.lang.String,java.lang.String,java.lang.String,int):253:253 -> a
    24:29:void visitOuterClass(java.lang.String,java.lang.String,java.lang.String):264:269 -> a
    30:32:void visitNestHost(java.lang.String):274:276 -> a
    33:33:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):299:299 -> a
    34:34:java.lang.String illegalClassFilePrefix(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String):287:287 -> a
    34:34:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):299 -> a
    35:35:boolean com.android.tools.r8.graph.ClassAccessFlags.isInterface():125:125 -> a
    35:35:java.lang.String illegalClassFilePrefix(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String):288 -> a
    35:35:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):299 -> a
    36:36:java.lang.String illegalClassFilePrefix(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String):288:288 -> a
    36:36:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):299 -> a
    37:37:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):299:299 -> a
    38:38:java.lang.String illegalClassFilePostfix(int):294:294 -> a
    38:38:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):301 -> a
    39:39:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):301:301 -> a
    40:55:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):307:322 -> 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[]):322 -> a
    57:60:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):322:325 -> a
    61:61:boolean com.android.tools.r8.graph.ClassAccessFlags.isInterface():125:125 -> a
    61:61:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):325 -> a
    62:65:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):326:329 -> a
    66:66:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):328:328 -> 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[]):328 -> a
    68:75:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):328:335 -> a
    76:83:com.android.tools.r8.graph.DexTypeList com.android.tools.r8.graph.JarApplicationReader.getTypeListFromNames(java.lang.String[]):62:69 -> a
    76:83:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):335 -> a
    84:86:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):335:337 -> a
    87:87:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
    87:87:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):337 -> a
    88:88:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):337:337 -> a
    89:89:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):521:521 -> a
    89:89:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):337 -> a
    90:90:com.android.tools.r8.graph.DexTypeList com.android.tools.r8.graph.JarApplicationReader.getTypeListFromNames(java.lang.String[]):62:62 -> a
    90:90:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):335 -> a
    91:93:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):316:318 -> a
    94:94:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):317:317 -> a
    95:95:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    95:95:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    95:95:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):317 -> a
    96:96:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):317:317 -> a
    97:97:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):309:309 -> a
    98:98:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    98:98:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    98:98:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):309 -> a
    99:99:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):309:309 -> a
    100:105:void visitSource(java.lang.String,java.lang.String):344:349 -> a
    106:106:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
    106:106:void visitSource(java.lang.String,java.lang.String):349 -> a
    107:110: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
    107:110:void visitSource(java.lang.String,java.lang.String):348 -> a
    111:111:void visitSource(java.lang.String,java.lang.String):347:347 -> a
    112:120:com.android.tools.r8.org.objectweb.asm.FieldVisitor visitField(int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):356:364 -> a
    121:123:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):370:372 -> a
    124:124:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():170:170 -> a
    124:124:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):372 -> a
    125:130:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):372:377 -> a
    131:131:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):382:382 -> a
    132:133:void visitEnd():399:400 -> a
    134:134:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
    134:134:void visitEnd():401 -> a
    135:135:void visitEnd():400:400 -> a
    136:136:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):521:521 -> a
    136:136:void visitEnd():400 -> a
    137:137:void checkReachabilitySensitivity():478:478 -> a
    137:137:void visitEnd():403 -> a
    138:138:boolean hasReachabilitySensitiveField():495:495 -> a
    138:138:void checkReachabilitySensitivity():478 -> a
    138:138:void visitEnd():403 -> a
    139:139:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
    139:139:boolean hasReachabilitySensitiveField():495 -> a
    139:139:void checkReachabilitySensitivity():478 -> a
    139:139:void visitEnd():403 -> a
    140:150:boolean hasReachabilitySensitiveField():495:505 -> a
    140:150:void checkReachabilitySensitivity():478 -> a
    140:150:void visitEnd():403 -> a
    151:160:void checkReachabilitySensitivity():479:488 -> a
    151:160:void visitEnd():403 -> a
    161:178:void visitEnd():404:421 -> a
    179:179:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
    179:179:void visitEnd():422 -> a
    180:180:void visitEnd():422:422 -> a
    181:219:void visitEnd():405:443 -> a
    220:220:void visitEnd():439:439 -> a
    221:221:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    221:221:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    221:221:void visitEnd():439 -> a
    222:246:void visitEnd():439:463 -> a
    247:250:void addDefaultAnnotation(java.lang.String,com.android.tools.r8.graph.DexValue):514:517 -> a
    247:250:void access$1600(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):193 -> a
    1:1:int access$1100(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):193:193 -> b
    2:4:void visitNestMember(java.lang.String):281:283 -> b
    5:5:boolean isInANest():540:540 -> b
    1:1:java.util.Set access$1200(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):193:193 -> 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:12:java.util.List getAnnotations():525:528 -> c
    1:1:java.util.List access$1400(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):193:193 -> d
    2:2:int getMajorVersion():532:532 -> d
    1:1:java.util.List access$1500(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):193:193 -> e
    1:1:com.android.tools.r8.graph.JarApplicationReader access$300(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):193:193 -> f
    1:1:com.android.tools.r8.graph.DexType access$400(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):193:193 -> g
    1:1:java.util.Set access$500(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):193:193 -> h
    1:1:java.util.List access$600(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):193:193 -> i
    1:1:java.util.List access$700(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):193:193 -> j
    1:1:com.android.tools.r8.graph.ClassKind access$800(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):193:193 -> k
    1:1:com.android.tools.r8.origin.Origin access$900(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):193:193 -> l
com.android.tools.r8.graph.JarClassFileReader$CreateFieldVisitor -> com.android.tools.r8.graph.s0$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>():559:559 -> <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):570:570 -> <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):566:578 -> <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):577:577 -> <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():596:602 -> a
    8:8:com.android.tools.r8.graph.DexValue getStaticValue(java.lang.Object,com.android.tools.r8.graph.DexType):620:620 -> a
    8:8:void visitEnd():602 -> 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):620 -> a
    9:9:void visitEnd():602 -> a
    10:39:com.android.tools.r8.graph.DexValue getStaticValue(java.lang.Object,com.android.tools.r8.graph.DexType):621:650 -> a
    10:39:void visitEnd():602 -> a
    40:49:void visitEnd():603:612 -> a
    50:50:void visitEnd():610:610 -> a
    51:54:java.util.List getAnnotations():658:661 -> a
    51:54:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):654 -> a
    55:55:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):654:654 -> a
    56:59:java.util.List getAnnotations():658:661 -> a
    56:59:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):584 -> a
    60:60:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):584:584 -> a
com.android.tools.r8.graph.JarClassFileReader$CreateMethodVisitor -> com.android.tools.r8.graph.s0$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>():665:665 -> <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):682:682 -> <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):670:694 -> <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):693:698 -> <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):697:697 -> <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):704:704 -> a
    2:2:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotationDefault():709:709 -> a
    3:4:void lambda$visitAnnotationDefault$0(java.util.List,java.util.List):710:711 -> a
    5:11:void visitAnnotableParameterCount(int,boolean):724:730 -> a
    12:23:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):735:746 -> a
    24:24:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):745:745 -> a
    25:25:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):870:870 -> 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):772:777 -> 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):777 -> b
    8:10:void visitParameter(java.lang.String,int):777:779 -> b
    11:11:void visitCode():784:784 -> 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():797:798 -> c
    3:5:boolean classRequiresCode():788:790 -> c
    3:5:void visitEnd():798 -> c
    6:6:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> c
    6:6:boolean com.android.tools.r8.utils.InternalOptions.canUseNestBasedAccess():1055 -> c
    6:6:boolean classRequiresCode():790 -> c
    6:6:void visitEnd():798 -> c
    7:9:boolean classRequiresCode():790:792 -> c
    7:9:void visitEnd():798 -> c
    10:20:void visitEnd():799:809 -> c
    21:21:void com.android.tools.r8.graph.ParameterAnnotationsList.<init>(com.android.tools.r8.graph.DexAnnotationSet[]):56:56 -> c
    21:21:void visitEnd():809 -> c
    22:26:void visitEnd():811:815 -> c
    27:33:void visitEnd():814:820 -> c
    34:34:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> c
    34:34:void visitEnd():820 -> 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():817 -> c
    44:59:void visitEnd():817:832 -> c
    60:60:boolean isReachabilitySensitive():853:853 -> c
    60:60:void visitEnd():832 -> c
    61:61:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> c
    61:61:boolean isReachabilitySensitive():853 -> c
    61:61:void visitEnd():832 -> c
    62:64:boolean isReachabilitySensitive():853:855 -> c
    62:64:void visitEnd():832 -> c
    65:66:void visitEnd():832:833 -> c
    67:67:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():170:170 -> c
    67:67:void visitEnd():833 -> c
    68:71:void visitEnd():833:836 -> c
    72:82:void visitEnd():834:844 -> c
    83:83:void visitEnd():841:841 -> c
    84:92:void visitEnd():839:847 -> c
    1:4:java.util.List getAnnotations():863:866 -> d
com.android.tools.r8.graph.JarClassFileReader$ReparseContext -> com.android.tools.r8.graph.s0$e:
    com.android.tools.r8.graph.DexClass owner -> b
    byte[] classCache -> a
    java.util.List codeList -> c
    1:8:void <init>():1019:1026 -> <init>
com.android.tools.r8.graph.KeyedDexItem -> com.android.tools.r8.graph.t0:
    1:1:void <init>():6:6 -> <init>
    1:1:boolean equals(java.lang.Object):15:15 -> equals
    1:1:int hashCode():20:20 -> hashCode
    com.android.tools.r8.graph.PresortedComparable getKey() -> n
com.android.tools.r8.graph.LazyCfCode -> com.android.tools.r8.graph.z0:
    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>():83:83 -> <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):92:103 -> <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):94:96 -> <init>
    1:1:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):146:146 -> a
    2:10:int getParsingOptions(com.android.tools.r8.graph.JarApplicationReader,boolean):918:926 -> a
    2:10:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):146 -> a
    11:11:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):147:147 -> a
    12:12:java.util.function.BiFunction createCodeLocator(com.android.tools.r8.graph.JarClassFileReader$ReparseContext):223:223 -> a
    12:12:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):148 -> a
    13:14:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):148:149 -> a
    15:15:void com.android.tools.r8.org.objectweb.asm.ClassReader.<init>(byte[]):162:162 -> a
    15:15:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):149 -> a
    16:16:void com.android.tools.r8.org.objectweb.asm.ClassReader.accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,int):400:400 -> a
    16:16:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):149 -> a
    17:20:void setCode(com.android.tools.r8.graph.CfCode):153:156 -> a
    17:20:void access$100(com.android.tools.r8.graph.LazyCfCode,com.android.tools.r8.graph.CfCode):83 -> a
    1:18:com.android.tools.r8.graph.CfCode asCfCode():122:139 -> asCfCode
    19:25:boolean verifyNoReparseContext(com.android.tools.r8.graph.DexClass):938:944 -> asCfCode
    19:25:com.android.tools.r8.graph.CfCode asCfCode():139 -> asCfCode
    26:32:com.android.tools.r8.graph.CfCode asCfCode():136:142 -> 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):186:186 -> 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):197:198 -> 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):952:952 -> collectParameterInfo
    1:1:boolean computeEquals(java.lang.Object):166:166 -> computeEquals
    1:1:int computeHashCode():161:161 -> computeHashCode
    1:1:int estimatedSizeForInlining():176:176 -> estimatedSizeForInlining
    1:1:boolean estimatedSizeForInliningAtMost(int):181:181 -> estimatedSizeForInliningAtMost
    1:2:void markReachabilitySensitive():106:107 -> f
    1:1:void registerArgumentReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.ArgumentUse):209:209 -> registerArgumentReferences
    1:1:void registerCodeReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry):204:204 -> registerCodeReferences
    1:1:java.lang.String toString():214:214 -> toString
    2:2:java.lang.String toString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):219:219 -> toString
com.android.tools.r8.graph.LazyCfCode$1 -> com.android.tools.r8.graph.u0:
com.android.tools.r8.graph.LazyCfCode$ClassCodeVisitor -> com.android.tools.r8.graph.v0:
    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):254:258 -> <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[]):264:273 -> a
com.android.tools.r8.graph.LazyCfCode$DefaultCodeLocator -> com.android.tools.r8.graph.w0:
    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):226:226 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader):231:231 -> <init>
    3:6:void <init>(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader):229:232 -> <init>
    1:1:java.lang.Object apply(java.lang.Object,java.lang.Object):226:226 -> apply
    2:2:com.android.tools.r8.graph.LazyCfCode apply(java.lang.String,java.lang.String):238:238 -> apply
    2:2:java.lang.Object apply(java.lang.Object,java.lang.Object):226 -> apply
com.android.tools.r8.graph.LazyCfCode$JsrEncountered -> com.android.tools.r8.graph.x0:
    1:1:void <init>(java.lang.String):87:87 -> <init>
com.android.tools.r8.graph.LazyCfCode$MethodCodeVisitor -> com.android.tools.r8.graph.y0:
    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>():280:280 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.LazyCfCode):294:294 -> <init>
    2:13:void <init>(com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.LazyCfCode):288:299 -> <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[]):322:322 -> a
    2:8:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap parseLocals(int,java.lang.Object[]):329:335 -> a
    2:8:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):323 -> a
    9:11:java.util.List parseStack(int,java.lang.Object[]):343:345 -> a
    9:11:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):324 -> a
    12:12:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):325:325 -> a
    13:14:com.android.tools.r8.graph.DexType createTypeFromInternalType(java.lang.String):386:387 -> a
    15:15:void visitInsn(int):553:553 -> a
    16:18:void visitInsn(int):421:423 -> a
    19:19:void visitInsn(int):421:421 -> a
    20:22:void visitInsn(int):415:417 -> a
    23:23:void visitInsn(int):415:415 -> a
    24:24:void visitInsn(int):410:410 -> a
    25:25:void visitInsn(int):406:406 -> a
    26:26:void visitInsn(int):397:397 -> a
    27:129:void visitInsn(int):394:496 -> a
    130:130:void visitInsn(int):482:482 -> a
    131:131:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):73:73 -> a
    131:131:void visitInsn(int):482 -> a
    132:132:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):71:71 -> a
    132:132:void visitInsn(int):482 -> a
    133:133:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):69:69 -> a
    133:133:void visitInsn(int):482 -> a
    134:134:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):67:67 -> a
    134:134:void visitInsn(int):482 -> a
    135:135:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):65:65 -> a
    135:135:void visitInsn(int):482 -> a
    136:136:void visitInsn(int):482:482 -> a
    137:137:void visitInsn(int):476:476 -> a
    138:138:void visitInsn(int):454:454 -> a
    139:216:void visitInsn(int):443:520 -> a
    217:242:void visitInsn(int):513:538 -> a
    243:243:void visitInsn(int):535:535 -> a
    244:244:void visitInsn(int):532:532 -> a
    245:245:void visitInsn(int):529:529 -> a
    246:246:void visitInsn(int):526:526 -> a
    247:274:void visitInsn(int):523:550 -> a
    275:275:void visitInsn(int):547:547 -> a
    276:276:void visitInsn(int):544:544 -> a
    277:277:void visitInsn(int):541:541 -> a
    278:293:void visitTypeInsn(int,java.lang.String):665:680 -> a
    294:294:void visitTypeInsn(int,java.lang.String):674:674 -> a
    295:295:void visitTypeInsn(int,java.lang.String):671:671 -> a
    296:296:void visitTypeInsn(int,java.lang.String):668:668 -> a
    297:301:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):686:690 -> a
    302:302:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):695:695 -> a
    303:303: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
    303:303:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):695 -> a
    304:304:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):696:696 -> a
    305:307:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):701:703 -> a
    308:338:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):708:738 -> a
    339:343:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):732:736 -> a
    344:344:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):728:728 -> a
    345:345:void visitLabel(com.android.tools.r8.org.objectweb.asm.Label):772:772 -> a
    346:369:void visitLdcInsn(java.lang.Object):777:800 -> a
    370:374:void visitLdcInsn(java.lang.Object):798:802 -> a
    375:375:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    375:375:void visitLdcInsn(java.lang.Object):802 -> a
    376:376:void visitLdcInsn(java.lang.Object):802:802 -> a
    377:377:void visitIincInsn(int,int):808:808 -> a
    378:383:void visitTableSwitchInsn(int,int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):813:818 -> a
    384:388:void visitLookupSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,int[],com.android.tools.r8.org.objectweb.asm.Label[]):823:827 -> a
    389:428:void visitMultiANewArrayInsn(java.lang.String,int):832:871 -> a
    429:429: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):879:879 -> a
    430:433: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):878:881 -> a
    434:439: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):887:892 -> a
    440:446: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):888:894 -> a
    447:448: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):55:56 -> a
    447:448: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 -> a
    449:449: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):893:893 -> a
    450:450:com.android.tools.r8.graph.DebugLocalInfo canonicalize(com.android.tools.r8.graph.DebugLocalInfo):898:898 -> a
    1:6:void visitCode():304:309 -> b
    7:11:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):351:355 -> b
    12:24:com.android.tools.r8.graph.DexType parseAsmType(java.lang.Object):367:379 -> b
    12:24:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):358 -> b
    25:25:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):358:358 -> b
    26:26:com.android.tools.r8.graph.DexType parseAsmType(java.lang.Object):381:381 -> b
    26:26:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):358 -> b
    27:27:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):356:356 -> b
    28:28:com.android.tools.r8.cf.code.CfLabel getLabel(com.android.tools.r8.org.objectweb.asm.Label):363:363 -> b
    29:29:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):584:584 -> b
    30:30:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):582:582 -> b
    31:31:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):579:579 -> b
    32:32:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):576:576 -> b
    33:33:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):573:573 -> b
    34:34:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):570:570 -> b
    35:38:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):564:567 -> b
    39:39:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):561:561 -> b
    40:40:void visitIntInsn(int,int):596:596 -> b
    41:41:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):623:623 -> b
    41:41:void visitIntInsn(int,int):597 -> b
    42:42:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):621:621 -> b
    42:42:void visitIntInsn(int,int):597 -> b
    43:43:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):619:619 -> b
    43:43:void visitIntInsn(int,int):597 -> b
    44:44:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):617:617 -> b
    44:44:void visitIntInsn(int,int):597 -> b
    45:45:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):615:615 -> b
    45:45:void visitIntInsn(int,int):597 -> b
    46:46:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):613:613 -> b
    46:46:void visitIntInsn(int,int):597 -> b
    47:47:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):611:611 -> b
    47:47:void visitIntInsn(int,int):597 -> b
    48:48:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):609:609 -> b
    48:48:void visitIntInsn(int,int):597 -> b
    49:49:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):607:607 -> b
    49:49:void visitIntInsn(int,int):597 -> b
    50:50:void visitIntInsn(int,int):597:597 -> b
    51:55:void visitIntInsn(int,int):596:600 -> b
    56:56:void visitIntInsn(int,int):593:593 -> b
    57:57:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):903:903 -> b
    1:1:void visitEnd():314:314 -> c
    2:2:com.android.tools.r8.cf.code.CfLabel lambda$getLabel$0(com.android.tools.r8.org.objectweb.asm.Label):363:363 -> c
    3:3:com.android.tools.r8.ir.code.If$Type ifType(int):766:766 -> c
    4:4:com.android.tools.r8.ir.code.If$Type ifType(int):764:764 -> c
    5:5:com.android.tools.r8.ir.code.If$Type ifType(int):761:761 -> c
    6:6:com.android.tools.r8.ir.code.If$Type ifType(int):758:758 -> c
    7:7:com.android.tools.r8.ir.code.If$Type ifType(int):755:755 -> c
    8:8:com.android.tools.r8.ir.code.If$Type ifType(int):752:752 -> c
    9:9:com.android.tools.r8.ir.code.If$Type ifType(int):748:748 -> c
    10:13:void visitMaxs(int,int):908:911 -> c
    1:1:void visitVarInsn(int,int):654:654 -> d
    2:2:void visitVarInsn(int,int):649:649 -> d
    3:3:void visitVarInsn(int,int):645:645 -> d
    4:8:void visitVarInsn(int,int):637:641 -> d
    9:35:void visitVarInsn(int,int):633:659 -> d
    36:36:void visitVarInsn(int,int):652:652 -> d
com.android.tools.r8.graph.LazyLoadedDexApplication -> com.android.tools.r8.graph.A0:
    boolean $assertionsDisabled -> m
    com.android.tools.r8.utils.LibraryClassCollection libraryClasses -> l
    com.android.tools.r8.utils.ProgramClassCollection programClasses -> j
    com.android.tools.r8.utils.ClasspathClassCollection classpathClasses -> k
    1:1:void <clinit>():25:25 -> <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.dex.ClassesChecksum,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):25:25 -> <init>
    2:12: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.dex.ClassesChecksum,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing):43:53 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$000(java.util.Map,java.util.Map):25:25 -> a
    2:2:com.android.tools.r8.utils.ClasspathClassCollection access$100(com.android.tools.r8.graph.LazyLoadedDexApplication):25:25 -> a
    3:21:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):64:82 -> a
    22:24: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):176:178 -> a
    1:1:com.android.tools.r8.utils.LibraryClassCollection access$200(com.android.tools.r8.graph.LazyLoadedDexApplication):25:25 -> b
    2:3:com.android.tools.r8.graph.DexProgramClass programDefinitionFor(com.android.tools.r8.graph.DexType):90:91 -> b
    4:14:com.android.tools.r8.com.google.common.collect.ImmutableList fillPrioritizedClasses(java.util.Map,java.util.Map):173:183 -> b
    15:15:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder builder():248:248 -> b
    15:15:com.android.tools.r8.graph.DexApplication$Builder builder():25 -> b
    boolean lambda$programClasses$0(com.android.tools.r8.graph.DexType) -> c
    1:2:java.util.List programClasses():58:59 -> f
    1:1:com.android.tools.r8.graph.DirectMappedDexApplication toDirect():253:253 -> g
    1:1:com.android.tools.r8.graph.LazyLoadedDexApplication$AllClasses loadAllClasses():191:191 -> h
    1:1:java.lang.String toString():258:258 -> toString
com.android.tools.r8.graph.LazyLoadedDexApplication$1 -> com.android.tools.r8.graph.A0$a:
com.android.tools.r8.graph.LazyLoadedDexApplication$AllClasses -> com.android.tools.r8.graph.A0$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>():94:94 -> <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):107:150 -> <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):149:149 -> <init>
    boolean lambda$new$0(com.android.tools.r8.graph.DexType) -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList getClasspathClasses():162:162 -> a
    boolean lambda$new$1(com.android.tools.r8.graph.DexType) -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList getLibraryClasses():166:166 -> b
    boolean lambda$new$2(com.android.tools.r8.graph.DexType) -> c
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList getProgramClasses():158:158 -> c
com.android.tools.r8.graph.LazyLoadedDexApplication$Builder -> com.android.tools.r8.graph.A0$c:
    com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver resolver -> n
    com.android.tools.r8.utils.LibraryClassCollection libraryClasses -> m
    com.android.tools.r8.utils.ClasspathClassCollection classpathClasses -> l
    1:1:void <init>(com.android.tools.r8.graph.LazyLoadedDexApplication,com.android.tools.r8.graph.LazyLoadedDexApplication$1):194:194 -> <init>
    2:5:void <init>(com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):201:204 -> <init>
    6:10:void <init>(com.android.tools.r8.graph.LazyLoadedDexApplication):208:212 -> <init>
    1:1:com.android.tools.r8.graph.DexApplication build():194:194 -> a
    2:2:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder setClasspathClassCollection(com.android.tools.r8.utils.ClasspathClassCollection):221:221 -> a
    3:3:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder setLibraryClassCollection(com.android.tools.r8.utils.LibraryClassCollection):226:226 -> a
    4:10:com.android.tools.r8.graph.LazyLoadedDexApplication build():232:238 -> a
    com.android.tools.r8.graph.DexApplication$Builder self() -> e
com.android.tools.r8.graph.MethodAccessFlags -> com.android.tools.r8.graph.B0:
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():11:11 -> <clinit>
    1:1:void <init>(int,int):61:61 -> <init>
    1:1:com.android.tools.r8.graph.MethodAccessFlags copy():66:66 -> A
    1:1:int com.android.tools.r8.graph.AccessFlags.materialize():61:61 -> B
    1:1:int getAsCfAccessFlags():106 -> B
    1:1:int getAsDexAccessFlags():96:96 -> C
    2:2:boolean isSynchronized():110:110 -> C
    2:2:int getAsDexAccessFlags():97 -> C
    3:3:int getAsDexAccessFlags():97:97 -> C
    4:4:void unsetSynchronized():118:118 -> C
    4:4:int getAsDexAccessFlags():98 -> C
    5:5:void setDeclaredSynchronized():188:188 -> C
    5:5:int getAsDexAccessFlags():99 -> C
    6:6:int com.android.tools.r8.graph.AccessFlags.materialize():61:61 -> C
    6:6:int getAsDexAccessFlags():101 -> C
    1:1:boolean isAbstract():150:150 -> D
    1:1:boolean isBridge():122:122 -> E
    1:1:boolean isConstructor():170:170 -> F
    1:1:boolean isNative():142:142 -> G
    1:1:boolean isStrict():162:162 -> H
    1:1:boolean isSynchronized():110:110 -> I
    1:1:boolean isVarargs():134:134 -> J
    1:1:void setBridge():126:126 -> K
    1:1:void setNative():146:146 -> L
    1:1:void unsetAbstract():158:158 -> M
    1:1:void unsetBridge():130:130 -> N
    1:1:void unsetConstructor():178:178 -> O
    1:1:com.android.tools.r8.graph.MethodAccessFlags fromCfAccessFlags(int,boolean):81:81 -> a
    2:2:void <init>(int):57:57 -> a
    2:2:com.android.tools.r8.graph.MethodAccessFlags fromCfAccessFlags(int,boolean):82 -> a
    1:9:java.util.List getNames():32:40 -> b
    10:10:com.android.tools.r8.graph.MethodAccessFlags fromSharedAccessFlags(int,boolean):75:75 -> b
    11:11:com.android.tools.r8.graph.MethodAccessFlags fromCfAccessFlags(int,boolean):81:81 -> b
    11:11:com.android.tools.r8.graph.MethodAccessFlags fromSharedAccessFlags(int,boolean):77 -> b
    12:12:void <init>(int):57:57 -> b
    12:12:com.android.tools.r8.graph.MethodAccessFlags fromCfAccessFlags(int,boolean):82 -> b
    12:12:com.android.tools.r8.graph.MethodAccessFlags fromSharedAccessFlags(int,boolean):77 -> b
    1:9:java.util.List getPredicates():45:53 -> d
    1:1:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):86:86 -> e
    2:2:void <init>(int):57:57 -> e
    2:2:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):86 -> e
    3:3:boolean isDeclaredSynchronized():184:184 -> e
    3:3:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):87 -> e
    4:4:void setSynchronized():114:114 -> e
    4:4:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):88 -> e
    5:5:void unsetDeclaredSynchronized():192:192 -> e
    5:5:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):89 -> e
com.android.tools.r8.graph.NestHostClassAttribute -> com.android.tools.r8.graph.C0:
    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.D0:
    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.ObjectToOffsetMapping -> com.android.tools.r8.graph.E0:
    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:32:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):160:160 -> a
    32:32: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
    33:33:java.util.Collection keysOrEmpty(java.util.Map):155:155 -> a
    34:34:java.util.Collection getCallSites():183:183 -> a
    35:37:int getOffsetFor(com.android.tools.r8.graph.IndexedDexItem,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):208:210 -> a
    38:38:int getOffsetFor(com.android.tools.r8.graph.DexProto):215:215 -> a
    39:39:int getOffsetFor(com.android.tools.r8.graph.DexField):219:219 -> a
    40:40:int getOffsetFor(com.android.tools.r8.graph.DexMethod):223:223 -> a
    41:41:int getOffsetFor(com.android.tools.r8.graph.DexString):227:227 -> a
    42:42:int getOffsetFor(com.android.tools.r8.graph.DexType):231:231 -> a
    43:43:int getOffsetFor(com.android.tools.r8.graph.DexCallSite):235:235 -> a
    44:44: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.E0$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.F0:
    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.G0:
    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:19:com.android.tools.r8.graph.ParameterAnnotationsList keepIf(java.util.function.Predicate):178:196 -> a
    20:22:com.android.tools.r8.graph.ParameterAnnotationsList rewrite(java.util.function.Function):200:202 -> a
    1:3:void forEachAnnotation(java.util.function.Consumer):104:106 -> b
    1:5:com.android.tools.r8.graph.DexAnnotationSet get(int):147:151 -> 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:2: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 countNonMissing():124:124 -> f
    1:1:boolean isEmpty():99:99 -> g
    1:1:int size():116:116 -> h
    1:1:int hashCode():71:71 -> hashCode
    1:1:com.android.tools.r8.graph.ParameterAnnotationsList empty():47:47 -> i
com.android.tools.r8.graph.Presorted -> com.android.tools.r8.graph.H0:
    void setSortedIndex(int) -> b
com.android.tools.r8.graph.PresortedComparable -> com.android.tools.r8.graph.I0:
    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.J0:
    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>
    void visit(com.android.tools.r8.graph.DexClass) -> a
    void visit(com.android.tools.r8.graph.DexType) -> a
    1:2:void run(com.android.tools.r8.graph.DexProgramClass[]):66:67 -> a
    1:10:void accept(com.android.tools.r8.graph.DexType):37:46 -> b
    11:15:void accept(com.android.tools.r8.graph.DexClass):56:60 -> b
    16:17:void accept(com.android.tools.r8.graph.DexTypeList):50:51 -> b
    16:17:void accept(com.android.tools.r8.graph.DexClass):60 -> b
    18:19:void accept(com.android.tools.r8.graph.DexClass):61:62 -> b
com.android.tools.r8.graph.ResolutionResult -> com.android.tools.r8.graph.K0:
    1:1:void <clinit>():14:14 -> <clinit>
    void forEachTarget(java.util.function.Consumer) -> a
    boolean hasSingleTarget() -> a
    boolean isValidVirtualTarget(com.android.tools.r8.utils.InternalOptions) -> a
    1:1:java.util.Set lookupVirtualDispatchTargets(boolean,com.android.tools.r8.graph.AppInfoWithSubtyping):33:33 -> a
    2:3:void lambda$lookupVirtualTargets$0(java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):53:54 -> a
    4:65:java.util.Set lookupInterfaceTargets(com.android.tools.r8.graph.AppInfoWithSubtyping):64:125 -> a
    com.android.tools.r8.graph.DexEncodedMethod asSingleTarget() -> b
    1:14:java.util.Set lookupVirtualTargets(com.android.tools.r8.graph.AppInfoWithSubtyping):38:51 -> b
    15:16:void lambda$lookupInterfaceTargets$2(java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):111:112 -> b
    com.android.tools.r8.graph.DexEncodedMethod asResultOfResolve() -> c
    1:2:void lambda$lookupInterfaceTargets$1(java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):100:101 -> c
    boolean isValidVirtualTargetForDynamicDispatch() -> d
    java.util.List asListOfTargets() -> e
com.android.tools.r8.graph.ResolutionResult$1 -> com.android.tools.r8.graph.K0$a:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():38:38 -> <clinit>
com.android.tools.r8.graph.ResolutionResult$ArrayCloneMethodResult -> com.android.tools.r8.graph.K0$b:
    com.android.tools.r8.graph.ResolutionResult$ArrayCloneMethodResult INSTANCE -> a
    1:1:void <clinit>():228:228 -> <clinit>
    1:1:void <init>():230:230 -> <init>
    boolean isValidVirtualTarget(com.android.tools.r8.utils.InternalOptions) -> a
    boolean isValidVirtualTargetForDynamicDispatch() -> d
com.android.tools.r8.graph.ResolutionResult$ClassNotFoundResult -> com.android.tools.r8.graph.K0$c:
    com.android.tools.r8.graph.ResolutionResult$ClassNotFoundResult INSTANCE -> a
    1:1:void <clinit>():259:259 -> <clinit>
    1:1:void <init>():261:261 -> <init>
com.android.tools.r8.graph.ResolutionResult$EmptyResult -> com.android.tools.r8.graph.K0$d:
    1:1:void <init>():188:188 -> <init>
    void forEachTarget(java.util.function.Consumer) -> a
    boolean hasSingleTarget() -> a
    java.util.Set lookupInterfaceTargets(com.android.tools.r8.graph.AppInfoWithSubtyping) -> a
    com.android.tools.r8.graph.DexEncodedMethod asSingleTarget() -> b
    java.util.Set lookupVirtualTargets(com.android.tools.r8.graph.AppInfoWithSubtyping) -> b
    com.android.tools.r8.graph.DexEncodedMethod asResultOfResolve() -> c
    1:1:java.util.List asListOfTargets():207:207 -> e
com.android.tools.r8.graph.ResolutionResult$FailedResolutionResult -> com.android.tools.r8.graph.K0$e:
    1:1:void <init>():245:245 -> <init>
    boolean isValidVirtualTarget(com.android.tools.r8.utils.InternalOptions) -> a
    boolean isValidVirtualTargetForDynamicDispatch() -> d
com.android.tools.r8.graph.ResolutionResult$IncompatibleClassResult -> com.android.tools.r8.graph.K0$f:
    com.android.tools.r8.graph.ResolutionResult$IncompatibleClassResult INSTANCE -> a
    1:1:void <clinit>():267:267 -> <clinit>
    1:1:void <init>():269:269 -> <init>
com.android.tools.r8.graph.ResolutionResult$MultiResult -> com.android.tools.r8.graph.K0$g:
    boolean $assertionsDisabled -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList methods -> a
    1:1:void <clinit>():131:131 -> <clinit>
    1:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList):135:137 -> <init>
    boolean hasSingleTarget() -> a
    1:2:boolean isValidVirtualTarget(com.android.tools.r8.utils.InternalOptions):142:143 -> a
    3:3:void forEachTarget(java.util.function.Consumer):184:184 -> a
    com.android.tools.r8.graph.DexEncodedMethod asSingleTarget() -> b
    1:1:com.android.tools.r8.graph.DexEncodedMethod asResultOfResolve():163:163 -> c
    1:2:boolean isValidVirtualTargetForDynamicDispatch():152:153 -> d
    1:1:java.util.List asListOfTargets():179:179 -> e
com.android.tools.r8.graph.ResolutionResult$NoSuchMethodResult -> com.android.tools.r8.graph.K0$h:
    com.android.tools.r8.graph.ResolutionResult$NoSuchMethodResult INSTANCE -> a
    1:1:void <clinit>():275:275 -> <clinit>
    1:1:void <init>():277:277 -> <init>
com.android.tools.r8.graph.SmaliWriter -> com.android.tools.r8.graph.L0:
    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:11:java.lang.String smali(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):27:37 -> a
    12:19:java.lang.String smali(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):28:35 -> a
    20:22:void writeClassFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):66:68 -> a
    23:25:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):73:75 -> a
    1:13:void writeClassHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):47:59 -> b
com.android.tools.r8.graph.TopDownClassHierarchyTraversal -> com.android.tools.r8.graph.M0:
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.ClassHierarchyTraversal$Scope):14:14 -> <init>
    com.android.tools.r8.graph.ClassHierarchyTraversal self() -> a
    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:11:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):61:69 -> a
    12:26:boolean com.android.tools.r8.graph.ClassHierarchyTraversal$Scope.shouldBePassedToVisitor(com.android.tools.r8.graph.DexClass):25:39 -> a
    12:26:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):69 -> a
    27:27:boolean com.android.tools.r8.graph.ClassHierarchyTraversal$Scope.shouldBePassedToVisitor(com.android.tools.r8.graph.DexClass):36:36 -> a
    27:27:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):69 -> a
    28:28:boolean com.android.tools.r8.graph.ClassHierarchyTraversal$Scope.shouldBePassedToVisitor(com.android.tools.r8.graph.DexClass):33:33 -> a
    28: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):30:30 -> a
    29:29:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):69 -> a
    30:35:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):72:77 -> a
    36:36:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    36:36:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):77 -> a
    37:46:boolean shouldTraverseUpwardsFrom(com.android.tools.r8.graph.DexClass):95:104 -> a
    37:46:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):78 -> a
    47:47:boolean shouldTraverseUpwardsFrom(com.android.tools.r8.graph.DexClass):101:101 -> a
    47:47:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):78 -> a
    48:55:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):79:86 -> a
    56:56:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    56:56:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):86 -> a
    57:66:boolean shouldTraverseUpwardsFrom(com.android.tools.r8.graph.DexClass):95:104 -> a
    57:66:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):87 -> a
    67:67:boolean shouldTraverseUpwardsFrom(com.android.tools.r8.graph.DexClass):101:101 -> a
    67:67:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):87 -> a
    68:68:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):88:88 -> a
    1:1:com.android.tools.r8.graph.TopDownClassHierarchyTraversal forProgramClasses(com.android.tools.r8.graph.AppView):50:50 -> b
    2:3:com.android.tools.r8.graph.ClassHierarchyTraversal com.android.tools.r8.graph.ClassHierarchyTraversal.excludeInterfaces():60:61 -> b
    2:3:com.android.tools.r8.graph.ClassHierarchyTraversal excludeInterfaces():0 -> b
com.android.tools.r8.graph.UseRegistry -> com.android.tools.r8.graph.N0:
    1:1:void <clinit>():15:15 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexItemFactory):24:25 -> <init>
    1:25:void registerCallSite(com.android.tools.r8.graph.DexCallSite):99:123 -> 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):133:135 -> registerProto
com.android.tools.r8.graph.UseRegistry$MethodHandleUse -> com.android.tools.r8.graph.N0$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.O0.a:
    com.android.tools.r8.ir.optimize.info.OptimizationFeedback feedback -> b
    java.util.List r8InstructionSequence -> d
    java.util.List javacInstructionSequence -> c
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> a
    1:8:void <clinit>():74:81 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):27:29 -> <init>
    1:3:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):34:36 -> a
    4:12:boolean hasJavacClinitAssertionCode(com.android.tools.r8.graph.CfCode):84:92 -> a
    4:12:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):36 -> a
    13:30:com.android.tools.r8.cf.code.CfFieldInstruction isJavacInstructionSequence(com.android.tools.r8.graph.CfCode,int):112:129 -> a
    13:30:boolean hasJavacClinitAssertionCode(com.android.tools.r8.graph.CfCode):93 -> a
    13:30:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):36 -> a
    31:48:com.android.tools.r8.cf.code.CfFieldInstruction isR8InstructionSequence(com.android.tools.r8.graph.CfCode,int):134:151 -> a
    31:48:boolean hasJavacClinitAssertionCode(com.android.tools.r8.graph.CfCode):95 -> a
    31:48:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):36 -> a
    49:55:boolean hasJavacClinitAssertionCode(com.android.tools.r8.graph.CfCode):98:104 -> a
    49:55:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):36 -> a
    56:56:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):37:37 -> a
com.android.tools.r8.graph.analysis.EnqueuerAnalysis -> com.android.tools.r8.graph.O0.b:
    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.InitializedClassesInInstanceMethodsAnalysis -> com.android.tools.r8.graph.O0.d:
    java.util.Map mapping -> b
    com.android.tools.r8.graph.AppView appView -> a
    1:1:void <init>(com.android.tools.r8.graph.AppView):59:59 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.AppView):56:60 -> <init>
    1:17:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):65:81 -> a
    18:18:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):79:79 -> a
    19:19:void done():87:87 -> a
com.android.tools.r8.graph.analysis.InitializedClassesInInstanceMethodsAnalysis$1 -> com.android.tools.r8.graph.O0.c:
com.android.tools.r8.graph.analysis.InitializedClassesInInstanceMethodsAnalysis$InitializedClassesInInstanceMethods -> com.android.tools.r8.graph.O0.d$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):19:19 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):25:27 -> <init>
    1:15:boolean isClassDefinitelyLoadedInInstanceMethodsOn(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):33:47 -> a
    16:16:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    16:16:boolean isClassDefinitelyLoadedInInstanceMethodsOn(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):47 -> a
    17:17:boolean isClassDefinitelyLoadedInInstanceMethodsOn(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):48:48 -> a
com.android.tools.r8.ir.analysis.AbstractError -> com.android.tools.r8.w.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 specific(com.android.tools.r8.graph.DexType):40:40 -> a
    2:2:boolean cannotThrow():44:44 -> a
    3:8:com.android.tools.r8.graph.DexType getSpecificError(com.android.tools.r8.graph.DexItemFactory):52:57 -> a
    1:1:boolean isThrowing():48:48 -> b
    1:1:com.android.tools.r8.ir.analysis.AbstractError bottom():36:36 -> 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.w.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.w.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.w.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.w.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):163:163 -> 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):163:163 -> 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):168:168 -> 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):168:168 -> 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):168:168 -> 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.w.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.w.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.w.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.w.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):168:168 -> a
    9:9:void markInitializedOnNormalExit(com.android.tools.r8.graph.DexType):80 -> a
    10:14:void markInitializedOnNormalExit(com.android.tools.r8.graph.DexType):84:88 -> a
    15:15:boolean com.android.tools.r8.graph.DexClass.classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView):737:737 -> a
    15:15:void markInitializedOnNormalExit(com.android.tools.r8.graph.DexType):88 -> a
    16:33:void markInitializedOnNormalExit(com.android.tools.r8.graph.DexType):93:110 -> a
    34:39:java.lang.Void handleFieldInstruction(com.android.tools.r8.ir.code.FieldInstruction):116:121 -> a
    34:39:java.lang.Object handleFieldInstruction(com.android.tools.r8.ir.code.FieldInstruction):55 -> a
    40:48:java.lang.Void handleInvoke(com.android.tools.r8.ir.code.Invoke):129:137 -> a
    40:48:java.lang.Object handleInvoke(com.android.tools.r8.ir.code.Invoke):55 -> a
    49:52:java.lang.Void handleInvoke(com.android.tools.r8.ir.code.Invoke):136:139 -> a
    49:52:java.lang.Object handleInvoke(com.android.tools.r8.ir.code.Invoke):55 -> a
    53:53:java.lang.Void visit(com.android.tools.r8.ir.code.NewInstance):148:148 -> a
    53:53:java.lang.Object visit(com.android.tools.r8.ir.code.NewInstance):55 -> a
com.android.tools.r8.ir.analysis.TypeChecker -> com.android.tools.r8.w.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):168:168 -> 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):168:168 -> 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.w.a.h:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.graph.DexType context -> c
    com.android.tools.r8.ir.code.IRCode code -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():26:26 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):32:35 -> <init>
    1:100:boolean isConstantArrayThroughoutMethod(com.android.tools.r8.ir.code.Value):53:152 -> a
    101:133:boolean valueMayBeMutatedBeforeMethodExit(com.android.tools.r8.ir.code.Value,java.util.Set):216:248 -> a
    1:5:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value):39:43 -> b
    6:42:boolean isNewInstanceWithoutEnvironmentDependentFields(com.android.tools.r8.ir.code.Value):156:192 -> b
    6:42:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value):46 -> b
    43:43:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):163:163 -> b
    43:43:boolean isNewInstanceWithoutEnvironmentDependentFields(com.android.tools.r8.ir.code.Value):192 -> b
    43:43:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value):46 -> b
    44:58:boolean isNewInstanceWithoutEnvironmentDependentFields(com.android.tools.r8.ir.code.Value):198:212 -> b
    44:58:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value):46 -> b
com.android.tools.r8.ir.analysis.constant.Bottom -> com.android.tools.r8.w.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.w.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.w.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.w.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.w.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:28:void run():49:76 -> a
    29:46:void run():53:70 -> a
    47:47:boolean lambda$rewriteCode$0(java.util.Map$Entry):83:83 -> a
    48:73:void lambda$rewriteCode$3(java.util.List,java.util.Map$Entry):86:111 -> a
    74:74:boolean lambda$rewriteCode$1(com.android.tools.r8.ir.code.Instruction):99:99 -> a
    75:75:boolean lambda$rewriteCode$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction):110:110 -> a
    76:76:com.android.tools.r8.ir.analysis.constant.LatticeElement getLatticeElement(com.android.tools.r8.ir.code.Value):124:124 -> a
    77:92:void visitPhi(com.android.tools.r8.ir.code.Phi):132:147 -> a
    93:93:com.android.tools.r8.ir.analysis.constant.LatticeElement getLatticeElement(com.android.tools.r8.ir.code.Value):124:124 -> a
    93:93:void visitPhi(com.android.tools.r8.ir.code.Phi):148 -> a
    94:95:void visitPhi(com.android.tools.r8.ir.code.Phi):149:150 -> a
    96:96:void setLatticeElement(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.constant.LatticeElement):128:128 -> a
    96:96:void visitPhi(com.android.tools.r8.ir.code.Phi):151 -> a
    97:100:void visitInstructions(com.android.tools.r8.ir.code.BasicBlock):157:160 -> a
    101:105:boolean isExecutableEdge(int,int):250:254 -> a
    1:41:void rewriteCode():80:120 -> b
    42:46:void visitInstruction(com.android.tools.r8.ir.code.Instruction):164:168 -> b
    47:47:void setLatticeElement(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.constant.LatticeElement):128:128 -> b
    47:47:void visitInstruction(com.android.tools.r8.ir.code.Instruction):168 -> b
    48:52:void visitInstruction(com.android.tools.r8.ir.code.Instruction):169:173 -> b
    53:110:void addFlowEdgesForJumpInstruction(com.android.tools.r8.ir.code.JumpInstruction):178:235 -> b
    53:110:void visitInstruction(com.android.tools.r8.ir.code.Instruction):173 -> b
    111:116:void setExecutableEdge(int,int):241:246 -> b
com.android.tools.r8.ir.analysis.constant.Top -> com.android.tools.r8.w.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.w.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.w.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:102:boolean isValueOfInterestOrAlias(com.android.tools.r8.ir.code.Value):212:212 -> a
    1:9:boolean isEscaping(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value):55:63 -> b
    10:12:void addToWorklist(com.android.tools.r8.ir.code.Value):170:172 -> b
com.android.tools.r8.ir.analysis.escape.EscapeAnalysisConfiguration -> com.android.tools.r8.w.a.k.b:
com.android.tools.r8.ir.analysis.fieldaccess.FieldBitAccessAnalysis -> com.android.tools.r8.w.a.l.a:
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():20:20 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.AppView):24:26 -> <init>
    1:22:void recordFieldAccesses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):30:51 -> a
    23:30:int computeBitsRead(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexEncodedField):59:66 -> a
    23:30:void recordFieldAccesses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):52 -> a
    31:50:boolean isOnlyUsedToUpdateFieldValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexEncodedField):91:110 -> a
    31:50:int computeBitsRead(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexEncodedField):67 -> a
    31:50:void recordFieldAccesses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):52 -> a
    51:62:int computeBitsRead(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexEncodedField):70:81 -> a
    51:62:void recordFieldAccesses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):52 -> a
    63:63:void recordFieldAccesses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):52:52 -> a
com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet -> com.android.tools.r8.w.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.w.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:void addAll(com.android.tools.r8.ir.analysis.fieldvalueanalysis.ConcreteMutableFieldSet):31:31 -> a
    2:2:boolean contains(com.android.tools.r8.graph.DexEncodedField):63:63 -> a
    com.android.tools.r8.ir.analysis.fieldvalueanalysis.ConcreteMutableFieldSet asConcreteFieldSet() -> b
    com.android.tools.r8.ir.analysis.fieldvalueanalysis.KnownFieldSet asKnownFieldSet() -> c
    boolean isKnownFieldSet() -> e
    1:5:boolean equals(java.lang.Object):81:85 -> equals
    1:1:int hashCode():73:73 -> hashCode
    1:1:int size():68:68 -> size
com.android.tools.r8.ir.analysis.fieldvalueanalysis.EmptyFieldSet -> com.android.tools.r8.w.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.w.a.m.d:
    com.android.tools.r8.ir.optimize.info.OptimizationFeedback feedback -> c
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> f
    com.android.tools.r8.graph.DexEncodedMethod method -> d
    com.android.tools.r8.ir.code.IRCode code -> b
    java.util.Map fieldsMaybeReadBeforeBlockInclusiveCache -> e
    1:1:void <clinit>():33:33 -> <clinit>
    1:5: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.DexEncodedMethod):46:50 -> <init>
    1:4:void run(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.DexEncodedMethod):55:58 -> a
    5:47:void computeFieldOptimizationInfo():71:113 -> a
    48:49:boolean com.android.tools.r8.ir.code.DominatorTree.dominatesAllOf(com.android.tools.r8.ir.code.BasicBlock,java.lang.Iterable):118:119 -> a
    48:49:void computeFieldOptimizationInfo():113 -> a
    50:50:boolean fieldMaybeReadBeforeInstruction(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Instruction):127:127 -> a
    50:50:void computeFieldOptimizationInfo():117 -> a
    51:51:boolean fieldMaybeReadBeforeBlock(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.BasicBlock):153:153 -> a
    51:51:boolean fieldMaybeReadBeforeInstruction(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Instruction):130 -> a
    51:51:void computeFieldOptimizationInfo():117 -> a
    52:55:java.util.Map getOrCreateFieldsMaybeReadBeforeBlockInclusive():63:66 -> a
    52:55:boolean fieldMaybeReadBeforeBlockInclusive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.BasicBlock):163 -> a
    52:55:boolean fieldMaybeReadBeforeBlock(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.BasicBlock):154 -> a
    52:55:boolean fieldMaybeReadBeforeInstruction(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Instruction):130 -> a
    52:55:void computeFieldOptimizationInfo():117 -> a
    56:56:boolean fieldMaybeReadBeforeBlockInclusive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.BasicBlock):163:163 -> a
    56:56:boolean fieldMaybeReadBeforeBlock(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.BasicBlock):154 -> a
    56:56:boolean fieldMaybeReadBeforeInstruction(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Instruction):130 -> a
    56:56:void computeFieldOptimizationInfo():117 -> a
    57:64:boolean fieldMaybeReadBeforeInstruction(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Instruction):136:143 -> a
    57:64:void computeFieldOptimizationInfo():117 -> a
    65:65:void computeFieldOptimizationInfo():120:120 -> a
    66:75:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):247:256 -> a
    66:75:void computeFieldOptimizationInfo():120 -> a
    76:76:java.util.LinkedList lambda$computeFieldOptimizationInfo$0(com.android.tools.r8.graph.DexEncodedField):90:90 -> a
    77:77:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet lambda$createFieldsMaybeReadBeforeBlockInclusive$1(com.android.tools.r8.ir.code.BasicBlock):178:178 -> a
    1:70:java.util.Map createFieldsMaybeReadBeforeBlockInclusive():171:240 -> b
com.android.tools.r8.ir.analysis.fieldvalueanalysis.KnownFieldSet -> com.android.tools.r8.w.a.m.e:
    boolean isConcreteFieldSet() -> a
    com.android.tools.r8.ir.analysis.fieldvalueanalysis.ConcreteMutableFieldSet asConcreteFieldSet() -> b
com.android.tools.r8.ir.analysis.fieldvalueanalysis.UnknownFieldSet -> com.android.tools.r8.w.a.m.f:
    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.w.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.w.a.o.b:
    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> b
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set removedExtensionFields -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():66:66 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.proto.ProtoReferences):74:74 -> <init>
    2:8:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.proto.ProtoReferences):71:77 -> <init>
    1:1:void postOptimizeGeneratedExtensionRegistry(com.android.tools.r8.ir.conversion.IRConverter):94:94 -> a
    2:4:void lambda$postOptimizeGeneratedExtensionRegistry$0(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod):98:100 -> a
    5:5:void lambda$postOptimizeGeneratedExtensionRegistry$0(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod):96:96 -> a
    6:9:boolean isDeadProtoExtensionField(com.android.tools.r8.graph.DexField):119:122 -> a
    10:10:boolean isDeadProtoExtensionField(com.android.tools.r8.graph.DexField):121:121 -> a
    11:16:boolean isDeadProtoExtensionField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.FieldAccessInfoCollection):129:134 -> a
    17:17:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    17:17:boolean isDeadProtoExtensionField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.FieldAccessInfoCollection):134 -> a
    18:33:boolean isDeadProtoExtensionField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.FieldAccessInfoCollection):135:150 -> a
    34:36:void forEachDeadProtoExtensionField(java.util.function.Consumer):154:156 -> a
    37:39:void lambda$forEachDeadProtoExtensionField$1(java.util.function.Consumer,com.android.tools.r8.graph.FieldAccessInfo):158:160 -> a
    40:70:void logRemainingProtoExtensionFields():167:197 -> a
    71:87:void logRemainingProtoExtensionFields():194:210 -> a
    88:91:void lambda$logRemainingProtoExtensionFields$2(java.util.function.Predicate,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):172:175 -> a
    92:102:void lambda$logRemainingProtoExtensionFields$2(java.util.function.Predicate,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):172:182 -> a
    103:103:void lambda$logRemainingProtoExtensionFields$2(java.util.function.Predicate,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):180:180 -> a
    104:106:void lambda$logRemainingProtoExtensionFields$3(java.lang.StringBuilder,com.android.tools.r8.graph.DexMethod):207:209 -> a
    107:107:java.util.function.Predicate getSkipPredicate(java.nio.file.Path):251:251 -> a
    1:1:void run():86:86 -> b
    2:2:boolean wasRemoved(com.android.tools.r8.graph.DexField):90:90 -> b
    3:10:void forEachFindLiteExtensionByNumberMethod(java.util.function.Consumer):105:112 -> b
com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker$1 -> com.android.tools.r8.w.a.o.a:
    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):182:182 -> <init>
    1:2:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):186:187 -> registerStaticFieldRead
com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteShrinker -> com.android.tools.r8.w.a.o.c:
    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>():39:39 -> <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):53:63 -> <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):62:64 -> <init>
    1:1:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68:68 -> a
    2:2:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences.isDynamicMethod(com.android.tools.r8.graph.DexMethod):79:79 -> a
    2:2:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    3:3:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):102:102 -> a
    3:3:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> a
    4:4:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    4:4:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):102 -> a
    4:4:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> a
    5:17:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):103:115 -> a
    5:17:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> 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):142:142 -> 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):136 -> a
    18:18:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):118 -> a
    18:18:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> a
    19:19:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> 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):144 -> 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):136 -> a
    19:19:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):118 -> a
    19:19:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> 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):144:144 -> 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):136 -> a
    20:20:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):118 -> a
    20:20:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> 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):282:282 -> 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):142 -> 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):136 -> a
    21:21:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):118 -> a
    21:21:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> 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):154:156 -> 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):137 -> a
    22:24:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):118 -> a
    22:24:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> a
    25:25:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.previous():27:27 -> 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):156 -> 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):137 -> a
    25:25:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):118 -> a
    25:25:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> 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):157:164 -> 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):137 -> a
    26:33:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):118 -> a
    26:33:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> 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):1012:1012 -> 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):164 -> 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):137 -> a
    34:34:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):118 -> a
    34:34:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> 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):165:166 -> 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):137 -> a
    35:36:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):118 -> a
    35:36:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> a
    37:37:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):27:27 -> 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):165 -> 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):137 -> a
    37:37:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):118 -> a
    37:37:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> 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):170:172 -> 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):137 -> a
    38:40:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):118 -> a
    38:40:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> a
    41:41:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):27:27 -> 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):173 -> 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):137 -> a
    41:41:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):118 -> a
    41:41:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> 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):174:176 -> 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):137 -> a
    42:44:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):118 -> a
    42:44:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> a
    45:45:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):27:27 -> 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):174 -> 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):137 -> a
    45:45:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):118 -> a
    45:45:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> a
    46:53: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):178:185 -> a
    46:53: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):137 -> a
    46:53:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):118 -> a
    46:53:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> a
    54:56: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
    54:56: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):185 -> a
    54:56: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):137 -> a
    54:56:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):118 -> a
    54:56:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> a
    57:57: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):189:189 -> a
    57:57: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):137 -> a
    57:57:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):118 -> a
    57:57:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> a
    58:58:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):125:125 -> a
    58:58:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):69 -> a
    59:59:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences.isDynamicMethod(com.android.tools.r8.graph.DexMethod):79:79 -> a
    59:59:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    60:60:void postOptimizeDynamicMethods(com.android.tools.r8.ir.conversion.IRConverter):74:74 -> a
    61:63:void lambda$postOptimizeDynamicMethods$0(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod):78:80 -> a
    64:64:void lambda$postOptimizeDynamicMethods$0(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod):76:76 -> a
    65:68:void forEachDynamicMethod(java.util.function.Consumer):85:88 -> a
    69:72:com.android.tools.r8.ir.code.InvokeMethod getNewMessageInfoInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.analysis.proto.ProtoReferences):194:197 -> a
com.android.tools.r8.ir.analysis.proto.ProtoReferences -> com.android.tools.r8.w.a.o.d:
    com.android.tools.r8.graph.DexProto dynamicMethodProto -> i
    com.android.tools.r8.graph.DexProto findLiteExtensionByNumberProto -> j
    com.android.tools.r8.graph.DexMethod rawMessageInfoConstructor -> l
    com.android.tools.r8.graph.DexMethod newMessageInfoMethod -> k
    com.android.tools.r8.graph.DexString dynamicMethodName -> g
    com.android.tools.r8.graph.DexType rawMessageInfoType -> d
    com.android.tools.r8.graph.DexString findLiteExtensionByNumberName -> h
    com.android.tools.r8.graph.DexType generatedMessageLiteType -> c
    com.android.tools.r8.graph.DexType generatedExtensionType -> b
    com.android.tools.r8.graph.DexType extensionRegistryLiteType -> a
    com.android.tools.r8.graph.DexType methodToInvokeType -> f
    com.android.tools.r8.graph.DexType messageLiteType -> e
    1:5:void <init>(com.android.tools.r8.graph.DexItemFactory):33:37 -> <init>
    6:12:void <init>(com.android.tools.r8.graph.DexItemFactory):36:42 -> <init>
    13:22:void <init>(com.android.tools.r8.graph.DexItemFactory):41:50 -> <init>
    23:43:void <init>(com.android.tools.r8.graph.DexItemFactory):49:69 -> <init>
    44:52:void <init>(com.android.tools.r8.graph.DexItemFactory):65:73 -> <init>
    53:53:void <init>(com.android.tools.r8.graph.DexItemFactory):71:71 -> <init>
    1:1:boolean isDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod):83:83 -> a
    2:2:boolean isDynamicMethod(com.android.tools.r8.graph.DexMethod):79:79 -> a
    2:2:boolean isDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod):83 -> a
    3:4:boolean isFindLiteExtensionByNumberMethod(com.android.tools.r8.graph.DexMethod):87:88 -> a
    1:1:boolean isMessageInfoConstructionMethod(com.android.tools.r8.graph.DexMethod):92:92 -> b
com.android.tools.r8.ir.analysis.proto.ProtoShrinker -> com.android.tools.r8.w.a.o.e:
    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory factory -> b
    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 -> e
    com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteShrinker generatedMessageLiteShrinker -> d
    1:14:void <init>(com.android.tools.r8.graph.AppView):19:32 -> <init>
com.android.tools.r8.ir.analysis.proto.ProtoUtils -> com.android.tools.r8.w.a.o.f:
    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.w.a.o.h:
    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>():68:68 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory,com.android.tools.r8.ir.analysis.proto.ProtoReferences):73:75 -> <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.DexClass,com.android.tools.r8.ir.code.InvokeMethod):79:82 -> a
    5:5:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo$Builder com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo.builder():184:184 -> a
    5:5:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):87 -> a
    6:42:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):89:125 -> a
    43:50:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):124:131 -> a
    51:57:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):130:136 -> a
    58:58:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):135:135 -> a
    59:59:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):133:133 -> a
    60:75:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):127:142 -> a
    76:81:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):141:146 -> a
    82:119:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):144:181 -> a
    120:126:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):178:184 -> a
    127:135:com.android.tools.r8.ir.analysis.proto.schema.ProtoObject createProtoObject(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexClass):191:199 -> a
    136:137:com.android.tools.r8.graph.DexField com.android.tools.r8.graph.DexClass.lookupUniqueInstanceFieldWithName(com.android.tools.r8.graph.DexString):541:542 -> a
    136:137:com.android.tools.r8.ir.analysis.proto.schema.ProtoObject createProtoObject(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexClass):199 -> a
    138:157:com.android.tools.r8.ir.analysis.proto.schema.ProtoObject createProtoObject(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexClass):201:220 -> a
    158:158:boolean com.android.tools.r8.naming.dexitembasedstring.FieldNameComputationInfo.isForFieldName():0:0 -> a
    158:158:com.android.tools.r8.ir.analysis.proto.schema.ProtoObject createProtoObject(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexClass):212 -> a
    159:169:com.android.tools.r8.ir.analysis.proto.schema.ProtoObject createProtoObject(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexClass):222:232 -> a
    170:170:int invalidInfoFailure():236:236 -> a
    171:172:com.android.tools.r8.utils.ThrowingIntIterator createInfoIterator(com.android.tools.r8.ir.code.Value):245:246 -> a
    173:173:com.android.tools.r8.utils.ThrowingIntIterator createInfoIterator(com.android.tools.r8.graph.DexString):254:254 -> a
    173:173:com.android.tools.r8.utils.ThrowingIntIterator createInfoIterator(com.android.tools.r8.ir.code.Value):246 -> a
    174:174:com.android.tools.r8.utils.ThrowingIntIterator createInfoIterator(com.android.tools.r8.ir.code.Value):248:248 -> a
    1:1:com.android.tools.r8.ir.code.Value invalidObjectsFailure():240:240 -> b
    2:21:com.android.tools.r8.utils.ThrowingIterator createObjectIterator(com.android.tools.r8.ir.code.Value):300:319 -> b
    22:22:com.android.tools.r8.utils.ThrowingIterator createObjectIterator(com.android.tools.r8.ir.code.Value):312:312 -> b
    23:23:com.android.tools.r8.utils.ThrowingIterator createObjectIterator(com.android.tools.r8.ir.code.Value):301:301 -> b
com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder$1 -> com.android.tools.r8.w.a.o.g:
    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):254:256 -> <init>
    1:1:boolean hasNext():260:260 -> a
    1:1:boolean hasNext():260:260 -> b
    1:1:int nextInt():265 -> b
    2:7:int nextInt():273:278 -> b
    8:8:boolean hasNext():260:260 -> b
    8:8:int nextInt():285 -> b
    9:9:int nextInt():286:286 -> b
    10:10:int nextInt():275:275 -> b
    11:11:int nextInt():266:266 -> b
com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder$2 -> com.android.tools.r8.w.a.o.h$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):319:321 -> <init>
    1:2:boolean hasNext():325:326 -> a
    3:4:boolean isArrayPutOfInterest(com.android.tools.r8.ir.code.Instruction):358:359 -> a
    3:4:boolean hasNext():327 -> a
    5:8:boolean hasNext():330:333 -> a
    1:15:com.android.tools.r8.ir.code.Value next():340:354 -> b
    1:15:java.lang.Object next():319 -> b
    16:16:com.android.tools.r8.ir.code.Value next():350:350 -> b
    16:16:java.lang.Object next():319 -> b
    17:17:com.android.tools.r8.ir.code.Value next():341:341 -> b
    17:17:java.lang.Object next():319 -> b
com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder$InvalidRawMessageInfoException -> com.android.tools.r8.w.a.o.h$b:
    1:1:void <init>():364:364 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder$1):364:364 -> <init>
com.android.tools.r8.ir.analysis.proto.RawMessageInfoEncoder -> com.android.tools.r8.w.a.o.i:
    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.w.a.o.j.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() -> d
    1:1:java.lang.String toString():37:37 -> toString
com.android.tools.r8.ir.analysis.proto.schema.LiveProtoFieldObject -> com.android.tools.r8.w.a.o.j.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):1012:1012 -> 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() -> e
    1:1:com.android.tools.r8.graph.DexField getField():28:28 -> h
    1:1:java.lang.String toString():56:56 -> toString
com.android.tools.r8.ir.analysis.proto.schema.ProtoEnqueuerExtension -> com.android.tools.r8.w.a.o.j.c:
    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory factory -> 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
    java.util.Map liveProtos -> e
    java.util.Map seenButNotLiveProtos -> f
    java.util.Map reachesMapOrRequiredFieldFromMessageCache -> g
    1:1:void <clinit>():40:40 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):60:60 -> <init>
    2:19:void <init>(com.android.tools.r8.graph.AppView):48:65 -> <init>
    1:15:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):74:88 -> a
    16:19:void createProtoMessageInfoFromDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Map):93:96 -> a
    20:20:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    20:20:void createProtoMessageInfoFromDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Map):96 -> a
    21:33:void createProtoMessageInfoFromDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Map):97:109 -> a
    34:34:void createProtoMessageInfoFromDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Map):100:100 -> a
    35:47:void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):121:133 -> a
    48:48:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    48:48:void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):133 -> a
    49:79:void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):134:164 -> a
    80:118:void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):161:199 -> a
    119:120:int com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo.getHazzerBitFieldIndex(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134:135 -> a
    119:120:void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):200 -> a
    121:133:void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):201:213 -> a
    134:134:void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):212:212 -> a
    135:135:void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist) -> a
    136:141:void registerWriteToOneOfObjectsWithLiveOneOfCaseObject(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):225:230 -> a
    136:141:void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):218 -> a
    142:155:void registerWriteToOneOfObjectIfOneOfCaseObjectIsLive(com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):237:250 -> a
    156:156:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    156:156:void registerWriteToOneOfObjectIfOneOfCaseObjectIsLive(com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):250 -> a
    157:192:void registerWriteToOneOfObjectIfOneOfCaseObjectIsLive(com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):251:286 -> a
    193:193:void registerWriteToOneOfObjectIfOneOfCaseObjectIsLive(com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):285:285 -> a
    194:194:void registerWriteToOneOfObjectIfOneOfCaseObjectIsLive(com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):252:252 -> a
    195:206:boolean reachesMapOrRequiredField(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo):296:307 -> a
    207:212:boolean reachesMapOrRequiredField(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):319:324 -> a
    207:212:boolean reachesMapOrRequiredField(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo):308 -> a
    213:226:boolean reachesMapOrRequiredField(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):323:336 -> a
    213:226:boolean reachesMapOrRequiredField(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo):308 -> a
    227:235:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo getOrCreateProtoMessageInfo(com.android.tools.r8.graph.DexType):345:353 -> a
    236:236:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    236:236:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo getOrCreateProtoMessageInfo(com.android.tools.r8.graph.DexType):353 -> a
    237:250:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo getOrCreateProtoMessageInfo(com.android.tools.r8.graph.DexType):354:367 -> a
    251:251:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo getOrCreateProtoMessageInfo(com.android.tools.r8.graph.DexType):355:355 -> a
com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo -> com.android.tools.r8.w.a.o.j.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>():14:14 -> <clinit>
    1:5:void <init>(int,com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType,java.util.OptionalInt,java.util.List):33:37 -> <init>
    1:1:int getAuxData():45:45 -> a
    2:2:boolean hasAuxData():41:41 -> a
    2:2:int getAuxData():45 -> a
    3:4:int getAuxData():45:46 -> a
    5:5:void setAuxData(int):50:50 -> a
    6:6:boolean hasAuxData():41:41 -> a
    6:6:void setAuxData(int):50 -> a
    7:8:void setAuxData(int):50:51 -> a
    9:10:com.android.tools.r8.graph.DexType getBaseMessageType(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):75:76 -> 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):76 -> a
    12:27:com.android.tools.r8.graph.DexType getBaseMessageType(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):77:92 -> a
    28:30:com.android.tools.r8.graph.DexType getBaseMessageType(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):85:87 -> a
    31:38:com.android.tools.r8.graph.DexField getHazzerBitField(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):123:130 -> a
    1:1:int getNumber():55:55 -> b
    2:6:com.android.tools.r8.graph.DexField getOneOfCaseField(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):165:169 -> b
    1:1:java.util.List getObjects():59:59 -> c
    2:6:com.android.tools.r8.graph.DexField getValueStorage(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):180:184 -> c
    1:1:com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType getType():63:63 -> d
    2:2:boolean hasHazzerBitField(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):119:119 -> d
    1:1:boolean hasAuxData():41:41 -> e
    1:15:java.lang.String toString():189:203 -> toString
com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject -> com.android.tools.r8.w.a.o.j.e:
    1:1:void <init>():7:7 -> <init>
    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject asProtoFieldObject() -> b
    boolean isProtoFieldObject() -> f
com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType -> com.android.tools.r8.w.a.o.j.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):120:129 -> a
    23:23:int numberOfObjects(boolean,com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):127:127 -> 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 isRequired():103:103 -> i
    1:1:boolean isSingular():107:107 -> j
    1:1:boolean isValid():111:111 -> k
    1:1:boolean needsIsInitializedCheck():116:116 -> l
    1:8:int serialize():136:143 -> m
com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory -> com.android.tools.r8.w.a.o.j.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.w.a.o.j.i:
    java.util.LinkedList oneOfObjects -> d
    java.util.LinkedList fields -> b
    int flags -> a
    java.util.LinkedList hasBitsObjects -> c
    1:1:void <init>(int,java.util.LinkedList,java.util.LinkedList,java.util.LinkedList,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo$1):17:17 -> <init>
    2:6:void <init>(int,java.util.LinkedList,java.util.LinkedList,java.util.LinkedList):176:180 -> <init>
    1:1:java.util.List getFields():192:192 -> a
    1:1:int getFlags():196:196 -> b
    1:1:java.util.List getHasBitsObjects():200:200 -> c
    1:1:java.util.List getOneOfObjects():204:204 -> d
    1:1:boolean hasFields():208:208 -> e
    1:1:boolean isProto2():188:188 -> f
    1:1:int numberOfFields():212:212 -> g
    1:1:int numberOfHasBitsObjects():216:216 -> h
    1:1:int numberOfOneOfObjects():220:220 -> i
    1:9:java.lang.String toString():225:233 -> toString
com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo$1 -> com.android.tools.r8.w.a.o.j.h:
com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo$Builder -> com.android.tools.r8.w.a.o.j.i$a:
    boolean $assertionsDisabled -> e
    java.util.LinkedList oneOfObjects -> d
    java.util.LinkedList fields -> b
    int flags -> a
    java.util.LinkedList hasBitsObjects -> c
    1:1:void <clinit>():21:21 -> <clinit>
    1:1:void <init>():21:21 -> <init>
    1:1:void setFlags(int):30:30 -> a
    2:5:void addField(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo):34:37 -> a
    6:9:void addHasBitsObject(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject):41:44 -> a
    10:13:void addOneOfObject(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject,com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject):48:51 -> a
    14:16:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo build():55:57 -> a
    17:17:boolean lambda$removeUnusedSharedData$1(com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair):124:124 -> a
    1:10:void removeDeadFields():61:70 -> b
    11:14:boolean lambda$removeDeadFields$0(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo):65:68 -> b
    1:48:void removeUnusedSharedData():75:122 -> c
    49:86:void removeUnusedSharedData():121:158 -> c
    87:87:void removeUnusedSharedData():157:157 -> c
    88:89:void removeUnusedSharedData():76:77 -> c
com.android.tools.r8.ir.analysis.proto.schema.ProtoObject -> com.android.tools.r8.w.a.o.j.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.ProtoTypeObject asProtoTypeObject() -> c
    boolean isDeadProtoFieldObject() -> d
    boolean isLiveProtoFieldObject() -> e
    boolean isProtoFieldObject() -> f
    boolean isProtoTypeObject() -> g
com.android.tools.r8.ir.analysis.proto.schema.ProtoObjectFromInvokeStatic -> com.android.tools.r8.w.a.o.j.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):1012:1012 -> 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.w.a.o.j.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):26:28 -> 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):1012:1012 -> a
    4:4:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):27 -> 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
com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfFieldType -> com.android.tools.r8.w.a.o.j.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):53 -> a
    2:7:int numberOfObjects(boolean,com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):54:59 -> a
    boolean isOneOf() -> h
    boolean isSingular() -> j
    1:1:boolean isValid():47:47 -> k
com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair -> com.android.tools.r8.w.a.o.j.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.w.a.o.j.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):1049:1049 -> 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):1012:1012 -> 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):1049 -> 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):1050:1050 -> 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() -> c
    boolean isProtoTypeObject() -> g
    1:1:com.android.tools.r8.graph.DexType getType():21:21 -> h
com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect -> com.android.tools.r8.w.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.ArrayTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement memberTypeLattice -> r
    com.android.tools.r8.ir.analysis.type.NullabilityVariants variants -> s
    boolean $assertionsDisabled -> t
    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 -> C
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getArrayMemberTypeAsValueType():66:66 -> D
    com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement asArrayTypeLatticeElement() -> a
    1:1: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
    2:10:com.android.tools.r8.graph.DexType getArrayType(com.android.tools.r8.graph.DexItemFactory):40:48 -> a
    11:12: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
    13:13:boolean isBasedOnMissingClass(com.android.tools.r8.graph.AppView):94:94 -> a
    14:18:com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):135:139 -> a
    14:18:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):15 -> a
    19:30: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
    31:41: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
    42:54: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
    55:57: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):349:351 -> a
    55:57: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
    58:60: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):350:352 -> a
    58: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):188 -> a
    61:62: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):344:345 -> a
    61:62: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: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 -> create
    boolean isArrayType() -> e
    1:8:boolean equals(java.lang.Object):117:124 -> equals
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getArrayMemberTypeAsMemberType():62:62 -> getArrayMemberTypeAsMemberType
    1:4:int getNesting():53:56 -> getNesting
    1:5:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getOrCreateVariant(com.android.tools.r8.ir.analysis.type.Nullability):85:89 -> getOrCreateVariant
    1:1:int hashCode():129:129 -> hashCode
    1:1:java.lang.String toString():109:109 -> toString
com.android.tools.r8.ir.analysis.type.BooleanTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.BooleanTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.BooleanTypeLatticeElement INSTANCE -> q
    1:1:void <clinit>():8:8 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    boolean isBoolean() -> f
    1:1:com.android.tools.r8.ir.analysis.type.BooleanTypeLatticeElement getInstance():11:11 -> getInstance
    1:1:int hashCode():31:31 -> hashCode
com.android.tools.r8.ir.analysis.type.BottomTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.a:
    com.android.tools.r8.ir.analysis.type.BottomTypeLatticeElement INSTANCE -> o
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    boolean isBottom() -> g
    1:1:com.android.tools.r8.ir.analysis.type.BottomTypeLatticeElement getInstance():15:15 -> getInstance
    1:1:int hashCode():35:35 -> hashCode
    1:1:com.android.tools.r8.ir.analysis.type.Nullability nullability():11:11 -> y
com.android.tools.r8.ir.analysis.type.ByteTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.ByteTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.ByteTypeLatticeElement INSTANCE -> q
    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 -> getInstance
    boolean isByte() -> h
    1:1:int hashCode():31:31 -> hashCode
com.android.tools.r8.ir.analysis.type.CharTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.CharTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.CharTypeLatticeElement INSTANCE -> q
    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 -> getInstance
    1:1:int hashCode():31:31 -> hashCode
    boolean isChar() -> i
com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.b:
    com.android.tools.r8.graph.AppView appView -> s
    boolean $assertionsDisabled -> v
    com.android.tools.r8.ir.analysis.type.NullabilityVariants variants -> t
    java.util.Set lazyInterfaces -> r
    com.android.tools.r8.graph.DexType type -> u
    1:1:void <clinit>():23:23 -> <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):56:62 -> <init>
    1:1:com.android.tools.r8.graph.DexType getClassType():66:66 -> C
    1:8:java.util.Set getInterfaces():70:77 -> D
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):23:23 -> a
    2:3: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):35:36 -> a
    4:4: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):39:39 -> a
    5:5: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):47:47 -> a
    6:7: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):82:83 -> a
    8:10:boolean isBasedOnMissingClass(com.android.tools.r8.graph.AppView):98:100 -> a
    11:11:boolean lambda$isBasedOnMissingClass$2(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):100:100 -> a
    12:26:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):137:151 -> a
    27:27:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    27:27:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):154 -> a
    28:30:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):155:157 -> a
    31:31:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    31:31:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):157 -> a
    32:52:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):157:177 -> a
    53:62:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement join(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement,com.android.tools.r8.graph.AppView):184:193 -> a
    63:84:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement join(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement,com.android.tools.r8.graph.AppView):188:209 -> a
    85:88:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):230:233 -> a
    89:89:java.lang.Object com.android.tools.r8.utils.LRUCacheTable.get(java.lang.Object,java.lang.Object):55:55 -> a
    89:89:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):233 -> a
    90:94:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):233:237 -> a
    95:95:java.lang.Object com.android.tools.r8.utils.LRUCacheTable.get(java.lang.Object,java.lang.Object):55:55 -> a
    95:95:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):237 -> a
    96:123:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):237:264 -> a
    124:124:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    124:124:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):266 -> a
    125:164:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):268:307 -> a
    165:165:java.lang.Object com.android.tools.r8.utils.LRUCacheTable.get(java.lang.Object,java.lang.Object):55:55 -> a
    165:165:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):237 -> a
    166:166:java.lang.Object com.android.tools.r8.utils.LRUCacheTable.get(java.lang.Object,java.lang.Object):55:55 -> a
    166:166:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):233 -> a
    167:167:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):231:231 -> a
    168:168:java.util.Set lambda$computeLeastUpperBoundOfInterfaces$3(com.android.tools.r8.graph.DexType):253:253 -> 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):44:45 -> b
    3:3:java.util.Set lambda$computeLeastUpperBoundOfInterfaces$4(com.android.tools.r8.graph.DexType):269:269 -> b
    1:19:boolean equals(java.lang.Object):317:335 -> equals
    1:5:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getOrCreateVariant(com.android.tools.r8.ir.analysis.type.Nullability):88:92 -> getOrCreateVariant
    1:1:int hashCode():131:131 -> hashCode
    boolean isClassType() -> j
    1:11:java.lang.String toString():115:125 -> toString
com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceMarker -> com.android.tools.r8.ir.analysis.type.b$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>():213:214 -> <clinit>
    1:1:void <init>(java.lang.String,int):212:212 -> <init>
com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceWithMarker -> com.android.tools.r8.ir.analysis.type.b$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):221:223 -> <init>
com.android.tools.r8.ir.analysis.type.DestructivePhiTypeUpdater -> com.android.tools.r8.ir.analysis.type.c:
    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):46:46 -> 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):46:46 -> 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.DoubleTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.DoubleTypeLatticeElement INSTANCE -> q
    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 -> getInstance
    1:1:int hashCode():26:26 -> hashCode
    boolean isDouble() -> k
com.android.tools.r8.ir.analysis.type.FloatTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.FloatTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.FloatTypeLatticeElement INSTANCE -> q
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.FloatTypeLatticeElement getInstance():10:10 -> getInstance
    1:1:int hashCode():25:25 -> hashCode
    boolean isFloat() -> m
com.android.tools.r8.ir.analysis.type.IntTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.IntTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.IntTypeLatticeElement INSTANCE -> q
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.IntTypeLatticeElement getInstance():10:10 -> getInstance
    1:1:int hashCode():25:25 -> hashCode
    boolean isInt() -> n
com.android.tools.r8.ir.analysis.type.LongTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.LongTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.LongTypeLatticeElement INSTANCE -> q
    1:1:void <clinit>():8:8 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.LongTypeLatticeElement getInstance():11:11 -> getInstance
    1:1:int hashCode():26:26 -> hashCode
    boolean isLong() -> o
com.android.tools.r8.ir.analysis.type.Nullability -> com.android.tools.r8.ir.analysis.type.d:
    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:1:boolean isDefinitelyNotNull():37:37 -> a
    2:11:com.android.tools.r8.ir.analysis.type.Nullability join(com.android.tools.r8.ir.analysis.type.Nullability):49:58 -> a
    1:1:boolean isDefinitelyNull():33:33 -> b
    2:2:boolean lessThanOrEqual(com.android.tools.r8.ir.analysis.type.Nullability):75:75 -> b
    1:1:boolean isMaybeNull():41:41 -> c
    2:11:com.android.tools.r8.ir.analysis.type.Nullability meet(com.android.tools.r8.ir.analysis.type.Nullability):62:71 -> c
    1:1:boolean isMaybeNull():41:41 -> d
    1:1:boolean isNullable():45 -> d
    2:2:boolean isNullable():45:45 -> d
    1:1:com.android.tools.r8.ir.analysis.type.Nullability bottom():91:91 -> e
    1:1:com.android.tools.r8.ir.analysis.type.Nullability definitelyNotNull():83:83 -> f
    1:1:com.android.tools.r8.ir.analysis.type.Nullability definitelyNull():79:79 -> 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.e:
    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.f:
    boolean $assertionsDisabled -> o
    1:1:void <clinit>():15:15 -> <clinit>
    1:1:void <init>():15:15 -> <init>
    1:8:boolean hasDexType():66:73 -> A
    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
    boolean isPrimitive() -> s
    1:1:com.android.tools.r8.ir.analysis.type.Nullability nullability():19:19 -> y
com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.Nullability nullability -> o
    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement NULL_BOTTOM_INSTANCE -> q
    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement NULL_INSTANCE -> p
    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>
    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement access$000():9:9 -> A
    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement access$100():9:9 -> B
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement asMeetWithNotNull():79:79 -> asMeetWithNotNull
    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement asReferenceTypeLatticeElement() -> d
    1:1:boolean equals(java.lang.Object):94:94 -> equals
    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getNullTypeLatticeElement():73:73 -> getNullTypeLatticeElement
    1:1:int hashCode():99:99 -> hashCode
    boolean isReference() -> t
    1:1:com.android.tools.r8.ir.analysis.type.Nullability nullability():69:69 -> y
com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement -> com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$a:
    1:1:void <init>(com.android.tools.r8.ir.analysis.type.Nullability):14:14 -> <init>
    1:1:boolean equals(java.lang.Object):50:50 -> equals
    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getOrCreateVariant(com.android.tools.r8.ir.analysis.type.Nullability):19:19 -> getOrCreateVariant
    1:1:int hashCode():42:42 -> hashCode
    boolean isNullType() -> p
    1:1:java.lang.String toString():37:37 -> toString
com.android.tools.r8.ir.analysis.type.ShortTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.ShortTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.ShortTypeLatticeElement INSTANCE -> q
    1:1:void <clinit>():8:8 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.ShortTypeLatticeElement getInstance():11:11 -> getInstance
    1:1:int hashCode():31:31 -> hashCode
    boolean isShort() -> u
com.android.tools.r8.ir.analysis.type.SinglePrimitiveTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.g:
    com.android.tools.r8.ir.analysis.type.SinglePrimitiveTypeLatticeElement INSTANCE -> p
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>():13:13 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.SinglePrimitiveTypeLatticeElement getInstance():17:17 -> getInstance
    1:1:int hashCode():37:37 -> hashCode
    boolean isSinglePrimitive() -> v
com.android.tools.r8.ir.analysis.type.TopTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.h:
    com.android.tools.r8.ir.analysis.type.TopTypeLatticeElement INSTANCE -> o
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.TopTypeLatticeElement getInstance():15:15 -> getInstance
    1:1:int hashCode():35:35 -> hashCode
    boolean isTop() -> w
    1:1:com.android.tools.r8.ir.analysis.type.Nullability nullability():11:11 -> y
com.android.tools.r8.ir.analysis.type.TypeAnalysis -> com.android.tools.r8.ir.analysis.type.j:
    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>():27:27 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,boolean):49:49 -> <init>
    2:14:void <init>(com.android.tools.r8.graph.AppView,boolean):39:51 -> <init>
    1:2:void analyze():55:56 -> a
    3:8:void analyzeValue(com.android.tools.r8.ir.code.Value):137:142 -> a
    3:8:void analyze():56 -> a
    9:12:void widening(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):61:64 -> a
    13:15:void narrowing(java.lang.Iterable):74:76 -> a
    16:19:void analyzeValues(java.lang.Iterable,com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode):85:88 -> a
    20:22:void enqueue(com.android.tools.r8.ir.code.Value):92:94 -> a
    23:38:void analyzeBasicBlock(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):100:115 -> a
    23:38:void lambda$widening$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):63 -> a
    39:59:void analyzeBasicBlock(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):112:132 -> a
    39:59:void lambda$widening$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):63 -> a
    60:89:void updateTypeOfValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):146:175 -> a
    90:102:com.android.tools.r8.graph.DexType getRefinedReceiverType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethodWithReceiver):181:193 -> a
    1:1:boolean verifyValuesUpToDate(java.lang.Iterable):80:80 -> b
    1:1:void widening(java.lang.Iterable):68:68 -> c
com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode -> com.android.tools.r8.ir.analysis.type.i:
    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>():30:34 -> <clinit>
    1:1:void <init>(java.lang.String,int):29:29 -> <init>
com.android.tools.r8.ir.analysis.type.TypeLatticeElement -> com.android.tools.r8.ir.analysis.type.k:
    com.android.tools.r8.ir.analysis.type.FloatTypeLatticeElement FLOAT -> h
    boolean $assertionsDisabled -> n
    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement NULL -> m
    com.android.tools.r8.ir.analysis.type.IntTypeLatticeElement INT -> g
    com.android.tools.r8.ir.analysis.type.ByteTypeLatticeElement BYTE -> d
    com.android.tools.r8.ir.analysis.type.CharTypeLatticeElement CHAR -> f
    com.android.tools.r8.ir.analysis.type.TopTypeLatticeElement TOP -> b
    com.android.tools.r8.ir.analysis.type.DoubleTypeLatticeElement DOUBLE -> k
    com.android.tools.r8.ir.analysis.type.SinglePrimitiveTypeLatticeElement SINGLE -> i
    com.android.tools.r8.ir.analysis.type.BottomTypeLatticeElement BOTTOM -> a
    com.android.tools.r8.ir.analysis.type.WidePrimitiveTypeLatticeElement WIDE -> l
    com.android.tools.r8.ir.analysis.type.BooleanTypeLatticeElement BOOLEAN -> c
    com.android.tools.r8.ir.analysis.type.ShortTypeLatticeElement SHORT -> e
    com.android.tools.r8.ir.analysis.type.LongTypeLatticeElement LONG -> j
    1:17:void <clinit>():18:34 -> <clinit>
    1:1:void <init>():18:18 -> <init>
    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):58:69 -> a
    13:25: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):136:148 -> a
    13:25:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):69 -> a
    26:26: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:0 -> a
    26:26:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):69 -> a
    27:43:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):70:86 -> a
    44:45:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement objectClassType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):344:345 -> a
    44:45:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):87 -> a
    46:54:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):90:98 -> a
    55:55:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):65:65 -> a
    56:58:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(java.lang.Iterable,com.android.tools.r8.graph.AppView):103:105 -> a
    59:67:boolean equalUpToNullability(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):183:191 -> a
    68:69:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement classClassType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):357:358 -> a
    70:70: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):369:369 -> a
    71:75: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):374:378 -> a
    76:77: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
    76:77: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):379 -> a
    78:78:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):110:110 -> a
    78:78: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
    78:78: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):379 -> a
    79:106:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):81:108 -> a
    79:106: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
    79:106: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):379 -> a
    107:107:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):104:104 -> a
    107:107: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
    107:107: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):379 -> a
    108:112:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):102:106 -> a
    108:112: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
    108:112: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):379 -> a
    113:127:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):86:100 -> a
    113:127: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
    113:127: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):379 -> a
    128:128: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):381:381 -> 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):135:135 -> 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):344:345 -> 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):149:170 -> 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):363:364 -> 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):119:123 -> d
    boolean isArrayType() -> e
    boolean isBoolean() -> f
    boolean isBottom() -> g
    boolean isByte() -> h
    boolean isChar() -> i
    boolean isClassType() -> j
    boolean isDouble() -> k
    1:4:boolean isFineGrainedType():306:309 -> l
    boolean isFloat() -> m
    boolean isInt() -> n
    boolean isLong() -> o
    boolean isNullType() -> p
    1:1:boolean isNullable():42:42 -> q
    1:8:boolean isPreciseType():295:302 -> r
    boolean isPrimitive() -> s
    boolean isReference() -> t
    boolean isShort() -> u
    boolean isSinglePrimitive() -> v
    boolean isTop() -> w
    boolean isWidePrimitive() -> x
    com.android.tools.r8.ir.analysis.type.Nullability nullability() -> y
    1:1:int requiredRegisters():338:338 -> z
com.android.tools.r8.ir.analysis.type.WidePrimitiveTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.l:
    com.android.tools.r8.ir.analysis.type.WidePrimitiveTypeLatticeElement INSTANCE -> p
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>():13:13 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.WidePrimitiveTypeLatticeElement getInstance():17:17 -> getInstance
    1:1:int hashCode():42:42 -> hashCode
    boolean isWidePrimitive() -> x
    int requiredRegisters() -> z
com.android.tools.r8.ir.code.Add -> com.android.tools.r8.w.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>
    boolean isCommutative() -> E2
    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():127:127 -> I2
    boolean isAdd() -> O0
    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
    2:2:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):92:92 -> a
    com.android.tools.r8.ir.code.Add asAdd() -> b
    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
    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
    int opcode() -> z2
com.android.tools.r8.ir.code.AlwaysMaterializingDefinition -> com.android.tools.r8.w.b.b:
    1:1:void <init>(com.android.tools.r8.ir.code.Value):18:18 -> <init>
    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
    boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction) -> 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
    1:1:int maxInValueRegister():56:56 -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.AlwaysMaterializingNop -> com.android.tools.r8.w.b.c:
    1:1:void <init>():19:19 -> <init>
    boolean hasInvariantOutType() -> I0
    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:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):49:49 -> 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):65:65 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    1:1:int maxInValueRegister():54:54 -> x2
    1:1:int maxOutValueRegister():59:59 -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.AlwaysMaterializingUser -> com.android.tools.r8.w.b.d:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():15:15 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value):18:18 -> <init>
    boolean hasInvariantOutType() -> I0
    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
    boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction) -> 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 com.android.tools.r8.ir.optimize.InliningConstraints.forAlwaysMaterializingUser():55:55 -> 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):66 -> a
    4:4:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):71:71 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    1:2:int maxInValueRegister():54:55 -> x2
    1:1:int maxOutValueRegister():60:60 -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.And -> com.android.tools.r8.w.b.e:
    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>
    boolean isCommutative() -> E2
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():94:94 -> I2
    boolean isAnd() -> Q0
    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 identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):79:79 -> a
    3:3: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
    com.android.tools.r8.ir.code.And asAnd() -> c
    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
    int opcode() -> z2
com.android.tools.r8.ir.code.Argument -> com.android.tools.r8.w.b.f:
    boolean $assertionsDisabled -> i
    boolean knownToBeBoolean -> h
    1:1:void <clinit>():22:22 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.Value,boolean):27:29 -> <init>
    boolean hasInvariantOutType() -> I0
    boolean isArgument() -> R0
    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
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArgument():59:59 -> 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):84 -> a
    2:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):63:63 -> a
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):68:68 -> a
    4:4:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):94:94 -> a
    5:5:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):104:104 -> a
    6:6:boolean outTypeKnownToBeBoolean(java.util.Set):114:114 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    com.android.tools.r8.ir.code.Argument asArgument() -> d
    1:1:int maxInValueRegister():52:52 -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.ArithmeticBinop -> com.android.tools.r8.w.b.g:
    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() -> I2
    boolean isArithmeticBinop() -> S0
    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:35:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):77:86 -> a
    36:70:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):83:117 -> a
    71:80:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):105:114 -> a
    81:90:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):111:120 -> a
    91:117:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):135:161 -> a
    118:118: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.ir.code.ArithmeticBinop asArithmeticBinop() -> e
    com.android.tools.r8.code.Instruction CreateLong(int,int,int) -> f
com.android.tools.r8.ir.code.ArrayGet -> com.android.tools.r8.w.b.h:
    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>
    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():264:264 -> B0
    boolean throwsOnNullInput() -> C2
    1:1:com.android.tools.r8.ir.code.Value array():57:57 -> D2
    1:1:com.android.tools.r8.ir.code.Value index():61:61 -> E2
    boolean hasInvariantOutType() -> I0
    boolean instructionTypeCanThrow() -> N0
    boolean isArrayGet() -> T0
    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:1:com.android.tools.r8.ir.code.Value dest():53:53 -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):78 -> a
    2:3:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):78:79 -> a
    4:4:com.android.tools.r8.ir.code.Value index():61:61 -> a
    4:4:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):80 -> a
    5:42:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):80:117 -> a
    43:43:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):115:115 -> a
    44:46:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):89:91 -> a
    47:73:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):85:111 -> a
    74:74:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):108:108 -> a
    75:80:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):97:102 -> a
    81:81:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isDefinitelyNull():330:330 -> a
    81:81:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):102 -> a
    82:82:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):103:103 -> a
    83:85:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):102:104 -> a
    86:111:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):94:119 -> a
    112:112:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArrayGet():63:63 -> a
    112:112:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):164 -> a
    113:113:com.android.tools.r8.ir.code.MemberType getMemberType():66:66 -> a
    114:116:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):71:73 -> a
    117:117:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):132:132 -> a
    118:124:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):175:181 -> a
    125:126:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):186:187 -> a
    127:127:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):192:192 -> a
    128:129:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):197:198 -> a
    130:130:com.android.tools.r8.ir.code.MemberType getMemberType():66:66 -> a
    130:130:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):200 -> a
    131:170:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):200:239 -> a
    171:172:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):235:236 -> a
    173:173:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):235:235 -> a
    174:174:com.android.tools.r8.ir.code.Value dest():53:53 -> a
    174:174:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):237 -> a
    175:175:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):237:237 -> a
    176:177:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):231:232 -> a
    178:178:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):231:231 -> a
    179:179:com.android.tools.r8.ir.code.Value dest():53:53 -> a
    179:179:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):233 -> a
    180:180:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):233:233 -> a
    181:182:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):227:228 -> a
    183:185:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):227:229 -> a
    186:187:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):223:224 -> a
    188:190:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):223:225 -> a
    191:192:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):219:220 -> a
    193:195:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):219:221 -> a
    196:197:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):215:216 -> a
    198:200:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):215:217 -> a
    201:203:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):207:209 -> a
    204:204:com.android.tools.r8.ir.code.MemberType getMemberType():66:66 -> a
    204:204:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):239 -> a
    205:205:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):239:239 -> a
    206:210:com.android.tools.r8.ir.analysis.type.TypeLatticeElement checkConstraint(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ValueTypeConstraint):244:248 -> a
    211:211:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    211:211:com.android.tools.r8.ir.analysis.type.TypeLatticeElement checkConstraint(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ValueTypeConstraint):248 -> a
    212:212:com.android.tools.r8.ir.analysis.type.TypeLatticeElement checkConstraint(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ValueTypeConstraint):248:248 -> a
    213:213:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):254:254 -> a
    214:215:boolean outTypeKnownToBeBoolean(java.util.Set):269:270 -> a
    216:216:void constrainType(com.android.tools.r8.ir.conversion.TypeConstraintResolver):276:276 -> a
    217:217:com.android.tools.r8.ir.code.Value dest():53:53 -> a
    217:217:void constrainType(com.android.tools.r8.ir.conversion.TypeConstraintResolver):276 -> a
    218:218:void constrainType(com.android.tools.r8.ir.conversion.TypeConstraintResolver):276:276 -> a
    219:219:void lambda$constrainType$0(com.android.tools.r8.ir.code.MemberType):276:276 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    com.android.tools.r8.ir.code.ArrayGet asArrayGet() -> f
    int maxInValueRegister() -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.ArrayLength -> com.android.tools.r8.w.b.i:
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):24:24 -> <init>
    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():154:154 -> B0
    boolean throwsOnNullInput() -> C2
    1:1:com.android.tools.r8.ir.code.Value array():42:42 -> D2
    boolean hasInvariantOutType() -> I0
    boolean instructionTypeCanThrow() -> N0
    boolean isArrayLength() -> U0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:com.android.tools.r8.ir.code.Value dest():38:38 -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):57 -> a
    2:4:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):57:59 -> a
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArrayLength():67:67 -> 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):118 -> a
    6:10:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):79:83 -> a
    11:11:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):93:93 -> a
    12:12:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):88:88 -> a
    12:12:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):93 -> a
    13:20:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):98:105 -> a
    21:21:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):112:112 -> a
    22:23:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):123:124 -> a
    24:24:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):129:129 -> a
    25:25:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):134:134 -> a
    26:26:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):144:144 -> a
    1:1:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):88:88 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    com.android.tools.r8.ir.code.ArrayLength asArrayLength() -> g
    int maxInValueRegister() -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.ArrayPut -> com.android.tools.r8.w.b.j:
    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:com.android.tools.r8.ir.code.Value getNonNullInput():266:266 -> B0
    boolean throwsOnNullInput() -> C2
    1:1:com.android.tools.r8.ir.code.Value array():58:58 -> D2
    1:1:com.android.tools.r8.ir.code.Value index():62:62 -> E2
    1:1:com.android.tools.r8.ir.code.Value value():66:66 -> F2
    boolean hasInvariantOutType() -> I0
    1:5:boolean instructionInstanceCanThrow():136:140 -> M0
    boolean instructionTypeCanThrow() -> N0
    boolean isArrayPut() -> V0
    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:1:com.android.tools.r8.ir.code.MemberType getMemberType():71:71 -> a
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArrayPut():71:71 -> a
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):236 -> a
    3:40:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):76:113 -> a
    41:41:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):111:111 -> a
    42:42:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):87:87 -> a
    43:67:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):83:107 -> a
    68:68:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):104:104 -> a
    69:74:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):93:98 -> a
    75:75:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isDefinitelyNull():330:330 -> a
    75:75:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):98 -> a
    76:76:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):99:99 -> a
    77:79:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):98:100 -> a
    80:105:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):90:115 -> a
    106:106:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):207:207 -> a
    107:107:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):220:220 -> a
    108:108:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):241:241 -> a
    109:109:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):251:251 -> a
    110:110:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):256:256 -> a
    111:111:void constrainType(com.android.tools.r8.ir.conversion.TypeConstraintResolver):271:271 -> a
    112:112:void lambda$constrainType$0(com.android.tools.r8.ir.code.MemberType):271:271 -> a
    1:48:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):150:197 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    com.android.tools.r8.ir.code.ArrayPut asArrayPut() -> h
    int maxInValueRegister() -> x2
    1:1:int maxOutValueRegister():125:125 -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.Assume -> com.android.tools.r8.w.b.k:
    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>
    boolean isIntroducingAnAlias() -> D1
    1:1:com.android.tools.r8.ir.code.Assume$Assumption getAssumption():82:82 -> D2
    1:1:com.android.tools.r8.ir.code.Instruction origin():90:90 -> E2
    1:1:com.android.tools.r8.ir.code.Value src():86:86 -> F2
    boolean hasInvariantOutType() -> I0
    boolean isAssume() -> W0
    1:1:boolean isAssumeDynamicType():137:137 -> X0
    1:1:boolean isAssumeNonNull():150:150 -> Y0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1: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
    2:2: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
    3:3:boolean outTypeKnownToBeBoolean(java.util.Set):95:95 -> a
    4:22:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):167:185 -> a
    23:29:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):183:189 -> a
    30:30:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):204:204 -> a
    31:31:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):209:209 -> a
    32:36:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):229:233 -> a
    37:37:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forAssume():235:235 -> a
    37:37:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):239 -> a
    38:45:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):244:251 -> a
    46:46:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):245:245 -> a
    47:47:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):256:256 -> a
    48:48:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):266:266 -> a
    1:1:com.android.tools.r8.ir.code.Assume createAssumeNoneInstruction(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):41:41 -> b
    2:5:boolean verifyTypes(com.android.tools.r8.graph.AppView):276:279 -> b
    6:6:boolean isAssumeNone():124:124 -> b
    6:6:boolean verifyTypes(com.android.tools.r8.graph.AppView):280 -> b
    7:7:boolean isAssumeDynamicType():137:137 -> b
    7:7:boolean verifyTypes(com.android.tools.r8.graph.AppView):280 -> b
    8:11:boolean verifyTypes(com.android.tools.r8.graph.AppView):285:288 -> b
    12:14:boolean verifyTypes(com.android.tools.r8.graph.AppView):287:289 -> b
    15:17:boolean verifyTypes(com.android.tools.r8.graph.AppView):281:283 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    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 isOutConstant() -> g2
    com.android.tools.r8.ir.code.Assume asAssume() -> i
    1:1:com.android.tools.r8.ir.code.Assume asAssumeDynamicType():142:142 -> j
    2:2:boolean isAssumeDynamicType():137:137 -> j
    2:2:com.android.tools.r8.ir.code.Assume asAssumeDynamicType():142 -> j
    3:3:com.android.tools.r8.ir.code.Assume asAssumeDynamicType():142:142 -> j
    1:1:com.android.tools.r8.ir.code.Assume asAssumeNonNull():155:155 -> k
    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:com.android.tools.r8.ir.code.Value getAliasForOutValue():199:199 -> w0
    1:1:int maxInValueRegister():214:214 -> x2
    1:1:int maxOutValueRegister():219:219 -> y2
    1:1:boolean isAssumeNone():124:124 -> z0
    1:1:java.lang.String getInstructionName():100 -> z0
    2:2:boolean isAssumeDynamicType():137:137 -> z0
    2:2:java.lang.String getInstructionName():103 -> z0
    3:6:java.lang.String getInstructionName():106:109 -> z0
    int opcode() -> z2
com.android.tools.r8.ir.code.Assume$1 -> com.android.tools.r8.w.b.k$a:
com.android.tools.r8.ir.code.Assume$Assumption -> com.android.tools.r8.w.b.k$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.w.b.k$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$NoAssumption -> com.android.tools.r8.w.b.k$d:
    com.android.tools.r8.ir.code.Assume$NoAssumption instance -> a
    boolean $assertionsDisabled -> b
    1:2:void <clinit>():338:339 -> <clinit>
    1:1:void <init>():341:341 -> <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):354:354 -> a
    boolean isAssumeNonNull() -> b
    boolean isAssumeNone() -> c
    1:1:com.android.tools.r8.ir.code.Assume$NoAssumption get():344:344 -> d
com.android.tools.r8.ir.code.Assume$NonNullAssumption -> com.android.tools.r8.w.b.k$e:
    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.BasicBlock -> com.android.tools.r8.w.b.l:
    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():543:544 -> B
    1:1:boolean hasIncompletePhis():1132:1132 -> C
    1:1:boolean hasOneNormalExit():1518:1518 -> D
    1:1:boolean hasPhis():527:527 -> E
    1:1:boolean hasUniquePredecessor():225:225 -> F
    1:2:void incrementUnfilledPredecessorCount():667:668 -> G
    1:1:boolean isEmpty():612:612 -> H
    1:1:boolean isFilled():535:535 -> I
    1:1:boolean isSealed():1120:1120 -> J
    1:11:boolean isSimpleAlwaysThrowingPath():1495:1505 -> K
    1:1:boolean isTrivialGoto():1450:1450 -> L
    1:1:com.android.tools.r8.ir.code.InstructionIterator iterator():1594:1594 -> M
    1:1:int numberOfCatchHandlers():1543:1543 -> N
    1:2:int numberOfThrowingInstructions():1548:1549 -> O
    1:2:void removeAllNormalSuccessors():290:291 -> P
    3:3:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> P
    3:3:void removeAllNormalSuccessors():291 -> P
    4:12:void removeAllNormalSuccessors():292:300 -> P
    1:1:void setFilledForTesting():539:539 -> Q
    1:9:java.lang.String toDetailedString():1173:1181 -> R
    10:10:boolean isFilled():535:535 -> R
    10:10:java.lang.String toDetailedString():1181 -> R
    11:12:java.lang.String toDetailedString():1181:1182 -> R
    13:13:boolean isSealed():1120:1120 -> R
    13:13:java.lang.String toDetailedString():1182 -> R
    14:51:java.lang.String toDetailedString():1182:1219 -> R
    52:52:int digits(int):1169:1169 -> R
    52:52:java.lang.String toDetailedString():1219 -> R
    53:88:java.lang.String toDetailedString():1219:1254 -> R
    1:3:void unlinkCatchHandler():781:783 -> S
    1:5:com.android.tools.r8.ir.code.BasicBlock unlinkSinglePredecessor():742:746 -> T
    1:5:void unlinkSinglePredecessorSiblingsAllowed():752:756 -> U
    1:6:com.android.tools.r8.ir.code.BasicBlock unlinkSingleSuccessor():765:770 -> V
    1:2:boolean verifyFilledPredecessors():682:683 -> W
    1:2:boolean notifyPredecessorsMayChangeListeners():243:244 -> X
    1:2:boolean notifySuccessorsMayChangeListeners():197:198 -> Y
    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:26:void removePredecessor(com.android.tools.r8.ir.code.BasicBlock,java.util.Set):266:283 -> a
    27:27:void com.android.tools.r8.ir.code.Phi.removeTrivialPhi():228:228 -> a
    27:27:void removePredecessor(com.android.tools.r8.ir.code.BasicBlock,java.util.Set):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:104:java.lang.Iterable instructionsAfter(com.android.tools.r8.ir.code.Instruction):574:574 -> a
    105:106:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):643:644 -> a
    107:109:void clearMark(int):656:658 -> a
    110:110:void addPhi(com.android.tools.r8.ir.code.Phi):688:688 -> a
    111:111:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRMetadata):702:702 -> a
    112:112:boolean isFilled():535:535 -> a
    112:112:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRMetadata):702 -> a
    113:116:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRMetadata):702:705 -> a
    117:117:void close(com.android.tools.r8.ir.conversion.IRBuilder):709:709 -> a
    118:118:boolean isFilled():535:535 -> a
    118:118:void close(com.android.tools.r8.ir.conversion.IRBuilder):709 -> a
    119:123:void close(com.android.tools.r8.ir.conversion.IRBuilder):709:713 -> a
    124:124:boolean com.android.tools.r8.ir.code.JumpInstruction.isJumpInstruction():0:0 -> a
    124:124:void close(com.android.tools.r8.ir.conversion.IRBuilder):713 -> a
    125:125:void close(com.android.tools.r8.ir.conversion.IRBuilder):714:714 -> a
    126:127:boolean verifyNoValuesAfterThrowingInstruction():1580:1581 -> a
    126:127:void close(com.android.tools.r8.ir.conversion.IRBuilder):714 -> a
    128:128:com.android.tools.r8.ir.code.InstructionIterator iterator(int):1598:1598 -> a
    128:128:boolean verifyNoValuesAfterThrowingInstruction():1581 -> a
    128:128:void close(com.android.tools.r8.ir.conversion.IRBuilder):714 -> a
    129:134:boolean verifyNoValuesAfterThrowingInstruction():1582:1587 -> a
    129:134:void close(com.android.tools.r8.ir.conversion.IRBuilder):714 -> a
    135:135:void close(com.android.tools.r8.ir.conversion.IRBuilder):715:715 -> a
    136:147:void filledPredecessor(com.android.tools.r8.ir.conversion.IRBuilder):1079:1090 -> a
    136:147:void close(com.android.tools.r8.ir.conversion.IRBuilder):716 -> a
    148:148:void unlinkCatchHandlerForGuard(com.android.tools.r8.graph.DexType):796:796 -> a
    149:153:boolean isCatchHandlerForSingleGuard():822:826 -> a
    149:153:void unlinkCatchHandlerForGuard(com.android.tools.r8.graph.DexType):797 -> a
    154:158:void unlinkCatchHandlerForGuard(com.android.tools.r8.graph.DexType):799:803 -> a
    159:159:boolean lambda$removeCatchHandlerWithGuard$6(int,com.android.tools.r8.ir.code.BasicBlock):814:814 -> a
    160:169:java.util.List unlink(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.DominatorTree,java.util.Set):843:852 -> a
    170:179:void linkCatchSuccessors(java.util.List,java.util.List):891:900 -> a
    180:192:void appendCatchHandler(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType):904:916 -> a
    193:196:int numberOfNormalSuccessors():218:221 -> a
    193:196:void appendCatchHandler(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType):917 -> a
    197:210:void appendCatchHandler(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType):922:935 -> a
    211:221:boolean renameGuardsInCatchHandlers(com.android.tools.r8.graph.GraphLense):946:956 -> a
    222:223:com.android.tools.r8.ir.code.Value readOnThrowValue(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1006:1007 -> a
    222:223:com.android.tools.r8.ir.code.Value readCurrentDefinition(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1019 -> a
    224:226:com.android.tools.r8.ir.code.Value readCurrentDefinition(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1021:1023 -> a
    227:245:void updateCurrentDefinition(int,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1044:1062 -> a
    246:250:void writeCurrentDefinition(int,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):1069:1073 -> a
    251:254:void writeCurrentDefinition(int,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):1072:1075 -> a
    255:256:com.android.tools.r8.ir.code.BasicBlock$EdgeType getEdgeType(com.android.tools.r8.ir.code.BasicBlock):1095:1096 -> a
    257:261:void addIncompletePhi(int,com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1124:1128 -> a
    262:269:void appendBasicBlockList(java.lang.StringBuilder,java.util.List,java.util.function.Function):1141:1148 -> a
    270:273:void printDebugValueSet(java.lang.String,java.util.List,java.lang.StringBuilder):1258:1261 -> a
    274:306:void print(com.android.tools.r8.utils.CfgPrinter):1266:1298 -> a
    307:308:void printBlockList(com.android.tools.r8.utils.CfgPrinter,java.util.List):1302:1303 -> a
    309:321:void removeInstructions(java.util.List):1324:1336 -> a
    322:322:void setInstructions(java.util.LinkedList):1316:1316 -> a
    322:322:void removeInstructions(java.util.List):1337 -> a
    323:324: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):1361:1362 -> a
    325:329:com.android.tools.r8.ir.code.BasicBlock createGotoBlock(int,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.IRMetadata):1375:1379 -> a
    330:336: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[]):1410:1416 -> a
    337:346: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):1432:1441 -> a
    347:347:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):698:698 -> a
    347:347: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):1442 -> a
    348:348:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):698:698 -> a
    348:348: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):1443 -> a
    349:350: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):1444:1445 -> a
    351:352:boolean canThrow():1557:1558 -> a
    353:353:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.IRCode):1606:1606 -> a
    354:354:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.IRMetadata):1610:1610 -> a
    354:354:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.IRCode):1606 -> a
    355:355:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.IRMetadata):1610:1610 -> a
    356:356:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.IRCode,int):1614:1614 -> a
    357:357:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):1625:1625 -> a
    358:369:com.android.tools.r8.ir.code.BasicBlock createSplitBlock(int,boolean):1643:1654 -> a
    370:375:void moveCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):1675:1680 -> a
    370:375:com.android.tools.r8.ir.code.BasicBlock createSplitBlock(int,boolean):1658 -> a
    376:380:com.android.tools.r8.ir.code.BasicBlock createSplitBlock(int,boolean):1662:1666 -> a
    381:397: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):1691:1707 -> a
    398:428:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1726:1756 -> a
    398:428: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):1707 -> a
    429:429:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):698:698 -> a
    429:429:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1757 -> a
    429:429: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):1707 -> a
    430:433:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1758:1761 -> a
    430:433: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):1707 -> a
    434:434:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):698:698 -> a
    434:434:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1762 -> a
    434:434: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):1707 -> a
    435:440:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1763:1768 -> a
    435:440: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):1707 -> a
    441:441:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1746:1746 -> a
    441:441: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):1707 -> a
    442:442:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    442:442:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1746 -> a
    442:442: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):1707 -> a
    443:477:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1746:1780 -> a
    443:477: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):1707 -> a
    478:478:void com.android.tools.r8.ir.code.Phi.addOperands(java.util.List):131:131 -> a
    478:478:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1782 -> a
    478:478: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):1707 -> a
    479:479:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1783:1783 -> a
    479:479: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):1707 -> a
    480:480:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1726:1726 -> a
    480:480: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):1707 -> a
    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():93:93 -> 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():93:93 -> 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:99:void removePhisByIndex(java.util.List):521:522 -> b
    100:100:java.lang.Iterable instructionsBefore(com.android.tools.r8.ir.code.Instruction):578:578 -> b
    101:102:void decrementUnfilledPredecessorCount(int):672:673 -> b
    103:104:void removePhi(com.android.tools.r8.ir.code.Phi):692:693 -> b
    105:114:void removeCatchHandlerWithGuard(com.android.tools.r8.graph.DexType):808:817 -> b
    115:142:java.util.Set cleanForRemoval():857:884 -> b
    143:144:com.android.tools.r8.ir.code.Value readOnThrowValue(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1006:1007 -> b
    143:144:boolean isOnThrowValue(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1013 -> b
    145:148:boolean hasCatchSuccessor(com.android.tools.r8.ir.code.BasicBlock):1100:1103 -> 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:boolean isMarked(int):662:663 -> c
    9:9:boolean blocksClean(java.util.List):728:728 -> c
    10:10:void clearCatchHandlers():1534:1534 -> c
    11:11:com.android.tools.r8.ir.code.InstructionIterator iterator(com.android.tools.r8.ir.code.Instruction):1602:1602 -> c
    12:24:boolean hasPathTo(com.android.tools.r8.ir.code.BasicBlock):1884:1896 -> c
    1:4:void link(com.android.tools.r8.ir.code.BasicBlock):721:724 -> d
    5:7:void clearCurrentDefinitions():992:994 -> d
    8:10:void removeInstruction(com.android.tools.r8.ir.code.Instruction):1345:1347 -> d
    11:11:com.android.tools.r8.ir.code.InstructionIterator iterator(int):1598:1598 -> d
    1:3:void removeSuccessor(com.android.tools.r8.ir.code.BasicBlock):260:262 -> e
    4:4:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>(int[]):135:135 -> e
    4:4:void removeSuccessor(com.android.tools.r8.ir.code.BasicBlock):262 -> e
    5:5:void removeSuccessor(com.android.tools.r8.ir.code.BasicBlock):262:262 -> e
    6:7:void clearUserInfo():638:639 -> e
    8:11:void mark(int):649:652 -> e
    12:12:com.android.tools.r8.ir.code.InstructionIterator iterator(com.android.tools.r8.ir.code.Instruction):1602:1602 -> e
    12:12:java.util.Iterator lambda$instructionsAfter$3(com.android.tools.r8.ir.code.Instruction):574 -> e
    1:2:int numberInstructions(int):562:563 -> f
    3:3:java.util.Iterator lambda$instructionsBefore$4(com.android.tools.r8.ir.code.Instruction):579:579 -> f
    4:5:boolean consistentCatchHandlers():963:964 -> f
    6:6:com.android.tools.r8.ir.code.CatchHandlers getCatchHandlersWithSuccessorIndexes():1530:1530 -> f
    6:6:boolean consistentCatchHandlers():965 -> f
    7:8:boolean consistentCatchHandlers():967:968 -> f
    9:28:boolean consistentCatchHandlers():967:986 -> f
    29:30:void transferCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):1538:1539 -> f
    1:2:void setNumber(int):553:554 -> g
    3:4:void decrementUnfilledPredecessorCount():677:678 -> g
    5:79:java.util.List appendCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):1800:1874 -> g
    int onThrowValueRegister(int) -> h
    1:2:void lambda$blocksClean$5(com.android.tools.r8.ir.code.BasicBlock):730:731 -> h
    3:17:void deduplicatePhis():1927:1941 -> h
    java.lang.String lambda$toDetailedString$7(com.android.tools.r8.ir.code.BasicBlock) -> i
    1:4:void detachAllSuccessors():835:838 -> i
    5:6:boolean verifyOnThrowWrite(int):1570:1571 -> i
    1:2:java.lang.String predecessorPostfix(com.android.tools.r8.ir.code.BasicBlock):1162:1163 -> j
    3:11:int guardsForCatchSuccessor(com.android.tools.r8.ir.code.BasicBlock):1107:1115 -> j
    3:11:java.lang.String predecessorPostfix(com.android.tools.r8.ir.code.BasicBlock):1163 -> j
    12:12:java.lang.String predecessorPostfix(com.android.tools.r8.ir.code.BasicBlock):1163:1163 -> j
    13:15:com.android.tools.r8.ir.code.BasicBlock endOfGotoChain():1478:1480 -> j
    1:1:com.android.tools.r8.ir.code.Instruction entry():616:616 -> k
    1:2:com.android.tools.r8.ir.code.Instruction exceptionalExit():626:627 -> l
    3:3:com.android.tools.r8.ir.code.InstructionIterator iterator(int):1598:1598 -> l
    3:3:com.android.tools.r8.ir.code.Instruction exceptionalExit():627 -> l
    4:6:com.android.tools.r8.ir.code.Instruction exceptionalExit():628:630 -> l
    1:3:com.android.tools.r8.ir.code.JumpInstruction exit():620:622 -> m
    1:5:com.android.tools.r8.ir.code.CatchHandlers getCatchHandlers():1522:1526 -> n
    1:1:com.android.tools.r8.ir.code.CatchHandlers getCatchHandlersWithSuccessorIndexes():1530:1530 -> o
    1:1:java.util.LinkedList getInstructions():570:570 -> 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():1154:1154 -> toString
    1:11:java.util.List getNormalSuccessors():204:214 -> u
    1:2:int getNumber():548:549 -> v
    1:1:java.lang.String getNumberAsString():558:558 -> w
    1:1:java.util.List getPhis():531:531 -> 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.w.b.l$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):579:582 -> <init>
    1:3:com.android.tools.r8.ir.code.Instruction advance():585:587 -> f
    1:1:boolean hasNext():596:596 -> hasNext
    1:5:com.android.tools.r8.ir.code.Instruction next():601:605 -> next
    1:5:java.lang.Object next():579 -> next
    6:6:com.android.tools.r8.ir.code.Instruction next():603:603 -> next
    6:6:java.lang.Object next():579 -> next
com.android.tools.r8.ir.code.BasicBlock$BasicBlockChangeListener -> com.android.tools.r8.w.b.l$b:
com.android.tools.r8.ir.code.BasicBlock$EdgeType -> com.android.tools.r8.w.b.l$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.w.b.l$d:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():1904:1904 -> <clinit>
    1:1:void <init>():1904:1904 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.BasicBlock$1):1904:1904 -> <init>
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):1904:1904 -> doEquivalent
    2:4:boolean doEquivalent(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Phi):1907:1909 -> doEquivalent
    2:4:boolean doEquivalent(java.lang.Object,java.lang.Object):1904 -> doEquivalent
    1:1:int doHash(java.lang.Object):1904:1904 -> doHash
    2:2:int doHash(com.android.tools.r8.ir.code.Phi):1919:1919 -> doHash
    2:2:int doHash(java.lang.Object):1904 -> doHash
    3:3:int com.android.tools.r8.ir.code.Value.hashCode():763:763 -> doHash
    3:3:int doHash(com.android.tools.r8.ir.code.Phi):1920 -> doHash
    3:3:int doHash(java.lang.Object):1904 -> doHash
com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo -> com.android.tools.r8.w.b.l$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():335:335 -> 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.w.b.m:
    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.w.b.n:
    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>():27:27 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.ir.code.BasicBlock):36:36 -> <init>
    2:9:void <init>(com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.ir.code.BasicBlock):32:39 -> <init>
    10:10:void <init>(com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.ir.code.BasicBlock,int):42:42 -> <init>
    11:24:void <init>(com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.ir.code.BasicBlock,int):32:45 -> <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):50:51 -> <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):88:88 -> a
    2:2:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):183:183 -> a
    3:3:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():93:93 -> a
    3:3:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):186 -> a
    4:17:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):186:199 -> a
    18:18:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):184:184 -> a
    19:23:com.android.tools.r8.ir.code.Value insertConstNullInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):204:208 -> a
    24:47:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):227:250 -> a
    48:48:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():93:93 -> a
    48:48:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):250 -> a
    49:62:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):250:263 -> a
    63:63:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):228:228 -> a
    64:73: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):265:274 -> a
    74:81:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):282:289 -> a
    82:82:boolean hasNext():56:56 -> a
    82:82:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):289 -> a
    83:86:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):289:292 -> a
    87:87:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> a
    87:87:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):292 -> a
    88:88:boolean hasPrevious():72:72 -> a
    88:88:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):296 -> a
    89:93:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):296:300 -> a
    94:95:void com.android.tools.r8.ir.code.Goto.<init>(com.android.tools.r8.ir.code.BasicBlock):21:22 -> a
    94:95:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):300 -> a
    96:114:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):301:319 -> a
    115:122:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):328:335 -> a
    123:155: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):361:393 -> a
    156:161:void removeArgumentInstruction(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Value):431:436 -> a
    162:168: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):447:453 -> a
    169:171:boolean canThrow(com.android.tools.r8.ir.code.IRCode):341:343 -> a
    169:171: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):455 -> a
    172:189: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):459:476 -> a
    190:190:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():93:93 -> a
    190:190: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):476 -> a
    191:198: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):476:483 -> a
    199:199:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():93:93 -> a
    199:199: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):486 -> a
    200:203: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):486:489 -> a
    204:206: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):488:490 -> a
    207:207:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> a
    207:207: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):491 -> a
    208:240: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):491:523 -> a
    241:241:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():93:93 -> a
    241:241: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):527 -> a
    242:246: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):527:531 -> a
    247:247:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():93:93 -> a
    247:247: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):532 -> a
    248:255: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):532:539 -> a
    256:256:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    256:256: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):539 -> a
    257: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):539:558 -> a
    277:277:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    277:277: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):558 -> a
    278:278: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):561:561 -> a
    279:279:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
    279:279: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):560 -> a
    280:313: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):559:592 -> a
    314:314:java.util.ListIterator com.android.tools.r8.ir.code.IRCode.listIterator(int):950:950 -> a
    314:314: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):592 -> a
    315:328: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):595:608 -> a
    329:345: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):408:424 -> a
    329:345: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 -> a
    346:351: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):616:621 -> a
    352:352:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    352:352: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):621 -> a
    353:363: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):621:631 -> a
    364:368: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):630:634 -> a
    369:395:com.android.tools.r8.ir.code.InstructionListIterator ensureSingleReturnInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.List):640:666 -> a
    396:396:void com.android.tools.r8.ir.code.Phi.addOperands(java.util.List):131:131 -> a
    396:396:com.android.tools.r8.ir.code.InstructionListIterator ensureSingleReturnInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.List):671 -> a
    397:397:com.android.tools.r8.ir.code.InstructionListIterator ensureSingleReturnInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.List):672:672 -> a
    398:398:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    398:398:com.android.tools.r8.ir.code.InstructionListIterator ensureSingleReturnInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.List):672 -> a
    399:416:com.android.tools.r8.ir.code.InstructionListIterator ensureSingleReturnInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.List):672:689 -> a
    417:417:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1026:1026 -> a
    417:417:com.android.tools.r8.ir.code.Value insertConstIntInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions,int):213 -> a
    418:420:com.android.tools.r8.ir.code.Value insertConstIntInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions,int):215:217 -> a
    1:1:void add(java.lang.Object):27:27 -> add
    1:7:void add(com.android.tools.r8.ir.code.Instruction):101:107 -> b
    1:7:void removeOrReplaceByDebugLocalRead():171:177 -> d
    8:8:void removeOrReplaceByDebugLocalRead():172:172 -> d
    1:5:void removeInstructionIgnoreOutValue():162:166 -> h
    6:6:void removeInstructionIgnoreOutValue():163:163 -> h
    1:1:boolean hasNext():56:56 -> hasNext
    1:1:boolean hasPrevious():72:72 -> hasPrevious
    1:1:java.lang.Object next():27:27 -> next
    2:2:com.android.tools.r8.ir.code.Instruction next():61:61 -> next
    1:1:int nextIndex():67:67 -> nextIndex
    1:1:java.lang.Object previous():27:27 -> previous
    2:2:com.android.tools.r8.ir.code.Instruction previous():77:77 -> previous
    1:1:int previousIndex():83:83 -> previousIndex
    1:6:void remove():137:142 -> remove
    7:7:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():93:93 -> remove
    7:7:void remove():142 -> remove
    8:9:void remove():142:143 -> remove
    10:10:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():93:93 -> remove
    10:10:void remove():143 -> remove
    11:25:void remove():143:157 -> remove
    26:26:void remove():138:138 -> remove
    1:1:void set(java.lang.Object):27:27 -> set
    2:5:void set(com.android.tools.r8.ir.code.Instruction):120:123 -> set
    2:5:void set(java.lang.Object):27 -> set
com.android.tools.r8.ir.code.BasicBlockIterator -> com.android.tools.r8.w.b.o:
    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.w.b.p:
    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:com.android.tools.r8.ir.code.NumericType getNumericType():36:36 -> D2
    boolean isCommutative() -> E2
    1:1:com.android.tools.r8.ir.code.Value leftValue():40:40 -> F2
    1:2:int maxInOutValueRegisterSize():82:83 -> G2
    1:1:com.android.tools.r8.ir.code.Value rightValue():44:44 -> H2
    boolean hasInvariantOutType() -> I0
    boolean isBinop() -> Z0
    1:8:boolean isTwoAddr(com.android.tools.r8.ir.regalloc.RegisterAllocator):51:58 -> a
    9:9:boolean com.android.tools.r8.utils.InternalOptions.canHaveMul2AddrBug():1261:1261 -> a
    9:9:boolean isTwoAddr(com.android.tools.r8.ir.regalloc.RegisterAllocator):58 -> a
    10:10:boolean isTwoAddr(com.android.tools.r8.ir.regalloc.RegisterAllocator):58:58 -> a
    11:11:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forBinop():75:75 -> a
    11:11:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):127 -> a
    12:12:int foldIntegers(int,int):99:99 -> a
    13:13:long foldLongs(long,long):103:103 -> a
    14:14:float foldFloat(float,float):107:107 -> a
    15:15:double foldDouble(double,double):111:111 -> a
    16:17:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):132:133 -> a
    18:18:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):138:138 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    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() -> l
    1:1:int maxInValueRegister():90:90 -> x2
    1:1:int maxOutValueRegister():95:95 -> y2
com.android.tools.r8.ir.code.CanonicalPositions -> com.android.tools.r8.w.b.q:
    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.w.b.r:
    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:6:java.util.List getAllTargets():64:64 -> a
    7:10:com.android.tools.r8.ir.code.CatchHandlers appendGuard(com.android.tools.r8.graph.DexType,java.lang.Object):80:83 -> a
    11:20:com.android.tools.r8.ir.code.CatchHandlers removeGuard(com.android.tools.r8.graph.DexType):87:96 -> a
    21:22: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
    23:24: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
    2:2:java.util.List getGuards():60:60 -> b
    1:4:java.util.Set getUniqueTargets():68:71 -> c
    1:5:boolean equals(java.lang.Object):131:135 -> equals
    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.w.b.r$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.w.b.r$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.w.b.s:
    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>
    1:1:com.android.tools.r8.graph.DexType getType():45:45 -> D2
    1:1:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():93:93 -> E2
    1:1:com.android.tools.r8.ir.code.Value object():49 -> E2
    2:2:com.android.tools.r8.ir.code.Value object():49:49 -> E2
    boolean hasInvariantOutType() -> I0
    boolean instructionTypeCanThrow() -> N0
    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:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):78:78 -> a
    17:17: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
    18:18:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):119:119 -> a
    19:20:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):164:165 -> a
    21:21:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):176:176 -> a
    22:22:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):181:181 -> a
    boolean isCheckCast() -> a1
    1:7:boolean verifyTypes(com.android.tools.r8.graph.AppView):124:130 -> b
    8:8:com.android.tools.r8.graph.DexType getType():45:45 -> b
    8:8:boolean verifyTypes(com.android.tools.r8.graph.AppView):132 -> b
    9:29: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) -> c
    com.android.tools.r8.ir.code.CheckCast asCheckCast() -> m
    1:1:java.lang.String toString():108:108 -> toString
    int maxInValueRegister() -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.Cmp -> com.android.tools.r8.w.b.t:
    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>
    boolean isCommutative() -> E2
    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:53:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:86 -> a
    54:62:java.lang.String biasToString(com.android.tools.r8.ir.code.Cmp$Bias):90:98 -> a
    63:63:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):136:136 -> a
    64:78:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):163:177 -> a
    79:90:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):175:186 -> a
    91:103:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):184:196 -> a
    104:110:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):195:201 -> a
    111:117:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):200:206 -> a
    118:121:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):205:208 -> a
    122:128: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
    129:129:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):234:234 -> a
    130:130:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):239:239 -> a
    boolean isCmp() -> b1
    com.android.tools.r8.ir.code.Cmp asCmp() -> n
    1:17:java.lang.String toString():104:120 -> toString
    18:40:java.lang.String toString():109:131 -> toString
    int maxInValueRegister() -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.Cmp$Bias -> com.android.tools.r8.w.b.t$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.w.b.u:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.DexType clazz -> h
    1:1:void <clinit>():24:24 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):29:30 -> <init>
    1:1:com.android.tools.r8.graph.DexType getValue():61:61 -> D2
    boolean instructionInstanceCanThrow() -> M0
    boolean instructionTypeCanThrow() -> N0
    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):40:40 -> a
    2:6:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstClass):44:48 -> a
    7:7:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstClass):53:53 -> a
    7:7:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstClass):49 -> a
    8:8:com.android.tools.r8.graph.DexType getValue():61:61 -> a
    8:8:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstClass):53 -> a
    8:8:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstClass):49 -> a
    9:9:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstClass):53:53 -> a
    9:9:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstClass):49 -> 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):53:53 -> a
    11:11:com.android.tools.r8.graph.DexType getValue():61:61 -> 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):53 -> a
    12:12:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstClass):53:53 -> a
    13:13:com.android.tools.r8.ir.code.Value dest():57:57 -> a
    13:13:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):66 -> a
    14:15:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):66:67 -> a
    16:16:com.android.tools.r8.graph.DexType getValue():61:61 -> a
    16:16:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):98 -> a
    17:28:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):98:109 -> a
    29:29:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    29:29:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):112 -> a
    30:41:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):115:126 -> a
    42:42:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):136:136 -> a
    43:43:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):131:131 -> a
    43:43:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):136 -> a
    44:44:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):146:146 -> a
    45:45:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):162:162 -> a
    46:46:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):167:167 -> a
    47:47:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):172:172 -> a
    48:48:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):177:177 -> a
    49:49:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):182:182 -> a
    1:1:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):131:131 -> b
    boolean isConstClass() -> c1
    boolean isOutConstant() -> g2
    com.android.tools.r8.ir.code.ConstClass asConstClass() -> o
    1:1:java.lang.String toString():83:83 -> toString
    1:1:int maxInValueRegister():72:72 -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.ConstInstruction -> com.android.tools.r8.w.b.v:
    1:1:void <init>(com.android.tools.r8.ir.code.Value):33:33 -> <init>
    com.android.tools.r8.ir.code.ConstInstruction getOutConstantConstInstruction() -> D0
    boolean hasInvariantOutType() -> I0
    1:8:com.android.tools.r8.ir.code.ConstInstruction copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstInstruction):15:22 -> a
    9:9:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.ConstNumber.copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstNumber):64:64 -> a
    9:9:com.android.tools.r8.ir.code.ConstInstruction copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstInstruction):22 -> a
    10:15:com.android.tools.r8.ir.code.ConstInstruction copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstInstruction):23:28 -> a
    16:16:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstInstruction():92:92 -> 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):54 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    boolean isConstInstruction() -> d1
    com.android.tools.r8.ir.code.ConstInstruction asConstInstruction() -> p
com.android.tools.r8.ir.code.ConstMethodHandle -> com.android.tools.r8.w.b.w:
    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>
    1:1:com.android.tools.r8.graph.DexMethodHandle getValue():57:57 -> D2
    boolean instructionTypeCanThrow() -> N0
    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):36:36 -> a
    2:2: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
    3:3:com.android.tools.r8.graph.DexMethodHandle getValue():57:57 -> a
    3:3:com.android.tools.r8.ir.code.ConstMethodHandle copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstMethodHandle):49 -> a
    4:4: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
    5:5:com.android.tools.r8.ir.code.Value dest():53:53 -> a
    5:5:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62 -> a
    6:7:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:63 -> a
    8:8:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):68:68 -> a
    9:9:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):73:73 -> a
    10:10:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):121:121 -> a
    11:11:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):120:120 -> a
    12:12:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):126:126 -> a
    13:13:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):131:131 -> a
    14:14:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstMethodHandle():275:275 -> 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):85 -> a
    boolean isConstMethodHandle() -> e1
    boolean isOutConstant() -> g2
    com.android.tools.r8.ir.code.ConstMethodHandle asConstMethodHandle() -> q
    1:1:java.lang.String toString():95:95 -> toString
    1:1:int maxInValueRegister():78:78 -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.ConstMethodType -> com.android.tools.r8.w.b.x:
    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>
    1:1:com.android.tools.r8.graph.DexProto getValue():57:57 -> D2
    boolean instructionTypeCanThrow() -> N0
    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):36:36 -> a
    2:2: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
    3:3:com.android.tools.r8.graph.DexProto getValue():57:57 -> a
    3:3:com.android.tools.r8.ir.code.ConstMethodType copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstMethodType):49 -> a
    4:4: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
    5:5:com.android.tools.r8.ir.code.Value dest():53:53 -> a
    5:5:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62 -> a
    6:7:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:63 -> a
    8:8:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):68:68 -> a
    9:9:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):73:73 -> a
    10:10:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):115:115 -> a
    11:11:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):114:114 -> a
    12:12:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):120:120 -> a
    13:13:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):125:125 -> a
    14:14:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstMethodType():279:279 -> 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):131 -> a
    boolean isConstMethodType() -> f1
    boolean isOutConstant() -> g2
    com.android.tools.r8.ir.code.ConstMethodType asConstMethodType() -> r
    1:1:java.lang.String toString():89:89 -> toString
    1:1:int maxInValueRegister():78:78 -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.ConstNumber -> com.android.tools.r8.w.b.y:
    boolean $assertionsDisabled -> i
    long value -> h
    1:1:void <clinit>():32:32 -> <clinit>
    1:6:void <init>(com.android.tools.r8.ir.code.Value,long):37:42 -> <init>
    1:1:com.android.tools.r8.ir.code.Value dest():68:68 -> D2
    1:2:double getDoubleValue():92:93 -> E2
    1:2:float getFloatValue():87:88 -> F2
    1:2:int getIntValue():76:77 -> G2
    3:5:int getIntValue():76:78 -> G2
    1:2:long getLongValue():82:83 -> H2
    1:1:long getRawValue():97:97 -> I2
    1:1:boolean is16Bit():273:273 -> J2
    1:1:boolean is8Bit():265:265 -> K2
    1:1:boolean isIntegerOne():109:109 -> L2
    1:1:boolean isIntegerZero():105:105 -> M2
    1:1:boolean isZero():101:101 -> N2
    1:1:boolean negativeIs16Bit():277:277 -> O2
    1:1:boolean negativeIs8Bit():269:269 -> P2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:4:com.android.tools.r8.ir.code.ConstNumber copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstNumber):56:59 -> a
    5:5:com.android.tools.r8.ir.code.ConstNumber copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstNumber):64:64 -> a
    5:5:com.android.tools.r8.ir.code.ConstNumber copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstNumber):60 -> a
    6:6:com.android.tools.r8.ir.code.Value dest():68:68 -> a
    6:6:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):122 -> a
    7:8:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):122:123 -> a
    9:9:com.android.tools.r8.ir.code.Value dest():68:68 -> a
    9:9:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):127 -> a
    10:11:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):127:128 -> a
    12:12:boolean com.android.tools.r8.ir.code.ValueType.isSingle():25:25 -> a
    12:12:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):128 -> a
    13:21:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):140:148 -> a
    22:22:boolean com.android.tools.r8.ir.code.ValueType.isSingle():25:25 -> a
    22:22:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):128 -> a
    23:31:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):129:137 -> a
    32:36:boolean isIntegerNegativeOne(com.android.tools.r8.ir.code.NumericType):113:117 -> a
    37:37:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):155:155 -> a
    38:41:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):160:163 -> a
    42:42:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):169:169 -> a
    43:43:boolean com.android.tools.r8.ir.code.ValueType.isSingle():25:25 -> a
    43:43:int estimatedDexSize(com.android.tools.r8.ir.code.ValueType,long):207 -> a
    43:43:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):169 -> a
    44:60:int estimatedDexSize(com.android.tools.r8.ir.code.ValueType,long):208:224 -> a
    44:60:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):169 -> a
    61:61:boolean com.android.tools.r8.ir.code.ValueType.isSingle():25:25 -> a
    61:61:int estimatedDexSize(com.android.tools.r8.ir.code.ValueType,long):207 -> a
    61:61:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):169 -> a
    62:92:int estimatedCfSize(com.android.tools.r8.ir.code.ValueType,long):173:203 -> a
    62:92:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):169 -> a
    93:93:int estimatedCfSize(com.android.tools.r8.ir.code.ValueType,long):196:196 -> a
    93:93:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):169 -> a
    94:94:int estimatedCfSize(com.android.tools.r8.ir.code.ValueType,long):190:190 -> a
    94:94:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):169 -> a
    95:99:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):257:261 -> a
    100:101:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):297:298 -> a
    102:105:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):303:306 -> a
    106:106:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):311:311 -> a
    107:107:boolean outTypeKnownToBeBoolean(java.util.Set):325:325 -> a
    1:4:boolean verifyTypes(com.android.tools.r8.graph.AppView):316:319 -> b
    5:5:boolean verifyTypes(com.android.tools.r8.graph.AppView):317:317 -> b
    boolean isConstNumber() -> g1
    boolean isOutConstant() -> g2
    com.android.tools.r8.ir.code.ConstNumber asConstNumber() -> s
    1:4:java.lang.String toString():245:248 -> toString
    1:1:int maxInValueRegister():234:234 -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.ConstString -> com.android.tools.r8.w.b.z:
    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>():20:20 -> <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):26:28 -> <init>
    1:1:com.android.tools.r8.graph.DexString getValue():58:58 -> D2
    1:11:boolean instructionInstanceCanThrow():110:120 -> M0
    1:1:boolean instructionTypeCanThrow():90:90 -> N0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:4:com.android.tools.r8.ir.code.ConstString copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstString):42:45 -> a
    5:5:com.android.tools.r8.ir.code.ConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstString):50:50 -> a
    5:5:com.android.tools.r8.ir.code.ConstString copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstString):46 -> a
    6:6:com.android.tools.r8.graph.DexString getValue():58:58 -> a
    6:6:com.android.tools.r8.ir.code.ConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstString):50 -> a
    6:6:com.android.tools.r8.ir.code.ConstString copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstString):46 -> a
    7:7:com.android.tools.r8.ir.code.ConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstString):50:50 -> a
    7:7:com.android.tools.r8.ir.code.ConstString copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstString):46 -> 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):50:50 -> a
    9:9:com.android.tools.r8.graph.DexString getValue():58:58 -> 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):50 -> a
    10:10:com.android.tools.r8.ir.code.ConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstString):50:50 -> a
    11:11:com.android.tools.r8.ir.code.Value dest():54:54 -> a
    11:11:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):63 -> a
    12:13:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):63:64 -> a
    14:14:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):69:69 -> a
    15:15:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):129:129 -> a
    16:16:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    16:16:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):129 -> a
    17:17:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):129:129 -> a
    18:18:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):134:134 -> a
    19:19:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):139:139 -> a
    20:20:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):144:144 -> a
    21:21:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):149:149 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    boolean isOutConstant() -> g2
    boolean isConstString() -> h1
    com.android.tools.r8.ir.code.ConstString asConstString() -> t
    1:1:java.lang.String toString():85:85 -> toString
    1:1:int maxInValueRegister():74:74 -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.ConstantValueUtils -> com.android.tools.r8.w.b.A:
    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:16:com.android.tools.r8.graph.DexType getDexTypeFromClassForName(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexDefinitionSupplier):42:43 -> a
    17: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.w.b.B:
    1:1:void <init>():19:19 -> <init>
    boolean hasInvariantOutType() -> I0
    boolean isAllowedAfterThrowingInstruction() -> P0
    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):44:44 -> a
    2:2:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):49:49 -> a
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):54:54 -> a
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDebugLocalRead():96:96 -> 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):70 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    boolean isDebugLocalRead() -> l1
    1:1:int maxInValueRegister():59:59 -> x2
    1:1:int maxOutValueRegister():64:64 -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.DebugLocalUninitialized -> com.android.tools.r8.w.b.C:
    1:1:void <init>(com.android.tools.r8.ir.code.Value):21:21 -> <init>
    boolean isAllowedAfterThrowingInstruction() -> P0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    boolean isDebugLocalUninitialized() -> m1
com.android.tools.r8.ir.code.DebugLocalWrite -> com.android.tools.r8.w.b.D:
    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() -> P0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):55:55 -> a
    2:2:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):60:60 -> a
    3:3:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):65:65 -> a
    4:4:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):71:71 -> a
    boolean isOutConstant() -> g2
    boolean isDebugLocalWrite() -> n1
    com.android.tools.r8.ir.code.DebugLocalWrite asDebugLocalWrite() -> u
com.android.tools.r8.ir.code.DebugLocalsChange -> com.android.tools.r8.w.b.E:
    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>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getEnding():43:43 -> D2
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getStarting():47:47 -> E2
    boolean hasInvariantOutType() -> I0
    boolean isAllowedAfterThrowingInstruction() -> P0
    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:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getEnding():43:43 -> a
    1:1:boolean apply(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):108 -> a
    2:4:boolean apply(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):108:110 -> a
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getStarting():47:47 -> a
    5:5:boolean apply(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):114 -> a
    6:9:boolean apply(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):114:117 -> a
    10:10:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:62 -> a
    11:16:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):67:72 -> a
    17:17:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDebugLocalsChange():100:100 -> a
    17:17:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):103 -> a
    18:18:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):124:124 -> a
    19:19:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):134:134 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    boolean isDebugLocalsChange() -> o1
    1:6:java.lang.String toString():92:97 -> toString
    com.android.tools.r8.ir.code.DebugLocalsChange asDebugLocalsChange() -> v
    1:1:int maxInValueRegister():77:77 -> x2
    1:1:int maxOutValueRegister():82:82 -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.DebugPosition -> com.android.tools.r8.w.b.F:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():16:16 -> <clinit>
    1:1:void <init>():19:19 -> <init>
    boolean hasInvariantOutType() -> I0
    boolean isAllowedAfterThrowingInstruction() -> P0
    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:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):44:45 -> a
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):50:50 -> a
    4:6:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):86:88 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDebugPosition():104:104 -> 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):66 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    boolean isDebugPosition() -> p1
    com.android.tools.r8.ir.code.DebugPosition asDebugPosition() -> w
    1:1:int maxInValueRegister():55:55 -> x2
    1:1:int maxOutValueRegister():60:60 -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.DefaultInstructionVisitor -> com.android.tools.r8.w.b.G:
    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.w.b.H:
    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>
    1:1:com.android.tools.r8.graph.DexReference getItem():63:63 -> D2
    1:1:com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo getNameComputationInfo():67:67 -> E2
    boolean instructionInstanceCanThrow() -> M0
    1:1:boolean instructionTypeCanThrow():113:113 -> N0
    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:4:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DexItemBasedConstString):50:53 -> a
    5:5:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.DexItemBasedConstString):58:58 -> a
    5:5:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DexItemBasedConstString):54 -> a
    6:6:com.android.tools.r8.graph.DexReference getItem():63:63 -> a
    6:6:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.DexItemBasedConstString):59 -> a
    6:6:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DexItemBasedConstString):54 -> a
    7:7:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.DexItemBasedConstString):59:59 -> a
    7:7:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DexItemBasedConstString):54 -> a
    8:8:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.DexItemBasedConstString):58:58 -> a
    9:9:com.android.tools.r8.graph.DexReference getItem():63:63 -> a
    9:9:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.DexItemBasedConstString):59 -> a
    10:10:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.DexItemBasedConstString):59:59 -> a
    11:11: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):80:80 -> a
    11:11:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):157 -> a
    12:13:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):82:83 -> a
    14:16:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):90:92 -> a
    17:17:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):136:136 -> a
    18:18:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):141:141 -> a
    19:19:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):146:146 -> a
    20:20:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):151:151 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    boolean isOutConstant() -> g2
    boolean isDexItemBasedConstString() -> q1
    1:1:java.lang.String toString():108:108 -> toString
    com.android.tools.r8.ir.code.DexItemBasedConstString asDexItemBasedConstString() -> x
    1:1:int maxInValueRegister():97:97 -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.Div -> com.android.tools.r8.w.b.I:
    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>
    boolean isCommutative() -> E2
    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():148:148 -> I2
    1:1:boolean instructionTypeCanThrow():134:134 -> N0
    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:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):104:104 -> a
    3:3:int foldIntegers(int,int):114:114 -> a
    4:4:long foldLongs(long,long):119:119 -> a
    5:9: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
    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() -> r1
    com.android.tools.r8.ir.code.Div asDiv() -> y
    int opcode() -> z2
com.android.tools.r8.ir.code.DominatorTree -> com.android.tools.r8.w.b.K:
    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:25:com.android.tools.r8.ir.code.BasicBlock[] getSortedBlocks():232:232 -> a
    26:27: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:34:java.lang.Iterable normalExitDominatorBlocks():225:228 -> b
    35:35:boolean postorderCompareLess(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):243:243 -> 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):292 -> b
    36:36: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
    37:37:boolean postorderCompareLess(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):243:243 -> b
    37:37:com.android.tools.r8.ir.code.BasicBlock intersect(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):295 -> b
    38:38: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:30:void build():252:281 -> c
    31:31: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.w.b.J:
    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.w.b.K$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.w.b.L:
    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.w.b.N:
    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:com.android.tools.r8.ir.code.StackValue[] getStackValues():51:51 -> D2
    1:1:com.android.tools.r8.ir.code.StackValue outBottom():55 -> D2
    2:2:com.android.tools.r8.ir.code.StackValue outBottom():55:55 -> D2
    1:1:com.android.tools.r8.ir.code.StackValue[] getStackValues():51:51 -> E2
    1:1:com.android.tools.r8.ir.code.StackValue outTop():59 -> E2
    2:2:com.android.tools.r8.ir.code.StackValue outTop():59:59 -> E2
    1:1:com.android.tools.r8.ir.code.StackValue src():63:63 -> F2
    boolean hasInvariantOutType() -> I0
    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):68:68 -> a
    2:5:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):73:76 -> a
    6:6:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):82:82 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDup():108:108 -> 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):98 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    1:6:void setOutValue(com.android.tools.r8.ir.code.Value):41:46 -> e
    boolean isDup() -> s1
    int maxInValueRegister() -> x2
    1:1:int maxOutValueRegister():92:92 -> y2
    com.android.tools.r8.ir.code.Dup asDup() -> z
    int opcode() -> z2
com.android.tools.r8.ir.code.Dup2 -> com.android.tools.r8.w.b.M:
    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>
    boolean hasInvariantOutType() -> I0
    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):86:86 -> a
    2:2:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):91:91 -> a
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):96:96 -> a
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDup2():112:112 -> 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):112 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    1:6:void setOutValue(com.android.tools.r8.ir.code.Value):55:60 -> e
    boolean isDup2() -> t1
    int maxInValueRegister() -> x2
    1:1:int maxOutValueRegister():106:106 -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.FieldInstruction -> com.android.tools.r8.w.b.O:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.DexField field -> h
    1:1:void <clinit>():25:25 -> <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):30:30 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Value,java.util.List):34:36 -> <init>
    com.android.tools.r8.ir.code.FieldInstruction asFieldInstruction() -> A
    1:1:com.android.tools.r8.graph.DexField getField():46:46 -> D2
    1:1:com.android.tools.r8.ir.code.FieldMemberType getType():42:42 -> E2
    com.android.tools.r8.ir.code.Value value() -> F2
    boolean hasInvariantOutType() -> I0
    1:7:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):62:68 -> a
    8:8:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    8:8:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):71 -> a
    9:21:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):73:85 -> a
    22:22:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():114:114 -> a
    22:22:boolean com.android.tools.r8.graph.DexEncodedField.isStaticMember():123 -> a
    22:22:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):89 -> a
    23:66:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):90:133 -> a
    67:67:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):108:108 -> a
    68:68:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):95:95 -> a
    69:69:boolean lambda$instructionInstanceCanThrow$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):129:129 -> a
    70:93:boolean isStoringObjectWithFinalizer(com.android.tools.r8.shaking.AppInfoWithLiveness):176:199 -> a
    94:94:boolean isStoringObjectWithFinalizer(com.android.tools.r8.shaking.AppInfoWithLiveness):198:198 -> a
    1:6:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):144:149 -> d
    7:7:com.android.tools.r8.graph.DexField getField():46:46 -> d
    7:7:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):150 -> d
    8:11:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):152:155 -> d
    12:12:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> d
    12:12:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):155 -> d
    13:23:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):157:167 -> d
    boolean isFieldInstruction() -> v1
com.android.tools.r8.ir.code.FieldMemberType -> com.android.tools.r8.w.b.P:
    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>
    1:1:com.android.tools.r8.ir.code.FieldMemberType fromDexType(com.android.tools.r8.graph.DexType):51:51 -> a
    2:2:com.android.tools.r8.ir.code.FieldMemberType fromTypeDescriptorChar(char):46:46 -> a
    2:2:com.android.tools.r8.ir.code.FieldMemberType fromDexType(com.android.tools.r8.graph.DexType):51 -> a
    3:19:com.android.tools.r8.ir.code.FieldMemberType fromTypeDescriptorChar(char):28:44 -> a
    3:19:com.android.tools.r8.ir.code.FieldMemberType fromDexType(com.android.tools.r8.graph.DexType):51 -> a
    20:20:com.android.tools.r8.ir.code.FieldMemberType fromTypeDescriptorChar(char):32:32 -> a
    20:20:com.android.tools.r8.ir.code.FieldMemberType fromDexType(com.android.tools.r8.graph.DexType):51 -> a
    21:35:com.android.tools.r8.ir.code.FieldMemberType fromTypeDescriptorChar(char):26:40 -> a
    21:35:com.android.tools.r8.ir.code.FieldMemberType fromDexType(com.android.tools.r8.graph.DexType):51 -> a
    36:42:com.android.tools.r8.ir.code.FieldMemberType fromTypeDescriptorChar(char) -> a
    36:42:com.android.tools.r8.ir.code.FieldMemberType fromDexType(com.android.tools.r8.graph.DexType):51 -> a
    43:43:com.android.tools.r8.ir.code.FieldMemberType fromTypeDescriptorChar(char):34:34 -> a
    43:43:com.android.tools.r8.ir.code.FieldMemberType fromDexType(com.android.tools.r8.graph.DexType):51 -> a
    44:44:com.android.tools.r8.ir.code.FieldMemberType fromTypeDescriptorChar(char):30:30 -> a
    44:44:com.android.tools.r8.ir.code.FieldMemberType fromDexType(com.android.tools.r8.graph.DexType):51 -> a
com.android.tools.r8.ir.code.FixedRegisterValue -> com.android.tools.r8.w.b.Q:
    int register -> r
    boolean $assertionsDisabled -> s
    1:1:void <clinit>():11:11 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,int):16:18 -> <init>
    boolean isConstant() -> E
    boolean isFixedRegisterValue() -> G
    1:23:com.android.tools.r8.ir.code.ValueType outType():23:45 -> W
    24:25:com.android.tools.r8.ir.code.ValueType outType():42:43 -> W
    com.android.tools.r8.ir.code.FixedRegisterValue asFixedRegisterValue() -> c
    1:1:int getRegister():49:49 -> c0
    1:1:java.lang.String toString():69:69 -> toString
com.android.tools.r8.ir.code.Goto -> com.android.tools.r8.w.b.S:
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:void <init>():17:17 -> <init>
    com.android.tools.r8.ir.code.Goto asGoto() -> B
    1:4:com.android.tools.r8.ir.code.BasicBlock getTarget():36:39 -> E2
    boolean isAllowedAfterThrowingInstruction() -> P0
    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:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):85:85 -> a
    5:10:boolean isTrivialGotoToTheNextBlock(com.android.tools.r8.ir.code.IRCode):104:109 -> a
    11:11:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):117:117 -> a
    1:4:java.lang.String toString():71:74 -> toString
    boolean isGoto() -> x1
    1:1:int maxInValueRegister():59:59 -> x2
    1:1:int maxOutValueRegister():65:65 -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.IRCode -> com.android.tools.r8.w.b.T:
    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():1149:1149 -> A
    34:34:void traceBlocks():431 -> A
    35:35:void traceBlocks():431:431 -> A
    1:12:boolean verifyNoImpreciseOrBottomTypes():853:864 -> B
    1:8:boolean verifyNoNullabilityBottomTypes():868:875 -> C
    1:14:boolean verifySplitCriticalEdges():374:387 -> D
    1:6:boolean computeAllThrowingInstructionsHavePositions():1072:1077 -> E
    1:12:boolean verifyNoValueWithOnlyAssumeInstructionAsUsers():879:890 -> F
    1:17:boolean controlFlowMayDependOnEnvironment(com.android.tools.r8.ir.analysis.ValueMayDependOnEnvironmentAnalysis):267:283 -> a
    18:18:boolean lambda$prepareBlocksForCatchHandlers$0(com.android.tools.r8.ir.code.BasicBlock):335:335 -> a
    19:23:void ensureBlockNumbering():435:439 -> a
    19:23:void print(com.android.tools.r8.utils.CfgPrinter):541 -> a
    24:25:void print(com.android.tools.r8.utils.CfgPrinter):542:543 -> a
    26:26:void removeBlocks(java.util.Collection):479:479 -> a
    27:37:boolean hasNoVerticallyMergedClasses(com.android.tools.r8.graph.AppView):558:568 -> a
    38:38:boolean lambda$verifyTypes$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.BasicBlock):593:593 -> a
    39:39:void lambda$consistentBlockNumbering$2(java.lang.Integer,java.lang.Long):748:748 -> a
    40:46:boolean lambda$verifyNoImpreciseOrBottomTypes$3(com.android.tools.r8.ir.code.Value):855:861 -> a
    47:47:boolean lambda$verifyNoImpreciseOrBottomTypes$3(com.android.tools.r8.ir.code.Value):860:860 -> a
    48:51:boolean lambda$wrapSSAVerifierWithStackValueHandling$8(java.util.function.Predicate,com.android.tools.r8.ir.code.Value):897:900 -> a
    52:52:java.lang.Iterable instructions(java.util.function.Predicate):924:924 -> a
    53:65:java.util.List collectArguments(boolean):980:992 -> a
    53:65:java.util.List collectArguments():976 -> a
    66:66:java.util.List collectArguments(boolean):991:991 -> a
    66:66:java.util.List collectArguments():976 -> a
    67:67:com.android.tools.r8.ir.code.Value createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):1008:1008 -> a
    68:69:com.android.tools.r8.ir.code.ConstNumber createIntConstant(int,com.android.tools.r8.graph.DebugLocalInfo):1030:1031 -> a
    70:70:void setAllThrowingInstructionsHavePositions(boolean):1068:1068 -> a
    71:74:void removeAllTrivialPhis(com.android.tools.r8.ir.conversion.IRBuilder,java.util.Set):1097:1100 -> a
    75:75:boolean isMarkingColorInUse(int):1136:1136 -> a
    76:76:java.lang.Iterable getInstructionsReachableFrom(com.android.tools.r8.ir.code.Instruction):1153:1153 -> a
    77:85:java.util.Set getBlocksReachableFromExclusive(com.android.tools.r8.ir.code.BasicBlock):1178:1186 -> a
    77:85:java.lang.Iterable getInstructionsReachableFrom(com.android.tools.r8.ir.code.Instruction):1154 -> a
    86:91:java.lang.Iterable getInstructionsReachableFrom(com.android.tools.r8.ir.code.Instruction):1155:1160 -> a
    92:92:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
    92:92:java.lang.Iterable getInstructionsReachableFrom(com.android.tools.r8.ir.code.Instruction):1160 -> a
    93:99:java.lang.Iterable getInstructionsReachableFrom(com.android.tools.r8.ir.code.Instruction):1161:1167 -> a
    100:100:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
    100:100:java.lang.Iterable getInstructionsReachableFrom(com.android.tools.r8.ir.code.Instruction):1167 -> a
    101:101:void markTransitiveSuccessors(java.util.Deque,int):1225:1225 -> a
    102:102:boolean isMarkingColorInUse(int):1136:1136 -> a
    102:102:void markTransitiveSuccessors(java.util.Deque,int):1225 -> a
    103:104:boolean anyBlocksMarkedWithColor(int):1140:1141 -> a
    103:104:void markTransitiveSuccessors(java.util.Deque,int):1225 -> a
    105:114:void markTransitiveSuccessors(java.util.Deque,int):1225:1234 -> a
    115:115:void markTransitivePredecessors(com.android.tools.r8.ir.code.BasicBlock,int):1246:1246 -> a
    116:116:boolean isMarkingColorInUse(int):1136:1136 -> a
    116:116:void markTransitivePredecessors(com.android.tools.r8.ir.code.BasicBlock,int):1246 -> a
    117:128:void markTransitivePredecessors(com.android.tools.r8.ir.code.BasicBlock,int):1246:1257 -> a
    129:129:com.android.tools.r8.ir.code.InstructionIterator com.android.tools.r8.ir.code.BasicBlock.iterator(com.android.tools.r8.ir.code.Instruction):1602:1602 -> a
    129:129:java.util.Iterator lambda$getInstructionsReachableFrom$10(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):1165 -> a
    1:53:java.util.Map computeLiveAtEntrySets():149:201 -> b
    54:74:java.util.Map computeLiveAtEntrySets():200:220 -> b
    75:75:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():93:93 -> b
    75:75:java.util.Map computeLiveAtEntrySets():224 -> b
    76:111:java.util.Map computeLiveAtEntrySets():224:259 -> b
    112:112:boolean com.android.tools.r8.ir.code.IRCode$LiveAtEntrySets.isEmpty():83:83 -> b
    112:112:java.util.Map computeLiveAtEntrySets():259 -> b
    113:115:java.util.Map computeLiveAtEntrySets():259:261 -> b
    116:117:boolean verifyTypes(com.android.tools.r8.graph.AppView):589:590 -> b
    118:121:boolean validAssumeDynamicTypeInstructions(com.android.tools.r8.graph.AppView):598:601 -> b
    118:121:boolean verifyTypes(com.android.tools.r8.graph.AppView):590 -> b
    122:124:boolean verifyTypes(com.android.tools.r8.graph.AppView):591:593 -> b
    125:127:boolean lambda$verifyNoNullabilityBottomTypes$4(com.android.tools.r8.ir.code.Value):870:872 -> b
    128:128:boolean lambda$verifyNoNullabilityBottomTypes$4(com.android.tools.r8.ir.code.Value):870:870 -> b
    129:129:java.util.Iterator lambda$instructions$9(java.util.function.Predicate):924:924 -> b
    130:130:java.util.ListIterator listIterator(int):950:950 -> b
    131:131:boolean lambda$findFirstNonNonePosition$11(com.android.tools.r8.ir.code.Instruction):1265:1265 -> b
    1:6:boolean lambda$verifyNoValueWithOnlyAssumeInstructionAsUsers$7(com.android.tools.r8.ir.code.Value):881:886 -> c
    7:13:boolean lambda$verifyNoValueWithOnlyAssumeInstructionAsUsers$7(com.android.tools.r8.ir.code.Value):881:887 -> c
    14:14:boolean lambda$verifyNoValueWithOnlyAssumeInstructionAsUsers$5(com.android.tools.r8.ir.code.Instruction):882:882 -> c
    15:22:boolean verifySSATypeLattice(java.util.function.Predicate):906:913 -> c
    23:29:java.util.List computeNormalExitBlocks():936:942 -> c
    30:30:void returnMarkingColor(int):1130:1130 -> c
    31:31:boolean isMarkingColorInUse(int):1136:1136 -> c
    31:31:void returnMarkingColor(int):1130 -> c
    32:32:void returnMarkingColor(int):1130:1130 -> c
    33:34:void clearMarks(int):456:457 -> c
    33:34:void returnMarkingColor(int):1131 -> c
    35:35:void returnMarkingColor(int):1132:1132 -> c
    1:4:boolean consistentBlockNumbering():743:746 -> d
    5:5:boolean lambda$verifyNoValueWithOnlyAssumeInstructionAsUsers$6(com.android.tools.r8.ir.code.Instruction):885:885 -> d
    6:6:java.util.function.Predicate wrapSSAVerifierWithStackValueHandling(java.util.function.Predicate):894:894 -> d
    1:1:com.android.tools.r8.ir.code.ConstNumber createConstNull():1054:1054 -> e
    2:2:com.android.tools.r8.ir.code.Value createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> e
    2:2:com.android.tools.r8.ir.code.ConstNumber createConstNull():1054 -> e
    3:3:com.android.tools.r8.ir.code.ConstNumber createConstNull():1055:1055 -> e
    1:1:boolean doAllThrowingInstructionsHavePositions():1064:1064 -> f
    1:1:com.android.tools.r8.ir.code.BasicBlock entryBlock():142:142 -> g
    1:14:com.android.tools.r8.ir.code.Position findFirstNonNonePosition():1265:1278 -> h
    1:1:int getHighestBlockNumber():1044:1044 -> i
    1:1:int getNextInstructionNumber():972:972 -> j
    1:7:com.android.tools.r8.ir.code.Value getThis():997:1003 -> k
    1:3:java.util.Set getUnreachableBlocks():1191:1193 -> l
    4:4:void markTransitiveSuccessors(com.android.tools.r8.ir.code.BasicBlock,int):1221:1221 -> l
    4:4:java.util.Set getUnreachableBlocks():1193 -> l
    5:10:java.util.Set getUnreachableBlocks():1194:1199 -> l
    1:1:com.android.tools.r8.ir.code.InstructionIterator instructionIterator():928:928 -> m
    1:1:java.lang.Iterable instructions():920:920 -> n
    1:1:boolean isConsistentGraph():576:576 -> o
    2:2:boolean noColorsInUse():1149:1149 -> 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:102:boolean consistentMetadata():765:821 -> o
    46:102:boolean isConsistentGraph():581 -> o
    103:103: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():93:93 -> 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():93:93 -> 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():829:845 -> 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():946:946 -> 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():954:956 -> s
    1:7:int numberRemainingInstructions():962:968 -> 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:void removeAllTrivialPhis():1085:1085 -> v
    1:3:java.util.Set removeUnreachableBlocks():1204:1206 -> w
    4:4:void markTransitiveSuccessors(com.android.tools.r8.ir.code.BasicBlock,int):1221:1221 -> w
    4:4:java.util.Set removeUnreachableBlocks():1206 -> w
    5:14:java.util.Set removeUnreachableBlocks():1207:1216 -> w
    1:1:int reserveMarkingColor():1106:1106 -> x
    2:2:boolean anyMarkingColorAvailable():1120:1120 -> x
    2:2:int reserveMarkingColor():1106 -> x
    3:11:int reserveMarkingColor():1106:1114 -> x
    12:13:boolean verifyNoBlocksMarked(int):472:473 -> x
    12:13:int reserveMarkingColor():1114 -> 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.w.b.T$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.w.b.T$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.w.b.U:
    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.w.b.V:
    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>():16:16 -> <clinit>
    1:4:void <init>(com.android.tools.r8.ir.code.IRCode):23:26 -> <init>
    1:1:com.android.tools.r8.ir.code.Value insertConstNullInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):31:31 -> 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):36:36 -> a
    3:3:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):46:46 -> a
    4:4:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):51:51 -> a
    5:5:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):56:56 -> a
    6: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,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):67:67 -> a
    7:7:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):134:134 -> a
    1:1:void add(java.lang.Object):16:16 -> add
    2:2:void add(com.android.tools.r8.ir.code.Instruction):119:119 -> add
    2:2:void add(java.lang.Object):16 -> add
    1:1:void removeOrReplaceByDebugLocalRead():139:139 -> d
    1:1:boolean hasNext():72:72 -> hasNext
    1:1:boolean hasPrevious():90:90 -> hasPrevious
    1:9:com.android.tools.r8.ir.code.Instruction next():77:85 -> next
    1:9:java.lang.Object next():16 -> next
    10:10:com.android.tools.r8.ir.code.Instruction next():81:81 -> next
    10:10:java.lang.Object next():16 -> next
    1:1:int nextIndex():109:109 -> nextIndex
    1:1:java.lang.Object previous():16:16 -> previous
    2:11:com.android.tools.r8.ir.code.Instruction previous():95:104 -> previous
    12:12:com.android.tools.r8.ir.code.Instruction previous():99:99 -> previous
    1:1:int previousIndex():114:114 -> previousIndex
    1:1:void remove():124:124 -> remove
    1:1:void set(java.lang.Object):16:16 -> set
    2:2:void set(com.android.tools.r8.ir.code.Instruction):129:129 -> set
    2:2:void set(java.lang.Object):16 -> set
com.android.tools.r8.ir.code.IRMetadata -> com.android.tools.r8.w.b.W:
    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: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 mayHaveCheckCast():61:61 -> a
    1:1:boolean mayHaveConstNumber():65:65 -> b
    1:1:boolean mayHaveConstString():69:69 -> c
    1:1:boolean mayHaveDebugPosition():73:73 -> d
    1:1:boolean mayHaveDexItemBasedConstString():77:77 -> e
    1:1:boolean mayHaveInstanceGet():104:104 -> f
    1:1:boolean mayHaveFieldGet():81 -> f
    2:2:boolean mayHaveStaticGet():194:194 -> f
    2:2:boolean mayHaveFieldGet():81 -> f
    1:2:boolean mayHaveFieldInstruction():94:95 -> g
    3:3:boolean mayHaveInstanceGet():104:104 -> g
    3:3:boolean mayHaveFieldInstruction():96 -> g
    4:4:boolean mayHaveInstancePut():108:108 -> g
    4:4:boolean mayHaveFieldInstruction():97 -> g
    5:5:boolean mayHaveStaticGet():194:194 -> g
    5:5:boolean mayHaveFieldInstruction():98 -> g
    6:6:boolean mayHaveStaticPut():198:198 -> g
    6:6:boolean mayHaveFieldInstruction():99 -> g
    7:7:boolean mayHaveFieldInstruction():95:95 -> g
    1:1:boolean mayHaveInstanceGet():104:104 -> h
    1:1:boolean mayHaveInstanceOf():112:112 -> i
    1:1:boolean mayHaveInstancePut():108:108 -> j
    1:1:boolean mayHaveIntSwitch():116:116 -> k
    1:1:boolean mayHaveInvokeDirect():120:120 -> l
    1:1:boolean mayHaveInvokeInterface():124:124 -> m
    1:2:boolean mayHaveInvokeMethod():142:143 -> n
    3:3:boolean mayHaveInvokeDirect():120:120 -> n
    3:3:boolean mayHaveInvokeMethod():144 -> n
    4:4:boolean mayHaveInvokeInterface():124:124 -> n
    4:4:boolean mayHaveInvokeMethod():145 -> n
    5:5:boolean mayHaveInvokePolymorphic():174:174 -> n
    5:5:boolean mayHaveInvokeMethod():146 -> n
    6:6:boolean mayHaveInvokeStatic():178:178 -> n
    6:6:boolean mayHaveInvokeMethod():147 -> n
    7:7:boolean mayHaveInvokeSuper():182:182 -> n
    7:7:boolean mayHaveInvokeMethod():148 -> n
    8:8:boolean mayHaveInvokeVirtual():186:186 -> n
    8:8:boolean mayHaveInvokeMethod():149 -> n
    9:9:boolean mayHaveInvokeMethod():143:143 -> n
    1:2:boolean mayHaveInvokeMethodWithReceiver():164:165 -> o
    3:3:boolean mayHaveInvokeDirect():120:120 -> o
    3:3:boolean mayHaveInvokeMethodWithReceiver():166 -> o
    4:4:boolean mayHaveInvokeInterface():124:124 -> o
    4:4:boolean mayHaveInvokeMethodWithReceiver():167 -> o
    5:5:boolean mayHaveInvokeSuper():182:182 -> o
    5:5:boolean mayHaveInvokeMethodWithReceiver():168 -> o
    6:6:boolean mayHaveInvokeVirtual():186:186 -> o
    6:6:boolean mayHaveInvokeMethodWithReceiver():169 -> o
    7:7:boolean mayHaveInvokeMethodWithReceiver():165:165 -> o
    1:1:boolean mayHaveInvokePolymorphic():174:174 -> p
    1:1:boolean mayHaveInvokeStatic():178:178 -> q
    1:1:boolean mayHaveInvokeSuper():182:182 -> r
    1:1:boolean mayHaveInvokeVirtual():186:186 -> s
    1:1:boolean mayHaveMonitorInstruction():190:190 -> t
    1:1:boolean mayHaveStaticGet():194:194 -> u
    1:1:boolean mayHaveStaticPut():198:198 -> v
    1:1:boolean mayHaveStringSwitch():202:202 -> w
    1:1:com.android.tools.r8.ir.code.IRMetadata unknown():20:20 -> x
com.android.tools.r8.ir.code.If -> com.android.tools.r8.w.b.X:
    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>
    com.android.tools.r8.ir.code.If asIf() -> C
    1:4:com.android.tools.r8.ir.code.BasicBlock fallthroughBlock():132:135 -> D2
    1:4:com.android.tools.r8.ir.code.BasicBlock getTrueTarget():117:120 -> E2
    1:1:com.android.tools.r8.ir.code.If$Type getType():106:106 -> F2
    1:2:void invert():110:111 -> G2
    3:4:void setFallthroughBlock(com.android.tools.r8.ir.code.BasicBlock):140:141 -> G2
    3:4:void invert():112 -> G2
    5:5:void invert():113:113 -> G2
    1:1:boolean isZeroTest():93:93 -> H2
    1:1:com.android.tools.r8.ir.code.Value lhs():97:97 -> I2
    1:2:com.android.tools.r8.ir.code.Value rhs():101:102 -> J2
    1:3:com.android.tools.r8.ir.code.BasicBlock targetFromNonNullObject():214:216 -> K2
    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:13:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):191:196 -> a
    14:16:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(com.android.tools.r8.ir.code.ConstNumber):201:203 -> a
    17:20: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
    21:21:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):250:250 -> a
    22:29: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:18:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):220:235 -> b
    19:27:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):225:233 -> b
    28:28:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):231:231 -> b
    29:29:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):229:229 -> b
    30:30:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):227:227 -> b
    31:31: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 -> x2
    boolean isIf() -> y1
    1:1:int maxOutValueRegister():179:179 -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.If$Type -> com.android.tools.r8.w.b.X$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.w.b.Y:
    void constrainType(com.android.tools.r8.ir.conversion.TypeConstraintResolver) -> a
    com.android.tools.r8.ir.code.MemberType getMemberType() -> a
com.android.tools.r8.ir.code.Inc -> com.android.tools.r8.w.b.Z:
    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>
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):54:54 -> a
    2:2:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):70:70 -> a
    3:3:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75:75 -> a
    4:4:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):81:81 -> a
    5:15: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
    1:1:java.lang.String toString():102:102 -> toString
    int maxInValueRegister() -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.InstanceGet -> com.android.tools.r8.w.b.a0:
    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>
    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():207:207 -> B0
    boolean throwsOnNullInput() -> C2
    com.android.tools.r8.ir.code.InstanceGet asInstanceGet() -> D
    1:1:com.android.tools.r8.ir.code.Value value():66:66 -> F2
    1:2:com.android.tools.r8.ir.code.Value object():60:61 -> G2
    boolean instructionTypeCanThrow() -> N0
    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):89:89 -> a
    35:54:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):85:104 -> a
    55:55:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):101:101 -> a
    56:56:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):98:98 -> a
    57:57:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):95:95 -> a
    58:75:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):92:109 -> a
    76:78:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):71:73 -> a
    79:79:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):129:129 -> a
    80:80:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):119:119 -> a
    80:80:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):129 -> a
    81:85:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):144:148 -> a
    86:86: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
    87:87:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):174:174 -> a
    88:88:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):179:179 -> a
    89:90:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):184:185 -> a
    91:93:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):190:192 -> a
    94:94:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):190:190 -> a
    95:95:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):197:197 -> a
    96:96: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:1:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):119:119 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    1:1:java.lang.String toString():169:169 -> toString
    int maxInValueRegister() -> x2
    int maxOutValueRegister() -> y2
    boolean isInstanceGet() -> z1
    int opcode() -> z2
com.android.tools.r8.ir.code.InstanceOf -> com.android.tools.r8.w.b.b0:
    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>
    boolean isInstanceOf() -> A1
    1:1:com.android.tools.r8.graph.DexType type():39:39 -> D2
    com.android.tools.r8.ir.code.InstanceOf asInstanceOf() -> E
    1:1:com.android.tools.r8.ir.code.Value value():47:47 -> E2
    boolean hasInvariantOutType() -> I0
    boolean instructionTypeCanThrow() -> N0
    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:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):74:74 -> 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):90:90 -> a
    7:7:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):95:95 -> a
    8:9:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):105:106 -> a
    10:10:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):111:111 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    int maxInValueRegister() -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.InstancePut -> com.android.tools.r8.w.b.c0:
    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:com.android.tools.r8.ir.code.Value getNonNullInput():220:220 -> B0
    boolean isInstancePut() -> B1
    boolean throwsOnNullInput() -> C2
    com.android.tools.r8.ir.code.InstancePut asInstancePut() -> F
    1:1:com.android.tools.r8.ir.code.Value value():58:58 -> F2
    1:1:com.android.tools.r8.ir.code.Value object():53:53 -> G2
    boolean instructionTypeCanThrow() -> N0
    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):74:74 -> a
    32:51:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):70:89 -> a
    52:52:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):86:86 -> a
    53:53:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):83:83 -> a
    54:54:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):80:80 -> a
    55:72:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):77:94 -> a
    73:74:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):129:130 -> a
    75:85:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):137:147 -> a
    86:86:boolean com.android.tools.r8.utils.InternalOptions.canHaveIncorrectJoinForArrayOfInterfacesBug():0:0 -> a
    86:86:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):141 -> a
    87:91:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):157:161 -> a
    92:92: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
    93:93:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):198:198 -> a
    94:96:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):203:205 -> a
    97:97:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):203:203 -> a
    98:98:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):210:210 -> a
    99:99: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:11:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):104:114 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    1:1:java.lang.String toString():193:193 -> toString
    int maxInValueRegister() -> x2
    1:1:int maxOutValueRegister():171:171 -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.Instruction -> com.android.tools.r8.w.b.d0:
    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>():43:43 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value):52:52 -> <init>
    2:10:void <init>(com.android.tools.r8.ir.code.Value):45:53 -> <init>
    11:11:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):56:56 -> <init>
    12:25:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):45:58 -> <init>
    26:26:void <init>(com.android.tools.r8.ir.code.Value,java.util.List):61:61 -> <init>
    27:49:void <init>(com.android.tools.r8.ir.code.Value,java.util.List):45:67 -> <init>
    com.android.tools.r8.ir.code.FieldInstruction asFieldInstruction() -> A
    1:1:com.android.tools.r8.graph.DebugLocalInfo getLocalInfo():595:595 -> A0
    boolean isInstanceOf() -> A1
    1:1:com.android.tools.r8.ir.code.ValueType outType():163:163 -> A2
    com.android.tools.r8.ir.code.Goto asGoto() -> B
    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():1365:1365 -> B0
    boolean isInstancePut() -> B1
    1:1:com.android.tools.r8.ir.code.Value outValue():120:120 -> B2
    com.android.tools.r8.ir.code.If asIf() -> C
    1:1:int getNumber():342:342 -> C0
    boolean isIntSwitch() -> C1
    boolean throwsOnNullInput() -> C2
    com.android.tools.r8.ir.code.InstanceGet asInstanceGet() -> D
    com.android.tools.r8.ir.code.ConstInstruction getOutConstantConstInstruction() -> D0
    boolean isIntroducingAnAlias() -> D1
    com.android.tools.r8.ir.code.InstanceOf asInstanceOf() -> E
    1:2:com.android.tools.r8.ir.code.Position getPosition():79:80 -> E0
    boolean isInvoke() -> E1
    com.android.tools.r8.ir.code.InstancePut asInstancePut() -> F
    1:1:java.lang.String getPositionAsString():89:89 -> F0
    boolean isInvokeCustom() -> F1
    com.android.tools.r8.ir.code.IntSwitch asIntSwitch() -> G
    1:1:boolean hasBlock():289:289 -> G0
    boolean isInvokeDirect() -> G1
    com.android.tools.r8.ir.code.Invoke asInvoke() -> H
    1:1:java.util.List inValues():93:93 -> H0
    1:1:boolean hasInValueWithLocalInfo():107 -> H0
    2:3:boolean hasInValueWithLocalInfo():107:108 -> H0
    boolean isInvokeInterface() -> H1
    com.android.tools.r8.ir.code.InvokeCustom asInvokeCustom() -> I
    boolean hasInvariantOutType() -> I0
    boolean isInvokeMethod() -> I1
    com.android.tools.r8.ir.code.InvokeDirect asInvokeDirect() -> J
    1:1:boolean hasOutValue():116:116 -> J0
    1:1:boolean isInvokeMethodWithDynamicDispatch():1124:1124 -> J1
    com.android.tools.r8.ir.code.InvokeInterface asInvokeInterface() -> K
    1:1:boolean hasPosition():75:75 -> K0
    boolean isInvokeMethodWithReceiver() -> K1
    com.android.tools.r8.ir.code.InvokeMethod asInvokeMethod() -> L
    1:1:java.util.List inValues():93:93 -> L0
    boolean isInvokeMultiNewArray() -> L1
    com.android.tools.r8.ir.code.InvokeMethodWithReceiver asInvokeMethodWithReceiver() -> M
    1:1:boolean instructionInstanceCanThrow():524:524 -> M0
    boolean isInvokeNewArray() -> M1
    com.android.tools.r8.ir.code.InvokeMultiNewArray asInvokeMultiNewArray() -> N
    boolean instructionTypeCanThrow() -> N0
    boolean isInvokePolymorphic() -> N1
    com.android.tools.r8.ir.code.InvokeNewArray asInvokeNewArray() -> O
    boolean isAdd() -> O0
    boolean isInvokeStatic() -> O1
    com.android.tools.r8.ir.code.InvokePolymorphic asInvokePolymorphic() -> P
    boolean isAllowedAfterThrowingInstruction() -> P0
    boolean isInvokeSuper() -> P1
    com.android.tools.r8.ir.code.InvokeStatic asInvokeStatic() -> Q
    boolean isAnd() -> Q0
    boolean isInvokeVirtual() -> Q1
    com.android.tools.r8.ir.code.InvokeSuper asInvokeSuper() -> R
    boolean isArgument() -> R0
    boolean isJumpInstruction() -> R1
    com.android.tools.r8.ir.code.InvokeVirtual asInvokeVirtual() -> S
    boolean isArithmeticBinop() -> S0
    boolean isLoad() -> S1
    com.android.tools.r8.ir.code.JumpInstruction asJumpInstruction() -> T
    boolean isArrayGet() -> T0
    boolean isLogicalBinop() -> T1
    com.android.tools.r8.ir.code.Load asLoad() -> U
    boolean isArrayLength() -> U0
    boolean isMonitor() -> U1
    com.android.tools.r8.ir.code.LogicalBinop asLogicalBinop() -> V
    boolean isArrayPut() -> V0
    boolean isMonitorEnter() -> V1
    com.android.tools.r8.ir.code.Monitor asMonitor() -> W
    boolean isAssume() -> W0
    boolean isMove() -> W1
    com.android.tools.r8.ir.code.Move asMove() -> X
    boolean isAssumeDynamicType() -> X0
    boolean isMoveException() -> X1
    com.android.tools.r8.ir.code.MoveException asMoveException() -> Y
    boolean isAssumeNonNull() -> Y0
    boolean isMul() -> Y1
    com.android.tools.r8.ir.code.Mul asMul() -> Z
    boolean isBinop() -> Z0
    boolean isNeg() -> 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
    boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction) -> 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):84:85 -> a
    3:8:void addDebugValue(com.android.tools.r8.ir.code.Value):142:147 -> a
    9:12:void replaceValue(int,com.android.tools.r8.ir.code.Value):180:183 -> a
    13:22:void replaceDebugValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):187:196 -> a
    23:29:com.android.tools.r8.ir.code.Value removeDebugValue(com.android.tools.r8.graph.DebugLocalInfo):230:236 -> a
    30:31:void setBlock(com.android.tools.r8.ir.code.BasicBlock):265:266 -> a
    32:32:void print(com.android.tools.r8.utils.CfgPrinter):317:317 -> a
    33:33:java.lang.String com.android.tools.r8.utils.CfgPrinter.makeUnusedValue():20:20 -> a
    33:33:void print(com.android.tools.r8.utils.CfgPrinter):318 -> a
    34:45:void print(com.android.tools.r8.utils.CfgPrinter):320:331 -> a
    46:47:void setNumber(int):346:347 -> a
    48:57:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):448:457 -> a
    58:59:boolean identicalNonValueParts(com.android.tools.r8.ir.code.Instruction):356:357 -> a
    58:59:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):454 -> a
    60:60:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):460:460 -> a
    61:64:boolean com.android.tools.r8.ir.code.InvokeDirect.sameConstructorReceiverValue(com.android.tools.r8.ir.code.Invoke):103:106 -> a
    61:64:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):460 -> a
    65:66:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):463:464 -> a
    67:67:int getNumber():342:342 -> a
    67:67:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):468 -> a
    68:68:int getNumber():342:342 -> a
    68:68:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):468 -> a
    69:101: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):412:444 -> a
    69:101:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):467 -> a
    102:111:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):471:480 -> a
    112:112:int getNumber():342:342 -> a
    112:112:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):481 -> a
    113:113:int getNumber():342:342 -> a
    113:113:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):481 -> a
    114:149: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):367:402 -> a
    114:149:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):481 -> a
    150:166: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):391:407 -> a
    150:166:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):481 -> a
    167:168:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):487:488 -> a
    169:169:boolean identicalStackValuePair(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue):495:495 -> a
    170:170:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.Value.outType():797:797 -> a
    170:170:boolean identicalStackValuePair(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue):495 -> a
    171:171:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.Value.outType():797:797 -> a
    171:171:boolean identicalStackValuePair(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue):495 -> a
    172:178:boolean identicalStackValuesPair(com.android.tools.r8.ir.code.StackValues,com.android.tools.r8.ir.code.StackValues):499:505 -> a
    179:179:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):539:539 -> a
    180:180:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):546:546 -> a
    181:182:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):1301:1302 -> a
    183:186:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):1308:1311 -> a
    187:189:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):1316:1318 -> a
    190:196:boolean verifyValidPositionInfo(boolean):1385:1391 -> a
    197:197:boolean verifyValidPositionInfo(boolean):1387:1387 -> a
    com.android.tools.r8.ir.code.Neg asNeg() -> a0
    boolean isCheckCast() -> a1
    boolean isNewArrayEmpty() -> a2
    com.android.tools.r8.ir.code.Add asAdd() -> b
    1:4:void addInValue(com.android.tools.r8.ir.code.Value):98:101 -> b
    5:8:void replaceValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):171:174 -> b
    9:15:void moveDebugValues(com.android.tools.r8.ir.code.Instruction):202:208 -> b
    16:16:void printLIR(com.android.tools.r8.utils.CfgPrinter):338:338 -> b
    17:17:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):528:528 -> b
    18:29:boolean verifyTypes(com.android.tools.r8.graph.AppView):1323:1334 -> b
    com.android.tools.r8.ir.code.NewArrayEmpty asNewArrayEmpty() -> b0
    boolean isCmp() -> b1
    boolean isNewArrayFilledData() -> b2
    com.android.tools.r8.ir.code.And asAnd() -> c
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    boolean needsValueInRegister(com.android.tools.r8.ir.code.Value) -> c
    1:7:void clearUserInfo(com.android.tools.r8.ir.code.Instruction):152:158 -> c
    com.android.tools.r8.ir.code.NewArrayFilledData asNewArrayFilledData() -> c0
    boolean isConstClass() -> c1
    boolean isNewInstance() -> c2
    com.android.tools.r8.ir.code.Argument asArgument() -> d
    1:9:void removeDebugValue(com.android.tools.r8.ir.code.Value):218:226 -> d
    10:14:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):554:558 -> d
    com.android.tools.r8.ir.code.NewInstance asNewInstance() -> d0
    boolean isConstInstruction() -> d1
    boolean isNot() -> d2
    com.android.tools.r8.ir.code.ArithmeticBinop asArithmeticBinop() -> e
    1:4:void setOutValue(com.android.tools.r8.ir.code.Value):124:127 -> e
    com.android.tools.r8.ir.code.Not asNot() -> e0
    boolean isConstMethodHandle() -> e1
    boolean isNumberConversion() -> e2
    com.android.tools.r8.ir.code.ArrayGet asArrayGet() -> f
    1:5:com.android.tools.r8.ir.code.Value swapOutValue(com.android.tools.r8.ir.code.Value):132:136 -> f
    com.android.tools.r8.ir.code.NumberConversion asNumberConversion() -> f0
    boolean isConstMethodType() -> f1
    boolean isOr() -> f2
    com.android.tools.r8.ir.code.ArrayLength asArrayLength() -> g
    com.android.tools.r8.ir.code.Or asOr() -> g0
    boolean isConstNumber() -> g1
    boolean isOutConstant() -> g2
    com.android.tools.r8.ir.code.ArrayPut asArrayPut() -> h
    com.android.tools.r8.ir.code.Rem asRem() -> h0
    boolean isConstString() -> h1
    boolean isPop() -> h2
    com.android.tools.r8.ir.code.Assume asAssume() -> i
    com.android.tools.r8.ir.code.Return asReturn() -> i0
    1:4:boolean isCreatingArray():1280:1283 -> i1
    boolean isRem() -> i2
    com.android.tools.r8.ir.code.Assume asAssumeDynamicType() -> j
    com.android.tools.r8.ir.code.Shl asShl() -> j0
    1:1:boolean isCreatingInstanceOrArray():1287:1287 -> j1
    boolean isReturn() -> j2
    com.android.tools.r8.ir.code.Assume asAssumeNonNull() -> k
    com.android.tools.r8.ir.code.Shr asShr() -> k0
    1:5:boolean isDebugInstruction():1084:1088 -> k1
    boolean isShl() -> k2
    com.android.tools.r8.ir.code.Binop asBinop() -> l
    com.android.tools.r8.ir.code.StaticGet asStaticGet() -> l0
    boolean isDebugLocalRead() -> l1
    boolean isShr() -> l2
    com.android.tools.r8.ir.code.CheckCast asCheckCast() -> m
    com.android.tools.r8.ir.code.StaticPut asStaticPut() -> m0
    boolean isDebugLocalUninitialized() -> m1
    boolean isStaticGet() -> m2
    com.android.tools.r8.ir.code.Cmp asCmp() -> n
    com.android.tools.r8.ir.code.Store asStore() -> n0
    boolean isDebugLocalWrite() -> n1
    boolean isStaticPut() -> n2
    com.android.tools.r8.ir.code.ConstClass asConstClass() -> o
    com.android.tools.r8.ir.code.StringSwitch asStringSwitch() -> o0
    boolean isDebugLocalsChange() -> o1
    boolean isStore() -> o2
    com.android.tools.r8.ir.code.ConstInstruction asConstInstruction() -> p
    com.android.tools.r8.ir.code.Sub asSub() -> p0
    boolean isDebugPosition() -> p1
    boolean isStringSwitch() -> p2
    com.android.tools.r8.ir.code.ConstMethodHandle asConstMethodHandle() -> q
    com.android.tools.r8.ir.code.Switch asSwitch() -> q0
    boolean isDexItemBasedConstString() -> q1
    boolean isSub() -> q2
    com.android.tools.r8.ir.code.ConstMethodType asConstMethodType() -> r
    com.android.tools.r8.ir.code.Throw asThrow() -> r0
    boolean isDiv() -> r1
    boolean isSwap() -> r2
    com.android.tools.r8.ir.code.ConstNumber asConstNumber() -> s
    com.android.tools.r8.ir.code.Ushr asUshr() -> s0
    boolean isDup() -> s1
    boolean isSwitch() -> s2
    com.android.tools.r8.ir.code.ConstString asConstString() -> t
    com.android.tools.r8.ir.code.Xor asXor() -> t0
    boolean isDup2() -> t1
    boolean isThrow() -> t2
    1:14:java.lang.String toString():298:311 -> toString
    com.android.tools.r8.ir.code.DebugLocalWrite asDebugLocalWrite() -> u
    1:2:void clearBlock():273:274 -> u0
    1:1:boolean isFieldGet():856:856 -> u1
    boolean isUnop() -> u2
    com.android.tools.r8.ir.code.DebugLocalsChange asDebugLocalsChange() -> v
    1:5:void clearDebugValues():245:249 -> v0
    boolean isFieldInstruction() -> v1
    boolean isUshr() -> v2
    com.android.tools.r8.ir.code.DebugPosition asDebugPosition() -> w
    1:1:com.android.tools.r8.ir.code.Value getAliasForOutValue():1275:1275 -> w0
    1:1:boolean isFieldPut():860:860 -> w1
    boolean isXor() -> w2
    com.android.tools.r8.ir.code.DexItemBasedConstString asDexItemBasedConstString() -> x
    1:2:com.android.tools.r8.ir.code.BasicBlock getBlock():257:258 -> x0
    boolean isGoto() -> x1
    int maxInValueRegister() -> x2
    com.android.tools.r8.ir.code.Div asDiv() -> y
    1:1:java.util.Set getDebugValues():599:599 -> y0
    boolean isIf() -> y1
    int maxOutValueRegister() -> y2
    com.android.tools.r8.ir.code.Dup asDup() -> z
    1:1:java.lang.String getInstructionName():293:293 -> z0
    boolean isInstanceGet() -> z1
    int opcode() -> z2
com.android.tools.r8.ir.code.InstructionIterator -> com.android.tools.r8.w.b.e0:
    1:3:com.android.tools.r8.ir.code.Instruction peekNext():30:32 -> b
    1:3:com.android.tools.r8.ir.code.Instruction peekPrevious():45:47 -> e
    1:1:void remove():15:15 -> remove
com.android.tools.r8.ir.code.InstructionListIterator -> com.android.tools.r8.w.b.f0:
    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) -> 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:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode):99:99 -> a
    2:2:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int):126:126 -> a
    3:5: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):174:176 -> a
    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() -> d
    1:1:void removeInstructionIgnoreOutValue():43:43 -> h
com.android.tools.r8.ir.code.InstructionOrPhi -> com.android.tools.r8.w.b.g0:
com.android.tools.r8.ir.code.IntSwitch -> com.android.tools.r8.w.b.h0:
    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>
    boolean isIntSwitch() -> C1
    com.android.tools.r8.ir.code.IntSwitch asIntSwitch() -> G
    1:7:boolean valid():55:61 -> H2
    1:1:int getFirstKey():177:177 -> J2
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap getKeyToTargetMap():214:215 -> K2
    3:3:int getKey(int):206:206 -> K2
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap getKeyToTargetMap():216 -> K2
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap getKeyToTargetMap():216:216 -> K2
    1:1:int[] getKeys():210:210 -> L2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction) -> 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
    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() -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.Invoke -> com.android.tools.r8.w.b.i0:
    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>
    1:1:java.util.List arguments():103:103 -> D2
    boolean isInvoke() -> E1
    com.android.tools.r8.graph.DexType getReturnType() -> E2
    com.android.tools.r8.ir.code.Invoke$Type getType() -> F2
    java.lang.String getTypeString() -> G2
    com.android.tools.r8.ir.code.Invoke asInvoke() -> H
    1:1:int requiredArgumentRegisters():108:108 -> H2
    2:2:int com.android.tools.r8.ir.code.Value.requiredRegisters():296:296 -> H2
    2:2:int requiredArgumentRegisters():109 -> H2
    1:1:java.util.List arguments():103:103 -> I2
    1:1:boolean argumentsAreConsecutiveInputArguments():222 -> I2
    2:2:boolean argumentsAreConsecutiveInputArguments():222:222 -> I2
    3:3:java.util.List arguments():103:103 -> I2
    3:3:boolean argumentsAreConsecutiveInputArguments():225 -> I2
    4:5:boolean argumentsAreConsecutiveInputArguments():225:226 -> I2
    6:6:java.util.List arguments():103:103 -> I2
    6:6:boolean argumentsAreConsecutiveInputArguments():229 -> I2
    7:7:boolean argumentsAreConsecutiveInputArguments():229:229 -> I2
    8:8:java.util.List arguments():103:103 -> I2
    8:8:boolean argumentsAreConsecutiveInputArguments():230 -> I2
    9:10:boolean argumentsAreConsecutiveInputArguments():230:231 -> I2
    boolean instructionTypeCanThrow() -> N0
    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():296:296 -> 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():296:296 -> 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():296:296 -> 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():296:296 -> 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():296:296 -> 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 -> x2
    1:1:int maxInValueRegister():213 -> x2
    2:4:int maxInValueRegister():213:215 -> x2
    int maxOutValueRegister() -> y2
    1:1:java.lang.String getInstructionName():269:269 -> z0
com.android.tools.r8.ir.code.Invoke$Type -> com.android.tools.r8.w.b.i0$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.w.b.j0:
    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>
    1:1:com.android.tools.r8.graph.DexType getReturnType():101:101 -> E2
    boolean isInvokeCustom() -> F1
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():110:110 -> F2
    java.lang.String getTypeString() -> G2
    com.android.tools.r8.ir.code.InvokeCustom asInvokeCustom() -> I
    boolean hasInvariantOutType() -> I0
    1:1:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> I2
    1:29:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):66:94 -> a
    30:42:boolean verifyLambdaInterfaces(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,java.util.Set,com.android.tools.r8.graph.DexType):47:59 -> a
    30:42:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):94 -> a
    43:43:boolean verifyLambdaInterfaces(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,java.util.Set,com.android.tools.r8.graph.DexType):58:58 -> a
    43:43:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):94 -> a
    44:44:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):96:96 -> a
    45:45:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> a
    45:45:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):196 -> a
    46:46:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):196:196 -> a
    47:52:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):126:131 -> a
    53:53:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> a
    53:53:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):131 -> a
    54:58:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):131:135 -> a
    59:59:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> a
    59:59:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):137 -> a
    60:67:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):137:144 -> a
    68:68:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):149:149 -> a
    69:69:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> a
    69:69:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):149 -> a
    70:70:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):149:149 -> a
    71:71:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):154:154 -> a
    72:72:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forInvokeCustom():154:154 -> a
    72:72:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):170 -> a
    73:73:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):177:177 -> a
    74:74:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> a
    74:74:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):178 -> a
    75:78:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):178:181 -> a
    79:79:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> a
    79:79:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):182 -> a
    80:83:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):182:185 -> a
    84:84:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeCustom):179:179 -> a
    84:84:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):42 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    1:1:java.lang.String toString():120:120 -> toString
    int opcode() -> z2
com.android.tools.r8.ir.code.InvokeDirect -> com.android.tools.r8.w.b.k0:
    boolean $assertionsDisabled -> m
    boolean itf -> l
    1:1:void <clinit>():33:33 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List,boolean):42:45 -> <init>
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():65:65 -> F2
    boolean isInvokeDirect() -> G1
    java.lang.String getTypeString() -> G2
    com.android.tools.r8.ir.code.InvokeDirect asInvokeDirect() -> J
    1:1:boolean isInterface():55:55 -> K2
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):76:94 -> a
    20:20:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):111:111 -> 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):150:150 -> a
    22:22:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):155:155 -> 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):165:165 -> a
    24:24:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeDirect):184:184 -> a
    24:24:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):60 -> a
    25:61:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):234:270 -> a
    62:62:boolean com.android.tools.r8.ir.code.Value.isDead(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate):987:987 -> a
    62:62:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):270 -> a
    63:63:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):275:275 -> a
    64:64:boolean lambda$canBeDeadCode$0(java.util.List,com.android.tools.r8.ir.code.Instruction):269:269 -> a
    1:37:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):171:207 -> b
    38:38:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> b
    38:38:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):207 -> b
    39:56:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):209:226 -> b
    1:14:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):285:298 -> d
    1:8:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):126:133 -> e
    9:9:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> e
    9:9:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):134 -> e
    10:16:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):135:141 -> e
    int opcode() -> z2
com.android.tools.r8.ir.code.InvokeInterface -> com.android.tools.r8.w.b.l0:
    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>
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():41:41 -> F2
    java.lang.String getTypeString() -> G2
    boolean isInvokeInterface() -> H1
    com.android.tools.r8.ir.code.InvokeInterface asInvokeInterface() -> K
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):52:70 -> a
    20:20:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):75:75 -> 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):105:105 -> a
    22:22:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):110:110 -> 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):120:120 -> a
    24:24:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeInterface):189:189 -> a
    24:24:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):36 -> a
    1:8:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):90:97 -> e
    9:9:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):93:93 -> e
    int opcode() -> z2
com.android.tools.r8.ir.code.InvokeMethod -> com.android.tools.r8.w.b.m0:
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.DexMethod method -> i
    1:1:void <clinit>():28:28 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):33:34 -> <init>
    1:1:com.android.tools.r8.graph.DexType getReturnType():39:39 -> E2
    boolean hasInvariantOutType() -> I0
    boolean isInvokeMethod() -> I1
    1:1:com.android.tools.r8.graph.DexMethod getInvokedMethod():43:43 -> I2
    com.android.tools.r8.ir.code.InvokeMethod asInvokeMethod() -> L
    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:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):48:48 -> a
    2:7:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):128:133 -> 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):138 -> a
    9:9:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):138:138 -> 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):139 -> a
    11:12:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):139:140 -> 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):140 -> a
    14:14:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):140:140 -> a
    15:15:boolean com.android.tools.r8.utils.InternalOptions.canHaveIncorrectJoinForArrayOfInterfacesBug():0:0 -> a
    15:15:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):132 -> a
    16:24:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):151:159 -> a
    25:25:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):170:170 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    1:1:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):180:180 -> d
    com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> e
    1:29:java.util.Collection lookupTargets(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):76:104 -> f
    30:38:java.util.Collection lookupTargets(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):103:111 -> f
    1:1:java.lang.String toString():53:53 -> toString
com.android.tools.r8.ir.code.InvokeMethodWithReceiver -> com.android.tools.r8.w.b.n0:
    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 -> B0
    boolean throwsOnNullInput() -> C2
    1:2:com.android.tools.r8.ir.code.Value getReceiver():39:40 -> J2
    boolean isInvokeMethodWithReceiver() -> K1
    com.android.tools.r8.ir.code.InvokeMethodWithReceiver asInvokeMethodWithReceiver() -> M
    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.w.b.o0:
    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>
    1:1:com.android.tools.r8.graph.DexType getArrayType():60:60 -> E2
    1:1:com.android.tools.r8.graph.DexType getReturnType():65 -> E2
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():56:56 -> F2
    java.lang.String getTypeString() -> G2
    boolean hasInvariantOutType() -> I0
    1:1:com.android.tools.r8.graph.DexType getArrayType():60:60 -> I2
    1:1:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> J2
    1:1:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrowNegativeArraySizeException():159 -> J2
    2:13:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrowNegativeArraySizeException():159:170 -> J2
    boolean isInvokeMultiNewArray() -> L1
    com.android.tools.r8.ir.code.InvokeMultiNewArray asInvokeMultiNewArray() -> N
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):75:75 -> a
    2:2: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
    3:3:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):86:86 -> a
    4:4:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):96:96 -> a
    5:6:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):101:102 -> a
    7:7:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):107:107 -> a
    8:8:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> a
    8:8:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):107 -> a
    9:9:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):107:107 -> a
    10:10:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):112:112 -> a
    11:14:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):117:120 -> a
    15:15:boolean com.android.tools.r8.graph.DexType.isWideType():251:251 -> a
    15:15:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):120 -> a
    16:30:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):120:134 -> a
    31:31:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    31:31:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):138 -> a
    32:46:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):140:154 -> a
    47:47:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):186:186 -> a
    48:48:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeMultiNewArray):194:194 -> a
    48:48:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):41 -> a
    1:6:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):176:181 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    int opcode() -> z2
com.android.tools.r8.ir.code.InvokeNewArray -> com.android.tools.r8.w.b.p0:
    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>
    1:1:com.android.tools.r8.graph.DexType getArrayType():50:50 -> E2
    1:1:com.android.tools.r8.graph.DexType getReturnType():46 -> E2
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():55:55 -> F2
    java.lang.String getTypeString() -> G2
    boolean hasInvariantOutType() -> I0
    1:1:com.android.tools.r8.graph.DexType getArrayType():50:50 -> I2
    1:1:com.android.tools.r8.errors.Unreachable cfUnsupported():139:139 -> J2
    boolean isInvokeNewArray() -> M1
    com.android.tools.r8.ir.code.InvokeNewArray asInvokeNewArray() -> O
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):71:89 -> a
    20:20:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):94:94 -> 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:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):115:115 -> a
    23:23:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):125:125 -> a
    24:24:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):130:130 -> a
    25:25:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):135:135 -> a
    26:29:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):144:147 -> a
    30:30:boolean com.android.tools.r8.graph.DexType.isWideType():251:251 -> a
    30:30:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):147 -> a
    31:45:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):147:161 -> a
    46:46:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    46:46:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):165 -> a
    47:63:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):167:183 -> a
    64:64:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeNewArray):199:199 -> a
    64:64:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):41 -> a
    65:65:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):199:199 -> a
    1:6:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):189:194 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    1:1:java.lang.String toString():65:65 -> toString
    int opcode() -> z2
com.android.tools.r8.ir.code.InvokePolymorphic -> com.android.tools.r8.w.b.q0:
    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>
    1:1:com.android.tools.r8.graph.DexType getReturnType():49:49 -> E2
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():54:54 -> F2
    java.lang.String getTypeString() -> G2
    1:1:com.android.tools.r8.graph.DexProto getProto():63:63 -> J2
    boolean isInvokePolymorphic() -> N1
    com.android.tools.r8.ir.code.InvokePolymorphic asInvokePolymorphic() -> P
    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:37:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):106:108 -> a
    38:38: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
    39:39: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):180:180 -> a
    39:39:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):137 -> a
    40:42: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
    43:43:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokePolymorphic):204:204 -> a
    43:43:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):44 -> a
    com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> e
    java.util.Collection lookupTargets(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> f
    int opcode() -> z2
com.android.tools.r8.ir.code.InvokeStatic -> com.android.tools.r8.w.b.r0:
    boolean itf -> k
    boolean $assertionsDisabled -> l
    1:1:void <clinit>():30:30 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):35:36 -> <init>
    3:4:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List,boolean):40:41 -> <init>
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():56:56 -> F2
    java.lang.String getTypeString() -> G2
    boolean isInvokeStatic() -> O1
    com.android.tools.r8.ir.code.InvokeStatic asInvokeStatic() -> Q
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):67:85 -> a
    20:20:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):90:90 -> 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):129:129 -> a
    22:22: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):139:139 -> a
    23:23:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):145:145 -> a
    24:24: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):155:155 -> a
    25:25:boolean lambda$instructionMayHaveSideEffects$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):202:202 -> a
    26:26:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeStatic):209:209 -> a
    26:26:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):51 -> a
    27:27:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):213:213 -> a
    1:38:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):161:198 -> b
    1:8:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):105:112 -> e
    9:9:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> e
    9:9:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):113 -> e
    10:16:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):114:120 -> e
    int opcode() -> z2
com.android.tools.r8.ir.code.InvokeSuper -> com.android.tools.r8.w.b.s0:
    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>
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():43:43 -> F2
    java.lang.String getTypeString() -> G2
    boolean isInvokeSuper() -> P1
    com.android.tools.r8.ir.code.InvokeSuper asInvokeSuper() -> R
    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:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):82:82 -> a
    22:22: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
    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):120:120 -> a
    24:24:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeSuper):214:214 -> a
    24:24:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):38 -> a
    1:5:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):97:101 -> e
    int opcode() -> z2
com.android.tools.r8.ir.code.InvokeVirtual -> com.android.tools.r8.w.b.t0:
    boolean $assertionsDisabled -> l
    1:1:void <clinit>():26:26 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):29:29 -> <init>
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():44:44 -> F2
    java.lang.String getTypeString() -> G2
    boolean isInvokeVirtual() -> Q1
    com.android.tools.r8.ir.code.InvokeVirtual asInvokeVirtual() -> S
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):55:73 -> a
    20:20:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):78:78 -> 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):108:108 -> a
    22:22:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):113:113 -> 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):123:123 -> a
    24:24:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):180:180 -> a
    25:25:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeVirtual):219:219 -> a
    25:25:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):39 -> a
    1:41:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):129:169 -> b
    1:8:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):93:100 -> e
    9:9:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):96:96 -> e
    int opcode() -> z2
com.android.tools.r8.ir.code.JumpInstruction -> com.android.tools.r8.w.b.u0:
    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() -> D2
    boolean hasInvariantOutType() -> I0
    boolean isJumpInstruction() -> R1
    com.android.tools.r8.ir.code.JumpInstruction asJumpInstruction() -> T
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forJumpInstruction():203:203 -> 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):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) -> c
com.android.tools.r8.ir.code.LinearFlowInstructionListIterator -> com.android.tools.r8.w.b.v0:
    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>():14:14 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):22:22 -> <init>
    2:10:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,int):25:33 -> <init>
    1:1:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):39:39 -> a
    2:2:com.android.tools.r8.ir.code.Value insertConstNullInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):44:44 -> 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):49:49 -> 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):65:65 -> a
    6:6:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):70:70 -> 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):81:81 -> a
    8:11:boolean isLinearEdge(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):96:99 -> a
    12:22:com.android.tools.r8.ir.code.BasicBlock getBeginningOfTrivialLinearGotoChain(com.android.tools.r8.ir.code.BasicBlock):130:140 -> a
    1:1:void add(java.lang.Object):14:14 -> add
    2:2:void add(com.android.tools.r8.ir.code.Instruction):87:87 -> add
    2:2:void add(java.lang.Object):14 -> add
    1:1:void removeOrReplaceByDebugLocalRead():92:92 -> d
    1:1:boolean hasNext():104:104 -> hasNext
    1:4:boolean hasPrevious():145:148 -> hasPrevious
    1:1:java.lang.Object next():14:14 -> next
    2:19:com.android.tools.r8.ir.code.Instruction next():109:126 -> next
    1:1:int nextIndex():170:170 -> nextIndex
    1:1:java.lang.Object previous():14:14 -> previous
    2:14:com.android.tools.r8.ir.code.Instruction previous():153:165 -> previous
    1:1:int previousIndex():175:175 -> previousIndex
    1:1:void remove():180:180 -> remove
    1:1:void set(java.lang.Object):14:14 -> set
    2:2:void set(com.android.tools.r8.ir.code.Instruction):185:185 -> set
    2:2:void set(java.lang.Object):14 -> set
com.android.tools.r8.ir.code.Load -> com.android.tools.r8.w.b.w0:
    1:1:void <init>(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value):22:22 -> <init>
    1:1:com.android.tools.r8.ir.code.Value src():36:36 -> D2
    boolean hasInvariantOutType() -> I0
    boolean isLoad() -> S1
    com.android.tools.r8.ir.code.Load asLoad() -> U
    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:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):51:51 -> a
    2:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):72:72 -> a
    3:4:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):77:78 -> a
    5:5:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):83:83 -> a
    6:6:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):93:93 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forLoad():207:207 -> 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):67 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    int maxInValueRegister() -> x2
    1:1:int maxOutValueRegister():61:61 -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.LogicalBinop -> com.android.tools.r8.w.b.x0:
    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() -> I2
    boolean isLogicalBinop() -> T1
    com.android.tools.r8.ir.code.LogicalBinop asLogicalBinop() -> V
    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.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.w.b.y0:
    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
    2:44: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
    45:45: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
    46:47: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
    48:49: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
    50:50:com.android.tools.r8.ir.code.MemberType constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint) -> a
    51:51: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
    52:53: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
    54:55: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
    56:56: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
    1:1:com.android.tools.r8.ir.code.MemberType[] values():11:11 -> b
com.android.tools.r8.ir.code.Monitor -> com.android.tools.r8.w.b.z0:
    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:com.android.tools.r8.ir.code.Value getNonNullInput():156:156 -> B0
    boolean throwsOnNullInput() -> C2
    1:1:boolean isEnter():50:50 -> D2
    1:1:com.android.tools.r8.ir.code.Value object():46:46 -> E2
    boolean hasInvariantOutType() -> I0
    boolean instructionTypeCanThrow() -> N0
    boolean isMonitor() -> U1
    1:1:boolean isEnter():50:50 -> V1
    1:1:boolean isMonitorEnter():103 -> V1
    com.android.tools.r8.ir.code.Monitor asMonitor() -> W
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:8:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):64:71 -> a
    9:9:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):77:77 -> a
    10:10:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):136:136 -> a
    11:11:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):141:141 -> a
    12:12:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):146:146 -> a
    13:13:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forMonitor():211:211 -> 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):114 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    int maxInValueRegister() -> x2
    1:1:int maxOutValueRegister():87:87 -> y2
    1:7:java.lang.String getInstructionName():119:125 -> z0
    int opcode() -> z2
com.android.tools.r8.ir.code.Monitor$Type -> com.android.tools.r8.w.b.z0$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.w.b.A0:
    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>
    1:2:com.android.tools.r8.ir.code.ConstInstruction getOutConstantConstInstruction():86:87 -> D0
    1:1:com.android.tools.r8.ir.code.Value dest():37:37 -> D2
    1:1:com.android.tools.r8.ir.code.Value src():41:41 -> E2
    boolean hasInvariantOutType() -> I0
    boolean isMove() -> W1
    com.android.tools.r8.ir.code.Move asMove() -> X
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):46:46 -> a
    2:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):51:51 -> a
    3:3:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):56:56 -> a
    4:4:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):71:71 -> a
    5:5:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):108:108 -> a
    6:6:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):118:118 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forMove():215:215 -> 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):103 -> a
    1:2:boolean verifyTypes(com.android.tools.r8.graph.AppView):128:129 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    1:1:boolean isOutConstant():81:81 -> g2
    1:1:java.lang.String toString():76:76 -> toString
    int maxInValueRegister() -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.MoveException -> com.android.tools.r8.w.b.B0:
    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>
    1:1:com.android.tools.r8.graph.DexType getExceptionType():119:119 -> D2
    boolean hasInvariantOutType() -> I0
    boolean isMoveException() -> X1
    com.android.tools.r8.ir.code.MoveException asMoveException() -> Y
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    void buildCf(com.android.tools.r8.ir.conversion.CfBuilder) -> a
    1:1:com.android.tools.r8.ir.code.Value dest():40:40 -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):45 -> a
    2:3:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):45:46 -> a
    4:7:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):62:65 -> a
    8:8:boolean com.android.tools.r8.utils.InternalOptions.canHaveExceptionTypeBug():1398:1398 -> a
    8:8:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):65 -> a
    9:9:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):66:66 -> a
    10:11:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):83:84 -> a
    12:12:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):95:95 -> a
    13:13:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):110:110 -> a
    14:14:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):115:115 -> a
    15:15:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forMoveException():219:219 -> a
    15:15: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 instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    1:1:int maxInValueRegister():51:51 -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.Mul -> com.android.tools.r8.w.b.C0:
    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>
    boolean isCommutative() -> E2
    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():139:139 -> I2
    boolean isMul() -> Y1
    com.android.tools.r8.ir.code.Mul asMul() -> Z
    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
    2:2:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):104:104 -> a
    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
    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
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):53:53 -> f
    int opcode() -> z2
com.android.tools.r8.ir.code.Neg -> com.android.tools.r8.w.b.D0:
    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>
    boolean isNeg() -> Z1
    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:37:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):49:49 -> a
    38:56:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):88:106 -> a
    57:57:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):111:111 -> a
    com.android.tools.r8.ir.code.Neg asNeg() -> a0
    int opcode() -> z2
com.android.tools.r8.ir.code.NewArrayEmpty -> com.android.tools.r8.w.b.E0:
    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>
    1:1:com.android.tools.r8.ir.code.Value size():49:49 -> D2
    boolean hasInvariantOutType() -> I0
    1:4:boolean instructionInstanceCanThrow():77:80 -> M0
    boolean instructionTypeCanThrow() -> N0
    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):168:168 -> a
    12:12:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):90 -> a
    13:13:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):95:95 -> 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):111:111 -> a
    15:15:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):121:121 -> a
    16:17:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):126:127 -> a
    18:19:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):132:133 -> a
    20:20:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):138:138 -> a
    boolean isNewArrayEmpty() -> a2
    com.android.tools.r8.ir.code.NewArrayEmpty asNewArrayEmpty() -> b0
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    1:1:java.lang.String toString():41:41 -> toString
    int maxInValueRegister() -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.NewArrayFilledData -> com.android.tools.r8.w.b.F0:
    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:com.android.tools.r8.ir.code.Value src():47:47 -> D2
    boolean hasInvariantOutType() -> I0
    boolean instructionTypeCanThrow() -> N0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):56:57 -> a
    3:3:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):62:62 -> a
    4:10:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):67:73 -> a
    11:11:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):110:110 -> a
    12:20:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):120:128 -> a
    21:21:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):153:153 -> a
    22:22:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forNewArrayFilledData():227:227 -> a
    22:22:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):105 -> a
    1:8:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):134:141 -> b
    boolean isNewArrayFilledData() -> b2
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    com.android.tools.r8.ir.code.NewArrayFilledData asNewArrayFilledData() -> c0
    int maxInValueRegister() -> x2
    1:1:int maxOutValueRegister():83:83 -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.NewInstance -> com.android.tools.r8.w.b.G0:
    boolean allowSpilling -> i
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.DexType clazz -> h
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):34:34 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):31:36 -> <init>
    1:1:com.android.tools.r8.ir.code.Value dest():50:50 -> D2
    1:1:boolean isSpillingAllowed():199:199 -> E2
    1:1:void markNoSpilling():195:195 -> F2
    boolean hasInvariantOutType() -> I0
    boolean instructionTypeCanThrow() -> N0
    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):46:46 -> a
    2:2:com.android.tools.r8.ir.code.Value dest():50:50 -> a
    2:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):55 -> a
    3:4:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):55:56 -> a
    5:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):66:66 -> 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):99:99 -> a
    7:7:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):109:109 -> a
    8:8:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):114:114 -> a
    9:9:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):119:119 -> a
    10:10:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):124:124 -> a
    11:11: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):134:134 -> a
    12:12:boolean lambda$instructionMayHaveSideEffects$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):170:170 -> a
    13:13:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):191:191 -> a
    1:10:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):140:149 -> b
    11:11:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> b
    11:11:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):149 -> b
    12:42:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):150:180 -> b
    43:43:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):145:145 -> b
    44:44:boolean lambda$instructionMayTriggerMethodInvocation$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):210:210 -> b
    45:48:boolean verifyTypes(com.android.tools.r8.graph.AppView):220:223 -> b
    49:51:boolean verifyTypes(com.android.tools.r8.graph.AppView):222:224 -> b
    52:52:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isDefinitelyNotNull():334:334 -> b
    52:52:boolean verifyTypes(com.android.tools.r8.graph.AppView):224 -> b
    53:53:boolean verifyTypes(com.android.tools.r8.graph.AppView):224:224 -> b
    1:11:boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):204:214 -> c
    boolean isNewInstance() -> c2
    com.android.tools.r8.ir.code.NewInstance asNewInstance() -> d0
    1:1:java.lang.String toString():61:61 -> toString
    1:1:int maxInValueRegister():71:71 -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.NextUntilIterator -> com.android.tools.r8.w.b.H0:
    1:3:java.lang.Object nextUntil(java.util.function.Predicate):18:20 -> a
com.android.tools.r8.ir.code.Not -> com.android.tools.r8.w.b.I0:
    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>
    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:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):83:83 -> a
    39:39:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):99:99 -> a
    40:40:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):105:105 -> a
    boolean isNot() -> d2
    com.android.tools.r8.ir.code.Not asNot() -> e0
    int opcode() -> z2
com.android.tools.r8.ir.code.NumberConversion -> com.android.tools.r8.w.b.J0:
    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>
    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:87:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):116:127 -> a
    88:88:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):121:121 -> a
    89:89:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):118:118 -> a
    90:101:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):101:112 -> a
    102:102:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):106:106 -> a
    103:103:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder) -> a
    104:115:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):86:97 -> a
    116:116:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):91:91 -> a
    117:117:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):88:88 -> a
    118:138:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:82 -> a
    139:139:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):79:79 -> a
    140:140:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):76:76 -> a
    141:141:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):73:73 -> a
    142:142:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):70:70 -> a
    143:143:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):67:67 -> a
    144:213:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):64:133 -> a
    214:218:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):138:142 -> a
    219:219:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):157:157 -> a
    220:220:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):162:162 -> a
    221:221:boolean outTypeKnownToBeBoolean(java.util.Set):167:167 -> a
    boolean isNumberConversion() -> e2
    com.android.tools.r8.ir.code.NumberConversion asNumberConversion() -> f0
    int opcode() -> z2
com.android.tools.r8.ir.code.NumericType -> com.android.tools.r8.w.b.K0:
    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.w.b.L0:
    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>
    boolean isCommutative() -> E2
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():93:93 -> I2
    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 identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):78:78 -> a
    3:3: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
    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() -> f2
    com.android.tools.r8.ir.code.Or asOr() -> g0
    int opcode() -> z2
com.android.tools.r8.ir.code.Phi -> com.android.tools.r8.w.b.M0:
    com.android.tools.r8.ir.code.Phi$RegisterReadType readType -> t
    java.util.List definitionUsers -> v
    java.util.List operands -> s
    boolean isStackPhi -> u
    boolean $assertionsDisabled -> w
    com.android.tools.r8.ir.code.BasicBlock block -> r
    1:1:void <clinit>():30:30 -> <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):54:54 -> <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):38:57 -> <init>
    boolean isConstant() -> E
    boolean isPhi() -> J
    1:2:boolean isValueOnStack():346:347 -> M
    1:1:void markNonDebugLocalRead():152:152 -> Q
    1:1:boolean needsRegister():369:369 -> R
    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):77:80 -> a
    5:27:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):102:124 -> a
    28:29:void appendOperand(com.android.tools.r8.ir.code.Value):163:164 -> a
    28:29:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):125 -> a
    30:30:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):127:127 -> a
    31:31:void throwUndefinedValueError():156:156 -> a
    31:31:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):104 -> a
    32:32:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    32:32:void throwUndefinedValueError():156 -> a
    32:32:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):104 -> 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():156 -> a
    33:33:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):104 -> a
    34:34:void throwUndefinedValueError():156:156 -> a
    34:34:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):104 -> a
    35:39:void addOperands(java.util.List,boolean):138:142 -> a
    40:41:void appendOperand(com.android.tools.r8.ir.code.Value):163:164 -> a
    40:41:void addOperands(java.util.List,boolean):143 -> a
    42:42:void removeTrivialPhi():228:228 -> a
    42:42:void addOperands(java.util.List,boolean):146 -> a
    43:43:void throwUndefinedValueError():156:156 -> a
    43:43:void addOperands(java.util.List,boolean):140 -> a
    44:44:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    44:44:void throwUndefinedValueError():156 -> a
    44:44:void addOperands(java.util.List,boolean):140 -> 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():156 -> a
    45:45:void addOperands(java.util.List,boolean):140 -> a
    46:46:void throwUndefinedValueError():156:156 -> a
    46:46:void addOperands(java.util.List,boolean):140 -> a
    47:50:void replaceOperandAt(int,com.android.tools.r8.ir.code.Value):196:199 -> a
    51:54:void replaceOperand(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):203:206 -> a
    55:94:void removeTrivialPhi(com.android.tools.r8.ir.conversion.IRBuilder,java.util.Set):233:272 -> a
    95:95:void addDefinitionsUser(java.util.Map):328:328 -> a
    95:95:void removeTrivialPhi(com.android.tools.r8.ir.conversion.IRBuilder,java.util.Set):272 -> a
    96:105:void removeTrivialPhi(com.android.tools.r8.ir.conversion.IRBuilder,java.util.Set):279:288 -> a
    106:113:void print(com.android.tools.r8.utils.CfgPrinter):316:323 -> a
    114:114:void addDefinitionsUser(java.util.Map):328:328 -> a
    115:118:void lambda$verifyIsStackPhi$0(java.util.Set,com.android.tools.r8.ir.code.Value):358:361 -> a
    119:119:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.cf.TypeVerificationHelper):377:377 -> a
    120:120:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.Value.outType():797:797 -> a
    120:120:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.cf.TypeVerificationHelper):377 -> a
    121:129:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.cf.TypeVerificationHelper):377:385 -> a
    1:3:void abortOnInvalidDebugInfo(com.android.tools.r8.ir.code.ValueTypeConstraint):84:86 -> b
    4:4:com.android.tools.r8.ir.code.Value getOperand(int):168:168 -> b
    5:16:void removeOperandsByIndex(java.util.List):181:192 -> b
    17:17:void removeDefinitionsUser(java.util.Map):332:332 -> b
    18:18:void setIsStackPhi(boolean):351:351 -> b
    19:20:boolean verifyIsStackPhi(java.util.Set):355:356 -> b
    1:2:void removeOperand(int):176:177 -> c
    1:1:void clearDefinitionsUsers():336:336 -> c0
    com.android.tools.r8.ir.code.Phi asPhi() -> d
    1:1:boolean usesValueOneTime(com.android.tools.r8.ir.code.Value):373:373 -> d
    1:1:com.android.tools.r8.ir.code.BasicBlock getBlock():71:71 -> d0
    1:3:com.android.tools.r8.ir.analysis.type.TypeLatticeElement computePhiType(com.android.tools.r8.graph.AppView):390:392 -> e
    1:1:java.util.List getOperands():172:172 -> e0
    1:1:boolean isTrivialPhi():213:213 -> f0
    1:10:java.lang.String printPhi():303:312 -> g0
    1:4:void removeDeadPhi():293:296 -> h0
    5:5:com.android.tools.r8.ir.code.BasicBlock getBlock():71:71 -> h0
    5:5:void removeDeadPhi():299 -> h0
    6:6:void removeDeadPhi():299:299 -> h0
    1:1:void removeTrivialPhi():228:228 -> i0
com.android.tools.r8.ir.code.Phi$RegisterReadType -> com.android.tools.r8.w.b.M0$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>():33:34 -> <clinit>
    1:1:void <init>(java.lang.String,int):32:32 -> <init>
com.android.tools.r8.ir.code.Pop -> com.android.tools.r8.w.b.N0:
    1:1:void <init>(com.android.tools.r8.ir.code.StackValue):19:19 -> <init>
    boolean hasInvariantOutType() -> I0
    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:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):54:54 -> a
    2:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75:75 -> a
    3:3:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):80:80 -> a
    4:4:com.android.tools.r8.cf.code.CfStackInstruction com.android.tools.r8.cf.code.CfStackInstruction.popType(com.android.tools.r8.ir.code.ValueType):71:71 -> a
    4:4:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):80 -> a
    5:5:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):80:80 -> a
    6:6:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):85:85 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forPop():239:239 -> 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):70 -> a
    1:5:void addInValue(com.android.tools.r8.ir.code.Value):34:38 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    boolean isPop() -> h2
    1:1:int maxInValueRegister():59:59 -> x2
    1:1:int maxOutValueRegister():64:64 -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.Position -> com.android.tools.r8.w.b.O0:
    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>():11:22 -> <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):37:39 -> <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):43:49 -> <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):53:55 -> a
    4:5:com.android.tools.r8.ir.code.Position noneWithMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):75:76 -> a
    6:6:com.android.tools.r8.ir.code.Position getOutermostCaller():95:95 -> a
    1:1:boolean isNone():80:80 -> b
    1:1:boolean isSome():88:88 -> c
    1:1:boolean isSyntheticNone():84:84 -> d
    1:1:com.android.tools.r8.ir.code.Position none():59:59 -> e
    1:7:boolean equals(java.lang.Object):106:112 -> equals
    1:1:com.android.tools.r8.ir.code.Position syntheticNone():63:63 -> f
    1:1:com.android.tools.r8.ir.code.Position testingPosition():68:68 -> g
    1:5:int hashCode():119:123 -> hashCode
    1:19:java.lang.String toString(boolean):128:146 -> toString
    1:19:java.lang.String toString():151 -> toString
com.android.tools.r8.ir.code.Rem -> com.android.tools.r8.w.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):24:24 -> <init>
    boolean isCommutative() -> E2
    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():148:148 -> I2
    1:1:boolean instructionTypeCanThrow():134:134 -> N0
    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:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):104:104 -> a
    3:3:int foldIntegers(int,int):114:114 -> a
    4:4:long foldLongs(long,long):119:119 -> a
    5:9: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
    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
    com.android.tools.r8.ir.code.Rem asRem() -> h0
    boolean isRem() -> i2
    int opcode() -> z2
com.android.tools.r8.ir.code.Return -> com.android.tools.r8.w.b.Q0:
    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:2:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getReturnType():46:47 -> E2
    1:1:boolean isReturnVoid():42:42 -> F2
    1:2:com.android.tools.r8.ir.code.Value returnValue():51:52 -> G2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75:75 -> a
    2:9:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):80:87 -> a
    10:12:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isValueTypeCompatible(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):385:387 -> a
    10:12:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):87 -> a
    13:14:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):119:120 -> a
    15:17:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):127:129 -> a
    18:18:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):126:126 -> a
    19:19:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forReturn():243:243 -> a
    19:19:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):114 -> a
    1:15:com.android.tools.r8.code.Instruction createDexInstruction(com.android.tools.r8.ir.conversion.DexBuilder):56:70 -> b
    com.android.tools.r8.ir.code.Return asReturn() -> i0
    boolean isReturn() -> j2
    int maxInValueRegister() -> x2
    1:1:int maxOutValueRegister():97:97 -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.Shl -> com.android.tools.r8.w.b.R0:
    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>
    boolean isCommutative() -> E2
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():98:98 -> I2
    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
    2:2:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):83:83 -> 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
    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.Shl asShl() -> j0
    boolean isShl() -> k2
    int opcode() -> z2
com.android.tools.r8.ir.code.Shr -> com.android.tools.r8.w.b.S0:
    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>
    boolean isCommutative() -> E2
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():98:98 -> I2
    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
    2:2:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):83:83 -> 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
    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.Shr asShr() -> k0
    boolean isShr() -> l2
    int opcode() -> z2
com.android.tools.r8.ir.code.SingleConstant -> com.android.tools.r8.w.b.T0:
    int decodedValue() -> a
com.android.tools.r8.ir.code.StackValue -> com.android.tools.r8.w.b.U0:
    int height -> r
    com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo typeInfo -> s
    boolean $assertionsDisabled -> t
    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() -> M
    boolean needsRegister() -> R
    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 -> c0
    1:1:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo():35:35 -> d0
    1:1:java.lang.String toString():59:59 -> toString
com.android.tools.r8.ir.code.StackValues -> com.android.tools.r8.w.b.V0:
    com.android.tools.r8.ir.code.StackValue[] stackValues -> r
    boolean $assertionsDisabled -> s
    1:1:void <clinit>():14:14 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.StackValue[]):19:21 -> <init>
    boolean isValueOnStack() -> M
    boolean needsRegister() -> R
    1:1:void setNeedsRegister(boolean):35:35 -> a
    1:1:com.android.tools.r8.ir.code.StackValue[] getStackValues():25:25 -> c0
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getTypeLattice():59:59 -> t
    1:10:java.lang.String toString():40:49 -> toString
com.android.tools.r8.ir.code.StaticGet -> com.android.tools.r8.w.b.W0:
    boolean $assertionsDisabled -> j
    1:1:void <clinit>():32:32 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexField):35:35 -> <init>
    1:1:com.android.tools.r8.ir.code.Value value():54:54 -> F2
    1:1:com.android.tools.r8.ir.code.Value dest():49:49 -> G2
    boolean instructionTypeCanThrow() -> N0
    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):45:45 -> a
    2:2:com.android.tools.r8.ir.code.Value dest():49:49 -> a
    2:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):80 -> a
    3:30:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):80:107 -> a
    31:31:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):89:89 -> a
    32:51:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):85:104 -> a
    52:52:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):101:101 -> a
    53:53:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):98:98 -> a
    54:54:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):95:95 -> a
    55:72:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):92:109 -> a
    73:84:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):59:70 -> a
    85:91:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):68:74 -> a
    92:92:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):130:130 -> a
    93:93:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):120:120 -> a
    93:93:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):130 -> a
    94:98:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):145:149 -> a
    99:99:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):155:155 -> a
    100:100:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):175:175 -> a
    101:103:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):180:182 -> a
    104:104:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):180:180 -> a
    105:105:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):187:187 -> a
    106:106:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):192:192 -> a
    107:107: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):202:202 -> a
    108:108:boolean outTypeKnownToBeBoolean(java.util.Set):208:208 -> a
    109:109:boolean lambda$instructionMayTriggerMethodInvocation$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):220:220 -> a
    1:1:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):120:120 -> b
    1:5:boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):213:217 -> c
    com.android.tools.r8.ir.code.StaticGet asStaticGet() -> l0
    boolean isStaticGet() -> m2
    1:1:java.lang.String toString():160:160 -> toString
    int maxInValueRegister() -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.StaticPut -> com.android.tools.r8.w.b.X0:
    boolean $assertionsDisabled -> j
    1:1:void <clinit>():32:32 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexField):35:35 -> <init>
    1:2:com.android.tools.r8.ir.code.Value value():50:51 -> F2
    boolean instructionTypeCanThrow() -> N0
    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):45:45 -> a
    2:29:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):57:84 -> a
    30:30:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):66:66 -> a
    31:50:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:81 -> a
    51:51:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):78:78 -> a
    52:52:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75:75 -> a
    53:53:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):72:72 -> a
    54:71:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):69:86 -> a
    72:72:java.lang.Boolean lambda$instructionMayHaveSideEffects$0(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):118:118 -> a
    73:74:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):139:140 -> a
    75:85:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):158:168 -> a
    86:86:boolean com.android.tools.r8.utils.InternalOptions.canHaveIncorrectJoinForArrayOfInterfacesBug():0:0 -> a
    86:86:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):162 -> a
    87:91:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):178:182 -> a
    92:92:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):188:188 -> a
    93:93:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):208:208 -> a
    94:96:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):213:215 -> a
    97:97:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):213:213 -> 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):225:225 -> a
    99:99:boolean lambda$instructionMayTriggerMethodInvocation$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):238:238 -> a
    1:22:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):97:118 -> b
    23:30:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):117:124 -> b
    1:5:boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):231:235 -> c
    com.android.tools.r8.ir.code.StaticPut asStaticPut() -> m0
    boolean isStaticPut() -> n2
    1:1:java.lang.String toString():193:193 -> toString
    int maxInValueRegister() -> x2
    1:1:int maxOutValueRegister():152:152 -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.Store -> com.android.tools.r8.w.b.Y0:
    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>
    1:1:com.android.tools.r8.ir.code.Value src():37:37 -> D2
    boolean hasInvariantOutType() -> I0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):52:52 -> a
    2:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):73:73 -> a
    3:3:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):78:78 -> a
    4:4:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):83:83 -> a
    5:5:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):88:88 -> a
    6:6:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):93:93 -> a
    7:7:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):103:103 -> a
    8:8:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forStore():259:259 -> 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):68 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    1:2:boolean needsValueInRegister(com.android.tools.r8.ir.code.Value):108:109 -> c
    com.android.tools.r8.ir.code.Store asStore() -> n0
    boolean isStore() -> o2
    1:1:int maxInValueRegister():57:57 -> x2
    int maxOutValueRegister() -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.StringSwitch -> com.android.tools.r8.w.b.Z0:
    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:4:boolean valid():44:47 -> H2
    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:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):91:91 -> a
    7:7:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):96:96 -> a
    com.android.tools.r8.ir.code.StringSwitch asStringSwitch() -> o0
    boolean isStringSwitch() -> p2
    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 -> x2
    1:1:int maxOutValueRegister():106:106 -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.Sub -> com.android.tools.r8.w.b.a1:
    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>
    boolean isCommutative() -> E2
    1:8:int maxInOutValueRegisterSize():131:138 -> G2
    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():217:217 -> I2
    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:2:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):99:99 -> a
    3:38:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):164:199 -> a
    39:39:com.android.tools.r8.code.Instruction CreateInt(int,int,int):47:47 -> a
    39:39:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):200 -> a
    40:40:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):202:202 -> a
    41:41: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
    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
    com.android.tools.r8.ir.code.Sub asSub() -> p0
    boolean isSub() -> q2
    int opcode() -> z2
com.android.tools.r8.ir.code.Swap -> com.android.tools.r8.w.b.b1:
    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>
    boolean hasInvariantOutType() -> I0
    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):67:67 -> a
    2:2:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):72:72 -> a
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):77:77 -> a
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forSwap():263:263 -> 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):93 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    1:6:void setOutValue(com.android.tools.r8.ir.code.Value):44:49 -> e
    boolean isSwap() -> r2
    int maxInValueRegister() -> x2
    1:1:int maxOutValueRegister():87:87 -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.Switch -> com.android.tools.r8.w.b.c1:
    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 -> D2
    1:1:int getFallthroughBlockIndex():55:55 -> E2
    1:1:int numberOfKeys():68:68 -> F2
    1:1:int[] targetBlockIndices():40:40 -> G2
    1:2:boolean valid():25:26 -> H2
    3:3:int getTargetBlockIndex(int):36:36 -> H2
    3:3:boolean valid():26 -> H2
    4:4:int getFallthroughBlockIndex():55:55 -> H2
    4:4:boolean valid():26 -> H2
    5:5:boolean valid():26:26 -> H2
    1:1:com.android.tools.r8.ir.code.Value value():21:21 -> I2
    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
    com.android.tools.r8.ir.code.Switch asSwitch() -> q0
    boolean isSwitch() -> s2
com.android.tools.r8.ir.code.Throw -> com.android.tools.r8.w.b.d1:
    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:com.android.tools.r8.ir.code.Value exception():34:34 -> E2
    boolean instructionTypeCanThrow() -> N0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):39:39 -> a
    2:2:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):60:60 -> a
    3:3:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):81:81 -> a
    4:4:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):86:86 -> a
    5:9:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):91:95 -> a
    10:10:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isDefinitelyNull():330:330 -> a
    10:10:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):99 -> a
    11:15:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):104:108 -> a
    16:16:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forThrow():267:267 -> 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):76 -> a
    com.android.tools.r8.ir.code.Throw asThrow() -> r0
    boolean isThrow() -> t2
    int maxInValueRegister() -> x2
    1:1:int maxOutValueRegister():49:49 -> y2
    int opcode() -> z2
com.android.tools.r8.ir.code.Unop -> com.android.tools.r8.w.b.e1:
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):17:17 -> <init>
    1:1:com.android.tools.r8.ir.code.Value source():25:25 -> D2
    boolean hasInvariantOutType() -> I0
    1:2:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):56:57 -> a
    3:3:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):62:62 -> a
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forUnop():271:271 -> 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):51 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> c
    boolean isUnop() -> u2
    int maxInValueRegister() -> x2
    int maxOutValueRegister() -> y2
com.android.tools.r8.ir.code.Ushr -> com.android.tools.r8.w.b.f1:
    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>
    boolean isCommutative() -> E2
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():98:98 -> I2
    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
    2:2:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):83:83 -> 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
    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() -> s0
    boolean isUshr() -> v2
    int opcode() -> z2
com.android.tools.r8.ir.code.Value -> com.android.tools.r8.w.b.g1:
    int needsRegister -> j
    boolean isThis -> k
    boolean isArgument -> l
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeLattice -> o
    com.android.tools.r8.ir.code.Value UNDEFINED -> p
    boolean $assertionsDisabled -> q
    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
    java.util.Set uniquePhiUsers -> f
    java.util.LinkedList phiUsers -> e
    com.android.tools.r8.ir.code.Value$DebugData debugData -> n
    com.android.tools.r8.utils.LongInterval valueRange -> m
    java.util.LinkedList users -> c
    1:165:void <clinit>():41:205 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):224:224 -> <init>
    2:20:void <init>(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):209:227 -> <init>
    1:1:boolean isArgument():886:886 -> A
    1:1:boolean isConstClass():826:826 -> B
    1:1:boolean isConstNumber():806:806 -> C
    1:1:boolean isConstString():810:810 -> D
    1:1:boolean isConstant():830:830 -> E
    1:1:boolean isDexItemBasedConstString():814:814 -> F
    boolean isFixedRegisterValue() -> G
    1:1:boolean isLinked():393:393 -> H
    1:3:boolean isNeverNull():874:876 -> I
    boolean isPhi() -> J
    1:1:boolean isThis():946:946 -> K
    1:1:boolean isUsed():498:498 -> L
    boolean isValueOnStack() -> M
    1:3:boolean isZero():1039:1041 -> N
    1:3:void markAsArgument():880:882 -> O
    1:3:void markAsThis():935:937 -> P
    1:1:void markNonDebugLocalRead():138:138 -> Q
    1:3:boolean needsRegister():713:715 -> R
    1:1:int numberOfAllNonDebugUsers():486:486 -> S
    1:1:int numberOfAllUsers():494 -> S
    2:2:int numberOfAllUsers():494:494 -> S
    1:1:int numberOfDebugUsers():490:490 -> T
    1:5:int numberOfPhiUsers():478:482 -> U
    1:5:int numberOfUsers():470:474 -> V
    1:1:com.android.tools.r8.ir.code.ValueType outType():797:797 -> W
    1:1:int requiredRegisters():296:296 -> X
    1:2:com.android.tools.r8.ir.code.Instruction singleUniqueUser():429:430 -> Y
    1:4:java.util.Set uniquePhiUsers():459:462 -> Z
    boolean lambda$fullyRemovePhiUser$1(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Phi) -> a
    1:13: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):45:57 -> a
    14:14:void setTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1050:1050 -> a
    14: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):58 -> 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):47:47 -> a
    16:18:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> 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):47 -> a
    19:79:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):63:123 -> a
    80:81:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):118:119 -> a
    82:83:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):113:114 -> a
    84:85:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):108:109 -> a
    86:90:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):100:104 -> a
    91:92:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):95:96 -> a
    93:94:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):90:91 -> a
    95:111:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):69:85 -> a
    112:116:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):82:86 -> a
    117:117:boolean verifyCompatible(com.android.tools.r8.ir.code.ValueType):129:129 -> a
    118:118:boolean verifyCompatible(com.android.tools.r8.ir.code.ValueTypeConstraint):133:133 -> a
    118:118:boolean verifyCompatible(com.android.tools.r8.ir.code.ValueType):129 -> a
    119:139:com.android.tools.r8.ir.code.Value getAliasedValue(java.util.function.Predicate):262:282 -> a
    140:142:void setLocalInfo(com.android.tools.r8.graph.DebugLocalInfo):308:310 -> a
    143:146:boolean hasSameOrNoLocal(com.android.tools.r8.ir.code.Value):319:322 -> a
    147:148:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):362:363 -> a
    149:150:com.android.tools.r8.ir.code.Value$DebugUse markEnd(com.android.tools.r8.ir.code.Value$DebugUse):367:368 -> a
    149:150:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):363 -> a
    151:159:com.android.tools.r8.ir.code.Value$DebugUse com.android.tools.r8.ir.code.Value$DebugUse.end():173:181 -> a
    151:159:com.android.tools.r8.ir.code.Value$DebugUse markEnd(com.android.tools.r8.ir.code.Value$DebugUse):368 -> a
    151:159:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):363 -> a
    160:160:com.android.tools.r8.ir.code.Value$DebugUse com.android.tools.r8.ir.code.Value$DebugUse.end():179:179 -> a
    160:160:com.android.tools.r8.ir.code.Value$DebugUse markEnd(com.android.tools.r8.ir.code.Value$DebugUse):368 -> a
    160:160:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):363 -> a
    161:161:com.android.tools.r8.ir.code.Value$DebugUse com.android.tools.r8.ir.code.Value$DebugUse.end():176:176 -> a
    161:161:com.android.tools.r8.ir.code.Value$DebugUse markEnd(com.android.tools.r8.ir.code.Value$DebugUse):368 -> a
    161:161:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):363 -> a
    162:162:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):363:363 -> a
    163:164:boolean onlyUsedInBlock(com.android.tools.r8.ir.code.BasicBlock):413:414 -> a
    165:171:void collectAliasedUsersViaAssume(java.util.Set,java.util.Set,java.util.Set):442:448 -> a
    172:173:void addPhiUser(com.android.tools.r8.ir.code.Phi):553:554 -> a
    174:181:java.util.Set affectedValues():604:611 -> a
    182:209:void replaceSelectiveUsers(com.android.tools.r8.ir.code.Value,java.util.Set,java.util.Map):643:670 -> a
    210:219:void replaceUserInDebugData(java.util.Map$Entry,com.android.tools.r8.ir.code.Value):677:686 -> a
    220:233: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):186:199 -> a
    220:233:void replaceUserInDebugData(java.util.Map$Entry,com.android.tools.r8.ir.code.Value):686 -> a
    234:234: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):187:187 -> a
    234:234:void replaceUserInDebugData(java.util.Map$Entry,com.android.tools.r8.ir.code.Value):686 -> a
    235:235:void replaceUserInDebugData(java.util.Map$Entry,com.android.tools.r8.ir.code.Value):686:686 -> a
    236:244:void replaceDebugUser(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):691:699 -> a
    245:246:void setLiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):704:705 -> a
    247:248:void setNeedsRegister(boolean):719:720 -> a
    249:260:int computeArgumentPosition(com.android.tools.r8.ir.code.IRCode):890:901 -> a
    261:283:boolean knownToBeBoolean(java.util.Set):909:931 -> a
    284:284:void setValueRange(com.android.tools.r8.utils.LongInterval):950:950 -> a
    285:285:boolean isDead(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):982:982 -> a
    286:286:boolean isDead(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate):987:987 -> a
    286:286:boolean isDead(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):982 -> a
    287:314:boolean isDead(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,java.util.Set):1004:1031 -> a
    315:315:void setTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1050:1050 -> a
    316:318:void narrowing(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1069:1071 -> a
    319:327:void narrowing(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1069:1077 -> a
    328:328:void setTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1050:1050 -> a
    328:328:void narrowing(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1078 -> a
    329:335:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType(com.android.tools.r8.graph.AppView):1119:1125 -> a
    336:336:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    336:336:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType(com.android.tools.r8.graph.AppView):1126 -> a
    337:348:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType(com.android.tools.r8.graph.AppView):1127:1138 -> a
    349:349:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isDefinitelyNotNull():334:334 -> a
    349:349:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType(com.android.tools.r8.graph.AppView):1138 -> a
    350:351:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType(com.android.tools.r8.graph.AppView):1138:1139 -> a
    1:4:java.util.Set uniqueUsers():422:425 -> a0
    boolean lambda$fullyRemoveUser$0(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction) -> b
    1:2:com.android.tools.r8.ir.code.Value getSpecificAliasedValue(java.util.function.Predicate):287:288 -> b
    3:6:void linkTo(com.android.tools.r8.ir.code.Value):372:375 -> b
    7:9:java.util.Set aliasedUsers():434:436 -> b
    10:11:void removePhiUser(com.android.tools.r8.ir.code.Phi):558:559 -> b
    12:13:void addDebugUser(com.android.tools.r8.ir.code.Instruction):568:569 -> b
    14:20:void widening(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1056:1062 -> b
    21:21:void setTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1050:1050 -> b
    21:21:void widening(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1063 -> b
    22:41:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType(com.android.tools.r8.graph.AppView):1089:1108 -> b
    42:42:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isDefinitelyNotNull():334:334 -> b
    42:42:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType(com.android.tools.r8.graph.AppView):1108 -> b
    43:47:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType(com.android.tools.r8.graph.AppView):1108:1112 -> b
    1:2:boolean usedInMonitorOperation():519:520 -> b0
    com.android.tools.r8.ir.code.FixedRegisterValue asFixedRegisterValue() -> c
    1:2:void addUser(com.android.tools.r8.ir.code.Instruction):528:529 -> c
    3:4:void fullyRemovePhiUser(com.android.tools.r8.ir.code.Phi):563:564 -> c
    5:17:void replaceUsers(com.android.tools.r8.ir.code.Value):618:630 -> c
    18:29:com.android.tools.r8.graph.DexEncodedField getEnumField(com.android.tools.r8.graph.AppView):834:845 -> c
    30:30:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):158:158 -> c
    30:30:com.android.tools.r8.graph.DexEncodedField getEnumField(com.android.tools.r8.graph.AppView):849 -> c
    31:31:com.android.tools.r8.graph.DexEncodedField getEnumField(com.android.tools.r8.graph.AppView):854:854 -> c
    32:32:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> c
    32:32:com.android.tools.r8.graph.DexEncodedField getEnumField(com.android.tools.r8.graph.AppView):854 -> c
    33:33:com.android.tools.r8.graph.DexEncodedField getEnumField(com.android.tools.r8.graph.AppView):855:855 -> c
    1:1:int compareTo(java.lang.Object):41:41 -> compareTo
    2:2:int compareTo(com.android.tools.r8.ir.code.Value):758:758 -> compareTo
    2:2:int compareTo(java.lang.Object):41 -> compareTo
    com.android.tools.r8.ir.code.Phi asPhi() -> d
    1:5:boolean isAlwaysNull(com.android.tools.r8.graph.AppView):502:506 -> d
    6:6:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isDefinitelyNull():330:330 -> d
    6:6:boolean isAlwaysNull(com.android.tools.r8.graph.AppView):506 -> d
    7:11:boolean isAlwaysNull(com.android.tools.r8.graph.AppView):509:513 -> d
    12:16:void removeDebugUser(com.android.tools.r8.ir.code.Instruction):581:585 -> d
    17:17:boolean lambda$getDynamicLowerBoundType$4(com.android.tools.r8.ir.code.Value):1134:1134 -> d
    1:2:void removeUser(com.android.tools.r8.ir.code.Instruction):533:534 -> e
    3:8:void clearUsers():543:548 -> e
    9:9:boolean lambda$getDynamicUpperBoundType$3(com.android.tools.r8.ir.code.Value):1090:1090 -> e
    boolean lambda$replaceSelectiveUsers$2(com.android.tools.r8.ir.code.Value) -> f
    1:2:void fullyRemoveUser(com.android.tools.r8.ir.code.Instruction):538:539 -> f
    3:8:void clearUsersInfo():593:598 -> f
    1:2:void computeNeedsRegister():724:725 -> g
    1:1:java.util.Set debugUsers():466:466 -> h
    1:1:int hashCode():763:763 -> hashCode
    1:2:com.android.tools.r8.ir.code.Phi firstPhiUser():454:455 -> i
    1:1:com.android.tools.r8.ir.code.Value getAliasedValue():258:258 -> j
    1:2:com.android.tools.r8.ir.code.ConstInstruction getConstInstruction():801:802 -> k
    1:7:java.util.List getDebugLocalEnds():339:345 -> l
    1:7:java.util.List getDebugLocalStarts():326:332 -> m
    1:2:com.android.tools.r8.ir.code.Instruction getDefinition():239:240 -> n
    1:1:com.android.tools.r8.ir.regalloc.LiveIntervals getLiveIntervals():709:709 -> o
    1:1:com.android.tools.r8.graph.DebugLocalInfo getLocalInfo():300:300 -> p
    1:1:com.android.tools.r8.ir.code.Value getNextConsecutive():405:405 -> q
    1:1:int getNumber():292:292 -> r
    1:1:com.android.tools.r8.ir.code.Value getPreviousConsecutive():409:409 -> s
    1:1:com.android.tools.r8.ir.code.Value getStartOfConsecutive():398 -> s
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getTypeLattice():1082:1082 -> t
    1:26:java.lang.String toString():768:793 -> toString
    1:11:com.android.tools.r8.utils.LongInterval getValueRange():966:976 -> u
    1:1:boolean hasAliasedValue():244:244 -> v
    1:1:boolean hasLocalInfo():304:304 -> w
    1:1:boolean hasUsersInfo():589:589 -> x
    1:1:boolean hasValueRange():954:954 -> y
    1:8:boolean internalComputeNeedsRegister():729:736 -> z
com.android.tools.r8.ir.code.Value$DebugData -> com.android.tools.r8.w.b.g1$a:
    java.util.Map users -> b
    com.android.tools.r8.graph.DebugLocalInfo local -> a
    1:1:void <init>(com.android.tools.r8.graph.DebugLocalInfo):148:148 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.DebugLocalInfo):146:149 -> <init>
com.android.tools.r8.ir.code.Value$DebugUse -> com.android.tools.r8.w.b.g1$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:2:void <clinit>():156:157 -> <clinit>
    3:3:void <clinit>():156:156 -> <clinit>
    1:1:void <init>(java.lang.String,int):156:156 -> <init>
com.android.tools.r8.ir.code.ValueNumberGenerator -> com.android.tools.r8.w.b.h1:
    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.w.b.i1:
    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:20:com.android.tools.r8.ir.code.ValueType fromMemberType(com.android.tools.r8.ir.code.MemberType):37:55 -> a
    21:21:com.android.tools.r8.ir.code.ValueType fromMemberType(com.android.tools.r8.ir.code.MemberType):53:53 -> a
    22:22:com.android.tools.r8.ir.code.ValueType fromMemberType(com.android.tools.r8.ir.code.MemberType):50:50 -> a
    23:23:com.android.tools.r8.ir.code.ValueType fromMemberType(com.android.tools.r8.ir.code.MemberType):48:48 -> a
    24:24:com.android.tools.r8.ir.code.ValueType fromMemberType(com.android.tools.r8.ir.code.MemberType):46:46 -> a
    25:25:com.android.tools.r8.ir.code.ValueType fromMemberType(com.android.tools.r8.ir.code.MemberType):44:44 -> a
    26:26:com.android.tools.r8.ir.code.ValueType fromMemberType(com.android.tools.r8.ir.code.MemberType):42:42 -> a
    27:27:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):84:84 -> a
    28:28:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):79:79 -> a
    28:28:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):84 -> a
    29:29:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):77:77 -> a
    29:29:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):84 -> a
    30:40:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):63:73 -> a
    30:40:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):84 -> a
    41:45:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):71:75 -> a
    41:45:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):84 -> a
    46:46:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):69:69 -> a
    46:46:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):84 -> a
    47:60:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):88:101 -> a
    61:61:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):99:99 -> a
    62:62:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):97:97 -> a
    63:63:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):95:95 -> a
    64:64:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):93:93 -> a
    65:80: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
    1:1:com.android.tools.r8.ir.code.ValueType[] values():13:13 -> d
com.android.tools.r8.ir.code.ValueTypeConstraint -> com.android.tools.r8.w.b.j1:
    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:39:com.android.tools.r8.ir.code.ValueTypeConstraint fromMemberType(com.android.tools.r8.ir.code.MemberType):63:82 -> a
    40:40:com.android.tools.r8.ir.code.ValueTypeConstraint fromMemberType(com.android.tools.r8.ir.code.MemberType):80:80 -> a
    41:41:com.android.tools.r8.ir.code.ValueTypeConstraint fromMemberType(com.android.tools.r8.ir.code.MemberType):78:78 -> a
    42:42:com.android.tools.r8.ir.code.ValueTypeConstraint fromMemberType(com.android.tools.r8.ir.code.MemberType):76:76 -> a
    43:43:com.android.tools.r8.ir.code.ValueTypeConstraint fromMemberType(com.android.tools.r8.ir.code.MemberType):74:74 -> a
    44:44:com.android.tools.r8.ir.code.ValueTypeConstraint fromMemberType(com.android.tools.r8.ir.code.MemberType):72:72 -> a
    45:45:com.android.tools.r8.ir.code.ValueTypeConstraint fromMemberType(com.android.tools.r8.ir.code.MemberType):70:70 -> a
    46:46:com.android.tools.r8.ir.code.ValueTypeConstraint fromMemberType(com.android.tools.r8.ir.code.MemberType):68:68 -> a
    47:47:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):106:106 -> a
    48:48:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):104:104 -> a
    49:59:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):90:100 -> a
    60:64:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):98:102 -> a
    65:65:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):96:96 -> a
    66:66:com.android.tools.r8.ir.code.ValueTypeConstraint fromDexType(com.android.tools.r8.graph.DexType):111:111 -> a
    67:80:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):115:128 -> a
    81:81:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):126:126 -> a
    82:82:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):124:124 -> a
    83:83:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):122:122 -> a
    84:84:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):120:120 -> a
    85:109:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):133:157 -> a
    110:110: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.w.b.k1:
    long decodedValue() -> a
com.android.tools.r8.ir.code.Xor -> com.android.tools.r8.w.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):18:18 -> <init>
    boolean isCommutative() -> E2
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():93:93 -> I2
    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 identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):78:78 -> a
    3:3: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
    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() -> t0
    boolean isXor() -> w2
    int opcode() -> z2
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.CallGraph:
    com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult cycleEliminationResult -> a
    1:3:void <init>(java.util.Set,com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult):163:165 -> <init>
    1:2:com.android.tools.r8.ir.conversion.CallSiteInformation createCallSiteInformation(com.android.tools.r8.graph.AppView):181:182 -> a
    3:3:com.android.tools.r8.ir.conversion.CallSiteInformation com.android.tools.r8.ir.conversion.CallSiteInformation.empty():27:27 -> a
    3:3:com.android.tools.r8.ir.conversion.CallSiteInformation createCallSiteInformation(com.android.tools.r8.graph.AppView):183 -> a
com.android.tools.r8.ir.conversion.CallGraph$Node -> com.android.tools.r8.ir.conversion.CallGraph$a:
    com.android.tools.r8.graph.DexEncodedMethod method -> a
    java.util.Set callees -> c
    java.util.Set callers -> d
    boolean $assertionsDisabled -> e
    int numberOfCallSites -> b
    1:1:void <clinit>():36:36 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod):49:49 -> <init>
    2:11:void <init>(com.android.tools.r8.graph.DexEncodedMethod):41:50 -> <init>
    1:1:void addCallerConcurrently(com.android.tools.r8.ir.conversion.CallGraph$Node):54:54 -> a
    2:8:void addCallerConcurrently(com.android.tools.r8.ir.conversion.CallGraph$Node,boolean):59:65 -> a
    9:16:void addCallerConcurrently(com.android.tools.r8.ir.conversion.CallGraph$Node,boolean):62:69 -> a
    17:19:void cleanCalleesForRemoval():79:81 -> a
    1:3:void cleanCallersForRemoval():86:88 -> b
    4:4:boolean hasCallee(com.android.tools.r8.ir.conversion.CallGraph$Node):105:105 -> b
    1:1:java.util.Set getCalleesWithDeterministicOrder():97:97 -> c
    2:2:boolean hasCaller(com.android.tools.r8.ir.conversion.CallGraph$Node):109:109 -> c
    1:1:int compareTo(java.lang.Object):36:36 -> compareTo
    2:2:int compareTo(com.android.tools.r8.ir.conversion.CallGraph$Node):122:122 -> compareTo
    2:2:int compareTo(java.lang.Object):36 -> compareTo
    1:2:void removeCaller(com.android.tools.r8.ir.conversion.CallGraph$Node):74:75 -> d
    3:3:java.util.Set getCallersWithDeterministicOrder():93:93 -> d
    1:1:int getNumberOfCallSites():101:101 -> e
    1:1:boolean isLeaf():117:117 -> f
    1:1:boolean isRoot():113:113 -> g
    1:30:java.lang.String toString():127:156 -> toString
com.android.tools.r8.ir.conversion.CallGraphBuilder -> com.android.tools.r8.ir.conversion.CallGraphBuilder:
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():19:19 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):22:22 -> <init>
    1:5:void process(java.util.concurrent.ExecutorService):27:31 -> a
    6:14:void process(java.util.concurrent.ExecutorService):30:38 -> a
    15:15:java.lang.Object lambda$process$0(com.android.tools.r8.graph.DexProgramClass):33:33 -> a
    16:18:boolean verifyAllMethodsWithCodeExists():54:56 -> a
    1:1:void processClass(com.android.tools.r8.graph.DexProgramClass):42:42 -> b
    2:4:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):46:48 -> b
    5:5:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):47:47 -> b
    1:1:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):19:19 -> build
com.android.tools.r8.ir.conversion.CallGraphBuilderBase -> com.android.tools.r8.ir.conversion.CallGraphBuilderBase:
    java.util.Map nodes -> b
    java.util.Map possibleTargetsCache -> c
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():45:45 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):51:51 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.AppView):47:52 -> <init>
    void process(java.util.concurrent.ExecutorService) -> a
    boolean verifyAllMethodsWithCodeExists() -> a
    1:1:java.util.Map access$000(com.android.tools.r8.ir.conversion.CallGraphBuilderBase):45:45 -> a
    2:4:com.android.tools.r8.ir.conversion.CallGraph$Node getOrCreateNode(com.android.tools.r8.graph.DexEncodedMethod):74:76 -> a
    5:5:com.android.tools.r8.ir.conversion.CallGraph$Node lambda$getOrCreateNode$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod):75:75 -> a
    1:6:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):56:61 -> build
    7:7:java.util.TreeSet com.android.tools.r8.com.google.common.collect.Sets.newTreeSet():405:405 -> build
    7:7:java.util.TreeSet com.android.tools.r8.com.google.common.collect.Sets.newTreeSet(java.lang.Iterable):430 -> build
    7:7:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):61 -> build
    8:8:java.util.TreeSet com.android.tools.r8.com.google.common.collect.Sets.newTreeSet(java.lang.Iterable):431:431 -> build
    8:8:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):61 -> build
    9:15:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):62:68 -> build
com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator -> com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator:
    java.util.Deque stack -> c
    boolean $assertionsDisabled -> i
    java.util.Collection nodes -> a
    java.util.Set stackSet -> d
    com.android.tools.r8.utils.InternalOptions options -> b
    java.util.Set marked -> e
    int maxDepth -> h
    int currentDepth -> g
    java.util.Map removedEdges -> f
    1:1:void <clinit>():277:277 -> <clinit>
    1:1:void <init>(java.util.Collection,com.android.tools.r8.utils.InternalOptions):336:336 -> <init>
    2:23:void <init>(java.util.Collection,com.android.tools.r8.utils.InternalOptions):322:343 -> <init>
    1:1:boolean edgeRemovalIsSafe(com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraph$Node):514:514 -> a
    2:2:void recordEdgeRemoval(com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraph$Node):518:518 -> a
    3:5:java.util.Collection reorderNodes(java.util.List):529:531 -> a
    1:1:java.util.Set lambda$recordEdgeRemoval$0(com.android.tools.r8.ir.conversion.CallGraph$Node):518:518 -> b
    1:8:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():348:355 -> breakCycles
    9:14:void reset():362:367 -> breakCycles
    9:14:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():357 -> breakCycles
    1:7:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):371:377 -> c
    8:10:void push(com.android.tools.r8.ir.conversion.CallGraph$Node):474:476 -> c
    8:10:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):382 -> c
    11:91:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):386:466 -> c
    92:110:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):406:424 -> c
    111:118:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):420:427 -> c
    119:123:java.util.LinkedList extractCycle(com.android.tools.r8.ir.conversion.CallGraph$Node):487:491 -> c
    119:123:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):430 -> c
    124:125:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):432:433 -> c
    126:134:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge findCallEdgeForRemoval(java.util.LinkedList):496:504 -> c
    126:134:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):439 -> c
    135:147:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):444:456 -> c
    148:148:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):451:451 -> c
    149:151:void recoverStack(java.util.LinkedList):522:524 -> c
    149:151:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):461 -> c
    152:152:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge findCallEdgeForRemoval(java.util.LinkedList):508:508 -> c
    152:152:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):439 -> c
    153:153:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> c
    153:153:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge findCallEdgeForRemoval(java.util.LinkedList):508 -> c
    153:153:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):439 -> c
    154:154:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge findCallEdgeForRemoval(java.util.LinkedList):508:508 -> c
    154:154:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):439 -> c
    155:158:void pop(com.android.tools.r8.ir.conversion.CallGraph$Node):480:483 -> c
    155:158:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):469 -> c
    159:159:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):470:470 -> c
com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge -> com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$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):287:289 -> <init>
    1:1:com.android.tools.r8.ir.conversion.CallGraph$Node access$100(com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge):282:282 -> a
    2:2:void remove():293:293 -> a
    1:1:com.android.tools.r8.ir.conversion.CallGraph$Node access$200(com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge):282:282 -> b
com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult -> com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult:
    java.util.Map removedEdges -> a
    1:2:void <init>(java.util.Map):301:302 -> <init>
    1:1:void forEachRemovedCaller(com.android.tools.r8.ir.conversion.CallGraph$Node,java.util.function.Consumer):306:306 -> a
    1:2:int numberOfRemovedEdges():311:312 -> numberOfRemovedEdges
com.android.tools.r8.ir.conversion.CallGraphBuilderBase$InvokeExtractor -> com.android.tools.r8.ir.conversion.CallGraphBuilderBase$a:
    com.android.tools.r8.ir.conversion.CallGraph$Node caller -> a
    com.android.tools.r8.ir.conversion.CallGraphBuilderBase this$0 -> c
    java.util.function.Predicate targetTester -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():81:81 -> <clinit>
    1:4:void <init>(com.android.tools.r8.ir.conversion.CallGraphBuilderBase,com.android.tools.r8.ir.conversion.CallGraph$Node,java.util.function.Predicate):86:89 -> <init>
    1:3:void addClassInitializerTarget(com.android.tools.r8.graph.DexClass):93:95 -> a
    4:5:void addClassInitializerTarget(com.android.tools.r8.graph.DexType):100:101 -> a
    6:6:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    6:6:void addClassInitializerTarget(com.android.tools.r8.graph.DexType):101 -> a
    7:7:void addClassInitializerTarget(com.android.tools.r8.graph.DexType):103:103 -> a
    8:22:void addTarget(com.android.tools.r8.graph.DexEncodedMethod,boolean):108:122 -> a
    23:38:void processInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod):126:141 -> a
    39:39:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    39:39:void processInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod):141 -> a
    40:46:void processInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod):142:148 -> a
    47:48:void processInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod):134:135 -> a
    49:49:void lambda$processInvoke$0(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexEncodedMethod):135:135 -> a
    50:53:java.util.Set lambda$processInvokeWithDynamicDispatch$1(boolean,com.android.tools.r8.graph.DexMethod):175:178 -> a
    54:55:void processFieldAccess(com.android.tools.r8.graph.DexField):195:196 -> a
    56:56:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():114:114 -> a
    56:56:void processFieldAccess(com.android.tools.r8.graph.DexField):197 -> a
    57:57:void processFieldAccess(com.android.tools.r8.graph.DexField):198:198 -> a
    1:2:void processInvokeWithDynamicDispatch(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexEncodedMethod):156:157 -> b
    3:3:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> b
    3:3:void processInvokeWithDynamicDispatch(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexEncodedMethod):157 -> b
    4:32:void processInvokeWithDynamicDispatch(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexEncodedMethod):159:187 -> b
    1:1:void registerCallSite(com.android.tools.r8.graph.DexCallSite):272:272 -> registerCallSite
    1:1:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):241:241 -> registerInstanceFieldRead
    1:1:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):235:235 -> registerInstanceFieldWrite
    1:1:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):211:211 -> registerInvokeDirect
    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):223:223 -> registerInvokeInterface
    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):217:217 -> registerInvokeStatic
    1:1:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):229:229 -> registerInvokeSuper
    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):205:205 -> registerInvokeVirtual
    1:2:boolean registerNewInstance(com.android.tools.r8.graph.DexType):247:248 -> registerNewInstance
    1:1:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):255:255 -> registerStaticFieldRead
    1:1:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):261:261 -> registerStaticFieldWrite
com.android.tools.r8.ir.conversion.CallSiteInformation -> com.android.tools.r8.ir.conversion.d:
    1:1:void <init>():14:14 -> <init>
    boolean hasDoubleCallSite(com.android.tools.r8.graph.DexMethod) -> a
    1:1:com.android.tools.r8.ir.conversion.CallSiteInformation empty():27:27 -> a
    boolean hasSingleCallSite(com.android.tools.r8.graph.DexMethod) -> b
com.android.tools.r8.ir.conversion.CallSiteInformation$CallGraphBasedCallSiteInformation -> com.android.tools.r8.ir.conversion.d$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.e:
    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
    boolean hasSingleCallSite(com.android.tools.r8.graph.DexMethod) -> b
    1:1:com.android.tools.r8.ir.conversion.CallSiteInformation$EmptyCallSiteInformation access$000():30:30 -> b
com.android.tools.r8.ir.conversion.CfBuilder -> com.android.tools.r8.ir.conversion.h:
    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):183:184 -> a
    3:20:void computeInitializers():188:205 -> a
    3:20:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):132 -> a
    21:23:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):133:135 -> a
    24:36:void rewriteNots():222:234 -> a
    24:36:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):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):1012:1012 -> a
    37:37:void rewriteNots():234 -> a
    37:37:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):136 -> a
    38:46:void rewriteNots():235:243 -> a
    38:46:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):136 -> a
    47:47:void rewriteNots():242:242 -> a
    47:47:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):136 -> a
    48:68:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):137:157 -> a
    69:106:void rewriteIincPatterns():358:395 -> a
    69:106:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):160 -> a
    107:107:int getLocalRegister(com.android.tools.r8.ir.code.Value):638:638 -> a
    107:107:void rewriteIincPatterns():395 -> a
    107:107:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):160 -> a
    108:108:void rewriteIincPatterns():395:395 -> a
    108:108:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):160 -> a
    109:109:int getLocalRegister(com.android.tools.r8.ir.code.Value):638:638 -> a
    109:109:void rewriteIincPatterns():395 -> a
    109:109:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):160 -> a
    110:128:void rewriteIincPatterns():396:414 -> a
    110:128:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):160 -> a
    129:129:void rewriteIincPatterns():392:392 -> a
    129:129:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):160 -> a
    130:130:void rewriteIincPatterns():387:387 -> a
    130:130:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):160 -> a
    131:132:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):162:163 -> a
    133:153:com.android.tools.r8.graph.CfCode buildCfCode():258:278 -> a
    133:153:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):164 -> a
    154:180:com.android.tools.r8.graph.CfCode buildCfCode():277:303 -> a
    154:180:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):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():303 -> a
    181:181:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):164 -> a
    182:183:com.android.tools.r8.graph.CfCode buildCfCode():303:304 -> a
    182:183:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):164 -> a
    184:186:int stackHeightAtBlockEntry(com.android.tools.r8.ir.code.BasicBlock):250:252 -> a
    184:186:com.android.tools.r8.graph.CfCode buildCfCode():307 -> a
    184:186:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):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():307 -> a
    187:188:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):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):421:421 -> a
    189:189:com.android.tools.r8.graph.CfCode buildCfCode():308 -> a
    189:189:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):164 -> a
    190:190:boolean hasMaterializingInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):349:349 -> 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):422 -> a
    190:190:com.android.tools.r8.graph.CfCode buildCfCode():308 -> a
    190:190:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):164 -> a
    191:195:boolean isNopInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock):338:342 -> a
    191:195:boolean hasMaterializingInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):350 -> 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):422 -> a
    191:195:com.android.tools.r8.graph.CfCode buildCfCode():308 -> a
    191:195:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):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):426:428 -> a
    196:198:com.android.tools.r8.graph.CfCode buildCfCode():308 -> a
    196:198:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):164 -> a
    199:232:void addFrame(com.android.tools.r8.ir.code.BasicBlock):540:573 -> 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):428 -> a
    199:232:com.android.tools.r8.graph.CfCode buildCfCode():308 -> a
    199:232:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):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):429:439 -> a
    233:243:com.android.tools.r8.graph.CfCode buildCfCode():308 -> a
    233:243:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):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):439 -> a
    244:245:com.android.tools.r8.graph.CfCode buildCfCode():308 -> a
    244:245:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):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):442:459 -> a
    246:263:com.android.tools.r8.graph.CfCode buildCfCode():308 -> a
    246:263:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):164 -> a
    264:281:void updatePositionAndLocals(com.android.tools.r8.ir.code.Instruction):468:485 -> 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):461 -> a
    264:281:com.android.tools.r8.graph.CfCode buildCfCode():308 -> a
    264:281:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):164 -> a
    282:282:void add(com.android.tools.r8.cf.code.CfInstruction):642:642 -> a
    282:282:void updatePositionAndLocals(com.android.tools.r8.ir.code.Instruction):485 -> 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):461 -> a
    282:282:com.android.tools.r8.graph.CfCode buildCfCode():308 -> a
    282:282:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):164 -> a
    283:283:void updatePositionAndLocals(com.android.tools.r8.ir.code.Instruction):486:486 -> 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):461 -> a
    283:283:com.android.tools.r8.graph.CfCode buildCfCode():308 -> a
    283:283:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):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):462:462 -> a
    284:284:com.android.tools.r8.graph.CfCode buildCfCode():308 -> a
    284:284:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):164 -> a
    285:285:com.android.tools.r8.graph.CfCode buildCfCode():310:310 -> a
    285:285:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):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():310 -> a
    286:286:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):164 -> a
    287:307:com.android.tools.r8.graph.CfCode buildCfCode():310:330 -> a
    287:307:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):164 -> a
    308:308:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):165:165 -> a
    309:314:boolean verifyInvokeInterface(com.android.tools.r8.graph.CfCode,com.android.tools.r8.graph.DexDefinitionSupplier):170:175 -> a
    309:314:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):165 -> a
    315:315:com.android.tools.r8.cf.code.CfInstruction getLastInstruction():536:536 -> a
    315:315:com.android.tools.r8.cf.code.CfLabel ensureLabel():526 -> a
    316:319:com.android.tools.r8.cf.code.CfLabel ensureLabel():527:530 -> a
    320:320:void add(com.android.tools.r8.cf.code.CfInstruction):642:642 -> a
    320:320:com.android.tools.r8.cf.code.CfLabel ensureLabel():531 -> a
    321:322:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):577:578 -> a
    323:353:com.android.tools.r8.cf.code.CfFrame$FrameType findAllocator(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):587:617 -> a
    323:353:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):580 -> a
    354:354:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):581:581 -> a
    355:355:com.android.tools.r8.cf.code.CfFrame$FrameType findAllocator(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):594:594 -> a
    355:355:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):580 -> a
    356:358:void emitLabel(com.android.tools.r8.cf.code.CfLabel):625:627 -> a
    359:359:com.android.tools.r8.cf.code.CfLabel getLabel(com.android.tools.r8.ir.code.BasicBlock):634:634 -> a
    360:360:int getLocalRegister(com.android.tools.r8.ir.code.Value):638:638 -> a
    361:361:void add(com.android.tools.r8.cf.code.CfInstruction):642:642 -> a
    1:7:java.util.List computeInitializers(com.android.tools.r8.ir.code.Value):209:215 -> b
    8:27:void updateLocals(com.android.tools.r8.cf.code.CfLabel):491:510 -> b
    28:33:void updateLocals(com.android.tools.r8.cf.code.CfLabel):509:514 -> b
    34:37:boolean localsChanged():518:521 -> b
    38:38:com.android.tools.r8.cf.code.CfLabel lambda$getLabel$0(com.android.tools.r8.ir.code.BasicBlock):634:634 -> b
com.android.tools.r8.ir.conversion.CfBuilder$1 -> com.android.tools.r8.ir.conversion.f:
com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker -> com.android.tools.r8.ir.conversion.g:
    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.k:
    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.origin.Origin origin -> j
    com.android.tools.r8.graph.AppView appView -> k
    com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList cachedLocalVariableList -> n
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap incomingLocals -> q
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap outgoingLocals -> r
    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>():57:57 -> <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):228:228 -> <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):60:251 -> <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():260:260 -> a
    2:6:boolean canThrowHelper(com.android.tools.r8.cf.code.CfInstruction):288:292 -> a
    7:9:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):297:299 -> a
    10:10:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    10:10:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):299 -> a
    11:12:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):299:300 -> a
    13:39:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):299:325 -> a
    40:40:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList getTryHandlers(int,com.android.tools.r8.graph.DexItemFactory):332:332 -> a
    41:41:boolean com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList.validFor(int):82:82 -> a
    41:41:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList getTryHandlers(int,com.android.tools.r8.graph.DexItemFactory):332 -> a
    42:45:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList getTryHandlers(int,com.android.tools.r8.graph.DexItemFactory):333:336 -> a
    46:53:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList getTryHandlers(int,com.android.tools.r8.graph.DexItemFactory):334:341 -> a
    54:78:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):382:406 -> a
    79:81:void buildMethodEnterSynchronization(com.android.tools.r8.ir.conversion.IRBuilder):426:428 -> a
    79:81:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):407 -> a
    82:82:boolean isStatic():414:414 -> a
    82:82:void buildMethodEnterSynchronization(com.android.tools.r8.ir.conversion.IRBuilder):430 -> a
    82:82:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):407 -> a
    83:91:void buildMethodEnterSynchronization(com.android.tools.r8.ir.conversion.IRBuilder):431:439 -> a
    83:91:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):407 -> a
    92:93:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):409:410 -> a
    94:99:void buildExceptionalExitMethodSynchronization(com.android.tools.r8.ir.conversion.IRBuilder):443:448 -> a
    94:99:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):507 -> a
    100:111:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):510:521 -> a
    112:123:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):518:529 -> a
    124:126:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState$Snapshot.exceptionTransfer(com.android.tools.r8.graph.DexType):302:304 -> a
    124:126:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):529 -> a
    127:128:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):530:531 -> a
    129:129:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState$Snapshot.exceptionTransfer(com.android.tools.r8.graph.DexType):302:302 -> a
    129:129:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):529 -> a
    130:135:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):535:540 -> a
    136:139:void endLocals(com.android.tools.r8.ir.conversion.IRBuilder):689:692 -> a
    136:139:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):559 -> a
    140:152:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):542:554 -> a
    153:153:void build(com.android.tools.r8.cf.code.CfInstruction,com.android.tools.r8.ir.conversion.IRBuilder):578:578 -> a
    153:153:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):562 -> a
    154:160:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):564:570 -> a
    161:166:void startLocals(com.android.tools.r8.ir.conversion.IRBuilder):698:703 -> a
    161:166:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):573 -> a
    167:179:java.lang.String prettyType(com.android.tools.r8.ir.code.ValueType):715:727 -> a
    167:179:void startLocals(com.android.tools.r8.ir.conversion.IRBuilder):705 -> a
    167:179:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):573 -> a
    180:184:void startLocals(com.android.tools.r8.ir.conversion.IRBuilder):705:709 -> a
    180:184:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):573 -> a
    185:186:void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean):469:470 -> a
    187:215:void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean):469:497 -> a
    216:217:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):582:583 -> a
    218:222: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
    218:222:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):583 -> a
    223:238: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
    223:238: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
    223:238:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):583 -> a
    239:239:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    239:239: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
    239:239: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
    239:239:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):583 -> a
    240:240: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
    240:240: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
    240:240:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):583 -> a
    241:241:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):585:585 -> a
    242:242: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
    242:242: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
    242:242:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):583 -> a
    243:243:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    243:243: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
    243:243: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
    243:243:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):583 -> a
    244:244: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
    244:244: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
    244:244:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):583 -> a
    245:246:int getLabelOffset(com.android.tools.r8.cf.code.CfLabel):594:595 -> a
    247:257:void setStateFromFrame(com.android.tools.r8.cf.code.CfFrame):599:609 -> a
    258:258:void setStateFromFrame(com.android.tools.r8.cf.code.CfFrame):608:608 -> a
    259:282:com.android.tools.r8.graph.DexType convertUninitialized(com.android.tools.r8.cf.code.CfFrame$FrameType):613:636 -> a
    283:283:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,int):650:650 -> a
    284:289:com.android.tools.r8.ir.code.Position getCanonicalPosition(com.android.tools.r8.ir.code.Position):802:807 -> a
    290:290:com.android.tools.r8.ir.code.Position getCanonicalPosition(com.android.tools.r8.ir.code.Position):802:802 -> a
    int instructionOffset(int) -> b
    void setUp() -> b
    1:4:void buildPostlude(com.android.tools.r8.ir.conversion.IRBuilder):453:456 -> b
    5:6:boolean isControlFlow(com.android.tools.r8.cf.code.CfInstruction):732:733 -> b
    1:1:boolean isCurrentlyGeneratingMethodSynchronization():418:418 -> c
    1:1:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):740 -> c
    2:4:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):743:745 -> c
    5:10:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):744:749 -> c
    11:11:boolean isCurrentlyGeneratingMethodSynchronization():418:418 -> c
    11:11:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):660 -> c
    12:12:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):663:663 -> c
    13:13:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):655:655 -> c
    13:13:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):664 -> c
    14:16:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):666:668 -> c
    17:17:boolean isCurrentlyGeneratingMethodSynchronization():418:418 -> c
    17:17:boolean verifyCurrentInstructionCanThrow():759 -> c
    18:19:boolean verifyCurrentInstructionCanThrow():759:760 -> c
    20:20:boolean lambda$getCanonicalDebugPositionAtOffset$0(com.android.tools.r8.cf.code.CfInstruction):775:775 -> c
    1:2:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):771:772 -> d
    3:25:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):771:793 -> d
    26:26:com.android.tools.r8.ir.code.Position lambda$getCanonicalDebugPositionAtOffset$1(com.android.tools.r8.cf.code.CfInstruction):776:776 -> d
    27:27:com.android.tools.r8.ir.code.Position getCurrentPosition():798:798 -> d
    1:1:boolean isCurrentlyGeneratingMethodSynchronization():418:418 -> e
    1:1:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):655 -> e
    2:2:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):655:655 -> e
    3:3:int getCurrentInstructionIndex():590:590 -> e
    boolean verifyRegister(int) -> f
    1:1:com.android.tools.r8.graph.DexType getOriginalHolder():255:255 -> f
    int instructionIndex(int) -> g
    1:1:java.lang.Iterable lambda$getCanonicalDebugPositionAtOffset$2():777:777 -> g
    2:5:java.lang.Iterable lambda$getCanonicalDebugPositionAtOffset$2():774:777 -> g
    1:1:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList getLocalVariables(int):345:345 -> h
    2:2:boolean com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList.validFor(int):177:177 -> h
    2:2:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList getLocalVariables(int):345 -> h
    3:6:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList getLocalVariables(int):346:349 -> h
    7:7:boolean localsChanged():685:685 -> h
    1:25:int[] getTargets(int):353:377 -> i
    26:27:int[] getTargets(int):357:358 -> i
    28:36:void setLocalVariableLists():672:680 -> i
    37:37:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMaps.emptyMap():198:198 -> i
    37:37:void setLocalVariableLists():681 -> i
    38:38:void setLocalVariableLists():681:681 -> i
com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList -> com.android.tools.r8.ir.conversion.i:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap locals -> c
    int endOffset -> b
    int startOffset -> a
    1:4:void <init>(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap):142:145 -> <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):155:172 -> a
    19:19:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMaps.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):173 -> 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):173:173 -> a
com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList -> com.android.tools.r8.ir.conversion.j:
    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>():67:67 -> <clinit>
    1:5:void <init>(int,int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):74:78 -> <init>
    1:2:boolean isEmpty():86:87 -> 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):98:99 -> 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):99 -> 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):100:100 -> 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):100 -> 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):102:130 -> a
com.android.tools.r8.ir.conversion.CfState -> com.android.tools.r8.ir.conversion.p:
    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.l:
com.android.tools.r8.ir.conversion.CfState$BaseSnapshot -> com.android.tools.r8.ir.conversion.m:
    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.n:
    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.o:
    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.p$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.s:
    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.q:
    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.r:
    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.t:
    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.u:
    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.DexBuilder -> com.android.tools.r8.ir.conversion.F:
    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:39:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):335:363 -> a
    40:42:boolean isTrivialFallthroughTarget(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):325:327 -> a
    40:42:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):364 -> a
    43:68:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):366:391 -> a
    69:69: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
    69:69:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):391 -> a
    70:99:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):392:421 -> a
    100:100: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
    100:100:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):421 -> a
    101:103:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):424:426 -> a
    104:105:boolean isNopInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock):584:585 -> a
    104:105:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):427 -> a
    106:108:boolean isNonMaterializingConstNumber(com.android.tools.r8.ir.code.Instruction):592:594 -> a
    106:108:boolean isNopInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock):586 -> a
    106:108:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):427 -> a
    109:109:boolean isNopInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock):587:587 -> a
    109:109:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):427 -> a
    110:123:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):429:442 -> a
    124:124:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> a
    124:124:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):443 -> a
    125:154:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):445:474 -> a
    155:166:void rewriteIfs():490:501 -> a
    155:166:com.android.tools.r8.graph.DexCode build():184 -> a
    167:171:void rewriteIfs():500:504 -> a
    167:171:com.android.tools.r8.graph.DexCode build():184 -> a
    172:172:com.android.tools.r8.graph.DexCode build():188:188 -> a
    173:178:void reset():160:165 -> a
    173:178:com.android.tools.r8.graph.DexCode build():191 -> a
    179:179:int instructionNumberToIndex(int):662:662 -> a
    179:179:void reset():165 -> a
    179:179:com.android.tools.r8.graph.DexCode build():191 -> a
    180:183:void reset():165:168 -> a
    180:183:com.android.tools.r8.graph.DexCode build():191 -> a
    184:225:com.android.tools.r8.graph.DexCode build():196:237 -> a
    226:226:boolean com.android.tools.r8.utils.InternalOptions.canHaveTracingPastInstructionsStreamBug():1334:1334 -> a
    226:226:com.android.tools.r8.graph.DexCode build():237 -> a
    227:270:com.android.tools.r8.graph.DexCode build():238:281 -> a
    271:290:com.android.tools.r8.code.Nop createSwitchPayload(com.android.tools.r8.ir.conversion.DexBuilder$SwitchPayloadInfo,int):714:733 -> a
    271:290:com.android.tools.r8.graph.DexCode build():284 -> a
    291:305:com.android.tools.r8.graph.DexCode build():285:299 -> a
    306:306:com.android.tools.r8.code.FillArrayDataPayload com.android.tools.r8.ir.code.NewArrayFilledData.createPayload():51:51 -> a
    306:306:com.android.tools.r8.graph.DexCode build():299 -> a
    307:310:com.android.tools.r8.graph.DexCode build():300:303 -> a
    311:311:com.android.tools.r8.code.FillArrayDataPayload com.android.tools.r8.ir.code.NewArrayFilledData.createPayload():51:51 -> a
    311:311:com.android.tools.r8.graph.DexCode build():299 -> a
    312:314:com.android.tools.r8.ir.conversion.DexBuilder$TryInfo computeTryInfo():740:742 -> a
    312:314:com.android.tools.r8.graph.DexCode build():307 -> a
    315:320:com.android.tools.r8.graph.DexCode$Try[] getDexTryItems(java.util.List,java.util.Map):843:848 -> a
    315:320:com.android.tools.r8.ir.conversion.DexBuilder$TryInfo computeTryInfo():744 -> a
    315:320:com.android.tools.r8.graph.DexCode build():307 -> a
    321:321:com.android.tools.r8.ir.conversion.DexBuilder$TryInfo computeTryInfo():745:745 -> a
    321:321:com.android.tools.r8.graph.DexCode build():307 -> a
    322:339:com.android.tools.r8.graph.DexCode$TryHandler[] getDexTryHandlers(java.util.Map):854:871 -> a
    322:339:com.android.tools.r8.ir.conversion.DexBuilder$TryInfo computeTryInfo():745 -> a
    322:339:com.android.tools.r8.graph.DexCode build():307 -> a
    340:348:com.android.tools.r8.graph.DexCode build():310:318 -> a
    349:350:void requestOutgoingRegisters(int):514:515 -> a
    351:351:int allocatedRegister(com.android.tools.r8.ir.code.Value,int):520:520 -> a
    352:355:void addGoto(com.android.tools.r8.ir.code.Goto):530:533 -> a
    356:370:boolean needsNopBetweenMoveAndInstanceOf(com.android.tools.r8.code.InstanceOf):538:552 -> a
    356:370:void addInstanceOf(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.code.InstanceOf):562 -> a
    371:373:void addInstanceOf(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.code.InstanceOf):563:565 -> a
    374:375:void addIf(com.android.tools.r8.ir.code.If):570:571 -> a
    376:376:void addMove(com.android.tools.r8.ir.code.Move):575:575 -> a
    377:377:void addNop(com.android.tools.r8.ir.code.Instruction):598:598 -> a
    377:377:void addDebugPosition(com.android.tools.r8.ir.code.DebugPosition):604 -> a
    378:378:void addNop(com.android.tools.r8.ir.code.Instruction):598:598 -> a
    379:382:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.code.Instruction):608:611 -> a
    383:386:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.code.Instruction):609:612 -> a
    387:388:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.code.Instruction[]):616:617 -> a
    389:391:void addSwitch(com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.code.Format31t):621:623 -> a
    392:393:void addFillArrayData(com.android.tools.r8.ir.code.NewArrayFilledData,com.android.tools.r8.code.FillArrayData):627:628 -> a
    394:395:void addArgument(com.android.tools.r8.ir.code.Argument):632:633 -> a
    396:400:void addReturn(com.android.tools.r8.ir.code.Return,com.android.tools.r8.code.Instruction):637:641 -> a
    401:401:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):646:646 -> a
    402:403:void setSingleInfo(com.android.tools.r8.ir.conversion.DexBuilder$Info):680:681 -> a
    402:403:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):648 -> a
    404:410:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):651:657 -> a
    411:415:void setInfo(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):672:676 -> a
    411:415:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):658 -> a
    416:416:int instructionNumberToIndex(int):662:662 -> a
    416:416:void setInfo(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):676 -> a
    416:416:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):658 -> a
    417:417:void setInfo(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):676:676 -> a
    417:417:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):658 -> a
    418:429:com.android.tools.r8.ir.conversion.DexBuilder$Info getTargetInfo(com.android.tools.r8.ir.code.BasicBlock):685:696 -> a
    430:435:com.android.tools.r8.ir.code.BasicBlock computeNextBlock(com.android.tools.r8.ir.code.BasicBlock):704:709 -> a
    430:435:com.android.tools.r8.ir.conversion.DexBuilder$Info getTargetInfo(com.android.tools.r8.ir.code.BasicBlock):697 -> a
    436:439:com.android.tools.r8.ir.conversion.DexBuilder$Info getTargetInfo(com.android.tools.r8.ir.code.BasicBlock):697:700 -> a
    440:514:java.util.List computeTryItems(com.android.tools.r8.com.google.common.collect.BiMap):751:825 -> 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):831:838 -> b
    12:12:com.android.tools.r8.utils.InternalOptions getOptions():877:877 -> b
    1:2:com.android.tools.r8.ir.conversion.DexBuilder$Info getInfo(com.android.tools.r8.ir.code.Instruction):667:668 -> c
    3:3:int instructionNumberToIndex(int):662:662 -> c
    3:3:com.android.tools.r8.ir.conversion.DexBuilder$Info getInfo(com.android.tools.r8.ir.code.Instruction):668 -> c
    4:4:com.android.tools.r8.ir.conversion.DexBuilder$Info getInfo(com.android.tools.r8.ir.code.Instruction):668:668 -> c
    5:5:com.android.tools.r8.ir.regalloc.RegisterAllocator getRegisterAllocator():881:881 -> c
    1:1:boolean isBuildingForComparison():156:156 -> d
com.android.tools.r8.ir.conversion.DexBuilder$FallThroughInfo -> com.android.tools.r8.ir.conversion.v:
    1:1:void <init>(com.android.tools.r8.ir.code.Instruction):1050:1050 -> <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):1079:1079 -> a
    int getSize() -> d
    int maxSize() -> e
    int minSize() -> f
com.android.tools.r8.ir.conversion.DexBuilder$FillArrayDataInfo -> com.android.tools.r8.ir.conversion.w:
    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):1525:1527 -> <init>
com.android.tools.r8.ir.conversion.DexBuilder$FixedSizeInfo -> com.android.tools.r8.ir.conversion.x:
    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):957:958 -> <init>
    1:2:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):978:979 -> a
    3:3:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):984:984 -> a
    4:5:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):989:990 -> a
    1:1:int getSize():963:963 -> d
    1:1:int maxSize():973:973 -> e
    1:1:int minSize():968:968 -> f
com.android.tools.r8.ir.conversion.DexBuilder$GotoInfo -> com.android.tools.r8.ir.conversion.y:
    boolean $assertionsDisabled -> f
    int size -> e
    1:1:void <clinit>():1083:1083 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Goto):1088:1088 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.Goto):1085:1085 -> <init>
    1:1:com.android.tools.r8.ir.code.Goto getJump():1092:1092 -> a
    1:1:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1156 -> a
    2:46:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1157:1201 -> a
    47:51:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1190:1194 -> a
    52:71:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1185:1204 -> a
    72:72:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1115:1115 -> a
    73:73:com.android.tools.r8.ir.code.Goto getJump():1092:1092 -> a
    73:73:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1116 -> a
    74:108:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1117:1151 -> a
    109:109:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1210:1210 -> a
    1:2:int getSize():1097:1098 -> d
    1:1:int maxSize():1109:1109 -> e
    1:1:int minSize():1103:1103 -> f
com.android.tools.r8.ir.conversion.DexBuilder$IfInfo -> com.android.tools.r8.ir.conversion.z:
    boolean $assertionsDisabled -> f
    int size -> e
    1:1:void <clinit>():1214:1214 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.If):1219:1219 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.If):1216:1216 -> <init>
    1:1:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    1:1:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    1:1:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1260 -> a
    2:2:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    2:2:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1260 -> a
    3:13:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1261:1271 -> a
    14:14:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    14:14:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    14:14:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1239 -> a
    14:14:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1271 -> a
    15:15:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    15:15:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1239 -> a
    15:15:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1271 -> a
    16:17:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1240:1241 -> a
    16:17:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1271 -> a
    18:25:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1271:1278 -> a
    26:26:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    26:26:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    26:26:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1279 -> a
    27:27:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    27:27:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1279 -> a
    28:45:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1279:1296 -> a
    46:46:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1293:1293 -> a
    47:47:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1290:1290 -> a
    48:48:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1287:1287 -> a
    49:49:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1284:1284 -> a
    50:69:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1281:1300 -> a
    70:70:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    70:70:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    70:70:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1301 -> a
    71:71:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    71:71:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1301 -> a
    72:89:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1301:1318 -> a
    90:90:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1315:1315 -> a
    91:91:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1312:1312 -> a
    92:92:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1309:1309 -> a
    93:93:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1306:1306 -> a
    94:94:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1303:1303 -> a
    95:95:int getOffset():1214:1214 -> a
    95:95:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1322 -> a
    96:97:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1322:1323 -> a
    98:98:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    98:98:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    98:98:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1245 -> a
    98:98:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
    99:99:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    99:99:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1245 -> a
    99:99:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
    100:100:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1245:1245 -> a
    100:100:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
    101:101:int getMaxOffset():1214:1214 -> a
    101:101:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1246 -> a
    101:101:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
    102:102:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1247:1247 -> a
    102:102:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
    103:103:int getOffset():1214:1214 -> a
    103:103:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1249 -> a
    103:103:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
    104:104:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1249:1249 -> a
    104:104:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
    105:105:int getOffset():1214:1214 -> a
    105:105:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1254 -> a
    105:105:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
    106:106:int getOffset():1214:1214 -> a
    106:106:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1255 -> a
    106:106:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
    107:107:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    107:107:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    107:107:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1329 -> a
    108:108:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    108:108:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1329 -> a
    109:109:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1329:1329 -> a
    110:110:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    110:110:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    110:110:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1239 -> a
    110:110:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1331 -> a
    111:111:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    111:111:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1239 -> a
    111:111:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1331 -> a
    112:113:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1240:1241 -> a
    112:113:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1331 -> a
    114:114:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1331:1331 -> a
    115:115:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    116:116:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    116:116:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    116:116:int getRegister(int,com.android.tools.r8.ir.conversion.DexBuilder):1223 -> a
    117:117:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    117:117:int getRegister(int,com.android.tools.r8.ir.conversion.DexBuilder):1223 -> a
    118:118:int getRegister(int,com.android.tools.r8.ir.conversion.DexBuilder):1224:1224 -> a
    119:119:void setMaxOffset(int):1214:1214 -> a
    120:123:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1352:1355 -> a
    124:124:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    124:124:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    124:124:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1356 -> a
    125:125:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    125:125:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1356 -> a
    126:126:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1356:1356 -> a
    127:127:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    127:127:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    127:127:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1356 -> a
    128:128:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    128:128:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1356 -> a
    129:130:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1356:1357 -> a
    1:1:int getMaxOffset():1214:1214 -> b
    2:2:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> b
    2:2:com.android.tools.r8.ir.code.If getBranch():1235 -> b
    2:2:int[] getRegisters(com.android.tools.r8.ir.conversion.DexBuilder):1228 -> b
    3:3:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> b
    3:3:int[] getRegisters(com.android.tools.r8.ir.conversion.DexBuilder):1228 -> b
    4:7:int[] getRegisters(com.android.tools.r8.ir.conversion.DexBuilder):1228:1231 -> b
    8:8:void setMinOffset(int):1214:1214 -> b
    1:1:int getOffset():1214:1214 -> c
    2:2:void setOffset(int):1214:1214 -> c
    1:1:int getSize():1347:1347 -> d
    int maxSize() -> e
    int minSize() -> f
com.android.tools.r8.ir.conversion.DexBuilder$Info -> com.android.tools.r8.ir.conversion.A:
    com.android.tools.r8.ir.code.Instruction ir -> a
    int offset -> b
    int maxOffset -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():885:885 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Instruction):894:894 -> <init>
    2:9:void <init>(com.android.tools.r8.ir.code.Instruction):889:896 -> <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):941:942 -> a
    3:3:com.android.tools.r8.ir.code.Instruction getIR():946:946 -> a
    1:1:void setMinOffset(int):931:931 -> b
    2:3:int getMaxOffset():936:937 -> b
    1:2:int getOffset():916:917 -> c
    3:4:void setOffset(int):921:922 -> c
    int getSize() -> d
    int maxSize() -> e
    int minSize() -> f
com.android.tools.r8.ir.conversion.DexBuilder$MoveInfo -> com.android.tools.r8.ir.conversion.B:
    boolean $assertionsDisabled -> f
    int size -> e
    1:1:void <clinit>():1361:1361 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Move):1366:1366 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.Move):1363:1363 -> <init>
    1:1:com.android.tools.r8.ir.code.Instruction getIR():1361:1361 -> a
    1:1:com.android.tools.r8.ir.code.Move getMove():1370 -> a
    1:1:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1409 -> a
    2:2:com.android.tools.r8.ir.code.Move getMove():1370:1370 -> a
    2:2:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1409 -> a
    3:46:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1410:1453 -> a
    47:54:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1431:1438 -> a
    55:63:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1417:1425 -> a
    64:64:int getOffset():1361:1361 -> a
    64:64:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1455 -> a
    65:66:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1455:1456 -> a
    67:67:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1427:1427 -> a
    68:68:com.android.tools.r8.ir.code.Instruction getIR():1361:1361 -> a
    69:69:void setMaxOffset(int):1361:1361 -> a
    70:75:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1383:1388 -> a
    76:87:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1393:1404 -> a
    1:1:com.android.tools.r8.ir.code.Instruction getIR():1361:1361 -> b
    1:1:com.android.tools.r8.ir.code.Move getMove():1370 -> b
    1:1:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1378 -> b
    2:2:com.android.tools.r8.ir.code.Move getMove():1370:1370 -> b
    2:2:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1378 -> b
    3:3:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1378:1378 -> b
    4:4:com.android.tools.r8.ir.code.Instruction getIR():1361:1361 -> b
    4:4:com.android.tools.r8.ir.code.Move getMove():1370 -> b
    4:4:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1378 -> b
    5:5:com.android.tools.r8.ir.code.Move getMove():1370:1370 -> b
    5:5:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1378 -> b
    6:6:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1378:1378 -> b
    7:7:int getMaxOffset():1361:1361 -> b
    8:8:void setMinOffset(int):1361:1361 -> b
    1:1:int getOffset():1361:1361 -> c
    2:2:void setOffset(int):1361:1361 -> c
    3:3:com.android.tools.r8.ir.code.Instruction getIR():1361:1361 -> c
    3:3:com.android.tools.r8.ir.code.Move getMove():1370 -> c
    3:3:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1374 -> c
    4:4:com.android.tools.r8.ir.code.Move getMove():1370:1370 -> c
    4:4:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1374 -> c
    5:5:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1374:1374 -> c
    6:6:com.android.tools.r8.ir.code.Instruction getIR():1361:1361 -> c
    6:6:com.android.tools.r8.ir.code.Move getMove():1370 -> c
    6:6:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1374 -> c
    7:7:com.android.tools.r8.ir.code.Move getMove():1370:1370 -> c
    7:7:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1374 -> c
    8:8:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1374:1374 -> c
    1:2:int getSize():1473:1474 -> d
    1:1:int maxSize():1467:1467 -> e
    1:1:int minSize():1461:1461 -> f
com.android.tools.r8.ir.conversion.DexBuilder$MultiFixedSizeInfo -> com.android.tools.r8.ir.conversion.C:
    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[]):1001:1007 -> <init>
    1:1:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1012:1012 -> a
    2:6:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1017:1021 -> a
    7:8:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1042:1043 -> a
    1:1:int getSize():1037:1037 -> d
    1:1:int maxSize():1032:1032 -> e
    1:1:int minSize():1027:1027 -> f
com.android.tools.r8.ir.conversion.DexBuilder$SwitchPayloadInfo -> com.android.tools.r8.ir.conversion.D:
    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):1514:1516 -> <init>
com.android.tools.r8.ir.conversion.DexBuilder$TryItem -> com.android.tools.r8.ir.conversion.E:
    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):1497:1500 -> <init>
    1:1:int compareTo(com.android.tools.r8.ir.conversion.DexBuilder$TryItem):1505:1505 -> a
    1:1:int compareTo(java.lang.Object):1491:1491 -> compareTo
    2:2:int compareTo(com.android.tools.r8.ir.conversion.DexBuilder$TryItem):1505:1505 -> compareTo
    2:2:int compareTo(java.lang.Object):1491 -> compareTo
com.android.tools.r8.ir.conversion.DexSourceCode -> com.android.tools.r8.ir.conversion.G:
    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>():59:59 -> <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):83:83 -> <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):65:94 -> <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():105:105 -> a
    2:6:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):141:145 -> a
    7:34:void buildArgumentsWithUnusedArgumentStubs(com.android.tools.r8.ir.conversion.IRBuilder,int,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):161:188 -> a
    35:46:void buildArgumentsWithUnusedArgumentStubs(com.android.tools.r8.ir.conversion.IRBuilder,int,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):187:198 -> a
    47:59:void buildArgumentsWithUnusedArgumentStubs(com.android.tools.r8.ir.conversion.IRBuilder,int,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):196:208 -> a
    60:60:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):225:225 -> a
    61:61:int instructionOffset(int):337:337 -> a
    61:61:void updateCurrentCatchHandlers(int,com.android.tools.r8.graph.DexItemFactory):270 -> a
    61:61:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):225 -> a
    62:70:void updateCurrentCatchHandlers(int,com.android.tools.r8.graph.DexItemFactory):270:278 -> a
    62:70:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):225 -> a
    71:71:void updateDebugPosition(int,com.android.tools.r8.ir.conversion.IRBuilder):296:296 -> a
    71:71:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):226 -> a
    72:72:int instructionOffset(int):337:337 -> a
    72:72:void updateDebugPosition(int,com.android.tools.r8.ir.conversion.IRBuilder):299 -> a
    72:72:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):226 -> a
    73:79:void updateDebugPosition(int,com.android.tools.r8.ir.conversion.IRBuilder):300:306 -> a
    73:79:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):226 -> a
    80:81:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):227:228 -> a
    82:85:int getMoveExceptionRegister(int):238:241 -> a
    86:87:com.android.tools.r8.ir.code.Position getCanonicalPositionAppendCaller(com.android.tools.r8.graph.DexDebugEntry):313:314 -> a
    88:96:com.android.tools.r8.ir.code.Position getCanonicalPositionAppendCaller(com.android.tools.r8.graph.DexDebugEntry):313:321 -> a
    97:97:com.android.tools.r8.ir.code.Position getCanonicalPositionAppendCaller(com.android.tools.r8.graph.DexDebugEntry):316:316 -> a
    98:99:void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder):343:344 -> a
    100:100:void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder):343:343 -> a
    101:104:void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder):350:353 -> a
    105:105:void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder):350:350 -> a
    106:106:boolean isMoveResult(com.android.tools.r8.code.Instruction):376:376 -> a
    107:139:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):383:415 -> a
    140:140:java.util.Set getUniqueTryHandlerOffsets(com.android.tools.r8.graph.DexCode$Try,com.android.tools.r8.graph.DexItemFactory):490:490 -> a
    140:140:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):415 -> a
    141:146:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):415:420 -> a
    147:147:boolean isInvoke(com.android.tools.r8.code.Instruction):357:357 -> a
    147:147:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):420 -> a
    148:168:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):420:440 -> a
    169:178:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexCode$Try):462:471 -> a
    179:180:void lambda$getCurrentCatchHandlers$0(java.util.List,java.util.List,com.android.tools.r8.graph.DexType,java.lang.Integer):468:469 -> a
    181:189:void forEachTryRange(com.android.tools.r8.graph.DexCode$Try,com.android.tools.r8.graph.DexItemFactory,java.util.function.BiConsumer):476:484 -> a
    190:191:java.util.List getTryHandlerOffsets(com.android.tools.r8.graph.DexCode$Try,com.android.tools.r8.graph.DexItemFactory):494:495 -> a
    192:192:void lambda$getTryHandlerOffsets$1(java.util.List,com.android.tools.r8.graph.DexType,java.lang.Integer):495:495 -> a
    void buildPostlude(com.android.tools.r8.ir.conversion.IRBuilder) -> b
    1:8:void setUp():126:133 -> b
    9:9:int instructionOffset(int):337:337 -> 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):233:233 -> c
    2:2:boolean verifyCurrentInstructionCanThrow():261:261 -> c
    1:2:void clear():326:327 -> clear
    1:4:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):248:251 -> d
    5:5:com.android.tools.r8.ir.code.Position getCurrentPosition():256:256 -> d
    com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int) -> e
    1:1:boolean verifyRegister(int):100:100 -> f
    1:1:int instructionIndex(int):332:332 -> g
    1:3:com.android.tools.r8.graph.DexDebugEntry getDebugEntryAtOffset(int):284:286 -> h
    1:1:com.android.tools.r8.graph.DexCode$Try getTryForOffset(int):453:453 -> i
    2:2:boolean inTryRange(com.android.tools.r8.graph.DexCode$Try,int):448:448 -> i
    2:2:com.android.tools.r8.graph.DexCode$Try getTryForOffset(int):454 -> i
com.android.tools.r8.ir.conversion.FieldOptimizationFeedback -> com.android.tools.r8.ir.conversion.H:
    void markFieldAsPropagated(com.android.tools.r8.graph.DexEncodedField) -> 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 markFieldCannotBeKept(com.android.tools.r8.graph.DexEncodedField) -> b
com.android.tools.r8.ir.conversion.IRBuilder -> com.android.tools.r8.ir.conversion.I:
    com.android.tools.r8.ir.conversion.SourceCode source -> v
    java.util.Queue ssaWorklist -> f
    int currentInstructionOffset -> j
    boolean $assertionsDisabled -> J
    java.util.List argumentValues -> t
    com.android.tools.r8.ir.code.BasicBlock currentBlock -> i
    com.android.tools.r8.ir.code.Value receiverValue -> s
    boolean throwingInstructionInCurrentBlock -> w
    int nextBlockNumber -> A
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement FLOAT -> F
    com.android.tools.r8.graph.DexEncodedMethod method -> l
    java.util.Set processedSubroutineInstructions -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap offsets -> b
    boolean[] processedInstructions -> d
    java.util.LinkedList blocks -> g
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement DOUBLE -> H
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap targets -> a
    boolean hasImpreciseValues -> C
    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 -> x
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap uninitializedDebugLocalValues -> z
    java.util.List pendingArgumentInstructions -> u
    com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription prototypeChanges -> p
    com.android.tools.r8.ir.code.ValueNumberGenerator valueNumberGenerator -> k
    java.util.List debugLocalEnds -> y
    com.android.tools.r8.graph.DexEncodedMethod context -> m
    com.android.tools.r8.graph.AppView appView -> n
    java.util.List impreciseInstructions -> B
    com.android.tools.r8.ir.code.IRMetadata metadata -> D
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement INT -> E
    java.util.ListIterator removedArgumentsIterator -> q
    int argumentCount -> r
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement NULL -> I
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement LONG -> G
    1:7:void <clinit>():140:146 -> <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: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):366:459 -> <init>
    96:104: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):454:462 -> <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):492:493 -> a
    8:26:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):509:527 -> a
    27:29:void markIndexProcessed(int):2369:2371 -> a
    27:29:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):532 -> a
    30:31:void ensureSubroutineProcessedInstructions():2379:2380 -> a
    30:31:void markIndexProcessed(int):2374 -> a
    30:31:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):532 -> a
    32:32:void markIndexProcessed(int):2375:2375 -> a
    32:32:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):532 -> a
    33:43:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):533:543 -> a
    44:44:void ensureNormalSuccessorBlock(int,int):2400:2400 -> a
    44:44:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):544 -> a
    45:47:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):550:552 -> a
    48:48:void setCurrentBlock(com.android.tools.r8.ir.code.BasicBlock):498:498 -> a
    48:48:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):552 -> a
    49:54:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):553:558 -> a
    55:60:void processWorklist():749:754 -> a
    55:60:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):559 -> a
    61:61:void setCurrentBlock(com.android.tools.r8.ir.code.BasicBlock):498:498 -> a
    61:61:void processWorklist():754 -> a
    61:61:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):559 -> a
    62:66:void processWorklist():755:759 -> a
    62:66:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):559 -> a
    67:91:void processMoveExceptionItem(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):800:824 -> a
    67:91:void processWorklist():759 -> a
    67:91:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):559 -> a
    92:97:void processMoveExceptionItem(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):823:828 -> a
    92:97:void processWorklist():759 -> a
    92:97:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):559 -> a
    98:105:void processWorklist():760:767 -> a
    98:105:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):559 -> a
    106:116:void processWorklist():766:776 -> a
    106:116:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):559 -> a
    117:117:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> a
    117:117:void processWorklist():776 -> a
    117:117:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):559 -> a
    118:127:void processWorklist():780:789 -> a
    118:127:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):559 -> a
    128:131:void closeCurrentBlockWithFallThrough(com.android.tools.r8.ir.code.BasicBlock):2445:2448 -> a
    128:131:void processWorklist():789 -> a
    128:131:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):559 -> a
    132:133:void processWorklist():792:793 -> a
    132:133:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):559 -> a
    134:134:void processWorklist():749:749 -> a
    134:134:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):559 -> a
    135:140:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):562:567 -> a
    141:142:boolean verifyFilledPredecessors():688:689 -> a
    141:142:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):567 -> a
    143:148:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):695:700 -> a
    143:148:boolean verifyFilledPredecessors():689 -> a
    143:148:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):567 -> a
    149:149:int com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.predecessorCount():297:297 -> a
    149:149:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):700 -> a
    149:149:boolean verifyFilledPredecessors():689 -> a
    149:149:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):567 -> a
    150:157:int nonSplitPredecessorCount(com.android.tools.r8.ir.code.BasicBlock):717:724 -> a
    150:157:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):700 -> a
    150:157:boolean verifyFilledPredecessors():689 -> a
    150:157:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):567 -> a
    158:161:boolean trivialGotoBlockPotentiallyWithMoveException(com.android.tools.r8.ir.code.BasicBlock):740:743 -> a
    158:161:int nonSplitPredecessorCount(com.android.tools.r8.ir.code.BasicBlock):724 -> a
    158:161:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):700 -> a
    158:161:boolean verifyFilledPredecessors():689 -> a
    158:161:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):567 -> a
    162:162:boolean trivialGotoBlockPotentiallyWithMoveException(com.android.tools.r8.ir.code.BasicBlock):741:741 -> a
    162:162:int nonSplitPredecessorCount(com.android.tools.r8.ir.code.BasicBlock):724 -> a
    162:162:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):700 -> a
    162:162:boolean verifyFilledPredecessors():689 -> a
    162:162:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):567 -> a
    163:170:int nonSplitPredecessorCount(com.android.tools.r8.ir.code.BasicBlock):728:735 -> a
    163:170:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):700 -> a
    163:170:boolean verifyFilledPredecessors():689 -> a
    163:170:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):567 -> a
    171:177:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):700:706 -> a
    171:177:boolean verifyFilledPredecessors():689 -> a
    171:177:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):567 -> a
    178:178:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):703:703 -> a
    178:178:boolean verifyFilledPredecessors():689 -> a
    178:178:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):567 -> a
    179:185:void insertDebugPositions():657:663 -> a
    179:185:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):570 -> a
    186:186:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.next():27:27 -> a
    186:186:void insertDebugPositions():664 -> a
    186:186:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):570 -> a
    187:199:void insertDebugPositions():665:677 -> a
    187:199:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):570 -> a
    200:200:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.previous():27:27 -> a
    200:200:void insertDebugPositions():678 -> a
    200:200:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):570 -> a
    201:201:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):27:27 -> a
    201:201:void insertDebugPositions():679 -> a
    201:201:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):570 -> a
    202:202:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.next():27:27 -> a
    202:202:void insertDebugPositions():680 -> a
    202:202:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):570 -> a
    203:204:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):573:574 -> a
    205:205:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> a
    205:205:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):574 -> a
    206:208:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):575:577 -> a
    209:209:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.previous():27:27 -> a
    209:209:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):577 -> a
    210:215:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):578:583 -> a
    216:216:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):27:27 -> a
    216:216:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):584 -> a
    217:218:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):591:592 -> a
    219:249:void joinPredecessorsWithIdenticalPhis():2533:2563 -> a
    219:249:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):597 -> a
    250:250:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> a
    250:250:void joinPredecessorsWithIdenticalPhis():2563 -> a
    250:250:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):597 -> a
    251:251:void joinPredecessorsWithIdenticalPhis():2563:2563 -> a
    251:251:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):597 -> a
    252:266:void joinPredecessorsWithIdenticalPhis():2562:2576 -> a
    252:266:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):597 -> a
    267:278:void com.android.tools.r8.ir.code.BasicBlock.removePredecessorsByIndex(java.util.List):506:517 -> a
    267:278:void joinPredecessorsWithIdenticalPhis():2580 -> a
    267:278:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):597 -> a
    279:279:void joinPredecessorsWithIdenticalPhis():2581:2581 -> a
    279:279:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):597 -> a
    280:280:void joinPredecessorsWithIdenticalPhis():2539:2539 -> a
    280:280:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):597 -> a
    281:281:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    281:281:void joinPredecessorsWithIdenticalPhis():2539 -> a
    281:281:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):597 -> a
    282:326:void joinPredecessorsWithIdenticalPhis():2539:2583 -> a
    282:326:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):597 -> a
    327:334:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):600:607 -> a
    335:335:void com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(com.android.tools.r8.ir.conversion.IRBuilder):1089:1089 -> a
    335:335:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):610 -> a
    336:344:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):611:619 -> a
    345:345:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    345:345:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):619 -> a
    346:346:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):619:619 -> a
    347:364:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):616:633 -> a
    365:365:boolean com.android.tools.r8.utils.InternalOptions.isStringSwitchConversionEnabled():1081:1081 -> a
    365:365:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):633 -> a
    366:366:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):634:634 -> a
    367:378: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
    367:378:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):107 -> a
    367:378:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):634 -> a
    379:379: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
    379:379: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
    379:379:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):107 -> a
    379:379:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):634 -> a
    380:388: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
    380:388:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):107 -> a
    380:388:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):634 -> a
    389:389: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
    389:389: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
    389:389:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):107 -> a
    389:389:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):634 -> a
    390:394: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
    390:394:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):107 -> a
    390:394:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):634 -> a
    395:395: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
    395:395:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):634 -> a
    396:396: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
    396:396: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
    396:396:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):111 -> a
    396:396:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):634 -> a
    397:399: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
    397:399:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):111 -> a
    397:399:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):634 -> a
    400:401: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
    400:401:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):634 -> a
    402:406:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):637:641 -> a
    407:407:void constrainType(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ValueTypeConstraint):646:646 -> a
    408:408:void resolveAndBuildSwitch(int,int,int):833:833 -> a
    409:409:void add(com.android.tools.r8.ir.code.Instruction):847:847 -> a
    410:410:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> a
    410:410:void add(com.android.tools.r8.ir.code.Instruction):848 -> a
    411:411:void addNonThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):880:880 -> a
    412:412:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2186:2186 -> a
    412:412:void addNonThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):882 -> a
    413:416:void addNonThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):883:886 -> a
    417:417:void addBooleanNonThisArgument(int):891:891 -> a
    418:418:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2186:2186 -> a
    418:418:void addBooleanNonThisArgument(int):893 -> a
    419:422:void addBooleanNonThisArgument(int):894:897 -> a
    423:424:void addNonThisArgument(com.android.tools.r8.ir.code.Argument):902:903 -> a
    425:425:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> a
    425:425:void addNonThisArgument(com.android.tools.r8.ir.code.Argument):905 -> a
    426:426:void addNonThisArgument(com.android.tools.r8.ir.code.Argument):906:906 -> a
    427:430:void handleConstantOrUnusedArgument(int,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo):915:918 -> a
    431:431:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2186:2186 -> a
    431:431:void handleConstantOrUnusedArgument(int,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo):920 -> a
    432:435:void handleConstantOrUnusedArgument(int,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo):921:924 -> a
    436:440:void addDebugLocalEnd(int,com.android.tools.r8.graph.DebugLocalInfo):962:966 -> a
    441:441:boolean com.android.tools.r8.ir.code.Value.isUninitializedLocal():573:573 -> a
    441:441:boolean isValidFor(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DebugLocalInfo):938 -> a
    441:441:void addDebugLocalEnd(int,com.android.tools.r8.graph.DebugLocalInfo):967 -> a
    442:442:boolean isValidFor(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DebugLocalInfo):938:938 -> a
    442:442:void addDebugLocalEnd(int,com.android.tools.r8.graph.DebugLocalInfo):967 -> a
    443:443:void addDebugLocalEnd(int,com.android.tools.r8.graph.DebugLocalInfo):968:968 -> a
    444:450:void addDebugPosition(com.android.tools.r8.ir.code.Position):973:979 -> a
    451:451:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> a
    451:451:void addDebugPosition(com.android.tools.r8.ir.code.Position):979 -> a
    452:455:void addDebugPosition(com.android.tools.r8.ir.code.Position):981:984 -> a
    456:456:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> a
    456:456:void addDebugPosition(com.android.tools.r8.ir.code.Position):984 -> a
    457:458:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1028:1029 -> a
    459:479:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):151:171 -> a
    459:479:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1030 -> a
    480:480:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):166:166 -> a
    480:480:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1030 -> a
    481:485:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):160:164 -> a
    481:485:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1030 -> a
    486:486:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):162:162 -> a
    486:486:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1030 -> a
    487:487:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):158:158 -> a
    487:487:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1030 -> a
    488:501:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):156:169 -> a
    488:501:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1030 -> a
    502:505:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1031:1034 -> a
    506:509:void addImpreciseInstruction(com.android.tools.r8.ir.code.ImpreciseMemberTypeInstruction):650:653 -> a
    506:509:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1035 -> a
    510:510:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1037:1037 -> a
    511:515:void addArrayLength(int,int):1041:1045 -> a
    516:522:void addCheckCast(int,com.android.tools.r8.graph.DexType):1060:1066 -> a
    523:526:void addConst(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,int,long):1079:1082 -> a
    527:535:void addConstMethodHandle(int,com.android.tools.r8.graph.DexMethodHandle):1115:1123 -> a
    536:540:void addConstMethodHandle(int,com.android.tools.r8.graph.DexMethodHandle):1122:1126 -> a
    541:541:void addConstMethodHandle(int,com.android.tools.r8.graph.DexMethodHandle):1116:1116 -> a
    542:550:void addConstMethodType(int,com.android.tools.r8.graph.DexProto):1130:1138 -> a
    551:555:void addConstMethodType(int,com.android.tools.r8.graph.DexProto):1137:1141 -> a
    556:556:void addConstMethodType(int,com.android.tools.r8.graph.DexProto):1131:1131 -> a
    557:558:void addConstString(int,com.android.tools.r8.graph.DexString):1151:1152 -> a
    559:559:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1145:1145 -> a
    559:559:void addConstString(int,com.android.tools.r8.graph.DexString):1153 -> a
    560:560:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    560:560:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1145 -> a
    560:560:void addConstString(int,com.android.tools.r8.graph.DexString):1153 -> a
    561:562:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1146:1147 -> a
    561:562:void addConstString(int,com.android.tools.r8.graph.DexString):1153 -> a
    563:563:void addConstString(int,com.android.tools.r8.graph.DexString):1154:1154 -> a
    564:566:void addDexItemBasedConstString(int,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):1159:1161 -> a
    567:567:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1145:1145 -> a
    567:567:void addDexItemBasedConstString(int,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):1162 -> a
    568:568:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    568:568:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1145 -> a
    568:568:void addDexItemBasedConstString(int,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):1162 -> a
    569:570:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1146:1147 -> a
    569:570:void addDexItemBasedConstString(int,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):1162 -> a
    571:572:void addDexItemBasedConstString(int,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):1163:1164 -> a
    573:575:com.android.tools.r8.ir.code.Monitor addMonitor(com.android.tools.r8.ir.code.Monitor$Type,int):1191:1193 -> a
    576:577:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1202:1203 -> a
    578:578:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2186:2186 -> a
    578:578:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1205 -> a
    579:581:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1206:1208 -> a
    582:582:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> a
    582:582:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1208 -> a
    583:583:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1212:1212 -> a
    584:590:void addIf(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueTypeConstraint,int,int,int,int):1309:1315 -> a
    591:591:void addIfZero(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,int,int,int):1323:1323 -> a
    592:595:void addIfZero(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueTypeConstraint,int,int,int):1336:1339 -> a
    592:595:void addIfZero(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,int,int,int):1321 -> a
    596:599:void addIfZero(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueTypeConstraint,int,int,int):1336:1339 -> a
    600:604:void addInstanceGet(int,int,com.android.tools.r8.graph.DexField):1344:1348 -> a
    605:609:void addInstanceGet(int,int,com.android.tools.r8.graph.DexField):1346:1350 -> a
    610:610:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> a
    610:610:void addInstanceGet(int,int,com.android.tools.r8.graph.DexField):1352 -> a
    611:613:void addInstanceOf(int,int,com.android.tools.r8.graph.DexType):1356:1358 -> a
    614:614:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> a
    614:614:void addInstanceOf(int,int,com.android.tools.r8.graph.DexType):1360 -> a
    615:624: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):1372:1381 -> a
    625:645: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):1375:1395 -> a
    646:646:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    646:646: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):1395 -> a
    647:657: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):1396:1406 -> a
    658:662: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):1416:1420 -> a
    663:666: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):1419:1422 -> a
    667:684:void addInvokeCustomRange(com.android.tools.r8.graph.DexCallSite,int,int):1449:1466 -> a
    685:689:void addInvokeCustom(com.android.tools.r8.graph.DexCallSite,java.util.List,java.util.List):1471:1475 -> a
    690:693:void addInvokeCustom(com.android.tools.r8.graph.DexCallSite,java.util.List,java.util.List):1474:1477 -> a
    694:717:void addInvokeRegisters(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto,int,int[]):1488:1511 -> a
    718:734:void addInvokeNewArray(com.android.tools.r8.graph.DexType,int,int[]):1515:1531 -> a
    735:759:void addInvokeRange(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto,int,int):1552:1576 -> a
    760:774:void addInvokeRangeNewArray(com.android.tools.r8.graph.DexType,int,int):1580:1594 -> a
    775:775:boolean lambda$addMoveException$1(com.android.tools.r8.ir.code.BasicBlock):1607:1607 -> a
    776:778:void addNewArrayFilledData(int,int,long,short[]):1679:1681 -> a
    779:779:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> a
    779:779:void addNewArrayFilledData(int,int,long,short[]):1683 -> a
    780:780:void addReturn():1708:1708 -> a
    781:783:void addReturn(com.android.tools.r8.ir.code.Return):1713:1715 -> a
    781:783:void addReturn():1708 -> a
    784:787:void addStaticGet(int,com.android.tools.r8.graph.DexField):1719:1722 -> a
    788:793:void addStaticGet(int,com.android.tools.r8.graph.DexField):1720:1725 -> a
    794:794:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> a
    794:794:void addStaticGet(int,com.android.tools.r8.graph.DexField):1726 -> a
    795:838:void addSwitch(int,int[],int,int[]):1758:1801 -> a
    839:839:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.toIntArray(int[]):167:167 -> a
    839:839:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.toIntArray():155 -> a
    839:839:void addSwitch(int,int[],int,int[]):1806 -> a
    840:840:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.toIntArray(int[]):167:167 -> a
    840:840:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.toIntArray():155 -> a
    840:840:void addSwitch(int,int[],int,int[]):1807 -> a
    841:845:com.android.tools.r8.ir.code.IntSwitch createSwitch(com.android.tools.r8.ir.code.Value,int[],int,int[]):1814:1818 -> a
    841:845:void addSwitch(int,int[],int,int[]):1808 -> a
    846:846:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2418:2418 -> a
    846:846:com.android.tools.r8.ir.code.IntSwitch createSwitch(com.android.tools.r8.ir.code.Value,int[],int,int[]):1820 -> a
    846:846:void addSwitch(int,int[],int,int[]):1808 -> a
    847:870:com.android.tools.r8.ir.code.IntSwitch createSwitch(com.android.tools.r8.ir.code.Value,int[],int,int[]):1821:1844 -> a
    847:870:void addSwitch(int,int[],int,int[]):1808 -> a
    871:871:void addSwitch(int,int[],int,int[]):1809:1809 -> a
    872:873: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):2014:2015 -> a
    874:893: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):2030:2049 -> a
    874:893: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):2018 -> a
    894:894:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2095:2095 -> a
    894:894: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):2054 -> a
    894:894: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):2018 -> a
    895:895:boolean com.android.tools.r8.ir.code.ValueTypeConstraint.isPrecise():36:36 -> a
    895:895:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2095 -> a
    895:895: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):2054 -> a
    895:895: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):2018 -> a
    896:896:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2095:2095 -> a
    896:896: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):2054 -> a
    896:896: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):2018 -> a
    897:897:boolean com.android.tools.r8.ir.code.ValueTypeConstraint.isPrecise():36:36 -> a
    897:897:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2095 -> a
    897:897: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):2054 -> a
    897:897: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):2018 -> a
    898:898:boolean com.android.tools.r8.ir.code.ValueTypeConstraint.isObject():24:24 -> a
    898:898:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2097 -> a
    898:898: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):2054 -> a
    898:898: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):2018 -> a
    899:899:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2098:2098 -> a
    899:899: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):2054 -> a
    899:899: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):2018 -> a
    900:910:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueTypeConstraint.toPrimitiveTypeLattice():161:171 -> a
    900:910:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2099 -> a
    900:910: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):2054 -> a
    900:910: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):2018 -> a
    911:911:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueTypeConstraint.toPrimitiveTypeLattice():167:167 -> a
    911:911:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2099 -> a
    911:911: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):2054 -> a
    911:911: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):2018 -> a
    912:912:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueTypeConstraint.toPrimitiveTypeLattice():165:165 -> a
    912:912:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2099 -> a
    912:912: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):2054 -> a
    912:912: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):2018 -> a
    913:913:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueTypeConstraint.toPrimitiveTypeLattice():163:163 -> a
    913:913:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2099 -> a
    913:913: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):2054 -> a
    913: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):2018 -> a
    914:932:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2100:2118 -> a
    914:932: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):2054 -> a
    914:932: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):2018 -> a
    933:933:boolean com.android.tools.r8.ir.code.ValueTypeConstraint.isObject():24:24 -> a
    933:933:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2097 -> a
    933: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):2054 -> a
    933: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):2018 -> a
    934:936:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,com.android.tools.r8.ir.code.BasicBlock):2086:2088 -> a
    934:936: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):2056 -> a
    934:936: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):2018 -> a
    937:961: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):2057:2081 -> a
    937:961: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):2018 -> a
    962:962:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> a
    962:962:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):989 -> a
    963:963:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> a
    963:963:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):990 -> a
    964:964:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):991:991 -> a
    965:965:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2178:2178 -> a
    965:965:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):991 -> a
    966:967:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):992:993 -> a
    968:968:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> a
    968:968:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):994 -> a
    969:969:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> a
    969:969:void addCmp(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Cmp$Bias,int,int,int):1070 -> a
    970:970:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> a
    970:970:void addCmp(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Cmp$Bias,int,int,int):1071 -> a
    971:974:void addCmp(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Cmp$Bias,int,int,int):1072:1075 -> a
    975:975:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> a
    975:975:void addConversion(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int):1970 -> a
    976:976:void addConversion(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int):1971:1971 -> a
    977:977:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2178:2178 -> a
    977:977:void addConversion(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int):1971 -> a
    978:979:void addConversion(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int):1972:1973 -> a
    980:980:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> a
    980:980:void addConversion(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int):1974 -> a
    981:981:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> a
    981:981:void addNeg(com.android.tools.r8.ir.code.NumericType,int,int):1646 -> a
    982:982:void addNeg(com.android.tools.r8.ir.code.NumericType,int,int):1647:1647 -> a
    983:983:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2178:2178 -> a
    983:983:void addNeg(com.android.tools.r8.ir.code.NumericType,int,int):1647 -> a
    984:985:void addNeg(com.android.tools.r8.ir.code.NumericType,int,int):1648:1649 -> a
    986:986:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> a
    986:986:void addNeg(com.android.tools.r8.ir.code.NumericType,int,int):1650 -> a
    987:990:com.android.tools.r8.ir.code.Value readIntLiteral(long):2143:2146 -> a
    991:993: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):2153:2155 -> a
    994:994:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):2182:2182 -> a
    994:994:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint):1980 -> a
    995:999:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint):1981:1985 -> a
    1000:1000:boolean com.android.tools.r8.ir.code.Value.isUninitializedLocal():573:573 -> a
    1000:1000:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint):1985 -> a
    1001:1011:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint):1986:1996 -> a
    1012:1016:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint):1994:1998 -> a
    1017:1017:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):2182:2182 -> a
    1017:1017: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):2160 -> a
    1018:1018:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2186:2186 -> a
    1018:1018: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):2161 -> a
    1019:1020: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):2173:2174 -> a
    1021:1021:void addInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Position):2256:2256 -> a
    1022:1024:boolean verifyOutValueType(com.android.tools.r8.ir.code.Instruction):2288:2290 -> a
    1022:1024:void addInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Position):2256 -> a
    1025:1031:boolean verifyOutValueType(com.android.tools.r8.ir.code.Instruction):2288:2294 -> a
    1025:1031:void addInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Position):2256 -> a
    1032:1032:boolean verifyOutValueType(com.android.tools.r8.ir.code.Instruction):2291:2291 -> a
    1032:1032:void addInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Position):2256 -> a
    1033:1058:void addInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Position):2257:2282 -> a
    1059:1063:void lambda$addInstruction$3(java.util.List,java.util.Set,com.android.tools.r8.graph.DexType,java.lang.Integer):2271:2275 -> a
    1064:1070:void lambda$addInstruction$3(java.util.List,java.util.Set,com.android.tools.r8.graph.DexType,java.lang.Integer):2273:2279 -> a
    1071:1071:boolean isOffsetProcessed(int):2357:2357 -> a
    1071:1071:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlock(int):2350 -> a
    1071:1071:void ensureSuccessorBlock(int,int,boolean):2386 -> a
    1072:1074:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlock(int):2351:2353 -> a
    1072:1074:void ensureSuccessorBlock(int,int,boolean):2386 -> a
    1075:1078:int getBlockStartOffset(int):2341:2344 -> a
    1075:1078:void ensureSuccessorBlock(int,int,boolean):2387 -> a
    1079:1079:void ensureSuccessorBlock(int,int,boolean):2388:2388 -> a
    1080:1080:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addNormalSuccessor(int):280:280 -> a
    1080:1080:void ensureSuccessorBlock(int,int,boolean):2390 -> a
    1081:1081:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addNormalPredecessor(int):276:276 -> a
    1081:1081:void ensureSuccessorBlock(int,int,boolean):2391 -> a
    1082:1082:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addExceptionalSuccessor(int):293:293 -> a
    1082:1082:void ensureSuccessorBlock(int,int,boolean):2393 -> a
    1083:1083:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addExceptionalPredecessor(int):289:289 -> a
    1083:1083:void ensureSuccessorBlock(int,int,boolean):2394 -> a
    1084:1084:void ensureSuccessorBlock(int,int,boolean):2396:2396 -> a
    1085:1085:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2418:2418 -> a
    1085:1085:void addNonTrivialIf(com.android.tools.r8.ir.code.If,int,int):1280 -> a
    1086:1086:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2418:2418 -> a
    1086:1086:void addNonTrivialIf(com.android.tools.r8.ir.code.If,int,int):1281 -> a
    1087:1092:void addNonTrivialIf(com.android.tools.r8.ir.code.If,int,int):1282:1287 -> a
    1093:1096:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2435:2438 -> a
    1097:1097:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2437:2437 -> a
    1098:1100:void generateSplitEdgeBlocks():2452:2454 -> a
    1098:1100:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2439 -> a
    1101:1101:int getOffset(com.android.tools.r8.ir.code.BasicBlock):2422:2422 -> a
    1101:1101:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo getBlockInfo(com.android.tools.r8.ir.code.BasicBlock):2414 -> a
    1101:1101:void generateSplitEdgeBlocks():2454 -> a
    1101:1101:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2439 -> a
    1102:1102:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo getBlockInfo(int):2410:2410 -> a
    1102:1102:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo getBlockInfo(com.android.tools.r8.ir.code.BasicBlock):2414 -> a
    1102:1102:void generateSplitEdgeBlocks():2454 -> a
    1102:1102:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2439 -> a
    1103:1103:void generateSplitEdgeBlocks():2455:2455 -> a
    1103:1103:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2439 -> a
    1104:1105:boolean com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.hasMoreThanASingleNormalExit():308:309 -> a
    1104:1105:void generateSplitEdgeBlocks():2456 -> a
    1104:1105:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2439 -> a
    1106:1106:void generateSplitEdgeBlocks():2459:2459 -> a
    1106:1106:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2439 -> a
    1107:1107:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo getBlockInfo(int):2410:2410 -> a
    1107:1107:void generateSplitEdgeBlocks():2460 -> a
    1107:1107:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2439 -> a
    1108:1108:int com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.predecessorCount():297:297 -> a
    1108:1108:void generateSplitEdgeBlocks():2461 -> a
    1108:1108:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2439 -> a
    1109:1119:void generateSplitEdgeBlocks():2464:2474 -> a
    1109:1119:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2439 -> a
    1120:1128:void generateSplitEdgeBlocks():2471:2479 -> a
    1120:1128:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2439 -> a
    1129:1134:com.android.tools.r8.ir.code.BasicBlock createSplitEdgeBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):2495:2500 -> a
    1129:1134:void generateSplitEdgeBlocks():2479 -> a
    1129:1134:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2439 -> a
    1135:1145:void generateSplitEdgeBlocks():2480:2490 -> a
    1135:1145:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2439 -> a
    1146:1148:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.allSuccessors():301:303 -> a
    1146:1148:void generateSplitEdgeBlocks():2490 -> a
    1146:1148:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2439 -> a
    1149:1149:void generateSplitEdgeBlocks():2490:2490 -> a
    1149:1149:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2439 -> a
    1150:1150:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> a
    1150:1150:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2440 -> a
    1151:1151:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2441:2441 -> a
    1152:1152:boolean isIntegerType(com.android.tools.r8.ir.code.NumericType):2589:2589 -> a
    1:2:void addThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):870:871 -> b
    3:3:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2186:2186 -> b
    3:3:void addThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):872 -> b
    4:5:void addThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):873:874 -> b
    6:6:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> b
    6:6:void addThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):874 -> b
    7:8:void addThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):875:876 -> b
    9:9:void addConstantOrUnusedArgument(int):910:910 -> b
    10:12:void flushArgumentInstructions():929:931 -> b
    13:26:void addDebugLocalStart(int,com.android.tools.r8.graph.DebugLocalInfo):942:955 -> b
    27:29:void addDebugLocalStart(int,com.android.tools.r8.graph.DebugLocalInfo):954:956 -> b
    30:30:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> b
    30:30:void addDebugLocalStart(int,com.android.tools.r8.graph.DebugLocalInfo):957 -> b
    31:31:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):998:998 -> b
    32:32:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> b
    32:32:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):999 -> b
    33:34:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1000:1001 -> b
    35:35:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2178:2178 -> b
    35:35:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1001 -> b
    36:37:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1002:1003 -> b
    38:38:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> b
    38:38:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1004 -> b
    39:43:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1049:1053 -> b
    44:47:void addImpreciseInstruction(com.android.tools.r8.ir.code.ImpreciseMemberTypeInstruction):650:653 -> b
    44:47:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1054 -> b
    48:48:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1056:1056 -> b
    49:54:void addConstClass(int,com.android.tools.r8.graph.DexType):1106:1111 -> b
    55:58:void addInstancePut(int,int,com.android.tools.r8.graph.DexField):1364:1367 -> b
    59:59:void addMultiNewArray(com.android.tools.r8.graph.DexType,int,int[]):1535:1535 -> b
    60:60:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> b
    60:60:void addMultiNewArray(com.android.tools.r8.graph.DexType,int,int[]):1535 -> b
    61:67:void addMultiNewArray(com.android.tools.r8.graph.DexType,int,int[]):1535:1541 -> b
    68:73:void addNewArrayEmpty(int,int,com.android.tools.r8.graph.DexType):1668:1673 -> b
    74:74:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> b
    74:74:void addNewArrayEmpty(int,int,com.android.tools.r8.graph.DexType):1675 -> b
    75:78:void addStaticPut(int,com.android.tools.r8.graph.DexField):1730:1733 -> b
    79:79:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> b
    79:79:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1654 -> b
    80:80:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1655:1655 -> b
    81:81:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2178:2178 -> b
    81:81:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1655 -> b
    82:85:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1657:1660 -> b
    86:89:com.android.tools.r8.ir.code.Value readLiteral(com.android.tools.r8.ir.code.ValueTypeConstraint,long):2127:2130 -> b
    86:89:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1660 -> b
    90:93:com.android.tools.r8.ir.code.Value readLongLiteral(long):2136:2139 -> b
    90:93:com.android.tools.r8.ir.code.Value readLiteral(com.android.tools.r8.ir.code.ValueTypeConstraint,long):2131 -> b
    90:93:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1660 -> b
    94:96:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1661:1663 -> b
    97:97:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> b
    97:97:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1664 -> b
    98:98:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> b
    99:99:void ensureExceptionalSuccessorBlock(int,int):2404:2404 -> b
    100:100:boolean isNonLongIntegerType(com.android.tools.r8.ir.code.NumericType):2593:2593 -> b
    1:2:java.util.List getArgumentValues():482:483 -> c
    3:3:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1008:1008 -> c
    4:4:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> c
    4:4:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1009 -> c
    5:5:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> c
    5:5:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1010 -> c
    6:6:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1011:1011 -> c
    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):2178:2178 -> c
    7:7:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1011 -> c
    8:9:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1012:1013 -> c
    10:10:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> c
    10:10:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1014 -> c
    11:14:void addNewInstance(int,com.android.tools.r8.graph.DexType):1688:1691 -> c
    15:15:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> c
    15:15:void addNewInstance(int,com.android.tools.r8.graph.DexType):1692 -> c
    16:18:com.android.tools.r8.ir.code.Value readRegisterForDebugLocal(int,com.android.tools.r8.graph.DebugLocalInfo):2003:2005 -> c
    19:36:void attachLocalValues(com.android.tools.r8.ir.code.Instruction):2299:2316 -> c
    37:37:void ensureNormalSuccessorBlock(int,int):2400:2400 -> c
    38:38:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2418:2418 -> c
    38:38:void addGoto(int):1258 -> c
    39:42:void addGoto(int):1259:1262 -> c
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap getCFG():478:478 -> d
    2:2:boolean lambda$build$0(com.android.tools.r8.ir.code.Instruction):576:576 -> d
    3:3:void resolveAndBuildNewArrayFilledData(int,int):838:838 -> d
    4:4:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1018:1018 -> d
    5:5:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> d
    5:5:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1019 -> d
    6:7:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1020:1021 -> d
    8:8:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2178:2178 -> d
    8:8:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1021 -> d
    9:10:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1022:1023 -> d
    11:11:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> d
    11:11:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1024 -> d
    12:17:void addMoveException(int):1606:1611 -> d
    18:23:boolean verifyValueIsMoveException(com.android.tools.r8.ir.code.Value):1615:1620 -> d
    18:23:void addMoveException(int):1611 -> d
    1:1:com.android.tools.r8.ir.code.Value getReceiverValue():487:487 -> e
    2:2:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1168:1168 -> e
    3:3:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> e
    3:3:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1169 -> e
    4:4:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> e
    4:4:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1170 -> e
    5:5:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1172:1172 -> e
    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):2178:2178 -> e
    6:6:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1171 -> e
    7:9:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1173:1175 -> e
    10:10:void addTrivialIf(int,int):1266:1266 -> e
    11:11:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2418:2418 -> e
    11:11:void addTrivialIf(int,int):1270 -> e
    12:15:void addTrivialIf(int,int):1273:1276 -> e
    16:24:void addMoveResult(int):1626:1634 -> e
    25:34:void addMoveResult(int):1633:1642 -> e
    1:1:boolean isDebugMode():474:474 -> f
    2:2:void addNullConst(int):1102:1102 -> f
    3:4:void addDivLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1179:1180 -> f
    5:5:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> f
    5:5:void addDivLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1181 -> f
    6:8:void addDivLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1182:1184 -> 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):2178:2178 -> f
    9:9:void addDivLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1183 -> f
    10:12:void addDivLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1185:1187 -> f
    13:13:void checkInvokeArgumentRegisters(int,int):1599:1599 -> f
    14:14:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> f
    14:14:void checkInvokeArgumentRegisters(int,int):1599 -> f
    15:15:void checkInvokeArgumentRegisters(int,int):1599:1599 -> f
    1:8:void addReturn(int):1696:1703 -> g
    9:11:void addReturn(com.android.tools.r8.ir.code.Return):1713:1715 -> g
    9:11:void addReturn(int):1703 -> g
    12:12:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> g
    12:12:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1216 -> g
    13:13:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> g
    13:13:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1217 -> g
    14:14:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1218:1218 -> g
    15:15:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2178:2178 -> g
    15:15:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1218 -> g
    16:17:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1219:1220 -> g
    18:18:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> g
    18:18:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1221 -> g
    19:20:void closeCurrentBlockGuaranteedNotToNeedEdgeSplitting():2426:2427 -> g
    21:21:void setCurrentBlock(com.android.tools.r8.ir.code.BasicBlock):498:498 -> g
    21:21:void closeCurrentBlockGuaranteedNotToNeedEdgeSplitting():2428 -> g
    22:24:void closeCurrentBlockGuaranteedNotToNeedEdgeSplitting():2429:2431 -> g
    1:6:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo getRemovedArgumentInfo():852:857 -> h
    7:11:void addThisArgument(int):862:866 -> h
    12:12:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1225:1225 -> h
    13:13:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> h
    13:13:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1226 -> h
    14:15:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1227:1228 -> h
    16:16:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2178:2178 -> h
    16:16:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1228 -> h
    17:18:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1229:1230 -> h
    19:19:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> h
    19:19:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1231 -> h
    1:5:void addThrow(int):1848:1852 -> i
    6:6:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> i
    6:6:void addThrow(int):1852 -> i
    7:7:void addThrow(int):1853:1853 -> i
    8:8:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1857:1857 -> i
    9:9:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> i
    9:9:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1858 -> i
    10:10:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> i
    10:10:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1859 -> i
    11:11:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1860:1860 -> i
    12:12:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2178:2178 -> i
    12:12:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1860 -> i
    13:14:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1861:1862 -> i
    15:15:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> i
    15:15:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1863 -> i
    1:1:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1867:1867 -> j
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> j
    2:2:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1868 -> j
    3:4:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1869:1870 -> j
    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):2178:2178 -> j
    5:5:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1870 -> j
    6:7:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1871:1872 -> j
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> j
    8:8:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1873 -> j
    9:10:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2323:2324 -> j
    11:11:boolean isOffsetProcessed(int):2357:2357 -> j
    11:11:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2327 -> j
    12:15:int getBlockStartOffset(int):2341:2344 -> j
    12:15:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2328 -> j
    16:17:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2329:2330 -> j
    18:19: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):314:315 -> j
    18:19:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2330 -> j
    20:21:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet.<init>(java.util.Collection):87:88 -> j
    20:21: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):315 -> j
    20:21:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2330 -> j
    22:27: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):315:320 -> j
    22:27:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2330 -> j
    28:29:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.replaceNormalPredecessor(int,int):284:285 -> j
    28:29: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):321 -> j
    28:29:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2330 -> j
    30:31: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:324 -> j
    30:31:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2330 -> j
    32:33:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet.<init>(java.util.Collection):87:88 -> j
    32:33: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):324 -> j
    32:33:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2330 -> j
    34:38: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):324:328 -> j
    34:38:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2330 -> j
    39:39:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addExceptionalPredecessor(int):289:289 -> j
    39:39: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):329 -> j
    39:39:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2330 -> j
    40:40: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:331 -> j
    40:40:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2330 -> j
    41:42:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):76:77 -> j
    41:42: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 -> j
    41:42:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2330 -> j
    43:43: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:331 -> j
    43:43:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2330 -> j
    44:44: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):314:314 -> j
    44:44:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2330 -> j
    45:48:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2332:2335 -> j
    1:1:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1235:1235 -> k
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> k
    2:2:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1236 -> k
    3:3:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> k
    3:3:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1237 -> k
    4:4:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1239:1239 -> 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):2178:2178 -> k
    5:5:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1238 -> k
    6:7:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1240:1241 -> k
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> k
    8:8:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1242 -> k
    9:10:void checkRegister(int):2193:2194 -> k
    11:11:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> k
    11:11:void checkRegister(int):2194 -> k
    12:12:void checkRegister(int):2194:2194 -> k
    13:13:void checkRegister(int):2191:2191 -> k
    1:2:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1246:1247 -> l
    3:3:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> l
    3:3:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1248 -> l
    4:6:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1249:1251 -> 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):2178:2178 -> l
    7:7:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1250 -> l
    8:9:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1252:1253 -> l
    10:10:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> l
    10:10:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1254 -> l
    11:11:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2418:2418 -> l
    1:1:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1746:1746 -> m
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> m
    2:2:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1747 -> m
    3:4:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1748:1749 -> 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):2178:2178 -> m
    5:5:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1749 -> m
    6:7:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1752:1753 -> m
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> m
    8:8:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1754 -> m
    9:10:boolean isIndexProcessed(int):2361:2362 -> m
    11:12:void ensureSubroutineProcessedInstructions():2379:2380 -> m
    11:12:boolean isIndexProcessed(int):2364 -> m
    13:13:boolean isIndexProcessed(int):2365:2365 -> m
    1:1:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1877:1877 -> n
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> n
    2:2:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1878 -> n
    3:4:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1879:1880 -> 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):2178:2178 -> n
    5:5:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1880 -> n
    6:7:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1881:1882 -> n
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> n
    8:8:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1883 -> n
    1:1:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1887:1887 -> o
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> o
    2:2:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1888 -> o
    3:4:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1889:1890 -> 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):2178:2178 -> o
    5:5:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1890 -> o
    6:7:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1891:1892 -> o
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> o
    8:8:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1893 -> o
    1:1:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1897:1897 -> p
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> p
    2:2:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1898 -> p
    3:4:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1899:1900 -> 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):2178:2178 -> p
    5:5:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1900 -> p
    6:7:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1901:1902 -> p
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> p
    8:8:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1903 -> p
    1:1:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1907:1907 -> q
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> q
    2:2:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1908 -> q
    3:4:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1909:1910 -> 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):2178:2178 -> q
    5:5:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1910 -> q
    6:7:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1911:1912 -> q
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> q
    8:8:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1913 -> q
    1:1:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> r
    1:1:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1737 -> r
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> r
    2:2:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1738 -> r
    3:3:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1739:1739 -> 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):2178:2178 -> r
    4:4:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1739 -> r
    5:6:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1740:1741 -> r
    7:7:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> r
    7:7:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1742 -> r
    1:1:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1917:1917 -> s
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> s
    2:2:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1918 -> s
    3:4:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1919:1920 -> 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):2178:2178 -> s
    5:5:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1920 -> s
    6:7:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1921:1922 -> s
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> s
    8:8:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1923 -> s
    1:1:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1927:1927 -> t
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> t
    2:2:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1928 -> t
    3:4:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1929:1930 -> 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):2178:2178 -> t
    5:5:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1930 -> t
    6:7:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1931:1932 -> t
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> t
    8:8:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1933 -> t
    1:7:java.lang.String toString():2602:2608 -> toString
    1:1:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1937:1937 -> u
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> u
    2:2:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1938 -> u
    3:3:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> u
    3:3:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1939 -> u
    4:4:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1940:1940 -> 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):2178:2178 -> u
    5:5:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1940 -> u
    6:13:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1942:1949 -> u
    14:14:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> u
    14:14:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1950 -> u
    1:1:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1954:1954 -> v
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2123:2123 -> v
    2:2:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1955 -> v
    3:4:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1957:1958 -> 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):2178:2178 -> v
    5:5:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1958 -> v
    6:9:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1959:1962 -> 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):2178:2178 -> v
    10:10:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1962 -> v
    11:13:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1963:1965 -> v
    14:14:void addInstruction(com.android.tools.r8.ir.code.Instruction):2252:2252 -> v
    14:14:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1966 -> v
com.android.tools.r8.ir.conversion.IRBuilder$1 -> com.android.tools.r8.ir.conversion.I$a:
    int[] $SwitchMap$com$android$tools$r8$ir$code$MemberType -> a
    1:1:void <clinit>():151:151 -> <clinit>
com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo -> com.android.tools.r8.ir.conversion.I$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>():268:273 -> <init>
    1:25:java.lang.String toString():337:361 -> toString
com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem -> com.android.tools.r8.ir.conversion.I$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):193:193 -> <init>
    2:5:void <init>(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType,int,int):200:203 -> <init>
    1:1:int access$600(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):193:193 -> a
    1:1:com.android.tools.r8.graph.DexType access$700(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):193:193 -> b
    1:1:int access$800(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):193:193 -> c
com.android.tools.r8.ir.conversion.IRBuilder$SplitBlockWorklistItem -> com.android.tools.r8.ir.conversion.I$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):218:221 -> <init>
    1:1:int access$200(com.android.tools.r8.ir.conversion.IRBuilder$SplitBlockWorklistItem):207:207 -> a
    1:1:int access$300(com.android.tools.r8.ir.conversion.IRBuilder$SplitBlockWorklistItem):207:207 -> b
    1:1:com.android.tools.r8.ir.code.Position access$500(com.android.tools.r8.ir.conversion.IRBuilder$SplitBlockWorklistItem):207:207 -> c
com.android.tools.r8.ir.conversion.IRBuilder$ValueList -> com.android.tools.r8.ir.conversion.I$e:
    java.util.List values -> a
    1:3:void <init>():230:232 -> <init>
    1:3:com.android.tools.r8.ir.conversion.IRBuilder$ValueList fromPhis(java.util.List,int):238:240 -> a
    1:9:boolean equals(java.lang.Object):252:260 -> equals
    1:1:int hashCode():247:247 -> hashCode
com.android.tools.r8.ir.conversion.IRBuilder$WorklistItem -> com.android.tools.r8.ir.conversion.I$f:
    int firstInstructionIndex -> b
    boolean $assertionsDisabled -> c
    com.android.tools.r8.ir.code.BasicBlock block -> a
    1:1:void <clinit>():181:181 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.BasicBlock,int,com.android.tools.r8.ir.conversion.IRBuilder$1):181:181 -> <init>
    2:5:void <init>(com.android.tools.r8.ir.code.BasicBlock,int):186:189 -> <init>
    1:1:com.android.tools.r8.ir.code.BasicBlock access$100(com.android.tools.r8.ir.conversion.IRBuilder$WorklistItem):181:181 -> a
    1:1:int access$400(com.android.tools.r8.ir.conversion.IRBuilder$WorklistItem):181:181 -> b
com.android.tools.r8.ir.conversion.IRConverter -> com.android.tools.r8.ir.conversion.J:
    java.util.List neverMergePrefixes -> 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.utils.CfgPrinter printer -> t
    com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed delayedOptimizationFeedback -> M
    com.android.tools.r8.ir.optimize.ConstantCanonicalizer constantCanonicalizer -> v
    boolean seenNotNeverMergePrefix -> R
    com.android.tools.r8.ir.optimize.Inliner inliner -> y
    boolean $assertionsDisabled -> T
    com.android.tools.r8.ir.desugar.StringConcatRewriter stringConcatRewriter -> g
    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.NonNullTracker nonNullTracker -> J
    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.optimize.DeadCodeRemover deadCodeRemover -> K
    com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter desugaredLibraryAPIConverter -> F
    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector methodOptimizationInfoCollector -> L
    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.naming.IdentifierNameStringMarker identifierNameStringMarker -> z
    com.android.tools.r8.graph.DexString highestSortingString -> O
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner classInliner -> q
    com.android.tools.r8.ir.desugar.CovariantReturnTypeAnnotationTransformer covariantReturnTypeAnnotationTransformer -> B
    java.util.List onWaveDoneActions -> P
    com.android.tools.r8.ir.optimize.MemberValuePropagation memberValuePropagation -> w
    com.android.tools.r8.ir.optimize.AliasIntroducer aliasIntroducer -> H
    com.android.tools.r8.ir.optimize.DynamicTypeOptimization dynamicTypeOptimization -> I
    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
    com.android.tools.r8.ir.desugar.LambdaRewriter lambdaRewriter -> k
    com.android.tools.r8.ir.desugar.InterfaceMethodRewriter interfaceMethodRewriter -> m
    boolean seenNeverMergePrefix -> S
    com.android.tools.r8.ir.optimize.lambda.LambdaMerger lambdaMerger -> p
    com.android.tools.r8.ir.optimize.Devirtualizer devirtualizer -> A
    com.android.tools.r8.ir.desugar.TwrCloseResourceRewriter twrCloseResourceRewriter -> n
    com.android.tools.r8.ir.optimize.info.OptimizationFeedback simpleOptimizationFeedback -> N
    com.android.tools.r8.ir.analysis.fieldaccess.FieldBitAccessAnalysis fieldBitAccessAnalysis -> e
    com.android.tools.r8.ir.conversion.LensCodeRewriter lensCodeRewriter -> x
    com.android.tools.r8.ir.optimize.string.StringOptimizer stringOptimizer -> h
    1:1:void <clinit>():119:119 -> <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):185:185 -> <init>
    2:174: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):168:340 -> <init>
    175:175:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Timing):353:353 -> <init>
    boolean lambda$materializeInstructionBeforeLongOperationsWorkaround$20(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction) -> a
    1:1:com.android.tools.r8.ir.conversion.CallSiteInformation com.android.tools.r8.ir.conversion.CallSiteInformation.empty():27:27 -> a
    1:1:void lambda$optimize$7(com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate):689 -> a
    2:2:void lambda$optimize$7(com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate):689:689 -> a
    3:3:void lambda$optimize$7(com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate):685:685 -> a
    4:4:java.lang.String lambda$new$0(java.lang.String):205:205 -> a
    5:8:java.util.Set getDesugaredCallSites():344:347 -> a
    9:16:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):448:455 -> a
    17:18:void desugarNestBasedAccess(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):388:389 -> a
    17:18:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):457 -> a
    19:21:void synthesizeLambdaClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):395:397 -> a
    19:21:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):458 -> a
    22:22:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):459:459 -> a
    23:24:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):419:420 -> a
    23:24:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):459 -> a
    25:26:void synthesizeTwrCloseResourceUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):428:429 -> a
    25:26:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):460 -> a
    27:28:void synthesizeJava8UtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):435:436 -> a
    27:28:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):461 -> a
    29:30:void processCovariantReturnTypeAnnotations(com.android.tools.r8.graph.DexApplication$Builder):441:442 -> a
    29:30:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):462 -> a
    31:32:void generateDesugaredLibraryAPIWrappers(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):914:915 -> a
    31:32:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):463 -> a
    33:36:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):465:468 -> a
    37:43:void handleSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):472:478 -> a
    44:45:void clearSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):503:504 -> a
    44:45:void handleSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):479 -> a
    46:53:com.android.tools.r8.graph.DexAnnotationSet com.android.tools.r8.graph.DexAnnotationSet.getWithout(com.android.tools.r8.graph.DexType):106:113 -> a
    46:53:void clearSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):505 -> a
    46:53:void handleSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):479 -> a
    54:54:void clearSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):505:505 -> a
    54:54:void handleSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):479 -> a
    55:59:void convertClasses(java.lang.Iterable,java.util.concurrent.ExecutorService):541:545 -> a
    60:62:void lambda$convertMethods$4(boolean,com.android.tools.r8.graph.DexEncodedMethod):560:562 -> a
    63:71:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):626:634 -> a
    72:73:void collectLambdaMergingCandidates(com.android.tools.r8.graph.DexApplication):894:895 -> a
    72:73:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):635 -> a
    74:75:void collectStaticizerCandidates(com.android.tools.r8.graph.DexApplication):409:410 -> a
    74:75:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):636 -> a
    76:84:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):645:653 -> a
    85:85:com.android.tools.r8.ir.conversion.CallGraphBuilder com.android.tools.r8.ir.conversion.CallGraph.builder(com.android.tools.r8.graph.AppView):169:169 -> a
    85:85:com.android.tools.r8.ir.conversion.MethodProcessor com.android.tools.r8.ir.conversion.CallGraph.createMethodProcessor(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):175 -> a
    85:85:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):653 -> a
    86:87:com.android.tools.r8.ir.conversion.MethodProcessor com.android.tools.r8.ir.conversion.CallGraph.createMethodProcessor(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):175:176 -> a
    86:87:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):653 -> a
    88:140:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):654:706 -> a
    141:141:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    141:141:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):706 -> a
    142:142:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):707:707 -> a
    143:144:void staticizeClasses(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):403:404 -> a
    143:144:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):708 -> a
    145:152:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):709:716 -> a
    153:155:void synthesizeLambdaClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):395:397 -> a
    153:155:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):717 -> a
    156:157:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):719:720 -> a
    158:159:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):419:420 -> a
    158:159:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):720 -> a
    160:160:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):722:722 -> a
    161:162:void synthesizeTwrCloseResourceUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):428:429 -> a
    161:162:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):723 -> a
    163:164:void synthesizeJava8UtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):435:436 -> a
    163:164:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):724 -> a
    165:167:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):725:727 -> a
    168:169: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):905:906 -> a
    168:169:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):728 -> a
    170:170:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):730:730 -> a
    171:172:void generateDesugaredLibraryAPIWrappers(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):914:915 -> a
    171:172:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):731 -> a
    173:175:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):733:735 -> a
    176:194:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):734:752 -> a
    195:198:com.android.tools.r8.graph.DexType computeOutlineClassType():956:959 -> a
    195:198:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):752 -> a
    199:199:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    199:199:com.android.tools.r8.graph.DexType computeOutlineClassType():959 -> a
    199:199:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):752 -> a
    200:200:com.android.tools.r8.graph.DexType computeOutlineClassType():961:961 -> a
    200:200:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):752 -> a
    201:256:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):752:807 -> a
    257:264:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):801:808 -> a
    265:265:void lambda$optimize$6(com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.ir.conversion.MethodProcessor,java.util.function.BiConsumer,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate):664:664 -> a
    266:266:void lambda$optimize$6(com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.ir.conversion.MethodProcessor,java.util.function.BiConsumer,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate):660:660 -> a
    267:268:void lambda$optimize$8(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):749:750 -> a
    269:272:void waveStart(java.util.Collection):812:815 -> a
    273:273:void addWaveDoneAction(com.android.tools.r8.utils.Action):826:826 -> a
    274:274:boolean isInWave():836:836 -> a
    274:274:void addWaveDoneAction(com.android.tools.r8.utils.Action):829 -> a
    275:275:void addWaveDoneAction(com.android.tools.r8.utils.Action):832:832 -> a
    276:276:void addWaveDoneAction(com.android.tools.r8.utils.Action):830:830 -> a
    277:277:void addWaveDoneAction(com.android.tools.r8.utils.Action):827:827 -> a
    278:278:void computeReachabilitySensitivity(com.android.tools.r8.graph.DexApplication):840:840 -> a
    279:284:void forEachSelectedOutliningMethod(java.util.concurrent.ExecutorService,java.util.function.BiConsumer):850:855 -> a
    285:303:void forEachSelectedOutliningMethod(java.util.concurrent.ExecutorService,java.util.function.BiConsumer):854:872 -> a
    304:315:java.lang.Object lambda$forEachSelectedOutliningMethod$13(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):857:868 -> a
    316:319:void forEachSynthesizedServiceLoaderMethod(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexClass):877:880 -> a
    320:331:void forEachSynthesizedServiceLoaderMethod(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexClass):879:890 -> a
    332:332:void clearDexMethodCompilationState(com.android.tools.r8.graph.DexProgramClass):924:924 -> a
    333:342:void replaceCodeForTesting(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):937:946 -> a
    343:343:java.lang.String logCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexEncodedMethod):1025:1025 -> a
    343:343:void replaceCodeForTesting(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):946 -> a
    344:344:void replaceCodeForTesting(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):946:946 -> a
    345:345:void replaceCodeForTesting(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):945:945 -> a
    346:349:void optimizeSynthesizedClass(com.android.tools.r8.graph.DexProgramClass,java.util.concurrent.ExecutorService):968:971 -> a
    350:355:void optimizeSynthesizedClasses(java.util.Collection,java.util.concurrent.ExecutorService):977:982 -> a
    356:361:void optimizeSynthesizedMethod(com.android.tools.r8.graph.DexEncodedMethod):986:991 -> a
    362:362:com.android.tools.r8.ir.conversion.CallSiteInformation com.android.tools.r8.ir.conversion.CallSiteInformation.empty():27:27 -> a
    362:362:void optimizeSynthesizedMethod(com.android.tools.r8.graph.DexEncodedMethod):992 -> a
    363:363:void optimizeSynthesizedMethod(com.android.tools.r8.graph.DexEncodedMethod):992:992 -> a
    364:364:void optimizeSynthesizedMethod(com.android.tools.r8.graph.DexEncodedMethod):988:988 -> a
    365:367:void optimizeSynthesizedMethodsConcurrently(java.util.Collection,java.util.concurrent.ExecutorService,java.util.List):1009:1011 -> a
    368:368:void optimizeSynthesizedMethodsConcurrently(java.util.Collection,java.util.concurrent.ExecutorService,java.util.List):1010:1010 -> a
    369:369:java.lang.Object lambda$optimizeSynthesizedMethodsConcurrently$15(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection):1013:1013 -> a
    370:370:com.android.tools.r8.ir.conversion.CallSiteInformation com.android.tools.r8.ir.conversion.CallSiteInformation.empty():27:27 -> a
    370:370:java.lang.Object lambda$optimizeSynthesizedMethodsConcurrently$15(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection):1017 -> a
    371:371:java.lang.Object lambda$optimizeSynthesizedMethodsConcurrently$15(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection):1017:1017 -> a
    372:372:java.lang.Object lambda$optimizeSynthesizedMethodsConcurrently$15(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection):1013:1013 -> a
    373:379:void processMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer):1034:1040 -> a
    380:382:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1082:1084 -> a
    383:388:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1083:1088 -> a
    389:389:java.lang.String logCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexEncodedMethod):1025:1025 -> a
    389:389:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1088 -> a
    390:390:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1088:1088 -> a
    391:404:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1087:1100 -> a
    405:410:void printC1VisualizerHeader(com.android.tools.r8.graph.DexEncodedMethod):1731:1736 -> a
    405:410:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1103 -> a
    411:417:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1104:1110 -> a
    418:418:boolean com.android.tools.r8.utils.InternalOptions.canHaveArtStringNewInitBug():1286:1286 -> a
    418:418:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1110 -> a
    419:433:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1111:1125 -> a
    434:434:boolean com.android.tools.r8.utils.InternalOptions$TestingOptions.desugarLambdasThroughLensCodeRewriter():984:984 -> a
    434:434:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1125 -> a
    435:454:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1126:1145 -> a
    455:455:void finalizeEmptyThrowingCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1484:1484 -> a
    455:455:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1146 -> a
    456:456:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    456:456:void finalizeEmptyThrowingCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1484 -> a
    456:456:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1146 -> a
    457:459:void finalizeEmptyThrowingCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1484:1486 -> a
    457:459:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1146 -> a
    460:460:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    460:460:void finalizeEmptyThrowingCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1486 -> a
    460:460:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1146 -> a
    461:464:void finalizeEmptyThrowingCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1487:1490 -> a
    461:464:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1146 -> a
    465:479:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1154:1168 -> a
    480:480:void com.android.tools.r8.naming.IdentifierNameStringMarker.decoupleIdentifierNameStringsInMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):90:90 -> a
    480:480:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1169 -> a
    481:585:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1170:1274 -> a
    586:588:void invertConditionalsForTesting(com.android.tools.r8.ir.code.IRCode):1045:1047 -> a
    586:588:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1275 -> a
    589:597:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1278:1286 -> a
    598:616:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1285:1303 -> a
    617:617:boolean com.android.tools.r8.utils.InternalOptions$TestingOptions.desugarLambdasThroughLensCodeRewriter():984:984 -> a
    617:617:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1303 -> a
    618:641:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1304:1327 -> a
    642:712:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1319:1389 -> a
    713:713:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    713:713:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1389 -> a
    714:724:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1390:1400 -> a
    725:730:boolean com.android.tools.r8.utils.InternalOptions.methodMatchesLogArgumentsFilter(com.android.tools.r8.graph.DexEncodedMethod):894:899 -> a
    725:730:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1400 -> a
    731:779:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1401:1449 -> a
    780:780:boolean com.android.tools.r8.utils.InternalOptions.canHaveNumberConversionRegisterAllocationBug():1294:1294 -> a
    780:780:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1449 -> a
    781:797:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1450:1466 -> a
    798:803:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer,com.android.tools.r8.origin.Origin):1465:1470 -> a
    804:804:void lambda$rewriteCodeInternal$16(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteShrinker):1202:1202 -> a
    805:805:com.android.tools.r8.ir.optimize.InliningOracle lambda$rewriteCodeInternal$17(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation):1329:1329 -> a
    806:807:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1474:1475 -> a
    808:808:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    808:808:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1475 -> a
    809:813:void finalizeToCf(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1494:1498 -> a
    809:813:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1476 -> a
    814:814:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1478:1478 -> a
    815:818:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1503:1506 -> a
    815:818:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1479 -> a
    819:823:void updateHighestSortingStrings(com.android.tools.r8.graph.DexEncodedMethod):1530:1534 -> a
    819:823:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1507 -> a
    819:823:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1479 -> a
    824:826:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1508:1510 -> a
    824:826:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1479 -> a
    827:827:java.lang.String logCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexEncodedMethod):1025:1025 -> a
    827:827:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1510 -> a
    827:827:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1479 -> a
    828:828:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1510:1510 -> a
    828:828:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1479 -> a
    829:833:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1509:1513 -> a
    829:833:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1479 -> a
    834:834:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1616:1616 -> a
    835:835:boolean com.android.tools.r8.utils.InternalOptions.canHaveDex2OatLinkedListBug():1270:1270 -> a
    835:835:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1616 -> a
    836:847:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1619:1630 -> a
    848:850:boolean isLongMul(com.android.tools.r8.ir.code.Instruction):1676:1678 -> a
    848:850:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1631 -> a
    851:851:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1634:1634 -> a
    852:853:boolean isLongAddOrSub(com.android.tools.r8.ir.code.Instruction):1683:1684 -> a
    852:853:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1635 -> a
    854:855:boolean isFallthoughTarget(com.android.tools.r8.ir.code.BasicBlock):1688:1689 -> a
    854:855:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1638 -> a
    856:857:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1641:1642 -> a
    858:862:boolean isAliasOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):1662:1666 -> a
    858:862:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1643 -> a
    863:868:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1644:1649 -> a
    869:880: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):1698:1709 -> a
    869:880:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1650 -> a
    881:882:com.android.tools.r8.graph.DexMethod lambda$materializeInstructionBeforeLongOperationsWorkaround$19(com.android.tools.r8.graph.DexItemFactory):1624:1625 -> a
    883:883:com.android.tools.r8.graph.DexMethod lambda$materializeInstructionBeforeLongOperationsWorkaround$19(com.android.tools.r8.graph.DexItemFactory):1623:1623 -> a
    884:884:boolean isNotPseudoInstruction(com.android.tools.r8.ir.code.Instruction):1671:1671 -> a
    885:885:java.lang.String printMethod(com.android.tools.r8.ir.code.IRCode,java.lang.String,java.lang.String):1747:1747 -> a
    886:886:void com.android.tools.r8.utils.CfgPrinter.resetUnusedValue():24:24 -> a
    886:886:java.lang.String printMethod(com.android.tools.r8.ir.code.IRCode,java.lang.String,java.lang.String):1748 -> a
    887:904:java.lang.String printMethod(com.android.tools.r8.ir.code.IRCode,java.lang.String,java.lang.String):1749:1766 -> a
    1:6:void updateMainDexListWithSynthesizedClassMap(com.android.tools.r8.graph.DexApplication$Builder):484:489 -> b
    7:18:void updateMainDexListWithSynthesizedClassMap(com.android.tools.r8.graph.DexApplication$Builder):487:498 -> b
    19:28:void convertMethods(com.android.tools.r8.graph.DexProgramClass):549:558 -> b
    29:57:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):568:596 -> b
    58:58:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> b
    58:58:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):596 -> b
    59:59:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> b
    59:59:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> b
    59:59:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> b
    59:59:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):596 -> b
    60:64:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):596:600 -> b
    65:65:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> b
    65:65:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):600 -> b
    66:72:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):600:606 -> b
    73:73:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):603:603 -> b
    74:74:com.android.tools.r8.ir.conversion.CallSiteInformation com.android.tools.r8.ir.conversion.CallSiteInformation.empty():27:27 -> b
    74:74:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):603 -> b
    75:80:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):603:608 -> b
    81:81:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> b
    81:81:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):608 -> b
    82:86:void updateHighestSortingStrings(com.android.tools.r8.graph.DexEncodedMethod):1530:1534 -> b
    82:86:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):609 -> b
    87:89:void lambda$optimize$9(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):758:760 -> b
    90:90:boolean isInWave():836:836 -> b
    91:93:void optimizeSynthesizedMethodsConcurrently(java.util.Collection,java.util.concurrent.ExecutorService):1000:1002 -> b
    94:102:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer):1058:1066 -> b
    103:103:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer):1064:1064 -> b
    104:109:void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1519:1524 -> b
    110:114:void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1522:1526 -> b
    115:115:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1565:1565 -> b
    116:116:boolean com.android.tools.r8.utils.InternalOptions.canHaveForwardingInitInliningBug():1307:1307 -> b
    116:116:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1565 -> b
    117:133:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1569:1585 -> b
    134:137:void ensureInstructionBefore(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):1715:1718 -> b
    134:137:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1596 -> b
    138:138:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> b
    138:138:void ensureInstructionBefore(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):1718 -> b
    138:138:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1596 -> b
    139:147:void ensureInstructionBefore(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):1719:1727 -> b
    139:147:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1596 -> b
    148:152:boolean lambda$workaroundForwardingInitializerBug$18(com.android.tools.r8.ir.code.Instruction):1587:1591 -> b
    153:154:void printPhase(java.lang.String):1741:1742 -> b
    1:20:void updateSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):511:530 -> c
    21:27:void updateSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):529:535 -> c
    28:41:com.android.tools.r8.graph.DexAnnotationSet com.android.tools.r8.graph.DexAnnotationSet.getWithAddedOrReplaced(com.android.tools.r8.graph.DexAnnotation):129:142 -> c
    28:41:void updateSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):535 -> c
    42:42:void updateSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):535:535 -> c
    43:47:com.android.tools.r8.graph.DexApplication optimize():616:620 -> c
    48:49:void lambda$computeReachabilitySensitivity$12(com.android.tools.r8.graph.DexProgramClass):841:842 -> c
    50:50:void lambda$computeReachabilitySensitivity$11(com.android.tools.r8.graph.DexEncodedMethod):842:842 -> c
    51:56:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1542:1547 -> c
    57:57:boolean com.android.tools.r8.utils.InternalOptions.canHaveExceptionTargetingLoopHeaderBug():1319:1319 -> c
    57:57:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1547 -> c
    58:58:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1548:1548 -> c
    59:71:void com.android.tools.r8.ir.optimize.CodeRewriter.workaroundExceptionTargetingLoopHeaderBug(com.android.tools.r8.ir.code.IRCode):3712:3724 -> c
    59:71:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1548 -> c
    72:72:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> c
    72:72:void com.android.tools.r8.ir.optimize.CodeRewriter.workaroundExceptionTargetingLoopHeaderBug(com.android.tools.r8.ir.code.IRCode):3725 -> c
    72:72:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1548 -> c
    73:74:void com.android.tools.r8.ir.optimize.CodeRewriter.workaroundExceptionTargetingLoopHeaderBug(com.android.tools.r8.ir.code.IRCode):3725:3726 -> c
    73:74:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1548 -> c
    75:75:void com.android.tools.r8.ir.optimize.CodeRewriter.workaroundExceptionTargetingLoopHeaderBug(com.android.tools.r8.ir.code.IRCode):3712:3712 -> c
    75:75:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1548 -> c
    76:85:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1550:1559 -> c
    86:86:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1558:1558 -> c
    boolean lambda$convertMethod$5(com.android.tools.r8.graph.DexEncodedMethod) -> d
    1:1:void lambda$convertClasses$3(com.android.tools.r8.graph.DexProgramClass):543:543 -> d
    2:2:void clearDexMethodCompilationState():920:920 -> d
    1:7:boolean enableTryWithResourcesDesugaring():370:376 -> e
    8:8:com.android.tools.r8.graph.DexType lambda$updateMainDexListWithSynthesizedClassMap$1(com.android.tools.r8.graph.DexProgramClass):488:488 -> e
    9:13:java.lang.Object lambda$forEachSynthesizedServiceLoaderMethod$14(com.android.tools.r8.graph.DexEncodedMethod):882:886 -> e
    1:1:boolean enableTwrCloseResourceDesugaring():366:366 -> f
    2:2:com.android.tools.r8.graph.DexType lambda$updateSynthesizedClassMapping$2(com.android.tools.r8.graph.DexProgramClass):527:527 -> f
    3:3:void lambda$waveStart$10(com.android.tools.r8.graph.DexEncodedMethod):815:815 -> f
    1:2:boolean removeLambdaDeserializationMethods():380:381 -> g
    1:3:void waveDone():820:822 -> h
com.android.tools.r8.ir.conversion.LensCodeRewriter -> com.android.tools.r8.ir.conversion.L:
    java.util.Map protoFixupCache -> b
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.desugar.LambdaRewriter lambdaRewriter -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():75:75 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.LambdaRewriter):82:82 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.LambdaRewriter):79:84 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$000(com.android.tools.r8.ir.conversion.LensCodeRewriter):75:75 -> 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):75:75 -> 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):88:92 -> a
    8:18:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):99:109 -> a
    19:39:boolean unlinkDeadCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):484:504 -> a
    19:39:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):111 -> a
    40:58:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):114:132 -> a
    59:59:boolean com.android.tools.r8.utils.InternalOptions$TestingOptions.desugarLambdasThroughLensCodeRewriter():984:984 -> a
    59:59:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):132 -> a
    60:63:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):133:136 -> a
    64:104:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):135:175 -> a
    105:138:void checkInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeDirect):439:472 -> a
    105:138:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):175 -> a
    139:139:void checkInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeDirect):463:463 -> a
    139:139:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):175 -> a
    140:140:void checkInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeDirect):462:462 -> a
    140:140:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):175 -> a
    141:148:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):177:184 -> a
    149:152: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):621:624 -> a
    149:152:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):183 -> a
    153:153:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):163:163 -> a
    153:153: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):624 -> a
    153:153:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):183 -> a
    154:172: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):626:644 -> a
    154:172:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):183 -> a
    173:173:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    173:173: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):644 -> a
    173:173:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):183 -> a
    174:180: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):646:652 -> a
    174:180:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):183 -> a
    181:198:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):186:203 -> a
    199:215:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):202:218 -> a
    216:243:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):213:240 -> a
    244:244:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):239:239 -> a
    245:245: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
    245:245:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):243 -> a
    246:283:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):244:281 -> a
    284:293:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):280:289 -> a
    294:309:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):288:303 -> a
    310:326:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):302:318 -> a
    327:349:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):317:339 -> a
    350:360:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):338:348 -> a
    361:367:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):347:353 -> a
    368:374:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):352:358 -> a
    375:381:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):357:363 -> a
    382:389:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):362:369 -> a
    390:396:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):368:374 -> a
    397:429:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):373:405 -> a
    430:436: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):160:166 -> a
    437:437: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
    437:437: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):166 -> a
    438:438:boolean com.android.tools.r8.graph.DexMethodHandle.isMethodHandle():297:297 -> a
    438:438: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):547 -> a
    439:473: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):548:582 -> a
    474:474:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    474:474: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):582 -> a
    475:486: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):583:594 -> a
    487:487: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):348:348 -> a
    488:488:com.android.tools.r8.ir.code.Instruction lambda$rewrite$2(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):353:353 -> a
    489:489: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):358:358 -> a
    490:490: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):364:364 -> a
    491:491: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):369:369 -> a
    492:492: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):380:380 -> a
    493:496:com.android.tools.r8.graph.DexCallSite rewriteCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexEncodedMethod):409:412 -> a
    497:506:com.android.tools.r8.graph.DexCallSite rewriteCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexEncodedMethod):411:420 -> a
    507:511:java.util.List rewriteBootstrapArgs(java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):511:515 -> a
    507:511:com.android.tools.r8.graph.DexCallSite rewriteCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexEncodedMethod):420 -> a
    512:514: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):540:542 -> a
    512:514:java.util.List rewriteBootstrapArgs(java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):515 -> a
    512:514:com.android.tools.r8.graph.DexCallSite rewriteCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexEncodedMethod):420 -> a
    515:531:java.util.List rewriteBootstrapArgs(java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):516:532 -> a
    515:531:com.android.tools.r8.graph.DexCallSite rewriteCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexEncodedMethod):420 -> a
    532:535:com.android.tools.r8.graph.DexCallSite rewriteCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexEncodedMethod):421:424 -> a
    536:541:com.android.tools.r8.graph.DexValue$DexValueMethodType rewriteDexMethodType(com.android.tools.r8.graph.DexValue$DexValueMethodType):601:606 -> a
    542:542:boolean canInvokeTargetWithInvokeVirtual(com.android.tools.r8.graph.DexEncodedMethod):656:656 -> a
    543:549:boolean hasAccessToInvokeTargetFromContext(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):660:666 -> a
    550:550:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    550:550:boolean hasAccessToInvokeTargetFromContext(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):666 -> a
    551:551:boolean com.android.tools.r8.graph.DexType.isSamePackage(com.android.tools.r8.graph.DexType):85:85 -> a
    551:551:boolean hasAccessToInvokeTargetFromContext(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):671 -> a
    552:555:boolean hasAccessToInvokeTargetFromContext(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):674:677 -> 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):375:375 -> b
com.android.tools.r8.ir.conversion.LensCodeRewriter$InstructionReplacer -> com.android.tools.r8.ir.conversion.K:
    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>():680:680 -> <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):688:692 -> <init>
    1:14:void replaceInstructionIfTypeChanged(com.android.tools.r8.graph.DexType,java.util.function.BiFunction):697:710 -> a
    15:15:void replaceInstructionIfTypeChanged(com.android.tools.r8.graph.DexType,java.util.function.BiFunction):707:707 -> a
com.android.tools.r8.ir.conversion.MethodOptimizationFeedback -> com.android.tools.r8.ir.conversion.M:
    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 methodReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,int) -> a
    void methodReturnsConstantNumber(com.android.tools.r8.graph.DexEncodedMethod,long) -> a
    void methodReturnsConstantString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexString) -> a
    void methodReturnsObjectOfType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement) -> a
    void methodReturnsObjectWithLowerBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement) -> a
    void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility) -> 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 setTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer) -> a
    void markCheckNullReceiverBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> b
    void setInitializerEnablingJavaAssertions(com.android.tools.r8.graph.DexEncodedMethod) -> b
    void setNonNullParamOnNormalExits(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> b
    void methodMayNotHaveSideEffects(com.android.tools.r8.graph.DexEncodedMethod) -> c
    void markInlinedIntoSingleCallSite(com.android.tools.r8.graph.DexEncodedMethod) -> d
    void methodReturnValueOnlyDependsOnArguments(com.android.tools.r8.graph.DexEncodedMethod) -> e
    void markUseIdentifierNameString(com.android.tools.r8.graph.DexEncodedMethod) -> f
    void methodNeverReturnsNull(com.android.tools.r8.graph.DexEncodedMethod) -> g
    void markForceInline(com.android.tools.r8.graph.DexEncodedMethod) -> h
    void classInitializerMayBePostponed(com.android.tools.r8.graph.DexEncodedMethod) -> i
    void markMethodCannotBeKept(com.android.tools.r8.graph.DexEncodedMethod) -> j
com.android.tools.r8.ir.conversion.MethodProcessor -> com.android.tools.r8.ir.conversion.MethodProcessor:
    java.util.Deque waves -> b
    com.android.tools.r8.ir.conversion.CallSiteInformation callSiteInformation -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():30:30 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallGraph):35:37 -> <init>
    1:1:com.android.tools.r8.ir.conversion.CallSiteInformation getCallSiteInformation():41:41 -> a
    2: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):46:69 -> a
    26:30:void lambda$createWaves$1(java.util.Set,com.android.tools.r8.ir.conversion.CallSiteInformation,com.android.tools.r8.ir.conversion.CallGraph,java.util.Set,com.android.tools.r8.ir.conversion.CallGraph$Node):56:60 -> a
    31:31:void lambda$createWaves$0(java.util.Set,com.android.tools.r8.ir.conversion.CallGraph$Node):61:61 -> a
    32:39:void forEachMethod(com.android.tools.r8.utils.ThrowingBiConsumer,java.util.function.Consumer,com.android.tools.r8.utils.Action,java.util.concurrent.ExecutorService):106:113 -> a
    40:48:void forEachMethod(com.android.tools.r8.utils.ThrowingBiConsumer,java.util.function.Consumer,com.android.tools.r8.utils.Action,java.util.concurrent.ExecutorService):112:120 -> a
    49:49:java.lang.Object lambda$forEachMethod$2(com.android.tools.r8.utils.ThrowingBiConsumer,com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection):115:115 -> a
    1:11:void extractLeaves(java.util.Set,java.util.function.Consumer):81:91 -> extractLeaves
com.android.tools.r8.ir.conversion.PartialCallGraphBuilder -> com.android.tools.r8.ir.conversion.PartialCallGraphBuilder:
    java.util.Set seeds -> e
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():17:17 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.AppView,java.util.Set):21:23 -> <init>
    1:4:void process(java.util.concurrent.ExecutorService):28:31 -> a
    5:12:void process(java.util.concurrent.ExecutorService):30:37 -> a
    13:14:boolean verifyAllMethodsWithCodeExists():49:50 -> a
    1:1:java.lang.Object lambda$process$0(com.android.tools.r8.graph.DexEncodedMethod):33:33 -> b
    1:1:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):17:17 -> build
    1:3:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):41:43 -> c
    4:4:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):42:42 -> c
com.android.tools.r8.ir.conversion.PostMethodProcessor -> com.android.tools.r8.ir.conversion.PostMethodProcessor:
    1:11:void extractRoots(java.util.Set,java.util.function.Consumer):21:31 -> extractRoots
com.android.tools.r8.ir.conversion.SourceCode -> com.android.tools.r8.ir.conversion.N:
    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.X:
    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.O:
com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping -> com.android.tools.r8.ir.conversion.Q:
    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.P:
    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.T:
    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):282:282 -> a
    30:30: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.S:
    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.V:
    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.U:
    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:30:com.android.tools.r8.ir.code.BasicBlock com.android.tools.r8.ir.code.BasicBlock.startOfGotoChain():1461:1463 -> b
    28:30: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
    31:31: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
    32:32:com.android.tools.r8.ir.code.BasicBlock com.android.tools.r8.ir.code.BasicBlock.startOfGotoChain():0:0 -> b
    32:32: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
com.android.tools.r8.ir.conversion.StringSwitchConverter$Utils -> com.android.tools.r8.ir.conversion.W:
    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.Y:
    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):1012:1012 -> 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:52: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:109 -> a
    53:53:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> a
    53: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):110 -> a
    54:75: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
    76:88: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
    89:90:void com.android.tools.r8.ir.code.Goto.<init>(com.android.tools.r8.ir.code.BasicBlock):21:22 -> a
    89:90: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
    91:91:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):282:282 -> a
    91: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:104: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.a0:
    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.Z:
    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.b0:
    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>():52:52 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRBuilder):58:58 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRBuilder):56:60 -> <init>
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint constraintForType(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):65:65 -> a
    2:24:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):69:91 -> a
    25:25:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):89:89 -> a
    26:26:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):87:87 -> a
    27:27:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):85:85 -> a
    28:28:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):83:83 -> a
    29:29:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):81:81 -> a
    30:30:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):79:79 -> a
    31:31:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):77:77 -> a
    32:32:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):71:71 -> a
    33:59:java.util.List resolveRoundOne(com.android.tools.r8.ir.code.IRCode):111:137 -> a
    33:59:void resolve(java.util.List,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):101 -> a
    60:60:void resolve(java.util.List,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):104:104 -> a
    61:75:void resolveRoundTwo(com.android.tools.r8.ir.code.IRCode,java.util.List,java.util.List):145:159 -> a
    61:75:void resolve(java.util.List,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):107 -> a
    76:78:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> a
    76:78:void resolveRoundTwo(com.android.tools.r8.ir.code.IRCode,java.util.List,java.util.List):154 -> a
    76:78:void resolve(java.util.List,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):107 -> a
    79:83:java.util.ArrayList constrainValues(boolean,java.util.List):166:170 -> a
    84:98: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):178:192 -> a
    99:99:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):196:196 -> a
    100:102:void link(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):252:254 -> a
    100:102:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):196 -> a
    103:103:com.android.tools.r8.ir.code.ValueTypeConstraint constraintForType(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):65:65 -> a
    103:103:void link(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):255 -> a
    103:103:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):196 -> a
    104:104:void link(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):256:256 -> a
    104:104:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):196 -> a
    105:105:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    105:105:void link(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):256 -> a
    105:105:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):196 -> a
    106:121:void link(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):256:271 -> a
    106:121:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):196 -> a
    122:132:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):200:210 -> a
    133:133:boolean verifyNoConstrainedUses(com.android.tools.r8.ir.code.Value):218:218 -> a
    133:133:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):210 -> a
    134:134:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):211:211 -> a
    135:138:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):204:207 -> a
    139:139:boolean verifyNoConstrainedUses(com.android.tools.r8.ir.code.Value):218:218 -> a
    139:139:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):207 -> a
    140:140:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):208:208 -> a
    141:153:boolean verifyNoConstrainedUses(com.android.tools.r8.ir.code.Value,java.util.Set):222:234 -> a
    154:161:boolean verifyNoConstrainedUses(com.android.tools.r8.ir.code.Value,java.util.Set):232:239 -> a
    162:162:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isDefinitelyNull():330:330 -> a
    162:162:boolean verifyNoConstrainedUses(com.android.tools.r8.ir.code.Value,java.util.Set):239 -> a
    163:165:boolean verifyNoConstrainedUses(com.android.tools.r8.ir.code.Value,java.util.Set):239:241 -> a
    166:168:com.android.tools.r8.ir.code.Value canonical(com.android.tools.r8.ir.code.Value):279:281 -> a
com.android.tools.r8.ir.desugar.AccessorMethodSourceCode -> com.android.tools.r8.w.c.a:
    boolean $assertionsDisabled -> o
    1:1:void <clinit>():21:21 -> <clinit>
    1:6:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.Position):24:29 -> <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():72 -> 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):117 -> a
    2:13:com.android.tools.r8.ir.code.Invoke$Type inferInvokeType():72:83 -> 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):117 -> a
    14:14:com.android.tools.r8.ir.code.Invoke$Type inferInvokeType():81:81 -> 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):117 -> a
    15:15:com.android.tools.r8.ir.code.Invoke$Type inferInvokeType():79:79 -> 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):117 -> a
    16:18:com.android.tools.r8.ir.code.Invoke$Type inferInvokeType():74:76 -> 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):117 -> 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):117:117 -> 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):116:116 -> a
    21:21:void lambda$prepareInstructions$0(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder):100:100 -> a
    22:22:void lambda$prepareInstructions$2(java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):129:129 -> a
    1:1:void lambda$prepareInstructions$3(int,com.android.tools.r8.ir.conversion.IRBuilder):133:133 -> b
    1:1:void lambda$prepareInstructions$4(int,com.android.tools.r8.ir.conversion.IRBuilder):134:134 -> 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():89 -> h
    2:26:void prepareInstructions():89:113 -> 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():113 -> h
    28:49:void prepareInstructions():113:134 -> 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():33 -> l
    2:12:boolean checkSignatures():33:43 -> 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():43 -> l
    14:24:boolean checkSignatures():43:53 -> 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():68 -> m
    2:2:boolean delegatingToConstructor():68:68 -> m
com.android.tools.r8.ir.desugar.BackportedMethodRewriter -> com.android.tools.r8.w.c.b:
    com.android.tools.r8.graph.DexItemFactory factory -> c
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set holders -> e
    com.android.tools.r8.ir.desugar.BackportedMethodRewriter$RewritableMethods rewritableMethods -> d
    boolean $assertionsDisabled -> g
    java.util.Map methodProviders -> f
    com.android.tools.r8.ir.conversion.IRConverter converter -> b
    1:1:void <clinit>():57:57 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):70:70 -> <init>
    2:9:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):67:74 -> <init>
    1:7:java.util.List generateListOfBackportedMethods(com.android.tools.r8.utils.AndroidApiLevel):78:84 -> a
    8:8:void desugar(com.android.tools.r8.ir.code.IRCode):89:89 -> a
    9:9:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> a
    9:9:void desugar(com.android.tools.r8.ir.code.IRCode):93 -> a
    10:24:void desugar(com.android.tools.r8.ir.code.IRCode):94:108 -> a
    25:25:com.android.tools.r8.graph.DexEncodedMethod quickLookUp(com.android.tools.r8.graph.DexMethod):146:146 -> a
    25:25:void desugar(com.android.tools.r8.ir.code.IRCode):108 -> a
    26:26:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    26:26:com.android.tools.r8.graph.DexEncodedMethod quickLookUp(com.android.tools.r8.graph.DexMethod):146 -> a
    26:26:void desugar(com.android.tools.r8.ir.code.IRCode):108 -> a
    27:33:com.android.tools.r8.graph.DexEncodedMethod quickLookUp(com.android.tools.r8.graph.DexMethod):150:156 -> a
    27:33:void desugar(com.android.tools.r8.ir.code.IRCode):108 -> a
    34:34:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    34:34:com.android.tools.r8.graph.DexEncodedMethod quickLookUp(com.android.tools.r8.graph.DexMethod):156 -> a
    34:34:void desugar(com.android.tools.r8.ir.code.IRCode):108 -> a
    35:35:com.android.tools.r8.graph.DexEncodedMethod quickLookUp(com.android.tools.r8.graph.DexMethod):160:160 -> a
    35:35:void desugar(com.android.tools.r8.ir.code.IRCode):108 -> a
    36:62:void desugar(com.android.tools.r8.ir.code.IRCode):112:138 -> a
    63:63:boolean hasRewrittenMethodPrefix(com.android.tools.r8.graph.DexType):178:178 -> a
    64:70:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):183:189 -> a
    71:71:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    71:71:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):189 -> a
    72:72:java.util.Collection findSynthesizedFrom(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexType):169:169 -> a
    72:72:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):191 -> a
    73:73:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():671:671 -> a
    73:73:java.util.Collection findSynthesizedFrom(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexType):170 -> a
    73:73:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):191 -> a
    74:74:java.util.Collection findSynthesizedFrom(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexType):171:171 -> a
    74:74:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):191 -> a
    75:95:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):192:212 -> a
    96:96:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    96:96:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):212 -> a
    97:127:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):215:245 -> a
    128:128:boolean lambda$synthesizeUtilityClasses$0(com.android.tools.r8.graph.DexProgramClass):241:241 -> a
    129:147:com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodProvider getMethodProviderOrNull(com.android.tools.r8.graph.DexMethod):250:268 -> a
com.android.tools.r8.ir.desugar.BackportedMethodRewriter$InvokeRewriter -> com.android.tools.r8.w.c.b$a:
    com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodInvokeRewriter rewriter -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():1320:1320 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodInvokeRewriter):1325:1326 -> <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):1332:1333 -> a
    3:3:com.android.tools.r8.graph.DexMethod provideMethod(com.android.tools.r8.graph.AppView):1343:1343 -> a
    4:4:com.android.tools.r8.graph.Code generateTemplateMethod(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1348:1348 -> a
com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodGenerator -> com.android.tools.r8.w.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):1359:1359 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.desugar.BackportedMethodRewriter$TemplateMethodFactory,java.lang.String):1363:1365 -> <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):1371:1372 -> a
    3: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):1371:1371 -> a
    4:11:com.android.tools.r8.graph.DexMethod provideMethod(com.android.tools.r8.graph.AppView):1377:1384 -> a
    12:12:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():314:314 -> a
    12:12:com.android.tools.r8.graph.DexMethod provideMethod(com.android.tools.r8.graph.AppView):1384 -> a
    13:24:com.android.tools.r8.graph.DexMethod provideMethod(com.android.tools.r8.graph.AppView):1385:1396 -> a
    25:25:com.android.tools.r8.graph.Code generateTemplateMethod(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1402:1402 -> a
com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodInvokeRewriter -> com.android.tools.r8.w.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) -> a
com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodProvider -> com.android.tools.r8.w.c.b$d:
    com.android.tools.r8.graph.DexMethod method -> a
    1:2:void <init>(com.android.tools.r8.graph.DexMethod):1264:1265 -> <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) -> a
com.android.tools.r8.ir.desugar.BackportedMethodRewriter$RetargetCoreLibraryMethodProvider -> com.android.tools.r8.w.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):1285:1287 -> <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):1293:1294 -> a
    3: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):1293:1293 -> a
    4:10:com.android.tools.r8.graph.DexMethod provideMethod(com.android.tools.r8.graph.AppView):1299:1305 -> a
    11:11:com.android.tools.r8.graph.Code generateTemplateMethod(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1311:1311 -> a
com.android.tools.r8.ir.desugar.BackportedMethodRewriter$RewritableMethods -> com.android.tools.r8.w.c.b$f:
    java.util.Map rewritable -> a
    java.util.Map virtualRewrites -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():271:271 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.AppView):280:280 -> <init>
    2:35:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.AppView):274:307 -> <init>
    1:1:boolean isEmpty():325:325 -> a
    2:2:void visit(java.util.function.Consumer):329:329 -> a
    3:132:void initializeAndroidKMethodProviders(com.android.tools.r8.graph.DexItemFactory):334:463 -> a
    133:133:com.android.tools.r8.graph.Code lambda$initializeJava9MethodProviders$0(int,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1078:1078 -> a
    134:136:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1213:1215 -> a
    137:137:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    137:137:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1216 -> a
    138:143:void warnMissingRetargetCoreLibraryMember(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):1203:1208 -> a
    138:143:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1218 -> a
    144:144:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1220:1220 -> a
    145:151:java.util.List findDexEncodedMethodsWithName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexClass):1240:1246 -> a
    145:151:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1221 -> a
    152:161:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1222:1231 -> a
    162:162:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1229:1229 -> a
    163:164:void addProvider(com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodProvider):1251:1252 -> a
    165:165:com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodProvider getProvider(com.android.tools.r8.graph.DexMethod):1256:1256 -> a
    1:6:boolean matchesVirtualRewrite(com.android.tools.r8.graph.DexMethod):312:317 -> b
    7:345:void initializeAndroidNMethodProviders(com.android.tools.r8.graph.DexItemFactory):469:807 -> b
    346:346:com.android.tools.r8.graph.Code lambda$initializeJava9MethodProviders$1(int,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1100:1100 -> 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$initializeJava9MethodProviders$2(int,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1121 -> 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$initializeJava9MethodProviders$2(int,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1121 -> 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$initializeJava9MethodProviders$2(int,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1121 -> 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$initializeJava9MethodProviders$2(int,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1121 -> c
    61:218:void initializeAndroidOMethodProviders(com.android.tools.r8.graph.DexItemFactory):814:971 -> c
    1:7:void initializeJava11MethodProviders(com.android.tools.r8.graph.DexItemFactory):1138:1144 -> d
    1:98:void initializeJava9MethodProviders(com.android.tools.r8.graph.DexItemFactory):978:1075 -> e
    99:124:void initializeJava9MethodProviders(com.android.tools.r8.graph.DexItemFactory):1072:1097 -> e
    125:149:void initializeJava9MethodProviders(com.android.tools.r8.graph.DexItemFactory):1094:1118 -> e
    150:168:void initializeJava9MethodProviders(com.android.tools.r8.graph.DexItemFactory):1115:1133 -> e
    1:47:void initializeOptionalMethodProviders(com.android.tools.r8.graph.DexItemFactory):1151:1197 -> f
com.android.tools.r8.ir.desugar.BackportedMethodRewriter$StatifyingMethodGenerator -> com.android.tools.r8.w.c.b$g:
    boolean $assertionsDisabled -> f
    com.android.tools.r8.graph.DexType receiverType -> e
    1:1:void <clinit>():1414:1414 -> <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):1420:1421 -> <init>
    1:8:com.android.tools.r8.graph.DexMethod provideMethod(com.android.tools.r8.graph.AppView):1426:1433 -> a
com.android.tools.r8.ir.desugar.BackportedMethodRewriter$TemplateMethodFactory -> com.android.tools.r8.w.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.w.c.c:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set processedClasses -> d
    com.android.tools.r8.ir.desugar.InterfaceMethodRewriter rewriter -> c
    boolean $assertionsDisabled -> f
    java.util.Map createdMethods -> e
    1:1:void <clinit>():30:30 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter):40:40 -> <init>
    2:9:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter):36:43 -> <init>
    1:1:java.util.Set getForwardMethods():47:47 -> a
    2:21:void process(com.android.tools.r8.graph.DexClass):51:70 -> a
    22:22:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    22:22:void process(com.android.tools.r8.graph.DexClass):70 -> a
    23:28:void process(com.android.tools.r8.graph.DexClass):71:76 -> a
    29:30:void process(com.android.tools.r8.graph.DexClass):73:74 -> a
    31:31:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    31:31:void process(com.android.tools.r8.graph.DexClass):74 -> 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 process(com.android.tools.r8.graph.DexClass):74 -> a
    33:46:void process(com.android.tools.r8.graph.DexClass):74:87 -> a
    47:91:java.util.List collectMethodsToImplement(com.android.tools.r8.graph.DexClass,boolean):162:206 -> a
    47:91:void process(com.android.tools.r8.graph.DexClass):97 -> a
    92:92:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    92:92:java.util.List collectMethodsToImplement(com.android.tools.r8.graph.DexClass,boolean):206 -> a
    92:92:void process(com.android.tools.r8.graph.DexClass):97 -> a
    93:107:java.util.List collectMethodsToImplement(com.android.tools.r8.graph.DexClass,boolean):209:223 -> a
    93:107:void process(com.android.tools.r8.graph.DexClass):97 -> a
    108:108:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    108:108:java.util.List collectMethodsToImplement(com.android.tools.r8.graph.DexClass,boolean):223 -> a
    108:108:void process(com.android.tools.r8.graph.DexClass):97 -> 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.List collectMethodsToImplement(com.android.tools.r8.graph.DexClass,boolean):223 -> a
    109:109:void process(com.android.tools.r8.graph.DexClass):97 -> a
    110:158:java.util.List collectMethodsToImplement(com.android.tools.r8.graph.DexClass,boolean):223:271 -> a
    110:158:void process(com.android.tools.r8.graph.DexClass):97 -> a
    159:159:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    159:159:java.util.List collectMethodsToImplement(com.android.tools.r8.graph.DexClass,boolean):271 -> a
    159:159:void process(com.android.tools.r8.graph.DexClass):97 -> a
    160:167:java.util.List collectMethodsToImplement(com.android.tools.r8.graph.DexClass,boolean):273:280 -> a
    160:167:void process(com.android.tools.r8.graph.DexClass):97 -> a
    168:180:void process(com.android.tools.r8.graph.DexClass):98:110 -> a
    181:182:com.android.tools.r8.graph.DexEncodedMethod addForwardingMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):114:115 -> a
    183:183:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    183:183:com.android.tools.r8.graph.DexEncodedMethod addForwardingMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):115 -> a
    184:188:com.android.tools.r8.graph.DexEncodedMethod addForwardingMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):118:122 -> a
    189:196:com.android.tools.r8.graph.DexMethod retargetMethod(com.android.tools.r8.graph.DexMethod):146:153 -> a
    189:196:com.android.tools.r8.graph.DexEncodedMethod addForwardingMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):123 -> a
    197:197:com.android.tools.r8.graph.DexMethod retargetMethod(com.android.tools.r8.graph.DexMethod):151:151 -> a
    197:197:com.android.tools.r8.graph.DexEncodedMethod addForwardingMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):123 -> a
    198:209:com.android.tools.r8.graph.DexEncodedMethod addForwardingMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):126:137 -> a
    210:214:void hideCandidates(java.util.List,java.util.List,java.util.List):290:294 -> a
    215:215:boolean com.android.tools.r8.graph.DexMethod.match(com.android.tools.r8.graph.DexEncodedMethod):157:157 -> a
    215:215:void hideCandidates(java.util.List,java.util.List,java.util.List):294 -> a
    216:229:void hideCandidates(java.util.List,java.util.List,java.util.List):296:309 -> a
    230:230:boolean com.android.tools.r8.graph.DexMethod.match(com.android.tools.r8.graph.DexEncodedMethod):157:157 -> a
    230:230:void hideCandidates(java.util.List,java.util.List,java.util.List):294 -> a
com.android.tools.r8.ir.desugar.CovariantReturnTypeAnnotationTransformer -> com.android.tools.r8.w.c.d:
    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):182:185 -> 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):257:258 -> 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():671:671 -> 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:45:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):87:99 -> a
    46:47:boolean methodHasCovariantReturnTypeAnnotation(com.android.tools.r8.graph.DexEncodedMethod):118:119 -> a
    48: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):146:169 -> a
    72:72:boolean lambda$buildCovariantReturnTypeMethod$1(com.android.tools.r8.graph.DexAnnotation):165:165 -> a
    73:88:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):197:212 -> a
    89:93:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):204:208 -> a
    94: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:205 -> a
    95:95:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> 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):205 -> a
    96:122:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):205:231 -> a
    123:127:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):219:223 -> a
    128: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:220 -> a
    129:129:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> 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):220 -> a
    130:149:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):220:239 -> a
    150:150:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():671:671 -> a
    150:150:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):243 -> 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):243:243 -> 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):240:240 -> a
    153:153:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> 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):240 -> 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):240:240 -> a
    155:155:boolean isCovariantReturnTypeAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):248:248 -> a
    156:156:boolean isCovariantReturnTypeAnnotation(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):252:252 -> a
    156:156:boolean isCovariantReturnTypeAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):248 -> a
    157:157:boolean isCovariantReturnTypeAnnotation(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):252:252 -> 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.w.c.e:
    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):168:168 -> 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):163:163 -> 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):38:38 -> 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):158:158 -> 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):145 -> 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):146 -> a
    70:70:void desugarNestBasedAccess(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.IRConverter):147:147 -> 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):148 -> a
    76:79:void optimizeDeferredBridgesConcurrently(java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.IRConverter):135:138 -> a
    76:79:void desugarNestBasedAccess(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.IRConverter):148 -> a
    80:82:void optimizeDeferredBridgesConcurrently(java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.IRConverter):137:139 -> a
    80:82:void desugarNestBasedAccess(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.IRConverter):148 -> a
    83:86:void addDeferredBridges(java.util.Collection):123:126 -> a
    87:87:boolean shouldProcessClassInNest(com.android.tools.r8.graph.DexClass,java.util.List):154:154 -> a
    88:88:void reportMissingNestHost(com.android.tools.r8.graph.DexClass):159:159 -> a
    89:89:void reportIncompleteNest(java.util.List):164:164 -> a
com.android.tools.r8.ir.desugar.DefaultMethodsHelper -> com.android.tools.r8.w.c.g:
    java.util.Set candidates -> a
    java.util.Set hidden -> b
    1:5:void <init>():19:23 -> <init>
    1:2:void merge(com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection):62:63 -> a
    3:5:void hideMatches(com.android.tools.r8.graph.DexMethod):67:69 -> a
    6:6:boolean com.android.tools.r8.graph.DexMethod.match(com.android.tools.r8.graph.DexEncodedMethod):157:157 -> a
    6:6:void hideMatches(com.android.tools.r8.graph.DexMethod):70 -> a
    7:8:void hideMatches(com.android.tools.r8.graph.DexMethod):71:72 -> a
    9:9:boolean com.android.tools.r8.graph.DexMethod.match(com.android.tools.r8.graph.DexEncodedMethod):157:157 -> a
    9:9:void hideMatches(com.android.tools.r8.graph.DexMethod):70 -> a
    10:10:void addDefaultMethod(com.android.tools.r8.graph.DexEncodedMethod):78:78 -> a
    11:38:java.util.List createCandidatesList():83:110 -> a
    39:39:boolean com.android.tools.r8.graph.DexMethod.match(com.android.tools.r8.graph.DexEncodedMethod):157:157 -> a
    39:39:java.util.List createCandidatesList():110 -> a
    40:40:java.util.List createCandidatesList():112:112 -> a
    41:41:boolean com.android.tools.r8.graph.DexMethod.match(com.android.tools.r8.graph.DexEncodedMethod):157:157 -> a
    41:41:java.util.List createCandidatesList():110 -> a
    42:42:java.util.List createCandidatesList():116:116 -> a
    1:8:java.util.List createFullList():123:130 -> b
    1:3:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection wrapInCollection():136:138 -> c
com.android.tools.r8.ir.desugar.DefaultMethodsHelper$1 -> com.android.tools.r8.w.c.f:
com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection -> com.android.tools.r8.w.c.g$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>():31:32 -> <clinit>
    1:1:void <init>(java.util.List,java.util.List,com.android.tools.r8.ir.desugar.DefaultMethodsHelper$1):30:30 -> <init>
    2:4:void <init>(java.util.List,java.util.List):39:41 -> <init>
    1:1:java.util.List access$000(com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection):30:30 -> a
    2:4:com.android.tools.r8.graph.DexMethod getSingleCandidate(com.android.tools.r8.graph.DexMethod):48:50 -> a
    1:1:java.util.List access$100(com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection):30:30 -> b
com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter -> com.android.tools.r8.w.c.h:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Map callBackMethods -> d
    com.android.tools.r8.ir.desugar.DesugaredLibraryWrapperSynthesizer wrapperSynthesizor -> c
    java.util.Set trackedCallBackAPIs -> e
    java.util.Set trackedAPIs -> f
    boolean $assertionsDisabled -> g
    1:1:void <clinit>():60:60 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):71:71 -> <init>
    2:15:void <init>(com.android.tools.r8.graph.AppView):67:80 -> <init>
    1:1:void desugar(com.android.tools.r8.ir.code.IRCode):86:86 -> a
    2:9:void generateCallBackIfNeeded(com.android.tools.r8.ir.code.IRCode):129:136 -> a
    2:9:void desugar(com.android.tools.r8.ir.code.IRCode):90 -> a
    10:10:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    10:10:void generateCallBackIfNeeded(com.android.tools.r8.ir.code.IRCode):136 -> a
    10:10:void desugar(com.android.tools.r8.ir.code.IRCode):90 -> a
    11:15:void generateCallBackIfNeeded(com.android.tools.r8.ir.code.IRCode):140:144 -> a
    11:15:void desugar(com.android.tools.r8.ir.code.IRCode):90 -> a
    16:37:void generateCallBack(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):183:204 -> a
    16:37:void generateCallBackIfNeeded(com.android.tools.r8.ir.code.IRCode):144 -> a
    16:37:void desugar(com.android.tools.r8.ir.code.IRCode):90 -> a
    38:39:void addCallBackSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):209:210 -> a
    38:39:void generateCallBack(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):205 -> a
    38:39:void generateCallBackIfNeeded(com.android.tools.r8.ir.code.IRCode):144 -> a
    38:39:void desugar(com.android.tools.r8.ir.code.IRCode):90 -> a
    40:56:void desugar(com.android.tools.r8.ir.code.IRCode):92:108 -> a
    57:57:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    57:57:void desugar(com.android.tools.r8.ir.code.IRCode):108 -> a
    58:63:void desugar(com.android.tools.r8.ir.code.IRCode):109:114 -> a
    64:78: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):289:303 -> a
    64:78:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    79:80: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):420:421 -> a
    79:80: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):306 -> a
    79:80:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    81:81: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):444:444 -> a
    81:81: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):421 -> a
    81:81: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):306 -> a
    81:81:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    82:82:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> a
    82:82: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):444 -> a
    82:82: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):421 -> a
    82: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):306 -> a
    82:82:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    83:85: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):422:424 -> a
    83:85: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):306 -> a
    83:85:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    86:109: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):309:332 -> a
    86:109:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    110:113: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):411:414 -> a
    110:113: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):334 -> a
    110:113:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    114:114: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):444:444 -> a
    114:114: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):414 -> a
    114:114: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):334 -> a
    114:114:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    115:115:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> a
    115:115: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):444 -> a
    115:115: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):414 -> a
    115: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):334 -> a
    115:115:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    116:116: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):415:415 -> a
    116:116: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):334 -> a
    116:116:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    117:138: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):333:354 -> a
    117:138:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    139:139: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
    139:139: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):350 -> a
    139:139:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    140:141: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):356:357 -> a
    140:141:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    142:162: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):356:376 -> a
    142:162:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    163:172:boolean overridesLibraryMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):150:159 -> a
    173:173:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    173:173:boolean overridesLibraryMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):159 -> a
    174:184:boolean overridesLibraryMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):163:173 -> a
    185:199: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):215:229 -> a
    200:208:void generateWrappers(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):235:243 -> a
    209:215:void generateTrackDesugaredAPIWarnings(java.util.Set,java.lang.String):248:254 -> a
    216:220:void warnInvalidInvoke(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,java.lang.String):258:262 -> a
    221:223:com.android.tools.r8.graph.DexType vivifiedTypeFor(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):278:280 -> a
    224:241:void splitIfCatchHandlers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,java.util.ListIterator):385:402 -> a
    242:252: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):430:440 -> a
    253:253: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):439:439 -> a
    254:255:boolean canConvert(com.android.tools.r8.graph.DexType):448:449 -> a
com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration -> com.android.tools.r8.w.c.i:
    java.util.Map rewritePrefix -> c
    java.util.Map emulateLibraryInterface -> d
    java.util.List dontRewriteInvocation -> h
    java.util.Map retargetCoreLibMember -> e
    boolean libraryCompilation -> b
    java.util.Map backportCoreLibraryMember -> f
    java.util.Map customConversions -> g
    com.android.tools.r8.utils.AndroidApiLevel requiredCompilationAPILevel -> a
    1:9:void <init>(com.android.tools.r8.utils.AndroidApiLevel,boolean,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.List):59:67 -> <init>
    1:1:com.android.tools.r8.ir.desugar.PrefixRewritingMapper createPrefixRewritingMapper(com.android.tools.r8.graph.DexItemFactory):71:71 -> a
    2:2:com.android.tools.r8.ir.desugar.PrefixRewritingMapper com.android.tools.r8.ir.desugar.PrefixRewritingMapper.empty():22:22 -> a
    2:2:com.android.tools.r8.ir.desugar.PrefixRewritingMapper createPrefixRewritingMapper(com.android.tools.r8.graph.DexItemFactory):72 -> a
    3:3:com.android.tools.r8.ir.desugar.PrefixRewritingMapper createPrefixRewritingMapper(com.android.tools.r8.graph.DexItemFactory):73:73 -> a
    4:4:java.util.Map getBackportCoreLibraryMember():97:97 -> a
    1:1:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder builder(com.android.tools.r8.graph.DexItemFactory):36:36 -> b
    2:2:java.util.Map getCustomConversions():101:101 -> b
    1:1:java.util.List getDontRewriteInvocation():105:105 -> c
    1:1:java.util.Map getEmulateLibraryInterface():89:89 -> d
    1:1:com.android.tools.r8.utils.AndroidApiLevel getRequiredCompilationApiLevel():77:77 -> e
    1:1:java.util.Map getRetargetCoreLibMember():93:93 -> f
    1:1:java.util.Map getRewritePrefix():85:85 -> g
    1:1:boolean isLibraryCompilation():81:81 -> h
    1:9:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration empty():40:48 -> i
com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder -> com.android.tools.r8.w.c.i$a:
    java.util.Map rewritePrefix -> d
    boolean $assertionsDisabled -> j
    java.util.List dontRewriteInvocation -> i
    com.android.tools.r8.utils.AndroidApiLevel requiredCompilationAPILevel -> b
    java.util.Map emulateLibraryInterface -> e
    java.util.Map retargetCoreLibMember -> f
    boolean libraryCompilation -> c
    java.util.Map backportCoreLibraryMember -> g
    com.android.tools.r8.graph.DexItemFactory factory -> a
    java.util.Map customConversions -> h
    1:1:void <clinit>():108:108 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory):121:121 -> <init>
    2:11:void <init>(com.android.tools.r8.graph.DexItemFactory):113:122 -> <init>
    1:1:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder setRequiredCompilationAPILevel(com.android.tools.r8.utils.AndroidApiLevel):126:126 -> a
    2:6:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder addDontRewriteInvocation(java.lang.String):180:184 -> a
    7:7:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder addDontRewriteInvocation(java.lang.String):181:181 -> a
    8:8:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):198:198 -> a
    8:8:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putBackportCoreLibraryMember(java.lang.String,java.lang.String):173 -> a
    9:9:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):198:198 -> a
    9:9:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putBackportCoreLibraryMember(java.lang.String,java.lang.String):174 -> a
    10:10:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putBackportCoreLibraryMember(java.lang.String,java.lang.String):175:175 -> a
    11:19:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration build():202:210 -> a
    1:1:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder setLibraryCompilation():136:136 -> b
    2:2:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):198:198 -> b
    2:2:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putCustomConversion(java.lang.String,java.lang.String):154 -> b
    3:3:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):198:198 -> b
    3:3:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putCustomConversion(java.lang.String,java.lang.String):155 -> b
    4:4:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putCustomConversion(java.lang.String,java.lang.String):156:156 -> b
    5:5:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):198:198 -> b
    1:1:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder setProgramCompilation():131:131 -> c
    2:2:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):198:198 -> c
    2:2:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putEmulateLibraryInterface(java.lang.String,java.lang.String):147 -> c
    3:3:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):198:198 -> c
    3:3:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putEmulateLibraryInterface(java.lang.String,java.lang.String):148 -> c
    4:4:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putEmulateLibraryInterface(java.lang.String,java.lang.String):149:149 -> c
    1:5:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putRetargetCoreLibMember(java.lang.String,java.lang.String):161:165 -> d
    6:6:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):198:198 -> d
    6:6:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putRetargetCoreLibMember(java.lang.String,java.lang.String):166 -> d
    7:8:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putRetargetCoreLibMember(java.lang.String,java.lang.String):167:168 -> d
    1:1:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putRewritePrefix(java.lang.String,java.lang.String):141:141 -> e
    1:3:int sharpIndex(java.lang.String,java.lang.String):189:191 -> 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):191 -> 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):191 -> f
    6:6:int sharpIndex(java.lang.String,java.lang.String):191:191 -> f
com.android.tools.r8.ir.desugar.DesugaredLibraryConfigurationParser -> com.android.tools.r8.w.c.j:
    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):31:39 -> <init>
    1:19:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):46:64 -> a
    20:32:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):63:75 -> a
    33:37:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):81:85 -> a
    33:37:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):75 -> a
    38:46:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):84:92 -> a
    38:46:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):75 -> a
    47:55:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):91:99 -> a
    47:55:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):75 -> a
    56:70:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):98:112 -> a
    56:70:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):75 -> a
    71:76:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):111:116 -> a
    71:76:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):75 -> a
    77:77:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonArray():46:46 -> a
    77:77:com.android.tools.r8.com.google.gson.JsonArray com.android.tools.r8.com.google.gson.JsonElement.getAsJsonArray():103 -> a
    77:77:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):116 -> a
    77:77:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):75 -> a
    78:78:com.android.tools.r8.com.google.gson.JsonArray com.android.tools.r8.com.google.gson.JsonElement.getAsJsonArray():104:104 -> a
    78:78:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):116 -> a
    78:78:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):75 -> a
    79:80:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):117:118 -> a
    79:80:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):75 -> a
    81:81:com.android.tools.r8.com.google.gson.JsonArray com.android.tools.r8.com.google.gson.JsonElement.getAsJsonArray():106:106 -> a
    81:81:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):116 -> a
    81:81:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):75 -> a
    82:82:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonArray():46:46 -> a
    82:82:com.android.tools.r8.com.google.gson.JsonArray com.android.tools.r8.com.google.gson.JsonElement.getAsJsonArray():103 -> a
    82:82:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):116 -> a
    82:82:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):75 -> a
    83:83:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):77:77 -> a
    84:84:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):56:56 -> a
    85:87:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> a
    85:87:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):56 -> a
    88:88:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):48:48 -> a
    89:91:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> a
    89:91:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):48 -> a
com.android.tools.r8.ir.desugar.DesugaredLibraryWrapperSynthesizer -> com.android.tools.r8.w.c.k:
    java.util.Map typeWrappers -> b
    java.util.Map vivifiedTypeWrappers -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.graph.DexItemFactory factory -> f
    java.util.Set invalidWrappers -> d
    java.util.Set generatedWrappers -> e
    boolean $assertionsDisabled -> h
    com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter converter -> g
    1:1:void <clinit>():95:95 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter):116:116 -> <init>
    2:18:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter):103:119 -> <init>
    1:1:boolean canGenerateWrapper(com.android.tools.r8.graph.DexType):135:135 -> a
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    2:2:boolean canGenerateWrapper(com.android.tools.r8.graph.DexType):135 -> a
    3:3:boolean canGenerateWrapper(com.android.tools.r8.graph.DexType):139:139 -> a
    4:17:com.android.tools.r8.graph.DexType getWrapper(com.android.tools.r8.graph.DexType,java.lang.String,java.util.Map,java.util.function.BiFunction):170:183 -> a
    18:18:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    18:18:com.android.tools.r8.graph.DexType getWrapper(com.android.tools.r8.graph.DexType,java.lang.String,java.util.Map,java.util.function.BiFunction):183 -> a
    19:30:com.android.tools.r8.graph.DexType getWrapper(com.android.tools.r8.graph.DexType,java.lang.String,java.util.Map,java.util.function.BiFunction):185:196 -> a
    31:32:com.android.tools.r8.graph.DexType getWrapper(com.android.tools.r8.graph.DexType,java.lang.String,java.util.Map,java.util.function.BiFunction):187:188 -> a
    33:35:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> a
    33:35:com.android.tools.r8.graph.DexType getWrapper(com.android.tools.r8.graph.DexType,java.lang.String,java.util.Map,java.util.function.BiFunction):190 -> a
    36:36:com.android.tools.r8.graph.DexType getWrapper(com.android.tools.r8.graph.DexType,java.lang.String,java.util.Map,java.util.function.BiFunction):198:198 -> a
    37:37:com.android.tools.r8.utils.Pair lambda$getWrapper$0(com.android.tools.r8.utils.Box,com.android.tools.r8.graph.DexType,java.lang.String,com.android.tools.r8.graph.DexType):176:176 -> a
    38:40:com.android.tools.r8.graph.DexType createWrapperType(com.android.tools.r8.graph.DexType,java.lang.String):155:157 -> a
    38:40:com.android.tools.r8.utils.Pair lambda$getWrapper$0(com.android.tools.r8.utils.Box,com.android.tools.r8.graph.DexType,java.lang.String,com.android.tools.r8.graph.DexType):177 -> a
    41:41:com.android.tools.r8.graph.DexType createWrapperType(com.android.tools.r8.graph.DexType,java.lang.String):156:156 -> a
    41:41:com.android.tools.r8.utils.Pair lambda$getWrapper$0(com.android.tools.r8.utils.Box,com.android.tools.r8.graph.DexType,java.lang.String,com.android.tools.r8.graph.DexType):177 -> a
    42:42:com.android.tools.r8.graph.DexType createWrapperType(com.android.tools.r8.graph.DexType,java.lang.String):155:155 -> a
    42:42:com.android.tools.r8.utils.Pair lambda$getWrapper$0(com.android.tools.r8.utils.Box,com.android.tools.r8.graph.DexType,java.lang.String,com.android.tools.r8.graph.DexType):177 -> a
    43:44:com.android.tools.r8.utils.Pair lambda$getWrapper$0(com.android.tools.r8.utils.Box,com.android.tools.r8.graph.DexType,java.lang.String,com.android.tools.r8.graph.DexType):178:179 -> a
    45:45:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):206:206 -> a
    46:50:com.android.tools.r8.graph.DexEncodedField synthesizeWrappedValueField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):434:438 -> a
    46:50:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):207 -> a
    51:51:com.android.tools.r8.graph.DexType vivifiedTypeFor(com.android.tools.r8.graph.DexType):202:202 -> a
    51:51:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):209 -> a
    52:52:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):211:211 -> a
    53:67:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedField):306:320 -> a
    53:67:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):211 -> a
    68:68:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    68:68:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedField):320 -> a
    68:68:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):211 -> a
    69:71:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedField):321:323 -> a
    69:71:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):211 -> a
    72:72:boolean com.android.tools.r8.graph.DexEncodedMethod.isFinal():252:252 -> a
    72:72:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedField):326 -> a
    72:72:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):211 -> a
    73:88:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedField):327:342 -> a
    73:88:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):211 -> a
    89:94:com.android.tools.r8.graph.DexEncodedMethod[] finalizeWrapperMethods(java.util.List,java.util.Set):349:354 -> a
    89:94:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedField):344 -> a
    89:94:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):211 -> a
    95:95:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):208:208 -> a
    96:113: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.DexEncodedField):232:249 -> a
    114:117:com.android.tools.r8.graph.DexEncodedMethod synthesizeConstructor(com.android.tools.r8.graph.DexField):442:445 -> a
    114:117: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.DexEncodedField):253 -> a
    118:126:com.android.tools.r8.graph.DexEncodedMethod synthesizeConstructor(com.android.tools.r8.graph.DexField):443:451 -> a
    118:126: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.DexEncodedField):253 -> a
    127:132:com.android.tools.r8.graph.DexEncodedMethod newSynthesizedMethod(com.android.tools.r8.graph.DexMethod,int,boolean,com.android.tools.r8.graph.Code):456:461 -> a
    127:132:com.android.tools.r8.graph.DexEncodedMethod synthesizeConstructor(com.android.tools.r8.graph.DexField):447 -> a
    127:132: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.DexEncodedField):253 -> a
    133:137: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.DexEncodedField):253:257 -> a
    138:138:java.lang.String lambda$reportFinalMethodsInWrapper$1(com.android.tools.r8.graph.DexMethod):359:359 -> a
    139:139:java.lang.String[] lambda$reportFinalMethodsInWrapper$2(int):359:359 -> a
    140:149:void reportFinalMethodsInWrapper(java.util.Set):359:368 -> a
    150:150:void reportFinalMethodsInWrapper(java.util.Set):363:363 -> a
    151:159: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):374:382 -> a
    160:182:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexLibraryClass):387:409 -> a
    183:183:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    183:183:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexLibraryClass):409 -> a
    184:188:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexLibraryClass):410:414 -> a
    189:189:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    189:189:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexLibraryClass):414 -> a
    190:199:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexLibraryClass):415:424 -> a
    200:202:void finalizeWrappers(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):473:475 -> a
    203:203:void finalizeWrappers(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,java.util.Map,java.util.function.BiConsumer):490:490 -> a
    204:208:boolean verifyAllClassesGenerated():501:505 -> a
    204:208:void finalizeWrappers(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,java.util.Map,java.util.function.BiConsumer):490 -> a
    209:212:void finalizeWrappers(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,java.util.Map,java.util.function.BiConsumer):491:494 -> a
    213:214:void registerSynthesizedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexApplication$Builder):512:513 -> a
    213:214:void finalizeWrappers(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,java.util.Map,java.util.function.BiConsumer):495 -> a
    215:215:void finalizeWrappers(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,java.util.Map,java.util.function.BiConsumer):496:496 -> a
    216:218:void generateTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):517:519 -> a
    219:219:com.android.tools.r8.graph.DexType vivifiedTypeFor(com.android.tools.r8.graph.DexType):202:202 -> a
    219:219:void generateTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):524 -> a
    220:220:void generateTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):525:525 -> a
    221:221:void generateTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):520:520 -> a
    222:222:void generateTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):519:519 -> a
    223:225: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.DexClass):545:547 -> a
    226:250: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.DexClass):546:570 -> a
    251:256:com.android.tools.r8.graph.DexEncodedMethod newSynthesizedMethod(com.android.tools.r8.graph.DexMethod,int,boolean,com.android.tools.r8.graph.Code):456:461 -> a
    251:256: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.DexClass):572 -> a
    1:1:com.android.tools.r8.graph.DexType getTypeWrapper(com.android.tools.r8.graph.DexType):143:143 -> b
    2:2:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):217:217 -> b
    3:3:com.android.tools.r8.graph.DexType vivifiedTypeFor(com.android.tools.r8.graph.DexType):202:202 -> b
    3:3:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):219 -> b
    4:8:com.android.tools.r8.graph.DexEncodedField synthesizeWrappedValueField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):434:438 -> b
    4:8:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):219 -> b
    9:9:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):223:223 -> b
    10:23:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForVivifiedTypeWrapper(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedField):262:275 -> b
    10:23:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):223 -> b
    24:24:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> b
    24:24:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForVivifiedTypeWrapper(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedField):275 -> b
    24:24:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):223 -> b
    25:27:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForVivifiedTypeWrapper(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedField):276:278 -> b
    25:27:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):223 -> b
    28:28:boolean com.android.tools.r8.graph.DexEncodedMethod.isFinal():252:252 -> b
    28:28:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForVivifiedTypeWrapper(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedField):283 -> b
    28:28:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):223 -> b
    29:44:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForVivifiedTypeWrapper(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedField):284:299 -> b
    29:44:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):223 -> b
    45:50:com.android.tools.r8.graph.DexEncodedMethod[] finalizeWrapperMethods(java.util.List,java.util.Set):349:354 -> b
    45:50:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForVivifiedTypeWrapper(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedField):301 -> b
    45:50:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):223 -> b
    51:51:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):220:220 -> b
    52:53:void generateVivifiedTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):529:530 -> b
    54:54:com.android.tools.r8.graph.DexType vivifiedTypeFor(com.android.tools.r8.graph.DexType):202:202 -> b
    54:54:void generateVivifiedTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):534 -> b
    55:55:void generateVivifiedTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):536:536 -> b
    56:56:void generateVivifiedTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):531:531 -> b
    57:57:void generateVivifiedTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):530:530 -> b
    1:1:com.android.tools.r8.graph.DexType getVivifiedTypeWrapper(com.android.tools.r8.graph.DexType):147:147 -> c
    1:1:boolean hasSynthesized(com.android.tools.r8.graph.DexType):127:127 -> d
    1:1:boolean isSynthesizedWrapper(com.android.tools.r8.graph.DexType):123:123 -> e
com.android.tools.r8.ir.desugar.InterfaceMethodRewriter -> com.android.tools.r8.w.c.l:
    java.util.concurrent.ConcurrentHashMap nearestEmulatedInterfaceCache -> g
    java.util.Set synthesizedMethods -> h
    com.android.tools.r8.graph.DexItemFactory factory -> d
    com.android.tools.r8.graph.AppView appView -> a
    java.util.concurrent.ConcurrentMap requiredDispatchClasses -> j
    boolean $assertionsDisabled -> k
    com.android.tools.r8.utils.InternalOptions options -> c
    java.util.Set emulatedMethods -> f
    java.util.Map cache -> i
    java.util.Map emulatedInterfaces -> e
    com.android.tools.r8.ir.conversion.IRConverter converter -> b
    1:1:void <clinit>():89:89 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):133:133 -> <init>
    2:39:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):102:139 -> <init>
    1:6:void initializeEmulatedInterfaceVariables():143:148 -> a
    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    7:7:void initializeEmulatedInterfaceVariables():148 -> a
    8:9:void initializeEmulatedInterfaceVariables():151:152 -> a
    10:10:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):159:159 -> a
    11:11:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType):783:783 -> a
    11:11:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):160 -> a
    12:14:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):160:162 -> a
    15:15:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):161:161 -> a
    16:23:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):159:166 -> a
    24:24:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):165:165 -> a
    25:25:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):163:163 -> a
    26:65:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):177:216 -> a
    66:66:boolean isNonDesugaredLibraryClass(com.android.tools.r8.graph.DexClass):524:524 -> a
    66:66:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):217 -> a
    67:71:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):228:232 -> a
    72:72:com.android.tools.r8.graph.DexMethod staticAsMethodOfDispatchClass(com.android.tools.r8.graph.DexMethod):826:826 -> a
    72:72:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):233 -> a
    73:73:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):234:234 -> a
    74:82:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):232:240 -> a
    83:83:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):821:821 -> a
    83:83:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):241 -> a
    84:84:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType):783:783 -> a
    84:84:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):821 -> a
    84:84:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):241 -> a
    85:85:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):821:821 -> a
    85:85:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):241 -> a
    86:86:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):242:242 -> a
    87:118:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):240:271 -> a
    119:120:com.android.tools.r8.graph.DexMethod amendDefaultMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):853:854 -> a
    119:120:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):270 -> a
    121:121:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):272:272 -> a
    122:122:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):865:865 -> a
    122:122:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):274 -> a
    123:123:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):861:861 -> a
    123:123:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):865 -> a
    123:123:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):274 -> a
    124:125:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):275:276 -> a
    126:144:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):272:290 -> a
    145:146:com.android.tools.r8.graph.DexMethod amendDefaultMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):853:854 -> a
    145:146:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):289 -> a
    147:147:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):291:291 -> a
    148:148:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):865:865 -> a
    148:148:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):292 -> a
    149:149:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):861:861 -> a
    149:149:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):865 -> a
    149:149:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):292 -> a
    150:150:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):293:293 -> a
    151:189:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):291:329 -> a
    190:190:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):865:865 -> a
    190:190:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):330 -> a
    191:191:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):861:861 -> a
    191:191:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):865 -> a
    191:191:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):330 -> a
    192:192:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):331:331 -> a
    193:202:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):329:338 -> a
    203:203:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):875:875 -> a
    203:203:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):339 -> a
    204:204:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):871:871 -> a
    204:204:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):875 -> a
    204:204:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):339 -> a
    205:205:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):340:340 -> a
    206:206:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):338:338 -> a
    207:209:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):312:314 -> a
    210:210:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    210:210:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    210:210:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):314 -> a
    211:249:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):314:352 -> a
    250:250:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    250:250:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):352 -> a
    251:251:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):362:362 -> a
    252:252:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():314:314 -> a
    252:252:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):362 -> a
    253:265:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):362:374 -> a
    266:266:java.util.Set lambda$rewriteMethodReferences$0(com.android.tools.r8.graph.DexLibraryClass):236:236 -> a
    267:267: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):386:386 -> a
    268:268:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    268:268: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):386 -> a
    269: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):386:387 -> a
    271:272:boolean dontRewrite(com.android.tools.r8.graph.DexMethod):537:538 -> a
    271:272: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):387 -> a
    273: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):388:388 -> a
    274:274:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():248:248 -> 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):388 -> 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):388:389 -> 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):629:631 -> 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):391 -> 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):628:628 -> 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):391 -> 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):392:393 -> 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):389:389 -> a
    284:284:boolean isMatchingEmulatedInterface(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):464:464 -> a
    285:285:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    285:285:boolean isMatchingEmulatedInterface(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):464 -> a
    286:287:boolean isMatchingEmulatedInterface(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):465:466 -> a
    288:288:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():248:248 -> a
    288:288:boolean isMatchingEmulatedInterface(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):468 -> a
    289:303:com.android.tools.r8.graph.DexType minimalInterfaceOf(java.util.Set):472:486 -> a
    304:304:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    304:304:com.android.tools.r8.graph.DexType minimalInterfaceOf(java.util.Set):486 -> a
    305:318:com.android.tools.r8.graph.DexType minimalInterfaceOf(java.util.Set):490:503 -> a
    319:319:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    319:319:com.android.tools.r8.graph.DexType minimalInterfaceOf(java.util.Set):503 -> a
    320:320:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    320:320:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    320:320:com.android.tools.r8.graph.DexType minimalInterfaceOf(java.util.Set):503 -> a
    321:335:com.android.tools.r8.graph.DexType minimalInterfaceOf(java.util.Set):503:517 -> a
    336:336:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    336:336:com.android.tools.r8.graph.DexType minimalInterfaceOf(java.util.Set):517 -> a
    337:337:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    337:337:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    337:337:com.android.tools.r8.graph.DexType minimalInterfaceOf(java.util.Set):517 -> a
    338:338:com.android.tools.r8.graph.DexType minimalInterfaceOf(java.util.Set):517:517 -> a
    339:339:boolean isInDesugaredLibrary(com.android.tools.r8.graph.DexClass):528:528 -> a
    340:340:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():314:314 -> a
    340:340:boolean isInDesugaredLibrary(com.android.tools.r8.graph.DexClass):528 -> a
    341:345:boolean isInDesugaredLibrary(com.android.tools.r8.graph.DexClass):528:532 -> a
    346:351:void processEmulatedInterfaceHierarchy(com.android.tools.r8.graph.DexType,java.util.Set,java.util.Map):587:592 -> a
    352:352:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    352:352:void processEmulatedInterfaceHierarchy(com.android.tools.r8.graph.DexType,java.util.Set,java.util.Map):592 -> a
    353:362:void processEmulatedInterfaceHierarchy(com.android.tools.r8.graph.DexType,java.util.Set,java.util.Map):594:603 -> a
    363:363:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    363:363:void processEmulatedInterfaceHierarchy(com.android.tools.r8.graph.DexType,java.util.Set,java.util.Map):603 -> a
    364:364:void processEmulatedInterfaceHierarchy(com.android.tools.r8.graph.DexType,java.util.Set,java.util.Map):605:605 -> a
    365:366:void reportStaticInterfaceMethodHandle(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethodHandle):755:756 -> a
    367:367:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    367:367:void reportStaticInterfaceMethodHandle(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethodHandle):756 -> a
    368:372:void reportStaticInterfaceMethodHandle(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethodHandle):760:764 -> a
    373:373:java.lang.String getCompanionClassDescriptor(java.lang.String):771:771 -> a
    374:377:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):776:779 -> a
    378:382:com.android.tools.r8.graph.DexType getDispatchClassType(com.android.tools.r8.graph.DexType):788:792 -> a
    383:392:com.android.tools.r8.graph.DexMethod instanceAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,java.lang.String,com.android.tools.r8.graph.DexItemFactory):837:846 -> a
    393:393:com.android.tools.r8.graph.DexMethod instanceAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,java.lang.String,com.android.tools.r8.graph.DexItemFactory):843:843 -> a
    394:394:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):861:861 -> a
    395:395:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):865:865 -> a
    396:396:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):861:861 -> a
    396:396:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):865 -> a
    397:399:com.android.tools.r8.graph.DexEncodedMethod[] renameHolder(java.util.List,com.android.tools.r8.graph.DexType):926:928 -> a
    400:400:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):964:964 -> a
    401:401:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():314:314 -> a
    401:401:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):964 -> a
    402:405:java.util.Map processEmulatedInterfaceHierarchy():575:578 -> a
    402:405:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):556 -> a
    402:405:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    406:407:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):557:558 -> a
    406:407:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    408:408:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    408:408:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):558 -> a
    408:408:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    409:413:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):560:564 -> a
    409:413:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    414:419:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):636:641 -> a
    414:419:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    414:419:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    420:426:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):640:646 -> a
    420:426:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    420:426:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    427:427:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType):783:783 -> a
    427:427:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):648 -> a
    427:427:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    427:427:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    428:428:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):648:648 -> a
    428:428:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    428:428:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    429:447:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):647:665 -> a
    429:447:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    429:447:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    448:448:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    448:448:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):665 -> a
    448:448:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    448:448:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    449:449:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):666:666 -> a
    449:449:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    449:449:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    450:456:boolean implementsInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):612:618 -> a
    450:456:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):666 -> a
    450:456:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    450:456:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    457:457:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    457:457:boolean implementsInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):618 -> a
    457:457:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):666 -> a
    457:457:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    457:457:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    458:458:boolean implementsInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):620:620 -> a
    458:458:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):666 -> a
    458:458:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    458:458:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    459:463:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):667:671 -> a
    459:463:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    459:463:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    464:466:com.android.tools.r8.graph.DexProto com.android.tools.r8.graph.DexItemFactory.protoWithDifferentFirstParameter(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexType):1284:1286 -> a
    464:466:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):672 -> a
    464:466:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    464:466:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    467:467:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):672:672 -> a
    467:467:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    467:467:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    468:468:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):670:670 -> a
    468:468:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    468:468:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    469:469:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):667:667 -> a
    469:469:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    469:469:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    470:470:com.android.tools.r8.graph.DexProto com.android.tools.r8.graph.DexItemFactory.protoWithDifferentFirstParameter(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexType):1284:1284 -> a
    470:470:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):672 -> a
    470:470:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    470:470:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    471:472:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):680:681 -> a
    471:472:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    471:472:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    473:473:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    473:473:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):681 -> a
    473:473:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    473:473:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    474:476:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):682:684 -> a
    474:476:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    474:476:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    477:477:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():248:248 -> a
    477:477:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):685 -> a
    477:477:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    477:477:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    478:478:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):686:686 -> a
    478:478:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    478:478:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    479:479:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType):783:783 -> a
    479:479:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):690 -> a
    479:479:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    479:479:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    480:480:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):690:690 -> a
    480:480:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    480:480:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    481:483:com.android.tools.r8.graph.DexProto com.android.tools.r8.graph.DexItemFactory.protoWithDifferentFirstParameter(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexType):1284:1286 -> a
    481:483:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):691 -> a
    481:483:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    481:483:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    484:484:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):691:691 -> a
    484:484:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    484:484:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    485:485:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):689:689 -> a
    485:485:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    485:485:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    486:486:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):686:686 -> a
    486:486:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    486:486:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    487:487:com.android.tools.r8.graph.DexProto com.android.tools.r8.graph.DexItemFactory.protoWithDifferentFirstParameter(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexType):1284:1284 -> a
    487:487:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):691 -> a
    487:487:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    487:487:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    488:488:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):697:697 -> a
    488:488:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    488:488:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    489:491: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):629:631 -> a
    489:491:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):699 -> a
    489:491:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    489:491:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    492:492: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):628:628 -> a
    492:492:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):699 -> a
    492:492:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    492:492:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    493:493:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):699:699 -> a
    493:493:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    493:493:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    494:494:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):698:698 -> a
    494:494:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    494:494:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    495:536:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):697:738 -> a
    495:536:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):563 -> a
    495:536:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    537:537:boolean isInMainDexList(com.android.tools.r8.graph.DexType):815:815 -> a
    537:537:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):566 -> a
    537:537:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    538:539:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):566:567 -> a
    538:539:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):965 -> a
    540:550:void duplicateEmulatedInterfaces():936:946 -> a
    540:550:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):967 -> a
    551:556:void duplicateEmulatedInterfaces():945:950 -> a
    551:556:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):967 -> a
    557:557:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):971:971 -> a
    558:559:java.util.Set processClasses(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor):1026:1027 -> a
    558:559:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):971 -> a
    560:561:boolean shouldProcess(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,boolean):1004:1005 -> a
    560:561:java.util.Set processClasses(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor):1028 -> a
    560:561:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):971 -> a
    562:565:java.util.Set processClasses(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor):1029:1032 -> a
    562:565:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):971 -> a
    566:572:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):971:977 -> a
    573:575:java.util.Map processInterfaces(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor):1009:1011 -> a
    573:575:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):978 -> a
    576:577:boolean shouldProcess(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,boolean):1004:1005 -> a
    576:577:java.util.Map processInterfaces(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor):1012 -> a
    576:577:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):978 -> a
    578:587:java.util.Map processInterfaces(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor):1013:1022 -> a
    578:587:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):978 -> a
    588:592:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):978:982 -> a
    593:593:boolean isInMainDexList(com.android.tools.r8.graph.DexType):815:815 -> a
    593:593:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):982 -> a
    594:598:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):982:986 -> a
    599:599:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():314:314 -> a
    599:599:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):986 -> a
    600:601:void renameEmulatedInterfaces():881:882 -> a
    600:601:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):987 -> a
    602:610:com.android.tools.r8.graph.DexType inferEmulatedInterfaceName(com.android.tools.r8.graph.DexClass):894:902 -> a
    602:610:void renameEmulatedInterfaces():883 -> a
    602:610:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):987 -> a
    611:614:com.android.tools.r8.graph.DexType inferEmulatedInterfaceName(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):913:916 -> a
    611:614:com.android.tools.r8.graph.DexType inferEmulatedInterfaceName(com.android.tools.r8.graph.DexClass):902 -> a
    611:614:void renameEmulatedInterfaces():883 -> a
    611:614:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):987 -> a
    615:615:com.android.tools.r8.graph.DexType inferEmulatedInterfaceName(com.android.tools.r8.graph.DexClass):904:904 -> a
    615:615:void renameEmulatedInterfaces():883 -> a
    615:615:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):987 -> a
    616:616:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    616:616:com.android.tools.r8.graph.DexType inferEmulatedInterfaceName(com.android.tools.r8.graph.DexClass):904 -> a
    616:616:void renameEmulatedInterfaces():883 -> a
    616:616:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):987 -> a
    617:617:com.android.tools.r8.graph.DexType inferEmulatedInterfaceName(com.android.tools.r8.graph.DexClass):906:906 -> a
    617:617:void renameEmulatedInterfaces():883 -> a
    617:617:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):987 -> a
    618:620:void renameEmulatedInterfaces():884:886 -> a
    618:620:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):987 -> a
    621:623:void renameEmulatedInterfaces(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):920:922 -> a
    621:623:void renameEmulatedInterfaces():887 -> a
    621:623:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):987 -> a
    624:624:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):990:990 -> a
    625:627:void clear():997:999 -> a
    625:627:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):993 -> a
    628:642:boolean isDefaultMethod(com.android.tools.r8.graph.DexEncodedMethod):1036:1050 -> a
    643:643:boolean isDefaultMethod(com.android.tools.r8.graph.DexEncodedMethod):1043:1043 -> a
    644:644:void warnMissingType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1067:1067 -> a
    645:645:boolean com.android.tools.r8.ir.desugar.PrefixRewritingMapper.hasRewrittenType(com.android.tools.r8.graph.DexType):30:30 -> a
    645:645:void warnMissingType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1067 -> a
    646:649:void warnMissingType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1070:1073 -> a
    650:650: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):1089:1089 -> a
    651:652: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):1102:1103 -> a
    651:652: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):1093 -> a
    653:653:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    653:653: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
    653:653: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):1093 -> a
    654:655:void warnMissingInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1059:1060 -> a
    654:655: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):1105 -> a
    654:655: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):1093 -> a
    656:658: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):1106:1108 -> a
    656:658: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):1093 -> a
    659:659:boolean isNonDesugaredLibraryClass(com.android.tools.r8.graph.DexClass):524:524 -> a
    659:659: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):1114 -> a
    659:659: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):1093 -> a
    660:666: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):1119:1125 -> a
    660:666: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):1093 -> a
    667:667:void reportDependencyEdge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppView):1150:1150 -> a
    667:667: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):1125 -> 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):1093 -> a
    668:668:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():667:667 -> a
    668:668:void reportDependencyEdge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppView):1152 -> a
    668:668: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):1125 -> a
    668:668: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):1093 -> a
    669:669:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():667:667 -> a
    669:669:void reportDependencyEdge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppView):1153 -> a
    669: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):1125 -> a
    669: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):1093 -> a
    670:670:void reportDependencyEdge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppView):1155:1155 -> 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):1125 -> 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):1093 -> a
    671:687: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):1129:1145 -> a
    671:687: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):1093 -> a
    688:688: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):1094:1094 -> a
    689:691: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:1111 -> a
    689:691: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):1093 -> a
    692:692:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    692:692: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):1111 -> a
    692:692: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):1093 -> a
    693:693: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):1111:1111 -> a
    693:693: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):1093 -> a
    694:694:void reportDependencyEdge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppView):1150:1150 -> a
    695:695:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():667:667 -> a
    695:695:void reportDependencyEdge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppView):1152 -> a
    696:696:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():667:667 -> a
    696:696:void reportDependencyEdge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppView):1153 -> a
    697:697:void reportDependencyEdge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppView):1155:1155 -> a
    1:1:boolean isEmulatedInterface(com.android.tools.r8.graph.DexType):171:171 -> b
    2:3:com.android.tools.r8.graph.DexType getEmulateLibraryInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):748:749 -> b
    4:4:java.lang.String getEmulateLibraryInterfaceClassDescriptor(java.lang.String):742:742 -> b
    4:4:com.android.tools.r8.graph.DexType getEmulateLibraryInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):750 -> b
    5:5:com.android.tools.r8.graph.DexType getEmulateLibraryInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):751:751 -> b
    6:6:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):875:875 -> b
    7:7:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):871:871 -> b
    7:7:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):875 -> b
    1:1:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):807:807 -> c
    2:2:boolean isCompanionClassType(com.android.tools.r8.graph.DexType):797:797 -> c
    2:2:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):807 -> c
    3:6:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):807:810 -> c
    7:9:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):809:811 -> c
    10:10:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):821:821 -> c
    11:11:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType):783:783 -> c
    11:11:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):821 -> c
    12:12:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):821:821 -> c
    13:13:boolean hasDispatchClassSuffix(com.android.tools.r8.graph.DexType):831:831 -> c
    1:1:boolean isCompanionClassType(com.android.tools.r8.graph.DexType):797:797 -> d
    2:3:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):1077:1078 -> d
    4:4:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType):802:802 -> d
    4:4:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):1079 -> d
    5:5:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):1081:1081 -> d
    6:6:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> d
    6:6:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):1081 -> d
    7:7:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):1082:1082 -> d
    8:8:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():667:667 -> d
    8:8:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):1082 -> d
    1:3:com.android.tools.r8.graph.DexType nearestEmulatedInterfaceImplementingWithCache(com.android.tools.r8.graph.DexMethod):398:400 -> e
    4:15:com.android.tools.r8.graph.DexType nearestEmulatedInterfaceImplementing(com.android.tools.r8.graph.DexMethod):416:427 -> e
    4:15:com.android.tools.r8.graph.DexType nearestEmulatedInterfaceImplementingWithCache(com.android.tools.r8.graph.DexMethod):406 -> e
    16:16:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> e
    16:16:com.android.tools.r8.graph.DexType nearestEmulatedInterfaceImplementing(com.android.tools.r8.graph.DexMethod):427 -> e
    16:16:com.android.tools.r8.graph.DexType nearestEmulatedInterfaceImplementingWithCache(com.android.tools.r8.graph.DexMethod):406 -> e
    17:25:com.android.tools.r8.graph.DexType nearestEmulatedInterfaceImplementing(com.android.tools.r8.graph.DexMethod):429:437 -> e
    17:25:com.android.tools.r8.graph.DexType nearestEmulatedInterfaceImplementingWithCache(com.android.tools.r8.graph.DexMethod):406 -> e
    26:26:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> e
    26:26:com.android.tools.r8.graph.DexType nearestEmulatedInterfaceImplementing(com.android.tools.r8.graph.DexMethod):437 -> e
    26:26:com.android.tools.r8.graph.DexType nearestEmulatedInterfaceImplementingWithCache(com.android.tools.r8.graph.DexMethod):406 -> e
    27:33:com.android.tools.r8.graph.DexType nearestEmulatedInterfaceImplementing(com.android.tools.r8.graph.DexMethod):439:445 -> e
    27:33:com.android.tools.r8.graph.DexType nearestEmulatedInterfaceImplementingWithCache(com.android.tools.r8.graph.DexMethod):406 -> e
    34:34:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> e
    34:34:com.android.tools.r8.graph.DexType nearestEmulatedInterfaceImplementing(com.android.tools.r8.graph.DexMethod):445 -> e
    34:34:com.android.tools.r8.graph.DexType nearestEmulatedInterfaceImplementingWithCache(com.android.tools.r8.graph.DexMethod):406 -> e
    35:46:com.android.tools.r8.graph.DexType nearestEmulatedInterfaceImplementing(com.android.tools.r8.graph.DexMethod):447:458 -> e
    35:46:com.android.tools.r8.graph.DexType nearestEmulatedInterfaceImplementingWithCache(com.android.tools.r8.graph.DexMethod):406 -> e
    47:47:com.android.tools.r8.graph.DexType nearestEmulatedInterfaceImplementingWithCache(com.android.tools.r8.graph.DexMethod):408:408 -> e
    48:53:void warnMissingEmulatedInterface(com.android.tools.r8.graph.DexType):546:551 -> e
com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor -> com.android.tools.r8.w.c.l$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>():126:130 -> <clinit>
    1:1:void <init>(java.lang.String,int):122:122 -> <init>
com.android.tools.r8.ir.desugar.InterfaceProcessor -> com.android.tools.r8.w.c.m:
    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>():49:49 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter):57:57 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter):55:59 -> <init>
    1:9:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):63:71 -> a
    10:21:boolean canMoveToCompanionClass(com.android.tools.r8.graph.DexEncodedMethod):272:283 -> a
    10:21:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):72 -> a
    22:34:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):78:90 -> a
    35:41:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):89:95 -> a
    42:43:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):82:83 -> a
    44:44:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    44:44:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    44:44:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):83 -> a
    45:45:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):83:83 -> a
    46:47:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):73:74 -> 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):74 -> a
    49:49:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):74:74 -> a
    50:67:boolean interfaceMethodRemovalChangesApi(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):296:313 -> a
    50:67:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):99 -> a
    68:68:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    68:68:boolean interfaceMethodRemovalChangesApi(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):313 -> a
    68:68:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):99 -> a
    69:75:boolean interfaceMethodRemovalChangesApi(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):315:321 -> a
    69:75:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):99 -> a
    76:95:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):100:119 -> a
    96:99:boolean isStaticMethod(com.android.tools.r8.graph.DexEncodedMethod):329:332 -> a
    96:99:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):120 -> a
    100:105:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):121:126 -> a
    106:124:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):125:143 -> a
    125:129:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):142:146 -> a
    130:131:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):139:140 -> a
    132:132:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    132:132:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    132:132:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):140 -> a
    133:144:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):140:151 -> a
    145:145:boolean isStaticMethod(com.android.tools.r8.graph.DexEncodedMethod):330:330 -> a
    145:145:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):120 -> a
    146:164:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):155:173 -> a
    165:165:com.android.tools.r8.graph.DexType com.android.tools.r8.ir.desugar.InterfaceMethodRewriter.getCompanionClassType(com.android.tools.r8.graph.DexType):783:783 -> a
    165:165:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):173 -> a
    166:186:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):174:194 -> a
    187:211:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):198:222 -> a
    212:212:com.android.tools.r8.graph.DexMethod com.android.tools.r8.ir.desugar.InterfaceMethodRewriter.staticAsMethodOfDispatchClass(com.android.tools.r8.graph.DexMethod):826:826 -> a
    212:212:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):222 -> a
    213:227:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):224:238 -> a
    228:280:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):215:267 -> a
com.android.tools.r8.ir.desugar.LambdaBridgeMethodSourceCode -> com.android.tools.r8.w.c.n:
    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.LambdaClass -> com.android.tools.r8.w.c.u:
    java.util.concurrent.atomic.AtomicBoolean addToMainDexList -> i
    boolean $assertionsDisabled -> l
    com.android.tools.r8.graph.DexField lambdaField -> g
    com.android.tools.r8.ir.desugar.LambdaClass$Target target -> h
    com.android.tools.r8.ir.desugar.LambdaRewriter rewriter -> a
    java.util.function.Supplier lazyDexClass -> k
    com.android.tools.r8.graph.DexMethod createInstanceMethod -> f
    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 -> j
    1:1:void <clinit>():55:55 -> <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):74:74 -> <init>
    2:40: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):65:103 -> <init>
    41:47: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):101:107 -> <init>
    1:21: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):113:133 -> a
    22:22:com.android.tools.r8.graph.DexProgramClass getOrCreateLambdaClass():137:137 -> a
    23:24:com.android.tools.r8.graph.DexField getCaptureField(int):184:185 -> a
    25:25:com.android.tools.r8.graph.DexField getCaptureField(int):184:184 -> a
    26:33:void addSynthesizedFrom(com.android.tools.r8.graph.DexProgramClass):193:200 -> a
    34:62:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethods(com.android.tools.r8.graph.DexMethod):205:233 -> a
    63:63:com.android.tools.r8.ir.conversion.SourceCode lambda$synthesizeVirtualMethods$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):218:218 -> a
    64:64:com.android.tools.r8.ir.conversion.SourceCode lambda$synthesizeVirtualMethods$1(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):236:236 -> a
    65:65:com.android.tools.r8.ir.conversion.SourceCode lambda$synthesizeDirectMethods$2(com.android.tools.r8.ir.code.Position):261:261 -> a
    66:66:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):336:336 -> a
    67:88:com.android.tools.r8.ir.desugar.LambdaClass$Target createLambdaImplMethodTarget(com.android.tools.r8.graph.DexType):359:380 -> a
    67:88:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):337 -> a
    89:89:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    89:89:com.android.tools.r8.ir.desugar.LambdaClass$Target createLambdaImplMethodTarget(com.android.tools.r8.graph.DexType):381 -> a
    89:89:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):337 -> a
    90:109:com.android.tools.r8.ir.desugar.LambdaClass$Target createLambdaImplMethodTarget(com.android.tools.r8.graph.DexType):381:400 -> a
    90:109:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):337 -> a
    110:110:com.android.tools.r8.ir.desugar.LambdaClass$Target createLambdaImplMethodTarget(com.android.tools.r8.graph.DexType):399:399 -> a
    110:110:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):337 -> a
    111:111:com.android.tools.r8.ir.desugar.LambdaClass$Target createLambdaImplMethodTarget(com.android.tools.r8.graph.DexType):396:396 -> a
    111:111:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):337 -> a
    112:125:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):341:354 -> a
    126:126:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):343:343 -> a
    127:129:com.android.tools.r8.ir.desugar.LambdaClass$Target createInterfaceMethodTarget(com.android.tools.r8.graph.DexType):476:478 -> a
    127:129:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):345 -> a
    130:147:com.android.tools.r8.ir.desugar.LambdaClass$Target createConstructorTarget(com.android.tools.r8.graph.DexType):453:470 -> a
    130:147:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):347 -> a
    148:150:com.android.tools.r8.ir.desugar.LambdaClass$Target createConstructorTarget(com.android.tools.r8.graph.DexType):469:471 -> a
    148:150:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):347 -> a
    151:152:com.android.tools.r8.ir.desugar.LambdaClass$Target createInstanceMethodTarget(com.android.tools.r8.graph.DexType):407:408 -> a
    151:152:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):352 -> a
    153:174:com.android.tools.r8.ir.desugar.LambdaClass$Target createInstanceMethodTarget(com.android.tools.r8.graph.DexType):407:428 -> a
    153:174:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):352 -> a
    175:178:com.android.tools.r8.ir.desugar.LambdaClass$Target createInstanceMethodTarget(com.android.tools.r8.graph.DexType):427:430 -> a
    175:178:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):352 -> a
    179:189:com.android.tools.r8.ir.desugar.LambdaClass$Target createStaticMethodTarget(com.android.tools.r8.graph.DexType):436:446 -> a
    179:189:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):349 -> a
    190:192:com.android.tools.r8.ir.desugar.LambdaClass$Target createStaticMethodTarget(com.android.tools.r8.graph.DexType):445:447 -> a
    190:192:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):349 -> a
    1:1:boolean isStateless():189:189 -> b
    2:2:boolean com.android.tools.r8.ir.desugar.LambdaDescriptor.isStateless():162:162 -> b
    2:2:boolean isStateless():189 -> b
    3:3:com.android.tools.r8.ir.conversion.SourceCode lambda$synthesizeDirectMethods$3(com.android.tools.r8.ir.code.Position):273:273 -> b
    1:1:com.android.tools.r8.ir.conversion.SourceCode lambda$synthesizeDirectMethods$4(com.android.tools.r8.ir.code.Position):283:283 -> c
    2:2:com.android.tools.r8.graph.DexString generateUniqueLambdaMethodName():482:482 -> c
    1:38:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeDirectMethods():244:281 -> d
    1:11:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():146:156 -> e
    12:15:com.android.tools.r8.graph.DexTypeList buildInterfaces():327:330 -> e
    12:15:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():159 -> e
    16:22:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():159:165 -> e
    23:38:com.android.tools.r8.graph.DexEncodedField[] synthesizeStaticFields():305:320 -> e
    23:38:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():166 -> e
    39:47:com.android.tools.r8.graph.DexEncodedField[] synthesizeInstanceFields():290:298 -> e
    39:47:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():167 -> e
    48:59:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():168:179 -> e
com.android.tools.r8.ir.desugar.LambdaClass$ClassMethodWithAccessorTarget -> com.android.tools.r8.w.c.o:
    boolean $assertionsDisabled -> f
    com.android.tools.r8.ir.desugar.LambdaClass this$0 -> e
    1:1:void <clinit>():665:665 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod):667:668 -> <init>
    1:1:boolean ensureAccessibility():674:674 -> a
    2:2:com.android.tools.r8.graph.DexProgramClass com.android.tools.r8.ir.desugar.LambdaClass$Target.programDefinitionFor(com.android.tools.r8.graph.DexType):509:509 -> a
    2:2:boolean ensureAccessibility():674 -> a
    3:26:boolean ensureAccessibility():675:698 -> a
    27:27:boolean ensureAccessibility():696:696 -> a
    28:28:com.android.tools.r8.ir.conversion.SourceCode lambda$ensureAccessibility$0(com.android.tools.r8.ir.code.Position):691:691 -> a
com.android.tools.r8.ir.desugar.LambdaClass$InstanceLambdaImplTarget -> com.android.tools.r8.w.c.p:
    com.android.tools.r8.ir.desugar.LambdaClass this$0 -> e
    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod):624:625 -> <init>
    1:6:boolean ensureAccessibility():632:637 -> a
    7:7:boolean com.android.tools.r8.graph.DexMethod.match(com.android.tools.r8.graph.DexEncodedMethod):157:157 -> a
    7:7:boolean ensureAccessibility():638 -> a
    8:22:boolean ensureAccessibility():641:655 -> a
com.android.tools.r8.ir.desugar.LambdaClass$InterfaceLambdaImplTarget -> com.android.tools.r8.w.c.q:
    boolean $assertionsDisabled -> f
    com.android.tools.r8.ir.desugar.LambdaClass this$0 -> e
    1:1:void <clinit>():574:574 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod):576:577 -> <init>
    1:6:boolean ensureAccessibility():584:589 -> a
    7:7:boolean com.android.tools.r8.graph.DexMethod.match(com.android.tools.r8.graph.DexEncodedMethod):157:157 -> a
    7:7:boolean ensureAccessibility():590 -> a
    8:25:boolean ensureAccessibility():593:610 -> a
    26:33:boolean ensureAccessibility():609:616 -> a
com.android.tools.r8.ir.desugar.LambdaClass$NoAccessorMethodTarget -> com.android.tools.r8.w.c.r:
    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.Invoke$Type):543:543 -> <init>
    boolean ensureAccessibility() -> a
com.android.tools.r8.ir.desugar.LambdaClass$StaticLambdaImplTarget -> com.android.tools.r8.w.c.s:
    boolean $assertionsDisabled -> f
    com.android.tools.r8.ir.desugar.LambdaClass this$0 -> e
    1:1:void <clinit>():553:553 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass):555:556 -> <init>
    1:5:boolean ensureAccessibility():562:566 -> a
com.android.tools.r8.ir.desugar.LambdaClass$Target -> com.android.tools.r8.w.c.t:
    com.android.tools.r8.ir.code.Invoke$Type invokeType -> b
    com.android.tools.r8.ir.desugar.LambdaClass this$0 -> c
    com.android.tools.r8.graph.DexMethod callTarget -> a
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():489:489 -> <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):494:498 -> <init>
    boolean ensureAccessibility() -> a
    1:1:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):505:505 -> a
com.android.tools.r8.ir.desugar.LambdaClassConstructorSourceCode -> com.android.tools.r8.w.c.v:
    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:6:void lambda$prepareInstructions$1(int,com.android.tools.r8.ir.conversion.IRBuilder):29:34 -> c
    7: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.LambdaConstructorSourceCode -> com.android.tools.r8.w.c.w:
    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):63:70 -> equals
    1:25:void prepareInstructions():25:49 -> h
    1:2:int hashCode():57:58 -> hashCode
com.android.tools.r8.ir.desugar.LambdaCreateInstanceSourceCode -> com.android.tools.r8.w.c.x:
    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.Position):18:18 -> <init>
    1:1:void lambda$prepareInstructions$1(java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):37:37 -> a
    1:1:void lambda$prepareInstructions$0(int,com.android.tools.r8.ir.conversion.IRBuilder):25:25 -> b
    1:1:void lambda$prepareInstructions$2(int,com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> c
    1:21:void prepareInstructions():24:44 -> h
com.android.tools.r8.ir.desugar.LambdaDescriptor -> com.android.tools.r8.w.c.y:
    java.util.Set bridges -> g
    com.android.tools.r8.graph.DexString name -> b
    com.android.tools.r8.ir.desugar.LambdaDescriptor MATCH_FAILED -> j
    com.android.tools.r8.graph.DexProto erasedProto -> c
    java.util.List interfaces -> f
    com.android.tools.r8.graph.DexProto enforcedProto -> d
    boolean $assertionsDisabled -> k
    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.DexEncodedMethod targetMethod -> i
    1:8:void <clinit>():27:34 -> <clinit>
    1:1:void <init>():49:49 -> <init>
    2:16:void <init>():42:56 -> <init>
    17:17:void <init>(com.android.tools.r8.graph.AppInfo,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):61:61 -> <init>
    18:55:void <init>(com.android.tools.r8.graph.AppInfo,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):42:79 -> <init>
    1:35:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfo):93:127 -> a
    36:37:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfo):121:122 -> a
    38:39:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfo):115:116 -> a
    40:47:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfo):97:104 -> a
    48:48:boolean isPublicizedInstanceMethod(com.android.tools.r8.graph.DexEncodedMethod):143:143 -> a
    48:48:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfo):104 -> a
    49:58:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfo):101:110 -> a
    59:60:boolean isInstanceMethod(com.android.tools.r8.graph.DexEncodedMethod):132:133 -> a
    61:62:boolean delegatesToLambdaImplMethod():156:157 -> a
    63:90:boolean needsAccessor(com.android.tools.r8.graph.DexType):167:194 -> a
    91:113:boolean needsAccessor(com.android.tools.r8.graph.DexType):193:215 -> a
    114:117:boolean needsAccessor(com.android.tools.r8.graph.DexType):214:217 -> a
    118:119:void lambda$infer$0(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):294:295 -> a
    120:124:java.util.List getInterfaces(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfo):346:350 -> a
    125:131:java.lang.Object getBootstrapArgument(java.util.List,int,java.lang.Class):355:361 -> a
    132:132:java.lang.Object getBootstrapArgument(java.util.List,int,java.lang.Class):356:356 -> a
    133:141:boolean isSameOrDerived(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):390:398 -> a
    142:145:boolean isSameOrDerived(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):397:400 -> a
    1:2:boolean isPrivateInstanceMethod(com.android.tools.r8.graph.DexEncodedMethod):137:138 -> b
    3:3:com.android.tools.r8.graph.MethodAccessFlags getAccessibility():147:147 -> b
    4:4:boolean targetFoundInClass(com.android.tools.r8.graph.DexType):151:151 -> b
    5:34:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfo):236:265 -> b
    35:45:boolean isEnforcedSignatureValid(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexProto):368:378 -> b
    35:45:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfo):265 -> b
    46:63:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfo):273:290 -> b
    64:94:void extractAltMetafactory(com.android.tools.r8.graph.DexItemFactory,java.util.List,java.util.function.Consumer,java.util.function.Consumer):311:341 -> b
    64:94:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfo):290 -> b
    95:96:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfo):267:268 -> b
    1:4:com.android.tools.r8.graph.DexType getImplReceiverType():85:88 -> c
    5:6:com.android.tools.r8.ir.desugar.LambdaDescriptor tryInfer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfo):225:226 -> c
com.android.tools.r8.ir.desugar.LambdaMainMethodSourceCode -> com.android.tools.r8.w.c.z:
    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):437:437 -> 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():513:513 -> 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():335:335 -> a
    64:64:boolean com.android.tools.r8.ir.desugar.LambdaClass$Target.holderIsInterface():513 -> 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():522:522 -> 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():314:314 -> a
    66:66:boolean com.android.tools.r8.ir.desugar.LambdaClass$Target.holderIsInterface():522 -> 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:77:boolean com.android.tools.r8.ir.desugar.LambdaClass$Target.holderIsInterface():522:532 -> a
    67:77: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
    78:87:boolean com.android.tools.r8.ir.desugar.LambdaClass$Target.holderIsInterface():526:535 -> a
    78:87: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
    88:88: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
    89:94:int prepareReturnValue(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):261:266 -> a
    95:112:int adjustType(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,boolean):289:306 -> a
    113:113:com.android.tools.r8.graph.DexType getPrimitiveFromBoxed(com.android.tools.r8.graph.DexType):57:57 -> a
    113:113:int adjustType(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,boolean):308 -> a
    114:114:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexItemFactory.getPrimitiveFromBoxed(com.android.tools.r8.graph.DexType):437:437 -> a
    114:114:com.android.tools.r8.graph.DexType getPrimitiveFromBoxed(com.android.tools.r8.graph.DexType):57 -> a
    114:114:int adjustType(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,boolean):308 -> a
    115:156:int adjustType(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,boolean):310:351 -> a
    157:157:void lambda$adjustType$6(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.conversion.IRBuilder):345:345 -> a
    158:158:void lambda$addPrimitiveWideningConversion$7(com.android.tools.r8.ir.code.NumericType,int,int,com.android.tools.r8.ir.conversion.IRBuilder):372:372 -> a
    159:159: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
    160:160:int castToBoxedType(int,com.android.tools.r8.graph.DexType):473:473 -> a
    161:161: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$addPrimitiveWideningConversion$8(com.android.tools.r8.ir.code.NumericType,int,int,com.android.tools.r8.ir.conversion.IRBuilder):387:387 -> b
    2:2: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
    3:3: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
    4:4:void lambda$castToBoxedType$13(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.conversion.IRBuilder):473:473 -> 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
    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.LambdaRewriter -> com.android.tools.r8.w.c.B:
    com.android.tools.r8.graph.DexItemFactory factory -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.graph.DexString constructorName -> e
    com.android.tools.r8.graph.DexString classConstructorName -> f
    boolean $assertionsDisabled -> l
    com.android.tools.r8.graph.DexString instanceFieldName -> g
    com.android.tools.r8.graph.DexString createInstanceMethodName -> h
    java.util.Map knownCallSites -> j
    java.util.Map knownLambdaClasses -> k
    com.android.tools.r8.graph.DexMethod objectInitMethod -> d
    com.android.tools.r8.com.google.common.collect.BiMap methodMapping -> i
    com.android.tools.r8.ir.conversion.IRConverter converter -> b
    1:1:void <clinit>():56:56 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):94:94 -> <init>
    2:31:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):76:105 -> <init>
    1:1:com.android.tools.r8.ir.desugar.LambdaDescriptor access$000(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexCallSite):56:56 -> a
    2:2:com.android.tools.r8.ir.desugar.LambdaClass access$100(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):56:56 -> a
    3:18:void synthesizeLambdaClassesFor(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.LensCodeRewriter):110:125 -> a
    19:19:void synthesizeLambdaClassesFor(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.LensCodeRewriter):123:123 -> a
    20:38:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):144:162 -> a
    39:40:com.android.tools.r8.ir.desugar.LambdaClass getKnownLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):333:334 -> a
    39:40:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):163 -> a
    41:42:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):164:165 -> a
    43:54: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):377:388 -> a
    43:54:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):170 -> a
    55:55:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> a
    55:55: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):387 -> a
    55:55:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):170 -> a
    56:89: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):390:423 -> a
    56:89:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):170 -> a
    90:90: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):38:38 -> a
    90:90: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):423 -> a
    90:90:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):170 -> a
    91:116: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):425:450 -> a
    91:116:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):170 -> a
    117:118:com.android.tools.r8.graph.DexMethod com.android.tools.r8.ir.desugar.LambdaClass.getCreateInstanceMethod():141:142 -> a
    117:118: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):452 -> a
    117:118:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):170 -> a
    119:120: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):452:453 -> a
    119:120:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):170 -> a
    121:122:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):174:175 -> a
    123:123:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    123:123:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):175 -> a
    124:126:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):175:177 -> a
    127:134:void desugarLambda(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.code.IRCode):185:192 -> a
    135:140:void patchInstructionSimple(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):470:475 -> a
    135:140:void desugarLambda(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.code.IRCode):196 -> a
    141:141:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> a
    141:141:void patchInstructionSimple(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):474 -> a
    141:141:void desugarLambda(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.code.IRCode):196 -> a
    142:159:void patchInstructionSimple(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):480:497 -> a
    142:159:void desugarLambda(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.code.IRCode):196 -> a
    160:161:com.android.tools.r8.graph.DexMethod com.android.tools.r8.ir.desugar.LambdaClass.getCreateInstanceMethod():141:142 -> a
    160:161:void patchInstructionSimple(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):499 -> a
    160:161:void desugarLambda(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.code.IRCode):196 -> a
    162:163:void patchInstructionSimple(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):499:500 -> a
    162:163:void desugarLambda(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.code.IRCode):196 -> a
    164:166:boolean verifyNoLambdasToDesugar(com.android.tools.r8.ir.code.IRCode):200:202 -> a
    167:167:boolean verifyNoLambdasToDesugar(com.android.tools.r8.ir.code.IRCode):201:201 -> a
    168:176:boolean removeLambdaDeserializationMethods(java.lang.Iterable):210:218 -> a
    177:177:boolean com.android.tools.r8.graph.DexMethod.isLambdaDeserializeMethod(com.android.tools.r8.graph.DexItemFactory):194:194 -> a
    177:177:boolean removeLambdaDeserializationMethods(java.lang.Iterable):218 -> a
    178:180:boolean removeLambdaDeserializationMethods(java.lang.Iterable):219:221 -> a
    181:187:void adjustAccessibility():237:243 -> a
    188:188:void adjustAccessibility():242:242 -> a
    189:190:com.android.tools.r8.graph.DexProgramClass getLambdaClass(com.android.tools.r8.graph.DexType):252:253 -> a
    191:200:void synthesizeLambdaClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):259:268 -> a
    201:201:void synthesizeLambdaClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):265:265 -> a
    202:206:com.android.tools.r8.ir.desugar.LambdaDescriptor inferLambdaDescriptor(com.android.tools.r8.graph.DexCallSite):287:291 -> a
    207:213:java.lang.Object putIfAbsent(java.util.Map,java.lang.Object,java.lang.Object):358:364 -> a
    207:213:com.android.tools.r8.ir.desugar.LambdaDescriptor inferLambdaDescriptor(com.android.tools.r8.graph.DexCallSite):290 -> a
    214:214:com.android.tools.r8.ir.desugar.LambdaDescriptor inferLambdaDescriptor(com.android.tools.r8.graph.DexCallSite):290:290 -> a
    215:215:java.lang.Object putIfAbsent(java.util.Map,java.lang.Object,java.lang.Object):365:365 -> a
    215:215:com.android.tools.r8.ir.desugar.LambdaDescriptor inferLambdaDescriptor(com.android.tools.r8.graph.DexCallSite):290 -> a
    216:220:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):301:305 -> a
    221:227:java.lang.Object putIfAbsent(java.util.Map,java.lang.Object,java.lang.Object):358:364 -> a
    221:227:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):306 -> a
    228:232:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):306:310 -> a
    233:233:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():314:314 -> a
    233:233:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):310 -> a
    234:241:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):311:318 -> a
    242:252:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):338:348 -> a
    242:252:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):321 -> a
    253:253:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):347:347 -> a
    253:253:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):321 -> a
    254:254:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):346:346 -> a
    254:254:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):321 -> a
    255:255:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):344:344 -> a
    255:255:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):321 -> a
    256:256:java.lang.Object putIfAbsent(java.util.Map,java.lang.Object,java.lang.Object):365:365 -> a
    256:256:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):306 -> a
    257:257:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):325:325 -> a
    258:258:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    258:258:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):325 -> a
    259:259:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):325:325 -> a
    260:260:boolean isInMainDexList(com.android.tools.r8.graph.DexType):295:295 -> a
    260:260:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):326 -> a
    261:261:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):327:327 -> a
    262:264:java.lang.Object getKnown(java.util.Map,java.lang.Object):352:354 -> a
    1:1:boolean hasLambdaClassPrefix(com.android.tools.r8.graph.DexType):91:91 -> b
    2:4:java.util.Set getDesugaredCallSites():273:275 -> b
com.android.tools.r8.ir.desugar.LambdaRewriter$1 -> com.android.tools.r8.w.c.A:
    com.android.tools.r8.ir.conversion.LensCodeRewriter val$lensCodeRewriter -> a
    com.android.tools.r8.ir.desugar.LambdaRewriter this$0 -> c
    com.android.tools.r8.graph.DexEncodedMethod val$method -> b
    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.conversion.LensCodeRewriter,com.android.tools.r8.graph.DexEncodedMethod):125:125 -> <init>
    1:4:void registerCallSite(com.android.tools.r8.graph.DexCallSite):129:132 -> registerCallSite
com.android.tools.r8.ir.desugar.LambdaRewriterGraphLense -> com.android.tools.r8.w.c.C:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():15:15 -> <clinit>
    1:5:void <init>(com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexItemFactory):20:24 -> <init>
    6:6:void <init>(com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexItemFactory):19:19 -> <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):31:33 -> mapInvocationType
com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring -> com.android.tools.r8.w.c.D:
    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>():39:39 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):65:65 -> <init>
    2:11:void <init>(com.android.tools.r8.graph.AppView):58:67 -> <init>
    void reportIncompleteNest(java.util.List) -> a
    void reportMissingNestHost(com.android.tools.r8.graph.DexClass) -> a
    boolean shouldProcessClassInNest(com.android.tools.r8.graph.DexClass,java.util.List) -> a
    1:1:com.android.tools.r8.graph.DexType getNestConstructorType():71:71 -> a
    2:2:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):79:79 -> a
    3:3:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    3:3:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):79 -> a
    4:4:java.util.concurrent.Future asyncProcessNest(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService):112:112 -> a
    5:7:void synthesizeNestConstructor(com.android.tools.r8.graph.DexApplication$Builder):171:173 -> a
    8:15:boolean invokeRequiresRewriting(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):244:251 -> a
    16:23:boolean fieldAccessRequiresRewriting(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexClass):255:262 -> a
    24:25:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):282:283 -> a
    26:27:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):225:226 -> a
    26:27:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):284 -> a
    28:28:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():114:114 -> a
    28:28:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):228 -> a
    28:28:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):284 -> a
    29:32:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):228:231 -> a
    29:32:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):284 -> a
    33:33:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():114:114 -> a
    33:33:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):233 -> a
    33:33:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):284 -> a
    34:39:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):234:239 -> a
    34:39:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):284 -> a
    40:40:com.android.tools.r8.graph.DexString computeFieldBridgeName(com.android.tools.r8.graph.DexEncodedField,boolean):193:193 -> a
    40:40:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):240 -> a
    40:40:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):284 -> a
    41:41:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():114:114 -> a
    41:41:com.android.tools.r8.graph.DexString computeFieldBridgeName(com.android.tools.r8.graph.DexEncodedField,boolean):195 -> a
    41:41:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):240 -> a
    41:41:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):284 -> a
    42:44:com.android.tools.r8.graph.DexString computeFieldBridgeName(com.android.tools.r8.graph.DexEncodedField,boolean):196:198 -> a
    42:44:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):240 -> a
    42:44:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):284 -> a
    45:45:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():114:114 -> a
    45:45:com.android.tools.r8.graph.DexString computeFieldBridgeName(com.android.tools.r8.graph.DexEncodedField,boolean):199 -> a
    45:45:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):240 -> a
    45:45:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):284 -> a
    46:50:com.android.tools.r8.graph.DexString computeFieldBridgeName(com.android.tools.r8.graph.DexEncodedField,boolean):200:204 -> a
    46:50:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):240 -> a
    46:50:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):284 -> a
    51:51:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):240:240 -> a
    51:51:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):284 -> a
    52:58:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):285:291 -> a
    59:59: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):294:294 -> a
    60:65:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):301:306 -> a
    66:67:com.android.tools.r8.graph.DexMethod computeInitializerBridge(com.android.tools.r8.graph.DexMethod):219:220 -> a
    66:67:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):306 -> a
    68:70: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):1298:1300 -> a
    68:70:com.android.tools.r8.graph.DexMethod computeInitializerBridge(com.android.tools.r8.graph.DexMethod):220 -> a
    68:70:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):306 -> a
    71:74: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):1299:1302 -> a
    71:74:com.android.tools.r8.graph.DexMethod computeInitializerBridge(com.android.tools.r8.graph.DexMethod):220 -> a
    71:74:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):306 -> a
    75:75:com.android.tools.r8.graph.DexMethod computeInitializerBridge(com.android.tools.r8.graph.DexMethod):221:221 -> a
    75:75:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):306 -> a
    76:76: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):1298:1298 -> a
    76:76:com.android.tools.r8.graph.DexMethod computeInitializerBridge(com.android.tools.r8.graph.DexMethod):220 -> a
    76:76:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):306 -> a
    77:84:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):308:315 -> a
    85:87: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):318:320 -> a
    1:14:java.util.List extractNest(com.android.tools.r8.graph.DexClass):94:107 -> b
    15:34:com.android.tools.r8.graph.DexProgramClass createNestAccessConstructor():148:167 -> b
    35:35:boolean isNestConstructor(com.android.tools.r8.graph.DexType):178:178 -> b
    36:42:com.android.tools.r8.graph.DexMethod computeMethodBridge(com.android.tools.r8.graph.DexEncodedMethod):208:214 -> b
    43:50:com.android.tools.r8.graph.DexString computeMethodBridgeName(com.android.tools.r8.graph.DexEncodedMethod):182:189 -> b
    43:50:com.android.tools.r8.graph.DexMethod computeMethodBridge(com.android.tools.r8.graph.DexEncodedMethod):215 -> b
    51:51:com.android.tools.r8.graph.DexMethod computeMethodBridge(com.android.tools.r8.graph.DexEncodedMethod):215:215 -> b
    1:10:boolean holderRequiresBridge(com.android.tools.r8.graph.DexClass):268:277 -> c
    1:1:java.lang.Object lambda$asyncProcessNest$0(com.android.tools.r8.graph.DexClass):114:114 -> d
    2:15:void processNest(java.util.List):125:138 -> d
    2:15:java.lang.Object lambda$asyncProcessNest$0(com.android.tools.r8.graph.DexClass):117 -> d
com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess -> com.android.tools.r8.w.c.D$a:
    com.android.tools.r8.graph.DexEncodedField field -> a
    boolean isGet -> b
    1:3:void <init>(com.android.tools.r8.graph.DexEncodedField,boolean):431:433 -> <init>
    1:1:com.android.tools.r8.graph.DexField getField():494:494 -> a
    1:1:com.android.tools.r8.graph.DexType getHolder():490:490 -> b
    1:1:com.android.tools.r8.graph.DexType getType():486:486 -> c
    1:1:boolean isInstance():466:466 -> d
    1:1:boolean isInstanceGet():478 -> d
    2:2:boolean isGet():454:454 -> d
    2:2:boolean isInstanceGet():478 -> d
    1:1:boolean isGet():454:454 -> e
    1:1:boolean isPut():462 -> e
    1:5:boolean equals(java.lang.Object):446:450 -> equals
    1:1:boolean isStatic():458:458 -> f
    1:1:boolean isStaticGet():470:470 -> g
    2:2:boolean isGet():454:454 -> g
    2:2:boolean isStaticGet():470 -> g
    1:1:int hashCode():438:438 -> hashCode
com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$NestBasedAccessDesugaringUseRegistry -> com.android.tools.r8.w.c.E:
    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):329:331 -> <init>
    1:1:void setContext(com.android.tools.r8.graph.DexMethod):335:335 -> a
    2:5:boolean registerInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):341:344 -> 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):84:85 -> 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):39 -> a
    6:7:boolean registerInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):344 -> a
    8:8:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):163:163 -> 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):84 -> 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):39 -> a
    8:8:boolean registerInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):344 -> a
    9:10:boolean registerInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):345:346 -> a
    11:11:boolean registerFieldAccess(com.android.tools.r8.graph.DexField,boolean):353:353 -> a
    12:12:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring.definitionFor(com.android.tools.r8.graph.DexField):89:89 -> 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):39 -> a
    12:12:boolean registerFieldAccess(com.android.tools.r8.graph.DexField,boolean):353 -> a
    13:13:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):158:158 -> a
    13:13:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring.definitionFor(com.android.tools.r8.graph.DexField):89 -> 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):39 -> a
    13:13:boolean registerFieldAccess(com.android.tools.r8.graph.DexField,boolean):353 -> a
    14:15:boolean registerFieldAccess(com.android.tools.r8.graph.DexField,boolean):354:355 -> a
    1:1:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):398:398 -> registerInstanceFieldRead
    1:1:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):393:393 -> registerInstanceFieldWrite
    1:1:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):370:370 -> registerInvokeDirect
    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):382:382 -> registerInvokeInterface
    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):375:375 -> registerInvokeStatic
    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):365:365 -> registerInvokeVirtual
    1:1:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):411:411 -> registerStaticFieldRead
    1:1:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):416:416 -> registerStaticFieldWrite
com.android.tools.r8.ir.desugar.NestedPrivateMethodLense -> com.android.tools.r8.w.c.F:
    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>():18:18 -> <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):33:39 -> <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):32:46 -> <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):51:53 -> a
    4:9:boolean isConstructorBridge(com.android.tools.r8.graph.DexMethod):92:97 -> a
    1:5:boolean isContextFreeForMethod(com.android.tools.r8.graph.DexMethod):78:82 -> isContextFreeForMethod
    1:1:boolean isContextFreeForMethods():73:73 -> isContextFreeForMethods
    1:2:com.android.tools.r8.graph.DexMethod lookupGetFieldForMethod(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexMethod):61:62 -> lookupGetFieldForMethod
    1:16: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:130 -> lookupMethod
    1:6:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):102:107 -> lookupPrototypeChanges
    1:2:com.android.tools.r8.graph.DexMethod lookupPutFieldForMethod(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexMethod):67:68 -> lookupPutFieldForMethod
com.android.tools.r8.ir.desugar.PrefixRewritingMapper -> com.android.tools.r8.w.c.G:
    1:1:void <init>():19:19 -> <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):30:30 -> a
    2:6:boolean hasRewrittenTypeInSignature(com.android.tools.r8.graph.DexProto):34:38 -> a
    com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType) -> b
com.android.tools.r8.ir.desugar.PrefixRewritingMapper$DesugarPrefixRewritingMapper -> com.android.tools.r8.w.c.G$a:
    java.util.Map rewritten -> b
    java.util.Map initialPrefixes -> c
    com.android.tools.r8.graph.DexItemFactory factory -> d
    boolean $assertionsDisabled -> e
    java.util.Set notRewritten -> a
    1:1:void <clinit>():47:47 -> <clinit>
    1:1:void <init>(java.util.Map,com.android.tools.r8.graph.DexItemFactory):54:54 -> <init>
    2:14:void <init>(java.util.Map,com.android.tools.r8.graph.DexItemFactory):49:61 -> <init>
    boolean isRewriting() -> a
    1:1:com.android.tools.r8.graph.DexString toDescriptorPrefix(java.lang.String):65:65 -> a
    2:25:void validatePrefixes(java.util.Map):69:92 -> a
    26:26:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    26:26:void validatePrefixes(java.util.Map):92 -> 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):92 -> a
    28:28:void validatePrefixes(java.util.Map):92:92 -> a
    29:39:void rewriteType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):112:122 -> a
    1:5:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType):101:105 -> b
    6:6:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType):126:126 -> b
    6:6:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType):107 -> b
    7:7:int com.android.tools.r8.graph.DexString.getArrayDim():481:481 -> b
    7:7:com.android.tools.r8.graph.DexString com.android.tools.r8.graph.DexString.withoutArray(com.android.tools.r8.graph.DexItemFactory):470 -> b
    7:7:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType):126 -> b
    7:7:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType):107 -> b
    8:10:com.android.tools.r8.graph.DexString com.android.tools.r8.graph.DexString.withoutArray(com.android.tools.r8.graph.DexItemFactory):474:476 -> b
    8:10:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType):126 -> b
    8:10:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType):107 -> b
    11:11:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType):127:127 -> b
    11:11:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType):107 -> b
    12:15:com.android.tools.r8.graph.DexType lookup(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,java.util.Map):137:140 -> b
    12:15:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType):127 -> b
    12:15:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType):107 -> b
    16:16:int com.android.tools.r8.graph.DexString.getArrayDim():481:481 -> b
    16:16: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):448 -> b
    16:16:com.android.tools.r8.graph.DexType lookup(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,java.util.Map):140 -> b
    16:16:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType):127 -> b
    16:16:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType):107 -> b
    17:34: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):449:466 -> b
    17:34:com.android.tools.r8.graph.DexType lookup(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,java.util.Map):140 -> b
    17:34:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType):127 -> b
    17:34:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType):107 -> b
    35:36:com.android.tools.r8.graph.DexType lookup(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,java.util.Map):141:142 -> b
    35:36:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType):127 -> b
    35:36:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType):107 -> b
    37:37:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType):131:131 -> b
    37:37:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType):107 -> b
com.android.tools.r8.ir.desugar.PrefixRewritingMapper$EmptyPrefixRewritingMapper -> com.android.tools.r8.w.c.H:
    1:1:void <init>():155:155 -> <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) -> b
com.android.tools.r8.ir.desugar.R8NestBasedAccessDesugaring -> com.android.tools.r8.w.c.I:
    boolean $assertionsDisabled -> k
    java.util.Map lensGetFieldBridges -> i
    java.util.Map lensPutFieldBridges -> j
    java.util.Map lensBridges -> h
    1:1:void <clinit>():32:32 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):39:39 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.AppView):34:36 -> <init>
    boolean shouldProcessClassInNest(com.android.tools.r8.graph.DexClass,java.util.List) -> a
    1:1:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):44:44 -> a
    2:2:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    2:2:boolean com.android.tools.r8.utils.InternalOptions.canUseNestBasedAccess():1055 -> a
    2:2:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):44 -> a
    3:4:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):44:45 -> a
    5:5:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):44:44 -> a
    6:22:void computeAndProcessNestsConcurrently(java.util.concurrent.ExecutorService):99:115 -> a
    6:22:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):46 -> a
    23:25:void addDeferredBridgesAndMapMethods():72:74 -> a
    23:25:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):47 -> a
    26:28:void clearNestAttributes():91:93 -> a
    26:28:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):48 -> a
    29:29:boolean nothingToMap():63:63 -> a
    29:29:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):49 -> a
    30:39:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):50:59 -> a
    40:46:void addDeferredBridgesAndMapMethods(java.util.Map,java.util.Map):79:85 -> a
    47:50:void reportMissingNestHost(com.android.tools.r8.graph.DexClass):126:129 -> a
    51:54:void reportIncompleteNest(java.util.List):135:138 -> a
com.android.tools.r8.ir.desugar.StringConcatRewriter -> com.android.tools.r8.w.c.O:
    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:49: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:163 -> a
    48:49:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):141 -> a
    50: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
    50: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:122:java.lang.String convertToString(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexValue):279:280 -> a
    121:122: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:122:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
    123:123:java.lang.String convertToString(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexValue):279:279 -> a
    123: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
    123: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:154: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:263 -> a
    153:154:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
    155: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
    155: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:160: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:200 -> a
    159:160:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
    161: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
    161: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.w.c.J:
com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder -> com.android.tools.r8.w.c.N:
    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):1012:1012 -> 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):38:38 -> 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:24:void com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder$Chunk.addAppendCall(com.android.tools.r8.ir.code.Value):413:415 -> a
    22:24:void desugar():352 -> a
    25:25:void com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder$Chunk.addAppendCall(com.android.tools.r8.ir.code.Value):413:413 -> a
    25: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):1012:1012 -> a
    36:36:void desugar():365 -> a
    37:38:void desugar():369:370 -> a
    39:69:void desugar():369: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.w.c.K:
    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.w.c.L:
    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.w.c.M:
    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):1012:1012 -> a
    3:3:com.android.tools.r8.ir.code.Value getOrCreateValue():444 -> a
    4:8:com.android.tools.r8.ir.code.Value getOrCreateValue():445:449 -> a
    9:9:com.android.tools.r8.ir.code.Value getOrCreateValue():445:445 -> a
com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode -> com.android.tools.r8.w.c.P:
    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.w.c.Q:
    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):103:115 -> a
    14:19:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):122:127 -> 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):237:272 -> a
    20:55:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> 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):269:282 -> a
    56:69:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    70:72: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):281:283 -> a
    70:72:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    73:89: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):279:295 -> a
    73:89:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    90:94: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):292:296 -> a
    90:94:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    95:116: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):290:311 -> a
    95:116:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    117:121: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):308:312 -> a
    117:121:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    122:145: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):306:329 -> a
    122:145:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    146:157: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):326:337 -> a
    146:157:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    158:160: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):336:338 -> a
    158:160:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    161:173: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):334:346 -> a
    161:173:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    174:177: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):344:347 -> a
    174:177:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    178:192: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):342:356 -> a
    178:192:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    193:196: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):354:357 -> a
    193:196:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    197:209: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):352:364 -> a
    197:209:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    210:212: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):363:365 -> a
    210:212:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    213:227: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):361:375 -> a
    213:227:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    228:232: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):372:376 -> a
    228:232:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    233: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):370:391 -> a
    233:254:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    255:267: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):388:400 -> a
    255:267:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    268:271: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):398:401 -> a
    268:271:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    272:285: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):396:409 -> a
    272:285:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    286:288: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):408:410 -> a
    286:288:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    289:301: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):406:418 -> a
    289:301:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    302:305: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):416:419 -> a
    302:305:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    306:318: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):414:426 -> a
    306:318:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    319:321: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):425:427 -> a
    319:321:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    322:336: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):423:437 -> a
    322:336:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    337:341: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):434:438 -> a
    337:341:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    342:360: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):432:450 -> a
    342:360:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    361:363: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):449:451 -> a
    361:363:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    364:364: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:447 -> a
    364:364:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    365:581: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):259:475 -> a
    365:581:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    582:594: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):474:486 -> a
    582:594:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    595:602: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):485:492 -> a
    595:602:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    603:610: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):491:498 -> a
    603:610:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    611:618: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:504 -> a
    611:618:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    619:627: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):503:511 -> a
    619:627:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    628:670: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):470:512 -> a
    628:670:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):128 -> a
    671:704:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):130:163 -> a
    705:705:boolean lambda$synthesizeUtilityClass$0(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.DexProgramClass):160:160 -> a
    706:706:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> a
    706:706:void rewriteMethodCode(com.android.tools.r8.ir.code.IRCode):78 -> a
    707:723:void rewriteMethodCode(com.android.tools.r8.ir.code.IRCode):79:95 -> a
    724:728:void rewriteMethodCode(com.android.tools.r8.ir.code.IRCode):94:98 -> a
com.android.tools.r8.ir.desugar.backports.BackportedMethods -> com.android.tools.r8.w.c.R.a:
    1:25:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1541:1565 -> A
    26:30:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1562:1566 -> A
    31:31:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1560:1560 -> A
    32:55:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1548:1571 -> A
    1:19:com.android.tools.r8.graph.CfCode ShortMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4833:4851 -> A0
    1:30:com.android.tools.r8.graph.CfCode LongMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1575:1604 -> B
    31:35:com.android.tools.r8.graph.CfCode LongMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1601:1605 -> B
    36:36:com.android.tools.r8.graph.CfCode LongMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1599:1599 -> B
    37:64:com.android.tools.r8.graph.CfCode LongMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1583:1610 -> B
    1:15:com.android.tools.r8.graph.CfCode ShortMethods_toUnsignedInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4855:4869 -> B0
    1:100:com.android.tools.r8.graph.CfCode LongMethods_divideUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1614:1713 -> C
    1:16:com.android.tools.r8.graph.CfCode ShortMethods_toUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4873:4888 -> C0
    1:18:com.android.tools.r8.graph.CfCode LongMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1717:1734 -> D
    1:29:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4892:4920 -> D0
    30:33:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4918:4921 -> D0
    34:50:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4916:4932 -> D0
    51:72:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4929:4950 -> D0
    73:76:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4948:4951 -> D0
    77:102:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4946:4971 -> D0
    103:106:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4969:4972 -> D0
    107:126:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4967:4986 -> D0
    127:130:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4984:4987 -> D0
    131:149:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4982:5000 -> D0
    150:152:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4999:5001 -> D0
    153:153:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4997:4997 -> D0
    154:253:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4907:5006 -> D0
    1:18:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1738:1755 -> E
    19:23:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1752:1756 -> E
    24:24:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1750:1750 -> E
    25:42:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1744:1761 -> E
    1:28:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5010:5037 -> E0
    29:32:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5035:5038 -> E0
    33:49:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5033:5049 -> E0
    50:63:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5046:5059 -> E0
    64:66:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5058:5060 -> E0
    67:81:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5056:5070 -> E0
    82:96:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5067:5081 -> E0
    97:99:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5080:5082 -> E0
    100:113:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5078:5091 -> E0
    114:117:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5089:5092 -> E0
    118:133:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5087:5102 -> E0
    134:149:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5099:5114 -> E0
    150:153:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5112:5115 -> E0
    154:170:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5110:5126 -> E0
    171:173:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5125:5127 -> E0
    174:187:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5123:5136 -> E0
    188:191:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5134:5137 -> E0
    192:208:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5132:5148 -> E0
    209:211:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5147:5149 -> E0
    212:212:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5145:5145 -> E0
    213:343:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5024:5154 -> E0
    1:35:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1766:1800 -> F
    36:55:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1797:1816 -> F
    56:59:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1814:1817 -> F
    60:86:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1812:1838 -> F
    87:90:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1836:1839 -> F
    91:104:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1834:1847 -> F
    105:108:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1845:1848 -> F
    109:122:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1843:1856 -> F
    123:126:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1854:1857 -> F
    127:146:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1852:1871 -> F
    147:151:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1868:1872 -> F
    152:169:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1866:1883 -> F
    170:172:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1882:1884 -> F
    173:208:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1880:1915 -> F
    209:211:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1914:1916 -> F
    212:226:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1912:1926 -> F
    227:231:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1923:1927 -> F
    232:255:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1921:1944 -> F
    256:259:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1942:1945 -> F
    260:293:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1940:1973 -> F
    294:298:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1970:1974 -> F
    299:320:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1968:1989 -> F
    321:324:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1987:1990 -> F
    325:338:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1985:1998 -> F
    339:342:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1996:1999 -> F
    343:343:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1994:1994 -> F
    344:571:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1792:2019 -> F
    1:101:com.android.tools.r8.graph.CfCode LongMethods_remainderUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2023:2123 -> G
    1:18:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2127:2144 -> H
    19:23:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2141:2145 -> H
    24:24:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2139:2139 -> H
    25:42:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2133:2150 -> H
    1:56:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2155:2210 -> I
    57:61:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2207:2211 -> I
    62:103:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2205:2246 -> I
    104:106:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2245:2247 -> I
    107:135:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2243:2271 -> I
    136:140:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2268:2272 -> I
    141:190:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2266:2315 -> I
    191:195:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2312:2316 -> I
    196:227:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2310:2341 -> I
    228:232:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2338:2342 -> I
    233:267:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2336:2370 -> I
    268:272:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2367:2371 -> I
    273:306:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2365:2398 -> I
    307:312:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2394:2399 -> I
    313:313:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2392:2392 -> I
    314:532:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2186:2404 -> I
    1:40:com.android.tools.r8.graph.CfCode MathMethods_addExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2408:2447 -> J
    41:41:com.android.tools.r8.graph.CfCode MathMethods_addExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2444:2444 -> J
    42:76:com.android.tools.r8.graph.CfCode MathMethods_addExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2418:2452 -> J
    1:56:com.android.tools.r8.graph.CfCode MathMethods_addExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2456:2511 -> K
    57:57:com.android.tools.r8.graph.CfCode MathMethods_addExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2508:2508 -> K
    58:105:com.android.tools.r8.graph.CfCode MathMethods_addExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2469:2516 -> K
    1:22:com.android.tools.r8.graph.CfCode MathMethods_decrementExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2520:2541 -> L
    23:23:com.android.tools.r8.graph.CfCode MathMethods_decrementExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2538:2538 -> L
    24:47:com.android.tools.r8.graph.CfCode MathMethods_decrementExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2528:2551 -> L
    1:23:com.android.tools.r8.graph.CfCode MathMethods_decrementExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2555:2577 -> M
    24:24:com.android.tools.r8.graph.CfCode MathMethods_decrementExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2574:2574 -> M
    25:49:com.android.tools.r8.graph.CfCode MathMethods_decrementExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2563:2587 -> M
    1:55:com.android.tools.r8.graph.CfCode MathMethods_floorDivInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2591:2645 -> N
    1:59:com.android.tools.r8.graph.CfCode MathMethods_floorDivLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2649:2707 -> O
    1:19:com.android.tools.r8.graph.CfCode MathMethods_floorDivLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2711:2729 -> P
    20:24:com.android.tools.r8.graph.CfCode MathMethods_floorDivLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2726:2730 -> P
    25:25:com.android.tools.r8.graph.CfCode MathMethods_floorDivLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2724:2724 -> P
    26:44:com.android.tools.r8.graph.CfCode MathMethods_floorDivLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2717:2735 -> P
    1:47:com.android.tools.r8.graph.CfCode MathMethods_floorModInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2739:2785 -> Q
    1:51:com.android.tools.r8.graph.CfCode MathMethods_floorModLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2789:2839 -> R
    1:19:com.android.tools.r8.graph.CfCode MathMethods_floorModLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2843:2861 -> S
    20:24:com.android.tools.r8.graph.CfCode MathMethods_floorModLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2858:2862 -> S
    25:25:com.android.tools.r8.graph.CfCode MathMethods_floorModLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2856:2856 -> S
    26:45:com.android.tools.r8.graph.CfCode MathMethods_floorModLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2849:2868 -> S
    1:22:com.android.tools.r8.graph.CfCode MathMethods_incrementExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2872:2893 -> T
    23:23:com.android.tools.r8.graph.CfCode MathMethods_incrementExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2890:2890 -> T
    24:47:com.android.tools.r8.graph.CfCode MathMethods_incrementExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2880:2903 -> T
    1:23:com.android.tools.r8.graph.CfCode MathMethods_incrementExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2907:2929 -> U
    24:24:com.android.tools.r8.graph.CfCode MathMethods_incrementExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2926:2926 -> U
    25:49:com.android.tools.r8.graph.CfCode MathMethods_incrementExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2915:2939 -> U
    1:40:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2943:2982 -> V
    41:41:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2979:2979 -> V
    42:76:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2953:2987 -> V
    1:31:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2991:3021 -> W
    32:34:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3020:3022 -> W
    35:50:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3018:3033 -> W
    51:53:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3032:3034 -> W
    54:68:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3030:3044 -> W
    69:71:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3043:3045 -> W
    72:88:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3041:3057 -> W
    89:91:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3056:3058 -> W
    92:160:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3054:3122 -> W
    161:161:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3119:3119 -> W
    162:277:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3012:3127 -> W
    1:19:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3131:3149 -> X
    20:24:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3146:3150 -> X
    25:25:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3144:3144 -> X
    26:44:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3137:3155 -> X
    1:22:com.android.tools.r8.graph.CfCode MathMethods_negateExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3159:3180 -> Y
    23:23:com.android.tools.r8.graph.CfCode MathMethods_negateExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3177:3177 -> Y
    24:46:com.android.tools.r8.graph.CfCode MathMethods_negateExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3167:3189 -> Y
    1:23:com.android.tools.r8.graph.CfCode MathMethods_negateExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3193:3215 -> Z
    24:24:com.android.tools.r8.graph.CfCode MathMethods_negateExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3212:3212 -> Z
    25:48:com.android.tools.r8.graph.CfCode MathMethods_negateExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3201:3224 -> 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:16:com.android.tools.r8.graph.CfCode MathMethods_nextDownDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3228:3243 -> a0
    17:19:com.android.tools.r8.graph.CfCode MathMethods_nextDownDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3242:3244 -> a0
    20:20:com.android.tools.r8.graph.CfCode MathMethods_nextDownDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3240:3240 -> a0
    21:37:com.android.tools.r8.graph.CfCode MathMethods_nextDownDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3234:3250 -> 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:16:com.android.tools.r8.graph.CfCode MathMethods_nextDownFloat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3254:3269 -> b0
    17:19:com.android.tools.r8.graph.CfCode MathMethods_nextDownFloat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3268:3270 -> b0
    20:20:com.android.tools.r8.graph.CfCode MathMethods_nextDownFloat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3266:3266 -> b0
    21:37:com.android.tools.r8.graph.CfCode MathMethods_nextDownFloat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3260:3276 -> 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:40:com.android.tools.r8.graph.CfCode MathMethods_subtractExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3280:3319 -> c0
    41:41:com.android.tools.r8.graph.CfCode MathMethods_subtractExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3316:3316 -> c0
    42:76:com.android.tools.r8.graph.CfCode MathMethods_subtractExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3290:3324 -> 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:56:com.android.tools.r8.graph.CfCode MathMethods_subtractExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3328:3383 -> d0
    57:57:com.android.tools.r8.graph.CfCode MathMethods_subtractExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3380:3380 -> d0
    58:105:com.android.tools.r8.graph.CfCode MathMethods_subtractExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3341:3388 -> 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:29:com.android.tools.r8.graph.CfCode MathMethods_toIntExact(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3392:3420 -> e0
    30:30:com.android.tools.r8.graph.CfCode MathMethods_toIntExact(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3417:3417 -> e0
    31:58:com.android.tools.r8.graph.CfCode MathMethods_toIntExact(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3401:3428 -> 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:32:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3433:3464 -> f0
    33:45:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3461:3473 -> f0
    46:49:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3471:3474 -> f0
    50:64:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3469:3483 -> f0
    65:68:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3481:3484 -> f0
    69:83:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3479:3493 -> f0
    84:87:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3491:3494 -> f0
    88:102:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3489:3503 -> f0
    103:106:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3501:3504 -> f0
    107:121:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3499:3513 -> f0
    122:125:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3511:3514 -> f0
    126:140:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3509:3523 -> f0
    141:144:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3521:3524 -> f0
    145:159:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3519:3533 -> f0
    160:163:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3531:3534 -> f0
    164:178:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3529:3543 -> f0
    179:182:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3541:3544 -> f0
    183:195:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3539:3551 -> f0
    196:198:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3550:3552 -> f0
    199:211:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3548:3560 -> f0
    212:215:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3558:3561 -> f0
    216:216:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3556:3556 -> f0
    217:345:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3441:3569 -> f0
    1:15:com.android.tools.r8.graph.CfCode CharacterMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):183:197 -> g
    1:29:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3573:3601 -> g0
    30:42:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3598:3610 -> g0
    43:46:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3608:3611 -> g0
    47:61:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3606:3620 -> g0
    62:65:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3618:3621 -> g0
    66:80:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3616:3630 -> g0
    81:84:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3628:3631 -> g0
    85:99:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3626:3640 -> g0
    100:103:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3638:3641 -> g0
    104:118:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3636:3650 -> g0
    119:122:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3648:3651 -> g0
    123:137:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3646:3660 -> g0
    138:141:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3658:3661 -> g0
    142:154:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3656:3668 -> g0
    155:157:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3667:3669 -> g0
    158:170:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3665:3677 -> g0
    171:174:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3675:3678 -> g0
    175:175:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3673:3673 -> g0
    176:281:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3581:3686 -> g0
    1:17:com.android.tools.r8.graph.CfCode CharacterMethods_toStringCodepoint(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):202:218 -> h
    18:20:com.android.tools.r8.graph.CfCode CharacterMethods_toStringCodepoint(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):217:219 -> h
    21:32:com.android.tools.r8.graph.CfCode CharacterMethods_toStringCodepoint(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):215:226 -> h
    33:35:com.android.tools.r8.graph.CfCode CharacterMethods_toStringCodepoint(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):225:227 -> h
    36:36:com.android.tools.r8.graph.CfCode CharacterMethods_toStringCodepoint(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):223:223 -> h
    37:61:com.android.tools.r8.graph.CfCode CharacterMethods_toStringCodepoint(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):208:232 -> h
    1:26:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3690:3715 -> h0
    27:39:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3712:3724 -> h0
    40:43:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3722:3725 -> h0
    44:58:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3720:3734 -> h0
    59:62:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3732:3735 -> h0
    63:77:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3730:3744 -> h0
    78:81:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3742:3745 -> h0
    82:96:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3740:3754 -> h0
    97:100:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3752:3755 -> h0
    101:113:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3750:3762 -> h0
    114:116:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3761:3763 -> h0
    117:129:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3759:3771 -> h0
    130:133:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3769:3772 -> h0
    134:134:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3767:3767 -> h0
    135:217:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3698:3780 -> h0
    1:23:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):516:538 -> i
    24:26:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):537:539 -> i
    27:59:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):535:567 -> i
    60:63:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):565:568 -> i
    64:77:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):563:576 -> i
    78:81:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):574:577 -> i
    82:101:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):572:591 -> i
    102:105:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):589:592 -> i
    106:106:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):587:587 -> i
    107:177:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):527:597 -> i
    1:27:com.android.tools.r8.graph.CfCode ObjectsMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3784:3810 -> i0
    28:32:com.android.tools.r8.graph.CfCode ObjectsMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3807:3811 -> i0
    33:33:com.android.tools.r8.graph.CfCode ObjectsMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3805:3805 -> i0
    34:59:com.android.tools.r8.graph.CfCode ObjectsMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3792:3817 -> i0
    1:23:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):601:623 -> j
    24:27:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):621:624 -> j
    28:43:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):619:634 -> j
    44:47:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):632:635 -> j
    48:62:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):630:644 -> j
    63:67:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):641:645 -> j
    68:68:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):639:639 -> j
    69:110:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):610:651 -> j
    1:76:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3821:3896 -> j0
    77:81:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3893:3897 -> j0
    82:116:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3891:3925 -> j0
    117:121:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3922:3926 -> j0
    122:156:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3920:3954 -> j0
    157:161:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3951:3955 -> j0
    162:196:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3949:3983 -> j0
    197:201:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3980:3984 -> j0
    202:236:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3978:4012 -> j0
    237:241:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4009:4013 -> j0
    242:276:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4007:4041 -> j0
    277:281:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4038:4042 -> j0
    282:316:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4036:4070 -> j0
    317:321:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4067:4071 -> j0
    322:356:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4065:4099 -> j0
    357:361:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4096:4100 -> j0
    362:396:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4094:4128 -> j0
    397:401:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4125:4129 -> j0
    402:426:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4123:4147 -> j0
    427:430:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4145:4148 -> j0
    431:431:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4143:4143 -> j0
    432:720:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3865:4153 -> j0
    1:26:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):655:680 -> k
    27:29:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):679:681 -> k
    30:60:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):677:707 -> k
    61:63:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):706:708 -> k
    64:76:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):704:716 -> k
    77:80:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):714:717 -> k
    81:96:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):712:727 -> k
    97:99:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):726:728 -> k
    100:112:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):724:736 -> k
    113:116:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):734:737 -> k
    117:136:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):732:751 -> k
    137:141:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):748:752 -> k
    142:161:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):746:765 -> k
    162:174:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):762:774 -> k
    175:178:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):772:775 -> k
    179:193:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):770:784 -> k
    194:197:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):782:785 -> k
    198:210:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):780:792 -> k
    211:213:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):791:793 -> k
    214:226:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):789:801 -> k
    227:230:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):799:802 -> k
    231:250:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):797:816 -> k
    251:254:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):814:817 -> k
    255:255:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):812:812 -> k
    256:409:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):669:822 -> k
    1:25:com.android.tools.r8.graph.CfCode ObjectsMethods_equals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4157:4181 -> k0
    26:29:com.android.tools.r8.graph.CfCode ObjectsMethods_equals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4179:4182 -> k0
    30:30:com.android.tools.r8.graph.CfCode ObjectsMethods_equals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4177:4177 -> k0
    31:59:com.android.tools.r8.graph.CfCode ObjectsMethods_equals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4166:4194 -> k0
    1:24:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):826:849 -> l
    25:27:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):848:850 -> l
    28:60:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):846:878 -> l
    61:64:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):876:879 -> l
    65:78:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):874:887 -> l
    79:82:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):885:888 -> l
    83:101:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):883:901 -> l
    102:114:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):898:910 -> l
    115:118:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):908:911 -> l
    119:133:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):906:920 -> l
    134:137:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):918:921 -> l
    138:150:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):916:928 -> l
    151:153:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):927:929 -> l
    154:166:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):925:937 -> l
    167:170:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):935:938 -> l
    171:190:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):933:952 -> l
    191:194:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):950:953 -> l
    195:195:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):948:948 -> l
    196:316:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):838:958 -> l
    1:22:com.android.tools.r8.graph.CfCode ObjectsMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4198:4219 -> l0
    23:23:com.android.tools.r8.graph.CfCode ObjectsMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4216:4216 -> l0
    24:43:com.android.tools.r8.graph.CfCode ObjectsMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4206:4225 -> l0
    1:13:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyEnumeration(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):963:975 -> m
    14:16:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyEnumeration(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):974:976 -> m
    17:29:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyEnumeration(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):972:984 -> m
    30:33:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyEnumeration(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):982:985 -> m
    34:34:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyEnumeration(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):980:980 -> m
    35:56:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyEnumeration(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):968:989 -> m
    1:21:com.android.tools.r8.graph.CfCode ObjectsMethods_isNull(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4229:4249 -> m0
    1:13:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):993:1005 -> n
    14:16:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1004:1006 -> n
    17:28:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1002:1013 -> n
    29:31:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1012:1014 -> n
    32:32:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1010:1010 -> n
    33:53:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):998:1018 -> n
    1:21:com.android.tools.r8.graph.CfCode ObjectsMethods_nonNull(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4253:4273 -> n0
    1:13:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyListIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1023:1035 -> o
    14:16:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyListIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1034:1036 -> o
    17:28:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyListIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1032:1043 -> o
    29:31:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyListIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1042:1044 -> o
    32:32:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyListIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1040:1040 -> o
    33:53:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyListIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1028:1048 -> o
    1:24:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4278:4301 -> o0
    25:29:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4298:4302 -> o0
    30:30:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4296:4296 -> o0
    31:53:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4285:4307 -> o0
    1:16:com.android.tools.r8.graph.CfCode DoubleMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1052:1067 -> p
    17:19:com.android.tools.r8.graph.CfCode DoubleMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1066:1068 -> p
    20:20:com.android.tools.r8.graph.CfCode DoubleMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1064:1064 -> p
    21:43:com.android.tools.r8.graph.CfCode DoubleMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1059:1081 -> p
    1:25:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4312:4336 -> p0
    26:30:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4333:4337 -> p0
    31:45:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4331:4345 -> p0
    46:48:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4344:4346 -> p0
    49:66:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4342:4359 -> p0
    67:71:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4356:4360 -> p0
    72:72:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4354:4354 -> p0
    73:118:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4320:4365 -> p0
    1:17:com.android.tools.r8.graph.CfCode DoubleMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1085:1101 -> q
    18:20:com.android.tools.r8.graph.CfCode DoubleMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1100:1102 -> q
    21:34:com.android.tools.r8.graph.CfCode DoubleMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1098:1111 -> q
    35:37:com.android.tools.r8.graph.CfCode DoubleMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1110:1112 -> q
    38:38:com.android.tools.r8.graph.CfCode DoubleMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1108:1108 -> q
    39:69:com.android.tools.r8.graph.CfCode DoubleMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1093:1123 -> q
    1:23:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullMessage(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4370:4392 -> q0
    24:27:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullMessage(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4390:4393 -> q0
    28:28:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullMessage(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4388:4388 -> q0
    29:52:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullMessage(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4378:4401 -> q0
    1:17:com.android.tools.r8.graph.CfCode FloatMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1127:1143 -> r
    18:20:com.android.tools.r8.graph.CfCode FloatMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1142:1144 -> r
    21:34:com.android.tools.r8.graph.CfCode FloatMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1140:1153 -> r
    35:37:com.android.tools.r8.graph.CfCode FloatMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1152:1154 -> r
    38:38:com.android.tools.r8.graph.CfCode FloatMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1150:1150 -> r
    39:69:com.android.tools.r8.graph.CfCode FloatMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1135:1165 -> r
    1:18:com.android.tools.r8.graph.CfCode ObjectsMethods_toString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4405:4422 -> r0
    19:23:com.android.tools.r8.graph.CfCode ObjectsMethods_toString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4419:4423 -> r0
    24:24:com.android.tools.r8.graph.CfCode ObjectsMethods_toString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4417:4417 -> r0
    25:42:com.android.tools.r8.graph.CfCode ObjectsMethods_toString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4411:4428 -> r0
    1:29:com.android.tools.r8.graph.CfCode IntegerMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1169:1197 -> s
    1:22:com.android.tools.r8.graph.CfCode ObjectsMethods_toStringDefault(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4432:4453 -> s0
    23:25:com.android.tools.r8.graph.CfCode ObjectsMethods_toStringDefault(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4452:4454 -> s0
    26:26:com.android.tools.r8.graph.CfCode ObjectsMethods_toStringDefault(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4450:4450 -> s0
    27:47:com.android.tools.r8.graph.CfCode ObjectsMethods_toStringDefault(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4440:4460 -> s0
    1:30:com.android.tools.r8.graph.CfCode IntegerMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1201:1230 -> t
    31:35:com.android.tools.r8.graph.CfCode IntegerMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1227:1231 -> t
    36:36:com.android.tools.r8.graph.CfCode IntegerMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1225:1225 -> t
    37:64:com.android.tools.r8.graph.CfCode IntegerMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1209:1236 -> t
    1:18:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4464:4481 -> t0
    19:33:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4478:4492 -> t0
    34:36:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4491:4493 -> t0
    37:49:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4489:4501 -> t0
    50:53:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4499:4502 -> t0
    54:69:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4497:4512 -> t0
    70:70:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4509:4509 -> t0
    71:116:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4473:4518 -> t0
    1:30:com.android.tools.r8.graph.CfCode IntegerMethods_divideUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1240:1269 -> u
    1:18:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4523:4540 -> u0
    19:33:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4537:4551 -> u0
    34:44:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4548:4558 -> u0
    45:47:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4557:4559 -> u0
    48:62:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4555:4569 -> u0
    63:63:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4566:4566 -> u0
    64:107:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4532:4575 -> u0
    1:18:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1273:1290 -> v
    19:23:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1287:1291 -> v
    24:24:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1285:1285 -> v
    25:42:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1279:1296 -> v
    1:18:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4580:4597 -> v0
    19:33:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4594:4608 -> v0
    34:44:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4605:4615 -> v0
    45:47:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4614:4616 -> v0
    48:62:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4612:4626 -> v0
    63:63:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4623:4623 -> v0
    64:107:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4589:4632 -> v0
    1:20:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1301:1320 -> w
    21:35:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1317:1331 -> w
    36:38:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1330:1332 -> w
    39:56:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1328:1345 -> w
    57:60:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1343:1346 -> w
    61:79:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1341:1359 -> w
    80:84:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1356:1360 -> w
    85:111:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1354:1380 -> w
    112:124:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1377:1389 -> w
    125:128:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1387:1390 -> w
    129:143:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1385:1399 -> w
    144:147:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1397:1400 -> w
    148:162:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1395:1409 -> w
    163:166:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1407:1410 -> w
    167:181:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1405:1419 -> w
    182:185:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1417:1420 -> w
    186:201:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1415:1430 -> w
    202:205:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1428:1431 -> w
    206:218:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1426:1438 -> w
    219:221:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1437:1439 -> w
    222:234:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1435:1447 -> w
    235:238:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1445:1448 -> w
    239:239:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1443:1443 -> w
    240:385:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1312:1457 -> w
    1:18:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4637:4654 -> w0
    19:33:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4651:4665 -> w0
    34:44:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4662:4672 -> w0
    45:47:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4671:4673 -> w0
    48:62:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4669:4683 -> w0
    63:63:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4680:4680 -> w0
    64:107:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4646:4689 -> w0
    1:30:com.android.tools.r8.graph.CfCode IntegerMethods_remainderUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1461:1490 -> x
    1:20:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4693:4712 -> x0
    21:24:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4710:4713 -> x0
    25:40:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4708:4723 -> x0
    41:57:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4720:4736 -> x0
    58:60:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4735:4737 -> x0
    61:77:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4733:4749 -> x0
    78:81:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4747:4750 -> x0
    82:89:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4745:4752 -> x0
    90:143:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4703:4756 -> x0
    1:16:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1494:1509 -> y
    1:17:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4760:4776 -> y0
    18:31:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4773:4786 -> y0
    32:34:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4785:4787 -> y0
    35:47:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4783:4795 -> y0
    48:51:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4793:4796 -> y0
    52:66:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4791:4805 -> y0
    67:69:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4804:4806 -> y0
    70:70:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4802:4802 -> y0
    71:114:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4768:4811 -> y0
    1:18:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1513:1530 -> z
    19:23:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1527:1531 -> z
    24:24:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1525:1525 -> z
    25:42:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1519:1536 -> z
    1:15:com.android.tools.r8.graph.CfCode ShortMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4815:4829 -> z0
com.android.tools.r8.ir.desugar.backports.BooleanMethodRewrites -> com.android.tools.r8.w.c.R.b:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():17:17 -> <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):20:24 -> 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):23:23 -> 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):29:33 -> 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):32:32 -> 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):38:42 -> 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):41:41 -> c
com.android.tools.r8.ir.desugar.backports.CollectionMethodGenerators -> com.android.tools.r8.w.c.R.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.w.c.R.d:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():14:14 -> <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):20:20 -> 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):35:41 -> 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):30:30 -> 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):25:25 -> c
com.android.tools.r8.ir.desugar.backports.FloatMethodRewrites -> com.android.tools.r8.w.c.R.e:
    boolean com.android.tools.r8.utils.NumberUtils.is16Bit(long) -> a
    1:4:java.util.Set com.android.tools.r8.utils.CollectionUtils.mergeSets(java.util.Collection,java.util.Collection):13:16 -> a
    5:6:java.util.Deque com.android.tools.r8.utils.DequeUtils.newArrayDeque(java.lang.Object):13:14 -> a
    7:11:boolean com.android.tools.r8.ir.optimize.ArgumentRemovalUtils.isPinned(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView):16:20 -> a
    12:15:void rewriteHashCode(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):18:21 -> a
    16:17:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(java.lang.Iterable):22:23 -> a
    18:18:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(int):28:28 -> a
    19:21:java.util.Set com.android.tools.r8.utils.SetUtils.mapIdentityHashSet(java.util.Set,java.util.function.Function):38:40 -> a
    22:22:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureFromTo(int,int,int):57:57 -> a
    23:23:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureFromTo(int,int,int):56:56 -> a
    24:24:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureFromTo(int,int,int):55:55 -> a
    25:32:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):58:65 -> a
    33:39:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:67 -> a
    40:41:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:62 -> a
    42:51:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:70 -> a
    52:59:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:68 -> a
    60:62:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:63 -> a
    63:66:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:64 -> a
    67:72:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:66 -> a
    73:81:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:69 -> 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:9: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):29:35 -> b
    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):19:24 -> c
com.android.tools.r8.ir.desugar.backports.LongMethodRewrites -> com.android.tools.r8.w.c.R.f:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():16:16 -> <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):22:25 -> 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):24:24 -> a
com.android.tools.r8.ir.desugar.backports.NumericMethodRewrites -> com.android.tools.r8.w.c.R.g:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():12:12 -> <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):33:36 -> 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):23:28 -> 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):15:17 -> 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):16:18 -> c
com.android.tools.r8.ir.optimize.AliasIntroducer -> com.android.tools.r8.ir.optimize.a:
    com.android.tools.r8.graph.AppView appView -> a
    1:2:void <init>(com.android.tools.r8.graph.AppView):23:24 -> <init>
    1:4:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):30:33 -> a
    5:33:void insertAssumeNoneInstructionsInBlock(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock):40:68 -> a
    34:49:void insertAssumeNoneInstructionsInBlock(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock):67:82 -> a
    50:50:boolean lambda$insertAssumeNoneInstructionsInBlock$0(com.android.tools.r8.ir.code.Instruction):80:80 -> a
    51:52:void lambda$insertAssumeNoneInstructionsInBlock$1(com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Assume):83:84 -> a
com.android.tools.r8.ir.optimize.AssumeDynamicTypeRemover -> com.android.tools.r8.ir.optimize.b:
    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:void removeMarkedInstructions(java.util.Set):88:97 -> a
    33:34:void finish():105:106 -> a
    35:35:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    35:35:void finish():106 -> a
    36:36:void finish():106:106 -> a
    1:1:boolean mayHaveIntroducedTrivialPhi():48:48 -> b
com.android.tools.r8.ir.optimize.Assumer -> com.android.tools.r8.ir.optimize.Assumer:
    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 -> insertAssumeInstructions
com.android.tools.r8.ir.optimize.BasicBlockInstructionsEquivalence -> com.android.tools.r8.ir.optimize.c:
    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.e:
    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>():40:40 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):58:58 -> <init>
    2:9:void <init>(com.android.tools.r8.graph.AppView):55:62 -> <init>
    1:6:void logResults():67:72 -> a
    7:7:void logResults():71:71 -> a
    8:33:void collectCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode):80:105 -> a
    34:50:void collectCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode):103:119 -> a
    51:57:void collectCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode):118:124 -> a
    58:80:void recordArgumentsIfNecessary(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):132:154 -> a
    81:100:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):161:180 -> a
    101:101:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isDefinitelyNull():330:330 -> a
    101:101:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):184 -> a
    102:112:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):185:195 -> a
    113:113:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> a
    113:113:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):195 -> a
    114:124:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):196:206 -> a
    125:125:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isDefinitelyNotNull():334:334 -> a
    125:125:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):207 -> a
    126:126:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):209:209 -> a
    127:127:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isDefinitelyNotNull():334:334 -> a
    127:127:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):209 -> a
    128:128:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):211:211 -> a
    129:129:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> a
    129:129:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):210 -> a
    130:151:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):212:233 -> a
    152:152:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    152:152:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):233 -> a
    153:153:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):233:233 -> a
    154:179:void revisitMethods(com.android.tools.r8.utils.ThrowingBiConsumer,java.util.concurrent.ExecutorService):241:266 -> a
    180:187:void revisitMethods(com.android.tools.r8.utils.ThrowingBiConsumer,java.util.concurrent.ExecutorService):265:272 -> a
    188:188:java.lang.Object lambda$revisitMethods$0(com.android.tools.r8.utils.ThrowingBiConsumer,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):268:268 -> a
com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator$Mode -> com.android.tools.r8.ir.optimize.d:
    com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator$Mode COLLECT -> a
    com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator$Mode REVISIT -> b
    1:3:void <clinit>():48:50 -> <clinit>
    1:1:void <init>(java.lang.String,int):47:47 -> <init>
com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization -> com.android.tools.r8.ir.optimize.g:
    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>():61:61 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):100:100 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):98:103 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$000(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization):61:61 -> a
    2:6:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):107:111 -> a
    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    7:7:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):111 -> a
    8:27:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):119:138 -> a
    28:52:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):259:283 -> a
    28:52:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):138 -> a
    53:53:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):287:287 -> a
    53:53:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):283 -> a
    53:53:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):138 -> a
    54:54:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    54:54:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):287 -> a
    54:54:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):283 -> a
    54:54:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):138 -> a
    55:89:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):289:323 -> a
    55:89:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):283 -> a
    55:89:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):138 -> a
    90:90: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
    90:90:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):323 -> a
    90:90:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):283 -> a
    90:90:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):138 -> a
    91:93:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):323:325 -> a
    91:93:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):283 -> a
    91:93:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):138 -> a
    94:94:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):138:138 -> a
    95:95:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):325:325 -> a
    95:95:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):283 -> a
    95:95:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):138 -> a
    96:104:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):139:147 -> a
    105:105:boolean com.android.tools.r8.ir.code.ConstNumber.getBooleanValue():72:72 -> a
    105:105:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):148 -> a
    106:122:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):148:164 -> a
    123:155:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):140:172 -> a
    156:156:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> a
    156:156:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):176 -> a
    157:183:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):177:203 -> a
    184:184:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> a
    184:184:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):204 -> a
    185:185:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):204:204 -> a
    186:186:void com.android.tools.r8.utils.IteratorUtils.removeIf(com.android.tools.r8.ir.code.InstructionListIterator,java.util.function.Predicate):95:95 -> a
    186:186:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):204 -> a
    187:231:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):210:254 -> a
    232:232:com.android.tools.r8.graph.DexField lambda$optimize$0(com.android.tools.r8.graph.DexEncodedField):222:222 -> a
    233:234:void lambda$optimize$1():243:244 -> a
    235:235:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):331:331 -> a
    236:236:java.util.IdentityHashMap com.android.tools.r8.com.google.common.collect.Maps.newIdentityHashMap():511:511 -> a
    236:236:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):333 -> a
    237:237:java.util.IdentityHashMap com.android.tools.r8.com.google.common.collect.Maps.newIdentityHashMap():511:511 -> a
    237:237:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):334 -> a
    238:359:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):335:456 -> a
    360:467:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):349:456 -> a
    468:566:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):358:456 -> a
    567:569:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):365:367 -> a
    570:571:boolean com.android.tools.r8.graph.DexClass.definesStaticField(com.android.tools.r8.graph.DexField):445:446 -> a
    570:571:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):368 -> a
    572:572:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):369:369 -> a
    573:577:boolean com.android.tools.r8.ir.code.Value.isDexItemBasedConstStringThatNeedsToComputeClassName():818:822 -> a
    573:577:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):374 -> a
    578:596:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):377:395 -> a
    597:604:boolean isClassNameConstantOf(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.StaticPut):490:497 -> a
    597:604:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):402 -> a
    605:612:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):404:411 -> a
    613:613:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isDefinitelyNotNull():334:334 -> a
    613:613:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):411 -> a
    614:658:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):412:456 -> a
    659:689:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):426:456 -> a
    690:714:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):432:456 -> a
    715:722:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):451:458 -> a
    723:723:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):456:456 -> a
    724:724:java.util.Set lambda$findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts$2(com.android.tools.r8.graph.DexField):420:420 -> a
    725:726:java.util.Collection validateFinalFieldPuts(java.util.Map,java.util.Map):483:484 -> a
    727:735:boolean isClassNameConstantOf(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Instruction):501:509 -> a
com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$WaveDoneAction -> com.android.tools.r8.ir.optimize.f:
    java.util.Map fieldsWithStaticValues -> a
    com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization this$0 -> c
    java.util.Set noLongerWrittenFields -> b
    1:3:void <init>(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization,java.util.Map,java.util.Set):70:72 -> <init>
    1:2:void join(java.util.Map,java.util.Set):78:79 -> a
    3:5:void execute():85:87 -> a
    6:10:void execute():86:90 -> a
com.android.tools.r8.ir.optimize.CodeRewriter -> com.android.tools.r8.ir.optimize.h:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
    com.android.tools.r8.graph.AppView appView -> b
    boolean $assertionsDisabled -> e
    com.android.tools.r8.utils.InternalOptions options -> d
    com.android.tools.r8.ir.conversion.IRConverter converter -> a
    1:1:void <clinit>():134:134 -> <clinit>
    1:5:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):153:157 -> <init>
    boolean lambda$computeConstantArrayValues$9(com.android.tools.r8.ir.code.NewArrayEmpty,com.android.tools.r8.ir.code.Instruction) -> a
    1:1:boolean lambda$removedTrivialGotos$0(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):231:231 -> a
    2:25: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):315:338 -> a
    26:26:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):405:405 -> a
    27:27:boolean com.android.tools.r8.utils.InternalOptions.canHaveDex2OatInliningIssue():1278:1278 -> a
    27:27:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):405 -> a
    28:29:boolean com.android.tools.r8.ir.code.IRCode.hasCatchHandlers():629:630 -> a
    28:29:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):405 -> a
    30:41:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):412:423 -> a
    42:42:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.previous():27:27 -> a
    42:42:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):423 -> a
    43:50:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):424:431 -> a
    51:87: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):583:619 -> a
    88:88:java.lang.Object com.android.tools.r8.ir.optimize.CodeRewriter$InstructionBuilder.setBlockNumber(int):447:447 -> a
    88:88: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):620 -> a
    89:103: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:635 -> a
    104:104:java.lang.Object com.android.tools.r8.ir.optimize.CodeRewriter$InstructionBuilder.setBlockNumber(int):447:447 -> a
    104:104: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):636 -> a
    105:114: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:646 -> a
    115:128: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):696:709 -> a
    129:129: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):706:706 -> a
    130:141:void tryAddToBiggestSavings(java.util.Set,java.util.PriorityQueue,com.android.tools.r8.ir.optimize.CodeRewriter$Interval,int):719:730 -> a
    142:149:int sizeForKeysWrittenAsIfs(com.android.tools.r8.ir.code.ValueType,java.util.Collection):735:742 -> a
    150:150:int codeUnitMargin():749:749 -> a
    151:151: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):911:911 -> a
    152:152:void lambda$removeSwitchMaps$2(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):1088:1088 -> a
    153:153:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1152:1152 -> a
    154:154:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1151:1151 -> a
    155:161:com.android.tools.r8.graph.DexType getArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1162:1168 -> a
    155:161:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1155 -> a
    162:162:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1155:1155 -> a
    163:167:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1154:1158 -> a
    168:175:void processAssertions(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1312:1319 -> a
    176:176:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    176:176:void processAssertions(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1319 -> a
    177:179:void processAssertions(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1323:1325 -> a
    180:180:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> a
    180:180:void processAssertions(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1330 -> a
    181:185:void processAssertions(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1331:1335 -> a
    186:186:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1026:1026 -> a
    186:186:void processAssertions(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1336 -> a
    187:199:void processAssertions(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1336:1348 -> a
    200:200:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1026:1026 -> a
    200:200:void processAssertions(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1347 -> a
    201:201:void processAssertions(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1346:1346 -> a
    202:212:boolean removeInstanceOfInstructionIfTrivial(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode):1491:1501 -> a
    213:213:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isDefinitelyNull():330:330 -> a
    213:213:boolean removeInstanceOfInstructionIfTrivial(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode):1502 -> a
    214:233:boolean removeInstanceOfInstructionIfTrivial(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode):1503:1522 -> a
    234:253:boolean removeInstanceOfInstructionIfTrivial(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode):1521:1540 -> a
    254:254:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isDefinitelyNull():330:330 -> a
    254:254:boolean removeInstanceOfInstructionIfTrivial(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode):1541 -> a
    255:271:boolean removeInstanceOfInstructionIfTrivial(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode):1542:1558 -> a
    272:272:boolean lambda$removeInstanceOfInstructionIfTrivial$3(com.android.tools.r8.ir.code.Value):1533:1533 -> a
    273:275:boolean isNeverInstantiatedDirectlyOrIndirectly(com.android.tools.r8.graph.DexType):1565:1567 -> a
    276:276:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    276:276:boolean isNeverInstantiatedDirectlyOrIndirectly(com.android.tools.r8.graph.DexType):1567 -> a
    277:278:boolean isNeverInstantiatedDirectlyOrIndirectly(com.android.tools.r8.graph.DexType):1569:1570 -> a
    279:289: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):1575:1585 -> a
    290:291:boolean lambda$shortenLiveRanges$5(com.android.tools.r8.ir.code.ConstInstruction):1751:1752 -> a
    292:384:void shortenLiveRangesInsideBlock(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.com.google.common.base.Supplier,java.util.Map,java.util.function.Predicate):1815:1907 -> a
    385:397:void insertConstantInBlock(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.IRCode):1912:1924 -> a
    398:400:boolean lambda$insertConstantInBlock$8(com.android.tools.r8.ir.code.Instruction,boolean,com.android.tools.r8.ir.code.Instruction):1918:1920 -> a
    401:401:boolean com.android.tools.r8.utils.InternalOptions.canHaveCmpIfFloatBug():1239:1239 -> a
    401:401:boolean lambda$insertConstantInBlock$8(com.android.tools.r8.ir.code.Instruction,boolean,com.android.tools.r8.ir.code.Instruction):1921 -> a
    402:402:boolean lambda$insertConstantInBlock$8(com.android.tools.r8.ir.code.Instruction,boolean,com.android.tools.r8.ir.code.Instruction):1921:1921 -> a
    403:450:com.android.tools.r8.ir.code.ConstInstruction[] computeConstantArrayValues(com.android.tools.r8.ir.code.NewArrayEmpty,com.android.tools.r8.ir.code.BasicBlock,int):1959:2006 -> a
    451:456:boolean isCSEInstructionCandidate(com.android.tools.r8.ir.code.Instruction):2334:2339 -> a
    457:457:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2355:2355 -> a
    458:464:boolean hasCSECandidate(com.android.tools.r8.ir.code.IRCode,int):2343:2349 -> a
    458:464:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2356 -> a
    465:467:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2358:2360 -> a
    468:468:void com.android.tools.r8.ir.code.DominatorTree.<init>(com.android.tools.r8.ir.code.IRCode):37:37 -> a
    468:468:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2360 -> a
    469:482:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2361:2374 -> a
    483:492:boolean shareCatchHandlers(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):2321:2330 -> a
    483:492:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2375 -> a
    493:508:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2376:2391 -> a
    509:510: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):2541:2542 -> a
    511:511:int negateBoolean(com.android.tools.r8.ir.code.ConstNumber):2707:2707 -> a
    512:512:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():905:905 -> a
    512:512:int negateBoolean(com.android.tools.r8.ir.code.ConstNumber):2707 -> a
    513:514:int negateBoolean(com.android.tools.r8.ir.code.ConstNumber):2707:2708 -> a
    515:542:boolean replaceDominatedConstNumbers(long,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.com.google.common.base.Supplier,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.base.Supplier):2718:2745 -> a
    543:543:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():905:905 -> a
    543:543:boolean replaceDominatedConstNumbers(long,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.com.google.common.base.Supplier,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.base.Supplier):2749 -> a
    544:558:boolean replaceDominatedConstNumbers(long,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.com.google.common.base.Supplier,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.base.Supplier):2764:2778 -> a
    559:584:boolean isBlockSupportedBySimplifyKnownBooleanCondition(com.android.tools.r8.ir.code.BasicBlock):2952:2977 -> a
    585:587: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):2988:2990 -> a
    588:590: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
    588:590: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):2990 -> a
    591:592: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):2991:2992 -> a
    593:613:void rewriteAssertionErrorTwoArgumentConstructor(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):3149:3169 -> a
    614:614: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):38:38 -> a
    614:614:void rewriteAssertionErrorTwoArgumentConstructor(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):3169 -> a
    615:631:void rewriteAssertionErrorTwoArgumentConstructor(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):3169:3185 -> a
    632:632:void rewriteAssertionErrorTwoArgumentConstructor(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):3184:3184 -> a
    633:633:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> a
    633:633:void rewriteAssertionErrorTwoArgumentConstructor(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):3183 -> a
    634:645:void rewriteAssertionErrorTwoArgumentConstructor(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):3183:3194 -> a
    646:668:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3205:3227 -> a
    669:669: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
    669:669:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3227 -> a
    670:670:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3228:3228 -> a
    671:705: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):3265:3299 -> a
    671:705:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3232 -> a
    706:728:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3233:3255 -> a
    729:729: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
    729:729:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3255 -> a
    730:734:void updateDebugLocalsRegisterMap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):3310:3314 -> a
    735:735: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
    735:735:void updateDebugLocalsRegisterMap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):3314 -> a
    736:740:void updateDebugLocalsRegisterMap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):3315:3319 -> a
    741:741:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3372:3372 -> a
    742:746:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3378:3382 -> a
    742:746:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3374 -> a
    747:747:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    747:747:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3382 -> a
    747:747:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3374 -> a
    748:748:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3387:3387 -> a
    748:748:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3374 -> a
    749:749:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3384:3384 -> a
    749:749:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3374 -> a
    750:750:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    750:750:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3384 -> a
    750:750:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3374 -> a
    751:751:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3384:3384 -> a
    751:751:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3374 -> a
    752:753: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):3393:3394 -> a
    754:754:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> a
    754:754: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):3395 -> a
    755:755: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):3397:3397 -> a
    756:756:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    756:756: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):3397 -> a
    757:758: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):3397:3398 -> a
    759:779:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3408:3428 -> a
    780:780:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> a
    780:780:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3427 -> a
    781:787:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3430:3436 -> a
    788:826:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3434:3472 -> a
    827:830: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):1392:1395 -> a
    827:830:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3472 -> a
    831:853:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3473:3495 -> a
    854:854:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> a
    854:854:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3495 -> a
    855:856:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3496:3497 -> a
    857:872:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3496:3511 -> a
    873:880:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3515:3522 -> a
    881:891:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3535:3545 -> a
    881:891:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3522 -> a
    892:892:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3523:3523 -> a
    893:918:void replaceTrivialNewInstancePhis(com.android.tools.r8.ir.code.Value):3568:3593 -> a
    893:918:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3523 -> a
    919:923:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3524:3528 -> a
    924:924:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3525:3525 -> a
    925:925:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    925:925:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3525 -> a
    926:926:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    926:926:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    926:926:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3525 -> a
    927:927:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3525:3525 -> a
    928:928:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3543:3543 -> a
    928:928:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3522 -> a
    929:929:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    929:929:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3543 -> a
    929:929:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3522 -> a
    930:930:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    930:930:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    930:930:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3543 -> a
    930:930:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3522 -> a
    931:931:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3543:3543 -> a
    931:931:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3522 -> a
    932:932:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3539:3539 -> a
    932:932:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3522 -> a
    933:933:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    933:933:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3539 -> a
    933:933:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3522 -> a
    934:934:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    934:934:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    934:934:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3539 -> a
    934:934:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3522 -> a
    935:935:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3539:3539 -> a
    935:935:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3522 -> a
    936:942:void recursiveAddOperands(com.android.tools.r8.ir.code.Phi,java.util.Set,java.util.Set):3549:3555 -> a
    1:2:boolean isFallthroughBlock(com.android.tools.r8.ir.code.BasicBlock):303:304 -> b
    3:12:void unlinkTrivialGotoBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):343:352 -> b
    13:13:boolean lambda$shortenLiveRanges$6(com.android.tools.r8.ir.code.ConstInstruction):1760:1760 -> b
    14:60:void processMethodsNeverReturningNormally(com.android.tools.r8.ir.code.IRCode):2789:2835 -> b
    61:62:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createConstNull(com.android.tools.r8.graph.DebugLocalInfo):1059:1060 -> b
    61:62:void processMethodsNeverReturningNormally(com.android.tools.r8.ir.code.IRCode):2835 -> b
    63:74:void processMethodsNeverReturningNormally(com.android.tools.r8.ir.code.IRCode):2836:2847 -> b
    75:75:boolean lambda$logArgumentTypes$12(com.android.tools.r8.ir.code.Instruction):3417:3417 -> b
    76:78:com.android.tools.r8.graph.DexMethod lambda$workaroundNumberConversionRegisterAllocationBug$13():3656:3658 -> b
    79:79:com.android.tools.r8.graph.DexMethod lambda$workaroundNumberConversionRegisterAllocationBug$13():3656:3656 -> b
    1:4:boolean shouldBeLitInstruction(com.android.tools.r8.ir.code.Instruction):1673:1676 -> c
    5:13:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop):1691:1699 -> c
    5:13:boolean shouldBeLitInstruction(com.android.tools.r8.ir.code.Instruction):1677 -> c
    14:14:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> c
    14:14:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop):1699 -> c
    14:14:boolean shouldBeLitInstruction(com.android.tools.r8.ir.code.Instruction):1677 -> c
    15:17:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop):1699:1701 -> c
    15:17:boolean shouldBeLitInstruction(com.android.tools.r8.ir.code.Instruction):1677 -> c
    18:25:boolean hasPath(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):1722:1729 -> c
    18:25:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop):1702 -> c
    18:25:boolean shouldBeLitInstruction(com.android.tools.r8.ir.code.Instruction):1677 -> c
    26:27:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop):1707:1708 -> c
    26:27:boolean shouldBeLitInstruction(com.android.tools.r8.ir.code.Instruction):1677 -> c
    28:28:java.util.List lambda$shortenLiveRangesInsideBlock$7(com.android.tools.r8.ir.code.BasicBlock):1901:1901 -> c
    29:79:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2567:2617 -> c
    80:80:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():905:905 -> c
    80:80:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2618 -> c
    81:90:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2620:2629 -> c
    91:91:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2628:2628 -> c
    92:92:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():905:905 -> c
    92:92:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2635 -> c
    93:93:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2638:2638 -> c
    94:107:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2637:2650 -> c
    108:108:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2649:2649 -> c
    109:109:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():905:905 -> c
    109:109:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2656 -> c
    110:110:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2659:2659 -> c
    111:130:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2658:2677 -> c
    1:1:void removeAssumeInstructions(com.android.tools.r8.ir.code.IRCode):170:170 -> d
    2:2:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> d
    2:2:void removeAssumeInstructions(com.android.tools.r8.ir.code.IRCode):172 -> d
    3:25:void removeAssumeInstructions(com.android.tools.r8.ir.code.IRCode):174:196 -> d
    26:26:void com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(java.util.Set):1093:1093 -> d
    26:26:void removeAssumeInstructions(com.android.tools.r8.ir.code.IRCode):208 -> d
    27:28:void removeAssumeInstructions(com.android.tools.r8.ir.code.IRCode):211:212 -> d
    29:29:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> d
    29:29:void removeAssumeInstructions(com.android.tools.r8.ir.code.IRCode):212 -> d
    30:33:void removeAssumeInstructions(com.android.tools.r8.ir.code.IRCode):212:215 -> d
    34:34:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> d
    34:34:void removeAssumeInstructions(com.android.tools.r8.ir.code.IRCode):172 -> d
    1:6:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):1055:1060 -> e
    7:45:com.android.tools.r8.ir.optimize.SwitchUtils$EnumSwitchInfo com.android.tools.r8.ir.optimize.SwitchUtils.analyzeSwitchOverEnum(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.AppView):63:101 -> e
    7:45:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):1060 -> e
    46:53:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):1062:1069 -> e
    54:54:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.toIntArray(int[]):167:167 -> e
    54:54:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.toIntArray():155 -> e
    54:54:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):1069 -> e
    55:66:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):1070:1081 -> e
    67:67:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):282:282 -> e
    67:67:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):1083 -> e
    68:76:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):1086:1094 -> e
    1:27:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1360:1386 -> f
    28:28:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> f
    28:28:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1386 -> f
    29:29:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1387:1387 -> f
    30:30:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> f
    30:30:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1388 -> f
    31:36:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1390:1395 -> f
    37:53: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):1427:1443 -> f
    37:53:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1395 -> f
    54:54:boolean com.android.tools.r8.graph.DexType.isFloatType():216:216 -> f
    54:54: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):1443 -> f
    54:54:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1395 -> f
    55:92: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):1444:1481 -> f
    55:92:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1395 -> f
    93:93:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isDefinitelyNull():330:330 -> f
    93:93: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):1481 -> f
    93:93:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1395 -> f
    94:96: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):1481:1483 -> f
    94:96:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1395 -> f
    97:105:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1396:1404 -> f
    106:106:void com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(java.util.Set):1093:1093 -> f
    106:106:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1416 -> f
    107:111:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1417:1421 -> f
    1:1:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):3043:3043 -> g
    2:2:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> g
    2:2:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):3047 -> g
    3:65:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):3048:3110 -> g
    1:1:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> h
    1:1:void rewriteKnownArrayLengthCalls(com.android.tools.r8.ir.code.IRCode):3114 -> h
    2:26:void rewriteKnownArrayLengthCalls(com.android.tools.r8.ir.code.IRCode):3115:3139 -> h
    27:27:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1026:1026 -> h
    27:27:void rewriteKnownArrayLengthCalls(com.android.tools.r8.ir.code.IRCode):3140 -> h
    28:32:void rewriteKnownArrayLengthCalls(com.android.tools.r8.ir.code.IRCode):3141:3145 -> h
    1:1:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1173:1173 -> i
    2:2:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> i
    2:2:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1173 -> i
    3:36:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1176:1209 -> i
    37:84:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1208:1255 -> i
    85:85:void com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(java.util.Set):1093:1093 -> i
    85:85:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1256 -> i
    86:87:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1257:1258 -> i
    88:88:void com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(java.util.Set):1093:1093 -> i
    88:88:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1259 -> i
    89:90:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1261:1262 -> i
    91:91:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> i
    91:91:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1262 -> i
    92:94:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1262:1264 -> i
    1:58:void rewriteThrowNullPointerException(com.android.tools.r8.ir.code.IRCode):242:299 -> j
    1:17:void rewriteThrowableAddAndGetSuppressed(com.android.tools.r8.ir.code.IRCode):3329:3345 -> k
    18:18:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1026:1026 -> k
    18:18:void rewriteThrowableAddAndGetSuppressed(com.android.tools.r8.ir.code.IRCode):3352 -> k
    19:34:void rewriteThrowableAddAndGetSuppressed(com.android.tools.r8.ir.code.IRCode):3353:3368 -> k
    1:55:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1737:1791 -> l
    56:56:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.previous():27:27 -> l
    56:56:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1791 -> l
    57:57:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):27:27 -> l
    57:57:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1792 -> l
    58:60:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1793:1795 -> l
    61:87:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1780:1806 -> l
    1:1:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2036:2036 -> m
    2:2:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> m
    2:2:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2036 -> m
    3:11:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2039:2047 -> m
    12:28:boolean allowNewFilledArrayConstruction(com.android.tools.r8.ir.code.Instruction):2012:2028 -> m
    12:28:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2048 -> m
    29:45:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2051:2067 -> m
    46:63:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2066:2083 -> m
    64:80:short[] computeArrayFilledData(com.android.tools.r8.ir.code.ConstInstruction[],int,int):1932:1948 -> m
    64:80:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2084 -> m
    81:127:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2088:2134 -> m
    1:1:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2395:2395 -> n
    2:7:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2401:2406 -> n
    2:7:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    8:22:boolean flipIfBranchesIfNeeded(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3022:3036 -> n
    8:22:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2407 -> n
    8:22:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    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 -> n
    23:25:boolean flipIfBranchesIfNeeded(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3037 -> n
    23:25:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2407 -> n
    23:25:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    26:26:boolean flipIfBranchesIfNeeded(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3038:3038 -> n
    26:26:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2407 -> n
    26:26:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    27:38:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2996:3007 -> n
    27:38:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2408 -> n
    27:38:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    39:52:com.android.tools.r8.ir.code.If$Type com.android.tools.r8.ir.code.If$Type.forSwappedOperands():27:40 -> n
    39:52:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3007 -> n
    39:52:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2408 -> n
    39:52:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    53:53:com.android.tools.r8.ir.code.If$Type com.android.tools.r8.ir.code.If$Type.forSwappedOperands():38:38 -> n
    53:53:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3007 -> n
    53:53:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2408 -> n
    53:53:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    54:54:com.android.tools.r8.ir.code.If$Type com.android.tools.r8.ir.code.If$Type.forSwappedOperands():36:36 -> n
    54:54:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3007 -> n
    54:54:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2408 -> n
    54:54:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    55:55:com.android.tools.r8.ir.code.If$Type com.android.tools.r8.ir.code.If$Type.forSwappedOperands():34:34 -> n
    55:55:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3007 -> n
    55:55:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2408 -> n
    55:55:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    56:56:com.android.tools.r8.ir.code.If$Type com.android.tools.r8.ir.code.If$Type.forSwappedOperands():32:32 -> n
    56:56:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3007 -> n
    56:56:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2408 -> n
    56:56:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    57:57:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3007:3007 -> n
    57:57:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2408 -> n
    57:57:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    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 -> n
    58:60:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3008 -> n
    58:60:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2408 -> n
    58:60:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    61:65:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3009:3013 -> n
    61:65:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2408 -> n
    61:65:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    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 -> n
    66:68:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3014 -> n
    66:68:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2408 -> n
    66:68:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    69:69:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3015:3015 -> n
    69:69:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2408 -> n
    69:69:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    70:72:boolean simplifyKnownBooleanCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2881:2883 -> n
    70:72:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2410 -> n
    70:72:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    73:73:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():905:905 -> n
    73:73:boolean simplifyKnownBooleanCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2883 -> n
    73:73:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2410 -> n
    73:73:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    74:108:boolean simplifyKnownBooleanCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2884:2918 -> n
    74:108:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2410 -> n
    74:108:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    109:109:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> n
    109:109:boolean simplifyKnownBooleanCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2919 -> n
    109:109:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2410 -> n
    109:109:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    110:131:boolean simplifyKnownBooleanCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2921:2942 -> n
    110:131:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2410 -> n
    110:131:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    132:155:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2415:2438 -> n
    132:155:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    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):2546:2546 -> n
    156:156:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2439 -> n
    156:156:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    157:171:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2442:2456 -> n
    157:171:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    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):2546:2546 -> n
    172:172:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2457 -> n
    172:172:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    173:173:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2448:2448 -> n
    173:173:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    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):2546:2546 -> n
    174:174:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2449 -> n
    174:174:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    175:185:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2464:2474 -> n
    175:185:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    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):2546:2546 -> n
    186:186:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2475 -> n
    186:186:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    187:202:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2478:2493 -> n
    187:202:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    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):2546:2546 -> n
    203:203:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2494 -> n
    203:203:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    204:204:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2484:2484 -> n
    204:204:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    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):2546:2546 -> n
    205:205:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2485 -> n
    205:205:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    206:210:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2504:2508 -> n
    206:210:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    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):2546:2546 -> n
    211:211:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2509 -> n
    211:211:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    212:212:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2511:2511 -> n
    212:212:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    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):2546:2546 -> n
    213:213:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2512 -> n
    213:213:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    214:216:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2517:2519 -> n
    214:216:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    217:217:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2546:2546 -> n
    217:217:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2521 -> n
    217:217:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    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):2546:2546 -> n
    218:218:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2523 -> n
    218:218:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    219:221:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2530:2532 -> n
    219:221:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    222:222:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> n
    222:222:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2532 -> n
    222:222:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    223:226:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2532:2535 -> n
    223:226:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2396 -> n
    1:6:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2171:2176 -> o
    7:25:void removeDebugWriteOfPhi(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.DebugLocalWrite):2215:2233 -> o
    7:25:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2176 -> o
    26:36:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2181:2191 -> o
    37:59:boolean hasLocalOrLineChangeBetween(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexString):2140:2162 -> o
    37:59:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2193 -> o
    60:73:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2194:2207 -> o
    74:74:boolean hasLocalOrLineChangeBetween(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexString):2167:2167 -> o
    74:74:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2193 -> o
    1:30:void splitRangeInvokeConstants(com.android.tools.r8.ir.code.IRCode):1593:1622 -> p
    1:26:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1633:1658 -> q
    27:45:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1646:1664 -> q
    1:46:void workaroundNumberConversionRegisterAllocationBug(com.android.tools.r8.ir.code.IRCode):3655:3700 -> r
    1:15:void collapseTrivialGotos(com.android.tools.r8.ir.code.IRCode):1107:1121 -> s
    16:34:void collapseIfTrueTarget(com.android.tools.r8.ir.code.BasicBlock):358:376 -> s
    16:34:void collapseTrivialGotos(com.android.tools.r8.ir.code.IRCode):1122 -> s
    35:35:void collapseTrivialGotos(com.android.tools.r8.ir.code.IRCode):1124:1124 -> s
    36:49:void collapseNonFallthroughSwitchTargets(com.android.tools.r8.ir.code.BasicBlock):382:395 -> s
    36:49:void collapseTrivialGotos(com.android.tools.r8.ir.code.IRCode):1125 -> s
    50:66:void collapseTrivialGotos(com.android.tools.r8.ir.code.IRCode):1129:1145 -> s
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap getConstantsByValue(com.android.tools.r8.ir.code.IRCode):2683:2683 -> t
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap lambda$redundantConstNumberRemoval$10(com.android.tools.r8.ir.code.IRCode):2578 -> t
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap.<init>():119:119 -> t
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap getConstantsByValue(com.android.tools.r8.ir.code.IRCode):2683 -> t
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap lambda$redundantConstNumberRemoval$10(com.android.tools.r8.ir.code.IRCode):2578 -> t
    3:16:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap getConstantsByValue(com.android.tools.r8.ir.code.IRCode):2686:2699 -> t
    3:16:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap lambda$redundantConstNumberRemoval$10(com.android.tools.r8.ir.code.IRCode):2578 -> t
    1:1:com.android.tools.r8.ir.code.DominatorTree lambda$redundantConstNumberRemoval$11(com.android.tools.r8.ir.code.IRCode):2579:2579 -> u
    2:2:void com.android.tools.r8.ir.code.DominatorTree.<init>(com.android.tools.r8.ir.code.IRCode):37:37 -> u
    2:2:com.android.tools.r8.ir.code.DominatorTree lambda$redundantConstNumberRemoval$11(com.android.tools.r8.ir.code.IRCode):2579 -> u
    1:1:com.android.tools.r8.ir.code.DominatorTree lambda$shortenLiveRanges$4(com.android.tools.r8.ir.code.IRCode):1738:1738 -> v
    2:2:void com.android.tools.r8.ir.code.DominatorTree.<init>(com.android.tools.r8.ir.code.IRCode):37:37 -> v
    2:2:com.android.tools.r8.ir.code.DominatorTree lambda$shortenLiveRanges$4(com.android.tools.r8.ir.code.IRCode):1738 -> v
    1:13:boolean removedTrivialGotos(com.android.tools.r8.ir.code.IRCode):219:231 -> w
    14:20:boolean removedTrivialGotos(com.android.tools.r8.ir.code.IRCode):228:234 -> w
    1:14:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):846:859 -> x
    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):1007:1014 -> x
    15:22:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):861 -> x
    23:25:boolean switchCaseIsUnreachable(com.android.tools.r8.ir.code.IntSwitch,int):1033:1035 -> x
    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):1018 -> x
    23:25:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):861 -> x
    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):1019:1027 -> x
    26:34:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):861 -> x
    35:59:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):863:887 -> x
    60:60:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1026:1026 -> x
    60:60:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):887 -> x
    61:88:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):888:915 -> x
    89:89:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> x
    89:89:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):915 -> x
    90:104:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):916:930 -> x
    105:105:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> x
    105:105:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):930 -> x
    106:142:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):932:968 -> x
    143:143:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> x
    143:143:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):968 -> x
    144:144:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):970:970 -> x
    145:176:int findIfsForCandidates(java.util.List,com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):754:785 -> x
    145:176:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):971 -> x
    177:177:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> x
    177:177:int findIfsForCandidates(java.util.List,com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):785 -> x
    177:177:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):971 -> x
    178:233:int findIfsForCandidates(java.util.List,com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):786:841 -> x
    178:233:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):971 -> x
    234:258:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):975:999 -> x
    259:259:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> x
    259:259:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):999 -> x
    260:263:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):999:1002 -> x
com.android.tools.r8.ir.optimize.CodeRewriter$1 -> com.android.tools.r8.ir.optimize.h$a:
    int[] $SwitchMap$com$android$tools$r8$ir$code$If$Type -> a
    1:1:void <clinit>():2442:2442 -> <clinit>
com.android.tools.r8.ir.optimize.CodeRewriter$CSEExpressionEquivalence -> com.android.tools.r8.ir.optimize.h$b:
    com.android.tools.r8.utils.InternalOptions options -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():2237:2237 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.optimize.CodeRewriter$1):2237:2237 -> <init>
    2:3:void <init>(com.android.tools.r8.utils.InternalOptions):2241:2242 -> <init>
    1:6:boolean identicalValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):2301:2306 -> a
    7:11:int getHashCode(com.android.tools.r8.ir.code.Value):2312:2316 -> a
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):2237:2237 -> doEquivalent
    2:2:boolean doEquivalent(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):2250:2250 -> doEquivalent
    2:2:boolean doEquivalent(java.lang.Object,java.lang.Object):2237 -> doEquivalent
    3:3:boolean com.android.tools.r8.utils.InternalOptions.canHaveCmpLongBug():1211:1211 -> doEquivalent
    3:3:boolean doEquivalent(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):2250 -> doEquivalent
    3:3:boolean doEquivalent(java.lang.Object,java.lang.Object):2237 -> doEquivalent
    4:19:boolean doEquivalent(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):2254:2269 -> doEquivalent
    4:19:boolean doEquivalent(java.lang.Object,java.lang.Object):2237 -> doEquivalent
    1:1:int doHash(java.lang.Object):2237:2237 -> doHash
    2:16:int doHash(com.android.tools.r8.ir.code.Instruction):2280:2294 -> doHash
    2:16:int doHash(java.lang.Object):2237 -> doHash
com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder -> com.android.tools.r8.ir.optimize.h$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>():512:512 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.IRCode):520:521 -> <init>
    1:1:com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder setLeft(com.android.tools.r8.ir.code.Value):530:530 -> a
    2:2:com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder setRight(int):535:535 -> a
    3:3:com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder setFallthrough(com.android.tools.r8.ir.code.BasicBlock):545:545 -> a
    4:9:com.android.tools.r8.ir.code.BasicBlock build():550:555 -> a
    10:10:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1026:1026 -> a
    10:10:com.android.tools.r8.ir.code.BasicBlock build():555 -> a
    11:16:com.android.tools.r8.ir.code.BasicBlock build():556:561 -> 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):1392:1395 -> a
    17:20:com.android.tools.r8.ir.code.BasicBlock build():561 -> a
    21:23:com.android.tools.r8.ir.code.BasicBlock build():563:565 -> a
    1:1:com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder setTarget(com.android.tools.r8.ir.code.BasicBlock):540:540 -> b
com.android.tools.r8.ir.optimize.CodeRewriter$InstanceOfResult -> com.android.tools.r8.ir.optimize.h$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>():137:139 -> <clinit>
    1:1:void <init>(java.lang.String,int):136:136 -> <init>
com.android.tools.r8.ir.optimize.CodeRewriter$InstructionBuilder -> com.android.tools.r8.ir.optimize.h$e:
    com.android.tools.r8.ir.code.Position position -> b
    int blockNumber -> a
    1:2:void <init>(com.android.tools.r8.ir.code.Position):440:441 -> <init>
com.android.tools.r8.ir.optimize.CodeRewriter$Interval -> com.android.tools.r8.ir.optimize.h$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList keys -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():649:649 -> <clinit>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList[]):653:653 -> <init>
    2:8:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList[]):651:657 -> <init>
    1:1:void addInterval(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):670:670 -> a
    2:2:int getMax():666:666 -> a
    2:2:void addInterval(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):670 -> a
    3:3:int getMin():662:662 -> a
    3:3:void addInterval(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):670 -> a
    4:5:void addInterval(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):670:671 -> a
    6:6:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode):687:687 -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList access$000(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):649:649 -> b
    2:2:int getMax():666:666 -> b
    2:2:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):675 -> b
    3:3:int getMin():662:662 -> b
    3:3:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):675 -> b
    4:4:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):676:676 -> b
    5:5:int com.android.tools.r8.ir.code.IntSwitch.baseSparseSize(com.android.tools.r8.utils.InternalOutputMode):114:114 -> b
    5:5:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):680 -> b
    6:6:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):680:680 -> b
    7:7:int com.android.tools.r8.ir.code.IntSwitch.basePackedSize(com.android.tools.r8.utils.InternalOutputMode):103:103 -> b
    7:7:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):682 -> b
    8:8:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):682:682 -> b
com.android.tools.r8.ir.optimize.CodeRewriter$RemoveCheckCastInstructionIfTrivialResult -> com.android.tools.r8.ir.optimize.h$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>():1355:1356 -> <clinit>
    1:1:void <init>(java.lang.String,int):1354:1354 -> <init>
com.android.tools.r8.ir.optimize.CodeRewriter$SCC -> com.android.tools.r8.ir.optimize.h$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>():3600:3600 -> <clinit>
    1:8:void <init>():3600:3607 -> <init>
    9:9:void <init>(com.android.tools.r8.ir.optimize.CodeRewriter$1):3600:3600 -> <init>
    1:3:java.util.List computeSCC(com.android.tools.r8.ir.code.Value):3610:3612 -> a
    1:33:void dfs(com.android.tools.r8.ir.code.Value):3616:3648 -> b
com.android.tools.r8.ir.optimize.CodeRewriter$SwitchBuilder -> com.android.tools.r8.ir.optimize.h$i:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap 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):458:458 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.Position):454:454 -> <init>
    1:1:com.android.tools.r8.ir.optimize.CodeRewriter$SwitchBuilder setValue(com.android.tools.r8.ir.code.Value):467:467 -> a
    2:2:com.android.tools.r8.ir.optimize.CodeRewriter$SwitchBuilder addKeyAndTarget(int,com.android.tools.r8.ir.code.BasicBlock):472:472 -> a
    3:3:com.android.tools.r8.ir.optimize.CodeRewriter$SwitchBuilder setFallthrough(com.android.tools.r8.ir.code.BasicBlock):477:477 -> a
    4:25:com.android.tools.r8.ir.code.BasicBlock build(com.android.tools.r8.ir.code.IRMetadata):483:504 -> 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):1422:1425 -> a
    26:29:com.android.tools.r8.ir.code.BasicBlock build(com.android.tools.r8.ir.code.IRMetadata):504 -> a
    30:31:com.android.tools.r8.ir.code.BasicBlock build(com.android.tools.r8.ir.code.IRMetadata):505:506 -> 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):495:495 -> 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):501:501 -> b
com.android.tools.r8.ir.optimize.ConstantCanonicalizer -> com.android.tools.r8.ir.optimize.j:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfCanonicalizationCandidatesPerMethod -> e
    boolean $assertionsDisabled -> f
    int numberOfConstClassCanonicalization -> d
    int numberOfConstStringCanonicalization -> b
    int numberOfDexItemBasedConstStringCanonicalization -> c
    int numberOfConstNumberCanonicalization -> a
    1:1:void <clinit>():31:31 -> <clinit>
    1:1:void <init>():41:41 -> <init>
    2:12:void <init>():35:45 -> <init>
    1:3:void logResults():50:52 -> a
    4:7:void logResults():51:54 -> a
    8:12:void logResults():53:57 -> a
    13:17:void logResults():55:59 -> a
    18:22:void logResults():58:62 -> a
    23:24:void lambda$logResults$0(java.lang.Long,java.lang.Integer):63:64 -> a
    25:25:void lambda$logResults$0(java.lang.Long,java.lang.Integer):63:63 -> a
    26:26:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):69:69 -> a
    27:27: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
    27:27:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):69 -> a
    28:58:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):102:132 -> a
    59:60:boolean constantUsedByInvokeRange(com.android.tools.r8.ir.code.ConstInstruction):221:222 -> a
    59:60:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):132 -> a
    61:61:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):137:137 -> a
    62:127:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):136:201 -> a
    128:128:java.util.List lambda$canonicalize$1(com.android.tools.r8.ir.code.ConstInstruction):137:137 -> a
    129:129:boolean lambda$canonicalize$2(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):154:154 -> a
    130:130: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):162:162 -> a
    131:135:void lambda$canonicalize$5(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):165:169 -> a
    136:156:void lambda$canonicalize$5(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):166:186 -> a
    157:165:void lambda$canonicalize$5(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):185:193 -> a
    166:177:void insertCanonicalizedConstant(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstInstruction):206:217 -> a
    166:177:void lambda$canonicalize$5(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):194 -> a
    178:179:void lambda$canonicalize$5(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):195:196 -> a
    180:180:com.android.tools.r8.ir.code.ConstInstruction com.android.tools.r8.ir.code.ConstInstruction.asConstInstruction():0:0 -> a
    180:180:void lambda$canonicalize$5(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):165 -> a
    1:1:boolean lambda$canonicalize$3(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):161:161 -> b
com.android.tools.r8.ir.optimize.ConstantCanonicalizer$1 -> com.android.tools.r8.ir.optimize.i:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():71:71 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.ConstantCanonicalizer):71:71 -> <init>
    1:1:boolean equals(java.lang.Object,java.lang.Object):71:71 -> a
    2:5:boolean equals(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.ConstInstruction):94:97 -> a
    2:5:boolean equals(java.lang.Object,java.lang.Object):71 -> a
    6:6:int hashCode(java.lang.Object):71:71 -> a
    7:10:int hashCode(com.android.tools.r8.ir.code.ConstInstruction):74:77 -> a
    7:10:int hashCode(java.lang.Object):71 -> a
    11:25:int hashCode(com.android.tools.r8.ir.code.ConstInstruction):74:88 -> a
    11:25:int hashCode(java.lang.Object):71 -> a
com.android.tools.r8.ir.optimize.DeadCodeRemover -> com.android.tools.r8.ir.optimize.k:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.optimize.CodeRewriter codeRewriter -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():24:24 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter):29:31 -> <init>
    1:8:void run(com.android.tools.r8.ir.code.IRCode):35:42 -> a
    9:22:void removeDeadInstructions(java.util.Queue,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):89:102 -> a
    9:22:void run(com.android.tools.r8.ir.code.IRCode):43 -> a
    23:27:void updateWorklist(java.util.Queue,com.android.tools.r8.ir.code.Instruction):66:70 -> a
    23:27:void removeDeadInstructions(java.util.Queue,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):105 -> a
    23:27:void run(com.android.tools.r8.ir.code.IRCode):43 -> a
    28:30:void removeDeadInstructions(java.util.Queue,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):109:111 -> a
    28:30:void run(com.android.tools.r8.ir.code.IRCode):43 -> a
    31:38:void removeDeadPhis(java.util.Queue,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):75:82 -> a
    31:38:void run(com.android.tools.r8.ir.code.IRCode):44 -> a
    39:45:void run(com.android.tools.r8.ir.code.IRCode):42:48 -> a
    46:52:void updateWorklist(java.util.Queue,com.android.tools.r8.ir.code.Value):54:60 -> a
    1:4:boolean removeUnneededCatchHandlers(com.android.tools.r8.ir.code.IRCode):117:120 -> b
    5:30:java.util.Collection getDeadCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):149:174 -> b
    5:30:boolean removeUnneededCatchHandlers(com.android.tools.r8.ir.code.IRCode):121 -> b
    31:31:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> b
    31:31:java.util.Collection getDeadCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):174 -> b
    31:31:boolean removeUnneededCatchHandlers(com.android.tools.r8.ir.code.IRCode):121 -> b
    32:39:java.util.Collection getDeadCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):176:183 -> b
    32:39:boolean removeUnneededCatchHandlers(com.android.tools.r8.ir.code.IRCode):121 -> b
    40:59:boolean removeUnneededCatchHandlers(com.android.tools.r8.ir.code.IRCode):122:141 -> b
com.android.tools.r8.ir.optimize.DefaultInliningOracle -> com.android.tools.r8.ir.optimize.l:
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> i
    com.android.tools.r8.ir.code.IRCode code -> d
    int instructionAllowance -> h
    com.android.tools.r8.ir.optimize.Inliner inliner -> b
    int inliningInstructionLimit -> g
    com.android.tools.r8.graph.DexEncodedMethod method -> c
    com.android.tools.r8.ir.conversion.CallSiteInformation callSiteInformation -> e
    java.util.function.Predicate isProcessedConcurrently -> f
    1:1:void <clinit>():50:50 -> <clinit>
    1:9:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.Inliner,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.Predicate,int,int):69:77 -> <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):94:106 -> 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.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):356 -> a
    14:14:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> 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):106 -> 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.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):356 -> 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):107:122 -> 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.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):356 -> a
    31:31: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.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):360:360 -> a
    32:50:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.graph.DexEncodedMethod):130:148 -> a
    32:50: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.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):364 -> a
    51:52:boolean isDoubleInliningTarget(com.android.tools.r8.graph.DexEncodedMethod):210:211 -> a
    51:52:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.graph.DexEncodedMethod):150 -> a
    51:52: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.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):364 -> a
    53:55:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.graph.DexEncodedMethod):151:153 -> a
    53:55: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.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):364 -> a
    56:57:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.graph.DexEncodedMethod):133:134 -> a
    56:57: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.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):364 -> a
    58:59: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.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):365:366 -> a
    60:60: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.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):365:365 -> a
    61:69: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):219:227 -> a
    61:69: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.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):370 -> a
    70:70:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    70:70: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):227 -> a
    70:70: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.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):370 -> a
    71:145: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):227:301 -> a
    71:145: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.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):370 -> a
    146:146: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):300:300 -> a
    146:146: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.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):370 -> a
    147:147: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.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):374:374 -> a
    148:150:boolean isSingleTargetInvalid(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):95:97 -> a
    148:150: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.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):356 -> a
    151:155: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):169:173 -> a
    156:156:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    156:156: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):173 -> a
    157:167: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):174:184 -> a
    168:188: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):180:200 -> a
    189:189:boolean com.android.tools.r8.graph.DexClass.classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView):737:737 -> a
    189:189: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):200 -> a
    190:190: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):204:204 -> a
    191:191:boolean com.android.tools.r8.graph.DexClass.classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView):737:737 -> a
    191:191: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):200 -> a
    192:192: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):182:182 -> a
    193:197:boolean inlineeRefersToClassesNotInMainDex(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):306:310 -> a
    198:198:boolean inlineeRefersToClassesNotInMainDex(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):309:309 -> a
    199:199:boolean satisfiesRequirementsForSimpleInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):316:316 -> a
    200:211:int computeInstructionLimit(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):325:336 -> a
    200:211:boolean satisfiesRequirementsForSimpleInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):317 -> a
    212:212:boolean satisfiesRequirementsForSimpleInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):318:318 -> a
    213:213:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType):347:347 -> a
    214:215: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):383:384 -> a
    216:216:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isDefinitelyNull():330:330 -> a
    216:216: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):384 -> a
    217:223: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):386:392 -> a
    224:224:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isDefinitelyNull():330:330 -> a
    224:224: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):392 -> a
    225:236: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):392:403 -> a
    237:241: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):416:420 -> a
    242:244:void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):426:428 -> a
    245:245:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> a
    245:245:void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):428 -> a
    246:246:void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):430:430 -> a
    247:258:boolean allowInliningOfInvokeInInlinee(com.android.tools.r8.ir.optimize.Inliner$InlineAction,int,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):440:451 -> a
    259:350:boolean canInlineInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):467:558 -> a
    351:356:boolean stillHasBudget(com.android.tools.r8.ir.optimize.Inliner$InlineAction,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):565:570 -> a
    357:357: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):582:582 -> a
    358:360:boolean willExceedInstructionBudget(com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):593:595 -> a
    358:360: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):585 -> a
    361:361: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):586:586 -> a
    362:378: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):680:696 -> a
    362:378: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):587 -> a
    379:411: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):615:647 -> a
    412:412:void markInlined(com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason):706:706 -> a
    413:447:void updateTypeInformationIfNeeded(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock):712:746 -> a
    448:454:void insertAssumeInstructionsToInlinee(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):758:764 -> a
com.android.tools.r8.ir.optimize.Devirtualizer -> com.android.tools.r8.ir.optimize.m:
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():37:37 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.AppView):41:42 -> <init>
    1:3:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):46:48 -> 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):48 -> a
    5:31:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):49:75 -> 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):75 -> a
    33:59:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):76:102 -> a
    60:76:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):101:117 -> a
    77:77:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    77:77:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):117 -> a
    78:108:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):119:149 -> a
    109:128:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):148:167 -> a
    129:129:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> a
    129:129:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):174 -> a
    130:152:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):176:198 -> a
    153:153:void com.android.tools.r8.ir.code.DominatorTree.<init>(com.android.tools.r8.ir.code.IRCode):37:37 -> a
    153:153:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):198 -> a
    154:169:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):200:215 -> a
    170:181:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):214:225 -> a
    182:182:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    182:182:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):225 -> a
    183:185:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):225:227 -> a
com.android.tools.r8.ir.optimize.DynamicTypeOptimization -> com.android.tools.r8.ir.optimize.n:
    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:81:void insertAssumeDynamicTypeInstructionsInBlock(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock):54:131 -> a
    4:81:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):45 -> a
    82:87:void insertAssumeDynamicTypeInstructionsInBlock(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock):130:135 -> a
    82:87:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):45 -> a
    88:103:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement computeDynamicLowerBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):160:175 -> 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):146:155 -> b
com.android.tools.r8.ir.optimize.EnumInfoMapCollector -> com.android.tools.r8.ir.optimize.o:
    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.ForcedInliningOracle -> com.android.tools.r8.ir.optimize.p:
    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>():23:23 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,java.util.Map):32:35 -> <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 stillHasBudget(com.android.tools.r8.ir.optimize.Inliner$InlineAction,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
    void updateTypeInformationIfNeeded(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock) -> 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):45:49 -> a
    6:16:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvoke(com.android.tools.r8.ir.code.InvokeMethod):62:72 -> a
    6:16: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.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):58 -> a
    17:20:com.android.tools.r8.graph.DexType getReceiverTypeIfKnown(com.android.tools.r8.ir.code.InvokeMethod):122:125 -> a
com.android.tools.r8.ir.optimize.IdempotentFunctionCallCanonicalizer -> com.android.tools.r8.ir.optimize.r:
    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.q:
    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.Inliner:
    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>():73:73 -> <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):91:91 -> <init>
    2:17: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):82:97 -> <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):102:120 -> a
    20:20:boolean isBlacklisted(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):115:115 -> a
    21:21:boolean isDoubleInliningEnabled():128:128 -> 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):142:142 -> a
    23:23:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    23:23:boolean com.android.tools.r8.utils.InternalOptions.canHaveDalvikCatchHandlerVerificationBug():1430 -> 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):142 -> a
    24:24:boolean com.android.tools.r8.utils.InternalOptions.canHaveDalvikCatchHandlerVerificationBug():1430:1430 -> a
    24:24:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):142 -> a
    25:30:boolean useReflectiveOperationExceptionOrUnknownClassInCatch(com.android.tools.r8.ir.code.IRCode):1032:1037 -> a
    25:30:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):143 -> a
    31:31:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    31:31:boolean useReflectiveOperationExceptionOrUnknownClassInCatch(com.android.tools.r8.ir.code.IRCode):1037 -> a
    31:31:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):143 -> a
    32:44:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):144:156 -> a
    45:47: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):134:136 -> a
    45:47:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):157 -> a
    48:53:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):158:163 -> a
    54:58:boolean hasInliningAccess(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):185:189 -> a
    59:59:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    59:59:boolean hasInliningAccess(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):189 -> a
    60:60:boolean hasInliningAccess(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):190:190 -> a
    61:68:boolean isVisibleWithFlags(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags):194:201 -> a
    69:69:boolean com.android.tools.r8.graph.DexType.isSamePackage(com.android.tools.r8.graph.DexType):85:85 -> a
    69:69:boolean isVisibleWithFlags(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags):201 -> a
    70:70:boolean com.android.tools.r8.graph.DexType.isSamePackage(com.android.tools.r8.graph.DexType):85:85 -> a
    70:70:boolean isVisibleWithFlags(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags):204 -> a
    71:72:boolean isDoubleInliningTarget(com.android.tools.r8.ir.conversion.CallSiteInformation,com.android.tools.r8.graph.DexEncodedMethod):209:210 -> a
    73:80:void processDoubleInlineCallers(com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):245:252 -> a
    81:94:void processDoubleInlineCallers(com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):251:264 -> a
    95:99:java.lang.Object lambda$processDoubleInlineCallers$0(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):254:258 -> a
    100:106:java.lang.Object lambda$processDoubleInlineCallers$0(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):254:260 -> a
    107:131:int numberOfInstructions(com.android.tools.r8.ir.code.IRCode):784:808 -> a
    132:133:void performForcedInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Map):833:834 -> a
    134:142:void performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation):843:851 -> a
    143:143:com.android.tools.r8.ir.optimize.DefaultInliningOracle createDefaultOracle(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,int,int):862:862 -> a
    143:143:void performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation):845 -> a
    144:144:void performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation):852:852 -> a
    145:145:com.android.tools.r8.ir.optimize.DefaultInliningOracle createDefaultOracle(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,int,int):862:862 -> a
    146:187: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):879:920 -> a
    188:199: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):919:930 -> a
    200:207:com.android.tools.r8.ir.code.Position getPositionForInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):1020:1027 -> a
    200:207: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):935 -> a
    208:208:com.android.tools.r8.ir.code.Position getPositionForInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):1025:1025 -> a
    208:208: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):935 -> a
    209:209: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):935:935 -> a
    210:248: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):931:969 -> a
    249:258: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):1047:1056 -> a
    249:258: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):975 -> a
    259:292: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):969:1002 -> a
    293:295:java.lang.Object com.android.tools.r8.utils.IteratorUtils.previousUntil(java.util.ListIterator,java.util.function.Predicate):70:72 -> a
    293:295: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):1002 -> a
    296:296: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):1003:1003 -> a
    297:297:java.lang.Object com.android.tools.r8.utils.IteratorUtils.previousUntil(java.util.ListIterator,java.util.function.Predicate):76:76 -> a
    297:297: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):1002 -> a
    298:309: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):1005:1016 -> a
    1:7:boolean returnsIntAsBoolean(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):169:175 -> b
    8:8:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():905:905 -> b
    8:8:boolean returnsIntAsBoolean(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):175 -> b
    9:20:void recordDoubleInliningCandidate(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):227:238 -> b
    1:7:boolean satisfiesRequirementsForDoubleInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):215:221 -> c
com.android.tools.r8.ir.optimize.Inliner$Constraint -> com.android.tools.r8.ir.optimize.Inliner$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:17:void <clinit>():274:290 -> <clinit>
    18:47:void <clinit>():274:303 -> <clinit>
    1:2:void <init>(java.lang.String,int,int):294:295 -> <init>
    1:1:com.android.tools.r8.ir.optimize.Inliner$Constraint[] values():274:274 -> a
    1:1:boolean isSet(int):307:307 -> b
com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget -> com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget:
    com.android.tools.r8.ir.optimize.Inliner$Constraint constraint -> a
    com.android.tools.r8.graph.DexType targetHolder -> b
    boolean $assertionsDisabled -> c
    1:9:void <clinit>():325:333 -> <clinit>
    1:4:void <init>(com.android.tools.r8.ir.optimize.Inliner$Constraint):335:338 -> <init>
    5:9:void <init>(com.android.tools.r8.ir.optimize.Inliner$Constraint,com.android.tools.r8.graph.DexType):341:345 -> <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):368:370 -> a
    4:4:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> 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):371 -> 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):372:380 -> a
    14:14:boolean com.android.tools.r8.graph.DexType.isSamePackage(com.android.tools.r8.graph.DexType):85:85 -> 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):381 -> 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):383:387 -> a
    20:20:boolean com.android.tools.r8.graph.DexType.isSamePackage(com.android.tools.r8.graph.DexType):85:85 -> 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):390 -> 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):391:391 -> 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):397:402 -> a
    28:28:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> 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):405 -> 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):407:408 -> a
    1:5:boolean equals(java.lang.Object):358:362 -> equals
    1:4:int hashCode():350:353 -> hashCode
    5:5:int com.android.tools.r8.graph.DexType.computeHashCode():43:43 -> hashCode
    5:5:int hashCode():353 -> hashCode
    1:51: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):413:463 -> meet
    52:52:boolean verifyAllNestInSamePackage(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):537:537 -> meet
    52:52: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):463 -> meet
    53:53:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> meet
    53:53:boolean verifyAllNestInSamePackage(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):538 -> meet
    53:53: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):463 -> meet
    54:59:boolean verifyAllNestInSamePackage(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):539:544 -> meet
    54:59: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):463 -> meet
    60:60:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> meet
    60:60:boolean verifyAllNestInSamePackage(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):544 -> meet
    60:60: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):463 -> meet
    61:63:boolean verifyAllNestInSamePackage(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):545:547 -> meet
    61:63: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):463 -> meet
    64:71: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):464:471 -> meet
    72:72:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> meet
    72:72:boolean allNestMembersSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):514 -> meet
    72:72: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):471 -> meet
    73:80:boolean allNestMembersSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):516:523 -> meet
    73:80: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):471 -> meet
    81:81:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> meet
    81:81:boolean allNestMembersSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):523 -> meet
    81: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):471 -> meet
    82:86:boolean allNestMembersSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):525:529 -> meet
    82:86: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):471 -> meet
    87:121: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):475:509 -> meet
com.android.tools.r8.ir.optimize.Inliner$InlineAction -> com.android.tools.r8.ir.optimize.Inliner$b:
    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>():572:572 -> <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):580:583 -> <init>
    1:1:void setShouldSynthesizeNullCheckForReceiver():587:587 -> a
    2:17:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):597:612 -> a
    18:18:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    18:18:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):612 -> a
    19:43:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):613:637 -> a
    44:46: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
    44:46:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):638 -> a
    47:64:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):639:656 -> a
    65:89:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):655:679 -> a
    90:95:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):678:683 -> a
    96:96:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> a
    96:96:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):685 -> a
    97:97:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):685:685 -> a
    98:107:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):683:692 -> a
    108:108:java.lang.Object com.android.tools.r8.utils.ListUtils.first(java.util.List):16:16 -> a
    108:108:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):694 -> a
    109:109:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):694:694 -> a
    110:110: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):1040:1040 -> a
    110:110:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):696 -> a
    111:112:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):697:698 -> a
    113:113:void com.android.tools.r8.ir.code.Phi.addOperands(java.util.List):131:131 -> a
    113:113:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):700 -> a
    114:143:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):704:733 -> a
    144:144:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):732:732 -> a
    145:145:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> a
    145:145:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):731 -> a
    146:179:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):734:767 -> a
    180:180:com.android.tools.r8.ir.code.Value lambda$buildInliningIR$0(com.android.tools.r8.ir.code.BasicBlock):699:699 -> a
com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason -> com.android.tools.r8.ir.optimize.s:
    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):776:778 -> <init>
com.android.tools.r8.ir.optimize.Inliner$InliningInfo -> com.android.tools.r8.ir.optimize.t:
    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):822:824 -> <init>
com.android.tools.r8.ir.optimize.Inliner$Reason -> com.android.tools.r8.ir.optimize.Inliner$c:
    com.android.tools.r8.ir.optimize.Inliner$Reason SIMPLE -> e
    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:5:void <clinit>():560:564 -> <clinit>
    1:1:void <init>(java.lang.String,int):559:559 -> <init>
    1:1:boolean mustBeInlined():568:568 -> a
com.android.tools.r8.ir.optimize.InliningConstraints -> com.android.tools.r8.ir.optimize.u:
    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>():25:25 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense):43:43 -> <init>
    2:20:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense):29:47 -> <init>
    1:1:void disallowStaticInterfaceMethodCalls():51:51 -> a
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forCheckCast(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):84:84 -> a
    3:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstanceGet(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):116:118 -> a
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstanceGet(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):117:117 -> 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):132:148 -> a
    24:24:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokePolymorphic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):180:180 -> 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):146 -> a
    25:25:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeCustom():154:154 -> 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):144 -> a
    26:27:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):195:196 -> 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):142 -> a
    28:28:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeSuper(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):191:191 -> 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):140 -> a
    29:31:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):184:186 -> a
    29: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):138 -> a
    32:32:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):185:185 -> 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):138 -> a
    33:34:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):164:165 -> a
    33:34: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):136 -> a
    35:37:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):158:160 -> a
    35:37: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):134 -> a
    38:38:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):159:159 -> a
    38:38: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):134 -> a
    39:41:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):158:160 -> a
    42:42:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):159:159 -> a
    43:43:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeSuper(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):191:191 -> a
    44:45: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):285:286 -> a
    46:46:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    46:46: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):286 -> a
    47:60: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):288:301 -> a
    61:74: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):299:312 -> a
    75:80: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):317:322 -> a
    81:81:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    81:81: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):322 -> a
    82:98: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):324:340 -> a
    99:118:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,boolean):347:366 -> a
    119:119:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    119:119:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,boolean):366 -> a
    120:144:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,boolean):367:391 -> a
    145:145:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    145:145:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,boolean):391 -> a
    146:151:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,boolean):391:396 -> a
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forConstClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):88:88 -> b
    2:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstancePut(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):126:128 -> b
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstancePut(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):127:127 -> b
    6:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):164:165 -> b
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstanceOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):122:122 -> c
    2:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):184:186 -> c
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):185:185 -> c
    6:8:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forStaticGet(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):247:249 -> c
    9:9:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forStaticGet(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):248:248 -> c
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeMultiNewArray(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):172:172 -> d
    2:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):195:196 -> d
    4:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forStaticPut(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):253:255 -> d
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forStaticPut(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):254:254 -> d
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeNewArray(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):176:176 -> e
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forNewArrayEmpty(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):223:223 -> f
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forNewInstance(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):231:231 -> g
com.android.tools.r8.ir.optimize.InliningOracle -> com.android.tools.r8.ir.optimize.v:
    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.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
com.android.tools.r8.ir.optimize.InliningStrategy -> com.android.tools.r8.ir.optimize.w:
    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
    void updateTypeInformationIfNeeded(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock) -> 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.x:
    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.y:
    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):38:38 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.com.google.common.base.Equivalence):35:40 -> <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):44:56 -> 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):62:66 -> a
    19:19:void submitAll(java.lang.Iterable,java.util.List,java.util.concurrent.ExecutorService):98:98 -> 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):65 -> a
    20:20:void submit(com.android.tools.r8.graph.DexClass,java.util.List,java.util.concurrent.ExecutorService):104:104 -> a
    20:20:void submitAll(java.lang.Iterable,java.util.List,java.util.concurrent.ExecutorService):99 -> 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):65 -> 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):67:67 -> a
    22:22:void submitAll(java.lang.Iterable,java.util.List,java.util.concurrent.ExecutorService):98:98 -> 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):67 -> a
    23:23:void submit(com.android.tools.r8.graph.DexClass,java.util.List,java.util.concurrent.ExecutorService):104:104 -> a
    23:23:void submitAll(java.lang.Iterable,java.util.List,java.util.concurrent.ExecutorService):99 -> 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):67 -> 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):68:72 -> 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):70:70 -> a
    30:35:boolean markIfNotSeen(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Descriptor):85:90 -> a
    36:36:void submit(com.android.tools.r8.graph.DexClass,java.util.List,java.util.concurrent.ExecutorService):104:104 -> a
    36:36:void lambda$buildAll$0(java.util.List,java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexClass):53 -> a
    37:59:java.util.Set getAllSubTypesExclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):135:157 -> a
    60:60:void lambda$getAllSubTypesExclusive$1(java.util.Deque,com.android.tools.r8.graph.DexType):140:140 -> a
    61:61:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    61:61:void lambda$getAllSubTypesExclusive$1(java.util.Deque,com.android.tools.r8.graph.DexType):140 -> a
    62:62:void addNonNull(java.util.Collection,java.lang.Object):234:234 -> a
    62:62:void lambda$getAllSubTypesExclusive$1(java.util.Deque,com.android.tools.r8.graph.DexType):140 -> a
    1:1:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool get(com.android.tools.r8.graph.DexClass):80:80 -> b
    2:2:boolean hasPool(com.android.tools.r8.graph.DexClass):76:76 -> b
    2:2:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool get(com.android.tools.r8.graph.DexClass):80 -> b
    3:4:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool get(com.android.tools.r8.graph.DexClass):80:81 -> b
    5:15:java.util.Set getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):112:122 -> b
    16:16:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> b
    16:16:java.util.Set getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):122 -> b
    17:17:void addNonNull(java.util.Collection,java.lang.Object):234:234 -> b
    17:17:java.util.Set getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):122 -> b
    18:19:java.util.Set getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):124:125 -> b
    20:20:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> b
    20:20:java.util.Set getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):125 -> b
    21:21:void addNonNull(java.util.Collection,java.lang.Object):234:234 -> b
    21:21:java.util.Set getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):125 -> b
    22:22:void lambda$getAllSubTypesExclusive$2(java.util.Deque,com.android.tools.r8.graph.DexType):144:144 -> b
    23:23:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> b
    23:23:void lambda$getAllSubTypesExclusive$2(java.util.Deque,com.android.tools.r8.graph.DexType):144 -> b
    24:24:void addNonNull(java.util.Collection,java.lang.Object):234:234 -> b
    24:24:void lambda$getAllSubTypesExclusive$2(java.util.Deque,com.android.tools.r8.graph.DexType):144 -> b
    1:1:void lambda$getAllSubTypesExclusive$3(java.util.Deque,com.android.tools.r8.graph.DexType):154:154 -> c
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> c
    2:2:void lambda$getAllSubTypesExclusive$3(java.util.Deque,com.android.tools.r8.graph.DexType):154 -> c
    3:3:void addNonNull(java.util.Collection,java.lang.Object):234:234 -> c
    3:3:void lambda$getAllSubTypesExclusive$3(java.util.Deque,com.android.tools.r8.graph.DexType):154 -> c
    1:1:void lambda$getAllSubTypesExclusive$4(java.util.Deque,com.android.tools.r8.graph.DexType):158:158 -> d
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> d
    2:2:void lambda$getAllSubTypesExclusive$4(java.util.Deque,com.android.tools.r8.graph.DexType):158 -> d
    3:3:void addNonNull(java.util.Collection,java.lang.Object):234:234 -> d
    3:3:void lambda$getAllSubTypesExclusive$4(java.util.Deque,com.android.tools.r8.graph.DexType):158 -> d
com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool -> com.android.tools.r8.ir.optimize.y$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>():164:164 -> <clinit>
    1:1:void <init>(com.android.tools.r8.com.google.common.base.Equivalence):172:172 -> <init>
    2:7:void <init>(com.android.tools.r8.com.google.common.base.Equivalence):168:173 -> <init>
    1:2:void linkInterface(com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):187:188 -> a
    3:3:void seen(java.lang.Object):192:192 -> a
    4:4:boolean hasSeen(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):201:201 -> a
    5:5:boolean hasSeenStrictlyBelow(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):221:221 -> a
    5:5:boolean hasSeen(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):201 -> a
    6:6:boolean hasSeenDirectly(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):205:205 -> a
    6:6:boolean hasSeenAbove(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,boolean):213 -> a
    7:8:boolean hasSeenAbove(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,boolean):216:217 -> 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):217:217 -> a
    1:2:void linkSubtype(com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):182:183 -> b
    3:3:boolean hasSeenDirectly(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):205:205 -> b
    3:3:boolean hasSeenBelow(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,boolean):225 -> b
    4:4:boolean hasSeenBelow(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,boolean):228:228 -> b
    5:5:boolean hasSeenDirectly(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):205:205 -> b
    6:6:boolean lambda$hasSeenBelow$1(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):228:228 -> b
    1:2:void linkSupertype(com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):177:178 -> c
    3:3:boolean hasSeenStrictlyAbove(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):209:209 -> c
    1:1:boolean hasSeenStrictlyBelow(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):221:221 -> d
    1:2:void seen(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):196:197 -> e
com.android.tools.r8.ir.optimize.MemberValuePropagation -> com.android.tools.r8.ir.optimize.B:
    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>():46:48 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):87:87 -> <init>
    2:37:void <init>(com.android.tools.r8.graph.AppView):54:89 -> <init>
    1:5:boolean mayPropagateValueFor(com.android.tools.r8.graph.DexEncodedField):93:97 -> a
    6:13:com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup lookupMemberRule(com.android.tools.r8.graph.DexDefinition):112:119 -> a
    14:17:com.android.tools.r8.ir.code.ConstNumber createConstNumberReplacement(com.android.tools.r8.ir.code.IRCode,long,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):181:184 -> a
    18:20:com.android.tools.r8.ir.code.ConstNumber createConstNumberReplacement(com.android.tools.r8.ir.code.IRCode,long,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):183:185 -> a
    21:21: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):222:222 -> a
    22:32: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):126:136 -> a
    22:32: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):222 -> a
    33:40: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):135:142 -> a
    33:40: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):222 -> a
    41:50: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):141:150 -> a
    41:50: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):222 -> a
    51:69: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):147:165 -> a
    51:69: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):222 -> a
    70:81: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):160:171 -> a
    70:81: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):222 -> a
    82:82: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):225:225 -> a
    83:85:void setValueRangeFromProguardRule(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.ir.code.Value):209:211 -> a
    83:85: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):225 -> a
    86:99: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):228:241 -> a
    100:107:void rewriteStaticGetWithConstantValues(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.StaticGet):345:352 -> a
    108:153:void rewriteStaticGetWithConstantValues(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.StaticGet):351:396 -> a
    154:154:java.lang.Boolean lambda$rewriteStaticGetWithConstantValues$0(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):352:352 -> a
    155:169:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):436:450 -> a
    170:219: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):254:303 -> a
    170:219:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):449 -> a
    220:224:boolean mayPropagateValueFor(com.android.tools.r8.graph.DexEncodedMethod):101:105 -> a
    220:224: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):307 -> a
    220:224:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):449 -> a
    225:231: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):310:316 -> a
    225:231:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):449 -> a
    232:239: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):315:322 -> a
    232:239:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):449 -> a
    240:244:com.android.tools.r8.ir.code.ConstString createConstStringReplacement(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexString,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):193:197 -> a
    240:244: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):321 -> a
    240:244:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):449 -> a
    245:248:com.android.tools.r8.ir.code.ConstString createConstStringReplacement(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexString,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):195:198 -> a
    245:248: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):321 -> a
    245:248:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):449 -> a
    249:259:com.android.tools.r8.ir.code.ConstString createConstStringReplacement(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexString,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):194:204 -> a
    249:259: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):321 -> a
    249:259:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):449 -> a
    260:270: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):325:335 -> a
    260:270:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):449 -> a
    271:277:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):451:457 -> a
    278:286:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):452:460 -> a
    287:308:void rewriteInstanceGetWithConstantValues(com.android.tools.r8.ir.code.IRCode,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InstanceGet):405:426 -> a
    287:308:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):459 -> a
    309:310:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):464:465 -> a
    311:311:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    311:311:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):465 -> a
    312:314:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):465:467 -> a
com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup -> com.android.tools.r8.ir.optimize.z:
    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):67:69 -> <init>
    1:5:boolean equals(java.lang.Object):74:78 -> equals
    1:1:int hashCode():83:83 -> hashCode
com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType -> com.android.tools.r8.ir.optimize.A:
    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>():57:59 -> <clinit>
    1:1:void <init>(java.lang.String,int):56:56 -> <init>
com.android.tools.r8.ir.optimize.MethodPoolCollection -> com.android.tools.r8.ir.optimize.C:
    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):168:168 -> 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):168:168 -> 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.D:
    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.E:
    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):168:168 -> 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):168:168 -> 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.F:
    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():932:932 -> 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):168:168 -> 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):163:163 -> 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:36:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):61:65 -> a
    37:44:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):64:71 -> a
    45:45:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):163:163 -> a
    45:45:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):72 -> a
    46:52:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):73:79 -> a
    53:53:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):77:77 -> a
com.android.tools.r8.ir.optimize.NonNullTracker -> com.android.tools.r8.ir.optimize.G:
    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>():47:47 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):54:54 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.AppView,java.util.function.Consumer):57:60 -> <init>
    boolean lambda$addNonNullForValues$0(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction) -> a
    1:73:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):66:138 -> a
    74:74:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isDefinitelyNotNull():334:334 -> a
    74:74:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):138 -> a
    75:78:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):139:142 -> a
    79:85:boolean verifyCompanionClassInstanceIsKnownToBeNonNull(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexEncodedField,java.util.Set):253:259 -> a
    79:85:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):142 -> a
    86:86:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    86:86:boolean verifyCompanionClassInstanceIsKnownToBeNonNull(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexEncodedField,java.util.Set):259 -> a
    86:86:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):142 -> a
    87:88:boolean verifyCompanionClassInstanceIsKnownToBeNonNull(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexEncodedField,java.util.Set):260:261 -> a
    87:88:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):142 -> a
    89:89:boolean com.android.tools.r8.graph.DexClass.initializationOfParentTypesMayHaveSideEffects(com.android.tools.r8.graph.AppView):784:784 -> a
    89:89:boolean verifyCompanionClassInstanceIsKnownToBeNonNull(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexEncodedField,java.util.Set):262 -> a
    89:89:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):142 -> a
    90:98:boolean verifyCompanionClassInstanceIsKnownToBeNonNull(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexEncodedField,java.util.Set):263:271 -> a
    90:98:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):142 -> a
    99:100:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):153:154 -> a
    101:175:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):153:227 -> a
    176:196:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):225:245 -> a
    197:197:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    197:197:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):245 -> a
    198:198:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):245:245 -> a
    199:259: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):299:359 -> a
    260:278: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):357:375 -> a
    279:284: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):383:388 -> a
    285:285:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> a
    285:285: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):388 -> a
    286:294: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):390:398 -> a
    295:298:boolean isNullableReferenceTypeWithUsers(com.android.tools.r8.ir.code.Value):407:410 -> a
com.android.tools.r8.ir.optimize.Outliner -> com.android.tools.r8.ir.optimize.L:
    java.util.List candidateMethodLists -> a
    java.util.Map outlineSites -> c
    java.util.Map generatedOutlines -> d
    com.android.tools.r8.graph.AppView appView -> e
    boolean $assertionsDisabled -> g
    java.util.Set methodsSelectedForOutlining -> b
    com.android.tools.r8.ir.optimize.InliningConstraints inliningConstraints -> f
    1:1:void <clinit>():106:106 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):1273:1273 -> <init>
    2:1168:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):109:1275 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$000(com.android.tools.r8.ir.optimize.Outliner):106:106 -> a
    2:4:void lambda$identifyCandidateMethods$0(java.util.Map,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1286:1288 -> a
    5:10:java.util.List selectOutlines():1380:1385 -> a
    5:10:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1323 -> a
    11:19:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1324:1332 -> 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):581:581 -> a
    20:20:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1333 -> a
    21:30:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1334:1343 -> a
    31:31:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    31:31:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1343 -> a
    32:63:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1344:1375 -> a
    64:70:void applyOutliningCandidate(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1392:1398 -> a
    71:72:boolean checkAllOutlineSitesFoundAgain():1403:1404 -> a
    1:1:com.android.tools.r8.ir.optimize.InliningConstraints access$100(com.android.tools.r8.ir.optimize.Outliner):106:106 -> b
    2:4:void identifyOutlineSites(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1294:1296 -> b
    5:5:java.util.Set getMethodsSelectedForOutlining():1316:1316 -> b
    void noProcessing(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod) -> c
    1:1:java.util.List access$200(com.android.tools.r8.ir.optimize.Outliner):106:106 -> c
    2:4:java.util.function.BiConsumer identifyCandidateMethods():1283:1285 -> c
    1:1:java.util.Map access$300(com.android.tools.r8.ir.optimize.Outliner):106:106 -> d
    2:8:boolean selectMethodsForOutlining():1301:1307 -> d
    9:15:boolean selectMethodsForOutlining():1306:1312 -> d
    1:1:java.util.Map access$400(com.android.tools.r8.ir.optimize.Outliner):106:106 -> e
com.android.tools.r8.ir.optimize.Outliner$BinOpOutlineInstruction -> com.android.tools.r8.ir.optimize.H:
    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):209:210 -> <init>
    java.lang.String getDetailsString() -> a
    1:3:com.android.tools.r8.ir.optimize.Outliner$BinOpOutlineInstruction fromInstruction(com.android.tools.r8.ir.code.Binop):214:216 -> a
    4:4:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):235:235 -> a
    5:5:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):185:185 -> a
    5:5:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):236 -> a
    6:11:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):238:243 -> a
    12:16:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):268:272 -> a
    17:17:int com.android.tools.r8.ir.optimize.Outliner$Outline.argumentCount():568:568 -> a
    17:17:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):274 -> a
    18:19:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):276:277 -> a
    20:23:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):276:279 -> a
    24:24:int com.android.tools.r8.ir.optimize.Outliner$Outline.argumentCount():568:568 -> a
    24:24:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):281 -> a
    25:44:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):281:300 -> a
    45:45:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):297:297 -> a
    46:46:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):294:294 -> a
    47:50:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):288:291 -> a
    51:68:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):285:302 -> a
    1:1:java.lang.String getInstructionName():253:253 -> b
    boolean hasOutValue() -> c
    int numberOfInputs() -> d
    1:5:boolean equals(java.lang.Object):226:230 -> equals
    1:1:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.hashCode():181:181 -> hashCode
    1:1:int hashCode():221 -> hashCode
    2:2:int hashCode():221:221 -> hashCode
com.android.tools.r8.ir.optimize.Outliner$InvokeOutlineInstruction -> com.android.tools.r8.ir.optimize.I:
    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>():371:371 -> <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):384:390 -> <init>
    1:11:com.android.tools.r8.ir.optimize.Outliner$InvokeOutlineInstruction fromInstruction(com.android.tools.r8.ir.code.InvokeMethod):394:404 -> a
    12:12:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):430:430 -> a
    13:13:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):185:185 -> a
    13:13:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):431 -> a
    14:33:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):433:452 -> a
    34:34:java.lang.String getDetailsString():458:458 -> a
    35:37:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):487:489 -> a
    38:38:int com.android.tools.r8.ir.optimize.Outliner$Outline.argumentCount():568:568 -> a
    38:38:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):491 -> a
    39:44:com.android.tools.r8.ir.code.ValueTypeConstraint getArgumentConstraint(int):477:482 -> a
    39:44:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):493 -> a
    45:50:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):493:498 -> a
    51:51:int com.android.tools.r8.ir.optimize.Outliner$Outline.argumentCount():568:568 -> a
    51:51:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):500 -> a
    52:55:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):500:503 -> 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):503 -> a
    57:57:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):504:504 -> a
    1:1:java.lang.String getInstructionName():463:463 -> b
    1:1:boolean hasOutValue():468:468 -> c
    1:1:int numberOfInputs():473:473 -> d
    1:8:boolean equals(java.lang.Object):418:425 -> equals
    1:1:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.hashCode():181:181 -> hashCode
    1:1:int hashCode():409 -> hashCode
    2:6:int hashCode():409:413 -> hashCode
com.android.tools.r8.ir.optimize.Outliner$NewInstanceOutlineInstruction -> com.android.tools.r8.ir.optimize.J:
    com.android.tools.r8.graph.DexType clazz -> c
    1:2:void <init>(com.android.tools.r8.graph.DexType):311:312 -> <init>
    1:1:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):332:332 -> a
    2:2:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):185:185 -> a
    2:2:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):333 -> a
    3:4:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):335:336 -> a
    5:5:java.lang.String getDetailsString():341:341 -> a
    6:7:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):361:362 -> a
    8:8:int com.android.tools.r8.ir.optimize.Outliner$Outline.argumentCount():568:568 -> a
    8:8:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):364 -> a
    9:11:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):364:366 -> a
    1:1:java.lang.String getInstructionName():346:346 -> b
    boolean hasOutValue() -> c
    int numberOfInputs() -> d
    1:5:boolean equals(java.lang.Object):317:321 -> equals
    1:1:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.hashCode():181:181 -> hashCode
    1:1:int hashCode():327 -> hashCode
    2:2:int hashCode():327:327 -> hashCode
com.android.tools.r8.ir.optimize.Outliner$Outline -> com.android.tools.r8.ir.optimize.K:
    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>():531:531 -> <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):548:548 -> <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):535:562 -> <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):556:556 -> <init>
    1:5:com.android.tools.r8.graph.DexProto buildProto():572:576 -> a
    1:1:int compareTo(java.lang.Object):531:531 -> compareTo
    2:7:int compareTo(com.android.tools.r8.ir.optimize.Outliner$Outline):629:634 -> compareTo
    2:7:int compareTo(java.lang.Object):531 -> compareTo
    8:8:int argumentCount():568:568 -> compareTo
    8:8:int compareTo(com.android.tools.r8.ir.optimize.Outliner$Outline):634 -> compareTo
    8:8:int compareTo(java.lang.Object):531 -> compareTo
    9:40:int compareTo(com.android.tools.r8.ir.optimize.Outliner$Outline):634:665 -> compareTo
    9:40:int compareTo(java.lang.Object):531 -> compareTo
    1:18:boolean equals(java.lang.Object):586:603 -> equals
    1:6:int hashCode():611:616 -> hashCode
    1:37:java.lang.String toString():672:708 -> toString
com.android.tools.r8.ir.optimize.Outliner$OutlineCode -> com.android.tools.r8.ir.optimize.L$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):1566:1567 -> <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):1593:1594 -> 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):1594 -> 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):1594:1594 -> buildIR
    1:1:boolean computeEquals(java.lang.Object):1614:1614 -> computeEquals
    1:1:int computeHashCode():1609:1609 -> computeHashCode
    1:1:void registerCodeReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry):1604:1604 -> registerCodeReferences
    1:1:java.lang.String toString():1599:1599 -> toString
com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction -> com.android.tools.r8.ir.optimize.N:
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType type -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():122:122 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType):164:165 -> <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):169:176 -> 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.M:
    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>():128:134 -> <clinit>
    8:8:void <clinit>():127:127 -> <clinit>
    1:1:void <init>(java.lang.String,int):127:127 -> <init>
    1:22:com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType fromInstruction(com.android.tools.r8.ir.code.Instruction):137:158 -> a
com.android.tools.r8.ir.optimize.Outliner$OutlineMethodIdentifier -> com.android.tools.r8.ir.optimize.O:
    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):1148:1150 -> <init>
    1:3:void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline):1155:1157 -> a
    4:5:java.util.List addOutlineMethodList(com.android.tools.r8.ir.optimize.Outliner$Outline):1161:1162 -> a
com.android.tools.r8.ir.optimize.Outliner$OutlineRewriter -> com.android.tools.r8.ir.optimize.P:
    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>():1182:1182 -> <clinit>
    1:5:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,java.util.List):1191:1195 -> <init>
    1:3:void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline):1200:1202 -> a
    4:6:boolean removeMethodFromOutlineList(com.android.tools.r8.ir.optimize.Outliner$Outline):1266:1268 -> a
    4:6:void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline):1202 -> a
    7:63:void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline):1203:1259 -> a
com.android.tools.r8.ir.optimize.Outliner$OutlineSiteIdentifier -> com.android.tools.r8.ir.optimize.Q:
    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):1169:1170 -> <init>
    1:3:void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline):1175:1177 -> a
    4:4:java.util.List lambda$handle$0(com.android.tools.r8.ir.optimize.Outliner$Outline):1176:1176 -> a
com.android.tools.r8.ir.optimize.Outliner$OutlineSourceCode -> com.android.tools.r8.ir.optimize.S:
    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 <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.ir.optimize.Outliner$Outline,com.android.tools.r8.graph.DexMethod):1419:1419 -> <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):1417:1421 -> <init>
    com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,int) -> a
    boolean verifyLocalInScope(com.android.tools.r8.graph.DebugLocalInfo) -> a
    1:1:int instructionCount():1426:1426 -> a
    2:2:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):1457:1457 -> a
    3:12:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):1471:1480 -> a
    13:13:void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean):1486:1486 -> a
    14:18:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):1497:1501 -> a
    19:19:int com.android.tools.r8.ir.optimize.Outliner$Outline.argumentCount():568:568 -> a
    19:19:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):1501 -> a
    20:29:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):1501:1510 -> a
    30:30:void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder):1516:1516 -> a
    31:31:void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder):1522:1522 -> a
    32:32:int getMoveExceptionRegister(int):1532:1532 -> 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):1537:1537 -> d
    2:2:com.android.tools.r8.ir.code.Position getCurrentPosition():1542:1542 -> 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.T:
    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>():716:716 -> <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):735:735 -> <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):721:738 -> <init>
    void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline) -> a
    1:4:java.util.List getInstructionArray():742:745 -> a
    5:10:java.util.List orderedInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):767:772 -> a
    11:23:com.android.tools.r8.graph.DexType argumentTypeFromInvoke(com.android.tools.r8.ir.code.InvokeMethod,int):918:930 -> a
    24:30:boolean supportedArgumentType(com.android.tools.r8.ir.code.Value):935:941 -> a
    31:31:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    31:31:boolean supportedArgumentType(com.android.tools.r8.ir.code.Value):941 -> a
    32:38:boolean supportedArgumentType(com.android.tools.r8.ir.code.Value):945:951 -> 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):957:989 -> a
    72:79:void updateReturnValueState(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):1071:1078 -> a
    80:115:void candidate(int,int):1085:1120 -> a
    116:126:void reset(int):1125:1135 -> a
    1:1:void invalidateInstructionArray():750:750 -> b
    1:5:void process():756:760 -> c
    6:16:void processInstruction(com.android.tools.r8.ir.code.Instruction):783:793 -> c
    6:16:void process():760 -> c
    17:103:boolean canIncludeInstruction(com.android.tools.r8.ir.code.Instruction):826:912 -> c
    17:103:void processInstruction(com.android.tools.r8.ir.code.Instruction):800 -> c
    17:103:void process():760 -> c
    104:104:void processInstruction(com.android.tools.r8.ir.code.Instruction):804:804 -> c
    104:104:void process():760 -> c
    105:133:void includeInstruction(com.android.tools.r8.ir.code.Instruction):997:1025 -> c
    105:133:void processInstruction(com.android.tools.r8.ir.code.Instruction):807 -> c
    105:133:void process():760 -> c
    134:161:void includeInstruction(com.android.tools.r8.ir.code.Instruction):1023:1050 -> c
    134:161:void processInstruction(com.android.tools.r8.ir.code.Instruction):807 -> c
    134:161:void process():760 -> c
    162:165:void includeInstruction(com.android.tools.r8.ir.code.Instruction):1049:1052 -> c
    162:165:void processInstruction(com.android.tools.r8.ir.code.Instruction):807 -> c
    162:165:void process():760 -> c
    166:193:void includeInstruction(com.android.tools.r8.ir.code.Instruction):1034:1061 -> c
    166:193:void processInstruction(com.android.tools.r8.ir.code.Instruction):807 -> c
    166:193:void process():760 -> c
    194:200:void includeInstruction(com.android.tools.r8.ir.code.Instruction):1059:1065 -> c
    194:200:void processInstruction(com.android.tools.r8.ir.code.Instruction):807 -> c
    194:200:void process():760 -> c
    201:201:void includeInstruction(com.android.tools.r8.ir.code.Instruction):1063:1063 -> c
    201:201:void processInstruction(com.android.tools.r8.ir.code.Instruction):807 -> c
    201:201:void process():760 -> c
    202:212:void processInstruction(com.android.tools.r8.ir.code.Instruction):809:819 -> c
    202:212:void process():760 -> c
com.android.tools.r8.ir.optimize.PeepholeOptimizer -> com.android.tools.r8.ir.optimize.U:
    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():1514:1514 -> 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:390:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> a
    390:390:void removeIdenticalPredecessorBlocks(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):454 -> a
    391:391:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> a
    391: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():1514:1514 -> 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.V:
    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.Y:
    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):158:158 -> 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:125:void run():113:225 -> a
    126:152:void run():200:226 -> a
    153:153:void run():183:183 -> a
    154:161:void propagateActiveFieldsFrom(com.android.tools.r8.ir.code.BasicBlock):238:245 -> a
    154:161:void run():229 -> a
    162:168:void killActiveFieldsForExceptionalExit(com.android.tools.r8.ir.code.FieldInstruction):297:303 -> a
    162:168:void propagateActiveFieldsFrom(com.android.tools.r8.ir.code.BasicBlock):245 -> a
    162:168:void run():229 -> a
    169:172:void propagateActiveFieldsFrom(com.android.tools.r8.ir.code.BasicBlock):248:251 -> a
    169:172:void run():229 -> a
    173:174:void run():231:232 -> a
    175:175:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    175:175:void run():232 -> a
    176:178:void run():232:234 -> a
    179:179:boolean lambda$run$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):189:189 -> a
    180:206:void killActiveFields(com.android.tools.r8.ir.code.FieldInstruction):262:288 -> a
    207:210:void eliminateRedundantRead(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.ir.code.FieldInstruction):309:312 -> a
    1:2:void killAllActiveFields():257:258 -> b
com.android.tools.r8.ir.optimize.RedundantFieldLoadElimination$1 -> com.android.tools.r8.ir.optimize.W:
com.android.tools.r8.ir.optimize.RedundantFieldLoadElimination$FieldAndObject -> com.android.tools.r8.ir.optimize.X:
    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.Z:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():30:30 -> <clinit>
    1:19:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):36:54 -> 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):81:104 -> a
    20:43:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):54 -> a
    44:44:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> 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):109 -> a
    44:44:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):54 -> a
    45:57: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):110:122 -> a
    45:57:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):54 -> a
    58:60:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):55:57 -> a
    61:111: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):133:183 -> a
    61:111:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):56 -> a
    112:112:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    112: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):184 -> a
    112:112:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):56 -> a
    113:126: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):185:198 -> a
    113:126:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):56 -> a
    127:129:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):60:62 -> a
    130:131: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):357:358 -> a
    130:131:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):62 -> a
    132:141:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):63:72 -> a
    142:142:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    142:142:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):72 -> a
    143:145:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):72:74 -> a
com.android.tools.r8.ir.optimize.ServiceLoaderRewriter -> com.android.tools.r8.ir.optimize.b0:
    com.android.tools.r8.graph.AppView appView -> c
    java.util.concurrent.ConcurrentHashMap synthesizedServiceLoaders -> b
    com.android.tools.r8.graph.DexProgramClass synthesizedClass -> a
    1:1:void <init>(com.android.tools.r8.graph.AppView):76:76 -> <init>
    2:8:void <init>(com.android.tools.r8.graph.AppView):71:77 -> <init>
    1:1:com.android.tools.r8.graph.DexProgramClass getSynthesizedClass():81:81 -> a
    2:2:void rewrite(com.android.tools.r8.ir.code.IRCode):85:85 -> a
    3:3:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> a
    3:3:void rewrite(com.android.tools.r8.ir.code.IRCode):86 -> a
    4:72:void rewrite(com.android.tools.r8.ir.code.IRCode):87:155 -> a
    73:73:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    73:73:void rewrite(com.android.tools.r8.ir.code.IRCode):155 -> a
    74:84:void rewrite(com.android.tools.r8.ir.code.IRCode):159:169 -> a
    85:96:void rewrite(com.android.tools.r8.ir.code.IRCode):168:179 -> a
    97:129:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):184:216 -> a
    97:129: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 -> a
    130:142:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):213:225 -> a
    130:142: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 -> a
    143:151: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
    143:151:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):225 -> a
    143:151: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 -> a
    152:167: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
    152:167:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):225 -> a
    152:167: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 -> a
    168:168: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
    168:168:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):225 -> a
    168:168: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 -> a
    169:191: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
    169:191:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):225 -> a
    169:191: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 -> a
    192:192: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
    192:192:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):225 -> a
    192:192: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 -> a
    193:219: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
    193:219:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):225 -> a
    193:219: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 -> a
    220:220: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
    220:220:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):225 -> a
    220:220: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 -> a
    221:246: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
    221:246:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):225 -> a
    221:246: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 -> a
    247:248:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):225:226 -> a
    247:248: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 -> a
    249:249: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:172 -> a
    250:250:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    250:250: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
    251:251: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
com.android.tools.r8.ir.optimize.ServiceLoaderRewriter$Rewriter -> com.android.tools.r8.ir.optimize.a0:
    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):260:263 -> <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):270:270 -> a
    2:5:void clearGetClassLoader(com.android.tools.r8.ir.code.InvokeVirtual):286:289 -> a
    2:5:void perform(com.android.tools.r8.ir.code.InvokeVirtual,com.android.tools.r8.graph.DexMethod):269 -> a
    6:18:void perform(com.android.tools.r8.ir.code.InvokeVirtual,com.android.tools.r8.graph.DexMethod):270:282 -> a
com.android.tools.r8.ir.optimize.SwitchCaseEliminator -> com.android.tools.r8.ir.optimize.c0:
    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:1:boolean mayHaveIntroducedUnreachableBlocks():47:47 -> a
    2:5:void markSwitchCaseForRemoval(int):51:54 -> a
    6:6:boolean lambda$computeSuccessorHasBecomeDeadPredicate$0(int[],int):102:102 -> a
    1:2:boolean canBeOptimized():42:43 -> b
    1:2:boolean optimize():58 -> b
    3:3:boolean optimize():59:59 -> b
    4:5:void unlinkDeadSuccessors():74:75 -> b
    4:5:boolean optimize():60 -> b
    6:6:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> b
    6:6:void unlinkDeadSuccessors():75 -> b
    6:6:boolean optimize():60 -> b
    7:18:void unlinkDeadSuccessors():76:87 -> b
    7:18:boolean optimize():60 -> b
    19:20:boolean allSwitchCasesMarkedForRemoval():37:38 -> b
    19:20:boolean optimize():61 -> b
    21:21:void replaceSwitchByGoto():106:106 -> b
    21:21:boolean optimize():63 -> b
    22:23:void com.android.tools.r8.ir.code.Goto.<init>(com.android.tools.r8.ir.code.BasicBlock):21:22 -> b
    22:23:void replaceSwitchByGoto():106 -> b
    22:23:boolean optimize():63 -> b
    24:24:void replaceSwitchByGoto():106:106 -> b
    24:24:boolean optimize():63 -> b
    25:60:void replaceSwitchByOptimizedSwitch(int):110:145 -> b
    25:60:boolean optimize():66 -> b
    61:61:void replaceSwitchByOptimizedSwitch(int):140:140 -> b
    61:61:boolean optimize():66 -> b
    1:12:java.util.function.IntPredicate computeSuccessorHasBecomeDeadPredicate():91:102 -> c
com.android.tools.r8.ir.optimize.SwitchMapCollector -> com.android.tools.r8.ir.optimize.d0:
    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):168:168 -> 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):168:168 -> 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.SwitchUtils$1 -> com.android.tools.r8.ir.optimize.e0:
com.android.tools.r8.ir.optimize.SwitchUtils$EnumSwitchInfo -> com.android.tools.r8.ir.optimize.f0:
    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.SwitchUtils$1):23:23 -> <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):35:41 -> <init>
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:46:void <clinit>():58:103 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):114:114 -> <init>
    2:10:void <init>(com.android.tools.r8.graph.AppView):108:116 -> <init>
    1:12:com.android.tools.r8.graph.GraphLense run(com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):123:134 -> a
    13:27:com.android.tools.r8.graph.GraphLense run(com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):133:147 -> a
    28:28:com.android.tools.r8.graph.GraphLense run(com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):125:125 -> a
    29:29: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):136:136 -> a
    30: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):156:203 -> a
    78:92: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):202:216 -> a
    93: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):214:214 -> a
    94:137: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):212:255 -> a
    138:138: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
    139:168: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:280 -> a
    169:169: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):278:278 -> a
    170:181: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):276:287 -> a
    182:182:boolean lambda$processClass$1(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType):244:244 -> a
    183:183:java.util.Set lambda$processClass$2(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):285:285 -> a
    184:191:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription getPrototypeChanges(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):295:302 -> a
    192:192:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription getPrototypeChanges(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):297:297 -> a
    193:228:com.android.tools.r8.graph.DexMethod getNewMethodSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription):335:370 -> a
    229:229:com.android.tools.r8.graph.DexMethod getNewMethodSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription):369:369 -> a
    230:243:void rewrite(com.android.tools.r8.ir.code.IRCode):374:387 -> a
    244:253: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):439:448 -> a
    244:253:void rewrite(com.android.tools.r8.ir.code.IRCode):387 -> a
    254:265:void rewrite(com.android.tools.r8.ir.code.IRCode):389:400 -> a
    266:266:void rewrite(com.android.tools.r8.ir.code.IRCode):396:396 -> a
    267:286:void rewrite(com.android.tools.r8.ir.code.IRCode):390:409 -> a
    287:295:void rewrite(com.android.tools.r8.ir.code.IRCode):408:416 -> a
    296:316: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,java.util.Set,java.util.Set):536:556 -> a
    296:316:void rewrite(com.android.tools.r8.ir.code.IRCode):415 -> a
    317:317:void rewrite(com.android.tools.r8.ir.code.IRCode):425:425 -> a
    318:318:void com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(java.util.Set):1093:1093 -> a
    318:318:void rewrite(com.android.tools.r8.ir.code.IRCode):426 -> a
    319:321:void rewrite(com.android.tools.r8.ir.code.IRCode):427:429 -> a
    322:322:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    322:322:void rewrite(com.android.tools.r8.ir.code.IRCode):429 -> a
    323:325:void rewrite(com.android.tools.r8.ir.code.IRCode):429:431 -> a
    326:330:void logResults():458:462 -> a
    331:338:void logResults():459:466 -> a
    339:344:void logResults():463:468 -> a
    345:348:void logResults():467:470 -> a
    349:352:void logResults():469:472 -> a
    353:353:void logResults():471:471 -> a
    354:391: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,java.util.Set):483:520 -> a
    392:399:void replaceOutValueByNull(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,java.util.Set):565:572 -> a
    400:402:void replaceOutValueByNull(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,java.util.Set):571:573 -> a
    1:12:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo getRemovedArgumentsInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):307:318 -> b
    13:13:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo$Builder com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo.builder():119:119 -> b
    13:13:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo getRemovedArgumentsInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):321 -> b
    14:17:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo getRemovedArgumentsInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):322:325 -> b
    18:28:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo getRemovedArgumentsInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):320:330 -> b
com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy -> com.android.tools.r8.ir.optimize.g0:
    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>():61:62 -> <clinit>
    1:1:void <init>(java.lang.String,int):60:60 -> <init>
com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$UninstantiatedTypeOptimizationGraphLense -> com.android.tools.r8.ir.optimize.h0:
    java.util.Map removedArgumentsInfoPerMethod -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():65:65 -> <clinit>
    1:7:void <init>(com.android.tools.r8.com.google.common.collect.BiMap,java.util.Map,com.android.tools.r8.graph.AppView):74:80 -> <init>
    8:16:void <init>(com.android.tools.r8.com.google.common.collect.BiMap,java.util.Map,com.android.tools.r8.graph.AppView):73:81 -> <init>
    1:12:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):86:97 -> lookupPrototypeChanges
com.android.tools.r8.ir.optimize.UnusedArgumentsCollector -> com.android.tools.r8.ir.optimize.o0:
    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):92:92 -> <init>
    2:44:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.MethodPoolCollection):52:94 -> <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:9:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):98:104 -> a
    10:36:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):98:124 -> a
    37:48:void processDirectMethods(com.android.tools.r8.graph.DexProgramClass):221:232 -> a
    37:48:void lambda$runnableForClass$0(com.android.tools.r8.graph.DexProgramClass):217 -> a
    49:49:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo collectUnusedArguments(com.android.tools.r8.graph.DexEncodedMethod):282:282 -> a
    49:49:void processDirectMethods(com.android.tools.r8.graph.DexProgramClass):236 -> a
    49:49:void lambda$runnableForClass$0(com.android.tools.r8.graph.DexProgramClass):217 -> a
    50:62:void processDirectMethods(com.android.tools.r8.graph.DexProgramClass):237:249 -> a
    50:62:void lambda$runnableForClass$0(com.android.tools.r8.graph.DexProgramClass):217 -> a
    63:94:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo collectUnusedArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):287:318 -> a
    95:95:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo$Builder com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo.builder():119:119 -> a
    95:95:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo collectUnusedArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):320 -> a
    96:98:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo collectUnusedArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):321:323 -> a
    99:106:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo collectUnusedArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):319:326 -> a
    107:125:com.android.tools.r8.graph.DexProto createProtoWithRemovedArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):333:351 -> a
    1:18:void processVirtualMethods(com.android.tools.r8.graph.DexProgramClass):255:272 -> b
    19:24:void processVirtualMethods(com.android.tools.r8.graph.DexProgramClass):271:276 -> b
    1:1:java.lang.Runnable runnableForClass(com.android.tools.r8.graph.DexProgramClass):217:217 -> 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>():354:356 -> <init>
    4:4:void <init>(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$1):354:354 -> <init>
    1:1:java.util.BitSet getUsedArguments():359:359 -> a
    2:2:boolean register(int):364:364 -> 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):183:184 -> <init>
    1:12:com.android.tools.r8.graph.DexMethod getNewSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProto):193:204 -> 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.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):210:212 -> 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.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):211:211 -> a
com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$UnusedArgumentsGraphLense -> com.android.tools.r8.ir.optimize.m0:
    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):68:76 -> <init>
    1:6:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):82:87 -> 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>():127:127 -> <clinit>
    1:4:void <init>(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector):127:130 -> <init>
    5:5:void <init>(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector,com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$1):127:127 -> <init>
    1:1:void markSignatureAsUsed(com.android.tools.r8.graph.DexMethod):137:137 -> a
    1:1:void access$300(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$UsedSignatures,com.android.tools.r8.graph.DexMethod):127 -> a
    2:11:com.android.tools.r8.graph.DexMethod getNewSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProto):146:155 -> 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):152 -> a
    13:23:com.android.tools.r8.graph.DexMethod getNewSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProto):151:161 -> a
    24:24:boolean isMethodSignatureAvailable(com.android.tools.r8.graph.DexMethod):133:133 -> a
    24:24:com.android.tools.r8.graph.DexMethod getNewSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProto):163 -> 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.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):169:170 -> a
    27:27:void markSignatureAsUsed(com.android.tools.r8.graph.DexMethod):137:137 -> 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.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):172 -> 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.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):175:175 -> 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.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):174:174 -> a
com.android.tools.r8.ir.optimize.classinliner.ClassInliner -> com.android.tools.r8.ir.optimize.p0.b:
    java.util.concurrent.ConcurrentHashMap knownClasses -> b
    com.android.tools.r8.ir.desugar.LambdaRewriter lambdaRewriter -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():33:33 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter):63:63 -> <init>
    2:6:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter):60:64 -> <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):69:71 -> a
    4:50: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.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):172:218 -> a
    51:53:void logIneligibleUser(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionOrPhi):77:79 -> a
    51:53: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.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):218 -> a
    54:63: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.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):223:232 -> a
    64:64:void com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(java.util.Set):1093:1093 -> a
    64: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.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):233 -> a
    65:66: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.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):234:235 -> a
    67:67:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    67:67: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.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):235 -> a
    68:89: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.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):235:256 -> a
    90:90:boolean lambda$processMethodCode$0(com.android.tools.r8.ir.code.Instruction):173:173 -> a
    91:91:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):262:262 -> a
    91:91:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):193 -> a
    92:95:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):279:282 -> a
    92:95:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):264 -> a
    92:95:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):193 -> a
    96:96:boolean com.android.tools.r8.graph.DexClass.isAbstract():589:589 -> a
    96:96:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):284 -> a
    96:96:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):264 -> a
    96:96:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):193 -> a
    97:112:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):284:299 -> a
    97:112:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):264 -> a
    97:112:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):193 -> a
    113:113:boolean com.android.tools.r8.graph.DexClass.initializationOfParentTypesMayHaveSideEffects(com.android.tools.r8.graph.AppView):784:784 -> a
    113:113:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):304 -> a
    113:113:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):264 -> a
    113:113:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):193 -> a
    114:116:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):305:307 -> a
    114:116:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):264 -> a
    114:116:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):193 -> a
    117:117:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):285:285 -> a
    117:117:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):264 -> a
    117:117:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):193 -> a
    118:119:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):265:266 -> a
    118:119:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):193 -> a
com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus -> com.android.tools.r8.ir.optimize.p0.a:
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus UNKNOWN_TYPE -> c
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus NON_PROGRAM_CLASS -> d
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus UNUSED_INSTANCE -> a
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus NON_CLASS_TYPE -> b
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus IS_PINNED_TYPE -> g
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus HAS_FINALIZER -> h
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus ABSTRACT_OR_INTERFACE -> e
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus NEVER_CLASS_INLINE -> f
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus HAS_INSTANCE_FIELDS -> k
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus NON_FINAL_TYPE -> l
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus TRIGGER_CLINIT -> i
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus HAS_CLINIT -> j
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus ELIGIBLE -> o
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus NOT_INITIALIZED_AT_INIT -> m
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus PINNED_FIELD -> n
    1:20:void <clinit>():37:56 -> <clinit>
    1:1:void <init>(java.lang.String,int):35:35 -> <init>
com.android.tools.r8.ir.optimize.classinliner.FieldValueHelper -> com.android.tools.r8.ir.optimize.p0.c:
    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:11:com.android.tools.r8.ir.code.Value getValueForFieldRead(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):63:65 -> a
    12:43:com.android.tools.r8.ir.code.Value getOrCreateInValue(com.android.tools.r8.ir.code.BasicBlock):86:117 -> a
    1:13:com.android.tools.r8.ir.code.Value getOrCreateOutValue(com.android.tools.r8.ir.code.BasicBlock):69:81 -> b
    14:43:com.android.tools.r8.ir.code.Value getValueDefinedInTheBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):123:152 -> b
    44:44:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> b
    44:44:com.android.tools.r8.ir.code.Value getValueDefinedInTheBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):151 -> b
    45:49:com.android.tools.r8.ir.code.Value getValueDefinedInTheBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):151:155 -> b
    50:50:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):27:27 -> b
    50:50:com.android.tools.r8.ir.code.Value getValueDefinedInTheBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):155 -> b
    51:54:com.android.tools.r8.ir.code.Value getValueDefinedInTheBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):157:160 -> b
com.android.tools.r8.ir.optimize.classinliner.InlineCandidateProcessor -> com.android.tools.r8.ir.optimize.p0.d:
    int estimatedCombinedSizeForInlining -> o
    com.android.tools.r8.com.google.common.collect.ImmutableSet ALLOWED_ZERO_TEST_TYPES -> p
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.graph.DexType eligibleClass -> i
    com.android.tools.r8.ir.optimize.Inliner inliner -> c
    java.util.Map extraMethodCalls -> m
    boolean isDesugaredLambda -> k
    java.util.function.Function isClassEligible -> d
    com.android.tools.r8.graph.DexClass eligibleClassDefinition -> j
    boolean $assertionsDisabled -> q
    com.android.tools.r8.ir.code.Instruction root -> g
    com.android.tools.r8.ir.code.Value eligibleInstance -> h
    com.android.tools.r8.ir.desugar.LambdaRewriter lambdaRewriter -> b
    java.util.function.Predicate isProcessedConcurrently -> e
    java.util.Map methodCallsOnInstance -> l
    java.util.List unusedArguments -> n
    com.android.tools.r8.graph.DexEncodedMethod method -> f
    1:3:void <clinit>():61:63 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Function,java.util.function.Predicate,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):94:94 -> <init>
    2:25:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Function,java.util.function.Predicate,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):78:101 -> <init>
    1:1:int getEstimatedCombinedSizeForInlining():105:105 -> a
    2:31:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):262:291 -> a
    32:44:com.android.tools.r8.graph.DexEncodedMethod findSingleTarget(com.android.tools.r8.ir.code.InvokeMethod):962:974 -> a
    32:44:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):292 -> a
    45:82:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):293:330 -> a
    83:102:boolean isExtraMethodCallEligible(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Supplier):800:819 -> a
    83:102:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):331 -> a
    103:112:boolean isEligibleParameterUsages(com.android.tools.r8.ir.code.InvokeMethod,java.util.List,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Supplier):847:856 -> a
    103:112:boolean isExtraMethodCallEligible(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Supplier):822 -> a
    103:112:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):331 -> a
    113:124:boolean isExtraMethodCallEligible(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Supplier):826:837 -> a
    113:124:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):331 -> a
    125:128:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):340:343 -> a
    129:131:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):280:282 -> a
    132:132:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):370:370 -> a
    133:139:void replaceUsagesAsUnusedArgument(com.android.tools.r8.ir.code.IRCode):409:415 -> a
    133:139:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):371 -> a
    140:140:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):27:27 -> a
    140:140:void replaceUsagesAsUnusedArgument(com.android.tools.r8.ir.code.IRCode):415 -> a
    140:140:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):371 -> a
    141:146:void replaceUsagesAsUnusedArgument(com.android.tools.r8.ir.code.IRCode):416:421 -> a
    141:146:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):371 -> a
    147:151:boolean forceInlineExtraMethodInvocations(com.android.tools.r8.ir.code.IRCode):425:429 -> a
    147:151:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):373 -> a
    152:172:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):376:396 -> a
    173:176:boolean forceInlineDirectMethodInvocations(com.android.tools.r8.ir.code.IRCode):434:437 -> a
    173:176:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):399 -> a
    177:177:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):400:400 -> a
    178:230:void removeMiscUsages(com.android.tools.r8.ir.code.IRCode):460:512 -> a
    178:230:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):401 -> a
    231:247:void removeFieldReads(com.android.tools.r8.ir.code.IRCode):518:534 -> a
    231:247:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):402 -> a
    248:263:void removeFieldWrites():563:578 -> a
    248:263:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):403 -> a
    264:266:void removeFieldWrites():572:574 -> a
    264:266:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):403 -> a
    267:269:void removeFieldWrites():565:567 -> a
    267:269:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):403 -> a
    270:270:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):404:404 -> a
    271:275:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):542:546 -> a
    276:287:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):545:556 -> a
    288:288:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    288:288:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):556 -> a
    289:289:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):557:557 -> a
    290:290:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
    290:290:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):557 -> a
    291:294:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):556:559 -> a
    295:295:com.android.tools.r8.ir.optimize.classinliner.FieldValueHelper lambda$replaceFieldRead$0(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField):546:546 -> a
    296:301:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleConstructorCall(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Supplier):584:589 -> a
    302:334:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleConstructorCall(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Supplier):588:620 -> a
    335:335:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    335:335:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleConstructorCall(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Supplier):620 -> a
    336:355:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleConstructorCall(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Supplier):621:640 -> a
    356:356:boolean lambda$isEligibleConstructorCall$1(com.android.tools.r8.ir.code.Value):589:589 -> a
    357:387:boolean isEligibleInvokeWithAllUsersAsReceivers(com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility,com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set):655:685 -> a
    357:387:boolean lambda$isEligibleDirectVirtualMethodCall$3(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility):703 -> a
    388:390: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):694:696 -> a
    391:397: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):695:701 -> a
    398:398: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):699:699 -> a
    399:401:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleIndirectVirtualMethodCall(com.android.tools.r8.graph.DexMethod):707:709 -> a
    402:402:boolean lambda$isEligibleIndirectVirtualMethodCall$4(com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility):710:710 -> a
    403:439:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleVirtualMethodCall(boolean,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate):720:756 -> a
    440:452:boolean isExtraMethodCall(com.android.tools.r8.ir.code.InvokeMethod):760:772 -> a
    453:483:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):869:899 -> a
    484:487:boolean isTrivialInitializer(com.android.tools.r8.graph.DexMethod):930:933 -> a
    484:487:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):900 -> a
    488:488:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):163:163 -> a
    488:488:boolean isTrivialInitializer(com.android.tools.r8.graph.DexMethod):933 -> a
    488:488:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):900 -> a
    489:489:boolean isTrivialInitializer(com.android.tools.r8.graph.DexMethod):935:935 -> a
    489:489:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):900 -> a
    490:516:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):895:921 -> a
    517:517:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):917:917 -> a
    518:531:boolean isEligibleSingleTarget(com.android.tools.r8.graph.DexEncodedMethod):981:994 -> a
    532:532:boolean isEligibleSingleTarget(com.android.tools.r8.graph.DexEncodedMethod):993:993 -> a
    533:533:void lambda$removeInstruction$5(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):1008:1008 -> a
    534:535:void removeInstruction(com.android.tools.r8.ir.code.Instruction):1008:1009 -> a
    1:103:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassAndUsageEligible():148:250 -> b
    104:104:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassAndUsageEligible():234:234 -> b
    105:105:boolean lambda$isEligibleDirectVirtualMethodCall$2(com.android.tools.r8.ir.code.Value):696:696 -> b
    106:113:boolean exemptFromInstructionLimit(com.android.tools.r8.graph.DexEncodedMethod):939:946 -> b
    106:113:void markSizeForInlining(com.android.tools.r8.graph.DexEncodedMethod):956 -> b
    114:114:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> b
    114:114:boolean exemptFromInstructionLimit(com.android.tools.r8.graph.DexEncodedMethod):946 -> b
    114:114:void markSizeForInlining(com.android.tools.r8.graph.DexEncodedMethod):956 -> b
    115:120:boolean exemptFromInstructionLimit(com.android.tools.r8.graph.DexEncodedMethod):947:952 -> b
    115:120:void markSizeForInlining(com.android.tools.r8.graph.DexEncodedMethod):956 -> b
    121:121:boolean com.android.tools.r8.kotlin.KotlinSyntheticClass.isLambda():48:48 -> b
    121:121:boolean exemptFromInstructionLimit(com.android.tools.r8.graph.DexEncodedMethod):952 -> b
    121:121:void markSizeForInlining(com.android.tools.r8.graph.DexEncodedMethod):956 -> b
    122:122:void markSizeForInlining(com.android.tools.r8.graph.DexEncodedMethod):957:957 -> b
    1:17:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():111:127 -> c
    18:18:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> c
    18:18:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():127 -> c
    19:24:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():127:132 -> c
    1:13:void removeAssumeInstructionsLinkedToEligibleInstance():442:454 -> d
com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo -> com.android.tools.r8.ir.optimize.info.a:
    1:1:void <init>():11:11 -> <init>
    com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo asMutableCallSiteOptimizationInfo() -> a
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicType(int) -> a
    boolean hasUsefulOptimizationInfo(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod) -> a
    boolean isDefaultCallSiteOptimizationInfo() -> b
    boolean isMutableCallSiteOptimizationInfo() -> c
com.android.tools.r8.ir.optimize.info.DefaultCallSiteOptimizationInfo -> com.android.tools.r8.ir.optimize.info.b:
    com.android.tools.r8.ir.optimize.info.DefaultCallSiteOptimizationInfo INSTANCE -> a
    1:1:void <clinit>():10:10 -> <clinit>
    1:1:void <init>():13:13 -> <init>
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicType(int) -> a
    boolean isDefaultCallSiteOptimizationInfo() -> b
    1:1:com.android.tools.r8.ir.optimize.info.DefaultCallSiteOptimizationInfo getInstance():16:16 -> d
com.android.tools.r8.ir.optimize.info.DefaultFieldOptimizationInfo -> com.android.tools.r8.ir.optimize.info.c:
    com.android.tools.r8.ir.optimize.info.DefaultFieldOptimizationInfo INSTANCE -> a
    1:1:void <clinit>():12:12 -> <clinit>
    1:1:void <init>():14:14 -> <init>
    boolean cannotBeKept() -> b
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType() -> c
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType() -> d
    int getReadBits() -> e
    boolean isDefaultFieldOptimizationInfo() -> f
    1:1:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy():22:22 -> h
    boolean valueHasBeenPropagated() -> i
    1:1:com.android.tools.r8.ir.optimize.info.DefaultFieldOptimizationInfo getInstance():17:17 -> j
com.android.tools.r8.ir.optimize.info.DefaultMethodOptimizationInfo -> com.android.tools.r8.ir.optimize.info.d:
    boolean UNKNOWN_TRIGGERS_CLASS_INIT_BEFORE_ANY_SIDE_EFFECT -> m
    boolean UNKNOWN_INITIALIZER_ENABLING_JAVA_ASSERTIONS -> p
    boolean DOES_NOT_USE_IDNETIFIER_NAME_STRING -> k
    long UNKNOWN_RETURNED_CONSTANT_NUMBER -> g
    boolean UNKNOWN_CHECKS_NULL_RECEIVER_BEFORE_ANY_SIDE_EFFECT -> l
    com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer UNKNOWN_TRIVIAL_INITIALIZER -> o
    boolean $assertionsDisabled -> v
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement UNKNOWN_CLASS_TYPE -> j
    java.util.Set UNKNOWN_INITIALIZED_CLASSES_ON_NORMAL_EXIT -> b
    int UNKNOWN_RETURNED_ARGUMENT -> c
    boolean UNKNOWN_MAY_HAVE_SIDE_EFFECTS -> r
    boolean UNKNOWN_RETURN_VALUE_ONLY_DEPENDS_ON_ARGUMENTS -> s
    java.util.BitSet NO_NULL_PARAMETER_ON_NORMAL_EXITS_FACTS -> u
    java.util.BitSet NO_NULL_PARAMETER_OR_THROW_FACTS -> t
    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo DEFAULT_INSTANCE -> a
    boolean UNKNOWN_NEVER_RETURNS_NORMALLY -> e
    com.android.tools.r8.graph.DexString UNKNOWN_RETURNED_CONSTANT_STRING -> h
    com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo UNKNOWN_PARAMETER_USAGE_INFO -> q
    boolean UNKNOWN_RETURNS_CONSTANT -> f
    com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility UNKNOWN_CLASS_INLINER_ELIGIBILITY -> n
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement UNKNOWN_TYPE -> i
    boolean UNKNOWN_NEVER_RETURNS_NULL -> d
    1:24:void <clinit>():18:41 -> <clinit>
    1:1:void <init>():43:43 -> <init>
    1:1:long getReturnedConstantNumber():159:159 -> A
    2:2:boolean returnsConstantNumber():144:144 -> A
    2:2:long getReturnedConstantNumber():159 -> A
    3:4:long getReturnedConstantNumber():159:160 -> A
    1:1:com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility getClassInlinerEligibility():154:154 -> B
    1:1:java.util.Set getInitializedClassesOnNormalExit():82:82 -> C
    1:1:boolean isInitializerEnablingJavaAssertions():171:171 -> D
    1:1:com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer getTrivialInitializerInfo():87:87 -> E
    1:1:java.util.BitSet getNonNullParamOrThrow():98:98 -> F
    1:1:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage getParameterUsages(int):92:92 -> a
    2:2:com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo mutableCopy():216:216 -> a
    1:1:java.util.BitSet getNonNullParamOnNormalExits():103:103 -> b
    boolean cannotBeKept() -> c
    1:1:boolean checksNullReceiverBeforeAnySideEffect():191:191 -> d
    boolean returnValueHasBeenPropagated() -> e
    boolean classInitializerMayBePostponed() -> f
    1:2:int getReturnedArgument():123:124 -> g
    1:1:com.android.tools.r8.graph.DexString getReturnedConstantString():165:165 -> h
    2:2:boolean returnsConstantString():149:149 -> h
    2:2:com.android.tools.r8.graph.DexString getReturnedConstantString():165 -> h
    3:4:com.android.tools.r8.graph.DexString getReturnedConstantString():165:166 -> h
    1:1:boolean returnValueOnlyDependsOnArguments():206:206 -> i
    boolean neverInline() -> j
    1:1:boolean neverReturnsNormally():134:134 -> k
    1:1:boolean returnsConstant():139:139 -> l
    1:1:boolean returnsConstantString():149:149 -> m
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicReturnType():72:72 -> n
    1:1:boolean useIdentifierNameString():176:176 -> o
    1:1:boolean triggersClassInitBeforeAnySideEffect():196:196 -> p
    1:1:boolean returnsConstantNumber():144:144 -> q
    boolean returnsArgument() -> r
    boolean isUpdatableMethodOptimizationInfo() -> s
    1:1:boolean neverReturnsNull():129:129 -> t
    boolean isReachabilitySensitive() -> u
    com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo asUpdatableMethodOptimizationInfo() -> v
    boolean forceInline() -> w
    boolean isDefaultMethodOptimizationInfo() -> x
    1:1:boolean mayHaveSideEffects():201:201 -> y
    1:1:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType():77:77 -> z
com.android.tools.r8.ir.optimize.info.FieldOptimizationInfo -> com.android.tools.r8.ir.optimize.info.e:
    1:1:void <init>():10:10 -> <init>
    com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo asMutableFieldOptimizationInfo() -> a
    boolean cannotBeKept() -> b
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType() -> c
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType() -> d
    int getReadBits() -> e
    boolean isDefaultFieldOptimizationInfo() -> f
    boolean isMutableFieldOptimizationInfo() -> g
    com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy() -> h
    boolean valueHasBeenPropagated() -> i
com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo -> com.android.tools.r8.ir.optimize.info.f:
    long getReturnedConstantNumber() -> A
    com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility getClassInlinerEligibility() -> B
    java.util.Set getInitializedClassesOnNormalExit() -> C
    boolean isInitializerEnablingJavaAssertions() -> D
    com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer getTrivialInitializerInfo() -> E
    java.util.BitSet getNonNullParamOrThrow() -> F
    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
    boolean checksNullReceiverBeforeAnySideEffect() -> d
    boolean returnValueHasBeenPropagated() -> e
    boolean classInitializerMayBePostponed() -> f
    int getReturnedArgument() -> g
    com.android.tools.r8.graph.DexString getReturnedConstantString() -> h
    boolean returnValueOnlyDependsOnArguments() -> i
    boolean neverInline() -> j
    boolean neverReturnsNormally() -> k
    boolean returnsConstant() -> l
    boolean returnsConstantString() -> m
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicReturnType() -> n
    boolean useIdentifierNameString() -> o
    boolean triggersClassInitBeforeAnySideEffect() -> p
    boolean returnsConstantNumber() -> q
    boolean returnsArgument() -> r
    boolean isUpdatableMethodOptimizationInfo() -> s
    boolean neverReturnsNull() -> t
    boolean isReachabilitySensitive() -> u
    com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo asUpdatableMethodOptimizationInfo() -> v
    boolean forceInline() -> w
    boolean isDefaultMethodOptimizationInfo() -> x
    boolean mayHaveSideEffects() -> y
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType() -> z
com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo$InlinePreference -> com.android.tools.r8.ir.optimize.info.f$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.h:
    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>():63:63 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView):68:71 -> <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):79:79 -> 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):194:198 -> 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):80 -> a
    7:13:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage collectParameterUsages(int,com.android.tools.r8.ir.code.Value):214:220 -> 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):201 -> 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):80 -> 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):203:210 -> 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):80 -> 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):206:206 -> 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):80 -> a
    23:63:void identifyReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):225:265 -> a
    23: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):81 -> a
    64:66: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):82:84 -> a
    67: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):476:479 -> a
    67: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):84 -> a
    71:77: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):478:484 -> a
    71:77: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):84 -> a
    78:78: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):483:483 -> a
    78:78: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):84 -> a
    79:97: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):732:750 -> a
    79: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):86 -> a
    98:104:void computeInitializedClassesOnNormalExit(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):757:763 -> a
    98:104: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):87 -> a
    105:105: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):88:88 -> a
    106:112:void computeReturnValueOnlyDependsOnArguments(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):838:844 -> a
    106:112: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):89 -> a
    113:135:void computeNonNullParamOrThrow(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):851:873 -> a
    113:135: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):90 -> a
    136:167:void computeNonNullParamOnNormalExits(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.code.IRCode):878:909 -> a
    136:167: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):91 -> a
    168:213: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):931:976 -> a
    168:213:void computeNonNullParamOnNormalExits(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.code.IRCode):910 -> a
    168:213: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):91 -> a
    214:219:void computeNonNullParamOnNormalExits(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.code.IRCode):916:921 -> a
    214:219: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):91 -> a
    220:233:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):109:122 -> a
    234:234:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    234:234:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):122 -> a
    235:276:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):129:170 -> a
    277:277:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):169:169 -> a
    278:322:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):144:188 -> a
    323:323:boolean lambda$identifyClassInlinerEligibility$0(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):170:170 -> a
    324:324:boolean triggersClassInitializationBeforeSideEffect(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):496:496 -> a
    325:341: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):499:515 -> a
    342:400:boolean alwaysTriggerExpectedEffectBeforeAnythingElse(com.android.tools.r8.ir.code.IRCode,java.util.function.BiFunction):527:585 -> a
    401:440:boolean alwaysTriggerExpectedEffectBeforeAnythingElse(com.android.tools.r8.ir.code.IRCode,java.util.function.BiFunction):546:585 -> a
    441:453:boolean alwaysTriggerExpectedEffectBeforeAnythingElse(com.android.tools.r8.ir.code.IRCode,java.util.function.BiFunction):573:585 -> a
    454:454:boolean checksNullBeforeSideEffect(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView):596:596 -> a
    455:459: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):599:603 -> a
    460:475:boolean isKotlinNullCheck(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView):679:694 -> a
    460:475: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):605 -> a
    476:495: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):606:625 -> a
    496:501: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):624:629 -> a
    502:509:boolean isInstantiationOfNullPointerException(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.graph.DexItemFactory):713:720 -> a
    502:509: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):629 -> a
    510:530: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):630:650 -> a
    531:533:boolean isNullCheck(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):702:704 -> a
    534:545:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):771:782 -> a
    546:561: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:57 -> a
    546:561:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):783 -> a
    562:562: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):539:539 -> a
    562:562: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
    562:562:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):783 -> a
    563:571: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
    563:571:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):783 -> a
    572:598: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
    572:598:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):783 -> a
    599:654: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
    599:654:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):783 -> a
    655:655:boolean com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect.isNone():32:32 -> a
    655:655:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):784 -> a
    656:657:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):785:786 -> a
    658:658:boolean com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect.canBePostponed():28:28 -> a
    658:658:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):787 -> a
    659:659:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):788:788 -> a
    660:660:boolean com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect.isNone():32:32 -> a
    660:660:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):784 -> a
    661:664:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):793:796 -> a
    665:665:boolean hasNonTrivialFinalizeMethod(com.android.tools.r8.graph.DexType):815:815 -> a
    665:665:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):796 -> a
    666:666:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    666:666:boolean hasNonTrivialFinalizeMethod(com.android.tools.r8.graph.DexType):815 -> a
    666:666:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):796 -> a
    667:673:boolean hasNonTrivialFinalizeMethod(com.android.tools.r8.graph.DexType):817:823 -> a
    667:673:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):796 -> a
    674:678:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):804:808 -> a
    679:679:boolean lambda$computeMayHaveSideEffects$3(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction):805:805 -> a
    1:24:void identifyTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):271:294 -> b
    25:25:com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer computeInstanceInitializerInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.function.Function):394:394 -> b
    25:25:void identifyTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):294 -> b
    26:26:boolean com.android.tools.r8.graph.DexClass.definesFinalizer(com.android.tools.r8.graph.DexItemFactory):801:801 -> b
    26:26:com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer computeInstanceInitializerInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.function.Function):394 -> b
    26:26:void identifyTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):294 -> b
    27:100:com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer computeInstanceInitializerInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.function.Function):398:471 -> b
    27:100:void identifyTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):294 -> b
    101:161:com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer computeClassInitializerInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass):307:367 -> b
    101:161:void identifyTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):295 -> b
    162:223:com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer computeClassInitializerInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass):313:374 -> b
    162:223:void identifyTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):295 -> b
    224:224:void identifyTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):291:291 -> b
com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect -> com.android.tools.r8.ir.optimize.info.g:
    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>():669:672 -> <clinit>
    1:1:void <init>(java.lang.String,int):668:668 -> <init>
com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo -> com.android.tools.r8.ir.optimize.info.l:
    java.util.Map callSiteInfos -> b
    com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection cachedRepresentative -> c
    boolean $assertionsDisabled -> d
    int size -> a
    1:1:void <clinit>():20:20 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod):110:110 -> <init>
    2:86:void <init>(com.android.tools.r8.graph.DexEncodedMethod):28:112 -> <init>
    com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo asMutableCallSiteOptimizationInfo() -> a
    1:8:void computeCachedRepresentativeIfNecessary(com.android.tools.r8.graph.AppView):116:123 -> a
    9:20:void computeCachedRepresentativeIfNecessary(com.android.tools.r8.graph.AppView):122:133 -> a
    21:21:com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection lambda$computeCachedRepresentativeIfNecessary$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection,com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection):124:124 -> a
    22:22:boolean hasUsefulOptimizationInfo(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):156:156 -> a
    23:29:com.android.tools.r8.ir.analysis.type.TypeLatticeElement[] getStaticTypes(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):138:144 -> a
    23:29:boolean hasUsefulOptimizationInfo(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):157 -> a
    30:36:com.android.tools.r8.ir.analysis.type.TypeLatticeElement[] getStaticTypes(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):143:149 -> a
    30:36:boolean hasUsefulOptimizationInfo(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):157 -> a
    37:37:com.android.tools.r8.ir.analysis.type.TypeLatticeElement[] getStaticTypes(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):148:148 -> a
    37:37:boolean hasUsefulOptimizationInfo(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):157 -> a
    38:54:boolean hasUsefulOptimizationInfo(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):158:174 -> a
    55:59:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicType(int):183:187 -> a
    60:61:boolean hasArgumentsToRecord(java.util.List):192:193 -> a
    62:72:void recordArguments(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):202:212 -> a
    73:73:void recordArguments(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):211:211 -> a
    74:74:com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection lambda$recordArguments$2(com.android.tools.r8.graph.DexEncodedMethod):210:210 -> a
    1:1:com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection lambda$computeCachedRepresentativeIfNecessary$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection,com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection):125:125 -> b
    boolean isMutableCallSiteOptimizationInfo() -> c
    1:11:java.lang.String toString():227:237 -> toString
com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$1 -> com.android.tools.r8.ir.optimize.info.i:
com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection -> com.android.tools.r8.ir.optimize.info.k:
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement[] dynamicTypes -> a
    com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection BOTTOM -> b
    boolean $assertionsDisabled -> c
    1:5:void <clinit>():31:35 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$1):31:31 -> <init>
    2:2:void <init>():52:52 -> <init>
    3:5:void <init>(int):54:56 -> <init>
    1:1:com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection access$100():31:31 -> a
    2:4:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicType(int):60:62 -> a
    5:11:com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection join(com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection,com.android.tools.r8.graph.AppView):73:79 -> a
    12:14:com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection copy():66:68 -> a
    12:14:com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection join(com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection,com.android.tools.r8.graph.AppView):80 -> a
    15:16:com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection join(com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection,com.android.tools.r8.graph.AppView):81:82 -> a
    1:8:boolean equals(java.lang.Object):89:96 -> equals
    9:9:boolean equals(java.lang.Object):94:94 -> equals
    1:1:int hashCode():101:101 -> hashCode
    1:1:java.lang.String toString():106:106 -> toString
com.android.tools.r8.ir.optimize.info.MutableCallSiteOptimizationInfo$ArgumentCollection$1 -> com.android.tools.r8.ir.optimize.info.j:
    1:1:void <init>():35:35 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicType(int):38:38 -> a
    1:1:int hashCode():43:43 -> hashCode
com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo -> com.android.tools.r8.ir.optimize.info.m:
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement dynamicUpperBoundType -> e
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement dynamicLowerBoundType -> d
    boolean cannotBeKept -> b
    boolean valueHasBeenPropagated -> c
    int readBits -> a
    1:7:void <init>():21:27 -> <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):31:35 -> a
    6:6:void joinReadBits(int):53:53 -> a
    7:7:void setDynamicLowerBoundType(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):71:71 -> a
    8:8:void setDynamicUpperBoundType(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):80:80 -> a
    1:1:boolean cannotBeKept():58:58 -> b
    1:1:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType():67:67 -> c
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType():76:76 -> d
    1:1:int getReadBits():49:49 -> e
    boolean isMutableFieldOptimizationInfo() -> g
    1:1:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy():41:41 -> h
    2:2:boolean cannotBeKept():58:58 -> h
    2:2:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy():42 -> h
    3:3:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy():42:42 -> h
    4:4:boolean valueHasBeenPropagated():85:85 -> h
    4:4:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy():43 -> h
    5:5:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy():43:43 -> h
    1:1:boolean valueHasBeenPropagated():85:85 -> i
    1:1:void markAsPropagated():89:89 -> j
    1:1:void markCannotBeKept():62:62 -> k
com.android.tools.r8.ir.optimize.info.OptimizationFeedback -> com.android.tools.r8.ir.optimize.info.n:
    1:1:void <init>():20:20 -> <init>
    1:4:void fixupOptimizationInfos(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedback$OptimizationInfoFixer):33:36 -> a
    5:13:void fixupOptimizationInfos(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedback$OptimizationInfoFixer):35:43 -> a
    14:15:java.lang.Object lambda$fixupOptimizationInfos$0(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ir.optimize.info.OptimizationFeedback$OptimizationInfoFixer):38:39 -> a
com.android.tools.r8.ir.optimize.info.OptimizationFeedback$OptimizationInfoFixer -> com.android.tools.r8.ir.optimize.info.n$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.o:
    java.util.Map fieldOptimizationInfos -> a
    java.util.Map methodOptimizationInfos -> b
    java.util.Map processed -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():26:26 -> <clinit>
    1:8:void <init>():26:33 -> <init>
    1:2:void fixupOptimizationInfos(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedback$OptimizationInfoFixer):61:62 -> a
    3:3:boolean lambda$updateVisibleOptimizationInfo$0(java.util.Map$Entry):70:70 -> a
    4:9:boolean noUpdatesLeft():87:92 -> a
    10:10:void markFieldAsPropagated(com.android.tools.r8.graph.DexEncodedField):105:105 -> a
    11:11:void markFieldHasDynamicLowerBoundType(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):111:111 -> a
    12:12:void markFieldHasDynamicUpperBoundType(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):116:116 -> a
    13:14:void methodInitializesClassesOnNormalExit(com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):144:145 -> a
    15:15:void methodReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,int):150:150 -> a
    16:16:void methodReturnsConstantNumber(com.android.tools.r8.graph.DexEncodedMethod,long):155:155 -> a
    17:17:void methodReturnsConstantString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexString):160:160 -> a
    18:18:void methodReturnsObjectOfType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):166:166 -> a
    19:19:void methodReturnsObjectWithLowerBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):172:172 -> a
    20:20:void methodNeverReturnsNormally(com.android.tools.r8.graph.DexEncodedMethod):182:182 -> a
    21:21:void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):202:202 -> a
    22:22:void markTriggerClassInitBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean):219:219 -> a
    23:23:void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility):225:225 -> a
    24:24:void setTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer):230:230 -> a
    25:25:void setParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo):241:241 -> a
    26:26:void setNonNullParamOrThrow(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet):246:246 -> a
    1:2:void updateVisibleOptimizationInfo():69:70 -> b
    3:17:void updateVisibleOptimizationInfo():69:83 -> b
    18:18:boolean lambda$updateVisibleOptimizationInfo$1(java.util.Map$Entry):71:71 -> b
    19:19:void markFieldCannotBeKept(com.android.tools.r8.graph.DexEncodedField):100:100 -> b
    20:20:void markCheckNullReceiverBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean):213:213 -> b
    21:21:void setInitializerEnablingJavaAssertions(com.android.tools.r8.graph.DexEncodedMethod):235:235 -> b
    22:22:void setNonNullParamOnNormalExits(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet):251:251 -> b
    1:6:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo getFieldOptimizationInfoForUpdating(com.android.tools.r8.graph.DexEncodedField):37:42 -> c
    7:7:void methodMayNotHaveSideEffects(com.android.tools.r8.graph.DexEncodedMethod):187:187 -> c
    1:1:void markInlinedIntoSingleCallSite(com.android.tools.r8.graph.DexEncodedMethod):133:133 -> d
    1:1:void methodReturnValueOnlyDependsOnArguments(com.android.tools.r8.graph.DexEncodedMethod):192:192 -> e
    1:1:void markUseIdentifierNameString(com.android.tools.r8.graph.DexEncodedMethod):207:207 -> f
    1:1:void methodNeverReturnsNull(com.android.tools.r8.graph.DexEncodedMethod):177:177 -> g
    1:1:void markForceInline(com.android.tools.r8.graph.DexEncodedMethod):128:128 -> h
    1:1:void classInitializerMayBePostponed(com.android.tools.r8.graph.DexEncodedMethod):256:256 -> i
    1:1:void markMethodCannotBeKept(com.android.tools.r8.graph.DexEncodedMethod):138:138 -> j
    1:6:com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo getMethodOptimizationInfoForUpdating(com.android.tools.r8.graph.DexEncodedMethod):48:53 -> k
    1:1:void markFieldBitsRead(com.android.tools.r8.graph.DexEncodedField,int):121:121 -> markFieldBitsRead
com.android.tools.r8.ir.optimize.info.OptimizationFeedbackIgnore -> com.android.tools.r8.ir.optimize.info.OptimizationFeedbackIgnore:
    com.android.tools.r8.ir.optimize.info.OptimizationFeedbackIgnore INSTANCE -> a
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>():24:24 -> <init>
    void markFieldAsPropagated(com.android.tools.r8.graph.DexEncodedField) -> 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 methodReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,int) -> a
    void methodReturnsConstantNumber(com.android.tools.r8.graph.DexEncodedMethod,long) -> a
    void methodReturnsConstantString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexString) -> a
    void methodReturnsObjectOfType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement) -> a
    void methodReturnsObjectWithLowerBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement) -> a
    void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility) -> 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 setTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer) -> a
    1:1:com.android.tools.r8.ir.optimize.info.OptimizationFeedbackIgnore getInstance():27:27 -> a
    void markCheckNullReceiverBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> b
    void markFieldCannotBeKept(com.android.tools.r8.graph.DexEncodedField) -> b
    void setInitializerEnablingJavaAssertions(com.android.tools.r8.graph.DexEncodedMethod) -> b
    void setNonNullParamOnNormalExits(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> b
    void methodMayNotHaveSideEffects(com.android.tools.r8.graph.DexEncodedMethod) -> c
    void markInlinedIntoSingleCallSite(com.android.tools.r8.graph.DexEncodedMethod) -> d
    void methodReturnValueOnlyDependsOnArguments(com.android.tools.r8.graph.DexEncodedMethod) -> e
    void markUseIdentifierNameString(com.android.tools.r8.graph.DexEncodedMethod) -> f
    void methodNeverReturnsNull(com.android.tools.r8.graph.DexEncodedMethod) -> g
    void markForceInline(com.android.tools.r8.graph.DexEncodedMethod) -> h
    void classInitializerMayBePostponed(com.android.tools.r8.graph.DexEncodedMethod) -> i
    void markMethodCannotBeKept(com.android.tools.r8.graph.DexEncodedMethod) -> j
com.android.tools.r8.ir.optimize.info.OptimizationFeedbackIgnore$1 -> com.android.tools.r8.ir.optimize.info.OptimizationFeedbackIgnore$a:
    1:1:void <init>():22:22 -> <init>
com.android.tools.r8.ir.optimize.info.OptimizationFeedbackSimple -> com.android.tools.r8.ir.optimize.info.p:
    com.android.tools.r8.ir.optimize.info.OptimizationFeedbackSimple INSTANCE -> a
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>():24:24 -> <init>
    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 methodReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,int) -> a
    void methodReturnsConstantNumber(com.android.tools.r8.graph.DexEncodedMethod,long) -> a
    void methodReturnsConstantString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexString) -> a
    void methodReturnsObjectOfType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement) -> a
    void methodReturnsObjectWithLowerBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement) -> a
    void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility) -> 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 setTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer) -> a
    1:1:com.android.tools.r8.ir.optimize.info.OptimizationFeedbackSimple getInstance():27:27 -> a
    2:2:void markFieldAsPropagated(com.android.tools.r8.graph.DexEncodedField):39:39 -> a
    3:3:void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):136:136 -> a
    void markCheckNullReceiverBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> b
    void setNonNullParamOnNormalExits(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> b
    1:1:void markFieldCannotBeKept(com.android.tools.r8.graph.DexEncodedField):34:34 -> b
    2:2:void setInitializerEnablingJavaAssertions(com.android.tools.r8.graph.DexEncodedMethod):167:167 -> b
    void methodMayNotHaveSideEffects(com.android.tools.r8.graph.DexEncodedMethod) -> c
    1:1:void markInlinedIntoSingleCallSite(com.android.tools.r8.graph.DexEncodedMethod):67:67 -> d
    void methodReturnValueOnlyDependsOnArguments(com.android.tools.r8.graph.DexEncodedMethod) -> e
    1:1:void markUseIdentifierNameString(com.android.tools.r8.graph.DexEncodedMethod):141:141 -> f
    void methodNeverReturnsNull(com.android.tools.r8.graph.DexEncodedMethod) -> g
    void markForceInline(com.android.tools.r8.graph.DexEncodedMethod) -> h
    void classInitializerMayBePostponed(com.android.tools.r8.graph.DexEncodedMethod) -> i
    1:1:void markMethodCannotBeKept(com.android.tools.r8.graph.DexEncodedMethod):72:72 -> j
com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo -> com.android.tools.r8.ir.optimize.info.q:
    boolean $assertionsDisabled -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList parametersUsages -> a
    1:1:void <clinit>():28:28 -> <clinit>
    1:5:void <init>(java.util.List):32:36 -> <init>
    6:6:void <init>(java.util.List):35:35 -> <init>
    1:1:java.lang.Integer lambda$new$0(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage):36:36 -> a
    2:3:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage getParameterUsage(int):40:41 -> a
    1:2:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo remove(int):49:50 -> 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):50 -> b
    4:8:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo remove(int):50:54 -> 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):109:110 -> b
    9:10:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo remove(int):55 -> b
    11:24:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo remove(int):55:68 -> b
com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage -> com.android.tools.r8.ir.optimize.info.q$a:
    java.util.List callsReceiver -> c
    boolean hasFieldRead -> e
    boolean isAssignedToField -> f
    boolean isReturned -> g
    boolean $assertionsDisabled -> h
    java.util.Set ifZeroTest -> b
    int index -> a
    boolean hasFieldAssignment -> d
    1:1:void <clinit>():71:71 -> <clinit>
    1:10:void <init>(int,java.util.Set,java.util.List,boolean,boolean,boolean,boolean):96:105 -> <init>
    1:1:boolean notUsed():121:121 -> a
com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsageBuilder -> com.android.tools.r8.ir.optimize.info.r:
    boolean $assertionsDisabled -> i
    java.util.Set ifZeroTestTypes -> c
    java.util.List callsOnReceiver -> d
    boolean hasFieldAssignment -> e
    boolean hasFieldRead -> f
    com.android.tools.r8.ir.code.Value arg -> b
    boolean isAssignedToField -> g
    boolean isReturned -> h
    int index -> a
    1:1:void <clinit>():130:130 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value,int):142:142 -> <init>
    2:12:void <init>(com.android.tools.r8.ir.code.Value,int):134:144 -> <init>
    1:6:boolean note(com.android.tools.r8.ir.code.Instruction):149:154 -> a
    7:9:boolean note(com.android.tools.r8.ir.code.If):183:185 -> a
    7:9:boolean note(com.android.tools.r8.ir.code.Instruction):154 -> a
    10:12:boolean note(com.android.tools.r8.ir.code.If):184:186 -> a
    10:12:boolean note(com.android.tools.r8.ir.code.Instruction):154 -> a
    13:14:boolean note(com.android.tools.r8.ir.code.Instruction):156:157 -> a
    15:17:boolean note(com.android.tools.r8.ir.code.InstanceGet):193:195 -> a
    15:17:boolean note(com.android.tools.r8.ir.code.Instruction):157 -> a
    18:19:boolean note(com.android.tools.r8.ir.code.Instruction):159:160 -> a
    20:27:boolean note(com.android.tools.r8.ir.code.InstancePut):202:209 -> a
    20:27:boolean note(com.android.tools.r8.ir.code.Instruction):160 -> a
    28:32:boolean note(com.android.tools.r8.ir.code.Instruction):162:166 -> a
    33:34:boolean note(com.android.tools.r8.ir.code.Return):228:229 -> a
    33:34:boolean note(com.android.tools.r8.ir.code.Instruction):166 -> a
    35:37:boolean note(com.android.tools.r8.ir.code.Return):228:230 -> a
    35:37:boolean note(com.android.tools.r8.ir.code.Instruction):166 -> a
    38:38:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage build():172:172 -> a
    39:39:boolean lambda$note$0(com.android.tools.r8.ir.code.Value):217:217 -> a
    40:40:boolean note(com.android.tools.r8.ir.code.InvokeMethodWithReceiver):217:217 -> a
    41:46:boolean note(com.android.tools.r8.ir.code.InvokeMethodWithReceiver):216:221 -> a
    47:47:boolean note(com.android.tools.r8.ir.code.InvokeMethodWithReceiver):218:218 -> a
com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo -> com.android.tools.r8.ir.optimize.info.s:
    com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer trivialInitializerInfo -> u
    long returnedConstantNumber -> k
    boolean neverReturnsNormally -> i
    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo$InlinePreference inlining -> p
    boolean useIdentifierNameString -> q
    boolean triggersClassInitBeforeAnySideEffect -> s
    java.util.BitSet nonNullParamOnNormalExits -> y
    boolean mayHaveSideEffects -> f
    boolean neverReturnsNull -> h
    boolean returnValueHasBeenPropagated -> A
    boolean classInitializerMayBePostponed -> b
    boolean returnsConstantNumber -> j
    boolean returnsConstantString -> l
    boolean initializerEnablingJavaAssertions -> v
    int returnedArgument -> e
    boolean checksNullReceiverBeforeAnySideEffect -> r
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement returnsObjectWithLowerBoundType -> o
    com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo parametersUsages -> w
    java.util.BitSet nonNullParamOrThrow -> x
    java.util.Set initializedClassesOnNormalExit -> d
    boolean reachabilitySensitive -> z
    com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility classInlinerEligibility -> t
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement returnsObjectOfType -> n
    boolean returnValueOnlyDependsOnArguments -> g
    boolean cannotBeKept -> a
    boolean $assertionsDisabled -> B
    com.android.tools.r8.graph.DexString returnedConstantString -> m
    boolean hasBeenInlinedIntoSingleCallSite -> c
    1:1:void <clinit>():20:20 -> <clinit>
    1:1:void <init>():81:81 -> <init>
    2:59:void <init>():22:79 -> <init>
    60:60:void <init>(com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo):87:87 -> <init>
    61:153:void <init>(com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo):22:114 -> <init>
    1:2:long getReturnedConstantNumber():255:256 -> A
    1:1:com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility getClassInlinerEligibility():250:250 -> B
    1:1:java.util.Set getInitializedClassesOnNormalExit():174:174 -> C
    1:1:boolean isInitializerEnablingJavaAssertions():267:267 -> D
    1:1:com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer getTrivialInitializerInfo():179:179 -> E
    1:1:java.util.BitSet getNonNullParamOrThrow():189:189 -> F
    1:54:void adjustOptimizationInfoAfterRemovingThisParameter():455:508 -> G
    1:1:void markAsPropagated():438:438 -> H
    1:1:void markCannotBeKept():150:150 -> I
    1:1:void markClassInitializerMayBePostponed():159:159 -> J
    1:2:void markForceInline():405:406 -> K
    1:1:void markInlinedIntoSingleCallSite():203:203 -> L
    1:1:void markMayNotHaveSideEffects():344:344 -> M
    1:2:void markNeverInline():419:420 -> N
    1:1:void markNeverReturnsNormally():356:356 -> O
    1:1:void markNeverReturnsNull():352:352 -> P
    1:1:void markReturnValueOnlyDependsOnArguments():348:348 -> Q
    1:1:void markUseIdentifierNameString():425:425 -> R
    1:1:void setInitializerEnablingJavaAssertions():330:330 -> S
    1:2:void unsetForceInline():412:413 -> T
    1:6:void fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):119:124 -> a
    7:7:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage getParameterUsages(int):184:184 -> a
    8:8:void setParameterUsages(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo):306:306 -> a
    9:9:void setNonNullParamOnNormalExits(java.util.BitSet):314:314 -> a
    10:10:void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility):322:322 -> a
    11:11:void setTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer):326:326 -> a
    12:12:void markInitializesClassesOnNormalExit(java.util.Set):334:334 -> a
    13:17:void markReturnsConstantNumber(long):360:364 -> a
    18:22:void markReturnsConstantString(com.android.tools.r8.graph.DexString):368:372 -> a
    23:32:void markReturnsObjectOfType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):376:385 -> a
    33:36:void markReturnsObjectOfType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):384:387 -> a
    37:43:void markReturnsObjectWithLowerBoundType(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):391:397 -> a
    44:49:void markReturnsObjectWithLowerBoundType(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):394:399 -> a
    50:50:void markCheckNullReceiverBeforeAnySideEffect(boolean):429:429 -> a
    51:52:com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo mutableCopy():448:449 -> a
    1:1:java.util.BitSet getNonNullParamOnNormalExits():194:194 -> b
    2:2:void setNonNullParamOrThrow(java.util.BitSet):310:310 -> b
    3:5:void markReturnsArgument(int):338:340 -> b
    6:6:void markTriggerClassInitBeforeAnySideEffect(boolean):433:433 -> b
    1:1:boolean cannotBeKept():145:145 -> c
    2:2:void setReachabilitySensitive(boolean):318:318 -> c
    1:1:boolean checksNullReceiverBeforeAnySideEffect():287:287 -> d
    1:1:boolean returnValueHasBeenPropagated():443:443 -> e
    1:1:boolean classInitializerMayBePostponed():155:155 -> f
    1:2:int getReturnedArgument():218:219 -> g
    1:2:com.android.tools.r8.graph.DexString getReturnedConstantString():261:262 -> h
    1:1:boolean returnValueOnlyDependsOnArguments():302:302 -> i
    1:1:boolean neverInline():282:282 -> j
    1:1:boolean neverReturnsNormally():229:229 -> k
    1:2:boolean returnsConstant():234:235 -> l
    1:1:boolean returnsConstantString():245:245 -> m
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicReturnType():164:164 -> n
    1:1:boolean useIdentifierNameString():272:272 -> o
    1:1:boolean triggersClassInitBeforeAnySideEffect():292:292 -> p
    1:1:boolean returnsConstantNumber():240:240 -> q
    1:1:boolean returnsArgument():213:213 -> r
    boolean isUpdatableMethodOptimizationInfo() -> s
    1:1:boolean neverReturnsNull():224:224 -> t
    1:1:boolean isReachabilitySensitive():208:208 -> u
    com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo asUpdatableMethodOptimizationInfo() -> v
    1:1:boolean forceInline():277:277 -> w
    boolean isDefaultMethodOptimizationInfo() -> x
    1:1:boolean mayHaveSideEffects():297:297 -> y
    1:1:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType():169:169 -> z
com.android.tools.r8.ir.optimize.inliner.InlinerUtils -> com.android.tools.r8.ir.optimize.q0.a:
    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.NopWhyAreYouNotInliningReporter -> com.android.tools.r8.ir.optimize.q0.b:
    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.c:
    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.d:
    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:19:void reportInvalidInliningReason(com.android.tools.r8.ir.optimize.Inliner$Reason,java.util.Set):146:150 -> a
    20:20:void reportInvalidInliningReason(com.android.tools.r8.ir.optimize.Inliner$Reason,java.util.Set):146:146 -> a
    21:25:void reportUnsafeConstructorInliningDueToFinalFieldAssignment(com.android.tools.r8.ir.code.InstancePut):219:223 -> a
    26:26:void reportUnsafeConstructorInliningDueToFinalFieldAssignment(com.android.tools.r8.ir.code.InstancePut):219:219 -> a
    27:29:void reportUnsafeConstructorInliningDueToIndirectConstructorCall(com.android.tools.r8.ir.code.InvokeDirect):229:231 -> a
    30: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>():38:38 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaGroupId):62:62 -> <init>
    2:15:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaGroupId):50:63 -> <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):76:78 -> a
    4:4:boolean allLambdas(java.util.function.Predicate):83:83 -> a
    5:5:boolean lambda$allLambdas$0(java.util.function.Predicate,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):83:83 -> a
    6:7:boolean shouldAddToMainDex(com.android.tools.r8.graph.AppView):99:100 -> a
    8:8:boolean containsLambda(com.android.tools.r8.graph.DexType):108:108 -> a
    9:10:void add(com.android.tools.r8.graph.DexProgramClass):134:135 -> a
    11:23:void compact():144:156 -> a
    24:26:boolean verifyLambdaIds(boolean):203:205 -> a
    com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy getCodeStrategy() -> b
    1:3:boolean anyLambda(java.util.function.Predicate):87:89 -> b
    4:5:java.util.List lambdaCaptureFields(com.android.tools.r8.graph.DexType):117:118 -> b
    6:10:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.DexItemFactory):170:174 -> b
    11:24:java.lang.String createHash(java.util.List):182:195 -> b
    11:24:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.DexItemFactory):174 -> b
    25:25:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.DexItemFactory):174:174 -> b
    26:28:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.DexItemFactory):173:175 -> b
    29:29:java.lang.String createHash(java.util.List):197:197 -> b
    29:29:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.DexItemFactory):174 -> b
    1:2:com.android.tools.r8.graph.DexType getGroupClassType():67:68 -> c
    3:4:int lambdaId(com.android.tools.r8.graph.DexType):112:113 -> c
    java.lang.String getGroupSuffix() -> d
    1:4:com.android.tools.r8.graph.DexEncodedField lambdaSingletonField(com.android.tools.r8.graph.DexType):122:125 -> d
    java.lang.String getTypePackage() -> e
    1:2:void remove(com.android.tools.r8.graph.DexType):139:140 -> e
    1:1:boolean isTrivial():130:130 -> f
    1:1:int size():72:72 -> 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):56:58 -> <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):218:219 -> <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):28:31 -> <init>
    com.android.tools.r8.graph.ClassAccessFlags buildAccessFlags() -> a
    com.android.tools.r8.graph.DexAnnotationSet buildAnnotations() -> 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.DexEncodedField[] buildStaticFields() -> h
    com.android.tools.r8.graph.DexEncodedMethod[] buildVirtualMethods() -> i
    com.android.tools.r8.graph.DexType getSuperClassType() -> j
    1:21:com.android.tools.r8.graph.DexProgramClass synthesizeClass():35:55 -> k
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
    java.util.Map groups -> b
    com.android.tools.r8.kotlin.Kotlin kotlin -> g
    java.util.Set invalidatedLambdas -> c
    com.android.tools.r8.graph.DexItemFactory factory -> f
    java.util.Set methodsToReprocess -> d
    boolean $assertionsDisabled -> l
    com.android.tools.r8.graph.AppView appView -> e
    com.android.tools.r8.ir.optimize.lambda.LambdaMerger$Mode mode -> i
    com.android.tools.r8.DiagnosticsHandler reporter -> h
    com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor lambdaInvalidator -> j
    com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor lambdaChecker -> k
    1:1:void <clinit>():85:85 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):159:159 -> <init>
    2:44:void <init>(com.android.tools.r8.graph.AppView):125:167 -> <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):85 -> a
    2:2:com.android.tools.r8.ir.optimize.lambda.LambdaGroup getLambdaGroup(com.android.tools.r8.graph.DexType):182:182 -> a
    2:2:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy strategyProvider(com.android.tools.r8.graph.DexType):475 -> 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):85 -> a
    3:3:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy strategyProvider(com.android.tools.r8.graph.DexType):476:476 -> 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):85 -> a
    4:4:com.android.tools.r8.graph.AppView access$400(com.android.tools.r8.ir.optimize.lambda.LambdaMerger):85:85 -> a
    5:5:void invalidateLambda(com.android.tools.r8.graph.DexType):174:174 -> a
    6:6:void queueForProcessing(com.android.tools.r8.graph.DexEncodedMethod):186:186 -> a
    6:6:void access$600(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod):85 -> a
    7:40:void collectGroupCandidates(com.android.tools.r8.graph.DexApplication):194:227 -> a
    41:41:int lambda$collectGroupCandidates$3(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):202:202 -> a
    42:43:void analyzeCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):241:242 -> a
    44:45:void rewriteCodeForInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):268:269 -> a
    46:55: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):280:289 -> a
    56:76:java.util.Map finalizeLambdaGroups():380:400 -> a
    56:76: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):293 -> a
    77:112: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):296:331 -> a
    113:127: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):330:344 -> a
    128:128:void lambda$applyLambdaClassMapping$5(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):297:297 -> a
    129:129:void lambda$applyLambdaClassMapping$7(com.android.tools.r8.graph.DexEncodedMethod):325:325 -> a
    130:130:boolean lambda$applyLambdaClassMapping$9(com.android.tools.r8.ir.optimize.lambda.LambdaGroup):333:333 -> a
    131:133:boolean lambda$applyLambdaClassMapping$8(com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):335:337 -> a
    134:138:void analyzeReferencesInProgramClasses(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):349:353 -> a
    139:158:void analyzeLambdaClassesStructure(java.util.concurrent.ExecutorService):357:376 -> a
    159:159:void lambda$analyzeLambdaClassesStructure$12(java.util.List,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.ThrowingConsumer,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):362:362 -> a
    160:165:void lambda$analyzeLambdaClassesStructure$11(com.android.tools.r8.utils.ThrowingConsumer,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):364:369 -> a
    166:171:void lambda$analyzeLambdaClassesStructure$11(com.android.tools.r8.utils.ThrowingConsumer,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):367:372 -> a
    172:172:void invalidateLambda(com.android.tools.r8.graph.DexType):174:174 -> a
    172:172:void lambda$analyzeLambdaClassesStructure$11(com.android.tools.r8.utils.ThrowingConsumer,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):372 -> a
    173:179:void removeTrivialLambdaGroups():406:412 -> a
    180:190:void rewriteLambdaReferences(com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):420:430 -> a
    191:204:void rewriteLambdaReferences(com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):429:442 -> a
    205:209:java.lang.Object lambda$rewriteLambdaReferences$15(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.Set):432:436 -> a
    210:216:java.lang.Object lambda$rewriteLambdaReferences$15(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.Set):432:438 -> a
    217:218:void analyzeClass(com.android.tools.r8.graph.DexProgramClass):446:447 -> a
    217:218:void lambda$analyzeReferencesInProgramClasses$10(com.android.tools.r8.graph.DexProgramClass):351 -> a
    219:220:void com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor.accept(com.android.tools.r8.graph.DexTypeList):108:109 -> a
    219:220:void analyzeClass(com.android.tools.r8.graph.DexProgramClass):447 -> a
    219:220:void lambda$analyzeReferencesInProgramClasses$10(com.android.tools.r8.graph.DexProgramClass):351 -> a
    221:243:void analyzeClass(com.android.tools.r8.graph.DexProgramClass):448:470 -> a
    221:243:void lambda$analyzeReferencesInProgramClasses$10(com.android.tools.r8.graph.DexProgramClass):351 -> a
    244:244:void com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor.accept(com.android.tools.r8.graph.DexTypeList):108:108 -> a
    244:244:void analyzeClass(com.android.tools.r8.graph.DexProgramClass):447 -> a
    244:244:void lambda$analyzeReferencesInProgramClasses$10(com.android.tools.r8.graph.DexProgramClass):351 -> a
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor access$500(com.android.tools.r8.ir.optimize.lambda.LambdaMerger):85:85 -> b
    2:2:boolean isMergeableLambda(com.android.tools.r8.graph.DexType):178:178 -> b
    3:4:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):257:258 -> b
    5:5:com.android.tools.r8.graph.DexType lambda$applyLambdaClassMapping$6(com.android.tools.r8.graph.DexProgramClass):308:308 -> b
    6:6:void lambda$removeTrivialLambdaGroups$13(com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):412:412 -> b
    7:7:com.android.tools.r8.graph.DexEncodedMethod lambda$rewriteLambdaReferences$14(com.android.tools.r8.graph.DexEncodedMethod):425:425 -> b
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor access$800(com.android.tools.r8.ir.optimize.lambda.LambdaMerger):85:85 -> c
    2:2:void lambda$new$0(com.android.tools.r8.graph.DexType):169:169 -> c
    3:3:boolean lambda$collectGroupCandidates$1(com.android.tools.r8.graph.DexProgramClass):195:195 -> c
    1:1:java.util.Map access$900(com.android.tools.r8.ir.optimize.lambda.LambdaMerger):85:85 -> d
    2:4:boolean lambda$collectGroupCandidates$2(com.android.tools.r8.graph.DexProgramClass):198:200 -> d
    5:5:boolean com.android.tools.r8.kotlin.KotlinSyntheticClass.isLambda():48:48 -> d
    5:5:boolean lambda$collectGroupCandidates$2(com.android.tools.r8.graph.DexProgramClass):200 -> d
    6:7:boolean lambda$collectGroupCandidates$2(com.android.tools.r8.graph.DexProgramClass):200:201 -> d
    1:13:void lambda$collectGroupCandidates$4(com.android.tools.r8.graph.DexProgramClass):206:218 -> e
    14:14:void lambda$collectGroupCandidates$4(com.android.tools.r8.graph.DexProgramClass):213:213 -> e
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):479:479 -> <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):480:484 -> <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):481:481 -> <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):483:483 -> a
    2:2:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InvokeMethod):491:491 -> a
    3:3:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.NewInstance):496:496 -> a
    4:4:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstancePut):501:501 -> a
    5:5:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstanceGet):506:506 -> a
    6:6:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticPut):511:511 -> a
    7:7:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticGet):516:516 -> 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):94:94 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$1):94:94 -> <init>
    1:1:void analyzeCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):98:98 -> a
com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyMode -> com.android.tools.r8.ir.optimize.r0.m:
    com.android.tools.r8.ir.optimize.lambda.LambdaMerger this$0 -> c
    com.android.tools.r8.ir.optimize.lambda.LambdaMerger$LambdaMergerOptimizationInfoFixer optimizationInfoFixer -> b
    java.util.Set lambdaGroupsClasses -> a
    1:3:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,java.util.Set,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$LambdaMergerOptimizationInfoFixer):108:110 -> <init>
    1:5:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):115:119 -> 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>():520:520 -> <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):520:520 -> <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):532:534 -> <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):531:531 -> <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):524:538 -> <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):533:533 -> a
    2:4:void recordTypeHasChanged(com.android.tools.r8.ir.code.Value):542:544 -> a
    5:5:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InvokeMethod):602:602 -> a
    6:6:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.NewInstance):607:607 -> a
    7:7:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstancePut):614:614 -> a
    8:8:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstanceGet):619:619 -> a
    9:9:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticPut):626:626 -> a
    10:10:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticGet):631:631 -> a
    1:28:void processCode():551:578 -> b
    29:45:void processCode():577:593 -> b
    46:46:boolean typeMayHaveChanged(com.android.tools.r8.ir.code.Value):597:597 -> 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>():635:635 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,java.util.Map):640:641 -> <init>
    1:5:void fixup(com.android.tools.r8.graph.DexEncodedField):658:662 -> a
    6:12:void fixup(com.android.tools.r8.graph.DexEncodedMethod):668:674 -> a
    1:1:java.lang.Object apply(java.lang.Object):635:635 -> apply
    2:6:com.android.tools.r8.graph.DexType apply(com.android.tools.r8.graph.DexType):646:650 -> apply
    2:6:java.lang.Object apply(java.lang.Object):635 -> apply
com.android.tools.r8.ir.optimize.lambda.LambdaMerger$Mode -> com.android.tools.r8.ir.optimize.r0.p:
    1:1:void <init>():87:87 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$1):87:87 -> <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.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):104:104 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$GroupId):106:106 -> <init>
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroupClassBuilder getBuilder(com.android.tools.r8.graph.DexItemFactory):111:111 -> a
    2:2:com.android.tools.r8.utils.ThrowingConsumer lambdaClassValidator(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.AppInfoWithSubtyping):117:117 -> 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):180:180 -> <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):191:194 -> a
    5:5:com.android.tools.r8.graph.DexField lambda$createInstanceInitializerSourceCode$0(int):195:195 -> a
    1:1:com.android.tools.r8.graph.DexType getSuperClassType():185:185 -> j
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):152:152 -> <init>
    1:1:int getInstanceInitializerSize(java.util.List):157:157 -> a
    2:9:int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int):164:171 -> a
    10:10:int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int):167:167 -> 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):130:130 -> <init>
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroup createGroup():145:145 -> a
    java.lang.String getLambdaKindDescriptor() -> b
    1:1:boolean equals(java.lang.Object):135:135 -> 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):213:214 -> <init>
    1:6:void lambda$prepareSuperConstructorCall$0(int,com.android.tools.r8.ir.conversion.IRBuilder):221:226 -> b
    7:7:void lambda$prepareSuperConstructorCall$0(int,com.android.tools.r8.ir.conversion.IRBuilder):221:221 -> b
    1:1:void prepareSuperConstructorCall(int):219:219 -> 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 -> a
    7:7:void com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupIdFactory.checkAccessFlags(java.lang.String,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AccessFlags[]):230:230 -> a
    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):27 -> a
    8:8:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):48:48 -> a
    8:8: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 -> a
    9:20:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):56:67 -> a
    9:20: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 -> a
    21:30: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 -> a
    31:32:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):60:61 -> a
    31: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 -> a
    33:33:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> a
    33:33:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):61 -> a
    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 -> a
    34:34:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):61:61 -> a
    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 -> a
    35:35:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57:57 -> a
    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 -> a
    36:36:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> a
    36:36:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57 -> a
    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 -> a
    37:37:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57:57 -> a
    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):32 -> a
    38:38:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49:49 -> a
    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 -> a
    39:39:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> a
    39:39:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49 -> a
    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 -> a
    40:40:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49:49 -> a
    40:40: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 -> a
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):110:110 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$GroupId):112:112 -> <init>
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroupClassBuilder getBuilder(com.android.tools.r8.graph.DexItemFactory):117:117 -> a
    2:2:com.android.tools.r8.utils.ThrowingConsumer lambdaClassValidator(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.AppInfoWithSubtyping):123:123 -> 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):191:191 -> <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):202:208 -> a
    8:8:com.android.tools.r8.graph.DexField lambda$createInstanceInitializerSourceCode$0(int):206:206 -> a
    1:1:com.android.tools.r8.graph.DexType getSuperClassType():196:196 -> j
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):158:158 -> <init>
    1:1:int getInstanceInitializerSize(java.util.List):163:163 -> a
    2:14:int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int):170:182 -> a
    15:15:int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int):178:178 -> 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):136:136 -> <init>
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroup createGroup():151:151 -> a
    java.lang.String getLambdaKindDescriptor() -> b
    1:1:boolean equals(java.lang.Object):141:141 -> 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):227:230 -> <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):229:229 -> <init>
    1:1:void lambda$prepareSuperConstructorCall$0(int,com.android.tools.r8.ir.conversion.IRBuilder):236:236 -> b
    2:7:void lambda$prepareSuperConstructorCall$1(int,int,com.android.tools.r8.ir.conversion.IRBuilder):239:244 -> b
    8:8:void lambda$prepareSuperConstructorCall$1(int,int,com.android.tools.r8.ir.conversion.IRBuilder):239:239 -> b
    1:3:void prepareSuperConstructorCall(int):235:237 -> 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 -> a
    7:7:void com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupIdFactory.checkAccessFlags(java.lang.String,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AccessFlags[]):230:230 -> a
    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):27 -> a
    8:8:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):48:48 -> a
    8:8: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 -> a
    9:17:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):56:64 -> a
    9:17: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 -> a
    18: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):34:43 -> a
    28:28:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):65:65 -> a
    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 -> a
    29:29:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> a
    29:29:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):65 -> a
    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 -> a
    30:30:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):65:65 -> a
    30:30: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 -> a
    31:32:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):60:61 -> a
    31: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 -> a
    33:33:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> a
    33:33:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):61 -> a
    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 -> a
    34:34:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):61:61 -> a
    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 -> a
    35:35:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57:57 -> a
    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 -> a
    36:36:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> a
    36:36:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57 -> a
    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 -> a
    37:37:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57:57 -> a
    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):32 -> a
    38:38:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49:49 -> a
    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 -> a
    39:39:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> a
    39:39:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49 -> a
    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 -> a
    40:40:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49:49 -> a
    40:40: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 -> a
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:2:com.android.tools.r8.graph.DexField getSingletonInstanceField(com.android.tools.r8.graph.DexItemFactory,int):46:47 -> b
    3:3:com.android.tools.r8.graph.DexField getSingletonInstanceField(com.android.tools.r8.graph.DexItemFactory,int):46:46 -> b
    4:4:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy getCodeStrategy():83:83 -> b
    1:1:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id():27:27 -> c
    1:1:com.android.tools.r8.graph.DexProto createConstructorProto(com.android.tools.r8.graph.DexItemFactory):57 -> c
    2:8:com.android.tools.r8.graph.DexProto createConstructorProto(com.android.tools.r8.graph.DexItemFactory):57:63 -> c
    1:1:com.android.tools.r8.graph.DexField getLambdaIdField(com.android.tools.r8.graph.DexItemFactory):67:67 -> d
    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>():36:36 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup,com.android.tools.r8.graph.DexItemFactory,java.lang.String):42:43 -> <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():52:52 -> 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):117:121 -> a
    7:14:void lambda$collectVirtualMethods$3(java.util.Map,int,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):138:145 -> a
    15:15:java.util.Map lambda$collectVirtualMethods$1(com.android.tools.r8.graph.DexString):141:141 -> a
    16:16:java.util.List lambda$collectVirtualMethods$2(int,com.android.tools.r8.graph.DexProto):143:143 -> 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):190:190 -> a
    18:20:void lambda$buildStaticFields$6(java.util.List,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):222:224 -> a
    21:21:void lambda$buildStaticFields$6(java.util.List,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):223:223 -> a
    1:5:com.android.tools.r8.graph.DexAnnotationSet buildAnnotations():74:78 -> 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):172:172 -> b
    1:25:com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods():156:180 -> c
    26:35:com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods():178:187 -> c
    1:1:com.android.tools.r8.graph.EnclosingMethodAttribute buildEnclosingMethodAttribute():58:58 -> d
    1:1:java.util.List buildInnerClasses():64:64 -> e
    2:2:boolean com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId.hasInnerClassAttribute():71:71 -> e
    2:2:java.util.List buildInnerClasses():64 -> e
    3:5:java.util.List buildInnerClasses():65:67 -> e
    6:6:java.util.List buildInnerClasses():66:66 -> e
    1:10:com.android.tools.r8.graph.DexEncodedField[] buildInstanceFields():199:208 -> f
    1:1:com.android.tools.r8.graph.DexTypeList buildInterfaces():233:233 -> g
    1:13:com.android.tools.r8.graph.DexEncodedField[] buildStaticFields():216:228 -> h
    1:25:com.android.tools.r8.graph.DexEncodedMethod[] buildVirtualMethods():90:114 -> i
    26:44:com.android.tools.r8.graph.DexEncodedMethod[] buildVirtualMethods():109:127 -> i
    1:3:java.util.Map collectVirtualMethods():135:137 -> l
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):1012:1012 -> 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):1012:1012 -> 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):38:38 -> 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):1012:1012 -> 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):1012:1012 -> 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
    java.lang.String getLambdaKindDescriptor() -> b
    1:10:int computeHashCode():80:89 -> 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>
    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) -> a
    1:17:java.lang.String validateAnnotations(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):106:122 -> a
    18:18:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> a
    18:18:java.lang.String validateAnnotations(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):122 -> a
    19:22:java.lang.String validateAnnotations(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):122:125 -> a
    23:26:java.lang.String validateInstanceFields(com.android.tools.r8.graph.DexClass,boolean):153:156 -> a
    27:27:void checkAccessFlags(java.lang.String,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AccessFlags[]):230:230 -> a
    27:27:java.lang.String validateInstanceFields(com.android.tools.r8.graph.DexClass,boolean):155 -> a
    28:30:java.lang.String validateInstanceFields(com.android.tools.r8.graph.DexClass,boolean):157:159 -> a
    31:39:void validateDirectMethods(com.android.tools.r8.graph.DexClass):163:171 -> a
    40:44:void validateDirectMethods(com.android.tools.r8.graph.DexClass):169:173 -> a
    45:45:void validateDirectMethods(com.android.tools.r8.graph.DexClass):167:167 -> a
    46:46:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> a
    46:46:void validateDirectMethods(com.android.tools.r8.graph.DexClass):167 -> a
    47:74:void validateDirectMethods(com.android.tools.r8.graph.DexClass):167:194 -> a
    75:75:void checkAccessFlags(java.lang.String,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AccessFlags[]):230:230 -> a
    75:75:void validateDirectMethods(com.android.tools.r8.graph.DexClass):194 -> a
    76:76:void validateDirectMethods(com.android.tools.r8.graph.DexClass):196:196 -> a
    77:77:void validateDirectMethods(com.android.tools.r8.graph.DexClass):183:183 -> a
    78:78:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> a
    78:78:void validateDirectMethods(com.android.tools.r8.graph.DexClass):183 -> a
    79:100:void validateDirectMethods(com.android.tools.r8.graph.DexClass):183:204 -> a
    101:101:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> a
    101:101:void validateDirectMethods(com.android.tools.r8.graph.DexClass):204 -> a
    102:102:void validateDirectMethods(com.android.tools.r8.graph.DexClass):204:204 -> a
    103:103:void validateDirectMethods(com.android.tools.r8.graph.DexClass):200:200 -> a
    104:104:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> a
    104:104:void validateDirectMethods(com.android.tools.r8.graph.DexClass):200 -> a
    105:105:void validateDirectMethods(com.android.tools.r8.graph.DexClass):200:200 -> a
    106:107:void validateDirectMethods(com.android.tools.r8.graph.DexClass):175:176 -> a
    108:108:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> a
    108:108:void validateDirectMethods(com.android.tools.r8.graph.DexClass):176 -> a
    109:109:void validateDirectMethods(com.android.tools.r8.graph.DexClass):176:176 -> a
    110:116:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):210:216 -> a
    117:117:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> a
    117:117:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):216 -> a
    118:118:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):216:216 -> a
    119:120:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):211:212 -> a
    121:121:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> a
    121:121:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):212 -> a
    122:122:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):212:212 -> a
    123:125:void checkFieldAnnotations(com.android.tools.r8.graph.DexEncodedField):221:223 -> a
    126:126:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> a
    126:126:void checkFieldAnnotations(com.android.tools.r8.graph.DexEncodedField):223 -> a
    127:127:void checkFieldAnnotations(com.android.tools.r8.graph.DexEncodedField):223:223 -> a
    128:133:void checkAccessFlags(java.lang.String,int,com.android.tools.r8.graph.AccessFlags[]):236:241 -> a
    134:134:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> a
    134:134:void checkAccessFlags(java.lang.String,int,com.android.tools.r8.graph.AccessFlags[]):241 -> a
    135:135:void checkAccessFlags(java.lang.String,int,com.android.tools.r8.graph.AccessFlags[]):241:241 -> a
    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 -> b
    8:13:com.android.tools.r8.graph.InnerClassAttribute validateInnerClasses(com.android.tools.r8.graph.DexClass):75:80 -> b
    14:14:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> b
    14:14:com.android.tools.r8.graph.InnerClassAttribute validateInnerClasses(com.android.tools.r8.graph.DexClass):80 -> b
    15:15:com.android.tools.r8.graph.InnerClassAttribute validateInnerClasses(com.android.tools.r8.graph.DexClass):80:80 -> b
    16:28:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):130:142 -> b
    29:29:void checkAccessFlags(java.lang.String,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AccessFlags[]):230:230 -> b
    29:29:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):142 -> b
    30:30:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):143:143 -> b
    31:31:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):140:140 -> b
    32:32:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> b
    32:32:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):140 -> b
    33:33:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):140:140 -> b
    34:34:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):136:136 -> b
    35:35:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> b
    35:35:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):136 -> b
    36:47:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):136:147 -> b
    48:48:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):214:214 -> b
    48:48:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):147 -> b
    49:49:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):147:147 -> 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):214:214 -> 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[]):230:230 -> 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:24:boolean hasValidAnnotations(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):90:95 -> 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[]):242:245 -> 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:1:void lambda$prepareInstructions$3(int,com.android.tools.r8.ir.conversion.IRBuilder):70: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.peepholes.BasicBlockMuncher -> com.android.tools.r8.ir.optimize.s0.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.s0.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.s0.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.s0.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.s0.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.s0.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.s0.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.s0.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.s0.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:5:com.android.tools.r8.ir.optimize.peepholes.Match test(com.android.tools.r8.ir.code.InstructionListIterator):37:40 -> a
    6:42: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:java.lang.Boolean lambda$test$0(com.android.tools.r8.ir.code.InstructionListIterator):38:38 -> b
    1:1:com.android.tools.r8.ir.code.Instruction lambda$test$1(com.android.tools.r8.ir.code.InstructionListIterator):38:38 -> c
    1:1:void lambda$test$2(com.android.tools.r8.ir.code.InstructionListIterator):38:38 -> d
    1:1:java.lang.Boolean lambda$test$3(com.android.tools.r8.ir.code.InstructionListIterator):40:40 -> e
    1:1:com.android.tools.r8.ir.code.Instruction lambda$test$4(com.android.tools.r8.ir.code.InstructionListIterator):40:40 -> f
    1:1:void lambda$test$5(com.android.tools.r8.ir.code.InstructionListIterator):40:40 -> g
com.android.tools.r8.ir.optimize.peepholes.Point -> com.android.tools.r8.ir.optimize.s0.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.s0.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.s0.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.s0.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.s0.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.t0.e:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$Phase phase -> d
    java.util.concurrent.ConcurrentHashMap candidates -> f
    com.android.tools.r8.graph.AppView appView -> a
    java.util.function.BiConsumer fixupStrategy -> e
    boolean $assertionsDisabled -> g
    com.android.tools.r8.ir.conversion.IRConverter converter -> c
    1:1:void <clinit>():49:49 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):108:108 -> <init>
    2:54:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):59:111 -> <init>
    1:67:void collectCandidates(com.android.tools.r8.graph.DexApplication):118:184 -> a
    68:102:void lambda$collectCandidates$0(java.util.Map,java.util.Set,com.android.tools.r8.graph.DexProgramClass):129:163 -> a
    103:107:void lambda$collectCandidates$1(java.util.Set,java.util.Map,com.android.tools.r8.graph.DexProgramClass):169:173 -> a
    108:113:boolean isPinned(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):188:193 -> a
    108:113:void lambda$collectCandidates$1(java.util.Set,java.util.Map,com.android.tools.r8.graph.DexProgramClass):174 -> a
    114:117:void lambda$collectCandidates$1(java.util.Set,java.util.Map,com.android.tools.r8.graph.DexProgramClass):175:178 -> a
    118:131:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):223:236 -> a
    132:152:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):235:255 -> a
    153:161: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):341:349 -> a
    153:161:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):256 -> a
    162:162:boolean com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo.isHostClassInitializer(com.android.tools.r8.graph.DexEncodedMethod):86:86 -> a
    162:162: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):352 -> a
    162:162:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):256 -> a
    163:203: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):355:395 -> a
    163:203:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):256 -> a
    204:204:boolean isNonThrowingConstInstruction(com.android.tools.r8.ir.code.Instruction):423:423 -> a
    204:204: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):395 -> a
    204:204:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):256 -> a
    205:218: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):398:411 -> a
    205:218:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):256 -> a
    219:226:boolean isValidStaticPut(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo,com.android.tools.r8.ir.code.Instruction):458:465 -> a
    219: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):411 -> a
    219:226:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):256 -> a
    227:231: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):412:416 -> a
    227:231:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):256 -> a
    232:233:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):262:263 -> a
    234:238:boolean isAllowedInHostClassInitializer(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):331:335 -> a
    234:238:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):263 -> a
    239:263:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):264:288 -> a
    264:276:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processStaticFieldRead(com.android.tools.r8.ir.code.StaticGet):472:484 -> a
    264:276:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):288 -> a
    277:309:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):290:322 -> a
    310:335: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):428:453 -> a
    336:381: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):491:536 -> a
    382:382:boolean lambda$analyzeAllValueUsers$3(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):510:510 -> a
    383:384:void staticizeCandidates(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):559:560 -> a
    385:388:void setFixupStrategy(java.util.function.BiConsumer):571:574 -> a
    389:392:void cleanFixupStrategy():578:581 -> a
    1:1:boolean lambda$isValidInitCall$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):438:438 -> b
    2:4:void fixupMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):564:566 -> b
com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$1 -> com.android.tools.r8.ir.optimize.t0.a:
com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CallSiteReferencesInvalidator -> com.android.tools.r8.ir.optimize.t0.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):584:584 -> <init>
    2:3:void <init>(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,com.android.tools.r8.graph.DexItemFactory):586:587 -> <init>
    1:2:boolean registerMethod(com.android.tools.r8.graph.DexMethod):591:592 -> a
    3:4:boolean registerField(com.android.tools.r8.graph.DexField):597:598 -> a
    1:1:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):634:634 -> registerInstanceFieldRead
    1:1:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):629:629 -> registerInstanceFieldWrite
    1:1:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):609:609 -> registerInvokeDirect
    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):619:619 -> registerInvokeInterface
    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):614:614 -> registerInvokeStatic
    1:1:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):624:624 -> registerInvokeSuper
    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):604:604 -> registerInvokeVirtual
    1:1:boolean registerNewInstance(com.android.tools.r8.graph.DexType):639:639 -> registerNewInstance
    1:1:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):644:644 -> registerStaticFieldRead
    1:1:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):649:649 -> registerStaticFieldWrite
    1:3:boolean registerTypeReference(com.android.tools.r8.graph.DexType):654:656 -> registerTypeReference
com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo -> com.android.tools.r8.ir.optimize.t0.c:
    java.util.concurrent.atomic.AtomicInteger instancesCreated -> e
    com.android.tools.r8.graph.DexEncodedField singletonField -> b
    java.util.concurrent.atomic.AtomicInteger fieldWrites -> d
    boolean $assertionsDisabled -> i
    java.util.concurrent.atomic.AtomicReference constructor -> g
    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 -> h
    1:1:void <clinit>():64:64 -> <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):75:75 -> <init>
    2:17:void <init>(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField):67:82 -> <init>
    1:1:com.android.tools.r8.graph.DexType hostType():90:90 -> a
    1:1:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo invalidate():100:100 -> b
com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$Phase -> com.android.tools.r8.ir.optimize.t0.d:
    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$Phase Fixup -> c
    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$Phase Examine -> b
    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$Phase None -> a
    1:1:void <clinit>():56:56 -> <clinit>
    1:1:void <init>(java.lang.String,int):55:55 -> <init>
com.android.tools.r8.ir.optimize.staticizer.ClassStaticizerGraphLense -> com.android.tools.r8.ir.optimize.t0.f:
    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.t0.g:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer classStaticizer -> b
    boolean $assertionsDisabled -> i
    java.util.Set referencingExtraMethods -> d
    java.util.Set methodsToBeStaticized -> f
    java.util.Map hostClassInits -> e
    java.util.concurrent.ExecutorService executorService -> c
    java.util.Map singletonFields -> g
    java.util.Map candidateToHostMapping -> h
    1:1:void <clinit>():54:54 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,java.util.concurrent.ExecutorService):69:69 -> <init>
    2:14:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,java.util.concurrent.ExecutorService):60:72 -> <init>
    1:1:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):77:77 -> a
    2:5:void prepareCandidates():213:216 -> a
    2:5:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):80 -> a
    6:6:com.android.tools.r8.graph.DexClass com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo.hostClass():94:94 -> a
    6:6:void prepareCandidates():218 -> a
    6:6:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):80 -> a
    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo.hostClass():94 -> a
    7:7:void prepareCandidates():218 -> a
    7:7:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):80 -> a
    8:8:com.android.tools.r8.graph.DexClass com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo.hostClass():95:95 -> a
    8:8:void prepareCandidates():218 -> a
    8:8:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):80 -> a
    9:17:void prepareCandidates():219:227 -> a
    9:17:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):80 -> a
    18:18:com.android.tools.r8.graph.DexItemFactory factory():684:684 -> a
    18:18:void prepareCandidates():228 -> a
    18:18:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):80 -> a
    19:28:void prepareCandidates():228:237 -> a
    19:28:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):80 -> a
    29:30:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):83:84 -> a
    31:35:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):83:87 -> a
    36:47:java.util.Set staticizeMethodSymbols():566:577 -> a
    36:47:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):90 -> a
    48:48:com.android.tools.r8.graph.DexItemFactory factory():684:684 -> a
    48:48:java.util.Set staticizeMethodSymbols():578 -> a
    48:48:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):90 -> a
    49:62:java.util.Set staticizeMethodSymbols():578:591 -> a
    49:62:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):90 -> a
    63:63:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    63:63:java.util.Set staticizeMethodSymbols():591 -> a
    63:63:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):90 -> a
    64:65:java.util.Set staticizeMethodSymbols():592:593 -> a
    64:65:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):90 -> a
    66:104: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):620:658 -> a
    66:104:java.util.Set staticizeMethodSymbols():595 -> a
    66:104:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):90 -> a
    105:105:com.android.tools.r8.graph.DexItemFactory factory():684:684 -> a
    105:105: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):660 -> a
    105:105:java.util.Set staticizeMethodSymbols():595 -> a
    105:105:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):90 -> a
    106:106: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):660:660 -> a
    106:106:java.util.Set staticizeMethodSymbols():595 -> a
    106:106:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):90 -> a
    107:119: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):659:671 -> a
    107:119:java.util.Set staticizeMethodSymbols():595 -> a
    107:119:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):90 -> a
    120:121:java.util.Set staticizeMethodSymbols():601:602 -> a
    120:121:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):90 -> a
    122:124:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):95:97 -> a
    125:180:void finalEligibilityCheck():101:156 -> a
    181:181:com.android.tools.r8.graph.DexItemFactory factory():684:684 -> a
    181:181:void finalEligibilityCheck():156 -> a
    182:192:void finalEligibilityCheck():156:166 -> a
    193:222:void finalEligibilityCheck():165:194 -> a
    223:236:void finalEligibilityCheck():193:206 -> a
    237:237:boolean lambda$finalEligibilityCheck$0(com.android.tools.r8.graph.DexEncodedMethod):148:148 -> a
    238:238:boolean lambda$finalEligibilityCheck$1(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo,com.android.tools.r8.ir.code.StaticGet):186:186 -> a
    239:244:void processMethodsConcurrently(java.util.Set,java.util.function.BiConsumer,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):255:260 -> a
    245:259:void processMethodsConcurrently(java.util.Set,java.util.function.BiConsumer,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):259:273 -> a
    260:264:java.lang.Object lambda$processMethodsConcurrently$2(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.Set):262:266 -> a
    265:265:java.lang.Object lambda$processMethodsConcurrently$2(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.Set):262:262 -> a
    266:278:void removeCandidateInstantiation(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):277:289 -> a
    279:279:com.android.tools.r8.graph.DexItemFactory factory():684:684 -> a
    279:279:void removeCandidateInstantiation(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):289 -> a
    280:285:void removeCandidateInstantiation(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):289:294 -> a
    286:286:void com.android.tools.r8.ir.code.Instruction.removeOrReplaceByDebugLocalRead(com.android.tools.r8.ir.code.IRCode):278:278 -> a
    286:286:void removeCandidateInstantiation(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):295 -> a
    287:287:void removeCandidateInstantiation(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):300:300 -> a
    288:288:void com.android.tools.r8.ir.code.Instruction.removeOrReplaceByDebugLocalRead(com.android.tools.r8.ir.code.IRCode):278:278 -> a
    288:288:void lambda$removeCandidateInstantiation$3(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):294 -> a
    289:289:boolean lambda$rewriteReferences$4(com.android.tools.r8.ir.code.StaticGet):313:313 -> a
    290:297:void lambda$rewriteReferences$5(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.StaticGet):318:325 -> a
    298:298:void com.android.tools.r8.ir.code.Instruction.removeOrReplaceByDebugLocalRead(com.android.tools.r8.ir.code.IRCode):278:278 -> a
    298:298:void lambda$rewriteReferences$5(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.StaticGet):326 -> a
    299:319:boolean testAndCollectPhisComposedOfThis(java.util.Set,java.util.Set,com.android.tools.r8.ir.code.Value,java.util.Set):337:357 -> a
    320:324:void fixupStaticizedThisUsers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value):364:368 -> a
    325:342:void fixupStaticizedThisUsers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value):367:384 -> a
    343:366:boolean testAndCollectPhisComposedOfSameFieldRead(java.util.Set,java.util.Set,com.android.tools.r8.graph.DexField,java.util.Set):423:446 -> a
    367:372:void fixupStaticizedFieldReadUsers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexField):454:459 -> a
    373:390:void fixupStaticizedFieldReadUsers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexField):458:475 -> a
    391:400:void fixupStaticizedValueUsers(com.android.tools.r8.ir.code.IRCode,java.util.Set):479:488 -> a
    401:401:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1012:1012 -> a
    401:401:void fixupStaticizedValueUsers(com.android.tools.r8.ir.code.IRCode,java.util.Set):488 -> a
    402:409:void fixupStaticizedValueUsers(com.android.tools.r8.ir.code.IRCode,java.util.Set):489:496 -> a
    410:410:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):282:282 -> a
    410:410:void fixupStaticizedValueUsers(com.android.tools.r8.ir.code.IRCode,java.util.Set):495 -> a
    411:411:com.android.tools.r8.graph.DexField mapFieldIfMoved(com.android.tools.r8.graph.DexField):554:554 -> a
    412:412:com.android.tools.r8.graph.DexItemFactory factory():684:684 -> a
    412:412:com.android.tools.r8.graph.DexField mapFieldIfMoved(com.android.tools.r8.graph.DexField):556 -> a
    413:415:com.android.tools.r8.graph.DexField mapFieldIfMoved(com.android.tools.r8.graph.DexField):556:558 -> a
    416:416:com.android.tools.r8.graph.DexItemFactory factory():684:684 -> a
    416:416:com.android.tools.r8.graph.DexField mapFieldIfMoved(com.android.tools.r8.graph.DexField):560 -> a
    417:417:com.android.tools.r8.graph.DexField mapFieldIfMoved(com.android.tools.r8.graph.DexField):560:560 -> a
    418:421:boolean classMembersConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):608:611 -> a
    422:422:boolean lambda$classMembersConflict$6(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):610:610 -> a
    423:423:boolean lambda$classMembersConflict$7(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):611:611 -> a
    424:424: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):676:676 -> a
    425:425:com.android.tools.r8.graph.DexItemFactory factory():684:684 -> a
    425:425: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):677 -> a
    426:427: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):678:679 -> a
    428:428: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):677:677 -> a
    1:1:void removeReferencesToThis(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):304:304 -> b
    1:21:void rewriteReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):310:330 -> c
    22:22:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> c
    22:22:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):502 -> c
    22:22:void rewriteReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):331 -> c
    23:36:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):503:516 -> c
    23:36:void rewriteReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):331 -> c
    37:39:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):515:517 -> c
    37:39:void rewriteReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):331 -> c
    40:40:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):514:514 -> c
    40:40:void rewriteReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):331 -> c
    41:64:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):512:535 -> c
    41:64:void rewriteReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):331 -> c
    65:65:com.android.tools.r8.graph.DexItemFactory factory():684:684 -> c
    65:65:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):537 -> c
    65:65:void rewriteReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):331 -> c
    66:73:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):537:544 -> c
    66:73:void rewriteReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):331 -> c
    74:76:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):543:545 -> c
    74:76:void rewriteReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):331 -> c
    77:81:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):542:546 -> c
    77:81:void rewriteReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):331 -> c
com.android.tools.r8.ir.optimize.string.StringBuilderOptimizationConfiguration -> com.android.tools.r8.ir.optimize.string.StringBuilderOptimizationConfiguration:
    boolean isAppendMethod(com.android.tools.r8.graph.DexMethod) -> 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 isBuilderInit(com.android.tools.r8.graph.DexMethod) -> b
    boolean isBuilderInitWithInitialValue(com.android.tools.r8.ir.code.InvokeMethod) -> b
com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer -> com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    int numberOfDeadBuilders -> l
    com.android.tools.r8.graph.AppView appView -> a
    int numberOfBuildersSimplified -> m
    int numberOfBuildersWithMergingPoints -> j
    int numberOfBuildersWithNonDeterministicArg -> k
    int numberOfBuildersWithNonTrivialStateChange -> h
    int numberOfBuildersWithUnsupportedArg -> i
    int numberOfBuildersThatEscape -> f
    int numberOfBuildersWhoseResultIsInterned -> g
    int numberOfBuildersWithMultipleToString -> d
    int numberOfBuildersWithoutToString -> e
    boolean $assertionsDisabled -> r
    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfo -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfLengthOfEndResult -> o
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfLengthOfPartialAppendChains -> p
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfLengthOfPartialResult -> q
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfLengthOfAppendChains -> n
    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:63:void lambda$logResults$0(java.lang.Integer,java.lang.Integer):144:145 -> a
    64:64:void lambda$logResults$0(java.lang.Integer,java.lang.Integer):144:144 -> a
    65:65: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:3:void lambda$logResults$1(java.lang.Integer,java.lang.Integer):151:152 -> b
    4: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:3:void lambda$logResults$2(java.lang.Integer,java.lang.Integer):159:160 -> c
    4:4:void lambda$logResults$2(java.lang.Integer,java.lang.Integer):159:159 -> c
    1:16:void computeTrivialStringConcatenation(com.android.tools.r8.ir.code.IRCode):173:188 -> computeTrivialStringConcatenation
    1:1:int access$1308(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> d
    2:3:void lambda$logResults$3(java.lang.Integer,java.lang.Integer):166:167 -> d
    4: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.StringBuilderOptimizer$a:
com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState -> com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState:
    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>():963:966 -> <init>
    1:1:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState createRoot():970:970 -> a
    2:8:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState createChild(java.lang.String):974:980 -> a
com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$DefaultStringBuilderOptimizationConfiguration -> com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$b:
    com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer this$0 -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():791:791 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):791:791 -> <init>
    1:2:boolean isBuilderType(com.android.tools.r8.graph.DexType):795:796 -> a
    3:4:boolean isBuilderInit(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):801:802 -> a
    5:6:boolean isAppendMethod(com.android.tools.r8.graph.DexMethod):820:821 -> a
    7:22:boolean isSupportedAppendMethod(com.android.tools.r8.ir.code.InvokeMethod):826:841 -> a
    23:23:boolean canHandleArgumentType(com.android.tools.r8.graph.DexType):855:855 -> a
    23:23:boolean isSupportedAppendMethod(com.android.tools.r8.ir.code.InvokeMethod):842 -> a
    1:2:boolean isBuilderInit(com.android.tools.r8.graph.DexMethod):807:808 -> b
    3:5:boolean isBuilderInitWithInitialValue(com.android.tools.r8.ir.code.InvokeMethod):813:815 -> b
    1:2:boolean isToStringMethod(com.android.tools.r8.graph.DexMethod):849:850 -> isToStringMethod
com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringBuilderOptimizerEscapeAnalysisConfiguration -> com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$c:
    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>():859:859 -> <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):859:859 -> <init>
    2:5:void <init>(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer,com.android.tools.r8.ir.code.Value):863:866 -> <init>
    1:1:void logEscapingRoute(boolean):871:871 -> 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):881:890 -> isLegitimateEscapeRoute
    11:11:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> 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):890 -> 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):891:952 -> 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):882:882 -> isLegitimateEscapeRoute
com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis -> com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap builderToStringCounts -> b
    com.android.tools.r8.ir.code.IRCode code -> a
    com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer this$0 -> c
    boolean $assertionsDisabled -> d
    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:371:void <init>(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer,com.android.tools.r8.ir.code.IRCode):203:572 -> <init>
    372:372: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:150:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis buildBuilderStateGraph(java.util.Set):346:421 -> a
    75:150: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
    151:180:java.lang.String extractConstantArgument(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):432:461 -> a
    181:188: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):519:526 -> a
    189:208:void logHistogramOfChains(java.util.List,boolean):534:553 -> a
    209:225:void logHistogramOfChains(java.util.List,boolean):548:564 -> a
    226:226:void logHistogramOfChains(java.util.List,boolean):559:559 -> a
    227:228:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):575:576 -> a
    229:229:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> a
    229:229:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):576 -> a
    230:266:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):577:613 -> a
    267:272:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):611:616 -> a
    273:276:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):615:618 -> a
    277:281:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):588:592 -> a
    282:286:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):590:594 -> a
    287:316:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):593:622 -> a
    317:317:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    317:317:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):622 -> a
    318:318:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):622:622 -> a
    319:319:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> a
    319:319:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):576 -> a
    320:346:boolean isToStringOfInterest(java.util.Set,com.android.tools.r8.ir.code.Instruction):628:654 -> a
    320:346:boolean lambda$applyConcatenationResults$1(java.util.Set,com.android.tools.r8.ir.code.Instruction):578 -> a
    347:353:void removeTrivialBuilders():728:734 -> a
    354:354:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> a
    354:354:void removeTrivialBuilders():734 -> a
    355:367:void removeTrivialBuilders():735:747 -> a
    368:368:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> a
    368:368:void removeTrivialBuilders():747 -> a
    369:398:void removeTrivialBuilders():748:777 -> a
    399:399:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> a
    399:399:void removeTrivialBuilders():777 -> a
    400:409:void removeTrivialBuilders():778:787 -> a
    410:410:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> a
    410:410:void removeTrivialBuilders():777 -> a
    411:411:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> a
    411:411:void removeTrivialBuilders():747 -> a
    412:412:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> a
    412:412:void removeTrivialBuilders():734 -> 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):469:507 -> 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
    1:46:java.lang.String toCompileTimeString(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState):666:711 -> toCompileTimeString
    47:50:int estimateSizeReduction(java.util.List):718:721 -> toCompileTimeString
    47:50:java.lang.String toCompileTimeString(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState):712 -> toCompileTimeString
    51:51:java.lang.String toCompileTimeString(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState):713:713 -> toCompileTimeString
com.android.tools.r8.ir.optimize.string.StringOptimizer -> com.android.tools.r8.ir.optimize.string.b:
    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:36:void lambda$logResult$0(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping,java.lang.Integer):86:87 -> a
    37:37:void lambda$logResult$0(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping,java.lang.Integer):86:86 -> a
    38:39:void lambda$logResult$2(java.lang.Integer,java.lang.Integer):100:101 -> a
    40: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():932:932 -> 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:118:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):189:205 -> a
    119:183:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):203:267 -> a
    184:184:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1026:1026 -> 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):1026:1026 -> 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):1026:1026 -> a
    203:203:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):289 -> a
    204:209:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):292:297 -> a
    210:210:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    210:210:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):297 -> a
    211:211:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):297:297 -> a
    212:215:java.lang.Integer lambda$computeTrivialOperationsOnConstString$4(com.android.tools.r8.graph.DexString):218:221 -> a
    216:216:java.lang.Integer lambda$computeTrivialOperationsOnConstString$10(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):235:235 -> a
    217:217:java.lang.Integer lambda$computeTrivialOperationsOnConstString$13(com.android.tools.r8.graph.DexString,java.lang.Integer):241:241 -> a
    218:221:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):304:307 -> a
    222:222:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> a
    222:222:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):309 -> a
    223:264:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):310:351 -> a
    265:265:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    265:265:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):354 -> a
    266:323:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):359:416 -> a
    324:375:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):397:448 -> a
    376:380:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):446:450 -> a
    381:387:void logHistogramOfNames(com.android.tools.r8.graph.DexString):480:486 -> a
    381:387:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):451 -> a
    388:389:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):453:454 -> a
    390:398:void logHistogramOfNames(com.android.tools.r8.ir.code.DexItemBasedConstString):501:509 -> a
    390:398:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):456 -> a
    399:400:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):461:462 -> a
    401:401:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    401:401:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):462 -> a
    402:405:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):462:465 -> a
    406:411:void logDeferredNameComputation(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):491:496 -> a
    1:2:void lambda$logResult$1(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping,java.lang.Integer):93:94 -> b
    3:3:void lambda$logResult$1(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping,java.lang.Integer):93:93 -> b
    4:5:void lambda$logResult$3(java.lang.Integer,java.lang.Integer):108:109 -> b
    6: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):470:475 -> b
    16:16:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):517:517 -> b
    17:17:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> b
    17:17:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):518 -> b
    18:38:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):519:539 -> b
    39:82:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):537:580 -> b
    83:83:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> b
    83:83:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):580 -> b
    84:84:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):580:580 -> 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.a:
    com.android.tools.r8.ir.optimize.string.StringOptimizer$StringOptimizerEscapeAnalysisConfiguration INSTANCE -> a
    1:1:void <clinit>():587:587 -> <clinit>
    1:1:void <init>():590:590 -> <init>
    1:1:com.android.tools.r8.ir.optimize.string.StringOptimizer$StringOptimizerEscapeAnalysisConfiguration getInstance():593:593 -> 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):602:622 -> isLegitimateEscapeRoute
com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator -> com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator:
    int firstParallelMoveTemporary -> n
    boolean $assertionsDisabled -> p
    com.android.tools.r8.graph.AppView appView -> a
    int maxRegisterNumber -> i
    com.android.tools.r8.ir.code.IRCode code -> b
    int numberOfArgumentRegisters -> c
    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode mode -> g
    java.util.Map liveAtEntrySets -> d
    com.android.tools.r8.ir.code.Value lastArgumentValue -> f
    java.util.TreeSet freeRegisters -> h
    com.android.tools.r8.ir.code.Value firstArgumentValue -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList expiredHere -> l
    java.util.List liveIntervals -> j
    int[] unusedRegisters -> o
    java.util.List moveExceptionIntervals -> m
    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():1514:1514 -> 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:273:int getArgumentOrAllocateRegisterForValue(com.android.tools.r8.ir.code.Value,int):619:620 -> a
    274:275:int getRegisterForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):797:798 -> a
    274:275:int getArgumentOrAllocateRegisterForValue(com.android.tools.r8.ir.code.Value,int):620 -> a
    276:276:int getArgumentOrAllocateRegisterForValue(com.android.tools.r8.ir.code.Value,int):622:622 -> a
    277:277:com.android.tools.r8.utils.InternalOptions options():627:627 -> a
    278:278:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):645:645 -> a
    279:290:void clearRegisterAssignments(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):778:789 -> a
    279:290:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):648 -> a
    291:291:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):649:649 -> a
    292:300:void pinArgumentRegisters():2946:2954 -> a
    292:300:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):652 -> a
    301:301:void pinArgumentRegisters():2951:2951 -> a
    301:301:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):652 -> a
    302:363:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):826:887 -> a
    302:363:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    364:364:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):340:340 -> a
    364:364:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):888 -> a
    364:364:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    365:386:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):893:914 -> a
    365:386:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    387:393:void setHintForDestRegOfCheckCast(com.android.tools.r8.ir.regalloc.LiveIntervals):1054:1060 -> a
    387:393:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):916 -> a
    387:393:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    394:394:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):340:340 -> a
    394:394:void setHintForDestRegOfCheckCast(com.android.tools.r8.ir.regalloc.LiveIntervals):1060 -> a
    394:394:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):916 -> a
    394:394:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    395:396:void setHintForDestRegOfCheckCast(com.android.tools.r8.ir.regalloc.LiveIntervals):1061:1062 -> a
    395:396:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):916 -> a
    395:396:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    397:403:void setHintToPromote2AddrInstruction(com.android.tools.r8.ir.regalloc.LiveIntervals):1073:1079 -> a
    397:403:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):917 -> a
    397:403:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    404:404:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):340:340 -> a
    404:404:void setHintToPromote2AddrInstruction(com.android.tools.r8.ir.regalloc.LiveIntervals):1079 -> a
    404:404:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):917 -> a
    404:404:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    405:410:void setHintToPromote2AddrInstruction(com.android.tools.r8.ir.regalloc.LiveIntervals):1080:1085 -> a
    405:410:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):917 -> a
    405:410:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    411:411:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):340:340 -> a
    411:411:void setHintToPromote2AddrInstruction(com.android.tools.r8.ir.regalloc.LiveIntervals):1085 -> a
    411:411:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):917 -> a
    411:411:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    412:412:void setHintToPromote2AddrInstruction(com.android.tools.r8.ir.regalloc.LiveIntervals):1086:1086 -> a
    412:412:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):917 -> a
    412:412:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    413:478:void allocateArgumentIntervalsWithSrc(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1101:1166 -> a
    413:478:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):922 -> a
    413:478:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    479:528:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):923:972 -> a
    479:528:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    529:541:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1608:1620 -> a
    529:541:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    529:541:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    542:544:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1898:1900 -> a
    542:544:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1621 -> a
    542:544:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    542:544:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    545:601:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1626:1682 -> a
    545:601:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    545:601:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    602:602:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):340:340 -> a
    602:602:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1683 -> a
    602:602:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    602:602:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    603:607:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1684:1688 -> a
    603:607:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    603:607:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    608:608:int toInstructionPosition(int):1390:1390 -> a
    608:608:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1688 -> a
    608:608:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    608:608:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    609:620:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1693:1704 -> a
    609:620:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    609:620:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    621:629:boolean freePositionsAreConsistentWithFreeRegisters(com.android.tools.r8.ir.regalloc.RegisterPositions,int):1027:1035 -> a
    621:629:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1704 -> a
    621:629:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    621:629:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    630:660:boolean useRegisterHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean):1783:1813 -> a
    630:660:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1707 -> a
    630:660:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    630:660:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    661:689:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1713:1741 -> a
    661:689:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    661:689:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    690:692:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1898:1900 -> a
    690:692:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1742 -> a
    690:692:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    690:692:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    693:693:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1743:1743 -> a
    693:693:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    693:693:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    694:712:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):1982:2000 -> a
    694:712:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    694:712:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    694:712:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    713:722:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):1999:2008 -> a
    713:722:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    713:722:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    713:722:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    723:723:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):340:340 -> a
    723:723:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2009 -> a
    723:723:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    723:723:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    723:723:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    724:796:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2010:2082 -> a
    724:796:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    724:796:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    724:796:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    797:804:int getNewSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):1255:1262 -> a
    797:804:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2084 -> a
    797:804:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    797:804:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    797:804:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    805:805:void increaseCapacity(int):2960:2960 -> a
    805:805:int getNewSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):1262 -> a
    805:805:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2084 -> a
    805:805:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    805:805:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    805:805:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    806:808:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1898:1900 -> a
    806:808:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2085 -> a
    806:808:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    806:808:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    806:808:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    809:815:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2086:2092 -> a
    809:815:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    809:815:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    809:815:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    816:816:void increaseCapacity(int):2960:2960 -> a
    816:816:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2093 -> a
    816:816:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    816:816:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    816:816:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    817:817:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2096:2096 -> a
    817:817:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    817:817:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    817:817:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    818:825:void assignRegisterAndSpill(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2120:2127 -> a
    818:825:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2098 -> a
    818:825:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    818:825:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    818:825:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    826:827:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2101:2102 -> a
    826:827:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    826:827:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    826:827:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    828:835:void assignRegisterAndSpill(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2120:2127 -> a
    828:835:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2103 -> a
    828:835:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    828:835:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    828:835:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    836:837:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1750:1751 -> a
    836:837:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    836:837:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    838:838:void increaseCapacity(int):2960:2960 -> a
    838:838:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1752 -> a
    838:838:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    838:838:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    839:839:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1755:1755 -> a
    839:839:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    839:839:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    840:842:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1898:1900 -> a
    840:842:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1757 -> a
    840:842:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    840:842:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    843:851:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1759:1767 -> a
    843:851:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    843:851:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    852:854:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1898:1900 -> a
    852:854:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1768 -> a
    852:854:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    852:854:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    855:855:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1769:1769 -> a
    855:855:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    855:855:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    856:901:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):656:701 -> a
    902:916:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):674:688 -> a
    917:924:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):662:669 -> a
    925:965:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):666:706 -> a
    966:969:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):705:708 -> a
    970:970:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):707:707 -> a
    971:978:boolean isSpillInstruction(com.android.tools.r8.ir.code.Instruction):764:771 -> a
    979:983:int realRegisterNumberFromAllocated(int):816:820 -> a
    984:1022:boolean invariantsHold(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):983:1021 -> a
    1023:1024:void lambda$invariantsHold$3(java.util.TreeSet,int):991:992 -> a
    1025:1031:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1175:1181 -> a
    1032:1032:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):340:340 -> a
    1032:1032:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1182 -> a
    1033:1033:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1183:1183 -> a
    1034:1044:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1180:1190 -> a
    1045:1048:boolean liveIntervalsHasUnhandledSplitOverlappingAnyOf(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):1238:1241 -> a
    1045:1048:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1193 -> a
    1049:1049:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):340:340 -> a
    1049:1049:boolean liveIntervalsHasUnhandledSplitOverlappingAnyOf(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):1245 -> a
    1049:1049:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1193 -> a
    1050:1050:boolean liveIntervalsHasUnhandledSplitOverlappingAnyOf(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):1244:1244 -> a
    1050:1050:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1193 -> a
    1051:1051:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1194:1194 -> a
    1052:1065:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1192:1205 -> a
    1066:1066:int getFreeConsecutiveRegisters(int):2973:2973 -> a
    1066:1066:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1206 -> a
    1067:1068:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1208:1209 -> a
    1069:1074:boolean registerAssignmentNotConflictingWithArgument(com.android.tools.r8.ir.regalloc.LiveIntervals):1043:1048 -> a
    1069:1074:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1209 -> a
    1075:1075:boolean registerAssignmentNotConflictingWithArgument(com.android.tools.r8.ir.regalloc.LiveIntervals):1047:1047 -> a
    1075:1075:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1209 -> a
    1076:1076:boolean registerAssignmentNotConflictingWithArgument(com.android.tools.r8.ir.regalloc.LiveIntervals):1046:1046 -> a
    1076:1076:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1209 -> a
    1077:1090:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1211:1224 -> a
    1091:1115:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1207:1231 -> a
    1116:1135:int getSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):1267:1286 -> a
    1136:1143:boolean registersAreFreeAndConsecutive(int,boolean):3029:3036 -> a
    1136:1143:int getSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):1286 -> a
    1144:1169:int getSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):1287:1312 -> a
    1170:1200:boolean maySpillLiveIntervalsToRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int,int):1328:1358 -> a
    1201:1201:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):340:340 -> a
    1201:1201:boolean maySpillLiveIntervalsToRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int,int):1359 -> a
    1202:1218:boolean maySpillLiveIntervalsToRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int,int):1366:1382 -> a
    1219:1225:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,int):1833:1839 -> a
    1226:1238:boolean isLongResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1538:1550 -> a
    1226:1238:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,int):1840 -> a
    1239:1239:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,int):1844:1844 -> a
    1240:1244:boolean isArrayGetArrayRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1432:1436 -> a
    1240:1244:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,int):1845 -> a
    1245:1247:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1898:1900 -> a
    1245:1247:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,int):1848 -> a
    1248:1249:void assignRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1856:1857 -> a
    1250:1279:void updateRegisterHints(com.android.tools.r8.ir.regalloc.LiveIntervals):1862:1891 -> a
    1250:1279:void assignRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1858 -> a
    1280:1292:int getLargestCandidate(int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):1912:1924 -> a
    1293:1298: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):1942:1947 -> a
    1299:1311: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):1962:1974 -> a
    1312:1314:int getLargestPosition(com.android.tools.r8.ir.regalloc.RegisterPositions,int,boolean):2110:2112 -> a
    1315:1316:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2169:2170 -> a
    1317:1317:boolean atLeastOneOfRegistersAreTaken(int,boolean):3126:3126 -> a
    1317:1317:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2170 -> a
    1318:1364:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2170:2216 -> a
    1365:1387:void splitRangesForSpilledConstant(com.android.tools.r8.ir.regalloc.LiveIntervals,int):2284:2306 -> a
    1365:1387:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2219 -> a
    1388:1388:int toGapPosition(int):1394:1394 -> a
    1388:1388:void splitRangesForSpilledConstant(com.android.tools.r8.ir.regalloc.LiveIntervals,int):2306 -> a
    1388:1388:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2219 -> a
    1389:1402:void splitRangesForSpilledConstant(com.android.tools.r8.ir.regalloc.LiveIntervals,int):2306:2319 -> a
    1389:1402:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2219 -> a
    1403:1403:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2220:2220 -> a
    1404:1411:void splitRangesForSpilledArgument(com.android.tools.r8.ir.regalloc.LiveIntervals):2233:2240 -> a
    1404:1411:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2221 -> a
    1412:1439:void splitRangesForSpilledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):2247:2274 -> a
    1412:1439:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2223 -> a
    1440:1441:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2228:2229 -> a
    1442:1444: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):2328:2330 -> a
    1445:1445:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):340:340 -> a
    1445:1445: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 -> a
    1446:1453: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):2332:2339 -> a
    1454:1489: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):2447:2482 -> a
    1490:1490:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    1490:1490:boolean unconstrainedForCf(int,com.android.tools.r8.utils.InternalOptions):2654 -> a
    1490:1490: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):2482 -> a
    1491:1497: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):2482:2488 -> a
    1498:1549:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2521:2572 -> a
    1550:1556:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2569:2575 -> a
    1557:1557:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    1557:1557:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2575 -> a
    1558:1565:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2575:2582 -> a
    1566:1566:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> a
    1566:1566:boolean unconstrainedForCf(int,com.android.tools.r8.utils.InternalOptions):2654 -> a
    1566:1566:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2582 -> a
    1567:1604:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2582:2619 -> a
    1605:1606:int getLiveRangeEndOnExceptionalFlow(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):2646:2647 -> a
    1605:1606:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2623 -> a
    1607:1624:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2620:2637 -> a
    1625:1647:boolean implementationIsBridge(com.android.tools.r8.ir.code.IRCode):2723:2745 -> a
    1648:1648:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2767:2767 -> a
    1649:1653:boolean argumentsAreAlreadyLinked(com.android.tools.r8.ir.code.Invoke):2872:2876 -> a
    1649:1653:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2767 -> a
    1654:1687:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2768:2801 -> a
    1688:1689:boolean com.android.tools.r8.ir.code.Value.hasRegisterConstraint():744:745 -> a
    1688:1689:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2803 -> a
    1690:1690:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2804:2804 -> a
    1691:1692:com.android.tools.r8.ir.code.Value createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):2752:2753 -> a
    1691:1692:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2804 -> a
    1693:1694:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2805:2806 -> a
    1695:1698:void replaceArgument(com.android.tools.r8.ir.code.Invoke,int,com.android.tools.r8.ir.code.Value):2758:2761 -> a
    1695:1698:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2807 -> a
    1699:1723:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2809:2833 -> a
    1724:1750:void generateArgumentMovesAtDefinitions(com.android.tools.r8.ir.code.Invoke,java.util.PriorityQueue,com.android.tools.r8.ir.code.InstructionListIterator):2841:2867 -> a
    1724:1750:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2834 -> a
    1751:1751:int lambda$generateArgumentMoves$5(com.android.tools.r8.ir.code.Move,com.android.tools.r8.ir.code.Move):2775:2775 -> a
    1752:1796:int getFreeConsecutiveRegisters(int,boolean):2977:3021 -> a
    1797:1808:int lambda$getFreeConsecutiveRegisters$6(java.lang.Integer,java.lang.Integer):2983:2994 -> a
    1809:1812:int getNextFreeRegister(java.util.Iterator):3045:3048 -> a
    1813:1825:void excludeRegistersForInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet):3052:3064 -> a
    1826:1837:void freeOccupiedRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):3070:3081 -> a
    1838:1838:boolean hasEqualTypesAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):3176:3176 -> 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():3130:3139 -> b
    2:11:void allocateRegisters():207 -> b
    12:12:boolean noLinkedValues():3138:3138 -> b
    12:12:void allocateRegisters():207 -> b
    13:14:void allocateRegisters():208:209 -> b
    15:63:void transformBridgeMethod():2667:2715 -> b
    15:63:void allocateRegisters():210 -> b
    64:67:void computeNeedsRegister():2935:2938 -> b
    64:67:void allocateRegisters():212 -> b
    68:68:void constrainArgumentIntervals():2912:2912 -> b
    68:68:void allocateRegisters():213 -> b
    69:75:void createArgumentLiveIntervals(java.util.List):2886:2892 -> b
    69:75:void constrainArgumentIntervals():2913 -> b
    69:75:void allocateRegisters():213 -> b
    76:84:void linkArgumentValuesAndIntervals(java.util.List):2898:2906 -> b
    76:84:void constrainArgumentIntervals():2914 -> b
    76:84:void allocateRegisters():213 -> b
    85:95:void insertRangeInvokeMoves():2918:2928 -> 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():2493:2498 -> 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():1163:1163 -> b
    104:104:void computeLiveRanges():2498 -> 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():2498:2498 -> 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():1172:1172 -> b
    106:106:void computeLiveRanges():2498 -> 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():2498:2507 -> 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:131:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> b
    131:131:void allocateRegisters():229 -> b
    132:136:void allocateRegisters():230:234 -> b
    137:137:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():932:932 -> b
    137:137:void allocateRegisters():229 -> b
    138:138:void allocateRegisters():238:238 -> b
    139:144:void clearState():534:539 -> b
    139:144:void allocateRegisters():239 -> b
    145:145:boolean lambda$computeDebugInfo$1(com.android.tools.r8.ir.code.Instruction):309:309 -> b
    146:151:int unadjustedRealRegisterFromAllocated(int):802:807 -> b
    152:153:void lambda$invariantsHold$4(java.util.TreeSet,int):1008:1009 -> b
    154:171:boolean needsArrayGetWideWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1409:1426 -> b
    172:176:boolean isArrayGetArrayRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1432:1436 -> b
    177:181:void increaseCapacity(int,boolean):2965:2969 -> b
    1:3:int registersUsed():591:593 -> c
    4:4:boolean needsLongResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1502:1502 -> c
    5:5:boolean com.android.tools.r8.utils.InternalOptions.canHaveOverlappingLongRegisterBug():1178:1178 -> c
    5:5:boolean needsLongResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1502 -> c
    6:26:boolean needsLongResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1505:1525 -> c
    27:39:boolean isLongResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1538:1550 -> c
    40:41:boolean registerIsFree(int):3106:3107 -> c
    42:42:boolean registersAreFree(int,boolean):3113:3113 -> c
    1:1:int highestUsedRegister():586:586 -> d
    2:2:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441:1441 -> d
    3:3:boolean com.android.tools.r8.utils.InternalOptions.canHaveCmpLongBug():1211:1211 -> d
    3:3:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441 -> d
    4:4:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441:1441 -> d
    5:5:boolean com.android.tools.r8.utils.InternalOptions.canHaveLongToIntBug():1385:1385 -> d
    5:5:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441 -> d
    6:24:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1444:1462 -> d
    25:25:boolean com.android.tools.r8.ir.code.NumberConversion.isLongToIntConversion():52:52 -> d
    25:25:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1462 -> d
    26:26:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472:1472 -> d
    27:27:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441:1441 -> d
    27:27:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472 -> d
    28:28:boolean com.android.tools.r8.utils.InternalOptions.canHaveCmpLongBug():1211:1211 -> d
    28:28:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441 -> d
    28:28:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472 -> d
    29:29:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441:1441 -> d
    29:29:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472 -> d
    30:30:boolean com.android.tools.r8.utils.InternalOptions.canHaveLongToIntBug():1385:1385 -> d
    30:30:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441 -> d
    30:30:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472 -> d
    31:49:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1444:1462 -> d
    31:49:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472 -> d
    50:50:boolean com.android.tools.r8.ir.code.NumberConversion.isLongToIntConversion():52:52 -> d
    50:50:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1462 -> d
    50:50:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472 -> d
    51:66:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472:1487 -> d
    1:11:boolean overlapsMoveExceptionInterval(com.android.tools.r8.ir.regalloc.LiveIntervals):1590:1600 -> e
    12:12:void clearUserInfo():2658:2658 -> e
    1:26:boolean computeUnusedRegisters():546:571 -> f
    27:28:boolean registersForIntervalsAreTaken(com.android.tools.r8.ir.regalloc.LiveIntervals):3121:3122 -> f
    29:29:boolean registersAreTaken(int,boolean):3117:3117 -> f
    29:29:boolean registersForIntervalsAreTaken(com.android.tools.r8.ir.regalloc.LiveIntervals):3122 -> f
    1:2:int getMoveExceptionRegister():185:186 -> g
    3:3:void takeFreeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):3095:3095 -> g
    4:7:void takeFreeRegisters(int,boolean):3087:3090 -> g
    4:7:void takeFreeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):3095 -> g
    8:11:void takeFreeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):3097:3100 -> g
    1:13:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):600:612 -> getRegisterForValue
    14:15:int getRegisterForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):797:798 -> getRegisterForValue
    14:15:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):614 -> getRegisterForValue
    16:18:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):605:607 -> getRegisterForValue
    19:19:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> getRegisterForValue
    19:19:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> getRegisterForValue
    19:19:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):607 -> getRegisterForValue
    20:20:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):607:607 -> getRegisterForValue
    1:1:boolean hasDedicatedMoveExceptionRegister():177:177 -> h
    1:2:void computeRematerializableBits():2373:2374 -> i
    1:2:void insertMoves():2349 -> i
    3:12:void insertMoves():2351:2360 -> i
    13:13:int toGapPosition(int):1394:1394 -> i
    13:13:void insertMoves():2361 -> i
    14:14:void insertMoves():2361:2361 -> i
    15:15:void insertMoves():2359:2359 -> i
    16:58:void resolveControlFlow(com.android.tools.r8.ir.regalloc.SpillMoveSet):2392:2434 -> i
    16:58:void insertMoves():2367 -> i
    59:60:void insertMoves():2368:2369 -> i
    1:6:void removeSpillAndPhiMoves():752:757 -> j
    1:28:boolean unsplitArguments():719:746 -> k
    1:5:void splitOverlappingInactiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2132:2136 -> splitOverlappingInactiveIntervals
    6:6:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):340:340 -> splitOverlappingInactiveIntervals
    6:6:void splitOverlappingInactiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2137 -> splitOverlappingInactiveIntervals
    7:33:void splitOverlappingInactiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2138:2164 -> splitOverlappingInactiveIntervals
    1:20:java.lang.String toString():3147:3166 -> toString
com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode -> com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$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.LinearScanRegisterAllocator$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.a:
    boolean spilled -> m
    boolean usedInMonitorOperations -> n
    int registerLimit -> o
    com.android.tools.r8.ir.regalloc.LiveIntervals hint -> l
    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
    boolean sortedChildren -> g
    java.util.List ranges -> h
    com.android.tools.r8.ir.code.Value value -> a
    int maxNonSpilledRegister -> p
    1:1:void <clinit>():23:23 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value):52:52 -> <init>
    2:26:void <init>(com.android.tools.r8.ir.code.Value):32:56 -> <init>
    27:27:void <init>(com.android.tools.r8.ir.regalloc.LiveIntervals):59:59 -> <init>
    28:58:void <init>(com.android.tools.r8.ir.regalloc.LiveIntervals):32:62 -> <init>
    1:1:com.android.tools.r8.ir.code.ValueType getType():78:78 -> A
    1:1:int requiredRegisters():82 -> A
    2:2:int requiredRegisters():82:82 -> A
    1:1:java.lang.String toAscciArtString():560:560 -> B
    2:2:java.util.List getRanges():252:252 -> B
    2:2:java.lang.String toAscciArtString():562 -> B
    3:3:java.lang.String toAscciArtString():562:562 -> B
    4:4:boolean com.android.tools.r8.ir.regalloc.LiveRange.isInfinite():32:32 -> B
    4:4:java.lang.String toAscciArtString():563 -> B
    5:12:java.lang.String toAscciArtString():564:571 -> B
    13:13:boolean com.android.tools.r8.ir.regalloc.LiveRange.isInfinite():32:32 -> B
    13:13:java.lang.String toAscciArtString():563 -> B
    14:14:java.lang.String toAscciArtString():574:574 -> B
    1:14:void undoSplits():452:465 -> C
    1:1:boolean usedInMonitorOperation():518:518 -> D
    1:3:void recomputeLimit():469:471 -> E
    4:4:void updateRegisterConstraint(int):244:244 -> E
    4:4:void recomputeLimit():471 -> E
    1:7:void sortSplitChildrenIfNeeded():178:184 -> F
    8:10:boolean sortedChildrenConsistent():190:192 -> F
    8:10:void sortSplitChildrenIfNeeded():184 -> F
    11:11:void sortSplitChildrenIfNeeded():185:185 -> F
    1:1:void setSpilled(boolean):95:95 -> a
    2:2:int getRegister():266:266 -> a
    2:2:void setSpilled(boolean):95 -> a
    3:4:void setSpilled(boolean):95:96 -> a
    5:5:int getRegister():266:266 -> a
    5:5:void setSpilled(boolean):96 -> a
    6:6:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitParent():202:202 -> a
    6:6:void setSpilled(boolean):96 -> a
    7:7:int getRegister():266:266 -> a
    7:7:void setSpilled(boolean):96 -> a
    8:9:void setSpilled(boolean):96:97 -> a
    10:10:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitParent():202:202 -> a
    10:10:boolean anySplitOverlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):344 -> a
    11:11:boolean overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):340:340 -> a
    11:11:boolean anySplitOverlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):345 -> a
    12:12:java.util.List getSplitChildren():198:198 -> a
    12:12:boolean anySplitOverlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):348 -> a
    13:13:boolean anySplitOverlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):348:348 -> a
    14:14:boolean overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):340:340 -> a
    14:14:boolean anySplitOverlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):349 -> a
    15:16:boolean tryAddRange(com.android.tools.r8.ir.regalloc.LiveRange):216:217 -> a
    15:16:void addRange(com.android.tools.r8.ir.regalloc.LiveRange):211 -> a
    17:17:boolean com.android.tools.r8.ir.regalloc.LiveRange.isInfinite():32:32 -> a
    17:17:boolean tryAddRange(com.android.tools.r8.ir.regalloc.LiveRange):218 -> a
    17:17:void addRange(com.android.tools.r8.ir.regalloc.LiveRange):211 -> a
    18:24:boolean tryAddRange(com.android.tools.r8.ir.regalloc.LiveRange):221:227 -> a
    18:24:void addRange(com.android.tools.r8.ir.regalloc.LiveRange):211 -> a
    25:25:boolean com.android.tools.r8.ir.regalloc.LiveRange.isInfinite():32:32 -> a
    25:25:boolean tryAddRange(com.android.tools.r8.ir.regalloc.LiveRange):218 -> a
    25:25:void addRange(com.android.tools.r8.ir.regalloc.LiveRange):211 -> a
    26:26:boolean tryAddRange(com.android.tools.r8.ir.regalloc.LiveRange):231:231 -> a
    26:26:void addRange(com.android.tools.r8.ir.regalloc.LiveRange):211 -> a
    27:27:void addRange(com.android.tools.r8.ir.regalloc.LiveRange):212:212 -> a
    28:29:void addUse(com.android.tools.r8.ir.regalloc.LiveIntervalsUse):239:240 -> a
    30:30:void updateRegisterConstraint(int):244:244 -> a
    30:30:void addUse(com.android.tools.r8.ir.regalloc.LiveIntervalsUse):240 -> a
    31:31:boolean usesRegister(int,boolean):305:305 -> a
    32:32:com.android.tools.r8.ir.code.ValueType getType():78:78 -> a
    32:32:boolean usesRegister(int,boolean):308 -> a
    33:36:boolean usesRegister(int,boolean):308:311 -> a
    37:38:void clearRegisterAssignment():322:323 -> a
    39:40:void forEachRegister(java.util.function.IntConsumer):396:397 -> a
    41:41:com.android.tools.r8.ir.code.ValueType getType():78:78 -> a
    41:41:void forEachRegister(java.util.function.IntConsumer):398 -> a
    42:43:void forEachRegister(java.util.function.IntConsumer):398:399 -> a
    44:63:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):597:616 -> a
    64:64:int getRegister():266:266 -> a
    64:64:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):616 -> a
    65:71:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):616:622 -> a
    72:72:boolean isSpilled():101:101 -> a
    72:72:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):622 -> a
    73:74:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):637:638 -> a
    75:75:boolean isSpilled():101:101 -> a
    75:75:boolean allSplitsAreSpilled():110 -> a
    75:75:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):638 -> a
    76:78:boolean allSplitsAreSpilled():110:112 -> a
    76:78:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):638 -> a
    79:79:boolean isSpilled():101:101 -> a
    79:79:boolean allSplitsAreSpilled():112 -> a
    79:79:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):638 -> a
    80:80:boolean allSplitsAreSpilled():112:112 -> a
    80:80:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):638 -> a
    81:85:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):639:643 -> a
    1:1:boolean hasConflictingRegisters(com.android.tools.r8.ir.regalloc.LiveIntervals):318:318 -> b
    2:2:com.android.tools.r8.ir.code.ValueType getType():78:78 -> b
    2:2:boolean hasConflictingRegisters(com.android.tools.r8.ir.regalloc.LiveIntervals):318 -> b
    3:3:boolean hasConflictingRegisters(com.android.tools.r8.ir.regalloc.LiveIntervals):318:318 -> b
    4:6:int firstUseAfter(int):374:376 -> b
    7:8:com.android.tools.r8.ir.regalloc.LiveIntervalsUse firstUseWithConstraint():387:388 -> b
    1:3:void link(com.android.tools.r8.ir.regalloc.LiveIntervals):122:124 -> c
    4:5:int getEnd():261:262 -> c
    6:6:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitCovering(int):476:476 -> c
    7:7:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitParent():202:202 -> c
    7:7:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitCovering(int):476 -> c
    8:41:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitCovering(int):476:509 -> c
    1:1:int compareTo(java.lang.Object):23:23 -> compareTo
    2:3:int compareTo(com.android.tools.r8.ir.regalloc.LiveIntervals):540:541 -> compareTo
    2:3:int compareTo(java.lang.Object):23 -> compareTo
    1:6:boolean overlapsPosition(int):327:332 -> d
    7:16:int nextOverlap(com.android.tools.r8.ir.regalloc.LiveIntervals):357:366 -> d
    17:17:int getFirstUse():383:383 -> d
    1:1:void setHint(com.android.tools.r8.ir.regalloc.LiveIntervals):86:86 -> e
    2:2:com.android.tools.r8.ir.regalloc.LiveIntervals getHint():90:90 -> e
    3:4:void setMaxNonSpilledRegister(int):293:294 -> e
    1:2:void setRegister(int):274:275 -> f
    3:3:int getMaxNonSpilledRegister():298:298 -> f
    4:5:int computeMaxNonSpilledRegister():279:280 -> f
    4:5:int getMaxNonSpilledRegister():301 -> f
    6:6:boolean isSpilled():101:101 -> f
    6:6:int computeMaxNonSpilledRegister():281 -> f
    6:6:int getMaxNonSpilledRegister():301 -> f
    7:7:int getRegister():266:266 -> f
    7:7:int computeMaxNonSpilledRegister():282 -> f
    7:7:int getMaxNonSpilledRegister():301 -> f
    8:10:int computeMaxNonSpilledRegister():282:284 -> f
    8:10:int getMaxNonSpilledRegister():301 -> f
    11:11:boolean isSpilled():101:101 -> f
    11:11:int computeMaxNonSpilledRegister():285 -> f
    11:11:int getMaxNonSpilledRegister():301 -> f
    12:12:int computeMaxNonSpilledRegister():286:286 -> f
    12:12:int getMaxNonSpilledRegister():301 -> f
    13:13:int getRegister():266:266 -> f
    13:13:int computeMaxNonSpilledRegister():286 -> f
    13:13:int getMaxNonSpilledRegister():301 -> f
    14:17:int computeMaxNonSpilledRegister():286:289 -> f
    14:17:int getMaxNonSpilledRegister():301 -> f
    1:1:com.android.tools.r8.ir.regalloc.LiveIntervals getNextConsecutive():145:145 -> g
    1:1:java.util.List getRanges():252:252 -> h
    1:1:int getRegister():266:266 -> i
    2:4:com.android.tools.r8.ir.regalloc.LiveIntervals splitBefore(int):404:406 -> i
    5:5:int toGapPosition(int):70:70 -> i
    5:5:com.android.tools.r8.ir.regalloc.LiveIntervals splitBefore(int):409 -> i
    6:43:com.android.tools.r8.ir.regalloc.LiveIntervals splitBefore(int):410:447 -> i
    1:1:int toInstructionPosition(int):66:66 -> j
    2:2:int getRegisterLimit():270:270 -> j
    1:1:java.util.List getSplitChildren():198:198 -> k
    1:1:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitParent():202:202 -> l
    1:2:int getStart():256:257 -> m
    1:1:com.android.tools.r8.ir.regalloc.LiveIntervals getStartOfConsecutive():138:138 -> n
    1:1:com.android.tools.r8.ir.code.ValueType getType():78:78 -> o
    1:1:java.util.TreeSet getUses():248:248 -> p
    1:1:com.android.tools.r8.ir.code.Value getValue():74:74 -> q
    1:1:boolean hasSplits():174:174 -> r
    1:2:boolean isArgumentInterval():132:133 -> s
    1:1:boolean isConstantNumberInterval():514:514 -> t
    1:5:java.lang.String toString():546:550 -> toString
    6:6:java.util.List getRanges():252:252 -> toString
    6:6:java.lang.String toString():551 -> toString
    7:12:java.lang.String toString():551:556 -> toString
    1:1:boolean isLinked():128:128 -> u
    1:3:boolean isNewStringInstanceDisallowingSpilling():523:525 -> v
    1:1:boolean isSpilled():101:101 -> w
    1:1:boolean isSpilled():101:101 -> x
    1:1:boolean isSpilledAndRematerializable():118 -> x
    2:2:boolean isSpilledAndRematerializable():118:118 -> x
    3:4:boolean isRematerializable():105:106 -> x
    3:4:boolean isSpilledAndRematerializable():118 -> x
    1:3:int numberOfConsecutiveRegisters():153:155 -> y
    4:9:int computeNumberOfConsecutiveRegisters():162:167 -> y
    4:9:int numberOfConsecutiveRegisters():155 -> y
    10:13:int computeNumberOfConsecutiveRegisters():166:169 -> y
    10:13:int numberOfConsecutiveRegisters():155 -> y
    14:15:int numberOfConsecutiveRegisters():155:156 -> y
    16:21:int computeNumberOfConsecutiveRegisters():162:167 -> y
    16:21:int numberOfConsecutiveRegisters():158 -> y
    22:25:int computeNumberOfConsecutiveRegisters():166:169 -> y
    22:25:int numberOfConsecutiveRegisters():158 -> y
    1:1:java.util.TreeSet getUses():248:248 -> z
    1:1:int numberOfUsesWithConstraint():530 -> z
    2:3:int numberOfUsesWithConstraint():530:531 -> z
com.android.tools.r8.ir.regalloc.LiveIntervalsUse -> com.android.tools.r8.ir.regalloc.b:
    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.c:
    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.d:
    void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List) -> a
    int getArgumentOrAllocateRegisterForValue(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
    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.e:
    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.f:
    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.g:
    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.g$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.h:
    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.i:
    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:2:void addInResolutionMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):122:123 -> a
    3:3:java.util.Set lambda$addInMove$1(java.lang.Integer):147:147 -> a
    4:19:int scheduleAndInsertMoves(int):167:182 -> a
    20:39:int scheduleAndInsertMoves(int):178:197 -> a
    40:47: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
    48:50: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
    51:61:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):284:294 -> a
    62:62:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> a
    62:62:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):294 -> a
    63:74:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):299:310 -> a
    75:78:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):269:272 -> a
    75:78:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):313 -> a
    79:80:com.android.tools.r8.ir.regalloc.SpillMove getMoveWithSource(com.android.tools.r8.ir.regalloc.LiveIntervals,java.util.Collection):219:220 -> a
    79:80:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):272 -> a
    79:80:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):313 -> a
    81:85:com.android.tools.r8.ir.regalloc.SpillMove getMoveWritingSourceRegister(com.android.tools.r8.ir.regalloc.SpillMove,java.util.Collection):228:232 -> a
    81:85:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):273 -> a
    81:85:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):313 -> a
    86:86:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):274:274 -> a
    86:86:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):313 -> a
    87:88:com.android.tools.r8.ir.regalloc.SpillMove getMoveWithSource(com.android.tools.r8.ir.regalloc.LiveIntervals,java.util.Collection):219:220 -> a
    87:88:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):274 -> a
    87:88:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):313 -> a
    89:90:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):276:277 -> a
    89:90:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):313 -> a
    91:95:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):316:320 -> a
    96:104:void removeArgumentRestores(java.util.Set):332:340 -> a
    105:129:void scheduleMoves(int,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):347:371 -> a
    130:130:boolean com.android.tools.r8.utils.InternalOptions.canHaveBoundsCheckEliminationBug():1147:1147 -> a
    130:130:void scheduleMoves(int,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):371 -> a
    131:136:void scheduleMoves(int,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):371:376 -> a
    137:141:void scheduleMoves(int,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):375:379 -> a
    142:148: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 addOutResolutionMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):127:128 -> b
    3:3:java.util.Set lambda$addOutMove$2(java.lang.Integer):153:153 -> b
    4:6:boolean needsMovesBeforeInstruction(int):213:215 -> b
    1:2:void addPhiMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):139:140 -> c
    3:8:void com.android.tools.r8.ir.regalloc.SpillMove.updateMaxNonSpilled():33:38 -> c
    3:8:void addPhiMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):141 -> c
    9:9:void addPhiMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):142:142 -> c
    10:10:java.util.Set lambda$addPhiMove$0(java.lang.Integer):142:142 -> c
    1:43:void addSpillOrRestoreMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):66:108 -> d
    44:44:java.util.Set lambda$scheduleMovesBeforeInstruction$3(java.lang.Integer):300:300 -> d
    1:3:void addInMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):146:148 -> e
    4:4:void addInMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):147:147 -> e
    5:5:java.util.Set lambda$scheduleMovesBeforeInstruction$4(java.lang.Integer):305:305 -> e
    1:3:void addOutMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):152:154 -> f
    4:4:void addOutMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):153:153 -> f
    5:5:java.util.Set lambda$scheduleMovesBeforeInstruction$5(java.lang.Integer):310:310 -> f
com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode -> com.android.tools.r8.w.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
com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider -> com.android.tools.r8.w.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.w.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):30:30 -> 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.w.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.w.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.w.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.w.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.w.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.w.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.FieldAccessorSourceCode -> com.android.tools.r8.w.d.i:
    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():466:466 -> h
    13:13:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isInstancePut():482 -> h
    13:13:void prepareInstructions():43 -> h
    14:14:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isInstancePut():482:482 -> 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():474:474 -> 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.w.d.j:
    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.w.d.j$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.w.d.k:
    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.w.d.l:
    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.w.d.m:
    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>():24:26 -> <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:15:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):159:163 -> a
    16:16:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):162:162 -> a
    17:27:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):160:170 -> a
    28:28:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):182:182 -> a
    29:29:void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder):194:194 -> a
    30:30:void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder):200:200 -> a
    31:31:int getMoveExceptionRegister(int):210:210 -> 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):215:215 -> d
    2:2:com.android.tools.r8.ir.code.Position getCurrentPosition():220:220 -> 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.x.a.a.a.a:
com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy -> com.android.tools.r8.x.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.x.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.x.a.a.a.d:
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.AbstractBooleanCollection -> com.android.tools.r8.x.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.x.a.a.a.e.b:
    1:1:void <init>():34:34 -> <init>
    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.x.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.x.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.x.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:1:boolean hasNext():124:124 -> hasNext
    1:2:boolean nextBoolean():129:130 -> nextBoolean
    3:3:boolean nextBoolean():129:129 -> nextBoolean
    1:2:void remove():135:136 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArrays -> com.android.tools.r8.x.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.x.a.a.a.e.g:
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollections -> com.android.tools.r8.x.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.x.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.x.a.a.a.e.j:
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterators$UnmodifiableIterator -> com.android.tools.r8.x.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 hasNext():730:730 -> hasNext
    1:1:boolean nextBoolean():735:735 -> nextBoolean
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntMap -> com.android.tools.r8.x.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) -> a
    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
    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
    int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.remove(int) -> remove
    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.x.a.a.a.f.a:
    int value -> b
    int key -> a
    1:3:void <init>(int,int):122:124 -> <init>
    1:1:int getIntKey():141:141 -> a
    1:1:int getIntValue():158:158 -> 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.AbstractInt2ObjectFunction -> com.android.tools.r8.x.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.AbstractInt2ObjectMap -> com.android.tools.r8.x.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
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():273:273 -> entrySet
    1:4:boolean equals(java.lang.Object):296:299 -> equals
    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.AbstractInt2ObjectFunction.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.AbstractInt2ObjectMap$BasicEntry -> com.android.tools.r8.x.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 -> a
    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.AbstractInt2ObjectSortedMap -> com.android.tools.r8.x.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:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():30 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():293:293 -> entrySet
    2:2: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:java.util.SortedMap headMap(java.lang.Object):30:30 -> headMap
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap 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.Int2ObjectSortedMap 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.Int2ObjectSortedMap 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.AbstractInt2ObjectSortedMap$KeySet -> com.android.tools.r8.x.a.a.a.f.f$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ObjectSortedMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ObjectSortedMap):122:122 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet subSet(int,int):165:165 -> c
    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:boolean contains(int):125:125 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(int):160:160 -> e
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet headSet(int):155:155 -> f
    1:1:int lastInt():150:150 -> g
    1:1:int firstInt():145:145 -> l
    1:1:int size():130:130 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceFunction -> com.android.tools.r8.x.a.a.a.f.g:
    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.x.a.a.a.f.i:
    1:1:void <init>():45:45 -> <init>
    boolean containsKey(int) -> a
    1:1:java.util.Set entrySet():42:42 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():273:273 -> entrySet
    1:4:boolean equals(java.lang.Object):296:299 -> equals
    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.x.a.a.a.f.h:
    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 -> a
    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.x.a.a.a.f.j:
    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:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():30 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():293:293 -> entrySet
    2:2: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: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.x.a.a.a.f.j$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:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet subSet(int,int):165:165 -> c
    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:boolean contains(int):125:125 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(int):160:160 -> e
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet headSet(int):155:155 -> f
    1:1:int lastInt():150:150 -> g
    1:1:int firstInt():145:145 -> l
    1:1:int size():130:130 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection -> com.android.tools.r8.x.a.a.a.f.k:
    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:9: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:292 -> a
    6:9: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:9:int[] toArray(int[]):149 -> a
    10: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
    10: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
    10: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:13: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
    1:4:boolean rem(int):94:97 -> b
    1:1:boolean contains(java.lang.Object):129:129 -> contains
    boolean contains(int) -> d
    1:1:int[] toIntArray(int[]):167:167 -> f
    1:1:int[] toIntArray():155 -> f
    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.x.a.a.a.f.l:
    1:1:void <init>():34:34 -> <init>
    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.x.a.a.a.f.o:
    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
    3:3:void add(int,int):74:74 -> 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:19:int compareTo(java.util.List):464:482 -> b
    1:1:void ensureIndex(int):47:47 -> c
    2:2:void ensureIndex(int):46:46 -> c
    1:1:void clear():403:403 -> clear
    1:1:int compareTo(java.lang.Object):32:32 -> compareTo
    1:1:boolean contains(int):274:274 -> d
    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) -> g
    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:void ensureRestrictedIndex(int):62:62 -> i
    2:2:void ensureRestrictedIndex(int):61:61 -> i
    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:5:int indexOf(int):279:283 -> j
    1:5:int lastIndexOf(int):290:294 -> k
    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: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
    3:3:int set(int,int):111:111 -> set
    1:1:java.util.List subList(int,int):32:32 -> subList
    2:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):310:313 -> subList
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):312:312 -> 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.x.a.a.a.f.n:
    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 assertRange():742:744 -> a
    5:7:boolean add(int):750:752 -> a
    8:10:void getElements(int,int[],int,int):797:799 -> a
    11:11:void getElements(int,int[],int,int):798:798 -> a
    12:16:void removeElements(int,int):804:808 -> a
    17:18:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):898:899 -> a
    19:19:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):904:904 -> a
    20:20: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
    20:20: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
    3:6:void add(int,int):758:761 -> add
    1:3:boolean addAll(int,java.util.Collection):766:768 -> addAll
    1:5:boolean rem(int):888:892 -> b
    1:1:int compareTo(java.lang.Object):726:726 -> compareTo
    1:3:int removeInt(int):779:781 -> 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:2:int getInt(int):773:774 -> getInt
    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
    4:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):821:822 -> listIterator
    4:5:java.util.ListIterator listIterator(int):726 -> listIterator
    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
    6:7:int set(int,int):786:787 -> set
    1:1:int size():792:792 -> size
    1:1:java.util.List subList(int,int):726:726 -> subList
    2:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):880:883 -> subList
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):882:882 -> subList
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList$IntSubList$1 -> com.android.tools.r8.x.a.a.a.f.m:
    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:4:void add(int):852:855 -> a
    5:5:void add(int):852:852 -> a
    1:2:void set(int):859:860 -> b
    3:3:void set(int):859:859 -> b
    1:2:int previousInt():839:840 -> c
    3:3:int previousInt():839:839 -> c
    1:1:boolean hasNext():826:826 -> hasNext
    1:1:boolean hasPrevious():830:830 -> hasPrevious
    1:1:int nextIndex():844:844 -> nextIndex
    1:2:int nextInt():834:835 -> nextInt
    3:3:int nextInt():834:834 -> nextInt
    1:1:int previousIndex():848:848 -> previousIndex
    1:10:void remove():864:873 -> remove
    11:11:void remove():864:864 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntListIterator -> com.android.tools.r8.x.a.a.a.f.p:
    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() -> c
    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.x.a.a.a.f.q:
    1:1:void <init>():32:32 -> <init>
    1:1:boolean rem(int):87:87 -> b
    1:4:boolean equals(java.lang.Object):41:44 -> equals
    1:5:int hashCode():57:61 -> hashCode
    1:1:boolean remove(int):75:75 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntSortedSet -> com.android.tools.r8.x.a.a.a.f.r:
    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.x.a.a.a.f.v:
    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
    4:23:int put(int,int):279:298 -> a
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap):37:37 -> 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:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$FastEntrySet int2IntEntrySet():230:230 -> e
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2IntEntrySet():37 -> e
    1:3:int findKey(int):234:236 -> f
    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:7:int remove(int):304:310 -> remove
    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.x.a.a.a.f.s:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$EntrySet -> com.android.tools.r8.x.a.a.a.f.u:
    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.x.a.a.a.f.t:
    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:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$Entry next():147:148 -> next
    1:2:java.lang.Object next():136 -> next
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$Entry next():147:147 -> next
    3:3:java.lang.Object next():136 -> next
    1:5:void remove():153:157 -> remove
    6:6:void remove():153:153 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntFunction -> com.android.tools.r8.x.a.a.a.f.w:
    boolean containsKey(int) -> a
    int put(int,int) -> a
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap -> com.android.tools.r8.x.a.a.a.f.z:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2IntEntrySet() -> e
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$Entry -> com.android.tools.r8.x.a.a.a.f.x:
    int getIntKey() -> a
    int getIntValue() -> b
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$FastEntrySet -> com.android.tools.r8.x.a.a.a.f.y:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap -> com.android.tools.r8.x.a.a.a.f.I:
    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:18:int insert(int,int):248:263 -> a
    3:18:int put(int,int):270 -> a
    19:21:int put(int,int):271:273 -> a
    22:31:boolean containsKey(int):387:396 -> a
    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:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$FastEntrySet int2IntEntrySet():773:774 -> e
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2IntEntrySet():50 -> e
    1:4:int removeNullEntry():228:231 -> f
    5:11:void rehash(int):979:985 -> f
    12:12:int realSize():206:206 -> f
    12:12:void rehash(int):986 -> f
    13:25:void rehash(int):987:999 -> f
    1:2:int removeEntry(int):220:221 -> g
    3:8:void shiftKeys(int):333:338 -> g
    3:8:int removeEntry(int):222 -> g
    9:9:int removeEntry(int):223:223 -> g
    10:15:void shiftKeys(int):341:346 -> g
    10:15:int removeEntry(int):222 -> g
    16:16:void shiftKeys(int):343:343 -> g
    16:16:int removeEntry(int):222 -> g
    1:11:int get(int):370:380 -> get
    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:12:int remove(int):352:363 -> remove
    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.x.a.a.a.f.A:
    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:void clear():884:884 -> clear
    1:1:boolean contains(int):879:879 -> d
    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.x.a.a.a.f.B:
    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.x.a.a.a.f.C:
    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:java.lang.Integer next():799:799 -> next
    1:1:java.lang.Object next():786 -> next
    1:1:int nextInt():793:793 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$KeySet -> com.android.tools.r8.x.a.a.a.f.D:
    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:void clear():828:828 -> clear
    1:1:boolean contains(int):816:816 -> d
    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.x.a.a.a.f.E:
    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 getIntKey():481:481 -> a
    1:1:int getIntValue():486:486 -> 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.x.a.a.a.f.F:
    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.x.a.a.a.f.G:
    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:18:int nextEntry():587:604 -> f
    19:19:int nextEntry():587:587 -> f
    1:1:boolean hasNext():583:583 -> hasNext
    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.x.a.a.a.f.H:
    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:java.lang.Integer next():860:860 -> next
    1:1:java.lang.Object next():847 -> next
    1:1:int nextInt():854:854 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap -> com.android.tools.r8.x.a.a.a.f.O:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry firstEntry -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry lastEntry -> e
    boolean[] dirPath -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry tree -> b
    boolean modified -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entries -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keys -> g
    int count -> c
    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 int2ObjectEntrySet():41:41 -> a
    2:12:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.balance():872:872 -> a
    14:14:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.right(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):862:863 -> a
    23:24:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.left(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):851:852 -> a
    34:35:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.balance():872:872 -> a
    39:39:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.balance():872:872 -> a
    41:41:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):829:830 -> a
    44:45:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.balance():872:872 -> a
    57:57:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):840:841 -> a
    69:70:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):829:830 -> a
    74:75:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.balance():872:872 -> a
    81:81:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):840:841 -> a
    84:85:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.balance():872:872 -> a
    97:97:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):840:841 -> a
    109:110:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):829:830 -> a
    114:115:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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 int2ObjectEntrySet():1161:1239 -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap tailMap(int):1416:1416 -> b
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(int,int):1421:1421 -> b
    1:1:int compare(int,int):232:232 -> c
    2:3:int firstIntKey():1001:1002 -> c
    4:4:int firstIntKey():1001:1001 -> c
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap headMap(int):1411:1411 -> c
    1:6:void clear():701:706 -> clear
    1:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap 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.Int2ObjectAVLTreeMap clone():1955 -> clone
    8:8:java.lang.Object clone():41 -> clone
    9:20:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap clone():1956:1967 -> clone
    9:20:java.lang.Object clone():41 -> clone
    21:22:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry.succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):840:841 -> clone
    21:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap clone():1968 -> clone
    21:22:java.lang.Object clone():41 -> clone
    23:24:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry.left(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):851:852 -> clone
    23:24:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap clone():1969 -> clone
    23:24:java.lang.Object clone():41 -> clone
    25:48:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap clone():1970:1993 -> clone
    25:48:java.lang.Object clone():41 -> clone
    49:50:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):829:830 -> clone
    49:50:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap clone():1994 -> clone
    49:50:java.lang.Object clone():41 -> clone
    51:52:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry.right(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):862:863 -> clone
    51:52:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap clone():1995 -> clone
    51:52:java.lang.Object clone():41 -> clone
    53:53:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap 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.Int2ObjectAVLTreeMap$ValueIterator.next():1351:1351 -> containsValue
    4:4:boolean containsValue(java.lang.Object):693 -> containsValue
    5:5:boolean containsValue(java.lang.Object):694:694 -> containsValue
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry findKey(int):247 -> d
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry findKey(int):248:248 -> d
    6:7:int lastIntKey():1007:1008 -> d
    8:8:int lastIntKey():1007:1007 -> d
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry locateKey(int):264 -> e
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry locateKey(int):266:266 -> e
    1:1:void allocatePaths():278:278 -> f
    1:2:java.lang.Object get(int):995:996 -> get
    1:1:boolean isEmpty():990:990 -> isEmpty
    1:1:java.util.Set keySet():41:41 -> keySet
    2:3: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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry parent(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry parent(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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:18:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values():1384:1401 -> values
    1:18:java.util.Collection values():41 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$1 -> com.android.tools.r8.x.a.a.a.f.J:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$2 -> com.android.tools.r8.x.a.a.a.f.L:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap this$0 -> b
    java.util.Comparator comparator -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap):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.Int2ObjectMap$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.Int2ObjectMap$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.Int2ObjectMap$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.Int2ObjectMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$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.Int2ObjectMap$Entry):1236:1236 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):1161 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$2$1 -> com.android.tools.r8.x.a.a.a.f.K:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$2 this$1 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$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.Int2ObjectAVLTreeMap$3 -> com.android.tools.r8.x.a.a.a.f.M:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap):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.Int2ObjectAVLTreeMap$Entry -> com.android.tools.r8.x.a.a.a.f.N:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry right -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Entry):829:830 -> b
    1:2:void succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):840:841 -> c
    3:3:void decBalance():893:893 -> c
    1:1:java.lang.Object clone():720:720 -> clone
    2:8:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry clone():933:939 -> clone
    9:9:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry clone():935:935 -> clone
    1:1:void incBalance():888:888 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry left():767:767 -> e
    1:3:boolean equals(java.lang.Object):946:948 -> equals
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry next():902:904 -> f
    1:1:boolean pred():786:786 -> g
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry prev():915:917 -> h
    1:1:int hashCode():953:953 -> hashCode
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry right():777:777 -> i
    1:1:boolean succ():795:795 -> j
    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.Int2ObjectAVLTreeMap$EntryIterator -> com.android.tools.r8.x.a.a.a.f.O$a:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap):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.Int2ObjectMap$Entry):1155:1155 -> add
    2:2:void add(java.lang.Object):1130 -> add
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry next():1140:1140 -> next
    1:1:java.lang.Object next():1130 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$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.Int2ObjectMap$Entry):1150:1150 -> set
    2:2:void set(java.lang.Object):1130 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$KeyIterator -> com.android.tools.r8.x.a.a.a.f.O$b:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap):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 -> c
    1:1:java.lang.Integer next():1283:1283 -> next
    1:1:java.lang.Object next():1252 -> next
    1:1:int nextInt():1262:1262 -> nextInt
    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.Int2ObjectAVLTreeMap$KeySet -> com.android.tools.r8.x.a.a.a.f.O$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap this$0 -> b
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap):1308:1308 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Submap -> com.android.tools.r8.x.a.a.a.f.O$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap 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.objects.ObjectCollection values -> h
    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.Int2ObjectAVLTreeMap,int,boolean,int,boolean):1466:1472 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ObjectEntrySet():1435:1435 -> a
    2:82:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ObjectEntrySet():1497:1577 -> a
    83:83:boolean containsKey(int):1624:1624 -> a
    84:84:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.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
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap tailMap(int):1692:1693 -> b
    3:3:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> b
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap tailMap(int):1693 -> b
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap tailMap(int):1693:1693 -> b
    5:5:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> b
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap tailMap(int):1693 -> b
    6:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(int,int):1698:1699 -> b
    8:8:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> b
    8:8:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(int,int):1699 -> b
    9:9:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(int,int):1699:1699 -> b
    10:10:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> b
    10:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(int,int):1699 -> b
    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(int,int):1700:1700 -> b
    12:12:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> b
    12:12:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(int,int):1700 -> b
    13:13:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(int,int):1700:1700 -> b
    14:14:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> b
    14:14:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(int,int):1700 -> b
    15:16:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(int,int):1701:1702 -> b
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap headMap(int):1686:1687 -> c
    3:3:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> c
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap headMap(int):1687 -> c
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap headMap(int):1687:1687 -> c
    5:5:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> c
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap headMap(int):1687 -> c
    6:8:int firstIntKey():1753:1755 -> c
    9:9:int firstIntKey():1754:1754 -> c
    1:4:void clear():1477:1480 -> clear
    1:5:boolean containsValue(java.lang.Object):1629:1633 -> containsValue
    1:1:boolean in(int):1492:1492 -> d
    2:2:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> d
    2:2:boolean in(int):1492 -> d
    3:3:boolean in(int):1492:1492 -> d
    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> d
    4:4:boolean in(int):1492 -> d
    5:7:int lastIntKey():1760:1762 -> d
    8:8:int lastIntKey():1761:1761 -> d
    1:9:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry firstEntry():1712:1720 -> firstEntry
    10:10:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> firstEntry
    10:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry firstEntry():1720 -> firstEntry
    11:15:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry firstEntry():1720:1724 -> firstEntry
    16:16:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> firstEntry
    16:16:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry firstEntry():1724 -> firstEntry
    17:17:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> firstEntry
    17:17:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry firstEntry():1720 -> firstEntry
    1:1:java.lang.Object get(int):1643:1643 -> get
    1:1:boolean isEmpty():1676:1676 -> isEmpty
    1:1:java.util.Set keySet():1435:1435 -> keySet
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():1592:1593 -> keySet
    1:9:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry lastEntry():1735:1743 -> lastEntry
    10:10:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> lastEntry
    10:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry lastEntry():1743 -> lastEntry
    11:15:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry lastEntry():1743:1747 -> lastEntry
    16:16:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> lastEntry
    16:16:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry lastEntry():1747 -> lastEntry
    17:17:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> lastEntry
    17:17:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry lastEntry():1743 -> lastEntry
    1:4:java.lang.Object remove(int):1657:1660 -> remove
    1:5:int size():1665:1669 -> size
    1:21:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values():1598:1618 -> values
    1:21:java.util.Collection values():1435 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap$1 -> com.android.tools.r8.x.a.a.a.f.P:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap this$1 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectMap$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.Int2ObjectMap$Entry):1569:1569 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):1497 -> headSet
    1:1:boolean isEmpty():1544: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.Int2ObjectMap$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
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap$SubmapEntryIterator.next():1817:1817 -> size
    2:2:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap$SubmapEntryIterator.next():1807 -> size
    2:2:int size():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.Int2ObjectMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$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.Int2ObjectMap$Entry):1574:1574 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):1497 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap$2 -> com.android.tools.r8.x.a.a.a.f.Q:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap this$1 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Submap$KeySet -> com.android.tools.r8.x.a.a.a.f.O$d$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap this$1 -> b
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap):1580:1580 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$Submap$SubmapEntryIterator -> com.android.tools.r8.x.a.a.a.f.O$d$b:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectMap$Entry):1832:1832 -> add
    2:2:void add(java.lang.Object):1807 -> add
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry next():1817:1817 -> next
    1:1:java.lang.Object next():1807 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$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.Int2ObjectMap$Entry):1827:1827 -> set
    2:2:void set(java.lang.Object):1807 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap$SubmapIterator -> com.android.tools.r8.x.a.a.a.f.O$d$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap this$1 -> f
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap):1777:1778 -> <init>
    1:2:void updateNext():1802:1803 -> i
    3:3:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> i
    3:3:void updateNext():1803 -> i
    4:4:void updateNext():1803:1803 -> i
    5:5:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> i
    5:5:void updateNext():1803 -> i
    1:2:void updatePrevious():1797:1798 -> j
    3:3:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> j
    3:3:void updatePrevious():1798 -> j
    4:4:void updatePrevious():1798:1798 -> j
    5:5:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.compare(int,int):232:232 -> j
    5:5:void updatePrevious():1798 -> j
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap$SubmapKeyIterator -> com.android.tools.r8.x.a.a.a.f.O$d$d:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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 -> c
    1:1:java.lang.Integer next():1878:1878 -> next
    1:1:java.lang.Object next():1846 -> next
    1:1:int nextInt():1857:1857 -> nextInt
    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.Int2ObjectAVLTreeMap$Submap$SubmapValueIterator -> com.android.tools.r8.x.a.a.a.f.O$d$e:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap):1910:1910 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectAVLTreeMap$TreeIterator -> com.android.tools.r8.x.a.a.a.f.O$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry next -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry curr -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap this$0 -> e
    int index -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry prev -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap):1042:1042 -> <init>
    2:5:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap):1040:1043 -> <init>
    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry nextEntry():1068:1072 -> f
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry nextEntry():1068:1068 -> f
    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry previousEntry():1080:1084 -> g
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry previousEntry():1080:1080 -> g
    1:1:boolean hasNext():1056:1056 -> hasNext
    1:1:boolean hasPrevious():1060:1060 -> hasPrevious
    1:1:void updateNext():1064:1064 -> i
    1:1:void updatePrevious():1076:1076 -> j
    1:1:int nextIndex():1088:1088 -> nextIndex
    1:1:int previousIndex():1092:1092 -> previousIndex
    1:11:void remove():1096:1106 -> remove
    12:12:void remove():1096:1096 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$ValueIterator -> com.android.tools.r8.x.a.a.a.f.O$f:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap):1348:1348 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$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.Int2ObjectArrayMap -> com.android.tools.r8.x.a.a.a.f.U:
    java.lang.Object[] value -> c
    int[] key -> b
    int size -> d
    1:3:void <init>():70:72 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap):37:37 -> a
    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap,int):37:37 -> a
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$FastEntrySet int2ObjectEntrySet():231:231 -> a
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ObjectEntrySet():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.Int2ObjectArrayMap):37:37 -> b
    1:1:int[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap):37:37 -> c
    1:4:void clear():257:260 -> clear
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap clone():344:349 -> clone
    1:6:java.lang.Object clone():37 -> clone
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap 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.Int2ObjectArrayMap):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:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():321:321 -> keySet
    1:1:java.util.Set keySet():37 -> keySet
    1:8:java.lang.Object remove(int):308:315 -> remove
    1:1:int size():252:252 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values():326:326 -> values
    1:1:java.util.Collection values():37 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap$1 -> com.android.tools.r8.x.a.a.a.f.S:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap$EntrySet -> com.android.tools.r8.x.a.a.a.f.U$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap):133:133 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap$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.Int2ObjectArrayMap$EntrySet$1 -> com.android.tools.r8.x.a.a.a.f.T:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap$EntrySet this$1 -> c
    int next -> b
    int curr -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap$EntrySet):136:137 -> <init>
    1:1:boolean hasNext():141:141 -> hasNext
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry next():147:148 -> next
    1:2:java.lang.Object next():136 -> next
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry next():147:147 -> next
    3:3:java.lang.Object next():136 -> next
    1:6:void remove():153:158 -> remove
    7:7:void remove():153:153 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectFunction -> com.android.tools.r8.x.a.a.a.f.V:
    boolean containsKey(int) -> a
    java.lang.Object put(int,java.lang.Object) -> a
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap -> com.android.tools.r8.x.a.a.a.f.Y:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ObjectEntrySet() -> a
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry -> com.android.tools.r8.x.a.a.a.f.W:
    int getIntKey() -> a
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$FastEntrySet -> com.android.tools.r8.x.a.a.a.f.X:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMaps -> com.android.tools.r8.x.a.a.a.f.a0:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMaps$EmptyMap EMPTY_MAP -> a
    1:1:void <clinit>():123:123 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMaps$EmptyMap -> com.android.tools.r8.x.a.a.a.f.Z:
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectFunctions$EmptyFunction.<init>():41:41 -> <init>
    1:1:void <init>():45 -> <init>
    boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectFunctions$EmptyFunction.containsKey(int) -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ObjectEntrySet():61:61 -> a
    void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectFunctions$EmptyFunction.clear() -> clear
    1:1:java.lang.Object clone():94:94 -> clone
    1:1:java.util.Set entrySet():42:42 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():74:74 -> entrySet
    1:2:boolean equals(java.lang.Object):109:110 -> equals
    java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectFunctions$EmptyFunction.get(int) -> get
    1:1:java.util.Set keySet():42:42 -> keySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():79:79 -> keySet
    1:1:void putAll(java.util.Map):55:55 -> putAll
    int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectFunctions$EmptyFunction.size() -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values():85:85 -> values
    1:1:java.util.Collection values():42 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap -> com.android.tools.r8.x.a.a.a.f.c0:
    java.lang.Object[] value -> c
    float f -> i
    int[] key -> b
    int size -> h
    boolean containsNullKey -> e
    int n -> f
    int maxFill -> g
    int mask -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$FastEntrySet entries -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values -> l
    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>
    1:1:java.lang.Object access$300(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap):49:49 -> a
    2:2:java.lang.Object access$400(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap,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.Int2ObjectMap$FastEntrySet int2ObjectEntrySet():707:708 -> a
    32:33:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ObjectEntrySet():49 -> a
    1:5:void clear():377:381 -> clear
    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap clone():945:954 -> clone
    1:10:java.lang.Object clone():49 -> clone
    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap 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:5:java.lang.Object removeNullEntry():228:232 -> f
    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:1:boolean isEmpty():391:391 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet 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:12:java.lang.Object remove(int):309:320 -> remove
    1:1:int size():386:386 -> size
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values():794:815 -> values
    1:22:java.util.Collection values():49 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$1 -> com.android.tools.r8.x.a.a.a.f.b0:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap):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.Int2ObjectOpenHashMap$EntryIterator -> com.android.tools.r8.x.a.a.a.f.c0$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap this$0 -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapEntry entry -> g
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap):600:600 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$1):600:600 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$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.Int2ObjectOpenHashMap$KeyIterator -> com.android.tools.r8.x.a.a.a.f.c0$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap):721:722 -> <init>
    1:1:java.lang.Integer next():733:733 -> next
    1:1:java.lang.Object next():720 -> next
    1:1:int nextInt():727:727 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$KeySet -> com.android.tools.r8.x.a.a.a.f.c0$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap):737:737 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$1):737:737 -> <init>
    1:1:void clear():762:762 -> clear
    1:1:boolean contains(int):750:750 -> d
    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.Int2ObjectOpenHashMap$MapEntry -> com.android.tools.r8.x.a.a.a.f.c0$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap,int):430:431 -> <init>
    1:1:int getIntKey():439:439 -> a
    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.Int2ObjectOpenHashMap$MapEntrySet -> com.android.tools.r8.x.a.a.a.f.c0$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap):625:625 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$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.Int2ObjectOpenHashMap$MapIterator -> com.android.tools.r8.x.a.a.a.f.c0$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList wrapped -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap 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.Int2ObjectOpenHashMap):486:509 -> <init>
    25:25:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$1):486:486 -> <init>
    1:18:int nextEntry():521:538 -> f
    19:19:int nextEntry():521:521 -> f
    1:1:boolean hasNext():517:517 -> hasNext
    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.Int2ObjectOpenHashMap$ValueIterator -> com.android.tools.r8.x.a.a.a.f.c0$g:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap):782:783 -> <init>
    1:1:java.lang.Object next():788:788 -> next
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap -> com.android.tools.r8.x.a.a.a.f.d0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ObjectEntrySet() -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(int,int) -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap tailMap(int) -> b
    int firstIntKey() -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap headMap(int) -> c
    int lastIntKey() -> d
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMaps -> com.android.tools.r8.x.a.a.a.f.f0:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMaps$EmptySortedMap EMPTY_MAP -> a
    1:1:void <clinit>():185:185 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMaps$EmptySortedMap -> com.android.tools.r8.x.a.a.a.f.e0:
    1:1:void <init>():60:60 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ObjectEntrySet():71:71 -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ObjectEntrySet():57 -> a
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ObjectEntrySet():71:71 -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(int,int):95:95 -> b
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap tailMap(int):107:107 -> b
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap headMap(int):101:101 -> c
    2:2:int firstIntKey():112:112 -> c
    1:1:int lastIntKey():117:117 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():84:84 -> entrySet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():57 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():84:84 -> entrySet
    2:2: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:java.util.SortedMap headMap(java.lang.Object):57:57 -> headMap
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap 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.Int2ObjectSortedMap headMap(int):101:101 -> headMap
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap 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.Int2ObjectSortedMap 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.Int2ObjectSortedMap subMap(int,int):95:95 -> subMap
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap 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.Int2ObjectSortedMap 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.Int2ObjectSortedMap tailMap(int):107:107 -> tailMap
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap 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.Int2ReferenceAVLTreeMap -> com.android.tools.r8.x.a.a.a.f.l0:
    boolean[] dirPath -> j
    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.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
    1:1:void <init>():79:79 -> <init>
    2:10:void <init>():73:81 -> <init>
    1:11:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):305:315 -> a
    1:11:java.lang.Object put(int,java.lang.Object):283 -> a
    12:12:int compare(int,int):232:232 -> a
    12:12:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):315 -> a
    12:12:java.lang.Object put(int,java.lang.Object):283 -> a
    13:13:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> a
    13:13:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):318 -> a
    13:13:java.lang.Object put(int,java.lang.Object):283 -> a
    14:21:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):323:330 -> a
    14:21:java.lang.Object put(int,java.lang.Object):283 -> a
    22:23: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
    22:23:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):331 -> a
    22:23:java.lang.Object put(int,java.lang.Object):283 -> a
    24:32:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):335:343 -> a
    24:32:java.lang.Object put(int,java.lang.Object):283 -> a
    33:34: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
    33:34:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):344 -> a
    33:34:java.lang.Object put(int,java.lang.Object):283 -> a
    35:37:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):354:356 -> a
    35:37:java.lang.Object put(int,java.lang.Object):283 -> a
    38:38:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> a
    38:38:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):358 -> a
    38:38:java.lang.Object put(int,java.lang.Object):283 -> a
    39:39:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):359:359 -> a
    39:39:java.lang.Object put(int,java.lang.Object):283 -> a
    40:40:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> a
    40:40:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):360 -> a
    40:40:java.lang.Object put(int,java.lang.Object):283 -> a
    41:42:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):362:363 -> a
    41:42:java.lang.Object put(int,java.lang.Object):283 -> a
    43:44: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
    43:44:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):364 -> a
    43:44:java.lang.Object put(int,java.lang.Object):283 -> a
    45:55:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):365:375 -> a
    45:55:java.lang.Object put(int,java.lang.Object):283 -> a
    56:56:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> a
    56:56:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):376 -> a
    56:56:java.lang.Object put(int,java.lang.Object):283 -> a
    57:67:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):377:387 -> a
    57:67:java.lang.Object put(int,java.lang.Object):283 -> a
    68:69: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
    68:69:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):388 -> a
    68:69:java.lang.Object put(int,java.lang.Object):283 -> a
    70:72:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):389:391 -> a
    70:72:java.lang.Object put(int,java.lang.Object):283 -> a
    73:74: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
    73:74:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):392 -> a
    73:74:java.lang.Object put(int,java.lang.Object):283 -> a
    75:79:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):393:397 -> a
    75:79:java.lang.Object put(int,java.lang.Object):283 -> a
    80:80:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> a
    80:80:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):398 -> a
    80:80:java.lang.Object put(int,java.lang.Object):283 -> a
    81:82:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):400:401 -> a
    81:82:java.lang.Object put(int,java.lang.Object):283 -> a
    83:84: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
    83:84:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):402 -> a
    83:84:java.lang.Object put(int,java.lang.Object):283 -> a
    85:95:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):403:413 -> a
    85:95:java.lang.Object put(int,java.lang.Object):283 -> a
    96:96:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> a
    96:96:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):414 -> a
    96:96:java.lang.Object put(int,java.lang.Object):283 -> a
    97:107:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):415:425 -> a
    97:107:java.lang.Object put(int,java.lang.Object):283 -> a
    108:109: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
    108:109:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):426 -> a
    108:109:java.lang.Object put(int,java.lang.Object):283 -> a
    110:112:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):427:429 -> a
    110:112:java.lang.Object put(int,java.lang.Object):283 -> a
    113:114: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
    113:114:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):430 -> a
    113:114:java.lang.Object put(int,java.lang.Object):283 -> a
    115:122:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):431:438 -> a
    115:122:java.lang.Object put(int,java.lang.Object):283 -> a
    123:124:java.lang.Object put(int,java.lang.Object):284:285 -> a
    125:125:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):348:348 -> a
    125:125:java.lang.Object put(int,java.lang.Object):283 -> a
    126:126:boolean containsKey(int):980:980 -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():41:41 -> b
    2:80:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet():1161:1239 -> b
    81:81:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):1416:1416 -> b
    82:82:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1421:1421 -> b
    1:1:int compare(int,int):232:232 -> c
    2:3:int firstIntKey():1001:1002 -> c
    4: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
    6:7:int lastIntKey():1007:1008 -> d
    8:8:int lastIntKey():1007:1007 -> 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:1:void allocatePaths():278:278 -> f
    1:2:java.lang.Object get(int):995:996 -> get
    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.x.a.a.a.f.g0:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$2 -> com.android.tools.r8.x.a.a.a.f.i0:
    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.x.a.a.a.f.h0:
    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.x.a.a.a.f.j0:
    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.x.a.a.a.f.k0:
    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
    3:3:void decBalance():893:893 -> c
    1:1:java.lang.Object clone():720:720 -> clone
    2:8:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry clone():933:939 -> clone
    9:9:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry clone():935:935 -> clone
    1:1:void incBalance():888:888 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry left():767:767 -> e
    1:3:boolean equals(java.lang.Object):946:948 -> equals
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry next():902:904 -> f
    1:1:boolean pred():786:786 -> g
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry prev():915:917 -> h
    1:1:int hashCode():953:953 -> hashCode
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry right():777:777 -> i
    1:1:boolean succ():795:795 -> j
    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.x.a.a.a.f.l0$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.x.a.a.a.f.l0$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 -> c
    1:1:java.lang.Integer next():1283:1283 -> next
    1:1:java.lang.Object next():1252 -> next
    1:1:int nextInt():1262:1262 -> nextInt
    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.x.a.a.a.f.l0$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.x.a.a.a.f.l0$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:boolean containsKey(int):1624:1624 -> a
    2:2:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.containsKey(int):980:980 -> a
    2:2:boolean containsKey(int):1624 -> a
    3:6:java.lang.Object put(int,java.lang.Object):1648:1651 -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():1435:1435 -> b
    2:82:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet():1497:1577 -> b
    83:84:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):1692:1693 -> b
    85:85:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> b
    85:85:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):1693 -> b
    86:86:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):1693:1693 -> b
    87:87:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> b
    87:87:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):1693 -> b
    88:89:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1698:1699 -> b
    90:90:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> b
    90:90:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1699 -> b
    91:91:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1699:1699 -> b
    92:92:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> b
    92:92:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1699 -> b
    93:93:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1700:1700 -> b
    94:94:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> b
    94:94:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1700 -> b
    95:95:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1700:1700 -> b
    96:96:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> b
    96:96:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1700 -> b
    97:98:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1701:1702 -> b
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):1686:1687 -> c
    3:3:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> c
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):1687 -> c
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):1687:1687 -> c
    5:5:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> c
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):1687 -> c
    6:8:int firstIntKey():1753:1755 -> c
    9:9:int firstIntKey():1754:1754 -> c
    1:4:void clear():1477:1480 -> clear
    1:4:boolean containsValue(java.lang.Object):1629:1632 -> containsValue
    1:1:boolean in(int):1492:1492 -> d
    2:2:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> d
    2:2:boolean in(int):1492 -> d
    3:3:boolean in(int):1492:1492 -> d
    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> d
    4:4:boolean in(int):1492 -> d
    5:7:int lastIntKey():1760:1762 -> d
    8:8:int lastIntKey():1761:1761 -> d
    1:9:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry firstEntry():1712:1720 -> firstEntry
    10:10:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> firstEntry
    10:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry firstEntry():1720 -> firstEntry
    11:15:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry firstEntry():1720:1724 -> firstEntry
    16:16:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> firstEntry
    16:16:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry firstEntry():1724 -> firstEntry
    17:17:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> firstEntry
    17:17:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry firstEntry():1720 -> firstEntry
    1:1:java.lang.Object get(int):1643:1643 -> get
    1:1:boolean isEmpty():1676:1676 -> isEmpty
    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:9:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry lastEntry():1735:1743 -> lastEntry
    10:10:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> lastEntry
    10:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry lastEntry():1743 -> lastEntry
    11:15:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry lastEntry():1743:1747 -> lastEntry
    16:16:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> lastEntry
    16:16:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry lastEntry():1747 -> lastEntry
    17:17:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> lastEntry
    17:17:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry lastEntry():1743 -> lastEntry
    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.x.a.a.a.f.m0:
    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
    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
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapEntryIterator.next():1817:1817 -> size
    2:2:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapEntryIterator.next():1807 -> size
    2:2:int size():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.x.a.a.a.f.n0:
    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.x.a.a.a.f.l0$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.x.a.a.a.f.l0$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.x.a.a.a.f.l0$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 -> i
    3:3:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> i
    3:3:void updateNext():1803 -> i
    4:4:void updateNext():1803:1803 -> i
    5:5:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> i
    5:5:void updateNext():1803 -> i
    1:2:void updatePrevious():1797:1798 -> j
    3:3:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> j
    3:3:void updatePrevious():1798 -> j
    4:4:void updatePrevious():1798:1798 -> j
    5:5:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> j
    5:5:void updatePrevious():1798 -> j
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapKeyIterator -> com.android.tools.r8.x.a.a.a.f.l0$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 -> c
    1:1:java.lang.Integer next():1878:1878 -> next
    1:1:java.lang.Object next():1846 -> next
    1:1:int nextInt():1857:1857 -> nextInt
    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.x.a.a.a.f.l0$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.x.a.a.a.f.l0$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:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry nextEntry():1068:1072 -> f
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry nextEntry():1068:1068 -> f
    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry previousEntry():1080:1084 -> g
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry previousEntry():1080:1080 -> g
    1:1:boolean hasNext():1056:1056 -> hasNext
    1:1:boolean hasPrevious():1060:1060 -> hasPrevious
    1:1:void updateNext():1064:1064 -> i
    1:1:void updatePrevious():1076:1076 -> j
    1:1:int nextIndex():1088:1088 -> nextIndex
    1:1:int previousIndex():1092:1092 -> previousIndex
    1:11:void remove():1096:1106 -> remove
    12:12:void remove():1096:1096 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$ValueIterator -> com.android.tools.r8.x.a.a.a.f.l0$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.x.a.a.a.f.q0:
    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:boolean containsKey(int):265:265 -> a
    4:23: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
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$FastEntrySet int2ReferenceEntrySet():231:231 -> b
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():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.x.a.a.a.f.o0:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$EntrySet -> com.android.tools.r8.x.a.a.a.f.q0$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.x.a.a.a.f.p0:
    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:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry next():147:148 -> next
    1:2:java.lang.Object next():136 -> next
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry next():147:147 -> next
    3:3:java.lang.Object next():136 -> next
    1:6:void remove():153:158 -> remove
    7:7:void remove():153:153 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceFunction -> com.android.tools.r8.x.a.a.a.f.r0:
    boolean containsKey(int) -> a
    java.lang.Object put(int,java.lang.Object) -> a
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap -> com.android.tools.r8.x.a.a.a.f.s0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet() -> b
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry -> com.android.tools.r8.x.a.a.a.f.s0$a:
    int getIntKey() -> a
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$FastEntrySet -> com.android.tools.r8.x.a.a.a.f.t0:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMaps -> com.android.tools.r8.x.a.a.a.f.v0:
    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.x.a.a.a.f.u0:
    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 -> b
    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:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():62:62 -> entrySet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():75 -> entrySet
    1:1:java.util.Set entrySet():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.ints.IntSet keySet():80:80 -> keySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():80:80 -> keySet
    2:2:java.util.Set keySet():43 -> 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.x.a.a.a.f.x0:
    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
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$FastEntrySet int2ReferenceEntrySet():707:708 -> b
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():49 -> b
    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:5:java.lang.Object removeNullEntry():228:232 -> f
    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: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.x.a.a.a.f.w0:
    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.x.a.a.a.f.x0$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.x.a.a.a.f.x0$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:java.lang.Integer next():733:733 -> next
    1:1:java.lang.Object next():720 -> next
    1:1:int nextInt():727:727 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$KeySet -> com.android.tools.r8.x.a.a.a.f.x0$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:void clear():762:762 -> clear
    1:1:boolean contains(int):750:750 -> d
    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.x.a.a.a.f.x0$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 -> a
    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.x.a.a.a.f.x0$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.x.a.a.a.f.x0$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:18:int nextEntry():521:538 -> f
    19:19:int nextEntry():521:521 -> f
    1:1:boolean hasNext():517:517 -> hasNext
    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.x.a.a.a.f.x0$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.x.a.a.a.f.y0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet() -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int) -> b
    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() -> d
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList -> com.android.tools.r8.x.a.a.a.f.A0:
    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 -> add
    1:3:boolean rem(int):304:306 -> b
    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:4:int removeInt(int):294:297 -> g
    5:5:int removeInt(int):294:294 -> g
    1:2:int getInt(int):274:275 -> getInt
    3:3:int getInt(int):274:274 -> getInt
    1:1:boolean isEmpty():339:339 -> isEmpty
    1:2:int indexOf(int):280:281 -> j
    1:2:int lastIndexOf(int):287:288 -> k
    1:1:void grow(int):250:250 -> l
    2:5:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrays.grow(int[],int,int):204:207 -> 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.ints.IntListIterator listIterator(int):493:494 -> listIterator
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):493:494 -> listIterator
    3:4:java.util.ListIterator listIterator(int):48 -> listIterator
    1:6:boolean removeAll(java.util.Collection):482:487 -> removeAll
    1:3:int set(int,int):313:315 -> set
    4:4:int set(int,int):313:313 -> set
    1:1:int size():327:327 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList$1 -> com.android.tools.r8.x.a.a.a.f.z0:
    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:2:void set(int):529:530 -> b
    3:3:void set(int):529:529 -> b
    1:2:int previousInt():511:512 -> c
    3:3:int previousInt():511:511 -> c
    1:1:boolean hasNext():498:498 -> hasNext
    1:1:boolean hasPrevious():502:502 -> hasPrevious
    1:1:int nextIndex():516:516 -> nextIndex
    1:2:int nextInt():506:507 -> nextInt
    3:3:int nextInt():506:506 -> nextInt
    1:1:int previousIndex():520:520 -> previousIndex
    1:9:void remove():534:542 -> remove
    10:10:void remove():534:534 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet -> com.android.tools.r8.x.a.a.a.f.C0:
    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
    1:1:int[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet):29:29 -> c
    2:3:int findKey(int):111:112 -> 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 contains(int):143:143 -> d
    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: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.x.a.a.a.f.B0:
    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:2:int nextInt():129:130 -> nextInt
    3:3:int nextInt():129:129 -> nextInt
    1:2:void remove():135:136 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrays -> com.android.tools.r8.x.a.a.a.f.D0:
    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.x.a.a.a.f.E0:
    int previousInt() -> c
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection -> com.android.tools.r8.x.a.a.a.f.F0:
    boolean add(int) -> a
    boolean contains(int) -> d
    int[] toIntArray() -> f
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollections -> com.android.tools.r8.x.a.a.a.f.I0:
    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.x.a.a.a.f.G0:
    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) -> d
    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.x.a.a.a.f.H0:
    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
    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: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 contains(int):396:396 -> d
    1:1:boolean equals(java.lang.Object):523:523 -> equals
    1:1:int[] toIntArray():470:470 -> f
    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.x.a.a.a.f.J0:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator -> com.android.tools.r8.x.a.a.a.f.K0:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators -> com.android.tools.r8.x.a.a.a.f.O0:
    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.x.a.a.a.f.L0:
    1:1:void <init>():42:42 -> <init>
    1:1:int previousInt():62:62 -> c
    1:1:java.lang.Object clone():87:87 -> clone
    1:1:int nextInt():57:57 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators$SingletonIterator -> com.android.tools.r8.x.a.a.a.f.M0:
    int curr -> b
    int element -> a
    1:2:void <init>(int):110:111 -> <init>
    1:3:int previousInt():133:135 -> c
    4:4:int previousInt():133:133 -> c
    1:1:boolean hasNext():116:116 -> hasNext
    1:1:boolean hasPrevious():121:121 -> hasPrevious
    1:1:int nextIndex():140:140 -> nextIndex
    1:3:int nextInt():126:128 -> nextInt
    4:4:int nextInt():126:126 -> nextInt
    1:1:int previousIndex():145:145 -> previousIndex
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators$UnmodifiableIterator -> com.android.tools.r8.x.a.a.a.f.N0:
    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 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList -> com.android.tools.r8.x.a.a.a.f.P0:
    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
    int removeInt(int) -> g
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator -> com.android.tools.r8.x.a.a.a.f.Q0:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists -> com.android.tools.r8.x.a.a.a.f.S0:
    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.x.a.a.a.f.R0:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists$EmptyList -> com.android.tools.r8.x.a.a.a.f.S0$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
    5:5:void add(int,int):85:85 -> add
    1:1:boolean addAll(int,java.util.Collection):105:105 -> addAll
    1:1:boolean rem(int):75:75 -> b
    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 -> g
    1:1:java.lang.Integer get(int):144:144 -> get
    1:1:java.lang.Object get(int):62 -> get
    1:1:int getInt(int):70:70 -> getInt
    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
    3:3:int set(int,int):90:90 -> 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.x.a.a.a.f.T0:
    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:1:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):419:419 -> a
    2:2:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):424:424 -> a
    3:3:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):429:429 -> a
    4:4: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 rem(int):348:348 -> b
    1:1:void clear():459:459 -> clear
    1:1:boolean contains(int):358:358 -> d
    1:2:int[] toIntArray():364:365 -> f
    1:1:int removeInt(int):353:353 -> g
    1:2:int getInt(int):342:343 -> getInt
    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
    5:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):382:383 -> listIterator
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):381:381 -> listIterator
    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
    2:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):390:393 -> subList
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):392:392 -> subList
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet -> com.android.tools.r8.x.a.a.a.f.W0:
    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:5:void rehash(int):639:643 -> c
    6:6:int realSize():262:262 -> c
    6:6:void rehash(int):644 -> c
    7:16:void rehash(int):645:654 -> c
    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:9:boolean contains(int):382:390 -> d
    1:1:int realSize():262:262 -> hashCode
    1:1:int hashCode():694 -> hashCode
    2:4:int hashCode():695:697 -> hashCode
    1:1:boolean removeEntry(int):348:348 -> i
    2:7:void shiftKeys(int):331:336 -> i
    2:7:boolean removeEntry(int):349 -> i
    8:8:boolean removeEntry(int):350:350 -> i
    9:13:void shiftKeys(int):339:343 -> i
    9:13:boolean removeEntry(int):349 -> i
    14:14:void shiftKeys(int):341:341 -> i
    14:14:boolean removeEntry(int):349 -> i
    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: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.x.a.a.a.f.U0:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet$SetIterator -> com.android.tools.r8.x.a.a.a.f.V0:
    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:15:int nextInt():478:492 -> nextInt
    16:16:int nextInt():478:478 -> nextInt
    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.x.a.a.a.f.X0:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSets -> com.android.tools.r8.x.a.a.a.f.Z0:
    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.x.a.a.a.f.Y0:
    1:1:void <init>():42:42 -> <init>
    1:1:boolean rem(int):64:64 -> b
    1:1:java.lang.Object clone():52:52 -> clone
    1:1:boolean equals(java.lang.Object):58:58 -> equals
    1:1:boolean remove(int):47:47 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet -> com.android.tools.r8.x.a.a.a.f.a1:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet subSet(int,int) -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(int) -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet headSet(int) -> f
    int lastInt() -> g
    int firstInt() -> l
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSets -> com.android.tools.r8.x.a.a.a.f.c1:
    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.x.a.a.a.f.b1:
    1:1:void <init>():42:42 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet subSet(int,int):68:68 -> c
    1:1:java.lang.Object clone():155:155 -> clone
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(int):80:80 -> e
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet headSet(int):74:74 -> f
    1:1:java.lang.Integer first():139:139 -> first
    1:1:java.lang.Object first():39 -> first
    1:1:int lastInt():90:90 -> g
    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:int firstInt():85:85 -> l
    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.x.a.a.a.f.d1:
com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceMap -> com.android.tools.r8.x.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
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():273:273 -> entrySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap$FastEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap.long2ReferenceEntrySet():707:708 -> entrySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap.long2ReferenceEntrySet():49 -> entrySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():273 -> 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: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: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.x.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 previousLong() -> a
    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
    long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongIterator.nextLong() -> nextLong
    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.x.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
    boolean rem(long) -> 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.longs.AbstractLongList -> com.android.tools.r8.x.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:void ensureIndex(int):47:47 -> b
    2:2:void ensureIndex(int):46:46 -> b
    3:3:boolean contains(long):274:274 -> b
    4:4:int compareTo(java.util.List):464:464 -> b
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> b
    5:5:int compareTo(java.util.List):465 -> b
    6:6:int compareTo(java.util.List):466:466 -> b
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> b
    7:7:int compareTo(java.util.List):466 -> b
    8:13:int compareTo(java.util.List):469:474 -> b
    14:14:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> b
    14:14:int compareTo(java.util.List):476 -> b
    15:20:int compareTo(java.util.List):476:481 -> b
    1:1:void ensureRestrictedIndex(int):62:62 -> c
    2:2:void ensureRestrictedIndex(int):61:61 -> c
    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:5:int lastIndexOf(long):290:294 -> 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: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:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongIterator iterator():32 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator iterator():180 -> iterator
    2:2:java.util.Iterator iterator():32 -> iterator
    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
    2:5:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList subList(int,int):310:313 -> subList
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList subList(int,int):312:312 -> 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.x.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 assertRange():741:743 -> a
    5:7:boolean add(long):749:751 -> a
    8:11:void add(int,long):757:760 -> a
    12:16: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:5:boolean rem(long):887:891 -> c
    1:1:int compareTo(java.lang.Object):725:725 -> compareTo
    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:2:long getLong(int):772:773 -> getLong
    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:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongIterator iterator():725 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.listIterator():192:192 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.iterator():180 -> iterator
    2:2:java.util.Iterator iterator():725 -> iterator
    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
    4:5:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator(int):820:821 -> listIterator
    4:5: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
    2:5:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList subList(int,int):879:882 -> subList
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList subList(int,int):881:881 -> subList
com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList$LongSubList$1 -> com.android.tools.r8.x.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:2:long previousLong():838:839 -> a
    3:3:long previousLong():838:838 -> a
    4:7:void add(long):851:854 -> a
    8:8:void add(long):851:851 -> a
    1:2:void set(long):858:859 -> b
    3:3: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:2:long nextLong():833:834 -> nextLong
    3:3:long nextLong():833:833 -> nextLong
    1:1:int previousIndex():847:847 -> previousIndex
    1:10:void remove():863:872 -> remove
    11:11:void remove():863:863 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongListIterator -> com.android.tools.r8.x.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.x.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.x.a.a.a.g.k:
com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap$Entry -> com.android.tools.r8.x.a.a.a.g.i:
com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap$FastEntrySet -> com.android.tools.r8.x.a.a.a.g.j:
com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap -> com.android.tools.r8.x.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:5:java.lang.Object removeNullEntry():228:232 -> f
    1:1:int realSize():205:205 -> hashCode
    1:1:int hashCode():971 -> hashCode
    2:10:int hashCode():972:980 -> hashCode
    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:14:void com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceMap.putAll(java.util.Map):70:76 -> putAll
    8:14:void putAll(java.util.Map):243 -> putAll
    15:15:long com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$MapEntry.getLongKey():439:439 -> putAll
    15:15:void com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceMap.putAll(java.util.Map):76 -> putAll
    15:15:void putAll(java.util.Map):243 -> putAll
    16:22:void com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceMap.putAll(java.util.Map):76:82 -> putAll
    16:22:void putAll(java.util.Map):243 -> putAll
    23:25:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(java.lang.Long,java.lang.Object):135:137 -> putAll
    23:25:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(java.lang.Long,java.lang.Object):0 -> putAll
    23:25:void com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceMap.putAll(java.util.Map):82 -> putAll
    23:25:void putAll(java.util.Map):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.x.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.x.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.x.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:java.lang.Long next():733:733 -> next
    1:1:java.lang.Object next():720 -> next
    1:1:long nextLong():727:727 -> nextLong
com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$KeySet -> com.android.tools.r8.x.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:java.util.Iterator iterator():737:737 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongIterator iterator():740:740 -> iterator
    1:1:int size():745:745 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$MapEntry -> com.android.tools.r8.x.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.x.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.x.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:18:int nextEntry():521:538 -> f
    19:19:int nextEntry():521:521 -> f
    1:1:boolean hasNext():517:517 -> hasNext
    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.x.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.x.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:3:long set(int,long):313:315 -> b
    4:4:long set(int,long):313:313 -> b
    1:3: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:2:long getLong(int):274:275 -> getLong
    3:3:long getLong(int):274:274 -> getLong
    1:4:long removeLong(int):294:297 -> h
    5:5:long removeLong(int):294:294 -> h
    1:1:void grow(int):250:250 -> i
    2:5:long[] com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongArrays.grow(long[],int,int):205:208 -> i
    2:5:void grow(int):250 -> i
    6:6:void grow(int):250:250 -> i
    1:1:boolean isEmpty():339:339 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator(int):493:494 -> listIterator
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator(int):493:494 -> listIterator
    3:4: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.x.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:2:long previousLong():511:512 -> a
    3:3:long previousLong():511:511 -> a
    4:5:void add(long):524:525 -> a
    1:2:void set(long):529:530 -> b
    3:3: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:2:long nextLong():506:507 -> nextLong
    3:3:long nextLong():506:506 -> nextLong
    1:1:int previousIndex():520:520 -> previousIndex
    1:9:void remove():534:542 -> remove
    10:10:void remove():534:534 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongBidirectionalIterator -> com.android.tools.r8.x.a.a.a.g.p:
    long previousLong() -> a
com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongIterator -> com.android.tools.r8.x.a.a.a.g.q:
com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList -> com.android.tools.r8.x.a.a.a.g.r:
    void add(int,long) -> a
    void removeElements(int,int) -> a
    long set(int,long) -> b
    long removeLong(int) -> h
com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongSet -> com.android.tools.r8.x.a.a.a.g.s:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanMap -> com.android.tools.r8.x.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) -> b
    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.x.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 -> c
    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.x.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
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> 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: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.x.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 -> b
    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.x.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:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet 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:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():31 -> entrySet
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229:229 -> entrySet
    4:4:java.util.Set entrySet():31 -> entrySet
    5:6: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
    5:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.object2IntEntrySet():87 -> entrySet
    5:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229 -> entrySet
    5:6:java.util.Set entrySet():31 -> entrySet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectMap -> com.android.tools.r8.x.a.a.a.h.f:
    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: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.x.a.a.a.h.g:
    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.x.a.a.a.h.h:
    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.x.a.a.a.h.i:
    1:1:void <init>():34:34 -> <init>
    1:1:void remove():45:45 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectListIterator -> com.android.tools.r8.x.a.a.a.h.j:
    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.x.a.a.a.h.k:
    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.x.a.a.a.h.l:
    1:1:void <init>():23:23 -> <init>
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanMap -> com.android.tools.r8.x.a.a.a.h.m:
    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) -> b
    1:1:boolean containsValue(java.lang.Object):62:62 -> containsValue
    1:1:java.util.Set entrySet():42:42 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> entrySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanMap$FastEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap.reference2BooleanEntrySet():716:717 -> entrySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap.reference2BooleanEntrySet():49 -> entrySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297 -> 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: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: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.x.a.a.a.h.o:
    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
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> 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: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.x.a.a.a.h.n:
    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 -> b
    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.x.a.a.a.h.p:
    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:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet 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:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():31 -> entrySet
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229:229 -> entrySet
    4:4:java.util.Set entrySet():31 -> entrySet
    5:6: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
    5:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.reference2IntEntrySet():87 -> entrySet
    5:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229 -> entrySet
    5:6:java.util.Set entrySet():31 -> entrySet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceCollection -> com.android.tools.r8.x.a.a.a.h.q:
    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.x.a.a.a.h.t:
    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 ensureIndex(int):48:48 -> b
    2:2:void ensureIndex(int):47:47 -> b
    1:1:void ensureRestrictedIndex(int):63:63 -> c
    2:2:void ensureRestrictedIndex(int):62:62 -> c
    1:1:void clear():404:404 -> clear
    1:1:boolean contains(java.lang.Object):275:275 -> contains
    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: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: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
    2:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList subList(int,int):311:314 -> subList
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList subList(int,int):313:313 -> 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.x.a.a.a.h.s:
    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:4:boolean assertRange():495:497 -> a
    5:9: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: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: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
    4:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):574:575 -> listIterator
    4:5: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
    2:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList subList(int,int):633:636 -> subList
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList subList(int,int):635:635 -> subList
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList$1 -> com.android.tools.r8.x.a.a.a.h.r:
    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:4:void add(java.lang.Object):605:608 -> add
    5:5:void add(java.lang.Object):605:605 -> add
    1:1:boolean hasNext():579:579 -> hasNext
    1:1:boolean hasPrevious():583:583 -> hasPrevious
    1:2:java.lang.Object next():587:588 -> next
    3:3:java.lang.Object next():587:587 -> next
    1:1:int nextIndex():597:597 -> nextIndex
    1:2:java.lang.Object previous():592:593 -> previous
    3:3:java.lang.Object previous():592:592 -> previous
    1:1:int previousIndex():601:601 -> previousIndex
    1:10:void remove():617:626 -> remove
    11:11:void remove():617:617 -> remove
    1:2:void set(java.lang.Object):612:613 -> set
    3:3:void set(java.lang.Object):612:612 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceSet -> com.android.tools.r8.x.a.a.a.h.u:
    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.x.a.a.a.h.v:
    1:1:void <init>():23:23 -> <init>
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap -> com.android.tools.r8.x.a.a.a.h.y:
    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
    2:9:boolean removeBoolean(java.lang.Object):308:315 -> b
    1:1:java.lang.Object[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap):37:37 -> c
    2:4:boolean getBoolean(java.lang.Object):244:246 -> 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:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$FastEntrySet object2BooleanEntrySet():231:231 -> f
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet object2BooleanEntrySet():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.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.x.a.a.a.h.w:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$EntrySet -> com.android.tools.r8.x.a.a.a.h.y$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.x.a.a.a.h.x:
    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:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$Entry next():147:148 -> next
    1:2:java.lang.Object next():136 -> next
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$Entry next():147:147 -> next
    3:3:java.lang.Object next():136 -> next
    1:6:void remove():153:158 -> remove
    7:7:void remove():153:153 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap -> com.android.tools.r8.x.a.a.a.h.z:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$Entry -> com.android.tools.r8.x.a.a.a.h.z$a:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap -> com.android.tools.r8.x.a.a.a.h.C:
    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:boolean isEmpty():277:277 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$FastEntrySet object2IntEntrySet():231:231 -> j
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet object2IntEntrySet():37 -> j
    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.x.a.a.a.h.A:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap$EntrySet -> com.android.tools.r8.x.a.a.a.h.C$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.x.a.a.a.h.B:
    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:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry next():147:148 -> next
    1:2:java.lang.Object next():136 -> next
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry next():147:147 -> next
    3:3:java.lang.Object next():136 -> next
    1:6:void remove():153:158 -> remove
    7:7:void remove():153:153 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntFunction -> com.android.tools.r8.x.a.a.a.h.D:
    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.x.a.a.a.h.F:
    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:6:int removeNullEntry():285:290 -> f
    7:31:void fixPointers(int):899:923 -> f
    1:2:java.lang.Object firstKey():970:971 -> firstKey
    3: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:1:boolean isEmpty():785:785 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap$FastSortedEntrySet object2IntEntrySet():1422:1423 -> j
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet object2IntEntrySet():87 -> j
    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:2:java.lang.Object lastKey():981:982 -> lastKey
    3: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.x.a.a.a.h.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):1596:1596 -> <init>
    1:1:void clear():1614:1614 -> clear
    1:1:boolean contains(int):1609:1609 -> d
    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.x.a.a.a.h.F$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.x.a.a.a.h.F$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.x.a.a.a.h.F$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:2:java.lang.Object first():1498:1499 -> first
    3: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
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():1471:1471 -> iterator
    1:2:java.lang.Object last():1504:1505 -> last
    3: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.x.a.a.a.h.F$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 -> b
    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.x.a.a.a.h.F$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:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry first():1296:1297 -> first
    1:2:java.lang.Object first():1269 -> first
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry first():1296:1296 -> first
    3: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:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry last():1302:1303 -> last
    1:2:java.lang.Object last():1269 -> last
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry last():1302:1302 -> last
    3: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.x.a.a.a.h.F$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:6:int nextEntry():1127:1132 -> f
    7:7:int nextEntry():1127:1127 -> f
    1:6:int previousEntry():1136:1141 -> g
    7:7:int previousEntry():1136:1136 -> g
    1:1:boolean hasNext():1091:1091 -> hasNext
    1:1:boolean hasPrevious():1095:1095 -> hasPrevious
    1:14:void ensureIndexKnown():1099:1112 -> i
    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.x.a.a.a.h.F$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 -> c
    1:1:java.lang.Integer next():1590:1590 -> next
    1:1:java.lang.Object next():1544 -> next
    1:1:int nextInt():1584:1584 -> nextInt
    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.x.a.a.a.h.H:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet object2IntEntrySet() -> j
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry -> com.android.tools.r8.x.a.a.a.h.G:
    int getIntValue() -> b
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap$FastSortedEntrySet -> com.android.tools.r8.x.a.a.a.h.I:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap -> com.android.tools.r8.x.a.a.a.h.K:
    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
    21:22:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap$FastSortedEntrySet object2ObjectEntrySet():1379:1380 -> f
    1:2:java.lang.Object firstKey():927:928 -> firstKey
    3:3:java.lang.Object firstKey():927:927 -> firstKey
    1:7:java.lang.Object removeNullEntry():315:321 -> g
    1:11:java.lang.Object get(java.lang.Object):701:711 -> get
    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: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:2:java.lang.Object lastKey():938:939 -> lastKey
    3: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:20:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectMap.putAll(java.util.Map):69:81 -> putAll
    8:20:void putAll(java.util.Map):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.x.a.a.a.h.J:
    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.x.a.a.a.h.K$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.x.a.a.a.h.K$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.x.a.a.a.h.K$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:2:java.lang.Object first():1455:1456 -> first
    3: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
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():1428:1428 -> iterator
    1:2:java.lang.Object last():1461:1462 -> last
    3: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.x.a.a.a.h.K$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.x.a.a.a.h.K$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:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry first():1255:1256 -> first
    1:2:java.lang.Object first():1228 -> first
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry first():1255:1255 -> first
    3: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:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry last():1261:1262 -> last
    1:2:java.lang.Object last():1228 -> last
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry last():1261:1261 -> last
    3: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.x.a.a.a.h.K$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:6:int nextEntry():1084:1089 -> f
    7:7:int nextEntry():1084:1084 -> f
    1:6:int previousEntry():1093:1098 -> g
    7:7:int previousEntry():1093:1093 -> g
    1:1:boolean hasNext():1048:1048 -> hasNext
    1:1:boolean hasPrevious():1052:1052 -> hasPrevious
    1:14:void ensureIndexKnown():1056:1069 -> i
    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.x.a.a.a.h.K$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.x.a.a.a.h.M:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry -> com.android.tools.r8.x.a.a.a.h.L:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap$FastSortedEntrySet -> com.android.tools.r8.x.a.a.a.h.N:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet -> com.android.tools.r8.x.a.a.a.h.P:
    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
    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.ObjectArraySet):29:29 -> b
    1:1:java.lang.Object[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet):29:29 -> 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.x.a.a.a.h.O:
    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:2:java.lang.Object next():129:130 -> next
    3: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.x.a.a.a.h.Q:
    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.x.a.a.a.h.S:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection -> com.android.tools.r8.x.a.a.a.h.T:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollections -> com.android.tools.r8.x.a.a.a.h.W:
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection):383:383 -> a
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollections.unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection):383:383 -> a
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollections$EmptyCollection -> com.android.tools.r8.x.a.a.a.h.U:
    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.ObjectCollections$UnmodifiableCollection -> com.android.tools.r8.x.a.a.a.h.V:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection collection -> a
    1:3:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection):276:278 -> <init>
    4:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection):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:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():307:307 -> iterator
    2:2: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
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():307 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():307:307 -> iterator
    3:3:java.util.Iterator iterator():272 -> iterator
    4:4: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
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():307 -> iterator
    4:4:java.util.Iterator iterator():272 -> 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.ObjectIterator -> com.android.tools.r8.x.a.a.a.h.X:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterators -> com.android.tools.r8.x.a.a.a.h.a0:
    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.x.a.a.a.h.Y:
    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.x.a.a.a.h.Z:
    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.ObjectListIterator -> com.android.tools.r8.x.a.a.a.h.b0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet -> com.android.tools.r8.x.a.a.a.h.c0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSets -> com.android.tools.r8.x.a.a.a.h.e0:
    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.x.a.a.a.h.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 remove(java.lang.Object):47:47 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet -> com.android.tools.r8.x.a.a.a.h.f0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSets -> com.android.tools.r8.x.a.a.a.h.h0:
    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.x.a.a.a.h.g0:
    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.x.a.a.a.h.k0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanMap$Entry -> com.android.tools.r8.x.a.a.a.h.i0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanMap$FastEntrySet -> com.android.tools.r8.x.a.a.a.h.j0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap -> com.android.tools.r8.x.a.a.a.h.m0:
    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 -> b
    1:11:boolean getBoolean(java.lang.Object):326:336 -> 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:7:void rehash(int):916:922 -> d
    8:8:int realSize():205:205 -> d
    8:8:void rehash(int):923 -> d
    9:21: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:5:boolean removeNullEntry():227:231 -> f
    1:1:int realSize():205:205 -> hashCode
    1:1:int hashCode():980 -> hashCode
    2:10:int hashCode():981:989 -> hashCode
    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:14:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanMap.putAll(java.util.Map):82:88 -> putAll
    8:14:void putAll(java.util.Map):242 -> putAll
    15:15:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapEntry.getBooleanValue():442:442 -> putAll
    15:15:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanMap.putAll(java.util.Map):88 -> putAll
    15:15:void putAll(java.util.Map):242 -> putAll
    16:22:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanMap.putAll(java.util.Map):88:94 -> putAll
    16:22:void putAll(java.util.Map):242 -> putAll
    23:24:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,java.lang.Boolean):123:124 -> putAll
    23:24:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,java.lang.Boolean):0 -> putAll
    23:24:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanMap.putAll(java.util.Map):94 -> putAll
    23:24:void putAll(java.util.Map):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.x.a.a.a.h.l0:
    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.x.a.a.a.h.m0$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.x.a.a.a.h.m0$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.x.a.a.a.h.m0$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.x.a.a.a.h.m0$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.x.a.a.a.h.m0$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.x.a.a.a.h.m0$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:18:int nextEntry():531:548 -> f
    19:19:int nextEntry():531:531 -> f
    1:1:boolean hasNext():527:527 -> hasNext
    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.x.a.a.a.h.m0$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:java.lang.Boolean next():797:797 -> next
    1:1:java.lang.Object next():784 -> next
    1:1:boolean nextBoolean():791:791 -> nextBoolean
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap -> com.android.tools.r8.x.a.a.a.h.p0:
    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:3:boolean containsValue(int):270:271 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$FastEntrySet reference2IntEntrySet():231:231 -> h
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet reference2IntEntrySet():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.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.x.a.a.a.h.n0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$EntrySet -> com.android.tools.r8.x.a.a.a.h.p0$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.x.a.a.a.h.o0:
    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:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry next():147:148 -> next
    1:2:java.lang.Object next():136 -> next
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry next():147:147 -> next
    3:3:java.lang.Object next():136 -> next
    1:6:void remove():153:158 -> remove
    7:7:void remove():153:153 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntFunction -> com.android.tools.r8.x.a.a.a.h.q0:
    int getInt(java.lang.Object) -> a
    int put(java.lang.Object,int) -> a
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap -> com.android.tools.r8.x.a.a.a.h.s0:
    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
    1:6:int removeNullEntry():285:290 -> f
    7:31:void fixPointers(int):899:923 -> f
    1:2:java.lang.Object firstKey():970:971 -> firstKey
    3: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
    19:20:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap$FastSortedEntrySet reference2IntEntrySet():1422:1423 -> h
    19:20:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet reference2IntEntrySet():87 -> 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: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:2:java.lang.Object lastKey():981:982 -> lastKey
    3: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.x.a.a.a.h.r0:
    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:void clear():1614:1614 -> clear
    1:1:boolean contains(int):1609:1609 -> d
    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.x.a.a.a.h.s0$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.x.a.a.a.h.s0$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.x.a.a.a.h.s0$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:2:java.lang.Object first():1498:1499 -> first
    3: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:2:java.lang.Object last():1504:1505 -> last
    3: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.x.a.a.a.h.s0$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 -> b
    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.x.a.a.a.h.s0$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:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry first():1296:1297 -> first
    1:2:java.lang.Object first():1269 -> first
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry first():1296:1296 -> first
    3: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:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry last():1302:1303 -> last
    1:2:java.lang.Object last():1269 -> last
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry last():1302:1302 -> last
    3: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.x.a.a.a.h.s0$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:6:int nextEntry():1127:1132 -> f
    7:7:int nextEntry():1127:1127 -> f
    1:6:int previousEntry():1136:1141 -> g
    7:7:int previousEntry():1136:1136 -> g
    1:1:boolean hasNext():1091:1091 -> hasNext
    1:1:boolean hasPrevious():1095:1095 -> hasPrevious
    1:14:void ensureIndexKnown():1099:1112 -> i
    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.x.a.a.a.h.s0$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 -> c
    1:1:java.lang.Integer next():1590:1590 -> next
    1:1:java.lang.Object next():1544 -> next
    1:1:int nextInt():1584:1584 -> nextInt
    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.x.a.a.a.h.t0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet reference2IntEntrySet() -> h
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry -> com.android.tools.r8.x.a.a.a.h.t0$a:
    int getIntValue() -> b
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$FastEntrySet -> com.android.tools.r8.x.a.a.a.h.u0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap -> com.android.tools.r8.x.a.a.a.h.w0:
    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
    1:5:int removeNullEntry():227:231 -> f
    6:12:void rehash(int):961:967 -> f
    13:13:int realSize():205:205 -> f
    13:13:void rehash(int):968 -> f
    14:26: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:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$FastEntrySet reference2IntEntrySet():761:762 -> h
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet reference2IntEntrySet():49 -> h
    1:1:int realSize():205:205 -> hashCode
    1:1:int hashCode():1025 -> hashCode
    2:10:int hashCode():1026:1034 -> hashCode
    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.x.a.a.a.h.v0:
    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:void clear():866:866 -> clear
    1:1:boolean contains(int):861:861 -> d
    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.x.a.a.a.h.w0$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.x.a.a.a.h.w0$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.x.a.a.a.h.w0$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.x.a.a.a.h.w0$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 -> b
    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.x.a.a.a.h.w0$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.x.a.a.a.h.w0$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:18:int nextEntry():576:593 -> f
    19:19:int nextEntry():576:576 -> f
    1:1:boolean hasNext():572:572 -> hasNext
    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.x.a.a.a.h.w0$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:java.lang.Integer next():842:842 -> next
    1:1:java.lang.Object next():829 -> next
    1:1:int nextInt():836:836 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap$FastSortedEntrySet -> com.android.tools.r8.x.a.a.a.h.x0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList -> com.android.tools.r8.x.a.a.a.h.z0:
    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:2:java.lang.Object get(int):317:318 -> get
    3:3:java.lang.Object get(int):317:317 -> get
    1:1:void grow(int):285:285 -> i
    2:3:java.lang.Object[] com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrays.grow(java.lang.Object[],int,int):213:214 -> i
    2:3:void grow(int):285 -> i
    4:6:java.lang.Object[] com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrays.newArray(java.lang.Object[],int):106:108 -> i
    4:6:java.lang.Object[] com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrays.grow(java.lang.Object[],int,int):215 -> i
    4:6:void grow(int):285 -> i
    7:7:java.lang.Object[] com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrays.grow(java.lang.Object[],int,int):216:216 -> i
    7:7:void grow(int):285 -> i
    8:14:void grow(int):285:291 -> i
    1:2:int indexOf(java.lang.Object):323:324 -> indexOf
    1:1:boolean isEmpty():385:385 -> isEmpty
    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
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):497:498 -> listIterator
    3:4:java.util.ListIterator listIterator(int):57 -> listIterator
    1:5:java.lang.Object remove(int):337:341 -> remove
    6: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:3:java.lang.Object set(int,java.lang.Object):357:359 -> set
    4: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.x.a.a.a.h.y0:
    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:2:java.lang.Object next():510:511 -> next
    3:3:java.lang.Object next():510:510 -> next
    1:1:int nextIndex():520:520 -> nextIndex
    1:2:java.lang.Object previous():515:516 -> previous
    3:3:java.lang.Object previous():515:515 -> previous
    1:1:int previousIndex():524:524 -> previousIndex
    1:9:void remove():538:546 -> remove
    10:10:void remove():538:538 -> remove
    1:2:void set(java.lang.Object):533:534 -> set
    3:3:void set(java.lang.Object):533:533 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet -> com.android.tools.r8.x.a.a.a.h.B0:
    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.x.a.a.a.h.A0:
    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:2:java.lang.Object next():129:130 -> next
    3: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.x.a.a.a.h.C0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollections$EmptyCollection -> com.android.tools.r8.x.a.a.a.h.D0:
    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.x.a.a.a.h.E0:
    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.x.a.a.a.h.F0:
    void removeElements(int,int) -> a
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet -> com.android.tools.r8.x.a.a.a.h.H0:
    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:5:void rehash(int):607:611 -> b
    6:6:int realSize():239:239 -> b
    6:6:void rehash(int):612 -> b
    7:16:void rehash(int):613:622 -> b
    1:1:boolean removeEntry(int):314:314 -> c
    2:7:void shiftKeys(int):297:302 -> c
    2:7:boolean removeEntry(int):315 -> c
    8:8:boolean removeEntry(int):316:316 -> c
    9:13:void shiftKeys(int):305:309 -> c
    9:13:boolean removeEntry(int):315 -> c
    14:14:void shiftKeys(int):307:307 -> c
    14:14:boolean removeEntry(int):315 -> c
    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: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 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.x.a.a.a.h.G0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet$SetIterator -> com.android.tools.r8.x.a.a.a.h.H0$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:15:java.lang.Object next():446:460 -> next
    16: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.x.a.a.a.h.I0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSets -> com.android.tools.r8.x.a.a.a.h.K0:
    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.x.a.a.a.h.J0:
    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.x.a.a.a.h.L0:
com.android.tools.r8.jar.CfApplicationWriter -> com.android.tools.r8.y.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):349 -> a
    2:2:void writeParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.ParameterAnnotationsList):348:348 -> 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):351 -> a
    4:11:void writeParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.ParameterAnnotationsList):350:357 -> a
    12:12:void writeParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.ParameterAnnotationsList):355:355 -> 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):132:132 -> 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):132 -> a
    20:22:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):133:135 -> a
    23:28:int getClassFileVersion(com.android.tools.r8.graph.DexProgramClass):211:216 -> a
    23:28:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):136 -> a
    29:43:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):137:151 -> a
    44:55:com.android.tools.r8.com.google.common.collect.ImmutableMap getAnnotationDefaults(com.android.tools.r8.graph.DexAnnotationSet):249:260 -> a
    44:55:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):151 -> a
    56:98:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):153:195 -> 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):195 -> a
    104:104:void lambda$writeClass$0(com.android.tools.r8.ClassFileConsumer,byte[],java.lang.String,com.android.tools.r8.DiagnosticsHandler):196:196 -> a
    105:108:int getClassFileVersion(com.android.tools.r8.graph.DexEncodedMethod):200:203 -> a
    109:109:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():314:314 -> a
    109:109:int getClassFileVersion(com.android.tools.r8.graph.DexEncodedMethod):204 -> a
    110:114:int getClassFileVersion(com.android.tools.r8.graph.DexEncodedMethod):203:207 -> a
    115:122:com.android.tools.r8.graph.DexValue getSystemAnnotationValue(com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexType):222:229 -> a
    123:135:java.lang.String getSignature(com.android.tools.r8.graph.DexAnnotationSet):233:245 -> a
    136:139:void writeField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.org.objectweb.asm.ClassWriter):286:289 -> a
    140:143:java.lang.Object getStaticValue(com.android.tools.r8.graph.DexEncodedField):279:282 -> a
    140:143:void writeField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.org.objectweb.asm.ClassWriter):290 -> a
    144:146:void writeField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.org.objectweb.asm.ClassWriter):291:293 -> a
    147:151: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):301:305 -> a
    152:161:java.lang.String[] getExceptions(com.android.tools.r8.graph.DexAnnotationSet):264:273 -> a
    152:161: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):305 -> a
    162:170: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:314 -> a
    171:184:void writeMethodParametersAnnotation(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.DexAnnotation[]):324:337 -> a
    171:184: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):314 -> a
    185:187: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):315:317 -> a
    188:188:void writeCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,int):435:435 -> a
    188: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):318 -> a
    189:189: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:320 -> a
    190:190:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor lambda$writeParameterAnnotations$1(com.android.tools.r8.org.objectweb.asm.MethodVisitor,int,java.lang.String,boolean):356:356 -> a
    191:200:void writeAnnotations(com.android.tools.r8.jar.CfApplicationWriter$AnnotationConsumer,com.android.tools.r8.graph.DexAnnotation[]):366:375 -> a
    201:206:void writeAnnotations(com.android.tools.r8.jar.CfApplicationWriter$AnnotationConsumer,com.android.tools.r8.graph.DexAnnotation[]):374:379 -> a
    207:208:void writeAnnotation(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,com.android.tools.r8.graph.DexEncodedAnnotation):385:386 -> a
    209:213:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):391:395 -> a
    214:232:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):394:412 -> a
    233:252:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):411:430 -> a
    253:253:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):428:428 -> a
    254:254:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):420:420 -> a
    255:255:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):418:418 -> a
    256:256:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):416:416 -> a
    257:257:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):414:414 -> 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():314:314 -> b
    10:10:void writeApplication(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):116 -> b
    11:11:void writeApplication(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):119:119 -> b
    12:23:void writeApplication(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):117:128 -> b
    24:24:void writeApplication(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):122:122 -> b
com.android.tools.r8.jar.CfApplicationWriter$AnnotationConsumer -> com.android.tools.r8.y.a:
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visit(java.lang.String,boolean) -> a
com.android.tools.r8.jar.InliningConstraintVisitor -> com.android.tools.r8.y.c:
    boolean $assertionsDisabled -> j
    1:1:void <clinit>():35:35 -> <clinit>
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget getConstraintForInvoke(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):209:209 -> a
    2:31:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget getConstraintForInvoke(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):157:186 -> a
    32:64:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget getConstraintForInvoke(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):162:194 -> a
    65:65:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    65:65:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget getConstraintForInvoke(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):195 -> a
    66:82:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget getConstraintForInvoke(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):196:212 -> a
    83:83:boolean noNeedToUseGraphLense(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.GraphLense):217:217 -> a
com.android.tools.r8.jetbrains.kotlin.KotlinNullPointerException -> com.android.tools.r8.z.a.a:
    1:1:void <init>():9:9 -> <init>
com.android.tools.r8.jetbrains.kotlin.Lazy -> com.android.tools.r8.z.a.b:
com.android.tools.r8.jetbrains.kotlin.LazyKt -> com.android.tools.r8.z.a.c:
    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
com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyKt -> com.android.tools.r8.z.a.d:
com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode -> com.android.tools.r8.z.a.e:
    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.z.a.f:
    1:1:void <init>():9:9 -> <init>
com.android.tools.r8.jetbrains.kotlin.Pair -> com.android.tools.r8.z.a.g:
    java.lang.Object second -> b
    java.lang.Object first -> a
    1:1:void <init>(java.lang.Object,java.lang.Object):26:26 -> <init>
    1:1:java.lang.String toString():34:34 -> toString
com.android.tools.r8.jetbrains.kotlin.SafePublicationLazyImpl -> com.android.tools.r8.z.a.h:
    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:1:boolean isInitialized():117:117 -> toString
    1:1:java.lang.String toString():119 -> toString
    2:18:java.lang.Object getValue():98:114 -> toString
    2:18:java.lang.String toString():119 -> toString
    19:19:java.lang.String toString():119:119 -> toString
com.android.tools.r8.jetbrains.kotlin.SynchronizedLazyImpl -> com.android.tools.r8.z.a.i:
    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:1:boolean isInitialized():82:82 -> toString
    1:1:java.lang.String toString():84 -> toString
    2:15:java.lang.Object getValue():63:76 -> toString
    2:15:java.lang.String toString():84 -> toString
    16:16:java.lang.Object getValue():69:69 -> toString
    16:16:java.lang.String toString():84 -> toString
    17:17:java.lang.String toString():84:84 -> toString
    18:18:java.lang.Object getValue():74:74 -> toString
    18:18:java.lang.String toString():84 -> toString
    19:19:java.lang.Object getValue():69:69 -> toString
    19:19:java.lang.String toString():84 -> toString
com.android.tools.r8.jetbrains.kotlin.TypeCastException -> com.android.tools.r8.z.a.j:
    1:1:void <init>(java.lang.String):11:11 -> <init>
com.android.tools.r8.jetbrains.kotlin.UNINITIALIZED_VALUE -> com.android.tools.r8.z.a.k:
    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.UnsafeLazyImpl -> com.android.tools.r8.z.a.l:
    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:1:boolean isInitialized():88:88 -> toString
    1:1:java.lang.String toString():90 -> toString
    2:4:java.lang.Object getValue():80:82 -> toString
    2:4:java.lang.String toString():90 -> toString
    5:9:java.lang.Object getValue():81:85 -> toString
    5:9:java.lang.String toString():90 -> toString
    10:10:java.lang.String toString():90:90 -> toString
com.android.tools.r8.jetbrains.kotlin._Assertions -> com.android.tools.r8.z.a.m:
    boolean ENABLED -> a
    1:1:void <clinit>():14:14 -> <clinit>
com.android.tools.r8.jetbrains.kotlin.collections.AbstractCollection -> com.android.tools.r8.z.a.n.b:
    1:1:void <init>():13:13 -> <init>
    int getSize() -> a
    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
    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.z.a.n.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.z.a.n.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
    145:145:boolean com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion.orderedEquals$kotlin_stdlib(java.util.Collection,java.util.Collection):0:0 -> equals
    145:145:boolean equals(java.lang.Object):62 -> equals
    1:1:int hashCode():68:68 -> hashCode
    2:131:int com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion.orderedHashCode$kotlin_stdlib(java.util.Collection):0:129 -> hashCode
    2:131:int hashCode():68 -> hashCode
    132:132:int com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion.orderedHashCode$kotlin_stdlib(java.util.Collection):0:0 -> hashCode
    132:132: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.z.a.n.c:
    1:1:void <init>():104:104 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):104:104 -> <init>
    1:1:void checkPositionIndex$kotlin_stdlib(int,int):113:113 -> a
    2:2:void checkRangeIndexes$kotlin_stdlib(int,int,int):122:122 -> a
    3:3:void checkRangeIndexes$kotlin_stdlib(int,int,int):119:119 -> a
com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$IteratorImpl -> com.android.tools.r8.z.a.n.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:int getIndex():72:72 -> f
    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:2:java.lang.Object next():77:78 -> next
    3:3:java.lang.Object next():77:77 -> next
com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$ListIteratorImpl -> com.android.tools.r8.z.a.n.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>
    1:1:boolean hasPrevious():92:92 -> hasPrevious
    1:1:int nextIndex():94:94 -> nextIndex
    1:2:java.lang.Object previous():97:98 -> previous
    3: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.z.a.n.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>
    1:1:int getSize():50:50 -> a
    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
    5:5:void com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion.checkElementIndex$kotlin_stdlib(int,int):0:0 -> get
    5:5:java.lang.Object get(int):45 -> get
com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt -> com.android.tools.r8.z.a.n.f:
    1:163:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(int[]):0:162 -> a
    1:163:java.util.List asList(int[]):0 -> a
    164:164:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(java.lang.Object[]):0:0 -> a
    164:164:java.util.List asList(java.lang.Object[]):0 -> a
    165:165:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysUtilJVM.asList(java.lang.Object[]):13:13 -> a
    165:165:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(java.lang.Object[]):127 -> a
    165:165:java.util.List asList(java.lang.Object[]):0 -> a
    166:166:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(java.lang.Object[]):127:127 -> a
    166:166:java.util.List asList(java.lang.Object[]):0 -> a
    167:167:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getOrNull(int[],int):0:0 -> a
    167:167:java.lang.Integer getOrNull(int[],int):0 -> a
    168:6727:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getLastIndex(int[]):0:6559 -> a
    168:6727:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getOrNull(int[],int):1231 -> a
    168:6727:java.lang.Integer getOrNull(int[],int):0 -> a
    6728:6728:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getOrNull(int[],int):1231:1231 -> a
    6728:6728:java.lang.Integer getOrNull(int[],int):0 -> a
    6729:9045: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
    6729:9045: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
    6729:9045: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
    9046:11343: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:2297 -> a
    9046:11343: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
    9046:11343: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
    9046:11343: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
    11344:11405: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
    11344:11405:void com.android.tools.r8.jetbrains.kotlin.text.StringsKt.appendElement(java.lang.Appendable,java.lang.Object,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0 -> a
    11344:11405: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):2299 -> a
    11344:11405: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
    11344:11405: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
    11344:11405: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
    11406:11407: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):2302:2303 -> a
    11406:11407: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
    11406:11407: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
    11406:11407: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
    11408:11408: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
    11408:11408: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
    11408:11408: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
    11409:12580:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):0:1171 -> a
    11409:12580:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    12581:13774:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.util.Collection):0:1193 -> a
    12581:13774:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1174 -> a
    12581:13774:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    13775:13775:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1173:1173 -> a
    13775:13775:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    13776:13776:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsJVMKt.listOf(java.lang.Object):19:19 -> a
    13776:13776:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1173 -> a
    13776:13776:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    13777:13777:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():69:69 -> a
    13777:13777:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> a
    13777:13777:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1172 -> a
    13777:13777:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    13778:13778:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1177:1177 -> a
    13778:13778:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    13779:14001:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.optimizeReadOnlyList(java.util.List):0:222 -> a
    13779:14001:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1177 -> a
    13779:14001:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    14002:14002:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsJVMKt.listOf(java.lang.Object):19:19 -> a
    14002:14002:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.optimizeReadOnlyList(java.util.List):222 -> a
    14002:14002:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1177 -> a
    14002:14002:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    14003:14003:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():69:69 -> a
    14003:14003:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> a
    14003:14003:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.optimizeReadOnlyList(java.util.List):221 -> a
    14003:14003:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1177 -> a
    14003:14003:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    14004:14004:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():69:69 -> a
    14004:14004:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> a
    14005:14005:int com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsKt.mapCapacity(int):134:134 -> a
    14005:14005:int com.android.tools.r8.jetbrains.kotlin.collections.MapsKt.mapCapacity(int):0 -> a
    14006:14007:java.util.Collection com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toCollection(java.lang.Iterable,java.util.Collection):1153:1154 -> a
    1:2:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.lang.Iterable):1184:1185 -> b
    3:1196:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.util.Collection):0:1193 -> b
    3:1196:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.lang.Iterable):1185 -> b
    1197:1197:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.lang.Iterable):1186:1186 -> b
    1198:1199:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.indexOf(int[],int):1317:1318 -> b
    1:1207:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toSet(java.lang.Iterable):0:1206 -> c
    1:1207:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toSet(java.lang.Iterable):0 -> c
    1208:1208:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toSet(java.lang.Iterable):1205:1205 -> c
    1208:1208:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toSet(java.lang.Iterable):0 -> c
    1209:1209:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.SetsKt__SetsJVMKt.setOf(java.lang.Object):16:16 -> c
    1209:1209:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toSet(java.lang.Iterable):1205 -> c
    1209:1209:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toSet(java.lang.Iterable):0 -> c
    1210:1210:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.SetsKt__SetsKt.emptySet():34:34 -> c
    1210:1210:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.SetsKt.emptySet():0 -> c
    1210:1210:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toSet(java.lang.Iterable):1204 -> c
    1210:1210:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toSet(java.lang.Iterable):0 -> c
    1:1388:java.lang.Iterable com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.withIndex(java.lang.Iterable):0:1387 -> d
    1:1388:java.lang.Iterable com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.withIndex(java.lang.Iterable):0 -> d
com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt__ArraysKt -> com.android.tools.r8.z.a.n.g:
com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt$asList$3 -> com.android.tools.r8.z.a.n.h:
    int[] $this_asList -> b
    1:1:void <init>(int[]):162:162 -> <init>
    1:1:int getSize():163:163 -> a
    1:1:boolean contains(java.lang.Object):162:162 -> contains
    1:1:boolean contains(int):165:165 -> d
    2:405:boolean com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.contains(int[],int):0:403 -> d
    2:405:boolean contains(int):165 -> d
    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.z.a.n.i:
com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt$withIndex$1 -> com.android.tools.r8.z.a.n.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.z.a.n.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.z.a.n.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.EmptySet -> com.android.tools.r8.z.a.n.m:
    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.z.a.n.n:
    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.z.a.n.o:
    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.z.a.n.p:
    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: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.z.a.o.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.z.a.p.a:
    1:1:void <init>():11:11 -> <init>
com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0 -> com.android.tools.r8.z.a.p.b.a:
    java.lang.Object invoke() -> a
com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 -> com.android.tools.r8.z.a.p.b.b:
    java.lang.Object invoke(java.lang.Object) -> a
com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference$NoReceiver -> com.android.tools.r8.z.a.p.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.z.a.p.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.z.a.p.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:166:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):34:109 -> a
    167:260:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):34: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.z.a.p.c.d:
com.android.tools.r8.jetbrains.kotlin.jvm.internal.Intrinsics -> com.android.tools.r8.z.a.p.c.e:
    1:1:void throwNpe():37:37 -> a
    2:2:void checkExpressionValueIsNotNull(java.lang.Object,java.lang.String):78:78 -> a
    3:3:boolean areEqual(java.lang.Object,java.lang.Object):153:153 -> a
    4:4:java.lang.Throwable sanitizeStackTrace(java.lang.Throwable):237:237 -> a
    5:16:java.lang.Throwable sanitizeStackTrace(java.lang.Throwable,java.lang.String):241:252 -> a
    5:16: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.z.a.p.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.z.a.p.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
    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.z.a.p.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:java.lang.Object get(java.lang.Object):38: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
    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.z.a.p.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:2:com.android.tools.r8.jetbrains.kotlin.reflect.KClass com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory.getOrCreateKotlinClass(java.lang.Class):27:27 -> a
    2:2:com.android.tools.r8.jetbrains.kotlin.reflect.KClass getOrCreateKotlinClass(java.lang.Class):50 -> a
    3:3:java.lang.String renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda):69:69 -> a
    4:5: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
    4:5:java.lang.String com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory.renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda):36 -> a
    4:5:java.lang.String renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda):69 -> a
    6:6:java.lang.String com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory.renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.FunctionBase):41:41 -> a
    6:6:java.lang.String com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory.renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda):36 -> a
    6:6:java.lang.String renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda):69 -> a
    7:7:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1 property1(com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1):94:94 -> a
    8:8: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
    8:8: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.z.a.p.c.j:
    1:1:void <init>():11:11 -> <init>
com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression -> com.android.tools.r8.z.a.q.a:
    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 -> a
    1:1:int getLast():92:92 -> b
    1:1:com.android.tools.r8.jetbrains.kotlin.collections.IntIterator iterator():99:99 -> iterator
    1:1:java.util.Iterator iterator():72 -> iterator
com.android.tools.r8.jetbrains.kotlin.ranges.IntProgressionIterator -> com.android.tools.r8.z.a.q.b:
    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.z.a.q.c:
    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: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.reflect.KCallable -> com.android.tools.r8.z.a.r.a:
com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer -> com.android.tools.r8.z.a.r.b:
com.android.tools.r8.jetbrains.kotlin.reflect.KProperty -> com.android.tools.r8.z.a.r.e:
com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1 -> com.android.tools.r8.z.a.r.d:
com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter -> com.android.tools.r8.z.a.r.c:
com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException -> com.android.tools.r8.z.b.a.a:
    1:1:void <init>(java.lang.String,java.lang.Throwable):8:8 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1 -> com.android.tools.r8.z.b.a.b.a.a:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation -> com.android.tools.r8.z.b.a.b.a.k:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    java.util.List argument_ -> d
    int bitField0_ -> b
    int id_ -> c
    byte memoizedIsInitialized -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation defaultInstance -> f
    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:2335:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):1881:4213 -> <init>
    2336:2336:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):1882:1882 -> <init>
    2337:4666:void <init>(boolean):1884:4213 -> <init>
    4667:4667:void <init>(boolean):1884:1884 -> <init>
    4668:6982:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1899:4213 -> <init>
    6983:7015: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>
    7016:7033: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>
    7034:7049: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>
    7050:7057: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
    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:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder():4324:4324 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilderForType():4325 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():1875 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4327 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder toBuilder():4329 -> d
    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 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder toBuilder():4329 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder():4324:4324 -> d
    3:3: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 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder toBuilder():4329 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():1875 -> d
    4:4: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 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder toBuilder():4329 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():1875 -> d
    1:1:int getId():4171:4171 -> e
    1:1:boolean hasId():4165:4165 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getDefaultInstance():1888:1888 -> g
    1:2:void initFields():4210:4211 -> h
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$1 -> com.android.tools.r8.z.b.a.b.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.z.b.a.b.a.i:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> g
    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 -> 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:1827:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2002:3826 -> <init>
    1828:1828:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2003:2003 -> <init>
    1829:3650:void <init>(boolean):2005:3826 -> <init>
    3651:3651:void <init>(boolean):2005:2005 -> <init>
    3652:5458:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2020:3826 -> <init>
    5459:5496: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>
    5497:5519: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>
    5520:5532: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>
    5533:5537: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
    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:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder newBuilder():3939:3939 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder newBuilderForType():3940 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():1996 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):3942 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder toBuilder():3944 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():1996 -> d
    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 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder toBuilder():3944 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():1996 -> d
    1:1:int getNameId():3804:3804 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getValue():3819:3819 -> f
    1:1:boolean hasNameId():3798:3798 -> g
    1:1:boolean hasValue():3813:3813 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument getDefaultInstance():2009:2009 -> i
    1:2:void initFields():3823:3824 -> j
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$1 -> com.android.tools.r8.z.b.a.b.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.z.b.a.b.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
    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:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument buildPartial():3992:4003 -> e
    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
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value -> com.android.tools.r8.z.b.a.b.a.h:
    int arrayDimensionCount_ -> l
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    int flags_ -> m
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value defaultInstance -> o
    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 -> p
    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:559:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2263:2819 -> <init>
    560:560:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2264:2264 -> <init>
    561:1114:void <init>(boolean):2266:2819 -> <init>
    1115:1115:void <init>(boolean):2266:2266 -> <init>
    1116:1654:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2281:2819 -> <init>
    1655:1747: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>
    1748:1749: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>
    1750:1753: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>
    1754:1762: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>
    1763:1764: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>
    1765:1766: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>
    1767:1768: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>
    1769:1770: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>
    1771:1772: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>
    1773:1774: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>
    1775:1852: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>
    1853:1868: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>
    1869:1876: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: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
    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:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder():2995:2995 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilderForType():2996 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():2257 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2998 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder toBuilder():3000 -> d
    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 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder toBuilder():3000 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder():2995:2995 -> d
    4:4: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 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder toBuilder():3000 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2257 -> d
    5:5: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 -> d
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder toBuilder():3000 -> d
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():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 getAnnotation():2706:2706 -> e
    1:1:int access$3402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,int):2257:2257 -> f
    2:2:int getArrayDimensionCount():2780:2780 -> f
    1:1:int getClassId():2676:2676 -> g
    1:1:double getDoubleValue():2638:2638 -> h
    1:1:int getEnumValueId():2691:2691 -> i
    1:1:int getFlags():2803:2803 -> j
    1:1:float getFloatValue():2623:2623 -> k
    1:1:long getIntValue():2608:2608 -> l
    1:1:int getStringValue():2653:2653 -> m
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type getType():2593:2593 -> n
    1:1:boolean hasAnnotation():2700:2700 -> o
    1:1:boolean hasArrayDimensionCount():2762:2762 -> p
    1:1:boolean hasClassId():2666:2666 -> q
    1:1:boolean hasDoubleValue():2632:2632 -> r
    1:1:boolean hasEnumValueId():2685:2685 -> s
    1:1:boolean hasFlags():2793:2793 -> t
    1:1:boolean hasFloatValue():2617:2617 -> u
    1:1:boolean hasIntValue():2602:2602 -> v
    1:1:boolean hasStringValue():2647:2647 -> w
    1:1:boolean hasType():2581:2581 -> x
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getDefaultInstance():2270:2270 -> y
    1:11:void initFields():2807:2817 -> z
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$1 -> com.android.tools.r8.z.b.a.b.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.z.b.a.b.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:4: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:3121 -> a
    5:6: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
    5:6: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):3121 -> a
    7:7: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
    7:7: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):3121 -> a
    8:9: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):3123:3124 -> a
    10:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setIntValue(long):3276:3277 -> a
    10:11: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):3124 -> a
    12:13: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):3126:3127 -> a
    14:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setFloatValue(float):3308:3309 -> a
    14:15: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
    16:17: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
    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setDoubleValue(double):3340:3341 -> a
    18:19: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
    20:21: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
    22:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setStringValue(int):3372:3373 -> a
    22:23: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
    24: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:3136 -> a
    26:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setClassId(int):3416:3417 -> 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):3136 -> 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):3138:3139 -> a
    30:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setEnumValueId(int):3452:3453 -> a
    30:31: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
    32: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):3141:3142 -> a
    34:36: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
    34:36: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
    37:37: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
    37:37: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
    37:37: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
    37:37: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
    38:38: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
    38:38: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
    38:38: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
    39:45: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
    39:45: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
    46:49: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:3147 -> a
    50:52:void ensureArrayElementIsMutable():3530:3532 -> a
    50:52: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):3149 -> a
    53:58: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):3150:3155 -> a
    59:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setArrayDimensionCount(int):3705:3706 -> a
    59:60: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
    61:62: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:3158 -> a
    63:64:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setFlags(int):3761:3762 -> a
    63:64: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):3158 -> a
    65:65: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):3160:3160 -> a
    66:72: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
    66:72: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
    73:77: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
    73:77: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
    78:78:boolean hasAnnotation():3472:3472 -> a
    78:78:boolean isInitialized():3166 -> a
    79:79:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getAnnotation():3478:3478 -> a
    79:79:boolean isInitialized():3167 -> a
    80:80:boolean isInitialized():3167:3167 -> a
    81:81:int getArrayElementCount():3546:3546 -> a
    81:81:boolean isInitialized():3172 -> a
    82:82:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getArrayElement(int):3552:3552 -> a
    82:82:boolean isInitialized():3173 -> a
    83:83:boolean isInitialized():3173:3173 -> 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
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value build():3058:3059 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3005 -> 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$Value build():3060 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3005 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value build():3060:3060 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3005 -> 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:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value buildPartial():3066:3114 -> e
    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
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type -> com.android.tools.r8.z.b.a.b.a.g:
    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>
    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.z.b.a.b.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:10: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:4401 -> a
    11:13:void ensureArgumentIsMutable():4481:4483 -> a
    11:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4403 -> a
    14:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4404:4408 -> a
    19:25: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
    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):4334 -> a
    26:30: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
    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):4334 -> a
    31:31:boolean hasId():4451:4451 -> a
    31:31:boolean isInitialized():4414 -> a
    32:32:int getArgumentCount():4497:4497 -> a
    32:32:boolean isInitialized():4418 -> a
    33:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument getArgument(int):4503:4503 -> a
    33:33:boolean isInitialized():4419 -> a
    34:34:boolean isInitialized():4419:4419 -> 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:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation build():4369:4370 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():4334 -> 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 build():4371 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():4334 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation build():4371:4371 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():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:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation buildPartial():4377:4389 -> e
    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
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class -> com.android.tools.r8.z.b.a.b.a.n:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class defaultInstance -> u
    java.util.List versionRequirement_ -> r
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    java.util.List sealedSubclassFqName_ -> p
    java.util.List enumEntry_ -> o
    int companionObjectName_ -> f
    int flags_ -> d
    int fqName_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> q
    int bitField0_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> v
    java.util.List nestedClassName_ -> j
    java.util.List supertypeId_ -> i
    java.util.List supertype_ -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable versionRequirementTable_ -> s
    byte memoizedIsInitialized -> t
    java.util.List typeParameter_ -> g
    java.util.List typeAlias_ -> n
    java.util.List property_ -> m
    java.util.List function_ -> l
    java.util.List constructor_ -> 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:866:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):8504:9367 -> <init>
    867:867:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):8505:8505 -> <init>
    868:1728:void <init>(boolean):8507:9367 -> <init>
    1729:1729:void <init>(boolean):8507:8507 -> <init>
    1730:2575:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8522:9367 -> <init>
    2576:2776: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>
    2777:2786: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>
    2787:2790: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>
    2791:2799: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>
    2800:2809: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>
    2810:2813: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>
    2814:2817: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>
    2818:2821: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>
    2822:2825: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>
    2826:2829: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>
    2830:2833: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>
    2834:2843: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>
    2844:2847: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>
    2848:2851: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>
    2852:2855: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>
    2856:2857: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>
    2858:2859: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>
    2860:2869: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>
    2870:2873: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>
    2874:3059: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>
    3060:3105: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>
    3106:3145: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: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
    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:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder newBuilder():9674:9674 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder newBuilderForType():9675 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():8497 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9677 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder toBuilder():9679 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():8497 -> d
    5:5: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 -> d
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder toBuilder():9679 -> d
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():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
    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
    3:3:int getCompanionObjectName():8968:8968 -> 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
    3:3:int getFlags():8938:8938 -> 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
    3:3:int getFqName():8953:8953 -> 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
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():9297:9297 -> 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:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable getVersionRequirementTable():9346:9346 -> k
    1:1:java.util.List access$9900(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> l
    2:2:boolean hasCompanionObjectName():8962:8962 -> l
    1:1:boolean hasFlags():8920:8920 -> m
    1:1:boolean hasFqName():8947:8947 -> n
    1:1:boolean hasTypeTable():9291:9291 -> o
    1:1:boolean hasVersionRequirementTable():9340:9340 -> p
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class getDefaultInstance():8511:8511 -> q
    1:16:void initFields():9350:9365 -> r
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$1 -> com.android.tools.r8.z.b.a.b.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.z.b.a.b.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:18: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:9850 -> a
    19:21:void ensureTypeParameterIsMutable():10195:10197 -> a
    19:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9852 -> a
    22:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9853:9860 -> a
    30:32:void ensureSupertypeIsMutable():10320:10322 -> a
    30:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9862 -> a
    33:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9863:9870 -> a
    41:43:void ensureSupertypeIdIsMutable():10444:10446 -> a
    41:43: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
    44:51: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:9880 -> a
    52:54:void ensureNestedClassNameIsMutable():10510:10512 -> a
    52:54:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9882 -> a
    55:62:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9883:9890 -> a
    63:65:void ensureConstructorIsMutable():10577:10579 -> a
    63:65:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9892 -> a
    66:73:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9893:9900 -> a
    74:76:void ensureFunctionIsMutable():10702:10704 -> a
    74:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9902 -> a
    77:84:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9903:9910 -> a
    85:87:void ensurePropertyIsMutable():10827:10829 -> a
    85:87:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9912 -> a
    88:95:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9913:9920 -> a
    96:98:void ensureTypeAliasIsMutable():10952:10954 -> a
    96:98:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9922 -> a
    99:106:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9923:9930 -> a
    107:109:void ensureEnumEntryIsMutable():11077:11079 -> a
    107:109:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9932 -> a
    110: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):9933:9940 -> a
    118:120:void ensureSealedSubclassFqNameIsMutable():11201:11203 -> 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):9942 -> a
    121:126:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9943:9948 -> a
    127: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):11304:11306 -> a
    127: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:130: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
    130:130: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
    130:130: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
    130:130: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
    131:131: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
    131:131: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
    131:131: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
    132:138: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
    132:138: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
    139:142: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:9953 -> a
    143:145:void ensureVersionRequirementIsMutable():11327:11329 -> a
    143: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):9955 -> a
    146:151:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9956:9961 -> a
    152:154: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
    152:154: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
    155:155: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
    155:155: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
    155:155: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
    155: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):9961 -> a
    156:156: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
    156:156: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
    156:156: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
    157:163: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
    157:163: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
    164:165: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
    166:172: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
    166:172: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
    173:177: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
    173:177: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
    178:178:boolean hasFqName():10133:10133 -> a
    178:178:boolean isInitialized():9970 -> a
    179:179:int getTypeParameterCount():10211:10211 -> a
    179:179:boolean isInitialized():9974 -> a
    180:180:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):10217:10217 -> a
    180:180:boolean isInitialized():9975 -> a
    181:181:boolean isInitialized():9975:9975 -> a
    182:182:int getSupertypeCount():10336:10336 -> a
    182:182:boolean isInitialized():9980 -> a
    183:183:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getSupertype(int):10342:10342 -> a
    183:183:boolean isInitialized():9981 -> a
    184:184:boolean isInitialized():9981:9981 -> a
    185:185:int getConstructorCount():10593:10593 -> a
    185:185:boolean isInitialized():9986 -> a
    186:186:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor getConstructor(int):10599:10599 -> a
    186:186:boolean isInitialized():9987 -> a
    187:187:boolean isInitialized():9987:9987 -> a
    188:188:int getFunctionCount():10718:10718 -> a
    188:188:boolean isInitialized():9992 -> a
    189:189:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getFunction(int):10724:10724 -> a
    189:189:boolean isInitialized():9993 -> a
    190:190:boolean isInitialized():9993:9993 -> a
    191:191:int getPropertyCount():10843:10843 -> a
    191:191:boolean isInitialized():9998 -> a
    192:192:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getProperty(int):10849:10849 -> a
    192:192:boolean isInitialized():9999 -> a
    193:193:boolean isInitialized():9999:9999 -> a
    194:194:int getTypeAliasCount():10968:10968 -> a
    194:194:boolean isInitialized():10004 -> a
    195:195:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getTypeAlias(int):10974:10974 -> a
    195:195:boolean isInitialized():10005 -> a
    196:196:boolean isInitialized():10005:10005 -> a
    197:197:int getEnumEntryCount():11093:11093 -> a
    197:197:boolean isInitialized():10010 -> a
    198:198:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry getEnumEntry(int):11099:11099 -> a
    198:198:boolean isInitialized():10011 -> a
    199:199:boolean isInitialized():10011:10011 -> a
    200:200:boolean hasTypeTable():11270:11270 -> a
    200:200:boolean isInitialized():10016 -> a
    201:201:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():11276:11276 -> a
    201:201:boolean isInitialized():10017 -> a
    202:207:boolean isInitialized():10017:10022 -> 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
    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
    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:79:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class buildPartial():9754:9832 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder create():9697:9697 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder access$8700():9684 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor -> com.android.tools.r8.z.b.a.b.a.q:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    java.util.List versionRequirement_ -> f
    java.util.List valueParameter_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor defaultInstance -> h
    int flags_ -> d
    int bitField0_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> i
    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:219:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):13374:13590 -> <init>
    220:220:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):13375:13375 -> <init>
    221:434:void <init>(boolean):13377:13590 -> <init>
    435:435:void <init>(boolean):13377:13377 -> <init>
    436:634:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13392:13590 -> <init>
    635:688: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>
    689:692: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>
    693:696: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>
    697:735: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>
    736:754: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>
    755:767: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
    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:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder newBuilder():13718:13718 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder newBuilderForType():13719 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():13367 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13721 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder toBuilder():13723 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():13367 -> d
    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 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder toBuilder():13723 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():13367 -> d
    1:1:int getFlags():13513:13513 -> g
    1:1:boolean hasFlags():13501:13501 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor getDefaultInstance():13381:13381 -> i
    1:3:void initFields():13586:13588 -> j
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$1 -> com.android.tools.r8.z.b.a.b.a.o:
    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.z.b.a.b.a.p:
    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:10: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:13801 -> a
    11:13:void ensureValueParameterIsMutable():13916:13918 -> a
    11:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13803 -> a
    14:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13804:13811 -> a
    22:24:void ensureVersionRequirementIsMutable():14040:14042 -> a
    22:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13813 -> a
    25:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13814:13819 -> a
    31:37: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
    31:37: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
    38:42: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
    38:42: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
    43:43:int getValueParameterCount():13932:13932 -> a
    43:43:boolean isInitialized():13825 -> a
    44:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getValueParameter(int):13938:13938 -> a
    44:44:boolean isInitialized():13826 -> a
    45:50:boolean isInitialized():13826:13831 -> 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
    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:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor buildPartial():13772:13789 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder create():13741:13741 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder access$12500():13728 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract -> com.android.tools.r8.z.b.a.b.a.t:
    java.util.List effect_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract defaultInstance -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    byte memoizedIsInitialized -> c
    1:390:void <clinit>():23388:23777 -> <clinit>
    391:391:void initFields():23439:23439 -> <clinit>
    391:391: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:126:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):23318:23441 -> <init>
    127:127:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):23319:23319 -> <init>
    128:248:void <init>(boolean):23321:23441 -> <init>
    249:249:void <init>(boolean):23321:23321 -> <init>
    250:355:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23336:23441 -> <init>
    356:391: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>
    392:407: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>
    408:415: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
    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:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder():23541:23541 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilderForType():23542 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():23312 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23544 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder toBuilder():23546 -> d
    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 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder toBuilder():23546 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder():23541:23541 -> d
    3:3: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 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder toBuilder():23546 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():23312 -> d
    4:4: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 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder toBuilder():23546 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():23312 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getDefaultInstance():23325:23325 -> e
    1:1:void initFields():23439:23439 -> f
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$1 -> com.android.tools.r8.z.b.a.b.a.r:
    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.z.b.a.b.a.s:
    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:6: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:23607 -> a
    7:9:void ensureEffectIsMutable():23651:23653 -> a
    7:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23609 -> a
    10:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23610:23614 -> a
    15:21: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
    15: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):23551 -> a
    22:26: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
    22:26: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
    27:27:int getEffectCount():23667:23667 -> a
    27:27:boolean isInitialized():23620 -> a
    28:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect getEffect(int):23673:23673 -> a
    28:28:boolean isInitialized():23621 -> a
    29:29:boolean isInitialized():23621:23621 -> 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:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract buildPartial():23592:23598 -> e
    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
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect -> com.android.tools.r8.z.b.a.b.a.y:
    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
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect defaultInstance -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression conclusionOfConditionalEffect_ -> e
    int bitField0_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind kind_ -> f
    byte memoizedIsInitialized -> g
    1:835:void <clinit>():23955:24789 -> <clinit>
    836:839:void initFields():24226:24229 -> <clinit>
    836:839:void <clinit>():24790 -> <clinit>
    840:840:void initFields():24226:24226 -> <clinit>
    840:840: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:386:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):23848:24231 -> <init>
    387:387:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):23849:23849 -> <init>
    388:768:void <init>(boolean):23851:24231 -> <init>
    769:769:void <init>(boolean):23851:23851 -> <init>
    770:1135:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23866:24231 -> <init>
    1136:1199: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>
    1200:1208: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>
    1209:1212: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>
    1213:1262: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>
    1263:1278: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>
    1279:1286: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:11:boolean isInitialized():24238:24239 -> a
    12:12:boolean hasConclusionOfConditionalEffect():24196:24196 -> a
    12:12:boolean isInitialized():24243 -> a
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getConclusionOfConditionalEffect():24207:24207 -> a
    13:13:boolean isInitialized():24244 -> a
    14:19:boolean isInitialized():24244:24249 -> 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:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder newBuilder():24358:24358 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder newBuilderForType():24359 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():23842 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24361 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder toBuilder():24363 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():23842 -> d
    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 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder toBuilder():24363 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():23842 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getConclusionOfConditionalEffect():24207:24207 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType getEffectType():24147:24147 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind getKind():24222:24222 -> g
    1:1:boolean hasConclusionOfConditionalEffect():24196:24196 -> h
    1:1:boolean hasEffectType():24141:24141 -> i
    1:1:boolean hasKind():24216:24216 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect getDefaultInstance():23855:23855 -> k
    1:4:void initFields():24226:24229 -> l
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$1 -> com.android.tools.r8.z.b.a.b.a.u:
    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.z.b.a.b.a.v:
    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:4: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:24442 -> a
    5:6: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
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24442 -> a
    7:7: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
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24442 -> a
    8:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24444:24447 -> a
    12:14:void ensureEffectConstructorArgumentIsMutable():24538:24540 -> a
    12:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24449 -> a
    15: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):24450:24455 -> a
    21:23: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
    21:23: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
    24:24: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
    24:24: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
    24:24: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
    24:24: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
    25:25: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
    25:25: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
    25:25: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
    26:32: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
    26:32: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
    33:34: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:24458 -> a
    35:36: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
    35:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24458 -> a
    37:37: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
    37:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24458 -> a
    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24460:24460 -> a
    39: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):24487:24493 -> a
    39: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:50: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
    46: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):24368 -> a
    51:51:int getEffectConstructorArgumentCount():24554:24554 -> a
    51:51:boolean isInitialized():24466 -> a
    52:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getEffectConstructorArgument(int):24560:24560 -> a
    52:52:boolean isInitialized():24467 -> a
    53:53:boolean isInitialized():24467:24467 -> a
    54:54:boolean hasConclusionOfConditionalEffect():24670:24670 -> a
    54:54:boolean isInitialized():24472 -> a
    55:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getConclusionOfConditionalEffect():24681:24681 -> a
    55:55:boolean isInitialized():24473 -> a
    56:56:boolean isInitialized():24473:24473 -> 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:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect buildPartial():24415:24435 -> e
    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
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType -> com.android.tools.r8.z.b.a.b.a.w:
    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 RETURNS_CONSTANT -> b
    int value -> a
    1:18:void <clinit>():23990:24007 -> <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.z.b.a.b.a.x:
    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 AT_LEAST_ONCE -> d
    int value -> a
    1:9:void <clinit>():24077:24085 -> <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.z.b.a.b.a.B:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry defaultInstance -> 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:101:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):20464:20562 -> <init>
    102:102:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):20465:20465 -> <init>
    103:198:void <init>(boolean):20467:20562 -> <init>
    199:199:void <init>(boolean):20467:20467 -> <init>
    200:280:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20482:20562 -> <init>
    281:313: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>
    314:326: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>
    327:333: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
    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:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder newBuilder():20665:20665 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder newBuilderForType():20666 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():20457 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry):20668 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder toBuilder():20670 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():20457 -> d
    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 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder toBuilder():20670 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():20457 -> d
    1:1:int getName():20556:20556 -> g
    1:1:boolean hasName():20550:20550 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry getDefaultInstance():20471:20471 -> i
    1:1:void initFields():20560:20560 -> j
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$1 -> com.android.tools.r8.z.b.a.b.a.z:
    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.z.b.a.b.a.A:
    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
    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:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry buildPartial():20715:20722 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder create():20688:20688 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder access$19200():20675 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression -> com.android.tools.r8.z.b.a.b.a.F:
    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.protobuf.ByteString unknownFields -> a
    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
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression defaultInstance -> k
    int bitField0_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> l
    int flags_ -> c
    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:449:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):24953:25399 -> <init>
    450:450:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):24954:24954 -> <init>
    451:894:void <init>(boolean):24956:25399 -> <init>
    895:895:void <init>(boolean):24956:24956 -> <init>
    896:1324:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24971:25399 -> <init>
    1325:1400: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>
    1401:1404: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>
    1405:1406: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>
    1407:1415: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>
    1416:1423: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>
    1424:1425: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>
    1426:1486: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>
    1487:1505: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>
    1506:1516: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:6:boolean isInitialized():25401:25401 -> a
    7:7:boolean hasIsInstanceType():25231:25231 -> a
    7:7:boolean isInitialized():25405 -> a
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getIsInstanceType():25242:25242 -> a
    8:8:boolean isInitialized():25406 -> a
    9:10:boolean isInitialized():25406:25407 -> a
    11:11:int getAndArgumentCount():25297:25297 -> a
    11:11:boolean isInitialized():25411 -> a
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getAndArgument(int):25309:25309 -> a
    12:12:boolean isInitialized():25412 -> a
    13:14:boolean isInitialized():25412:25413 -> a
    15:15:int getOrArgumentCount():25362:25362 -> a
    15:15:boolean isInitialized():25417 -> a
    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getOrArgument(int):25374:25374 -> a
    16:16:boolean isInitialized():25418 -> a
    17:22:boolean isInitialized():25418:25423 -> 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:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder():25553:25553 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilderForType():25554 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():24947 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25556 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder toBuilder():25558 -> d
    3:3: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 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder toBuilder():25558 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder():25553:25553 -> d
    4:4: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 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder toBuilder():25558 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():24947 -> d
    5:5: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 -> d
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder toBuilder():25558 -> d
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():24947 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue getConstantValue():25217:25217 -> e
    1:1:int getFlags():25177:25177 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getIsInstanceType():25242:25242 -> g
    1:1:int getIsInstanceTypeId():25257:25257 -> h
    1:1:int getValueParameterReference():25202:25202 -> i
    1:1:boolean hasConstantValue():25211:25211 -> j
    1:1:boolean hasFlags():25166:25166 -> k
    1:1:boolean hasIsInstanceType():25231:25231 -> l
    1:1:boolean hasIsInstanceTypeId():25251:25251 -> m
    1:1:boolean hasValueParameterReference():25191:25191 -> n
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getDefaultInstance():24960:24960 -> o
    1:7:void initFields():25391:25397 -> p
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$1 -> com.android.tools.r8.z.b.a.b.a.C:
    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.z.b.a.b.a.D:
    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:12: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:25667 -> a
    13:14: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
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25667 -> a
    15:15: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
    15: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):25667 -> a
    16:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25669:25670 -> a
    18: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):25944:25946 -> a
    18: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: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():6183:6183 -> 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 -> a
    21:21: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
    21:21: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
    22:22: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
    22:22: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
    22:22: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
    23:29: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
    23: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):25670 -> 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):25672:25673 -> a
    32:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setIsInstanceTypeId(int):25987:25988 -> a
    32:33: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
    34:37: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:25678 -> a
    38:40:void ensureAndArgumentIsMutable():26005:26007 -> a
    38:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25680 -> a
    41:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25681:25688 -> a
    49:51:void ensureOrArgumentIsMutable():26202:26204 -> a
    49:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25690 -> a
    52:56:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25691:25695 -> a
    57:63: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
    57:63: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
    64:68: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
    64:68: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
    69:69:boolean hasIsInstanceType():25890:25890 -> a
    69:69:boolean isInitialized():25701 -> a
    70:70:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getIsInstanceType():25901:25901 -> a
    70:70:boolean isInitialized():25702 -> a
    71:71:boolean isInitialized():25702:25702 -> a
    72:72:int getAndArgumentCount():26033:26033 -> a
    72:72:boolean isInitialized():25707 -> a
    73:73:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getAndArgument(int):26045:26045 -> a
    73:73:boolean isInitialized():25708 -> a
    74:74:boolean isInitialized():25708:25708 -> a
    75:75:int getOrArgumentCount():26230:26230 -> a
    75:75:boolean isInitialized():25713 -> a
    76:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getOrArgument(int):26242:26242 -> a
    76:76:boolean isInitialized():25714 -> a
    77:77:boolean isInitialized():25714:25714 -> 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
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression build():25613:25614 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():25568 -> 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$Expression build():25615 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():25568 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression build():25615:25615 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():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:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression buildPartial():25621:25654 -> e
    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
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue -> com.android.tools.r8.z.b.a.b.a.E:
    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 FALSE -> c
    int value -> a
    1:9:void <clinit>():25097:25105 -> <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.z.b.a.b.a.I:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function defaultInstance -> q
    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.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.protobuf.Parser PARSER -> r
    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
    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:482:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):14320:14799 -> <init>
    483:483:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):14321:14321 -> <init>
    484:960:void <init>(boolean):14323:14799 -> <init>
    961:961:void <init>(boolean):14323:14323 -> <init>
    962:1423:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14338:14799 -> <init>
    1424:1557: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>
    1558:1567: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>
    1568:1571: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>
    1572:1580: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>
    1581:1582: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>
    1583:1584: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>
    1585:1586: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>
    1587:1590: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>
    1591:1599: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>
    1600:1603: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>
    1604:1612: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>
    1613:1614: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>
    1615:1733: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>
    1734:1755: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>
    1756:1771: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: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:9:boolean isInitialized():14806:14806 -> a
    10:10:boolean hasReturnType():14597:14597 -> a
    10:10:boolean isInitialized():14809 -> a
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():14603:14603 -> a
    11:11:boolean isInitialized():14810 -> a
    12:13:boolean isInitialized():14810:14811 -> a
    14:14:int getTypeParameterCount():14640:14640 -> a
    14:14:boolean isInitialized():14815 -> a
    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):14646:14646 -> a
    15:15:boolean isInitialized():14816 -> a
    16:17:boolean isInitialized():14816:14817 -> a
    18:18:boolean hasReceiverType():14662:14662 -> a
    18:18:boolean isInitialized():14821 -> a
    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():14668:14668 -> a
    19:19:boolean isInitialized():14822 -> a
    20:21:boolean isInitialized():14822:14823 -> a
    22:22:int getValueParameterCount():14705:14705 -> a
    22:22:boolean isInitialized():14827 -> a
    23:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getValueParameter(int):14711:14711 -> a
    23:23:boolean isInitialized():14828 -> a
    24:25:boolean isInitialized():14828:14829 -> a
    26:26:boolean hasTypeTable():14727:14727 -> a
    26:26:boolean isInitialized():14833 -> a
    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():14733:14733 -> a
    27:27:boolean isInitialized():14834 -> a
    28:29:boolean isInitialized():14834:14835 -> a
    30:30:boolean hasContract():14776:14776 -> a
    30:30:boolean isInitialized():14839 -> a
    31:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getContract():14782:14782 -> a
    31:31:boolean isInitialized():14840 -> a
    32:41:boolean isInitialized():14840:14849 -> 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:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder newBuilder():15024:15024 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder newBuilderForType():15025 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():14313 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15027 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder toBuilder():15029 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():14313 -> d
    4:4: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 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder toBuilder():15029 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():14313 -> d
    1:1:int access$14202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14313: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 -> g
    1:1:int getFlags():14558:14558 -> h
    1:1:int getName():14588:14588 -> i
    1:1:int getOldFlags():14573:14573 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():14668:14668 -> k
    1:1:int getReceiverTypeId():14683:14683 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():14603:14603 -> m
    1:1:int getReturnTypeId():14618:14618 -> n
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():14733:14733 -> o
    1:1:boolean hasContract():14776:14776 -> p
    1:1:boolean hasFlags():14538:14538 -> q
    1:1:boolean hasName():14582:14582 -> r
    1:1:boolean hasOldFlags():14567:14567 -> s
    1:1:boolean hasReceiverType():14662:14662 -> t
    1:1:boolean hasReceiverTypeId():14677:14677 -> u
    1:1:boolean hasReturnType():14597:14597 -> v
    1:1:boolean hasReturnTypeId():14612:14612 -> w
    1:1:boolean hasTypeTable():14727:14727 -> x
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getDefaultInstance():14327:14327 -> y
    1:12:void initFields():14786:14797 -> z
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$1 -> com.android.tools.r8.z.b.a.b.a.G:
    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.z.b.a.b.a.H:
    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:36: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:15174 -> a
    37:39:void ensureTypeParameterIsMutable():15533:15535 -> a
    37:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15176 -> a
    40:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15177:15182 -> a
    46: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):15694:15696 -> a
    46: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():6183:6183 -> 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 -> 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:50: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
    50:50: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
    50:50: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
    51:57: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
    51:57: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
    58:59: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
    60:61:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setReceiverTypeId(int):15732:15733 -> a
    60:61: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
    62:65: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:15190 -> a
    66:68:void ensureValueParameterIsMutable():15750:15752 -> a
    66:68:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15192 -> a
    69:74:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15193:15198 -> a
    75: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):15911:15913 -> a
    75: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:78: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
    78:78: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
    78:78: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
    78:78: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
    79:79: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
    79:79: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
    79:79: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
    80:86: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
    80:86: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
    87:90: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:15203 -> a
    91:93:void ensureVersionRequirementIsMutable():15934:15936 -> a
    91:93:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15205 -> a
    94: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):15206:15211 -> a
    100:102: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
    100:102: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
    103:103: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
    103:103: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
    103:103: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
    103:103: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
    104:104: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
    104:104: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
    104:104: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
    105:111: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
    105:111: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
    112:113: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
    114:120: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
    114:120: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
    121:125: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
    121:125: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
    126:126:boolean hasName():15411:15411 -> a
    126:126:boolean isInitialized():15220 -> a
    127:127:boolean hasReturnType():15443:15443 -> a
    127:127:boolean isInitialized():15224 -> a
    128:128:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():15449:15449 -> a
    128:128:boolean isInitialized():15225 -> a
    129:129:boolean isInitialized():15225:15225 -> a
    130:130:int getTypeParameterCount():15549:15549 -> a
    130:130:boolean isInitialized():15230 -> a
    131:131:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):15555:15555 -> a
    131:131:boolean isInitialized():15231 -> a
    132:132:boolean isInitialized():15231:15231 -> a
    133:133:boolean hasReceiverType():15660:15660 -> a
    133:133:boolean isInitialized():15236 -> a
    134:134:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():15666:15666 -> a
    134:134:boolean isInitialized():15237 -> a
    135:135:boolean isInitialized():15237:15237 -> a
    136:136:int getValueParameterCount():15766:15766 -> a
    136:136:boolean isInitialized():15242 -> a
    137:137:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getValueParameter(int):15772:15772 -> a
    137:137:boolean isInitialized():15243 -> a
    138:138:boolean isInitialized():15243:15243 -> a
    139:139:boolean hasTypeTable():15877:15877 -> a
    139:139:boolean isInitialized():15248 -> a
    140:140:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():15883:15883 -> a
    140:140:boolean isInitialized():15249 -> a
    141:141:boolean isInitialized():15249:15249 -> a
    142:142:boolean hasContract():16031:16031 -> a
    142:142:boolean isInitialized():15254 -> a
    143:143:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getContract():16037:16037 -> a
    143:143:boolean isInitialized():15255 -> a
    144:149:boolean isInitialized():15255:15260 -> 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
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function build():15088:15089 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():15034 -> 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$Function build():15090 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():15034 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function build():15090:15090 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():15034 -> 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:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function buildPartial():15096:15150 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder create():15047:15047 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder access$13300():15034 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package -> com.android.tools.r8.z.b.a.b.a.L:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable versionRequirementTable_ -> h
    byte memoizedIsInitialized -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    java.util.List typeAlias_ -> f
    java.util.List property_ -> e
    java.util.List function_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> k
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package defaultInstance -> j
    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:279:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):11565:11841 -> <init>
    280:280:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):11566:11566 -> <init>
    281:554:void <init>(boolean):11568:11841 -> <init>
    555:555:void <init>(boolean):11568:11568 -> <init>
    556:814:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11583:11841 -> <init>
    815:884: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>
    885:893: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>
    894:897: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>
    898:901: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>
    902:955: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>
    956:977: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>
    978:993: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
    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:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder newBuilder():11996:11996 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder newBuilderForType():11997 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():11558 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11999 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder toBuilder():12001 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():11558 -> d
    3:3: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 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder toBuilder():12001 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():11558 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():11816:11816 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable getVersionRequirementTable():11831:11831 -> h
    1:1:boolean hasTypeTable():11810:11810 -> i
    1:1:boolean hasVersionRequirementTable():11825:11825 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package getDefaultInstance():11572:11572 -> k
    1:5:void initFields():11835:11839 -> l
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$1 -> com.android.tools.r8.z.b.a.b.a.J:
    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.z.b.a.b.a.K:
    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:6: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:12089 -> a
    7:9:void ensureFunctionIsMutable():12182:12184 -> a
    7:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12091 -> a
    10:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12092:12099 -> a
    18:20:void ensurePropertyIsMutable():12307:12309 -> a
    18:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12101 -> a
    21:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12102:12109 -> a
    29:31:void ensureTypeAliasIsMutable():12432:12434 -> a
    29:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12111 -> a
    32: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):12112:12117 -> a
    38:40: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
    38:40: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
    41:41: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
    41:41: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
    41:41: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
    41:41: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
    42:42: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
    42:42: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
    42:42: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
    43:49: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
    43:49: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
    50: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):12119:12120 -> a
    52:54: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
    52:54: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
    55:55: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
    55:55: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
    55:55: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
    55:55: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
    56:56: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
    56:56: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
    56:56: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
    57:63: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
    57:63: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
    64:65: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
    66:72: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
    66:72: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
    73:77: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
    73:77: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
    78:78:int getFunctionCount():12198:12198 -> a
    78:78:boolean isInitialized():12129 -> a
    79:79:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getFunction(int):12204:12204 -> a
    79:79:boolean isInitialized():12130 -> a
    80:80:boolean isInitialized():12130:12130 -> a
    81:81:int getPropertyCount():12323:12323 -> a
    81:81:boolean isInitialized():12135 -> a
    82:82:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getProperty(int):12329:12329 -> a
    82:82:boolean isInitialized():12136 -> a
    83:83:boolean isInitialized():12136:12136 -> a
    84:84:int getTypeAliasCount():12448:12448 -> a
    84:84:boolean isInitialized():12141 -> a
    85:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getTypeAlias(int):12454:12454 -> a
    85:85:boolean isInitialized():12142 -> a
    86:86:boolean isInitialized():12142:12142 -> a
    87:87:boolean hasTypeTable():12559:12559 -> a
    87:87:boolean isInitialized():12147 -> a
    88:88:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():12565:12565 -> a
    88:88:boolean isInitialized():12148 -> a
    89:94:boolean isInitialized():12148:12153 -> 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:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package build():12046:12047 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():12006 -> 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$Package build():12048 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():12006 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package build():12048:12048 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():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:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package buildPartial():12054:12080 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder create():12019:12019 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder access$10800():12006 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property -> com.android.tools.r8.z.b.a.b.a.O:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property defaultInstance -> q
    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$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.protobuf.Parser PARSER -> r
    java.util.List typeParameter_ -> i
    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:476:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):16297:16770 -> <init>
    477:477:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):16298:16298 -> <init>
    478:948:void <init>(boolean):16300:16770 -> <init>
    949:949:void <init>(boolean):16300:16300 -> <init>
    950:1405:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16315:16770 -> <init>
    1406:1528: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>
    1529:1532: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>
    1533:1534: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>
    1535:1536: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>
    1537:1538: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>
    1539:1540: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>
    1541:1542: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>
    1543:1551: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>
    1552:1560: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>
    1561:1564: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>
    1565:1573: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>
    1574:1575: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>
    1576:1683: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>
    1684:1702: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>
    1703:1715: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:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getDefaultInstance():16304:16304 -> A
    1:12:void initFields():16757:16768 -> B
    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:8:boolean isInitialized():16777:16777 -> a
    9:9:boolean hasReturnType():16564:16564 -> a
    9:9:boolean isInitialized():16780 -> a
    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():16570:16570 -> a
    10:10:boolean isInitialized():16781 -> a
    11:12:boolean isInitialized():16781:16782 -> a
    13:13:int getTypeParameterCount():16607:16607 -> a
    13:13:boolean isInitialized():16786 -> a
    14:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):16613:16613 -> a
    14:14:boolean isInitialized():16787 -> a
    15:16:boolean isInitialized():16787:16788 -> a
    17:17:boolean hasReceiverType():16629:16629 -> a
    17:17:boolean isInitialized():16792 -> a
    18:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():16635:16635 -> a
    18:18:boolean isInitialized():16793 -> a
    19:20:boolean isInitialized():16793:16794 -> a
    21:21:boolean hasSetterValueParameter():16659:16659 -> a
    21:21:boolean isInitialized():16798 -> a
    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getSetterValueParameter():16665:16665 -> a
    22:22:boolean isInitialized():16799 -> a
    23:32:boolean isInitialized():16799:16808 -> 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:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder newBuilder():16983:16983 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder newBuilderForType():16984 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():16290 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16986 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder toBuilder():16988 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():16290 -> d
    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 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder toBuilder():16988 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():16290 -> d
    1:1:int access$15902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16290: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
    2:2:int getFlags():16525:16525 -> g
    1:1:int access$16402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16290:16290 -> h
    2:2:int getGetterFlags():16704:16704 -> h
    1:1:int getName():16555:16555 -> i
    1:1:int getOldFlags():16540:16540 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():16635:16635 -> k
    1:1:int getReceiverTypeId():16650:16650 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():16570:16570 -> m
    1:1:int getReturnTypeId():16585:16585 -> n
    1:1:int getSetterFlags():16719:16719 -> o
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getSetterValueParameter():16665:16665 -> p
    1:1:boolean hasFlags():16503:16503 -> q
    1:1:boolean hasGetterFlags():16686:16686 -> r
    1:1:boolean hasName():16549:16549 -> s
    1:1:boolean hasOldFlags():16534:16534 -> t
    1:1:boolean hasReceiverType():16629:16629 -> u
    1:1:boolean hasReceiverTypeId():16644:16644 -> v
    1:1:boolean hasReturnType():16564:16564 -> w
    1:1:boolean hasReturnTypeId():16579:16579 -> x
    1:1:boolean hasSetterFlags():16713:16713 -> y
    1:1:boolean hasSetterValueParameter():16659:16659 -> z
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$1 -> com.android.tools.r8.z.b.a.b.a.M:
    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.z.b.a.b.a.N:
    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:36: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:17132 -> a
    37:39:void ensureTypeParameterIsMutable():17480:17482 -> a
    37:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17134 -> a
    40:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17135:17140 -> a
    46: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):17641:17643 -> a
    46: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():6183:6183 -> 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 -> 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:50: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
    50:50: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
    50:50: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
    51:57: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
    51:57: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
    58:59: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
    60:61:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setReceiverTypeId(int):17679:17680 -> a
    60:61: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
    62:63: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
    64: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):17733:17735 -> a
    64: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():18441:18441 -> 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 -> 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:68: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
    68:68: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
    68:68: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
    69:75: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
    69:75: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
    76:77: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
    78:79:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setGetterFlags(int):17807:17808 -> a
    78:79: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
    80:81: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
    82:83:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setSetterFlags(int):17851:17852 -> a
    82:83: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
    84:87: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:17157 -> a
    88:90:void ensureVersionRequirementIsMutable():17868:17870 -> a
    88:90:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17159 -> a
    91:96:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17160:17165 -> a
    97:103: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
    97:103: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
    104:108: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
    104:108: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
    109:109:boolean hasName():17358:17358 -> a
    109:109:boolean isInitialized():17171 -> a
    110:110:boolean hasReturnType():17390:17390 -> a
    110:110:boolean isInitialized():17175 -> a
    111:111:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():17396:17396 -> a
    111:111:boolean isInitialized():17176 -> a
    112:112:boolean isInitialized():17176:17176 -> a
    113:113:int getTypeParameterCount():17496:17496 -> a
    113:113:boolean isInitialized():17181 -> a
    114:114:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):17502:17502 -> a
    114:114:boolean isInitialized():17182 -> a
    115:115:boolean isInitialized():17182:17182 -> a
    116:116:boolean hasReceiverType():17607:17607 -> a
    116:116:boolean isInitialized():17187 -> a
    117:117:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():17613:17613 -> a
    117:117:boolean isInitialized():17188 -> a
    118:118:boolean isInitialized():17188:17188 -> a
    119:119:boolean hasSetterValueParameter():17699:17699 -> a
    119:119:boolean isInitialized():17193 -> a
    120:120:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getSetterValueParameter():17705:17705 -> a
    120:120:boolean isInitialized():17194 -> a
    121:126:boolean isInitialized():17194:17199 -> 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
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property build():17047:17048 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():16993 -> 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$Property build():17049 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():16993 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property build():17049:17049 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():16993 -> 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:54:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property buildPartial():17055:17108 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder create():17006:17006 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder access$15000():16993 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type -> com.android.tools.r8.z.b.a.b.a.W:
    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 -> s
    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 -> t
    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 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:1156:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):4812:5965 -> <init>
    1157:1157:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):4813:4813 -> <init>
    1158:2308:void <init>(boolean):4815:5965 -> <init>
    2309:2309:void <init>(boolean):4815:4815 -> <init>
    2310:3445:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4830:5965 -> <init>
    3446:3562: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>
    3563:3571: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>
    3572:3573: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>
    3574:3575: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>
    3576:3584: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>
    3585:3586: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>
    3587:3588: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>
    3589:3590: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>
    3591:3592: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>
    3593:3601: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>
    3602:3603: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>
    3604:3605: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>
    3606:3609: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>
    3610:3711: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>
    3712:3727: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>
    3728:3737: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 hasNullable():5708:5708 -> A
    1:1:boolean hasOuterType():5868:5868 -> B
    1:1:boolean hasOuterTypeId():5887:5887 -> C
    1:1:boolean hasTypeAliasName():5844:5844 -> D
    1:1:boolean hasTypeParameter():5797:5797 -> E
    1:1:boolean hasTypeParameterName():5820:5820 -> F
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getDefaultInstance():4819:4819 -> G
    1:3:void initFields():5950:5952 -> H
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getDefaultInstance():4819:4819 -> H
    4:4:void initFields():5953 -> H
    5:15:void initFields():5953:5963 -> H
    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:10:boolean isInitialized():5972:5973 -> a
    11:11:boolean hasFlexibleUpperBound():5748:5748 -> a
    11:11:boolean isInitialized():5977 -> a
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getFlexibleUpperBound():5754:5754 -> a
    12:12:boolean isInitialized():5978 -> a
    13:14:boolean isInitialized():5978:5979 -> a
    15:15:boolean hasOuterType():5868:5868 -> a
    15:15:boolean isInitialized():5983 -> a
    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getOuterType():5878:5878 -> a
    16:16:boolean isInitialized():5984 -> a
    17:18:boolean isInitialized():5984:5985 -> a
    19:19:boolean hasAbbreviatedType():5902:5902 -> a
    19:19:boolean isInitialized():5989 -> a
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getAbbreviatedType():5908:5908 -> a
    20:20:boolean isInitialized():5990 -> a
    21:30:boolean isInitialized():5990:5999 -> 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:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder():6183:6183 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilderForType():6184 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():4805 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder toBuilder():6188 -> d
    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 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder toBuilder():6188 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder():6183:6183 -> d
    4:4: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 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder toBuilder():6188 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():4805 -> d
    5:5: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 -> d
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder toBuilder():6188 -> d
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():4805 -> d
    1:1:int access$6602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805: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
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getAbbreviatedType():5908:5908 -> g
    1:1:int access$7102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> h
    2:2:int getAbbreviatedTypeId():5923:5923 -> h
    1:1:int access$7202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> i
    2:2:int getClassName():5784:5784 -> i
    1:1:int access$7302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> j
    2:2:int getFlags():5946:5946 -> j
    1:1:int getFlexibleTypeCapabilitiesId():5739:5739 -> k
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getFlexibleUpperBound():5754:5754 -> l
    1:1:int getFlexibleUpperBoundId():5769:5769 -> m
    1:1:boolean getNullable():5714:5714 -> n
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getOuterType():5878:5878 -> o
    1:1:int getOuterTypeId():5893:5893 -> p
    1:1:int getTypeAliasName():5855:5855 -> q
    1:1:int getTypeParameter():5807:5807 -> r
    1:1:int getTypeParameterName():5830:5830 -> s
    1:1:boolean hasAbbreviatedType():5902:5902 -> t
    1:1:boolean hasAbbreviatedTypeId():5917:5917 -> u
    1:1:boolean hasClassName():5778:5778 -> v
    1:1:boolean hasFlags():5936:5936 -> w
    1:1:boolean hasFlexibleTypeCapabilitiesId():5728:5728 -> x
    1:1:boolean hasFlexibleUpperBound():5748:5748 -> y
    1:1:boolean hasFlexibleUpperBoundId():5763:5763 -> z
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$1 -> com.android.tools.r8.z.b.a.b.a.P:
    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.z.b.a.b.a.U:
    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$Type$Argument$Projection projection_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument defaultInstance -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type type_ -> d
    int typeId_ -> e
    int bitField0_ -> b
    byte memoizedIsInitialized -> f
    1:537:void <clinit>():5123:5659 -> <clinit>
    538:540:void initFields():5267:5269 -> <clinit>
    538:540:void <clinit>():5660 -> <clinit>
    541:541:void initFields():5267:5267 -> <clinit>
    541:541: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:240:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):5034:5271 -> <init>
    241:241:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):5035:5035 -> <init>
    242:476:void <init>(boolean):5037:5271 -> <init>
    477:477:void <init>(boolean):5037:5037 -> <init>
    478:697:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5052:5271 -> <init>
    698:747: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>
    748:756: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>
    757:791: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>
    792:804: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>
    805:809: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:5:boolean isInitialized():5273:5273 -> a
    6:6:boolean hasType():5238:5238 -> a
    6:6:boolean isInitialized():5277 -> a
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():5248:5248 -> a
    7:7:boolean isInitialized():5278 -> a
    8:13:boolean isInitialized():5278:5283 -> 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:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder newBuilder():5385:5385 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder newBuilderForType():5386 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():5028 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5388 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder toBuilder():5390 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():5028 -> d
    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 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder toBuilder():5390 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():5028 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection getProjection():5225:5225 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():5248:5248 -> f
    1:1:int getTypeId():5263:5263 -> g
    1:1:boolean hasProjection():5219:5219 -> h
    1:1:boolean hasType():5238:5238 -> i
    1:1:boolean hasTypeId():5257:5257 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument getDefaultInstance():5041:5041 -> k
    1:3:void initFields():5267:5269 -> l
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$1 -> com.android.tools.r8.z.b.a.b.a.Q:
    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.z.b.a.b.a.S:
    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:4: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:5462 -> a
    5:6: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
    5:6: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):5462 -> a
    7:7: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
    7: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):5462 -> a
    8:9: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):5464:5465 -> a
    10: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):5598:5600 -> a
    10: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:13: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
    13:13: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
    13:13: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
    13:13: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
    14:14: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
    14:14: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
    14:14: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
    15:21: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
    15: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):5465 -> 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):5467:5468 -> a
    24:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder setTypeId(int):5640:5641 -> a
    24:25: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
    26:26: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
    27:33: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
    27: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):5395 -> a
    34:38: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
    34:38: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
    39:39:boolean hasType():5548:5548 -> a
    39:39:boolean isInitialized():5476 -> a
    40:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():5558:5558 -> a
    40:40:boolean isInitialized():5477 -> a
    41:41:boolean isInitialized():5477:5477 -> 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:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument buildPartial():5440:5455 -> e
    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
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection -> com.android.tools.r8.z.b.a.b.a.T:
    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
    int value -> a
    1:13:void <clinit>():5146:5158 -> <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.z.b.a.b.a.V:
    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:6: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:6328 -> a
    7:9:void ensureArgumentIsMutable():6434:6436 -> a
    7:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6330 -> a
    10:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6331:6336 -> a
    16:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setNullable(boolean):6573:6574 -> a
    16: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):6336 -> 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):6338:6339 -> a
    20:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setFlexibleTypeCapabilitiesId(int):6620:6621 -> 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):6339 -> a
    22:23: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
    24: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):6679:6681 -> a
    24: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: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():6183:6183 -> 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 -> a
    27:27: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
    27:27: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
    28:28: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
    28:28: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
    28:28: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
    29:35: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
    29: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):6342 -> 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):6344:6345 -> a
    38:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setFlexibleUpperBoundId(int):6717:6718 -> 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):6345 -> 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):6347:6348 -> a
    42:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setClassName(int):6749:6750 -> 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):6348 -> 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):6350:6351 -> a
    46:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setTypeParameter(int):6793:6794 -> 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):6351 -> 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):6353:6354 -> a
    50:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setTypeParameterName(int):6841:6842 -> 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):6354 -> 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):6356:6357 -> a
    54:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setTypeAliasName(int):6892:6893 -> 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):6357 -> a
    56:57: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
    58: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):6971:6973 -> a
    58: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:61: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
    61:61: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
    61:61: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
    61:61: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
    62:62: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
    62:62: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
    62:62: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
    63:69: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
    63: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):6360 -> 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):6362:6363 -> a
    72:73:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setOuterTypeId(int):7013:7014 -> 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):6363 -> a
    74:75: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
    76: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):7067:7069 -> a
    76: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:79: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
    79:79: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
    79:79: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
    79:79: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
    80:80: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
    80:80: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
    80:80: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
    81:87: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
    81: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):6366 -> 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):6368:6369 -> a
    90:91:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setAbbreviatedTypeId(int):7105:7106 -> 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):6369 -> 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):6371:6372 -> a
    94:95:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setFlags(int):7149:7150 -> 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):6372 -> a
    96:97: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
    98:104: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
    98:104: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
    105:109: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
    105:109: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
    110:110:int getArgumentCount():6450:6450 -> a
    110:110:boolean isInitialized():6381 -> a
    111:111:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument getArgument(int):6456:6456 -> a
    111:111:boolean isInitialized():6382 -> a
    112:112:boolean isInitialized():6382:6382 -> a
    113:113:boolean hasFlexibleUpperBound():6645:6645 -> a
    113:113:boolean isInitialized():6387 -> a
    114:114:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getFlexibleUpperBound():6651:6651 -> a
    114:114:boolean isInitialized():6388 -> a
    115:115:boolean isInitialized():6388:6388 -> a
    116:116:boolean hasOuterType():6921:6921 -> a
    116:116:boolean isInitialized():6393 -> a
    117:117:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getOuterType():6931:6931 -> a
    117:117:boolean isInitialized():6394 -> a
    118:118:boolean isInitialized():6394:6394 -> a
    119:119:boolean hasAbbreviatedType():7033:7033 -> a
    119:119:boolean isInitialized():6399 -> a
    120:120:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getAbbreviatedType():7039:7039 -> a
    120:120:boolean isInitialized():6400 -> a
    121:126:boolean isInitialized():6400:6405 -> 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
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type build():6251:6252 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():6193 -> 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 build():6253 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():6193 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type build():6253:6253 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():6193 -> 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:61:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type buildPartial():6259:6319 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder create():6206:6206 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder access$5700():6193 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias -> com.android.tools.r8.z.b.a.b.a.Z:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    int expandedTypeId_ -> j
    int underlyingTypeId_ -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias defaultInstance -> n
    int flags_ -> d
    int name_ -> e
    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 -> o
    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:385:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):19020:19402 -> <init>
    386:386:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):19021:19021 -> <init>
    387:766:void <init>(boolean):19023:19402 -> <init>
    767:767:void <init>(boolean):19023:19023 -> <init>
    768:1132:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19038:19402 -> <init>
    1133:1235: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>
    1236:1239: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>
    1240:1243: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>
    1244:1245: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>
    1246:1254: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>
    1255:1256: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>
    1257:1265: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>
    1266:1269: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>
    1270:1271: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>
    1272:1359: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>
    1360:1381: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>
    1382:1397: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: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:11:boolean isInitialized():19413:19414 -> a
    12:12:boolean hasUnderlyingType():19268:19268 -> a
    12:12:boolean isInitialized():19418 -> a
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getUnderlyingType():19274:19274 -> a
    13:13:boolean isInitialized():19419 -> a
    14:15:boolean isInitialized():19419:19420 -> a
    16:16:boolean hasExpandedType():19298:19298 -> a
    16:16:boolean isInitialized():19424 -> a
    17:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getExpandedType():19304:19304 -> a
    17:17:boolean isInitialized():19425 -> a
    18:19:boolean isInitialized():19425:19426 -> a
    20:20:int getAnnotationCount():19341:19341 -> a
    20:20:boolean isInitialized():19430 -> a
    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getAnnotation(int):19347:19347 -> a
    21:21:boolean isInitialized():19431 -> a
    22:31:boolean isInitialized():19431:19440 -> 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:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder newBuilder():19594:19594 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder newBuilderForType():19595 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():19013 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19597 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder toBuilder():19599 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():19013 -> d
    4:4: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 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder toBuilder():19599 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():19013 -> d
    1:1:int access$18902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,int):19013:19013 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getExpandedType():19304:19304 -> g
    1:1:int getExpandedTypeId():19319:19319 -> h
    1:1:int getFlags():19209:19209 -> i
    1:1:int getName():19224:19224 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getUnderlyingType():19274:19274 -> k
    1:1:int getUnderlyingTypeId():19289:19289 -> l
    1:1:boolean hasExpandedType():19298:19298 -> m
    1:1:boolean hasExpandedTypeId():19313:19313 -> n
    1:1:boolean hasFlags():19198:19198 -> o
    1:1:boolean hasName():19218:19218 -> p
    1:1:boolean hasUnderlyingType():19268:19268 -> q
    1:1:boolean hasUnderlyingTypeId():19283:19283 -> r
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getDefaultInstance():19027:19027 -> s
    1:9:void initFields():19392:19400 -> t
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$1 -> com.android.tools.r8.z.b.a.b.a.X:
    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.z.b.a.b.a.Y:
    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:14: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:19717 -> a
    15:17:void ensureTypeParameterIsMutable():19904:19906 -> a
    15:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19719 -> a
    18:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19720:19725 -> a
    24: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):20065:20067 -> a
    24: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():6183:6183 -> 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 -> 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:28: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
    28:28: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
    28:28: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
    29:35: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
    29:35: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
    36:37: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
    38:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setUnderlyingTypeId(int):20103:20104 -> a
    38:39: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
    40:41: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
    42: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):20157:20159 -> a
    42: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():6183:6183 -> 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 -> 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:46: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
    46:46: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
    46:46: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
    47:53: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
    47:53: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
    54:55: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
    56:57:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setExpandedTypeId(int):20195:20196 -> a
    56:57: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
    58:61: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:19739 -> a
    62:64:void ensureAnnotationIsMutable():20213:20215 -> a
    62:64:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19741 -> a
    65:72:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19742:19749 -> a
    73:75:void ensureVersionRequirementIsMutable():20337:20339 -> a
    73:75:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19751 -> a
    76:81:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19752:19757 -> a
    82:88: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
    82:88: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
    89:93: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
    89:93: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
    94:94:boolean hasName():19874:19874 -> a
    94:94:boolean isInitialized():19763 -> a
    95:95:int getTypeParameterCount():19920:19920 -> a
    95:95:boolean isInitialized():19767 -> a
    96:96:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):19926:19926 -> a
    96:96:boolean isInitialized():19768 -> a
    97:97:boolean isInitialized():19768:19768 -> a
    98:98:boolean hasUnderlyingType():20031:20031 -> a
    98:98:boolean isInitialized():19773 -> a
    99:99:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getUnderlyingType():20037:20037 -> a
    99:99:boolean isInitialized():19774 -> a
    100:100:boolean isInitialized():19774:19774 -> a
    101:101:boolean hasExpandedType():20123:20123 -> a
    101:101:boolean isInitialized():19779 -> a
    102:102:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getExpandedType():20129:20129 -> a
    102:102:boolean isInitialized():19780 -> a
    103:103:boolean isInitialized():19780:19780 -> a
    104:104:int getAnnotationCount():20229:20229 -> a
    104:104:boolean isInitialized():19785 -> a
    105:105:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getAnnotation(int):20235:20235 -> a
    105:105:boolean isInitialized():19786 -> a
    106:111:boolean isInitialized():19786:19791 -> 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
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias build():19652:19653 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():19604 -> 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$TypeAlias build():19654 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():19604 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias build():19654:19654 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():19604 -> 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:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias buildPartial():19660:19702 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder create():19617:19617 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder access$17800():19604 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter -> com.android.tools.r8.z.b.a.b.a.d0:
    byte memoizedIsInitialized -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter defaultInstance -> k
    boolean reified_ -> f
    java.util.List upperBoundId_ -> i
    int id_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance variance_ -> g
    java.util.List upperBound_ -> h
    int name_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> l
    int bitField0_ -> c
    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:331:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):7257:7585 -> <init>
    332:332:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):7258:7258 -> <init>
    333:658:void <init>(boolean):7260:7585 -> <init>
    659:659:void <init>(boolean):7260:7260 -> <init>
    660:970:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7275:7585 -> <init>
    971:1046: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>
    1047:1050: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>
    1051:1054: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>
    1055:1062: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>
    1063:1064: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>
    1065:1066: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>
    1067:1127: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>
    1128:1146: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>
    1147:1159: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
    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:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder newBuilder():7751:7751 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder newBuilderForType():7752 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():7250 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7754 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder toBuilder():7756 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():7250 -> d
    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 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder toBuilder():7756 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():7250 -> d
    1:1:int getId():7471:7471 -> g
    1:1:int getName():7486:7486 -> h
    1:1:boolean getReified():7501:7501 -> i
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance getVariance():7516:7516 -> j
    1:1:boolean hasId():7465:7465 -> k
    1:1:boolean hasName():7480:7480 -> l
    1:1:boolean hasReified():7495:7495 -> m
    1:1:boolean hasVariance():7510:7510 -> n
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getDefaultInstance():7264:7264 -> o
    1:6:void initFields():7578:7583 -> p
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$1 -> com.android.tools.r8.z.b.a.b.a.a0:
    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.z.b.a.b.a.b0:
    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:16: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:7856 -> a
    17:18: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
    17:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7856 -> a
    19:19: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
    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7856 -> a
    20:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7858:7861 -> a
    24:26:void ensureUpperBoundIsMutable():8059:8061 -> a
    24:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7863 -> a
    27: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):7864:7871 -> a
    35:37:void ensureUpperBoundIdIsMutable():8183:8185 -> a
    35:37: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
    38:43: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
    44:50: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
    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):7761 -> a
    51:55: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
    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):7761 -> a
    56:56:boolean hasId():7930:7930 -> a
    56:56:boolean isInitialized():7885 -> a
    57:57:boolean hasName():7962:7962 -> a
    57:57:boolean isInitialized():7889 -> a
    58:58:int getUpperBoundCount():8075:8075 -> a
    58:58:boolean isInitialized():7893 -> a
    59:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getUpperBound(int):8081:8081 -> a
    59:59:boolean isInitialized():7894 -> a
    60:65:boolean isInitialized():7894:7899 -> 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
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter build():7803:7804 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():7761 -> 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$TypeParameter build():7805 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():7761 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter build():7805:7805 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():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:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter buildPartial():7811:7840 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder create():7774:7774 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder access$7600():7761 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance -> com.android.tools.r8.z.b.a.b.a.c0:
    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 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>
    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.z.b.a.b.a.g0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    java.util.List type_ -> c
    int firstNullable_ -> d
    int bitField0_ -> b
    byte memoizedIsInitialized -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable defaultInstance -> f
    1:487:void <clinit>():12806:13292 -> <clinit>
    488:489:void initFields():12883:12884 -> <clinit>
    488:489:void <clinit>():13293 -> <clinit>
    490:490:void initFields():12883:12883 -> <clinit>
    490:490: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:158:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):12731:12886 -> <init>
    159:159:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):12732:12732 -> <init>
    160:312:void <init>(boolean):12734:12886 -> <init>
    313:313:void <init>(boolean):12734:12734 -> <init>
    314:451:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12749:12886 -> <init>
    452:484: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>
    485:501: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>
    502:517: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>
    518:525: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
    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:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder():12993:12993 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilderForType():12994 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():12725 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder toBuilder():12998 -> d
    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 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder toBuilder():12998 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder():12993:12993 -> d
    3:3: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 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder toBuilder():12998 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():12725 -> d
    4:4: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 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder toBuilder():12998 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():12725 -> d
    1:1:int getFirstNullable():12879:12879 -> e
    1:1:boolean hasFirstNullable():12868:12868 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getDefaultInstance():12738:12738 -> g
    1:2:void initFields():12883:12884 -> h
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$1 -> com.android.tools.r8.z.b.a.b.a.e0:
    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.z.b.a.b.a.f0:
    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:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable buildPartial():13046:13058 -> e
    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
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter -> com.android.tools.r8.z.b.a.b.a.j0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter defaultInstance -> k
    byte memoizedIsInitialized -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    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
    int flags_ -> d
    int name_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> l
    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:236:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):18054:18287 -> <init>
    237:237:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):18055:18055 -> <init>
    238:468:void <init>(boolean):18057:18287 -> <init>
    469:469:void <init>(boolean):18057:18057 -> <init>
    470:685:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18072:18287 -> <init>
    686:751: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>
    752:753: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>
    754:762: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>
    763:771: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>
    772:773: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>
    774:824: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>
    825:837: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>
    838:844: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:6:boolean isInitialized():18294:18294 -> a
    7:7:boolean hasType():18225:18225 -> a
    7:7:boolean isInitialized():18297 -> a
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():18231:18231 -> a
    8:8:boolean isInitialized():18298 -> a
    9:10:boolean isInitialized():18298:18299 -> a
    11:11:boolean hasVarargElementType():18255:18255 -> a
    11:11:boolean isInitialized():18303 -> a
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getVarargElementType():18261:18261 -> a
    12:12:boolean isInitialized():18304 -> a
    13:22:boolean isInitialized():18304:18313 -> 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:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder():18441:18441 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilderForType():18442 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():18047 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18444 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder toBuilder():18446 -> d
    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 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder toBuilder():18446 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder():18441:18441 -> d
    4:4: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 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder toBuilder():18446 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():18047 -> d
    5:5: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 -> d
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder toBuilder():18446 -> d
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():18047 -> d
    1:1:int access$17502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,int):18047:18047 -> e
    1:1:int getFlags():18201:18201 -> g
    1:1:int getName():18216:18216 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():18231:18231 -> i
    1:1:int getTypeId():18246:18246 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getVarargElementType():18261:18261 -> k
    1:1:int getVarargElementTypeId():18276:18276 -> l
    1:1:boolean hasFlags():18188:18188 -> m
    1:1:boolean hasName():18210:18210 -> n
    1:1:boolean hasType():18225:18225 -> o
    1:1:boolean hasTypeId():18240:18240 -> p
    1:1:boolean hasVarargElementType():18255:18255 -> q
    1:1:boolean hasVarargElementTypeId():18270:18270 -> r
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getDefaultInstance():18061:18061 -> s
    1:6:void initFields():18280:18285 -> t
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$1 -> com.android.tools.r8.z.b.a.b.a.h0:
    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.z.b.a.b.a.i0:
    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:61:boolean hasName():18666:18666 -> a
    61:61:boolean isInitialized():18559 -> a
    62:62:boolean hasType():18698:18698 -> a
    62:62:boolean isInitialized():18563 -> a
    63:63:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():18704:18704 -> a
    63:63:boolean isInitialized():18564 -> a
    64:64:boolean isInitialized():18564:18564 -> a
    65:65:boolean hasVarargElementType():18790:18790 -> a
    65:65:boolean isInitialized():18569 -> a
    66:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getVarargElementType():18796:18796 -> a
    66:66:boolean isInitialized():18570 -> a
    67:72:boolean isInitialized():18570:18575 -> 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
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter build():18493:18494 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():18451 -> 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$ValueParameter build():18495 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():18451 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter build():18495:18495 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():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:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter buildPartial():18501:18528 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder create():18464:18464 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder access$16700():18451 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement -> com.android.tools.r8.z.b.a.b.a.o0:
    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
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement defaultInstance -> j
    int errorCode_ -> f
    int message_ -> g
    int versionFull_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind versionKind_ -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> k
    int bitField0_ -> b
    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:406:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):20930:21333 -> <init>
    407:407:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):20931:20931 -> <init>
    408:808:void <init>(boolean):20933:21333 -> <init>
    809:809:void <init>(boolean):20933:20933 -> <init>
    810:1195:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20948:21333 -> <init>
    1196:1258: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>
    1259:1260: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>
    1261:1262: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>
    1263:1270: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>
    1271:1272: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>
    1273:1321: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>
    1322:1334: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>
    1335:1339: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
    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:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder newBuilder():21462:21462 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder newBuilderForType():21463 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():20924 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21465 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder toBuilder():21467 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():20924 -> d
    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 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder toBuilder():21467 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():20924 -> d
    1:1:int access$20602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,int):20924:20924 -> e
    2:2:int getErrorCode():21274:21274 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level getLevel():21251:21251 -> f
    1:1:int getMessage():21297:21297 -> g
    1:1:int getVersion():21203:21203 -> h
    1:1:int getVersionFull():21228:21228 -> i
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind getVersionKind():21322:21322 -> j
    1:1:boolean hasErrorCode():21264:21264 -> k
    1:1:boolean hasLevel():21241:21241 -> l
    1:1:boolean hasMessage():21287:21287 -> m
    1:1:boolean hasVersion():21191:21191 -> n
    1:1:boolean hasVersionFull():21217:21217 -> o
    1:1:boolean hasVersionKind():21311:21311 -> p
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement getDefaultInstance():20937:20937 -> q
    1:6:void initFields():21326:21331 -> r
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$1 -> com.android.tools.r8.z.b.a.b.a.k0:
    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.z.b.a.b.a.l0:
    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
    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
    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
    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:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement buildPartial():21523:21550 -> e
    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
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level -> com.android.tools.r8.z.b.a.b.a.m0:
    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>
    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.z.b.a.b.a.n0:
    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
    int value -> a
    1:9:void <clinit>():21121:21129 -> <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.z.b.a.b.a.r0:
    java.util.List requirement_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    byte memoizedIsInitialized -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable defaultInstance -> d
    1:378:void <clinit>():22020:22397 -> <clinit>
    379:379:void initFields():22071:22071 -> <clinit>
    379:379: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:126:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):21950:22073 -> <init>
    127:127:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):21951:21951 -> <init>
    128:248:void <init>(boolean):21953:22073 -> <init>
    249:249:void <init>(boolean):21953:21953 -> <init>
    250:355:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21968:22073 -> <init>
    356:391: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>
    392:407: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>
    408:415: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
    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:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder():22167:22167 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilderForType():22168 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():21944 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22170 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder toBuilder():22172 -> d
    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 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder toBuilder():22172 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder():22167:22167 -> d
    3:3: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 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder toBuilder():22172 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():21944 -> d
    4:4: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 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder toBuilder():22172 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():21944 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable getDefaultInstance():21957:21957 -> e
    1:1:void initFields():22071:22071 -> f
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$1 -> com.android.tools.r8.z.b.a.b.a.p0:
    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.z.b.a.b.a.q0:
    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:6: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:22233 -> a
    7:9:void ensureRequirementIsMutable():22271:22273 -> a
    7:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22235 -> a
    10:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22236:22240 -> a
    15:21: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
    15: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):22177 -> a
    22:26: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
    22:26: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
    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:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable buildPartial():22218:22224 -> e
    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
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.BinaryVersion -> com.android.tools.r8.z.b.a.b.a.s0.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.jvm.JvmProtoBuf -> com.android.tools.r8.z.b.a.b.a.t0.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.z.b.a.b.a.t0.a:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature -> com.android.tools.r8.z.b.a.b.a.t0.d:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> g
    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 -> 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:130:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2600:2727 -> <init>
    131:131:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2601:2601 -> <init>
    132:256:void <init>(boolean):2603:2727 -> <init>
    257:257:void <init>(boolean):2603:2603 -> <init>
    258:367:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2618:2727 -> <init>
    368:397: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>
    398:412: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>
    413:425: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>
    426:430: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
    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:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder():2828:2828 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilderForType():2829 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():2594 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2831 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder toBuilder():2833 -> d
    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 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder toBuilder():2833 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder():2828:2828 -> d
    3:3: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 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder toBuilder():2833 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2594 -> d
    4:4: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 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder toBuilder():2833 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2594 -> d
    1:1:int getDesc():2720:2720 -> e
    1:1:int getName():2697:2697 -> f
    1:1:boolean hasDesc():2710:2710 -> g
    1:1:boolean hasName():2691:2691 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature getDefaultInstance():2607:2607 -> i
    1:2:void initFields():2724:2725 -> j
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$1 -> com.android.tools.r8.z.b.a.b.a.t0.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.z.b.a.b.a.t0.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
    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
    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:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature buildPartial():2881:2892 -> e
    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
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature -> com.android.tools.r8.z.b.a.b.a.t0.g:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature defaultInstance -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    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:130:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2138:2265 -> <init>
    131:131:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2139:2139 -> <init>
    132:256:void <init>(boolean):2141:2265 -> <init>
    257:257:void <init>(boolean):2141:2141 -> <init>
    258:367:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2156:2265 -> <init>
    368:397: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>
    398:412: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>
    413:425: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>
    426:430: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
    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:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder():2366:2366 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilderForType():2367 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():2132 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder toBuilder():2371 -> d
    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 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder toBuilder():2371 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder():2366:2366 -> d
    3:3: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 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder toBuilder():2371 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2132 -> d
    4:4: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 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder toBuilder():2371 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2132 -> d
    1:1:int getDesc():2258:2258 -> e
    1:1:int getName():2235:2235 -> f
    1:1:boolean hasDesc():2248:2248 -> g
    1:1:boolean hasName():2229:2229 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getDefaultInstance():2145:2145 -> i
    1:2:void initFields():2262:2263 -> j
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$1 -> com.android.tools.r8.z.b.a.b.a.t0.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.z.b.a.b.a.t0.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
    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
    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:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature buildPartial():2419:2430 -> e
    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
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature -> com.android.tools.r8.z.b.a.b.a.t0.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.metadata.jvm.JvmProtoBuf$JvmPropertySignature defaultInstance -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    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 -> i
    byte memoizedIsInitialized -> g
    1:596:void <clinit>():3191:3786 -> <clinit>
    597:600:void initFields():3276:3279 -> <clinit>
    597:600:void <clinit>():3787 -> <clinit>
    601:601:void initFields():3276:3276 -> <clinit>
    601:601: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:204:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):3080:3281 -> <init>
    205:205:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):3081:3081 -> <init>
    206:404:void <init>(boolean):3083:3281 -> <init>
    405:405:void <init>(boolean):3083:3083 -> <init>
    406:589:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3098:3281 -> <init>
    590:661: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>
    662:670: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>
    671:679: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>
    680:735: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>
    736:748: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>
    749:753: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
    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:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder newBuilder():3396:3396 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder newBuilderForType():3397 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():3074 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3399 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder toBuilder():3401 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():3074 -> d
    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 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder toBuilder():3401 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():3074 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature getField():3219:3219 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getGetter():3257:3257 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getSetter():3272:3272 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getSyntheticMethod():3242:3242 -> h
    1:1:boolean hasField():3213:3213 -> i
    1:1:boolean hasGetter():3251:3251 -> j
    1:1:boolean hasSetter():3266:3266 -> k
    1:1:boolean hasSyntheticMethod():3232:3232 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature getDefaultInstance():3087:3087 -> m
    1:4:void initFields():3276:3279 -> n
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$1 -> com.android.tools.r8.z.b.a.b.a.t0.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.z.b.a.b.a.t0.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
    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
    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
    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:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature buildPartial():3453:3472 -> e
    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
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes -> com.android.tools.r8.z.b.a.b.a.t0.q:
    java.util.List record_ -> 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
    java.util.List localName_ -> c
    byte memoizedIsInitialized -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes defaultInstance -> e
    1:1923:void <clinit>():170:2092 -> <clinit>
    1924:1925:void initFields():1633:1634 -> <clinit>
    1924:1925:void <clinit>():2093 -> <clinit>
    1926:1926:void initFields():1633:1633 -> <clinit>
    1926:1926: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:1563:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):76:1636 -> <init>
    1564:1564:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):77:77 -> <init>
    1565:3122:void <init>(boolean):79:1636 -> <init>
    3123:3123:void <init>(boolean):79:79 -> <init>
    3124:4666:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):94:1636 -> <init>
    4667:4715: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>
    4716:4719: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>
    4720:4752: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>
    4753:4771: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>
    4772:4782: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
    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:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder newBuilder():1751:1751 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder newBuilderForType():1752 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():70 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):1754 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder toBuilder():1756 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():70 -> d
    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 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder toBuilder():1756 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():70 -> d
    1:1:java.util.List getLocalNameList():1608:1608 -> e
    1:1:java.util.List getRecordList():1568:1568 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes getDefaultInstance():83:83 -> g
    1:2:void initFields():1633:1634 -> h
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$1 -> com.android.tools.r8.z.b.a.b.a.t0.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.z.b.a.b.a.t0.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:6: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:1824 -> a
    7:9:void ensureRecordIsMutable():1872:1874 -> a
    7:9: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):1826 -> a
    10:17: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):1827:1834 -> a
    18:20:void ensureLocalNameIsMutable():1996:1998 -> a
    18:20: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):1836 -> a
    21:25: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):1837:1841 -> a
    26:32: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
    26:32: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
    33:37: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
    33:37: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
    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
    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:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes buildPartial():1804:1815 -> e
    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
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record -> com.android.tools.r8.z.b.a.b.a.t0.p:
    byte memoizedIsInitialized -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    java.lang.Object string_ -> e
    int predefinedIndex_ -> d
    java.util.List replaceChar_ -> h
    java.util.List substringIndex_ -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> k
    int bitField0_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation operation_ -> f
    int range_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record defaultInstance -> j
    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:449:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):334:780 -> <init>
    450:450:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):335:335 -> <init>
    451:894:void <init>(boolean):337:780 -> <init>
    895:895:void <init>(boolean):337:337 -> <init>
    896:1324:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):352:780 -> <init>
    1325:1414: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>
    1415:1424: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>
    1425:1428: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>
    1429:1438: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>
    1439:1442: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>
    1443:1450: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>
    1451:1452: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>
    1453:1527: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>
    1528:1546: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>
    1547:1557: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
    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:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder():937:937 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilderForType():938 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():328 -> 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 newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):940 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder toBuilder():942 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():328 -> d
    3:3: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 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder toBuilder():942 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():328 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation getOperation():690:690 -> e
    1:1:int getPredefinedIndex():613:613 -> f
    1:1:int getRange():590:590 -> g
    1:1:boolean hasOperation():680:680 -> h
    1:1:boolean hasPredefinedIndex():603:603 -> i
    1:1:boolean hasRange():580:580 -> j
    1:1:boolean hasString():626:626 -> k
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record getDefaultInstance():341:341 -> l
    1:6:void initFields():773:778 -> m
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$1 -> com.android.tools.r8.z.b.a.b.a.t0.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.z.b.a.b.a.t0.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
    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
    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:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record buildPartial():998:1027 -> e
    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
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation -> com.android.tools.r8.z.b.a.b.a.t0.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 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>
    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.z.b.a.b.a.t0.s.a:
    boolean $assertionsDisabled -> a
    1:13:void <clinit>():15:27 -> <clinit>
    1:4:byte[] decodeBytes(java.lang.String[]):179:182 -> a
    5:82:byte[] com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.UtfEncodingKt.stringsToBytes(java.lang.String[]):0:77 -> a
    5:82:byte[] decodeBytes(java.lang.String[]):182 -> a
    83:93:byte[] com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.UtfEncodingKt.stringsToBytes(java.lang.String[]):59:69 -> a
    83:93:byte[] decodeBytes(java.lang.String[]):182 -> a
    94:94:byte[] decodeBytes(java.lang.String[]):185:185 -> a
    95:104:byte[] combineStringArrayIntoBytes(java.lang.String[]):210:219 -> a
    95:104:byte[] decodeBytes(java.lang.String[]):189 -> a
    105:105:void addModuloByte(byte[],int):115:115 -> a
    105:105:byte[] decodeBytes(java.lang.String[]):191 -> a
    106:122:byte[] decode7to8(byte[]):247:263 -> a
    106:122: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.JvmBytecodeBinaryVersion -> com.android.tools.r8.z.b.a.b.a.t0.s.b:
    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.JvmMetadataVersion -> com.android.tools.r8.z.b.a.b.a.t0.s.c:
    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.z.b.a.b.a.t0.s.d:
    java.util.List PREDEFINED_STRINGS -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes types -> a
    1:31:void <clinit>():78:108 -> <clinit>
    32:32:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.listOf(java.lang.Object[]):0:0 -> <clinit>
    32:32:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.listOf(java.lang.Object[]):0 -> <clinit>
    32:32:void <clinit>():78 -> <clinit>
    33:33:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(java.lang.Object[]):0:0 -> <clinit>
    33:33:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt.asList(java.lang.Object[]):0 -> <clinit>
    33:33:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.listOf(java.lang.Object[]):75 -> <clinit>
    33:33:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.listOf(java.lang.Object[]):0 -> <clinit>
    33:33:void <clinit>():78 -> <clinit>
    34:34:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysUtilJVM.asList(java.lang.Object[]):13:13 -> <clinit>
    34:34:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(java.lang.Object[]):127 -> <clinit>
    34:34:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt.asList(java.lang.Object[]):0 -> <clinit>
    34:34:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.listOf(java.lang.Object[]):75 -> <clinit>
    34:34:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.listOf(java.lang.Object[]):0 -> <clinit>
    34:34:void <clinit>():78 -> <clinit>
    35:35:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(java.lang.Object[]):127:127 -> <clinit>
    35:35:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt.asList(java.lang.Object[]):0 -> <clinit>
    35:35:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.listOf(java.lang.Object[]):75 -> <clinit>
    35:35:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.listOf(java.lang.Object[]):0 -> <clinit>
    35:35:void <clinit>():78 -> <clinit>
    36:69:void <clinit>():78:111 -> <clinit>
    70:109:int com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__IterablesKt.collectionSizeOrDefault(java.lang.Iterable,int):0:39 -> <clinit>
    70:109:int com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.collectionSizeOrDefault(java.lang.Iterable,int):0 -> <clinit>
    70:109:void <clinit>():117 -> <clinit>
    110:113:void <clinit>():117:120 -> <clinit>
    114:114:void <clinit>():111:111 -> <clinit>
    1:16:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes,java.lang.String[]):13:28 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmProtoBufUtil -> com.android.tools.r8.z.b.a.b.a.t0.s.e:
    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:1:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(java.lang.String[],java.lang.String[]):27:27 -> a
    2:34:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(byte[],java.lang.String[]):0:32 -> a
    2:34:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(java.lang.String[],java.lang.String[]):27 -> a
    35:35: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
    35:35:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(byte[],java.lang.String[]):32 -> a
    35:35:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(java.lang.String[],java.lang.String[]):27 -> a
    36:36:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(byte[],java.lang.String[]):32:32 -> a
    36:36:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(java.lang.String[],java.lang.String[]):27 -> a
    37:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver readNameResolver(java.io.InputStream,java.lang.String[]):52:52 -> a
    38:38: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
    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver readNameResolver(java.io.InputStream,java.lang.String[]):52 -> a
    39:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver readNameResolver(java.io.InputStream,java.lang.String[]):52:52 -> 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.protobuf.AbstractMessageLite -> com.android.tools.r8.z.b.a.b.b.c:
    1:1:void <init>():46:46 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite.newBuilderForType() -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite.toBuilder() -> d
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder -> com.android.tools.r8.z.b.a.b.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
    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.z.b.a.b.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.z.b.a.b.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.BoundedByteString -> com.android.tools.r8.z.b.a.b.b.g:
    int bytesLength -> f
    int bytesOffset -> e
    1:14:void <init>(byte[],int,int):64:77 -> <init>
    15:15:void <init>(byte[],int,int):72:72 -> <init>
    16:16:void <init>(byte[],int,int):69:69 -> <init>
    17:17:void <init>(byte[],int,int):66:66 -> <init>
    1:1:void copyToInternal(byte[],int,int,int):121:121 -> b
    2:2:int getOffsetIntoBytes():112:112 -> b
    2:2:void copyToInternal(byte[],int,int,int):121 -> b
    3:3:void copyToInternal(byte[],int,int,int):121:121 -> b
    1:1:int getOffsetIntoBytes():112:112 -> e
    1:1:java.util.Iterator iterator():47:47 -> iterator
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$ByteIterator iterator():130:130 -> iterator
    1:1:int size():107:107 -> size
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.BoundedByteString$1 -> com.android.tools.r8.z.b.a.b.b.e:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.BoundedByteString$BoundedByteIterator -> com.android.tools.r8.z.b.a.b.b.f:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.BoundedByteString this$0 -> c
    int limit -> b
    int position -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.BoundedByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.BoundedByteString$1):133:133 -> <init>
    2:4:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.BoundedByteString):138:140 -> <init>
    1:1:boolean hasNext():144:144 -> hasNext
    1:1:java.lang.Byte next():149:149 -> next
    1:1:java.lang.Object next():133 -> next
    1:4:byte nextByte():153:156 -> nextByte
    5:5:byte nextByte():154:154 -> nextByte
    1:1:void remove():160:160 -> remove
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString -> com.android.tools.r8.z.b.a.b.b.j:
    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 getTreeDepth() -> a
    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:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString concat(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):396:403 -> a
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString concat(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):399:399 -> a
    13:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString copyFrom(java.lang.Iterable):420:432 -> a
    26:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString balancedConcat(java.util.Iterator,int):442:450 -> a
    35:44:void copyTo(byte[],int,int,int):490:499 -> a
    45:45:void copyTo(byte[],int,int,int):495:495 -> a
    46:46:void copyTo(byte[],int,int,int):491:491 -> a
    47:47:void copyTo(byte[],int,int,int):488:488 -> a
    48:48:void copyTo(byte[],int,int,int):485:485 -> a
    49:49:void copyTo(byte[],int,int,int):482:482 -> a
    void copyToInternal(byte[],int,int,int) -> b
    boolean isBalanced() -> b
    int peekCachedHashCode() -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$Output newOutput():751:751 -> d
    1:1:java.lang.String toString():1019:1019 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$ByteIterator -> com.android.tools.r8.z.b.a.b.b.h:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$Output -> com.android.tools.r8.z.b.a.b.b.i:
    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.z.b.a.b.b.l:
    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:10:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeRawLittleEndian32(int):1246:1249 -> a
    7:10:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeFixed32NoTag(int):410 -> a
    7:10:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):258 -> a
    11:11:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):244:244 -> a
    12:13:void skipMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):286:287 -> a
    12:13:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):245 -> a
    14:17:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):246:249 -> a
    18:20:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):238:240 -> a
    21:22:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):232:233 -> a
    23:30:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeRawLittleEndian64(long):1256:1263 -> a
    23:30:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeFixed64NoTag(long):405 -> a
    23:30:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):234 -> a
    31:31:long readInt64():343:343 -> a
    31:31:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):226 -> a
    32:32:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):227:227 -> a
    33:36:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeRawVarint64(long):1221:1224 -> a
    33:36:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeUInt64NoTag(long):385 -> a
    33:36:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):228 -> a
    37:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.invalidWireType():99:99 -> a
    37:37:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):262 -> a
    38:38:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):262:262 -> a
    39:46: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
    47:47: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
    48:56: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
    57:58:void popLimit(int):1018:1019 -> a
    57:58: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
    59:59: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
    60:68: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
    69:70:void popLimit(int):1018:1019 -> a
    69:70: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
    71:71: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
    72:76: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:4:void skipRawBytes(int):1272:1274 -> d
    5:25:void skipRawBytesSlowPath(int):1289:1309 -> d
    5:25:void skipRawBytes(int):1276 -> d
    26:28:void skipRawBytesSlowPath(int):1291:1293 -> d
    26:28:void skipRawBytes(int):1276 -> d
    29:29:void skipRawBytesSlowPath(int):1286:1286 -> d
    29:29:void skipRawBytes(int):1276 -> d
    1:1:int readEnum():570:570 -> e
    2:23:byte[] readRawBytesSlowPath(int):1177:1198 -> e
    24:25:void refillBuffer(int):1081:1082 -> e
    24:25:void ensureAvailable(int):1068 -> e
    24:25:byte[] readRawBytesSlowPath(int):1203 -> e
    26:62:byte[] readRawBytesSlowPath(int):1204:1240 -> e
    63:82:byte[] readRawBytesSlowPath(int):1238:1257 -> e
    83:85:byte[] readRawBytesSlowPath(int):1185:1187 -> e
    1:1:float readFloat():333:333 -> f
    2:3:void refillBuffer(int):1081:1082 -> 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:20:java.lang.String readStringRequireUtf8():393:412 -> o
    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.invalidUtf8():120:120 -> o
    21:21:java.lang.String readStringRequireUtf8():410 -> o
    22:22: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.z.b.a.b.b.k:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream -> com.android.tools.r8.z.b.a.b.b.n:
    byte[] buffer -> a
    java.io.OutputStream output -> e
    int totalBytesWritten -> d
    int limit -> b
    int position -> c
    1:1:void <init>(java.io.OutputStream,byte[]):85:85 -> <init>
    2:35:void <init>(java.io.OutputStream,byte[]):56:89 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream newInstance(java.io.OutputStream,int):106:106 -> a
    2:2:void writeBytesNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):455:455 -> a
    3:3:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047:1047 -> a
    3:3:void writeBytesNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):456 -> a
    4:28:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1147:1171 -> a
    4:28:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> a
    4:28:void writeBytesNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):456 -> a
    29:34:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.writeTo(java.io.OutputStream,int,int):564:569 -> a
    29:34:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1171 -> a
    29:34:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> a
    29:34:void writeBytesNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):456 -> a
    35:35:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1173:1173 -> a
    35:35:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> a
    35:35:void writeBytesNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):456 -> a
    36:36:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.writeTo(java.io.OutputStream,int,int):565:565 -> a
    36:36:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1171 -> a
    36:36:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> a
    36:36:void writeBytesNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):456 -> a
    37:37:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.writeTo(java.io.OutputStream,int,int):562:562 -> a
    37:37:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1171 -> a
    37:37:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> a
    37:37:void writeBytesNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):456 -> a
    38:38:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.writeTo(java.io.OutputStream,int,int):559:559 -> a
    38:38:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1171 -> a
    38:38:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> a
    38:38:void writeBytesNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):456 -> a
    39:40:void flush():974:975 -> a
    41:46:void writeRawByte(byte):1032:1037 -> a
    41:46:void writeRawByte(int):1042 -> a
    1:9:void refreshBuffer():958:966 -> b
    10:10:void refreshBuffer():960:960 -> b
    11:14:void writeRawVarint32(int):1195:1198 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream$OutOfSpaceException -> com.android.tools.r8.z.b.a.b.b.m:
    1:1:void <init>():1016:1016 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite -> com.android.tools.r8.z.b.a.b.b.p:
    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.z.b.a.b.b.o:
    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.z.b.a.b.b.r:
    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:java.lang.Object getField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):224:224 -> a
    2:2:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):340:340 -> a
    3:3:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
    3:3:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):340 -> a
    4:4: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
    4:4:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):345 -> a
    5:5:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):345:345 -> a
    6:6:java.lang.Object getField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):224:224 -> a
    6:6:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):347 -> a
    7:13:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):350:356 -> a
    14:14:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):341:341 -> a
    15:32:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):373:390 -> a
    33:33:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):385:385 -> a
    34:34:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):381:381 -> a
    35:35:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):379:379 -> a
    36:36:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):378:378 -> a
    37:37:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):377:377 -> a
    38:38:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):376:376 -> a
    39:39:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):375:375 -> a
    40:69:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):374:403 -> a
    70:70:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):369:369 -> a
    71:78:boolean isInitialized():418:425 -> a
    79:80:boolean isInitialized(java.util.Map$Entry):435:436 -> a
    81:81: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
    81:81:boolean isInitialized(java.util.Map$Entry):436 -> a
    82:83:boolean isInitialized(java.util.Map$Entry):436:437 -> a
    84:84:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
    84:84:boolean isInitialized(java.util.Map$Entry):437 -> a
    85:99:boolean isInitialized(java.util.Map$Entry):439:453 -> a
    100:100:int getWireFormatForFieldType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):472:472 -> a
    101:106:void mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet):481:486 -> a
    107:110:java.lang.Object cloneIfMutable(java.lang.Object):491:494 -> a
    111: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):556:590 -> a
    146:146:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readSInt64():590:590 -> 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):575 -> 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):575:575 -> a
    148:148:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readSInt32():585:585 -> 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):574 -> a
    149:149: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
    150:150:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readSFixed64():580:580 -> a
    150:150: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
    151:151: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
    152:152:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readSFixed32():575:575 -> a
    152:152: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
    153:167: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
    168:168:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readUInt32():562:562 -> a
    168:168: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
    169:169: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
    170:181: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
    182:182: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
    183:185: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
    186:186: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
    187:187:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readFixed32():358:358 -> a
    187:187: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
    188:188: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
    189:189:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readFixed64():353:353 -> a
    189:189: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
    190:190: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
    191:191:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> a
    191:191: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
    192:192: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
    193:193:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readUInt64():338:338 -> a
    193:193: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
    194:194: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
    195:195:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt64():343:343 -> a
    195:195: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
    196:196: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
    197:197:float com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readFloat():333:333 -> a
    197:197: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
    198:198: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
    199:199:double com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readDouble():328:328 -> a
    199:199: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
    200:200: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
    1:5:void makeImmutable():107:111 -> b
    6:6:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):238:238 -> b
    7:7:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> b
    7:7:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):238 -> b
    8:18:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):239:249 -> b
    19:19: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
    19:19:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):249 -> b
    20:20:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):249:249 -> b
    21:34:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):240:253 -> b
    35:35: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
    35:35:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):253 -> b
    36:42:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):253:259 -> b
    43:49:void mergeFromField(java.util.Map$Entry):504:510 -> b
    50:50:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> b
    50:50:void mergeFromField(java.util.Map$Entry):510 -> b
    51:51:java.lang.Object getField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):224:224 -> b
    51:51:void mergeFromField(java.util.Map$Entry):511 -> b
    52:58:void mergeFromField(java.util.Map$Entry):513:519 -> b
    59:59: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
    59:59:void mergeFromField(java.util.Map$Entry):519 -> b
    60:60:void mergeFromField(java.util.Map$Entry):519:519 -> b
    61:61:java.lang.Object getField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):224:224 -> b
    61:61:void mergeFromField(java.util.Map$Entry):520 -> b
    62:65:void mergeFromField(java.util.Map$Entry):522:525 -> b
    66:66: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
    66:66:void mergeFromField(java.util.Map$Entry):525 -> b
    67:74:void mergeFromField(java.util.Map$Entry):525:532 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet emptySet():99:99 -> c
    1:1:java.lang.Object clone():50:50 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet newFieldSet():92:92 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet clone():134 -> clone
    3:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet clone():135:145 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet newFieldSet():92:92 -> d
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite -> com.android.tools.r8.z.b.a.b.b.q:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite -> com.android.tools.r8.z.b.a.b.b.x:
    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:24: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):540:546 -> a
    18:24: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
    25:25: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
    25:25: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
    25:25: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
    26:27: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
    26:27: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
    28:28:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readEnum():570:570 -> a
    28:28: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
    28:28: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
    29:29: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
    29:29: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
    30:30: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
    30:30: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
    30:30: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
    31:43: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
    31:43: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
    44:44: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
    44:44: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
    44:44: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
    45: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:571 -> a
    45: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:56: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
    56:56: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
    56:56: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
    57:94: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
    57:94: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
    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 -> a
    95:95: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
    95:95: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
    96:96: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
    96:96: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
    97:97: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
    97:97: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
    98:98:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
    98:98: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
    98:98: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
    99:102: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
    99:102: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
    103:103: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
    103:103: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
    103:103: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
    104: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):582:585 -> a
    104: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: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
    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):585 -> 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 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
    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:110:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getNumber():694:694 -> a
    110:110:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getNumber():830 -> a
    110:110: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
    110:110: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
    111:116: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
    111:116: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
    117:117:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readEnum():570:570 -> a
    117:117: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
    117:117: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
    118: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):597:597 -> a
    118: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.Internal$EnumLiteMap com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getEnumType():714:714 -> 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):597 -> 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:125: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
    120:125: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
    126:126:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeUInt32NoTag(int):489:489 -> a
    126:126: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
    126:126: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
    127: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):614:614 -> a
    127: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:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> 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):614 -> 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:132: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
    129:132: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
    133:133: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
    134:135: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
    136:138: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$Builder -> com.android.tools.r8.z.b.a.b.b.s:
    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
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString getUnknownFields():123:123 -> d
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder -> com.android.tools.r8.z.b.a.b.b.t:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet extensions -> b
    boolean extensionsIsMutable -> c
    1:3:void <init>():332:334 -> <init>
    1:3:void ensureExtensionsIsMutable():350:352 -> a
    1:3:void mergeExtensionFields(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage):495 -> a
    4:4:void mergeExtensionFields(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage):496:496 -> a
    5:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet buildExtensions():361:363 -> a
    5:7: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
    1:1:boolean extensionsAreInitialized():471:471 -> e
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage -> com.android.tools.r8.z.b.a.b.b.u:
    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
    1:1:boolean extensionsAreInitialized():233:233 -> e
    1:1:void makeExtensionsImmutable():261:261 -> f
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor -> com.android.tools.r8.z.b.a.b.b.v:
    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:5: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:683 -> <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.z.b.a.b.b.w:
    java.lang.Object defaultValue -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor descriptor -> d
    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:22: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:807 -> <init>
    23:23: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 singularToFieldSetType(java.lang.Object):885:885 -> 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 singularToFieldSetType(java.lang.Object):885 -> a
    3:4:java.lang.Object singularToFieldSetType(java.lang.Object):885:886 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal -> com.android.tools.r8.z.b.a.b.b.A:
    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.z.b.a.b.b.y:
    int getNumber() -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap -> com.android.tools.r8.z.b.a.b.b.z:
    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.z.b.a.b.b.B:
    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.LiteralByteString -> com.android.tools.r8.z.b.a.b.b.E:
    int hash -> d
    byte[] bytes -> c
    1:180:void <init>(byte[]):62:241 -> <init>
    181:181:void <init>(byte[]):63:63 -> <init>
    int getTreeDepth() -> a
    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
    boolean isBalanced() -> b
    1:1:void copyToInternal(byte[],int,int,int):117:117 -> b
    1:1:int peekCachedHashCode():266:266 -> c
    int getOffsetIntoBytes() -> e
    1:17:boolean equals(java.lang.Object):181:197 -> equals
    1:9:int hashCode():251:259 -> hashCode
    1:1:java.util.Iterator iterator():52:52 -> iterator
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$ByteIterator iterator():307:307 -> iterator
    1:1:int size():76:76 -> size
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString$1 -> com.android.tools.r8.z.b.a.b.b.C:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString$LiteralByteIterator -> com.android.tools.r8.z.b.a.b.b.D:
    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:1:boolean hasNext():320:320 -> hasNext
    1:1:java.lang.Byte next():325:325 -> next
    1:1:java.lang.Object next():310 -> next
    1:3:byte nextByte():330:332 -> nextByte
    1:1:void remove():337:337 -> remove
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLiteOrBuilder -> com.android.tools.r8.z.b.a.b.b.F:
    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.z.b.a.b.b.G:
    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.z.b.a.b.b.L:
    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:49:int getTreeDepth():277:277 -> a
    50:57:void writeToInternal(java.io.OutputStream,int,int):407:414 -> a
    58:65: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:8:boolean isBalanced():290:290 -> b
    9:17:void copyToInternal(byte[],int,int,int):360:368 -> b
    1:1:int peekCachedHashCode():562:562 -> c
    1:1:int[] access$600():70:70 -> 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:9:int hashCode():547:555 -> hashCode
    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 size():269:269 -> size
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$1 -> com.android.tools.r8.z.b.a.b.b.H:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$Balancer -> com.android.tools.r8.z.b.a.b.b.I:
    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.z.b.a.b.b.J:
    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:java.lang.Object next():716:716 -> next
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():761:761 -> next
    3:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString getNextNonEmptyLeaf():740:743 -> next
    3:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():765 -> next
    7:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString getLeafByLeft(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):728:733 -> next
    7:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString getNextNonEmptyLeaf():743 -> next
    7:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():765 -> next
    13:13:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.isEmpty():135:135 -> next
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString getNextNonEmptyLeaf():744 -> next
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():765 -> next
    14:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():765:765 -> next
    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():762:762 -> next
    1:1:void remove():770:770 -> remove
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$RopeByteIterator -> com.android.tools.r8.z.b.a.b.b.K:
    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:1:boolean hasNext():795:795 -> hasNext
    1:1:java.lang.Byte next():799:799 -> next
    1:1:java.lang.Object next():782 -> next
    1:5:byte nextByte():803:807 -> nextByte
    1:1:void remove():811:811 -> remove
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap -> com.android.tools.r8.z.b.a.b.b.Q:
    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:1:int getNumArrayEntries():180:180 -> f
    1:1:java.lang.Iterable getOverflowEntries():195:195 -> g
    1:6:java.lang.Object get(java.lang.Object):227:232 -> get
    1:1:boolean isImmutable():175:175 -> k
    1:9:void makeImmutable():161:169 -> l
    1:2:void checkMutable():364:365 -> m
    1:5:java.util.SortedMap getOverflowEntriesMutable():377:381 -> n
    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.z.b.a.b.b.M:
    1:1:void <init>(int):100:100 -> <init>
    1:5:void makeImmutable():104:108 -> l
    6:6:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> l
    6:6:void makeImmutable():108 -> l
    7:13:void makeImmutable():109:115 -> l
    14:14:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> l
    14:14:void makeImmutable():115 -> l
    15:20:void makeImmutable():116:121 -> l
    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.z.b.a.b.b.P:
    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.z.b.a.b.b.N:
    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.z.b.a.b.b.O:
    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.z.b.a.b.b.Q$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: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
    2:2:java.lang.Comparable getKey():416:416 -> getKey
    2:2: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.z.b.a.b.b.Q$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:4:java.util.Iterator getOverflowIterator():577:580 -> f
    1:1:boolean hasNext():540:540 -> hasNext
    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.z.b.a.b.b.Q$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.z.b.a.b.b.S:
    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.z.b.a.b.b.T:
    1:6:int incompleteStateFor(byte[],int,int):341:346 -> a
    7:7:int incompleteStateFor(byte[],int,int):344:344 -> a
    1:1:int partialIsValidUtf8(byte[],int,int):252:252 -> b
    1:1:boolean isValidUtf8(byte[],int,int):122 -> b
    2:38:int partialIsValidUtf8NonAscii(byte[],int,int):270:306 -> b
    2:38:int partialIsValidUtf8(byte[],int,int):256 -> b
    2:38:boolean isValidUtf8(byte[],int,int):122 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat -> com.android.tools.r8.z.b.a.b.b.b0:
    int makeTag(int,int) -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$1 -> com.android.tools.r8.z.b.a.b.b.U:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType -> com.android.tools.r8.z.b.a.b.b.Z:
    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.z.b.a.b.b.V:
    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.z.b.a.b.b.W:
    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.z.b.a.b.b.X:
    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.z.b.a.b.b.Y:
    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.z.b.a.b.b.a0:
    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.KotlinClassHeader -> com.android.tools.r8.z.b.a.c.a:
    int[] metadataVersion -> b
    java.lang.String[] data2 -> d
    int extraInt -> e
    java.lang.String[] data1 -> c
    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:java.lang.String[] getData1():67:67 -> a
    1:1:java.lang.String[] getData2():74:74 -> b
    1:1:int getExtraInt():95:95 -> c
    1:1:int getKind():44:44 -> d
    1:1:int[] getMetadataVersion():52:52 -> e
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata -> com.android.tools.r8.z.b.a.c.m:
    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.z.b.a.c.c:
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):29:30 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$classData$2 -> com.android.tools.r8.z.b.a.c.b:
    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.z.b.a.c.d:
    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.z.b.a.c.f:
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):84:85 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade$packageData$2 -> com.android.tools.r8.z.b.a.c.e:
    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.z.b.a.c.g:
    1:5:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):217:221 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart -> com.android.tools.r8.z.b.a.c.i:
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):260:261 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart$packageData$2 -> com.android.tools.r8.z.b.a.c.h:
    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.z.b.a.c.k:
    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.z.b.a.c.j:
    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.z.b.a.c.l:
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):324:324 -> <init>
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:5:boolean requiresArgument():301:301 -> equals
    5:5:boolean equals(java.lang.Object):322 -> equals
    6:6:boolean requiresArgument():301:301 -> equals
    6: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:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withOptionalArg():93:93 -> k
    2:2:java.lang.String description():60:60 -> k
    2:2:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withOptionalArg():93 -> k
    3:5:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withOptionalArg():93:95 -> k
    1:1:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withRequiredArg():80:80 -> l
    2:2:java.lang.String description():60:60 -> l
    2:2:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withRequiredArg():80 -> l
    3:5:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withRequiredArg():80:82 -> l
    1:1:void attachToParser():71:71 -> 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:3:boolean com.android.tools.r8.joptsimple.OptionParser.looksLikeAnOption(java.lang.String):471:471 -> a
    3:3:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):50 -> a
    4:4:void handleOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.joptsimple.ArgumentList):67:67 -> a
    4:4:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):51 -> a
    5:6:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):52:53 -> a
    7:7:void com.android.tools.r8.joptsimple.OptionSet.add(com.android.tools.r8.joptsimple.AbstractOptionSpec):259:259 -> a
    7:7:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):55 -> a
    8:8:boolean com.android.tools.r8.joptsimple.OptionParser.looksLikeAnOption(java.lang.String):471:471 -> a
    8:8:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):50 -> a
    9:9:void com.android.tools.r8.joptsimple.OptionSet.add(com.android.tools.r8.joptsimple.AbstractOptionSpec):259:259 -> a
    9:9: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.A.d:
    java.lang.String KOTLIN -> f
    com.android.tools.r8.kotlin.Kotlin$Functional functional -> b
    com.android.tools.r8.kotlin.Kotlin$Metadata metadata -> d
    com.android.tools.r8.kotlin.Kotlin$Intrinsics intrinsics -> c
    java.lang.String NAME -> e
    com.android.tools.r8.graph.DexItemFactory factory -> a
    1:5:void <clinit>():24:28 -> <clinit>
    1:6:void <init>(com.android.tools.r8.graph.DexItemFactory):40:45 -> <init>
    1:1:java.lang.String addKotlinPrefix(java.lang.String):31:31 -> a
    2:2:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):117:117 -> a
com.android.tools.r8.kotlin.Kotlin$1 -> com.android.tools.r8.A.a:
com.android.tools.r8.kotlin.Kotlin$Functional -> com.android.tools.r8.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>():48:48 -> <clinit>
    1:1:void <init>(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.kotlin.Kotlin$1):48:48 -> <init>
    2:2:void <init>(com.android.tools.r8.kotlin.Kotlin):66:66 -> <init>
    3:7:void <init>(com.android.tools.r8.kotlin.Kotlin):59:63 -> <init>
    8:8:void <init>(com.android.tools.r8.kotlin.Kotlin):61:61 -> <init>
    9:26:void <init>(com.android.tools.r8.kotlin.Kotlin):60:77 -> <init>
    27:27:void <init>(com.android.tools.r8.kotlin.Kotlin):75:75 -> <init>
    1:1:com.android.tools.r8.graph.DexType lambda$new$0(java.lang.Integer):62:62 -> a
    2:2:int getArity(com.android.tools.r8.graph.DexType):85:85 -> a
    3:3:boolean isFunctionInterface(com.android.tools.r8.graph.DexType):81:81 -> a
    3:3:int getArity(com.android.tools.r8.graph.DexType):85 -> a
    4:6:int getArity(com.android.tools.r8.graph.DexType):85:87 -> a
    1:1:boolean isFunctionInterface(com.android.tools.r8.graph.DexType):81:81 -> b
com.android.tools.r8.kotlin.Kotlin$Intrinsics -> com.android.tools.r8.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):104:107 -> <init>
    5:8:void <init>(com.android.tools.r8.kotlin.Kotlin):106:109 -> <init>
    9:13:void <init>(com.android.tools.r8.kotlin.Kotlin):108:112 -> <init>
    14:14:void <init>(com.android.tools.r8.kotlin.Kotlin):111:111 -> <init>
com.android.tools.r8.kotlin.Kotlin$Metadata -> com.android.tools.r8.A.d$a:
    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):91:100 -> <init>
com.android.tools.r8.kotlin.KotlinClass -> com.android.tools.r8.A.e:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():10:10 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class,com.android.tools.r8.graph.DexClass):20:20 -> <init>
    1:3:com.android.tools.r8.kotlin.KotlinClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.graph.DexClass):14:16 -> a
com.android.tools.r8.kotlin.KotlinClassFacade -> com.android.tools.r8.A.f:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade):19:19 -> <init>
    1:4:com.android.tools.r8.kotlin.KotlinClassFacade fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):12:15 -> a
com.android.tools.r8.kotlin.KotlinClassMetadataReader -> com.android.tools.r8.A.h:
    1:15:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):27:41 -> a
    16:16:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):39:39 -> a
    17:19:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):35:37 -> a
    20:20:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):35:35 -> a
    21:46:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexAnnotation):51:76 -> a
    47:47: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:0 -> a
    47:47:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexAnnotation):77 -> a
    48:389: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
    48:389: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
    48:389:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexAnnotation):77 -> a
    390: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):339:352 -> a
    390: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
    390: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.DexAnnotation):77 -> a
    404:404: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
    404:404: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:404:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexAnnotation):77 -> a
    405:405: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
    405:405: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
    405:405:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexAnnotation):77 -> a
    406:406: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
    406:406: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
    406:406:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexAnnotation):77 -> a
    407:407: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
    407:407: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
    407:407:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexAnnotation):77 -> a
    408:413: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
    408:413: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
    408:413:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexAnnotation):77 -> a
    414: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.DexAnnotation):79:90 -> 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):357:357 -> 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.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexAnnotation):77 -> a
    427:427: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
    427:427: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
    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.DexAnnotation):77 -> a
    428:428: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:0 -> a
    428:428: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
    428:428:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexAnnotation):77 -> a
    429:429:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexAnnotation):58:58 -> a
    430:437:int[] getUnboxedIntArray(com.android.tools.r8.graph.DexValue,java.lang.String):95:102 -> a
    438:438:int[] getUnboxedIntArray(com.android.tools.r8.graph.DexValue,java.lang.String):96:96 -> a
    1:4:java.lang.String getUnboxedString(com.android.tools.r8.graph.DexValue,java.lang.String):121:124 -> b
    5:5:java.lang.String getUnboxedString(com.android.tools.r8.graph.DexValue,java.lang.String):122:122 -> b
    1:8:java.lang.String[] getUnboxedStringArray(com.android.tools.r8.graph.DexValue,java.lang.String):108:115 -> c
    9:9:java.lang.String[] getUnboxedStringArray(com.android.tools.r8.graph.DexValue,java.lang.String):109:109 -> c
com.android.tools.r8.kotlin.KotlinClassMetadataReader$MetadataError -> com.android.tools.r8.A.g:
    1:1:void <init>(java.lang.String):129:129 -> <init>
com.android.tools.r8.kotlin.KotlinClassPart -> com.android.tools.r8.A.i:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart):19:19 -> <init>
    1:4:com.android.tools.r8.kotlin.KotlinClassPart fromKotlinClassMetdata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):12:15 -> a
com.android.tools.r8.kotlin.KotlinFile -> com.android.tools.r8.A.j:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade):19:19 -> <init>
    1:4:com.android.tools.r8.kotlin.KotlinFile fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):12:15 -> a
com.android.tools.r8.kotlin.KotlinInfo -> com.android.tools.r8.A.k:
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):17:17 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.graph.DexClass):20:20 -> <init>
    com.android.tools.r8.kotlin.KotlinSyntheticClass asSyntheticClass() -> a
    boolean isSyntheticClass() -> b
com.android.tools.r8.kotlin.KotlinSyntheticClass -> com.android.tools.r8.A.m:
    com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour flavour -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():10:10 -> <clinit>
    1:2:void <init>(com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass):34:35 -> <init>
    com.android.tools.r8.kotlin.KotlinSyntheticClass asSyntheticClass() -> a
    1:2: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):21:22 -> a
    3:3:boolean isKotlinStyleLambda(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):82:82 -> a
    3:3: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):24 -> a
    4:4: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):25:25 -> a
    5:7:boolean isJavaStyleLambda(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):95:97 -> a
    5: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):26 -> 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):27:29 -> a
    boolean isSyntheticClass() -> b
    1:1:boolean isJavaStyleLambda():56:56 -> c
    1:1:boolean isKotlinStyleLambda():52:52 -> d
com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour -> com.android.tools.r8.A.l:
    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>():12:14 -> <clinit>
    1:1:void <init>(java.lang.String,int):11:11 -> <init>
com.android.tools.r8.logging.Log -> com.android.tools.r8.B.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 mapperFromFile(java.nio.file.Path):76:76 -> a
    2:8:com.android.tools.r8.naming.ClassNameMapper mapperFromFile(java.nio.file.Path,com.android.tools.r8.naming.ClassNameMapper$MissingFileAction):81:87 -> a
    9:9:com.android.tools.r8.naming.ClassNameMapper mapperFromInputStream(java.io.InputStream):71:71 -> a
    9:9:com.android.tools.r8.naming.ClassNameMapper mapperFromFile(java.nio.file.Path,com.android.tools.r8.naming.ClassNameMapper$MissingFileAction):87 -> a
    10:14:com.android.tools.r8.naming.ClassNameMapper mapperFromBufferedReader(java.io.BufferedReader):96:100 -> a
    15:19:com.android.tools.r8.naming.ClassNameMapper mapperFromBufferedReader(java.io.BufferedReader):96:100 -> a
    20:23:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):126:129 -> a
    24:24:java.lang.String deobfuscateType(java.lang.String):158:158 -> a
    24:24:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):129 -> a
    25:27:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):129:131 -> a
    28:28:java.lang.String deobfuscateType(java.lang.String):158:158 -> a
    28:28:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):131 -> a
    29:29:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):133:133 -> a
    30:34:com.android.tools.r8.naming.MemberNaming$Signature canonicalizeSignature(com.android.tools.r8.naming.MemberNaming$Signature):117:121 -> a
    30:34:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):135 -> a
    35:35:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):135:135 -> a
    36:36:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):139:139 -> a
    37:37:java.lang.String deobfuscateType(java.lang.String):158:158 -> a
    37:37:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):139 -> a
    38:38:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):140:140 -> a
    39:43:com.android.tools.r8.naming.MemberNaming$Signature canonicalizeSignature(com.android.tools.r8.naming.MemberNaming$Signature):117:121 -> a
    39:43:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):140 -> a
    44:44:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):140:140 -> a
    45:49:java.lang.String deobfuscateClassName(java.lang.String):150:154 -> a
    50:54:void write(java.io.Writer):180:184 -> a
    55:55:java.lang.String lambda$write$0(com.android.tools.r8.naming.ClassNamingForNameMapper):182:182 -> a
    56:56:com.android.tools.r8.utils.BiMapContainer getObfuscatedToOriginalMapping():200:200 -> a
    57:57:com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder com.android.tools.r8.com.google.common.collect.ImmutableBiMap.builder():122:122 -> a
    57:57:com.android.tools.r8.utils.BiMapContainer getObfuscatedToOriginalMapping():201 -> a
    58:64:com.android.tools.r8.utils.BiMapContainer getObfuscatedToOriginalMapping():202:208 -> a
    65:72:java.lang.String originalNameOf(com.android.tools.r8.graph.IndexedDexItem):223:230 -> a
    73:82:java.lang.String lookupName(com.android.tools.r8.naming.MemberNaming$Signature,com.android.tools.r8.graph.DexType):235:244 -> a
    83:83:java.lang.String originalNameOf(com.android.tools.r8.graph.DexType):276:276 -> a
    84:84:java.lang.String deobfuscateType(java.lang.String):158:158 -> a
    84:84:java.lang.String originalNameOf(com.android.tools.r8.graph.DexType):276 -> a
    1:1:com.android.tools.r8.naming.ClassNameMapper$Builder builder():67:67 -> b
    2:2:com.android.tools.r8.naming.ClassNamingForNameMapper getClassNaming(java.lang.String):174:174 -> b
    3:13:com.android.tools.r8.naming.MemberNaming$MethodSignature originalSignatureOf(com.android.tools.r8.graph.DexMethod):248:258 -> b
    14:24: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:3:com.android.tools.r8.naming.ClassNamingForNameMapper$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):55:56 -> a
    4:4:com.android.tools.r8.naming.ClassNameMapper build():62:62 -> a
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.ClassNameMinifier:
    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>():38:38 -> <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):60:60 -> <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):46:77 -> <init>
    1:1:java.util.Set access$100(com.android.tools.r8.naming.ClassNameMinifier):38:38 -> a
    2:27:com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming computeRenaming(com.android.tools.r8.utils.Timing,java.util.Map):97:122 -> a
    28:51:com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming computeRenaming(com.android.tools.r8.utils.Timing,java.util.Map):118:141 -> a
    52:60:java.util.Map getPackageRenaming():145:153 -> a
    52:60:com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming computeRenaming(com.android.tools.r8.utils.Timing,java.util.Map):141 -> a
    61:61:com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming computeRenaming(com.android.tools.r8.utils.Timing,java.util.Map):141:141 -> a
    62:63:void renameDanglingTypes(com.android.tools.r8.graph.DexClass):157:158 -> a
    64:64:void renameDanglingTypesInField(com.android.tools.r8.graph.DexEncodedField):162:162 -> a
    65:68:void renameDanglingTypesInMethod(com.android.tools.r8.graph.DexEncodedMethod):166:169 -> a
    69:71:void registerClassAsUsed(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):185:187 -> a
    72:78:void registerPackagePrefixesAsUsed(java.lang.String):208:214 -> a
    72:78:void registerClassAsUsed(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):186 -> a
    79:87:void registerClassAsUsed(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):188:196 -> a
    88:94:com.android.tools.r8.graph.DexString computeName(com.android.tools.r8.graph.DexType):237:243 -> a
    95:95:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    95:95:com.android.tools.r8.graph.DexString computeName(com.android.tools.r8.graph.DexType):243 -> a
    96:104:com.android.tools.r8.graph.DexString computeName(com.android.tools.r8.graph.DexType):244:252 -> a
    105:121:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForOuterClass(com.android.tools.r8.graph.DexType,java.lang.String):317:333 -> a
    105:121:com.android.tools.r8.graph.DexString computeName(com.android.tools.r8.graph.DexType):254 -> a
    122:124:com.android.tools.r8.graph.DexString computeName(com.android.tools.r8.graph.DexType):258:260 -> a
    125:142:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForPackagePrefix(java.lang.String):294:311 -> a
    143:144:boolean isNotKotlinMetadata(com.android.tools.r8.graph.DexAnnotation):447:448 -> a
    1:1:com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy access$200(com.android.tools.r8.naming.ClassNameMinifier):38:38 -> b
    2:2:com.android.tools.r8.graph.DexType getOutClassForType(com.android.tools.r8.graph.DexType):219:219 -> b
    3:3:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> b
    3:3:com.android.tools.r8.graph.DexType getOutClassForType(com.android.tools.r8.graph.DexType):219 -> b
    4:8:com.android.tools.r8.graph.DexType getOutClassForType(com.android.tools.r8.graph.DexType):228:232 -> b
    9:9:com.android.tools.r8.naming.ClassNameMinifier$Namespace lambda$getStateForClass$0(java.lang.String):270:270 -> b
    1:1:java.util.Set access$300(com.android.tools.r8.naming.ClassNameMinifier):38:38 -> c
    2:22:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForClass(com.android.tools.r8.graph.DexType):264:284 -> c
    23:23:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForClass(com.android.tools.r8.graph.DexType):280:280 -> c
    24:24:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForClass(com.android.tools.r8.graph.DexType):276:276 -> c
    25:25:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForClass(com.android.tools.r8.graph.DexType):270:270 -> c
    26:27:com.android.tools.r8.naming.ClassNameMinifier$Namespace lambda$getStateForClass$1(java.lang.String):285:286 -> c
    1:1:com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy access$400(com.android.tools.r8.naming.ClassNameMinifier):38:38 -> d
    2:2:com.android.tools.r8.naming.ClassNameMinifier$Namespace lambda$getStateForPackagePrefix$2(java.lang.String):301:301 -> d
    3:7:void renameArrayTypeIfNeeded(com.android.tools.r8.graph.DexType):339:343 -> d
    8:8:int com.android.tools.r8.graph.DexString.numberOfLeadingSquareBrackets():108:108 -> d
    8:8:void renameArrayTypeIfNeeded(com.android.tools.r8.graph.DexType):343 -> d
    9:15:void renameArrayTypeIfNeeded(com.android.tools.r8.graph.DexType):344:350 -> d
    1:5:void renameDanglingType(com.android.tools.r8.graph.DexType):174:178 -> e
    6:6:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> e
    6:6:void renameDanglingType(com.android.tools.r8.graph.DexType):178 -> e
    7:9:void renameDanglingType(com.android.tools.r8.graph.DexType):178:180 -> e
    1:5:java.lang.String getParentPackagePrefix(java.lang.String):439:443 -> getParentPackagePrefix
com.android.tools.r8.naming.ClassNameMinifier$1 -> com.android.tools.r8.naming.ClassNameMinifier$a:
    int[] $SwitchMap$com$android$tools$r8$utils$InternalOptions$PackageObfuscationMode -> a
    1:1:void <clinit>():273:273 -> <clinit>
com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy -> com.android.tools.r8.naming.ClassNameMinifier$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.ClassNameMinifier$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):80:80 -> <init>
    2:4:void <init>(java.util.Map,java.util.Map):85:87 -> <init>
com.android.tools.r8.naming.ClassNameMinifier$Namespace -> com.android.tools.r8.naming.ClassNameMinifier$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>():355:355 -> <clinit>
    1:1:void <init>(com.android.tools.r8.naming.ClassNameMinifier,java.lang.String):363:363 -> <init>
    2:2:void <init>(com.android.tools.r8.naming.ClassNameMinifier,java.lang.String,java.lang.String):366:366 -> <init>
    3:15:void <init>(com.android.tools.r8.naming.ClassNameMinifier,java.lang.String,java.lang.String):359:371 -> <init>
    1:4:com.android.tools.r8.graph.DexString nextTypeName(com.android.tools.r8.graph.DexType):379:382 -> a
    5:5:int incrementDictionaryIndex():400:400 -> a
    6:7:int incrementNameIndex(boolean):405:406 -> a
    1:1:int getDictionaryIndex():395:395 -> b
    1:1:java.lang.String getPackageName():375:375 -> c
    1:1:java.lang.String nextPackagePrefix():387:387 -> 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):201:202 -> d
    2:3:java.lang.String nextPackagePrefix():387 -> d
    4:5:java.lang.String nextPackagePrefix():388:389 -> d
com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy -> com.android.tools.r8.naming.ClassNameMinifier$e:
com.android.tools.r8.naming.ClassNaming -> com.android.tools.r8.naming.c:
    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.c$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.e:
    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:8:com.android.tools.r8.naming.MemberNaming lookup(com.android.tools.r8.naming.MemberNaming$Signature):162:163 -> a
    9:9:com.android.tools.r8.naming.MemberNaming$Signature com.android.tools.r8.naming.MemberNaming.getRenamedSignature():79:79 -> a
    9:9:com.android.tools.r8.naming.MemberNaming lookup(com.android.tools.r8.naming.MemberNaming$Signature):164 -> a
    10:17:com.android.tools.r8.naming.MemberNaming lookup(com.android.tools.r8.naming.MemberNaming$Signature):164:171 -> a
    18:18:com.android.tools.r8.naming.MemberNaming$Signature com.android.tools.r8.naming.MemberNaming.getRenamedSignature():79:79 -> a
    18:18:com.android.tools.r8.naming.MemberNaming lookup(com.android.tools.r8.naming.MemberNaming$Signature):172 -> a
    19:19:com.android.tools.r8.naming.MemberNaming lookup(com.android.tools.r8.naming.MemberNaming$Signature):172: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.d:
com.android.tools.r8.naming.ClassNamingForMapApplier$Builder -> com.android.tools.r8.naming.e$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.f:
    com.android.tools.r8.com.google.common.collect.ImmutableMap fieldMembers -> d
    com.android.tools.r8.com.google.common.collect.ImmutableMap methodMembers -> c
    boolean $assertionsDisabled -> f
    java.lang.String originalName -> a
    java.util.Map mappedRangesByRenamedName -> e
    java.lang.String renamedName -> b
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(java.lang.String,java.lang.String,java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.naming.ClassNamingForNameMapper$1):28:28 -> <init>
    2:7:void <init>(java.lang.String,java.lang.String,java.util.Map,java.util.Map,java.util.Map):200:205 -> <init>
    1:1:com.android.tools.r8.naming.ClassNamingForNameMapper$Builder builder(java.lang.String,java.lang.String):177:177 -> a
    2:8:com.android.tools.r8.naming.MemberNaming lookup(com.android.tools.r8.naming.MemberNaming$Signature):210:216 -> a
    9:17:java.util.List lookupByOriginalName(java.lang.String):241:249 -> a
    18:24:void write(java.io.Writer):279:285 -> a
    25:26:void forAllFieldNaming(com.android.tools.r8.utils.ThrowingConsumer):265:266 -> a
    25:26:void forAllMemberNaming(com.android.tools.r8.utils.ThrowingConsumer):258 -> a
    25:26:void write(java.io.Writer):285 -> a
    27:28:void forAllMethodNaming(com.android.tools.r8.utils.ThrowingConsumer):273:274 -> a
    27:28:void forAllMemberNaming(com.android.tools.r8.utils.ThrowingConsumer):259 -> a
    27:28:void write(java.io.Writer):285 -> a
    29:35:void write(java.io.Writer):294:300 -> a
    36:37:void lambda$write$0(java.io.Writer,com.android.tools.r8.naming.MemberNaming):287:288 -> a
    38:38:int lambda$write$1(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):298:298 -> a
    1:11:com.android.tools.r8.naming.MemberNaming lookupByOriginalSignature(com.android.tools.r8.naming.MemberNaming$Signature):222:232 -> b
    1:11:boolean equals(java.lang.Object):320:330 -> equals
    1:5:int hashCode():335:339 -> hashCode
    1:5:java.lang.String toString():307:311 -> toString
com.android.tools.r8.naming.ClassNamingForNameMapper$1 -> com.android.tools.r8.naming.f$a:
com.android.tools.r8.naming.ClassNamingForNameMapper$Builder -> com.android.tools.r8.naming.f$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
    1:1:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.naming.ClassNamingForNameMapper$1):30:30 -> <init>
    2:2:void <init>(java.lang.String,java.lang.String):37:37 -> <init>
    3:9:void <init>(java.lang.String,java.lang.String):33:39 -> <init>
    1:2:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):44:45 -> a
    3:3:com.android.tools.r8.naming.MemberNaming$Signature com.android.tools.r8.naming.MemberNaming.getRenamedSignature():79:79 -> a
    3:3:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):45 -> a
    4:6:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):45:47 -> a
    7:7:com.android.tools.r8.naming.MemberNaming$Signature com.android.tools.r8.naming.MemberNaming.getRenamedSignature():79:79 -> a
    7:7:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):47 -> a
    8:8:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):47:47 -> a
    9:18:com.android.tools.r8.naming.ClassNamingForNameMapper build():56:65 -> a
    19:21:void addMappedRange(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String):76:78 -> a
    22:22:java.util.List lambda$addMappedRange$0(java.lang.String):77:77 -> a
com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange -> com.android.tools.r8.naming.f$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>():361:363 -> <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):361:361 -> <init>
    2:2:void <init>(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String):381:381 -> <init>
    3:16:void <init>(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String):378:391 -> <init>
    1:1:int access$400(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):361:361 -> a
    2:2:int getNextSequenceNumber():366:366 -> a
    3:17:int getOriginalLineNumber(int):395:409 -> a
    1:10:boolean equals(java.lang.Object):434:443 -> equals
    1:4:int hashCode():449:452 -> hashCode
    1:10:java.lang.String toString():415:424 -> toString
com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName -> com.android.tools.r8.naming.f$d:
    java.util.List mappedRanges -> a
    1:2:void <init>(java.util.List):86:87 -> <init>
    1:1:java.util.List access$300(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName):83:83 -> a
    2:2:java.util.List allRangesForLine(int):117:117 -> a
    3:22:java.util.List allRangesForLine(int,boolean):130:149 -> a
    23:23:java.util.List getMappedRanges():153:153 -> a
    1:8:com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange firstRangeForLine(int):96:103 -> b
    1:7:boolean equals(java.lang.Object):161:167 -> equals
    1:1:int hashCode():172:172 -> hashCode
com.android.tools.r8.naming.DictionaryReader -> com.android.tools.r8.naming.g:
    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.i:
    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:1:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):47:47 -> a
    2:10:void reserveFieldNames():87:95 -> a
    2:10:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):48 -> a
    11:11: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
    11:11:void reserveFieldNames():95 -> a
    11:11:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):48 -> a
    12:22:void reserveFieldNames():96:106 -> a
    12:22:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):48 -> a
    23:23:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    23:23:void reserveFieldNames():106 -> a
    23:23:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):48 -> a
    24:32:void reserveFieldNames():108:116 -> a
    24:32:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):48 -> a
    33:35:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):49:51 -> a
    36:37:void renameFieldsInInterfaces(java.util.Collection):168:169 -> a
    36:37:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    38:40:void renameFieldsInInterfacePartition(java.util.Set):175:177 -> a
    38:40:void renameFieldsInInterfaces(java.util.Collection):170 -> a
    38:40:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    41:41:com.android.tools.r8.naming.ReservedFieldNamingState getReservedFieldNamingState(com.android.tools.r8.graph.DexType):77:77 -> a
    41:41:void renameFieldsInInterfacePartition(java.util.Set):177 -> a
    41:41:void renameFieldsInInterfaces(java.util.Collection):170 -> a
    41:41:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    42:54:void renameFieldsInInterfacePartition(java.util.Set):179:191 -> a
    42:54:void renameFieldsInInterfaces(java.util.Collection):170 -> a
    42:54:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    55:58:com.android.tools.r8.graph.DexString renameField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.naming.FieldNamingState):217:220 -> a
    55:58:void renameFieldsInInterfacePartition(java.util.Set):192 -> a
    55:58:void renameFieldsInInterfaces(java.util.Collection):170 -> a
    55:58:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    59:59:void renameFieldsInInterfacePartition(java.util.Set):193:193 -> a
    59:59:void renameFieldsInInterfaces(java.util.Collection):170 -> a
    59:59:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    60:60: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
    60:60:void renameFieldsInInterfacePartition(java.util.Set):193 -> a
    60:60:void renameFieldsInInterfaces(java.util.Collection):170 -> a
    60:60:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    61:69:void renameFieldsInInterfacePartition(java.util.Set):199:207 -> a
    61:69:void renameFieldsInInterfaces(java.util.Collection):170 -> a
    61:69:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    70:70:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    70:70:void renameFieldsInInterfacePartition(java.util.Set):207 -> a
    70:70:void renameFieldsInInterfaces(java.util.Collection):170 -> a
    70:70:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    71:72:void renameFieldsInInterfacePartition(java.util.Set):209:210 -> a
    71:72:void renameFieldsInInterfaces(java.util.Collection):170 -> a
    71:72:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    73:80:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):53:60 -> a
    81:81:com.android.tools.r8.naming.ReservedFieldNamingState getOrCreateReservedFieldNamingState(com.android.tools.r8.graph.DexType) -> a
    82:84:void propagateReservedFieldNamesUpwards():120:122 -> a
    85:85:void propagateReservedFieldNamesUpwards():121:121 -> a
    86:86:void lambda$propagateReservedFieldNamesUpwards$1(com.android.tools.r8.graph.DexProgramClass):124:124 -> a
    87:87:com.android.tools.r8.naming.ReservedFieldNamingState getReservedFieldNamingState(com.android.tools.r8.graph.DexType):77:77 -> a
    87:87:void lambda$propagateReservedFieldNamesUpwards$1(com.android.tools.r8.graph.DexProgramClass):124 -> a
    88:89:void lambda$propagateReservedFieldNamesUpwards$1(com.android.tools.r8.graph.DexProgramClass):126:127 -> a
    90:91:boolean com.android.tools.r8.graph.DexType.isProgramType(com.android.tools.r8.graph.DexDefinitionSupplier):271:272 -> a
    90:91:void lambda$propagateReservedFieldNamesUpwards$1(com.android.tools.r8.graph.DexProgramClass):127 -> a
    92:93:void lambda$propagateReservedFieldNamesUpwards$1(com.android.tools.r8.graph.DexProgramClass):128:129 -> a
    94:94:boolean com.android.tools.r8.graph.DexType.isProgramType(com.android.tools.r8.graph.DexDefinitionSupplier):271:271 -> a
    94:94:void lambda$propagateReservedFieldNamesUpwards$1(com.android.tools.r8.graph.DexProgramClass):127 -> a
    95:99:void lambda$renameFieldsInClasses$3(java.util.Map,com.android.tools.r8.graph.DexClass):143:147 -> a
    100:100:void com.android.tools.r8.naming.FieldNamingState.<init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy):26:26 -> a
    100:100:void lambda$renameFieldsInClasses$3(java.util.Map,com.android.tools.r8.graph.DexClass):147 -> a
    101:101:void lambda$renameFieldsInClasses$3(java.util.Map,com.android.tools.r8.graph.DexClass):151:151 -> a
    102:110:void lambda$renameFieldsInClasses$3(java.util.Map,com.android.tools.r8.graph.DexClass):149:157 -> a
    111:114:com.android.tools.r8.graph.DexString renameField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.naming.FieldNamingState):217:220 -> a
    111:114:void lambda$renameFieldsInClasses$3(java.util.Map,com.android.tools.r8.graph.DexClass):158 -> a
    115:116:void lambda$renameFieldsInClasses$3(java.util.Map,com.android.tools.r8.graph.DexClass):162:163 -> a
    117:117:void renameNonReboundAccessesToField(com.android.tools.r8.graph.FieldAccessInfo):232:232 -> a
    118:121:void renameNonReboundAccessToField(com.android.tools.r8.graph.DexField):237:240 -> a
    122:122:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):158:158 -> a
    122:122:void renameNonReboundAccessToField(com.android.tools.r8.graph.DexField):240 -> a
    123:127:void renameNonReboundAccessToField(com.android.tools.r8.graph.DexField):242:246 -> a
    128:128:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    128:128:void renameNonReboundAccessToField(com.android.tools.r8.graph.DexField):246 -> a
    129:143:void renameNonReboundAccessToField(com.android.tools.r8.graph.DexField):248:262 -> 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():137:141 -> b
    7:7:void renameFieldsInClasses():140:140 -> b
    1:1:com.android.tools.r8.naming.FieldNamingState lambda$renameFieldsInClasses$2(com.android.tools.r8.graph.DexType):150:150 -> 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$2(com.android.tools.r8.graph.DexType):150 -> c
    3:5:void renameNonReboundReferences():226:228 -> c
com.android.tools.r8.naming.FieldNameMinifier$1 -> com.android.tools.r8.naming.h:
com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming -> com.android.tools.r8.naming.i$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.j:
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set visited -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():266:266 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):271:271 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.AppView):269:272 -> <init>
    1:1:java.util.List access$100(com.android.tools.r8.naming.FieldNameMinifier$InterfacePartitioning,java.util.Collection):266:266 -> a
    2:9:java.util.List sortedPartitions(java.util.Collection):276:283 -> a
    10:18:java.util.Set buildSortedPartition(com.android.tools.r8.graph.DexClass):290:298 -> a
    19:19:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    19:19:java.util.Set buildSortedPartition(com.android.tools.r8.graph.DexClass):298 -> a
    20:40:java.util.Set buildSortedPartition(com.android.tools.r8.graph.DexClass):303:323 -> a
    41:41:int lambda$buildSortedPartition$0(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):290:290 -> a
com.android.tools.r8.naming.FieldNamingState -> com.android.tools.r8.naming.k:
    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):168:168 -> 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
    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
    2:6:com.android.tools.r8.naming.FieldNamingState clone():79:83 -> clone
com.android.tools.r8.naming.FieldNamingState$InternalState -> com.android.tools.r8.naming.k$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 -> clone
    2:2:com.android.tools.r8.naming.FieldNamingState$InternalState clone():108:108 -> clone
    2:2:java.lang.Object clone():86 -> clone
com.android.tools.r8.naming.FieldNamingStateBase -> com.android.tools.r8.naming.l:
    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.m:
    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>():34:34 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):40:43 -> <init>
    1:4:void run():47:50 -> a
    5:24:void adaptClassStringsInMethod(com.android.tools.r8.graph.DexEncodedMethod):75:94 -> a
    25:36:com.android.tools.r8.graph.DexString getRenamedStringLiteral(com.android.tools.r8.graph.DexString):101:112 -> a
    37:37:boolean lambda$getRenamedStringLiteral$0(java.lang.String,com.android.tools.r8.graph.DexType):105:105 -> a
    1:3:void adaptClassStrings():54:56 -> b
    4:8:void adaptClassStringsInStaticField(com.android.tools.r8.graph.DexEncodedField):65:69 -> b
    4:8:void adaptClassStrings():57 -> b
    9:9:void adaptClassStrings():59:59 -> b
    10:16:void replaceDexItemBasedConstStringInMethod(com.android.tools.r8.graph.DexEncodedMethod):142:148 -> b
    17:49:void replaceDexItemBasedConstStringInMethod(com.android.tools.r8.graph.DexEncodedMethod):143:175 -> b
    1:3:void replaceDexItemBasedConstString():119:121 -> c
    4:10:void replaceDexItemBasedConstStringInStaticField(com.android.tools.r8.graph.DexEncodedField):131:137 -> c
    4:10:void replaceDexItemBasedConstString():122 -> c
    11:13:void replaceDexItemBasedConstString():124:126 -> c
com.android.tools.r8.naming.IdentifierNameStringMarker -> com.android.tools.r8.naming.n:
    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>():52:52 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView):58:61 -> <init>
    boolean lambda$decoupleIdentifierNameStringForInvokeInstruction$0(com.android.tools.r8.ir.code.ConstString,com.android.tools.r8.ir.code.Instruction) -> a
    boolean lambda$decoupleIdentifierNameStringForInvokeInstruction$1(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Instruction) -> a
    1:2:void decoupleIdentifierNameStringsInFields():65:66 -> a
    3:15:void decoupleIdentifierNameStringInStaticField(com.android.tools.r8.graph.DexEncodedField):73:85 -> a
    3:15:void decoupleIdentifierNameStringsInFields():67 -> a
    16:16:void decoupleIdentifierNameStringInStaticField(com.android.tools.r8.graph.DexEncodedField):84:84 -> a
    16:16:void decoupleIdentifierNameStringsInFields():67 -> a
    17:47:void decoupleIdentifierNameStringsInBlocks(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Set):95:125 -> a
    48:48:void decoupleIdentifierNameStringsInBlocks(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Set):124:124 -> a
    49:49:void decoupleIdentifierNameStringsInBlocks(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Set):121:121 -> a
    50: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):137:191 -> a
    50:104:void decoupleIdentifierNameStringsInBlocks(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Set):120 -> a
    105:105:com.android.tools.r8.ir.code.FieldInstruction com.android.tools.r8.ir.code.FieldInstruction.asFieldInstruction():0:0 -> a
    105:105: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):138 -> a
    105:105:void decoupleIdentifierNameStringsInBlocks(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Set):120 -> a
    106:223: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):201:318 -> a
    224:227: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):209:212 -> a
    228:229:int getIdentifierPositionInArguments(com.android.tools.r8.ir.code.InvokeMethod):337:338 -> a
    228:229: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):216 -> a
    230:231:boolean com.android.tools.r8.naming.IdentifierNameStringUtils.isClassNameComparison(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexItemFactory):169:170 -> a
    230:231:int getIdentifierPositionInArguments(com.android.tools.r8.ir.code.InvokeMethod):338 -> a
    230:231: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):216 -> a
    232:238:int getIdentifierPositionInArguments(com.android.tools.r8.ir.code.InvokeMethod):339:345 -> a
    232:238: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):216 -> a
    239:248:int getIdentifierPositionInArguments(com.android.tools.r8.ir.code.InvokeMethod):344:353 -> a
    239: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):216 -> a
    249:249:int getIdentifierPositionInArguments(com.android.tools.r8.ir.code.InvokeMethod):352:352 -> a
    249:249: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):216 -> a
    250: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):217:242 -> 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):282:282 -> 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):242 -> 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):245:325 -> 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):324:330 -> 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):329 -> a
    366:369: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):328:331 -> a
    370:370:com.android.tools.r8.ir.code.Value lambda$decoupleIdentifierNameStringForInvokeInstruction$2(com.android.tools.r8.ir.code.Value[],com.android.tools.r8.ir.code.Value,long):326:326 -> a
    371:377: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):362:368 -> a
    378:378:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    378:378: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):368 -> a
    379:400: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):370:391 -> a
com.android.tools.r8.naming.IdentifierNameStringUtils -> com.android.tools.r8.naming.o:
    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:173:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):221:260 -> a
    174:212: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
    174:212:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):260 -> a
    213:219: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
    213:219:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):260 -> a
    220:220:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):264:264 -> a
    221:224: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
    221:224:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):264 -> a
    225:227:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):266:268 -> a
    228:231:int getPositionOfFirstConstString(com.android.tools.r8.ir.code.Instruction):274:277 -> a
    232:264:com.android.tools.r8.graph.DexReference inferMemberFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):324:356 -> a
    232:264:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):288 -> a
    265:267:com.android.tools.r8.graph.DexReference inferMethodNameInHolder(com.android.tools.r8.graph.DexClass,java.lang.String):374:376 -> a
    265:267:com.android.tools.r8.graph.DexReference inferMemberFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):358 -> a
    265:267:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):288 -> a
    268:268:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):291:291 -> a
    269:272: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
    273:316: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
    317:325:com.android.tools.r8.graph.DexType getTypeFromConstClassOrBoxedPrimitive(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):396:404 -> a
    317:325: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
    326:326:com.android.tools.r8.graph.DexType getTypeFromConstClassOrBoxedPrimitive(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):403:403 -> a
    326:326: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
    327:342: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.r:
    com.android.tools.r8.naming.MethodNameMinifier$State minifierState -> d
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.com.google.common.base.Equivalence equivalence -> c
    boolean $assertionsDisabled -> h
    java.util.Set desugaredCallSites -> b
    java.util.Map callSiteRenamings -> e
    java.util.Map globalStateMap -> f
    java.util.Map interfaceStateMap -> g
    1:1:void <clinit>():97:97 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.naming.MethodNameMinifier$State):377:377 -> <init>
    2:20:void <init>(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.naming.MethodNameMinifier$State):366:384 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$000(com.android.tools.r8.naming.InterfaceMethodNameMinifier):97:97 -> a
    2:2:java.util.Map getCallSiteRenamings():392:392 -> a
    3:5:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):406:408 -> a
    6:8:void reserveNamesInInterfaces(java.util.Collection):396:398 -> a
    6:8:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):409 -> a
    9:10:void com.android.tools.r8.naming.MethodNameMinifier$State.allocateReservationStateAndReserve(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):106:107 -> a
    9:10:void reserveNamesInInterfaces(java.util.Collection):398 -> a
    9:10:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):409 -> a
    11:11:void com.android.tools.r8.naming.MethodNameMinifier$State.allocateReservationStateAndReserve(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):106:106 -> a
    11:11:void reserveNamesInInterfaces(java.util.Collection):398 -> a
    11:11:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):409 -> a
    12:14:void reserveNamesInInterfaces(java.util.Collection):399:401 -> a
    12:14:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):409 -> a
    15:19:void patchUpChildrenInReservationStates():572:576 -> a
    15:19:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):412 -> a
    20:25:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):413:418 -> a
    26:32:void computeReservationFrontiersForAllImplementingClasses():583:589 -> a
    26:32:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):419 -> a
    33:33:com.android.tools.r8.graph.DexType com.android.tools.r8.naming.MethodNameMinifier$State.getFrontier(com.android.tools.r8.graph.DexType):111:111 -> a
    33:33:void computeReservationFrontiersForAllImplementingClasses():589 -> a
    33:33:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):419 -> a
    34:35:void computeReservationFrontiersForAllImplementingClasses():590:591 -> a
    34:35:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):419 -> a
    36:120:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):420:504 -> a
    121:130:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):499:508 -> a
    131:145:boolean verifyAllMethodsAreRepresentedIn(java.util.List):618:632 -> a
    131:145:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):508 -> a
    146:146:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):509:509 -> a
    147:161:boolean verifyAllCallSitesAreRepresentedIn(java.util.List):599:613 -> a
    147:161:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):509 -> a
    162:196:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):511:545 -> a
    197:205:void print(com.android.tools.r8.graph.DexMethod,java.util.Set,java.io.PrintStream):637:645 -> a
    197:205:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):545 -> a
    206:213:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):548:555 -> a
    214:214:com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState lambda$assignNamesToInterfaceMethods$0(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):426:426 -> a
    215:234:void lambda$assignNamesToInterfaceMethods$1(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):448:467 -> a
    235:236:java.lang.Object com.android.tools.r8.utils.DisjointSets.unionWithMakeSet(java.lang.Object,java.lang.Object):128:129 -> a
    235:236:void lambda$assignNamesToInterfaceMethods$1(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):468 -> a
    237:238:java.lang.Object com.android.tools.r8.utils.DisjointSets.findOrMakeSet(java.lang.Object):91:92 -> a
    237:238:java.lang.Object com.android.tools.r8.utils.DisjointSets.unionWithMakeSet(java.lang.Object,java.lang.Object):132 -> a
    237:238:void lambda$assignNamesToInterfaceMethods$1(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):468 -> a
    239:240:java.lang.Object com.android.tools.r8.utils.DisjointSets.findOrMakeSet(java.lang.Object):91:92 -> a
    239:240:java.lang.Object com.android.tools.r8.utils.DisjointSets.unionWithMakeSet(java.lang.Object,java.lang.Object):134 -> a
    239:240:void lambda$assignNamesToInterfaceMethods$1(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):468 -> a
    241:242:java.lang.Object com.android.tools.r8.utils.DisjointSets.findOrMakeSet(java.lang.Object):91:92 -> a
    241:242:java.lang.Object com.android.tools.r8.utils.DisjointSets.unionWithMakeSet(java.lang.Object,java.lang.Object):134 -> a
    241:242:void lambda$assignNamesToInterfaceMethods$1(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):468 -> a
    243:243:java.lang.Object com.android.tools.r8.utils.DisjointSets.unionWithMakeSet(java.lang.Object,java.lang.Object):134:134 -> a
    243:243:void lambda$assignNamesToInterfaceMethods$1(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):468 -> a
    244:247:com.android.tools.r8.graph.DexString assignNewName(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):559:562 -> a
    248:248:com.android.tools.r8.naming.MethodNamingState com.android.tools.r8.naming.MethodNameMinifier$State.getNamingState(com.android.tools.r8.graph.DexType):102:102 -> a
    248:248:com.android.tools.r8.graph.DexString assignNewName(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):562 -> a
    249:252:com.android.tools.r8.graph.DexString assignNewName(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):564:567 -> a
    253:253:boolean lambda$assignNewName$2(com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):566:566 -> a
    1:1:com.android.tools.r8.naming.MethodNameMinifier$State access$100(com.android.tools.r8.naming.InterfaceMethodNameMinifier):97:97 -> b
    2:2:java.util.Comparator getDefaultInterfaceMethodOrdering():388:388 -> b
    1:1:java.util.Map access$200(com.android.tools.r8.naming.InterfaceMethodNameMinifier):97:97 -> c
com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState -> com.android.tools.r8.naming.p:
    java.util.Map methodStates -> b
    com.android.tools.r8.naming.InterfaceMethodNameMinifier this$0 -> c
    java.util.Set callSites -> a
    1:4:void <init>(com.android.tools.r8.naming.InterfaceMethodNameMinifier):240:243 -> <init>
    1:1:void addState(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):246:246 -> a
    2:2:java.util.Set lambda$addState$0(com.android.tools.r8.graph.DexMethod):246:246 -> a
    3:5:void appendMethodGroupState(com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):250:252 -> a
    6:6:void addCallSite(com.android.tools.r8.graph.DexCallSite):259:259 -> a
    7:19:com.android.tools.r8.graph.DexString getReservedName():263:275 -> a
    20:28:boolean isAvailable(com.android.tools.r8.graph.DexString):302:310 -> a
    29:30: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):305:306 -> a
    31:31:void addRenaming(com.android.tools.r8.graph.DexString,com.android.tools.r8.naming.MethodNameMinifier$State):314:314 -> a
    32:32: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):316:316 -> a
    33:33:void com.android.tools.r8.naming.MethodNameMinifier$State.putRenaming(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexString):94:94 -> a
    33:33: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):317 -> a
    34:34:void forEachState(java.util.function.BiConsumer):322:322 -> a
    35:35:java.lang.Object lambda$forEachState$5(java.util.function.BiConsumer,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):324:324 -> a
    36:38:java.lang.Object forAnyState(java.util.function.BiFunction):331:333 -> a
    39:41:boolean containsReservation(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):343:345 -> a
    42:42:boolean com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState.containsReservation(com.android.tools.r8.graph.DexType):236:236 -> a
    42:42:boolean containsReservation(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):346 -> a
    1:1:java.util.Set access$300(com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):240:240 -> b
    2:2:java.util.Set lambda$appendMethodGroupState$1(com.android.tools.r8.graph.DexMethod):252:252 -> b
    3:3:void reserveName(com.android.tools.r8.graph.DexString):288:288 -> 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):290:293 -> b
    8:8:void com.android.tools.r8.naming.MethodNameMinifier$State.putRenaming(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexString):94:94 -> 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):293 -> 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):295:296 -> b
    11:11:void com.android.tools.r8.naming.MethodNameMinifier$State.putRenaming(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexString):94:94 -> 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):296 -> b
    1:1:java.util.Map access$400(com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):240:240 -> c
    1:1:int compareTo(java.lang.Object):240:240 -> compareTo
    2:2:int compareTo(com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):357:357 -> compareTo
    2:2:int compareTo(java.lang.Object):240 -> compareTo
com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState -> com.android.tools.r8.naming.q:
    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>():99:99 -> <clinit>
    1:1:void <init>(com.android.tools.r8.naming.InterfaceMethodNameMinifier,com.android.tools.r8.graph.DexClass):108:108 -> <init>
    2:7:void <init>(com.android.tools.r8.naming.InterfaceMethodNameMinifier,com.android.tools.r8.graph.DexClass):104:109 -> <init>
    1:2:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexMethod):115:116 -> a
    3:3:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):163:163 -> a
    3:3:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexMethod):116 -> a
    4:4:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexMethod):118:118 -> 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):115:115 -> a
    5:5:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexMethod):118 -> a
    6:21:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexMethod):126:141 -> a
    22:29:java.lang.Boolean lambda$getReservedName$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):129:136 -> a
    30:30:void addRenaming(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):171:171 -> 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):173:173 -> 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):175:175 -> a
    33:33:com.android.tools.r8.naming.MethodNamingState com.android.tools.r8.naming.MethodNameMinifier$State.getNamingState(com.android.tools.r8.graph.DexType):102:102 -> 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):175 -> a
    34:35:void com.android.tools.r8.naming.MethodNamingState.addRenaming(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):70:71 -> 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):176 -> a
    36:36:void forAll(java.util.function.Consumer):182:182 -> a
    37:37:java.lang.Object lambda$forAll$6(java.util.function.Consumer,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):184:184 -> a
    38:46:java.lang.Object forAny(java.util.function.Function):190:198 -> 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):149:149 -> b
    2:2:com.android.tools.r8.naming.MethodReservationState com.android.tools.r8.naming.MethodNameMinifier$State.getReservationState(com.android.tools.r8.graph.DexType):98:98 -> 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):149 -> 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):150:150 -> b
    4:15:boolean isAvailable(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):156:167 -> 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):159:160 -> b
    18:18:com.android.tools.r8.naming.MethodNamingState com.android.tools.r8.naming.MethodNameMinifier$State.getNamingState(com.android.tools.r8.graph.DexType):102:102 -> 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):160 -> 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):161:162 -> b
    21:28:java.lang.Object forChildren(java.util.function.Function):219:226 -> b
    1:1:void reserveName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):145:145 -> 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):147:147 -> c
    3:10:java.lang.Object forParents(java.util.function.Function):202:209 -> c
com.android.tools.r8.naming.InternalNamingState -> com.android.tools.r8.naming.s:
    int incrementDictionaryIndex() -> a
    int incrementNameIndex(boolean) -> a
    int getDictionaryIndex() -> b
com.android.tools.r8.naming.MemberNaming -> com.android.tools.r8.naming.t:
    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:boolean isMethodNaming():87:87 -> c
    1:6:boolean equals(java.lang.Object):38:43 -> equals
    1:2:int hashCode():48:49 -> hashCode
    1:1:java.lang.String toString():96:96 -> toString
com.android.tools.r8.naming.MemberNaming$FieldSignature -> com.android.tools.r8.naming.t$a:
    java.lang.String type -> b
    1:2:void <init>(java.lang.String,java.lang.String):146:147 -> <init>
    1:1:com.android.tools.r8.naming.MemberNaming$FieldSignature fromDexField(com.android.tools.r8.graph.DexField):151:151 -> a
    2:2:com.android.tools.r8.naming.MemberNaming$FieldSignature fromDexField(com.android.tools.r8.graph.DexField,boolean):155:155 -> a
    3:3:java.lang.String com.android.tools.r8.graph.DexField.qualifiedName():131:131 -> a
    3:3:com.android.tools.r8.naming.MemberNaming$FieldSignature fromDexField(com.android.tools.r8.graph.DexField,boolean):156 -> a
    4:5:com.android.tools.r8.naming.MemberNaming$FieldSignature fromDexField(com.android.tools.r8.graph.DexField,boolean):156:157 -> a
    6:9:com.android.tools.r8.graph.DexField toDexField(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):161:164 -> a
    10:10:com.android.tools.r8.graph.DexField toDexField(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):161:161 -> a
    11:11:com.android.tools.r8.naming.MemberNaming$Signature asRenamed(java.lang.String):169:169 -> a
    12:14:void write(java.io.Writer):201:203 -> a
    1:1:com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind kind():174:174 -> b
    1:5:boolean equals(java.lang.Object):182:186 -> equals
    1:1:int hashCode():191:191 -> hashCode
    1:1:java.lang.String toString():196:196 -> toString
com.android.tools.r8.naming.MemberNaming$MethodSignature -> com.android.tools.r8.naming.t$b:
    java.lang.String type -> b
    java.lang.String[] parameters -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():207:207 -> <clinit>
    1:3:void <init>(java.lang.String,java.lang.String,java.lang.String[]):213:215 -> <init>
    4:6:void <init>(java.lang.String,java.lang.String,java.util.Collection):219:221 -> <init>
    1:1:com.android.tools.r8.naming.MemberNaming$MethodSignature fromDexMethod(com.android.tools.r8.graph.DexMethod):225:225 -> a
    2:9:com.android.tools.r8.naming.MemberNaming$MethodSignature fromDexMethod(com.android.tools.r8.graph.DexMethod,boolean):229:236 -> a
    10:19:com.android.tools.r8.naming.MemberNaming$MethodSignature fromSignature(java.lang.String,java.lang.String):241:250 -> a
    20:28:com.android.tools.r8.graph.DexMethod toDexMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):270:278 -> a
    29:29:com.android.tools.r8.graph.DexMethod toDexMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):275:275 -> a
    30:30:com.android.tools.r8.naming.MemberNaming$MethodSignature initializer(java.lang.String[]):282:282 -> a
    31:31:com.android.tools.r8.naming.MemberNaming$Signature asRenamed(java.lang.String):287:287 -> a
    32:42:void write(java.io.Writer):324:334 -> a
    1:1:com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind kind():292:292 -> b
    1:8:java.lang.String toDescriptor():338:345 -> c
    1:2:com.android.tools.r8.naming.MemberNaming$MethodSignature toUnqualified():255:256 -> d
    1:2:java.lang.String toUnqualifiedHolder():265:266 -> e
    1:8:boolean equals(java.lang.Object):300:307 -> equals
    1:2:java.lang.String toUnqualifiedName():260:261 -> f
    1:3:int hashCode():312:314 -> hashCode
    1:1:java.lang.String toString():319:319 -> toString
com.android.tools.r8.naming.MemberNaming$Signature -> com.android.tools.r8.naming.t$c:
    java.lang.String name -> a
    1:2:void <init>(java.lang.String):103:104 -> <init>
    com.android.tools.r8.naming.MemberNaming$Signature asRenamed(java.lang.String) -> a
    void write(java.io.Writer) -> a
    1:1:boolean isQualified():120:120 -> a
    com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind kind() -> b
    1:6:java.lang.String toString():126:131 -> toString
com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind -> com.android.tools.r8.naming.t$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>():136:137 -> <clinit>
    1:1:void <init>(java.lang.String,int):135:135 -> <init>
com.android.tools.r8.naming.MemberNamingStrategy -> com.android.tools.r8.naming.u:
    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.w:
    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>():87:87 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy):135:135 -> <init>
    2:21:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy):122:141 -> <init>
    1:1:java.util.Map access$000(com.android.tools.r8.naming.MethodNameMinifier):87:87 -> a
    2:2:com.android.tools.r8.naming.MethodNamingState access$200(com.android.tools.r8.naming.MethodNameMinifier,com.android.tools.r8.graph.DexType):87:87 -> 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):87:87 -> a
    4:9:java.util.function.Function getKeyTransform():145:150 -> a
    10:10:java.lang.Object lambda$getKeyTransform$0(com.android.tools.r8.graph.DexMethod):147:147 -> a
    11:11:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming computeRenaming(java.util.Collection,java.util.Set,com.android.tools.r8.utils.Timing):174:174 -> a
    12:14:void reserveNamesInClasses():248:250 -> a
    12:14:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming computeRenaming(java.util.Collection,java.util.Set,com.android.tools.r8.utils.Timing):175 -> a
    15:15:void reserveNamesInClasses():248:248 -> a
    15:15:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming computeRenaming(java.util.Collection,java.util.Set,com.android.tools.r8.utils.Timing):175 -> a
    16:32:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming computeRenaming(java.util.Collection,java.util.Set,com.android.tools.r8.utils.Timing):176:192 -> a
    33:50:void assignNamesToClassesMethods(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodNamingState):196:213 -> a
    51:51:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    51:51:void assignNamesToClassesMethods(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodNamingState):213 -> a
    52:61:void assignNamesToClassesMethods(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodNamingState):214:223 -> a
    62:62:com.android.tools.r8.naming.MethodNamingState lambda$assignNamesToClassesMethods$2(com.android.tools.r8.naming.MethodNamingState,com.android.tools.r8.naming.MethodReservationState,com.android.tools.r8.graph.DexType):201:201 -> a
    63:77:void assignNameToMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.MethodNamingState):229:243 -> a
    78:79:void com.android.tools.r8.naming.MethodNamingState.addRenaming(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):70:71 -> a
    78:79:void assignNameToMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.MethodNamingState):243 -> a
    80:89: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):275:284 -> a
    90:90:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    90:90: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):284 -> a
    91:91: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):286:286 -> a
    92:92:java.lang.Iterable shuffleMethods(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):331:331 -> a
    92:92: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):286 -> a
    93:102: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):286:295 -> a
    103:103: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):293:293 -> a
    104:104:com.android.tools.r8.naming.MethodReservationState lambda$allocateReservationStateAndReserve$3(com.android.tools.r8.naming.MethodReservationState,com.android.tools.r8.graph.DexType):282:282 -> a
    105:111:com.android.tools.r8.naming.MethodNamingState getOrAllocateMethodNamingStates(com.android.tools.r8.graph.DexType):306:312 -> a
    112:112:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    112:112:com.android.tools.r8.naming.MethodNamingState getOrAllocateMethodNamingStates(com.android.tools.r8.graph.DexType):312 -> a
    113:121:com.android.tools.r8.naming.MethodNamingState getOrAllocateMethodNamingStates(com.android.tools.r8.graph.DexType):314:322 -> a
    1:1:com.android.tools.r8.com.google.common.collect.BiMap access$100(com.android.tools.r8.naming.MethodNameMinifier):87:87 -> b
    2:2:java.lang.Object lambda$getKeyTransform$1(com.android.tools.r8.graph.DexMethod):150:150 -> b
    3:11:void reserveNamesInClasses(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):256:264 -> b
    12:12:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> b
    12:12:void reserveNamesInClasses(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):264 -> b
    13:16:void reserveNamesInClasses(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):265:268 -> b
    17:17:void reserveNamesInClasses(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):266:266 -> b
    1:1:com.android.tools.r8.naming.MethodReservationState access$300(com.android.tools.r8.naming.MethodNameMinifier):87:87 -> c
    1:1:java.util.Map access$500(com.android.tools.r8.naming.MethodNameMinifier):87:87 -> d
    1:1:com.android.tools.r8.naming.MemberNamingStrategy access$600(com.android.tools.r8.naming.MethodNameMinifier):87:87 -> e
com.android.tools.r8.naming.MethodNameMinifier$1 -> com.android.tools.r8.naming.v:
com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming -> com.android.tools.r8.naming.w$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):154:154 -> <init>
    2:4:void <init>(java.util.Map,java.util.Map):160:162 -> <init>
    1:1:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming empty():166:166 -> a
com.android.tools.r8.naming.MethodNameMinifier$State -> com.android.tools.r8.naming.x:
    com.android.tools.r8.naming.MethodNameMinifier this$0 -> a
    1:1:void <init>(com.android.tools.r8.naming.MethodNameMinifier):91:91 -> <init>
    1:1:com.android.tools.r8.naming.MethodReservationState getReservationState(com.android.tools.r8.graph.DexType):98:98 -> a
com.android.tools.r8.naming.MethodNamingState -> com.android.tools.r8.naming.A:
    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>():16:16 -> <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):27:30 -> <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):37:37 -> a
    2:2:com.android.tools.r8.naming.MethodNamingState createChild(com.android.tools.r8.naming.MethodReservationState):41:41 -> a
    3:18:com.android.tools.r8.graph.DexString newOrReservedNameFor(com.android.tools.r8.graph.DexMethod,java.util.function.BiPredicate):50:65 -> a
    19:31:boolean isAvailable(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):75:87 -> a
    32:35:com.android.tools.r8.naming.MethodNamingState$InternalNewNameState createInternalState(com.android.tools.r8.graph.DexMethod):119:122 -> a
    32:35:java.lang.Object createInternalState(com.android.tools.r8.graph.DexMethod):16 -> 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):93 -> b
    3:9:java.util.Set getUsedBy(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):93:99 -> b
    1:1:com.android.tools.r8.graph.DexString newOrReservedNameFor(com.android.tools.r8.graph.DexMethod):46:46 -> c
    1:2:java.lang.Object com.android.tools.r8.naming.MethodNamingStateBase.getInternalState(com.android.tools.r8.graph.DexMethod):23:24 -> d
    1:2:com.android.tools.r8.graph.DexString getAssignedName(com.android.tools.r8.graph.DexMethod):106 -> d
    3:8:com.android.tools.r8.graph.DexString getAssignedName(com.android.tools.r8.graph.DexMethod):106:111 -> d
com.android.tools.r8.naming.MethodNamingState$1 -> com.android.tools.r8.naming.y:
com.android.tools.r8.naming.MethodNamingState$InternalNewNameState -> com.android.tools.r8.naming.z:
    java.util.Map originalToRenamedNames -> b
    java.util.Map usedBy -> c
    com.android.tools.r8.naming.MethodNamingState$InternalNewNameState parentInternalState -> a
    int dictionaryIndex -> f
    boolean $assertionsDisabled -> g
    int virtualNameCount -> d
    int directNameCount -> e
    1:1:void <clinit>():125:125 -> <clinit>
    1:1:void <init>(com.android.tools.r8.naming.MethodNamingState$InternalNewNameState,com.android.tools.r8.naming.MethodNamingState$1):125:125 -> <init>
    2:2:void <init>(com.android.tools.r8.naming.MethodNamingState$InternalNewNameState):138:138 -> <init>
    3:20:void <init>(com.android.tools.r8.naming.MethodNamingState$InternalNewNameState):128:145 -> <init>
    1:1:int incrementDictionaryIndex():155:155 -> a
    2:2:com.android.tools.r8.graph.DexString getAssignedName(com.android.tools.r8.graph.DexString):163:163 -> a
    3:4:void addRenaming(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):167:168 -> a
    5:5:int incrementNameIndex(boolean):184:184 -> a
    6:11:boolean checkParentPublicNameCountIsLessThanOrEqual():173:178 -> a
    6:11:int incrementNameIndex(boolean):184 -> a
    12:15:int incrementNameIndex(boolean):186:189 -> a
    1:1:int getDictionaryIndex():150:150 -> b
    2:2:java.util.Set getUsedBy(com.android.tools.r8.graph.DexString):159:159 -> b
    1:1:java.util.Set lambda$addRenaming$0(com.android.tools.r8.graph.DexString):168:168 -> c
com.android.tools.r8.naming.MethodNamingStateBase -> com.android.tools.r8.naming.B:
    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.D:
    com.android.tools.r8.naming.MethodReservationState parentNamingState -> c
    1:2:void <init>(com.android.tools.r8.naming.MethodReservationState,java.util.function.Function):24:25 -> <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):50 -> a
    3:8:boolean isReserved(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):50:55 -> a
    9:9:com.android.tools.r8.naming.MethodReservationState createRoot(java.util.function.Function):30:30 -> a
    10:10:com.android.tools.r8.naming.MethodReservationState createChild():34:34 -> a
    11:11:com.android.tools.r8.naming.MethodReservationState$InternalReservationState createInternalState(com.android.tools.r8.graph.DexMethod):74:74 -> a
    11:11:java.lang.Object createInternalState(com.android.tools.r8.graph.DexMethod):16 -> a
    1:4:void reserveName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):39:42 -> 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):61 -> c
    3:9:java.util.Set getReservedNamesFor(com.android.tools.r8.graph.DexMethod):61:67 -> c
com.android.tools.r8.naming.MethodReservationState$InternalReservationState -> com.android.tools.r8.naming.C:
    java.util.Map originalToReservedNames -> a
    java.util.Set reservedNames -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():77:77 -> <clinit>
    1:3:void <init>():77:79 -> <init>
    1:2:java.util.Set getAssignedNamesFor(com.android.tools.r8.graph.DexString):87:88 -> a
    3:9:void reserveName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):94:100 -> a
    1:1:boolean isReserved(com.android.tools.r8.graph.DexString):82:82 -> b
    1:1:java.util.Set lambda$reserveName$0(com.android.tools.r8.graph.DexString):99:99 -> c
com.android.tools.r8.naming.MinifiedNameMapPrinter -> com.android.tools.r8.naming.E:
    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.F:
    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>():31:31 -> <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):41:41 -> <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):35:47 -> <init>
    com.android.tools.r8.graph.DexItem lambda$getRenamedItems$1(com.android.tools.r8.graph.DexItem) -> a
    1:1:java.lang.String lookupPackageName(java.lang.String):52:52 -> a
    2:2:com.android.tools.r8.graph.DexString lookupDescriptor(com.android.tools.r8.graph.DexType):57:57 -> a
    3:7:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):62:66 -> a
    8:8:com.android.tools.r8.graph.DexString lookupDescriptor(com.android.tools.r8.graph.DexType):57:57 -> a
    8:8:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):72 -> a
    9:14:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):72:77 -> a
    15:22:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):76:83 -> a
    23:23:com.android.tools.r8.graph.DexString lookupDescriptor(com.android.tools.r8.graph.DexType):57:57 -> a
    23:23:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):85 -> a
    24:26:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):85:87 -> a
    27:30:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):86:89 -> a
    31:31:com.android.tools.r8.graph.DexString lookupMethodName(com.android.tools.r8.graph.DexCallSite):99:99 -> a
    32:32:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexField):104:104 -> a
    33:36:boolean verifyNoOverlap(java.util.Map):109:112 -> a
    37:37:boolean verifyNoOverlap(java.util.Map):111:111 -> a
    38:39:void forAllRenamedTypes(java.util.function.Consumer):119:120 -> a
    40:43:java.util.Map getRenamedItems(java.lang.Class,java.util.function.Predicate,java.util.function.Function):126:129 -> a
    44:44:boolean lambda$getRenamedItems$0(java.lang.Class,java.util.function.Predicate,com.android.tools.r8.graph.DexItem):127:127 -> a
    45:49:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):144:148 -> a
    50:50:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    50:50:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):148 -> a
    51:60:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):149:158 -> a
    61:61:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    61:61:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):158 -> a
    62:62:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):160:160 -> a
    63:63:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    63:63:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):160 -> a
    64:64:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):162:162 -> a
    65:65:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    65:65:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):162 -> a
    66:73:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):163:170 -> a
    74:84:void lambda$toString$2(java.lang.StringBuilder,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexString):178:188 -> a
    1:1:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexMethod):94:94 -> b
    1:16:java.lang.String toString():175:190 -> toString
com.android.tools.r8.naming.Minifier -> com.android.tools.r8.naming.G:
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set desugaredCallSites -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():36:36 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.AppView,java.util.Set):41:43 -> <init>
    1:13:com.android.tools.r8.naming.NamingLens run(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):92:92 -> a
    14:14:com.android.tools.r8.naming.NamingLens run(com.android.tools.r8.utils.Timing):60 -> a
    15:41:com.android.tools.r8.naming.NamingLens run(com.android.tools.r8.utils.Timing):61:87 -> a
    42:42: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.G$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>():91:91 -> <clinit>
    1:6:void <init>(java.util.List,boolean):99:104 -> <init>
    1:11:java.lang.String nextName(char[],com.android.tools.r8.naming.InternalNamingState,boolean):108:118 -> a
    12:18:java.lang.String nextName(char[],com.android.tools.r8.naming.InternalNamingState,boolean):117:123 -> a
com.android.tools.r8.naming.Minifier$MinificationClassNamingStrategy -> com.android.tools.r8.naming.G$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):135:136 -> <init>
    3:7:void <init>(com.android.tools.r8.graph.AppView):134:138 -> <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):150:166 -> 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):152:156 -> 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):156 -> 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):156:156 -> a
    1:2:com.android.tools.r8.graph.DexString reservedDescriptor(com.android.tools.r8.graph.DexType):172:173 -> b
com.android.tools.r8.naming.Minifier$MinificationPackageNamingStrategy -> com.android.tools.r8.naming.G$c:
    1:2:void <init>(com.android.tools.r8.graph.AppView):189:190 -> <init>
    3:3:void <init>(com.android.tools.r8.graph.AppView):188:188 -> <init>
com.android.tools.r8.naming.Minifier$MinifierMemberNamingStrategy -> com.android.tools.r8.naming.G$d:
    com.android.tools.r8.graph.DexItemFactory factory -> f
    com.android.tools.r8.graph.AppView appView -> e
    boolean $assertionsDisabled -> g
    1:1:void <clinit>():207:207 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.AppView):214:216 -> <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):224:225 -> a
    3:3:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):163:163 -> 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):225 -> 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):226:226 -> a
    5:5:com.android.tools.r8.graph.DexString getNextName(com.android.tools.r8.naming.InternalNamingState,boolean):248:248 -> 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):229 -> 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):230:230 -> 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):239:239 -> a
    8:8:com.android.tools.r8.graph.DexString getNextName(com.android.tools.r8.naming.InternalNamingState,boolean):248:248 -> 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):242 -> 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):243:243 -> a
    10:14:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):253:257 -> a
    15:16:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexClass):264:265 -> a
    17:17:boolean allowMemberRenaming(com.android.tools.r8.graph.DexClass):272:272 -> a
    1:1:boolean checkAllowMemberRenaming(com.android.tools.r8.graph.DexType):276:276 -> c
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> c
    2:2:boolean checkAllowMemberRenaming(com.android.tools.r8.graph.DexType):276 -> c
    3:3:boolean checkAllowMemberRenaming(com.android.tools.r8.graph.DexType):277:277 -> c
com.android.tools.r8.naming.NamingLens -> com.android.tools.r8.naming.H:
    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
    boolean hasPrefixRewritingLogic() -> 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.DexProto lookupProto(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexItemFactory):83:87 -> a
    15:15:com.android.tools.r8.graph.DexProto lookupProto(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexItemFactory):83:83 -> a
    16:16:com.android.tools.r8.graph.DexType lambda$lookupProto$0(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):86:86 -> a
    17:17:com.android.tools.r8.graph.DexType[] lambda$lookupProto$1(int):87:87 -> a
    18:26:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):91:99 -> a
    27:37:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):140:150 -> a
    38:41:com.android.tools.r8.graph.DexField lookupField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexItemFactory):69:72 -> a
    38:41:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):150 -> a
    42:42:com.android.tools.r8.graph.DexField lookupField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexItemFactory):69:69 -> a
    42:42:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):150 -> a
    43:49:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):151:157 -> a
    50:53:com.android.tools.r8.graph.DexMethod lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):76:79 -> a
    50:53:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):157 -> a
    54:54:com.android.tools.r8.graph.DexMethod lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):76:76 -> a
    54:54:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):157 -> a
    55:57:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):158:160 -> a
    com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexMethod) -> b
    1:1:com.android.tools.r8.naming.NamingLens getIdentityLens():113:113 -> b
    2:3: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.H$a:
com.android.tools.r8.naming.NamingLens$IdentityLens -> com.android.tools.r8.naming.H$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.I:
    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>():28:28 -> <clinit>
    1:1:void <init>(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.desugar.PrefixRewritingMapper):48:48 -> <init>
    2:31:void <init>(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.desugar.PrefixRewritingMapper):30:59 -> <init>
    boolean hasPrefixRewritingLogic() -> a
    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):30:30 -> a
    1:1:void lambda$new$0(com.android.tools.r8.ir.desugar.PrefixRewritingMapper,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.DexType):55:55 -> a
    3:3:com.android.tools.r8.naming.NamingLens createPrefixRewritingNamingLens(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.desugar.PrefixRewritingMapper):36:36 -> a
    4:7:com.android.tools.r8.naming.NamingLens createPrefixRewritingNamingLens(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.desugar.PrefixRewritingMapper,com.android.tools.r8.naming.NamingLens):41:44 -> a
    4:7:com.android.tools.r8.naming.NamingLens createPrefixRewritingNamingLens(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.desugar.PrefixRewritingMapper):36 -> a
    8:11:com.android.tools.r8.naming.NamingLens createPrefixRewritingNamingLens(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.desugar.PrefixRewritingMapper,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():314:314 -> 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
    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.J:
    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.K:
    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.N:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.naming.SeedMapper seedMapper -> c
    java.util.Set desugaredCallSites -> d
    boolean $assertionsDisabled -> l
    com.android.tools.r8.com.google.common.collect.BiMap mappedNames -> e
    java.util.Set mappedClasses -> f
    java.util.Map defaultInterfaceMethodImplementationNames -> i
    java.util.Map additionalMethodNamings -> j
    java.util.Map additionalFieldNamings -> k
    java.util.Map memberNames -> g
    java.util.Map syntheticCompanionClasses -> h
    1:1:void <clinit>():63:63 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.SeedMapper,java.util.Set):82:82 -> <init>
    2:19:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.SeedMapper,java.util.Set):69:86 -> <init>
    1:1:int lambda$new$0(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):71:71 -> a
    2:31:com.android.tools.r8.naming.NamingLens run(com.android.tools.r8.utils.Timing):91:120 -> a
    32:40:void computeDefaultInterfaceMethodMethods():319:327 -> a
    32:40:com.android.tools.r8.naming.NamingLens run(com.android.tools.r8.utils.Timing):121 -> a
    41:41:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    41:41:void computeDefaultInterfaceMethodMethods():327 -> a
    41:41:com.android.tools.r8.naming.NamingLens run(com.android.tools.r8.utils.Timing):121 -> a
    42:42:void computeDefaultInterfaceMethodMethods():329:329 -> a
    42:42:com.android.tools.r8.naming.NamingLens run(com.android.tools.r8.utils.Timing):121 -> a
    43:47:void computeDefaultInterfaceMethodMappingsForType(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.ClassNamingForMapApplier,java.util.Map,java.util.Map):345:349 -> a
    43:47:void computeDefaultInterfaceMethodMethods():329 -> a
    43:47:com.android.tools.r8.naming.NamingLens run(com.android.tools.r8.utils.Timing):121 -> a
    48:48:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    48:48:void computeDefaultInterfaceMethodMappingsForType(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.ClassNamingForMapApplier,java.util.Map,java.util.Map):349 -> a
    48:48:void computeDefaultInterfaceMethodMethods():329 -> a
    48:48:com.android.tools.r8.naming.NamingLens run(com.android.tools.r8.utils.Timing):121 -> a
    49:64:void computeDefaultInterfaceMethodMappingsForType(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.ClassNamingForMapApplier,java.util.Map,java.util.Map):350:365 -> a
    49:64:void computeDefaultInterfaceMethodMethods():329 -> a
    49:64:com.android.tools.r8.naming.NamingLens run(com.android.tools.r8.utils.Timing):121 -> a
    65:69:void computeDefaultInterfaceMethodMappingsForType(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.ClassNamingForMapApplier,java.util.Map,java.util.Map):364:368 -> a
    65:69:void computeDefaultInterfaceMethodMethods():329 -> a
    65:69:com.android.tools.r8.naming.NamingLens run(com.android.tools.r8.utils.Timing):121 -> a
    70:70:void computeDefaultInterfaceMethodMappingsForType(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.ClassNamingForMapApplier,java.util.Map,java.util.Map):367:367 -> a
    70:70:void computeDefaultInterfaceMethodMethods():329 -> a
    70:70:com.android.tools.r8.naming.NamingLens run(com.android.tools.r8.utils.Timing):121 -> a
    71:113:com.android.tools.r8.naming.NamingLens run(com.android.tools.r8.utils.Timing):122:164 -> a
    114:114:void lambda$run$2(java.util.ArrayDeque,com.android.tools.r8.graph.DexType):112:112 -> a
    115:115:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    115:115:void lambda$run$2(java.util.ArrayDeque,com.android.tools.r8.graph.DexType):112 -> a
    116:117:void lambda$run$2(java.util.ArrayDeque,com.android.tools.r8.graph.DexType):113:114 -> a
    118:119:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):170:171 -> a
    120:120:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    120:120:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):171 -> a
    121:140:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):174:193 -> a
    141:156:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):190:205 -> a
    157:160:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):204:207 -> a
    161:161:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):163:163 -> a
    161:161:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):207 -> a
    162:167:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):208:213 -> a
    168:181:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):208:221 -> a
    182:195:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):220:233 -> a
    196:196:boolean com.android.tools.r8.graph.DexClass.isAbstract():589:589 -> a
    196:196:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):233 -> a
    197:210:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):234:247 -> a
    211:211:void lambda$computeMapping$4(java.util.Deque,com.android.tools.r8.graph.DexType):242:242 -> a
    212:219:void addNonPrivateInterfaceMappings(com.android.tools.r8.graph.DexType,java.util.Map,com.android.tools.r8.graph.DexType[]):253:260 -> a
    220:220:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    220:220:void addNonPrivateInterfaceMappings(com.android.tools.r8.graph.DexType,java.util.Map,com.android.tools.r8.graph.DexType[]):260 -> a
    221:221:void addNonPrivateInterfaceMappings(com.android.tools.r8.graph.DexType,java.util.Map,com.android.tools.r8.graph.DexType[]):262:262 -> a
    222:222:void lambda$addNonPrivateInterfaceMappings$6(com.android.tools.r8.graph.DexType,java.util.Map,com.android.tools.r8.naming.MemberNaming):259:259 -> a
    223:228:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):272:277 -> a
    229:231:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):276:278 -> a
    232:232:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):163:163 -> a
    232:232:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):278 -> a
    233:239:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):279:285 -> a
    240:242:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):284:286 -> a
    243:243:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):158:158 -> a
    243:243:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):286 -> a
    244:245:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):287:288 -> a
    246:247:void addMemberNaming(com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.MemberNaming,java.util.Map):295:296 -> a
    248:253:void addMemberNaming(com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.MemberNaming,java.util.Map):295:300 -> a
    254:261:void checkAndAddMappedNames(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,com.android.tools.r8.position.Position):305:312 -> a
    262:262:void checkAndAddMappedNames(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,com.android.tools.r8.position.Position):311:311 -> a
    263:267:void checkAndAddMappedNames(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,com.android.tools.r8.position.Position):310:314 -> a
    1:1:int lambda$run$1(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):94:94 -> b
    2:2:void lambda$computeMapping$3(com.android.tools.r8.graph.DexType,java.util.Map,com.android.tools.r8.naming.MemberNaming):186:186 -> b
    3:3:void lambda$computeMapping$5(java.util.Deque,com.android.tools.r8.graph.DexType):247:247 -> b
com.android.tools.r8.naming.ProguardMapMinifier$ApplyMappingClassNamingStrategy -> com.android.tools.r8.naming.L:
    boolean $assertionsDisabled -> h
    java.util.Map mappings -> g
    1:1:void <clinit>():373:373 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):378:379 -> <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):388:390 -> a
    4:4:boolean isRenamedByApplyMapping(com.android.tools.r8.graph.DexType):420:420 -> a
    1:1:com.android.tools.r8.graph.DexString reservedDescriptor(com.android.tools.r8.graph.DexType):398:398 -> b
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> b
    2:2:com.android.tools.r8.graph.DexString reservedDescriptor(com.android.tools.r8.graph.DexType):398 -> b
    3:18:com.android.tools.r8.graph.DexString reservedDescriptor(com.android.tools.r8.graph.DexType):400:415 -> b
com.android.tools.r8.naming.ProguardMapMinifier$ApplyMappingMemberNamingStrategy -> com.android.tools.r8.naming.M:
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.DexItemFactory factory -> i
    java.util.Map mappedNames -> h
    1:1:void <clinit>():424:424 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):432:435 -> <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):443:443 -> a
    2:2:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):163:163 -> 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):443 -> 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):444:454 -> a
    14:14:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> 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):455 -> 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):455:455 -> 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):454:454 -> 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):464:464 -> a
    18:18:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):158:158 -> 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):466 -> 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):466:466 -> 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):464:464 -> 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):482:484 -> a
    24:24:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> 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):484 -> 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):485:489 -> a
    30:36:void reportReservationError(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexString):538:544 -> 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):489 -> a
    37:37:void reportReservationError(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexString):541:541 -> 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):489 -> 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):493:495 -> a
    41:41:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):500:500 -> a
    42:42:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexClass):505:505 -> 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):509:527 -> 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):452:452 -> 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):471:471 -> b
com.android.tools.r8.naming.ProguardMapReader -> com.android.tools.r8.naming.P:
    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.O:
    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.Q:
    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:10:boolean com.android.tools.r8.naming.NamingLens.isIdentityLens():117:117 -> a
    10:10:java.lang.String getBody():113 -> a
    10:10:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():69 -> a
    11:24:java.lang.String getBody():114:127 -> a
    11:24:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():69 -> a
    25:25:java.lang.String getBody():125:125 -> a
    25:25:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():69 -> a
    26:52:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():70:96 -> a
    53:61:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():95:103 -> a
    62:62:boolean com.android.tools.r8.naming.NamingLens.isIdentityLens():117:117 -> a
    62:62:java.lang.String getBody():113 -> a
    62:62:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():69 -> a
com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId -> com.android.tools.r8.naming.Q$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.S:
    int to -> b
    int from -> a
    1:3:void <init>(int,int):12:14 -> <init>
    1:1:boolean contains(int):18:18 -> a
    1:6:boolean equals(java.lang.Object):31:36 -> equals
    1:2:int hashCode():41:42 -> hashCode
    1:1:java.lang.String toString():23:23 -> toString
com.android.tools.r8.naming.ReservedFieldNamingState -> com.android.tools.r8.naming.U:
    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.T:
    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.V:
    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.V$a:
com.android.tools.r8.naming.SeedMapper$Builder -> com.android.tools.r8.naming.V$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.W:
    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.X.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:32: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:158 -> a
    33: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:2:boolean com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping.needsToComputeClassName():30:30 -> e
    2:2:boolean needsToComputeName():144 -> e
    1:5:boolean equals(java.lang.Object):174:178 -> equals
    1:1:boolean needsToRegisterReference():149:149 -> f
    2:2:boolean com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping.needsToRegisterTypeReference():34:34 -> f
    2:2: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.X.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:6:void <clinit>():22:27 -> <clinit>
    7: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):239:240 -> 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.X.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.X.d:
    1:1:void <init>():12:12 -> <init>
    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo asClassNameComputationInfo() -> a
    1:4: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:19 -> a
    5:5: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):32:32 -> a
    5:5: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
    6:11: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):21: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.Y.a:
    java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String) -> a
    void parsedSymbol(char) -> a
    java.lang.Object parsedTypeName(java.lang.String) -> a
    void stop() -> a
    void parsedIdentifier(java.lang.String) -> b
    void start() -> b
com.android.tools.r8.naming.signature.GenericSignatureParser -> com.android.tools.r8.naming.Y.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>():51:51 -> <clinit>
    1:2:void <init>(com.android.tools.r8.naming.signature.GenericSignatureAction):73:74 -> <init>
    1:2:void parseClassSignature(java.lang.String):79:80 -> a
    3:10:void parseClassSignature():141:148 -> a
    3:10:void parseClassSignature(java.lang.String):81 -> a
    11:18:void parseClassSignature(java.lang.String):82:89 -> a
    19:19:void parseClassSignature(java.lang.String):84:84 -> a
    20:31:void parseOptFormalTypeParameters():155:166 -> a
    32:38:void expect(char):376:382 -> a
    39:39:void expect(char):377:377 -> a
    40:42:void parseError(java.lang.String,int):441:443 -> a
    1:11:void parseFieldSignature(java.lang.String):111:121 -> b
    12:12:void parseFieldSignature(java.lang.String):116:116 -> b
    13:29:void updateFormalTypeParameter():172:188 -> b
    1:11:void parseMethodSignature(java.lang.String):95:105 -> c
    12:12:void parseMethodSignature(java.lang.String):100:100 -> c
    13:42:void parseClassTypeSignature():215:244 -> c
    1:6:void setInput(java.lang.String):126:131 -> d
    7:21:void parseFieldTypeSignature():194:208 -> d
    22:22:void parseFieldTypeSignature():205:205 -> d
    23:23:void parseFieldTypeSignature():196:196 -> d
    1:11:void parseMethodTypeSignature():316:326 -> e
    12:16:void updateReturnType():347:351 -> e
    12:16:void parseMethodTypeSignature():328 -> e
    17:28:void parseMethodTypeSignature():330:341 -> e
    1:23:void scanIdentifier():402:424 -> f
    24:35:void scanIdentifier():417:428 -> f
    36:36:void parseError():437:437 -> f
    36:36:void scanIdentifier():429 -> f
    37:37:void scanIdentifier():432:432 -> f
    1:11:void scanSymbol():361:371 -> g
    1:11:void updateOptTypeArguments():249:259 -> h
    1:13:void updateTypeArgument():265:277 -> i
    1:15:void updateTypeSignature():295:309 -> j
    16:17:void updateTypeSignature():304:305 -> j
    1:9:void updateTypeVariableSignature():283:291 -> k
com.android.tools.r8.naming.signature.GenericSignatureRewriter -> com.android.tools.r8.naming.Y.e:
    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>():29:29 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):36:36 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):40:43 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$100(com.android.tools.r8.naming.signature.GenericSignatureRewriter):29:29 -> a
    2:24:void run(java.lang.Iterable):47:69 -> a
    25: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.DexClass,com.android.tools.r8.graph.DexEncodedField):63:64 -> a
    27:28:void lambda$run$4(com.android.tools.r8.naming.signature.GenericSignatureParser,com.android.tools.r8.naming.signature.GenericSignatureRewriter$GenericSignatureCollector,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):71:72 -> a
    29:67: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):89:127 -> a
    68:73:void parseError(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.origin.Origin,java.lang.String,java.lang.reflect.GenericSignatureFormatError):132:137 -> a
    74:74:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():671:671 -> a
    74:74:void parseError(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.origin.Origin,java.lang.String,java.lang.reflect.GenericSignatureFormatError):137 -> a
    75:88:void parseError(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.origin.Origin,java.lang.String,java.lang.reflect.GenericSignatureFormatError):137:150 -> a
    89:89:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():667:667 -> a
    89:89:void lambda$run$0(com.android.tools.r8.graph.DexClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):60 -> a
    90:90:void lambda$run$0(com.android.tools.r8.graph.DexClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):60:60 -> a
    91:91:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():667:667 -> a
    91:91:void lambda$run$1(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):68 -> a
    92:92:void lambda$run$1(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):68:68 -> a
    93:93:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():667:667 -> a
    93:93:void lambda$run$3(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):76 -> a
    94:94:void lambda$run$3(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):76:76 -> a
    1:1:java.util.Map access$200(com.android.tools.r8.naming.signature.GenericSignatureRewriter):29:29 -> b
    1:1:com.android.tools.r8.utils.Reporter access$300(com.android.tools.r8.naming.signature.GenericSignatureRewriter):29:29 -> c
com.android.tools.r8.naming.signature.GenericSignatureRewriter$1 -> com.android.tools.r8.naming.Y.c:
com.android.tools.r8.naming.signature.GenericSignatureRewriter$GenericSignatureCollector -> com.android.tools.r8.naming.Y.d:
    java.lang.StringBuilder renamedSignature -> a
    com.android.tools.r8.naming.signature.GenericSignatureRewriter this$0 -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():153:153 -> <clinit>
    1:1:void <init>(com.android.tools.r8.naming.signature.GenericSignatureRewriter):153:153 -> <init>
    2:2:void <init>(com.android.tools.r8.naming.signature.GenericSignatureRewriter,com.android.tools.r8.naming.signature.GenericSignatureRewriter$1):153:153 -> <init>
    void stop() -> a
    1:1:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):153:153 -> a
    2:9:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):184:191 -> a
    2:9:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):153 -> a
    10:10:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):190:190 -> a
    10:10:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):153 -> a
    11:18:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):189:196 -> a
    11:18:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):153 -> a
    19:34:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):195:210 -> a
    19:34:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):153 -> a
    35:44:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):207:216 -> a
    35:44:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):153 -> a
    45:45:void parsedSymbol(char):162:162 -> a
    46:52:com.android.tools.r8.graph.DexType parsedTypeName(java.lang.String):172:178 -> a
    46:52:java.lang.Object parsedTypeName(java.lang.String):153 -> a
    1:1:void parsedIdentifier(java.lang.String):167:167 -> b
    2:2:void start():223:223 -> b
    1:1:java.lang.String getRenamedSignature():157:157 -> c
com.android.tools.r8.optimize.ClassAndMemberPublicizer -> com.android.tools.r8.C.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):37:37 -> <init>
    2:8:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView):34:40 -> <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):57:57 -> a
    2:12:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):63:73 -> 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):57 -> a
    13:37:void publicizeType(com.android.tools.r8.graph.DexType):77:101 -> a
    38:44:void publicizeType(com.android.tools.r8.graph.DexType):99:105 -> a
    45:45:void lambda$publicizeType$0(com.android.tools.r8.graph.DexEncodedField):82:82 -> a
    46:90:boolean publicizeMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):109:153 -> a
    46:90:void lambda$publicizeType$1(com.android.tools.r8.graph.DexClass,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):87 -> a
    91:91:boolean publicizeMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):114:114 -> a
    91:91:void lambda$publicizeType$1(com.android.tools.r8.graph.DexClass,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):87 -> a
    92:92:void lambda$publicizeType$1(com.android.tools.r8.graph.DexClass,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):88:88 -> a
com.android.tools.r8.optimize.InvokeSingleTargetExtractor -> com.android.tools.r8.C.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.C.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.C.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):168:168 -> 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):168:168 -> 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):168:168 -> 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):168:168 -> 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):168:168 -> 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):168:168 -> 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):168:168 -> 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():335:335 -> 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):168:168 -> 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):168:168 -> 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):168:168 -> 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):168:168 -> 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:133:void computeFieldRebindingForIndirectAccesses(com.android.tools.r8.graph.FieldAccessInfo):288:288 -> a
    134:152:void computeFieldRebindingForIndirectAccessWithContexts(com.android.tools.r8.graph.DexField,java.util.Set):294:312 -> a
    153:153: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
    153:153:void computeFieldRebindingForIndirectAccessWithContexts(com.android.tools.r8.graph.DexField,java.util.Set):313 -> a
    154:154:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    154:154: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
    154:154:void computeFieldRebindingForIndirectAccessWithContexts(com.android.tools.r8.graph.DexField,java.util.Set):313 -> a
    155:165: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
    155:165:void computeFieldRebindingForIndirectAccessWithContexts(com.android.tools.r8.graph.DexField,java.util.Set):313 -> a
    166:166:void computeFieldRebindingForIndirectAccessWithContexts(com.android.tools.r8.graph.DexField,java.util.Set):313:313 -> a
    167:167:void computeFieldRebindingForIndirectAccessWithContexts(com.android.tools.r8.graph.DexField,java.util.Set):312:312 -> a
    168:168:boolean lambda$computeFieldRebindingForIndirectAccessWithContexts$1(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexEncodedMethod):310:310 -> a
    169:169:boolean isClassTypeVisibleFromContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):328:328 -> a
    170:170:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    170:170:boolean isClassTypeVisibleFromContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):329 -> a
    171:171:boolean isClassTypeVisibleFromContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):330:330 -> a
    172:174:boolean isClassTypeVisibleFromContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):335:337 -> a
    175:180: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
    181:195:com.android.tools.r8.graph.GraphLense run():351:365 -> a
    1:1:com.android.tools.r8.graph.DexEncodedMethod classLookup(com.android.tools.r8.graph.DexMethod):110:110 -> b
    2:4:void computeFieldRebinding():282:284 -> b
    5:9:boolean isTypeVisibleFromContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):319:323 -> 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.C.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.C.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.C.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 -> c
    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):168:168 -> 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.C.g:
com.android.tools.r8.optimize.PublicizerLense$PublicizedLenseBuilder -> com.android.tools.r8.C.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.C.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):103:103 -> 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.D.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.D.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.D.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.D.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.D.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:6:com.android.tools.r8.org.objectweb.asm.ByteVector putByte(int):75:80 -> a
    7:14:com.android.tools.r8.org.objectweb.asm.ByteVector put11(int,int):92:99 -> a
    15:24:com.android.tools.r8.org.objectweb.asm.ByteVector put112(int,int,int):152:161 -> a
    25:40:com.android.tools.r8.org.objectweb.asm.ByteVector putLong(long):216:231 -> a
    41:65:com.android.tools.r8.org.objectweb.asm.ByteVector putUTF8(java.lang.String):244:268 -> a
    66:66:com.android.tools.r8.org.objectweb.asm.ByteVector putUTF8(java.lang.String):246:246 -> a
    67:105:com.android.tools.r8.org.objectweb.asm.ByteVector encodeUtf8(java.lang.String,int,int):285:323 -> a
    106:106:com.android.tools.r8.org.objectweb.asm.ByteVector encodeUtf8(java.lang.String,int,int):298:298 -> a
    107:113:com.android.tools.r8.org.objectweb.asm.ByteVector putByteArray(byte[],int,int):339:345 -> a
    1:9:com.android.tools.r8.org.objectweb.asm.ByteVector put12(int,int):130:138 -> b
    10:19:com.android.tools.r8.org.objectweb.asm.ByteVector putInt(int):172:181 -> b
    20:30:com.android.tools.r8.org.objectweb.asm.ByteVector put122(int,int,int):195:205 -> b
    1:8:com.android.tools.r8.org.objectweb.asm.ByteVector putShort(int):110:117 -> c
    1:5:void enlarge(int):355:359 -> d
com.android.tools.r8.org.objectweb.asm.ClassReader -> com.android.tools.r8.D.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:11:byte[] readStream(java.io.InputStream,boolean):312:322 -> a
    12:24:byte[] readStream(java.io.InputStream,boolean):312: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:3909:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2828:2830 -> a
    3910:3910:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2828:2828 -> a
    3911:3912:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2822:2823 -> a
    3913: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:3917:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2809:2810 -> a
    3918:3918:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2809:2809 -> a
    3919:3920:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2804:2805 -> a
    3921:3970:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2804: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:128:int getItemCount():3315:3315 -> b
    129:129:int readByte(int):3351:3351 -> b
    130:159:java.lang.Object readConst(int,char[]):3587:3616 -> b
    160:176:com.android.tools.r8.org.objectweb.asm.ConstantDynamic readConstantDynamic(int,char[]):3552:3568 -> b
    160:176:java.lang.Object readConst(int,char[]):3614 -> b
    177:187:java.lang.Object readConst(int,char[]):3602:3612 -> b
    188:188:java.lang.Object readConst(int,char[]):3600:3600 -> b
    189:189:java.lang.Object readConst(int,char[]):3598:3598 -> b
    190:190:java.lang.Object readConst(int,char[]):3596:3596 -> b
    191:191:java.lang.Object readConst(int,char[]):3594:3594 -> b
    192:192:java.lang.Object readConst(int,char[]):3592:3592 -> b
    193:193:java.lang.Object readConst(int,char[]):3590:3590 -> b
    1:1:int getMaxStringLength():3340:3340 -> c
    2:3:int readInt(int):3386:3387 -> c
    4:4:java.lang.String readStringish(int,char[]):3493:3493 -> c
    4:4:java.lang.String readModule(int,char[]):3523 -> c
    1:2:long readLong(int):3401:3402 -> d
    3:3:java.lang.String readStringish(int,char[]):3493:3493 -> d
    3:3:java.lang.String readPackage(int,char[]):3538 -> d
    1:2:short readShort(int):3374:3375 -> e
    3:7:java.lang.String readUTF8(int,char[]):3419:3423 -> e
    1:2:int readUnsignedShort(int):3362:3363 -> f
    3:9:java.lang.String readUtf(int,char[]):3436:3442 -> f
    1:25:int[] readBootstrapMethodsAttribute(int):3241:3265 -> g
com.android.tools.r8.org.objectweb.asm.ClassTooLargeException -> com.android.tools.r8.D.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.D.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>
    com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]) -> a
    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: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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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
    void visitCode() -> b
    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 visitIntInsn(int,int):332:333 -> b
    9:13: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
    14:14: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
    15:16:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):749:750 -> b
    void visitEnd() -> c
    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
    1:2:void visitVarInsn(int,int):347:348 -> d
com.android.tools.r8.org.objectweb.asm.MethodWriter -> com.android.tools.r8.D.a.a.v:
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleAnnotation -> I
    int nameIndex -> l
    boolean hasAsmInstructions -> f0
    com.android.tools.r8.org.objectweb.asm.ByteVector defaultValue -> Q
    com.android.tools.r8.org.objectweb.asm.ByteVector code -> r
    int visibleAnnotableParameterCount -> K
    com.android.tools.r8.org.objectweb.asm.Label currentBasicBlock -> X
    com.android.tools.r8.org.objectweb.asm.ByteVector lineNumberTable -> v
    com.android.tools.r8.org.objectweb.asm.ByteVector localVariableTypeTable -> z
    int localVariableTypeTableLength -> y
    com.android.tools.r8.org.objectweb.asm.Attribute firstAttribute -> T
    int lineNumberTableLength -> u
    int maxLocals -> q
    int previousFrameOffset -> b0
    int sourceOffset -> h0
    java.lang.String name -> m
    int signatureIndex -> H
    com.android.tools.r8.org.objectweb.asm.Label lastBasicBlock -> W
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleAnnotation -> J
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter[] lastRuntimeVisibleParameterAnnotations -> L
    int[] STACK_SIZE_DELTA -> j0
    int relativeStackSize -> Y
    int[] currentFrame -> d0
    int compute -> U
    int descriptorIndex -> n
    boolean hasSubroutines -> e0
    int invisibleAnnotableParameterCount -> M
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastCodeRuntimeVisibleTypeAnnotation -> C
    com.android.tools.r8.org.objectweb.asm.Label firstBasicBlock -> V
    com.android.tools.r8.org.objectweb.asm.ByteVector parameters -> S
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleTypeAnnotation -> O
    com.android.tools.r8.org.objectweb.asm.ByteVector localVariableTable -> x
    int stackMapTableNumberOfEntries -> A
    int[] exceptionIndexTable -> G
    int maxRelativeStackSize -> Z
    com.android.tools.r8.org.objectweb.asm.ByteVector stackMapTableEntries -> B
    int localVariableTableLength -> w
    com.android.tools.r8.org.objectweb.asm.Handler lastHandler -> t
    int parametersCount -> R
    int currentLocals -> a0
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastCodeRuntimeInvisibleTypeAnnotation -> D
    int accessFlags -> k
    int lastBytecodeOffset -> g0
    java.lang.String descriptor -> o
    com.android.tools.r8.org.objectweb.asm.Attribute firstCodeAttribute -> E
    int numberOfExceptions -> F
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleTypeAnnotation -> P
    int sourceLength -> i0
    com.android.tools.r8.org.objectweb.asm.SymbolTable symbolTable -> j
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter[] lastRuntimeInvisibleParameterAnnotations -> N
    com.android.tools.r8.org.objectweb.asm.Handler firstHandler -> s
    int[] previousFrame -> 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:2:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotationDefault():651:652 -> a
    3:7:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):658:662 -> a
    8:10:void visitAnnotableParameterCount(int,boolean):683:685 -> a
    11:24:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):693:706 -> a
    25:26:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):720:721 -> a
    27:27:boolean com.android.tools.r8.org.objectweb.asm.Attribute.isCodeAttribute():0:0 -> a
    27:27:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):716 -> 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:121:int computeMethodInfoSize():2090:2123 -> d
    122:205:int computeMethodInfoSize():2083:2166 -> d
    1:1:boolean hasAsmInstructions():633:633 -> e
    2:3:void setMethodAttributesSource(int,int):2062:2063 -> e
    1:1:boolean hasFrames():629:629 -> f
    2:2:void visitAbstractType(int,int):1834:1834 -> f
    1:3:void visitFrameEnd():1843:1845 -> g
    4:90:void putFrame():1856:1942 -> g
    4:90:void visitFrameEnd():1847 -> g
    91:94:void putFrame():1932:1935 -> g
    91:94:void visitFrameEnd():1847 -> g
    95:100:void putFrame():1924:1929 -> g
    95:100:void visitFrameEnd():1847 -> g
    101:104:void putFrame():1918:1921 -> g
    101:104:void visitFrameEnd():1847 -> g
    105:106:void putFrame():1914:1915 -> g
    105:106:void visitFrameEnd():1847 -> g
    107:107:void putFrame():1911:1911 -> g
    107:107:void visitFrameEnd():1847 -> g
    108:111:void visitFrameEnd():1848:1851 -> g
    112:112:void putAbstractTypes(int,int):1956:1956 -> g
    113:116: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 -> g
    113:116:void putAbstractTypes(int,int):1956 -> g
    117:118: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 -> g
    117:118:void putAbstractTypes(int,int):1956 -> g
    119:170: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 -> g
    119:170:void putAbstractTypes(int,int):1956 -> g
    171:171: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 -> g
    171:171:void putAbstractTypes(int,int):1956 -> g
    172:172: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 -> g
    172:172:void putAbstractTypes(int,int):1956 -> g
    173:173: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 -> g
    173:173:void putAbstractTypes(int,int):1956 -> g
    174:195: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 -> g
    174:195:void putAbstractTypes(int,int):1956 -> g
    196:196: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 -> g
    196:196:void putAbstractTypes(int,int):1956 -> g
    197:214: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 -> g
    197:214:void putAbstractTypes(int,int):1956 -> g
    1:10:void endCurrentBasicBlockWithNoSuccessor():1791:1800 -> h
com.android.tools.r8.org.objectweb.asm.ModuleVisitor -> com.android.tools.r8.D.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.D.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.D.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.D.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:2:int setMajorVersionAndClassName(int,java.lang.String):318:319 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.Symbol addConstantClass(java.lang.String):513:513 -> a
    3:3:int setMajorVersionAndClassName(int,java.lang.String):320 -> a
    4:4:int setMajorVersionAndClassName(int,java.lang.String):320:320 -> a
    5:7:int computeBootstrapMethodsSize():358:360 -> a
    8:13:void putBootstrapMethods(com.android.tools.r8.org.objectweb.asm.ByteVector):373:378 -> a
    14:15:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):457:458 -> a
    16:16:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):615:615 -> a
    16:16:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):458 -> a
    17:18:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):459:460 -> a
    19:19:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):615:615 -> a
    19:19:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):460 -> a
    20:21:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):461:462 -> a
    22:22:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):615:615 -> a
    22:22:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):462 -> a
    23:24:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):463:464 -> a
    25:25:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):615:615 -> a
    25:25:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):464 -> a
    26:27:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):465:466 -> a
    28:28:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):615:615 -> a
    28:28:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):466 -> a
    29:30:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):467:468 -> a
    31:31:com.android.tools.r8.org.objectweb.asm.Symbol addConstantFloat(float):626:626 -> a
    31:31:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):468 -> a
    32:33:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):469:470 -> a
    34:34:com.android.tools.r8.org.objectweb.asm.Symbol addConstantLong(long):670:670 -> a
    34:34:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):470 -> a
    35:36:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):471:472 -> a
    37:37:com.android.tools.r8.org.objectweb.asm.Symbol addConstantDouble(double):681:681 -> a
    37:37:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):472 -> a
    38:39:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):473:474 -> a
    40:40:com.android.tools.r8.org.objectweb.asm.Symbol addConstantString(java.lang.String):604:604 -> a
    40:40:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):474 -> a
    41:45:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):475:479 -> 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):479 -> a
    47:47:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):481:481 -> a
    48:48:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodType(java.lang.String):865:865 -> a
    48:48:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):481 -> a
    49:49:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):483:483 -> a
    50:50:com.android.tools.r8.org.objectweb.asm.Symbol addConstantClass(java.lang.String):513:513 -> a
    50:50:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):483 -> a
    51:58:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):485:492 -> a
    59:71:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):487:499 -> a
    72:73: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
    72:73:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):495 -> a
    74:74:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):501:501 -> a
    75:75:com.android.tools.r8.org.objectweb.asm.Symbol addConstantClass(java.lang.String):513:513 -> a
    76:76:com.android.tools.r8.org.objectweb.asm.Symbol addConstantFieldref(java.lang.String,java.lang.String,java.lang.String):526:526 -> a
    77:77:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodref(java.lang.String,java.lang.String,java.lang.String,boolean):542:542 -> a
    78:78:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):615:615 -> a
    79:79:com.android.tools.r8.org.objectweb.asm.Symbol addConstantFloat(float):626:626 -> a
    80:80:com.android.tools.r8.org.objectweb.asm.Symbol addConstantLong(long):670:670 -> a
    81:81:com.android.tools.r8.org.objectweb.asm.Symbol addConstantDouble(double):681:681 -> a
    82:92:com.android.tools.r8.org.objectweb.asm.Symbol addConstantLongOrDouble(int,long):694:704 -> a
    93:94: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
    95:118:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1040:1063 -> a
    119:119:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1058:1058 -> a
    120:138:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1057:1075 -> a
    139:139:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(int,int,int):1094:1094 -> a
    139:139:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1080 -> a
    140:140:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry get(int):394:394 -> a
    140:140:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(int,int,int):1095 -> a
    140:140:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1080 -> a
    141:157:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(int,int,int):1097:1113 -> a
    141:157:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1080 -> a
    158:168:int addMergedType(int,int):1190:1200 -> a
    169:169:java.lang.ClassLoader com.android.tools.r8.org.objectweb.asm.ClassWriter.getClassLoader():963:963 -> a
    169:169:java.lang.String com.android.tools.r8.org.objectweb.asm.ClassWriter.getCommonSuperClass(java.lang.String,java.lang.String):926 -> a
    169:169:int addMergedType(int,int):1200 -> a
    170:192:java.lang.String com.android.tools.r8.org.objectweb.asm.ClassWriter.getCommonSuperClass(java.lang.String,java.lang.String):929:951 -> a
    170:192:int addMergedType(int,int):1200 -> a
    193:194:int addMergedType(int,int):1200:1201 -> a
    195:195:java.lang.String com.android.tools.r8.org.objectweb.asm.ClassWriter.getCommonSuperClass(java.lang.String,java.lang.String):937:937 -> a
    195:195:int addMergedType(int,int):1200 -> a
    196:196:java.lang.String com.android.tools.r8.org.objectweb.asm.ClassWriter.getCommonSuperClass(java.lang.String,java.lang.String):931:931 -> a
    196:196:int addMergedType(int,int):1200 -> a
    197:197:java.lang.ClassLoader com.android.tools.r8.org.objectweb.asm.ClassWriter.getClassLoader():963:963 -> a
    197:197:java.lang.String com.android.tools.r8.org.objectweb.asm.ClassWriter.getCommonSuperClass(java.lang.String,java.lang.String):926 -> a
    197:197:int addMergedType(int,int):1200 -> a
    198:207:int addTypeInternal(com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry):1214:1223 -> a
    208:208:int hash(int,java.lang.String,int):1243:1243 -> a
    208:208:int addUninitializedType(java.lang.String,int):1159 -> a
    209:219:int addUninitializedType(java.lang.String,int):1160:1170 -> a
    220:220:int hash(int,java.lang.String,java.lang.String):1247:1247 -> a
    220:220:int addConstantNameAndType(java.lang.String,java.lang.String):729 -> a
    221:232:int addConstantNameAndType(java.lang.String,java.lang.String):730:741 -> a
    233:233:int hash(int,java.lang.String,java.lang.String,int):1252:1252 -> a
    233:233:com.android.tools.r8.org.objectweb.asm.Symbol addConstantDynamicOrInvokeDynamicReference(int,java.lang.String,java.lang.String,int):924 -> a
    234:246:com.android.tools.r8.org.objectweb.asm.Symbol addConstantDynamicOrInvokeDynamicReference(int,java.lang.String,java.lang.String,int):925:937 -> a
    247:247:int hash(int,java.lang.String,java.lang.String,java.lang.String):1257:1257 -> a
    247:247:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):559 -> a
    248:259:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):560:571 -> a
    260:260:com.android.tools.r8.org.objectweb.asm.Symbol addConstantClass(java.lang.String):513:513 -> a
    260:260:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):572 -> a
    261:261:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):572:572 -> a
    262:264:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):571:573 -> a
    265:265:int hash(int,java.lang.String,java.lang.String,java.lang.String,int):1266:1266 -> a
    265:265:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):811 -> a
    266:279:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):812:825 -> a
    280:280:com.android.tools.r8.org.objectweb.asm.Symbol addConstantFieldref(java.lang.String,java.lang.String,java.lang.String):526:526 -> a
    280:280:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):825 -> a
    281:283:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):825:827 -> a
    284:284:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodref(java.lang.String,java.lang.String,java.lang.String,boolean):542:542 -> a
    284:284:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):828 -> a
    285:285:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):828:828 -> a
    286:289: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:2:void putConstantPool(com.android.tools.r8.org.objectweb.asm.ByteVector):348:348 -> b
    3:22:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry put(com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry):407:426 -> b
    23:32:com.android.tools.r8.org.objectweb.asm.Symbol addConstantIntegerOrFloat(int,int):638:647 -> b
    33:33:com.android.tools.r8.org.objectweb.asm.Symbol addConstantModule(java.lang.String):972:972 -> b
    34:34:com.android.tools.r8.org.objectweb.asm.Symbol getType(int):1127:1127 -> b
    35:35:int hash(int,java.lang.String):1239:1239 -> b
    35:35:com.android.tools.r8.org.objectweb.asm.Symbol addConstantUtf8Reference(int,java.lang.String):999 -> b
    36:44:com.android.tools.r8.org.objectweb.asm.Symbol addConstantUtf8Reference(int,java.lang.String):1000:1008 -> b
    int hash(int,int) -> c
    1:1:int getConstantPoolCount():329:329 -> c
    2:2:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry get(int):394:394 -> c
    3:3:com.android.tools.r8.org.objectweb.asm.Symbol addConstantPackage(java.lang.String):983:983 -> 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.D.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.D.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.D.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.D.a.a.D.b:
    java.util.BitSet sharedSubroutineInsns -> F
    java.util.Map subroutinesInsns -> E
    java.util.BitSet mainSubroutineInsns -> D
    1:3:void <init>(com.android.tools.r8.org.objectweb.asm.MethodVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):101:103 -> <init>
    4:4: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>
    5:70: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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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:45:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):349:355 -> a
    46: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:215:void com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):107:108 -> a
    214:215:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):780 -> a
    216:222:void com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):107:113 -> a
    216: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:240:void com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):89:90 -> a
    239:240:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):788 -> a
    241:241:void com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):89:89 -> a
    241: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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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.D.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>():10:10 -> <clinit>
    1:5:void <init>(int,com.android.tools.r8.references.TypeReference,java.lang.String):17:21 -> <init>
    1:10:com.android.tools.r8.references.ArrayReference fromDescriptor(java.lang.String):25:34 -> a
    1:1:com.android.tools.r8.references.TypeReference getBaseType():46:46 -> getBaseType
    1:1:java.lang.String getDescriptor():56:56 -> getDescriptor
    1:1:int getDimensions():38:38 -> getDimensions
    1:1:com.android.tools.r8.references.TypeReference getMemberType():42:42 -> getMemberType
    1:1:int hashCode():66:66 -> 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):14:15 -> <init>
    1:1:com.android.tools.r8.references.ClassReference fromDescriptor(java.lang.String):19:19 -> a
    1:1:java.lang.String getDescriptor():29:29 -> getDescriptor
    1:1:int hashCode():39:39 -> hashCode
    1:1:java.lang.String toString():44:44 -> 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):21:27 -> <init>
    1:7:boolean equals(java.lang.Object):50:56 -> equals
    1:1:java.lang.String getFieldName():35:35 -> getFieldName
    1:1:com.android.tools.r8.references.TypeReference getFieldType():39:39 -> getFieldType
    1:1:com.android.tools.r8.references.ClassReference getHolderClass():31:31 -> getHolderClass
    1:1:int hashCode():61:61 -> hashCode
    1:1:java.lang.String toString():66:66 -> toString
com.android.tools.r8.references.MethodReference -> com.android.tools.r8.references.MethodReference:
    com.android.tools.r8.references.ClassReference holderClass -> a
    boolean $assertionsDisabled -> e
    com.android.tools.r8.references.TypeReference returnType -> d
    java.lang.String methodName -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList formalTypes -> c
    1:1:void <clinit>():20:20 -> <clinit>
    1:8:void <init>(com.android.tools.r8.references.ClassReference,java.lang.String,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.references.TypeReference):31:38 -> <init>
    1:8:boolean equals(java.lang.Object):65:72 -> equals
    1:1:java.util.List getFormalTypes():50:50 -> getFormalTypes
    1:1:com.android.tools.r8.references.ClassReference getHolderClass():42:42 -> getHolderClass
    1:2:java.lang.String getMethodDescriptor():81:82 -> getMethodDescriptor
    3:5:java.lang.String getMethodDescriptor():81:83 -> getMethodDescriptor
    1:1:java.lang.String getMethodName():46:46 -> getMethodName
    1:1:com.android.tools.r8.references.TypeReference getReturnType():54:54 -> getReturnType
    1:1:int hashCode():77:77 -> hashCode
    1:1:java.lang.String toString():88:88 -> toString
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():117:117 -> 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):81:81 -> a
    6:10:com.android.tools.r8.references.MethodReference lambda$method$0(com.android.tools.r8.references.MethodReference):131:135 -> a
    11:11:com.android.tools.r8.references.FieldReference lambda$field$1(com.android.tools.r8.references.FieldReference):176:176 -> a
    1:1:com.android.tools.r8.references.ArrayReference arrayFromDescriptor(java.lang.String):118:118 -> arrayFromDescriptor
    1:1:com.android.tools.r8.references.MethodReference classConstructor(com.android.tools.r8.references.ClassReference):167:167 -> classConstructor
    1:1:com.android.tools.r8.references.ClassReference classFromBinaryName(java.lang.String):99:99 -> classFromBinaryName
    1:1:com.android.tools.r8.references.ClassReference classFromClass(java.lang.Class):113:113 -> classFromClass
    1:1:com.android.tools.r8.references.ClassReference classFromDescriptor(java.lang.String):90:90 -> classFromDescriptor
    1:1:com.android.tools.r8.references.ClassReference classFromTypeName(java.lang.String):108:108 -> 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):173:174 -> field
    1:4:com.android.tools.r8.references.FieldReference fieldFromField(java.lang.reflect.Field):181:184 -> 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):127:129 -> method
    1:13:com.android.tools.r8.references.MethodReference methodFromMethod(java.lang.reflect.Method):140:152 -> methodFromMethod
    14:14:com.android.tools.r8.references.MethodReference methodFromMethod(java.lang.reflect.Method):148:148 -> methodFromMethod
    15:21:com.android.tools.r8.references.MethodReference methodFromMethod(java.lang.reflect.Constructor):157:163 -> 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):85 -> 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):85 -> 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):85 -> 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):85 -> 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):85 -> primitiveFromDescriptor
    1:7:com.android.tools.r8.references.TypeReference typeFromDescriptor(java.lang.String):69:75 -> typeFromDescriptor
    8:8:com.android.tools.r8.references.TypeReference typeFromDescriptor(java.lang.String):73:73 -> typeFromDescriptor
    9:9:com.android.tools.r8.references.TypeReference typeFromDescriptor(java.lang.String):71:71 -> typeFromDescriptor
com.android.tools.r8.references.TypeReference -> com.android.tools.r8.references.TypeReference:
    1:1:java.lang.String getTypeName():35:35 -> getTypeName
com.android.tools.r8.retrace.Retrace -> com.android.tools.r8.retrace.Retrace:
    boolean $assertionsDisabled -> a
    1:5:void <clinit>():34:38 -> <clinit>
    1:1:void <init>():35:35 -> <init>
    1:7:com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer getMappingSupplier(java.lang.String,com.android.tools.r8.DiagnosticsHandler):92:98 -> a
    8:9:com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer getMappingSupplier(java.lang.String,com.android.tools.r8.DiagnosticsHandler):94:95 -> a
    10:12:com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer getMappingSupplier(java.lang.String,com.android.tools.r8.DiagnosticsHandler):94:96 -> a
    13:13:java.lang.String lambda$getMappingSupplier$0(java.nio.file.Path):98:98 -> a
    14:14:void lambda$run$1(java.util.List):141:141 -> a
    15:15:void lambda$main$2(java.lang.String[]):150:150 -> a
    1:1:void run(java.lang.String[]):132:132 -> b
    2:28:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):43:69 -> b
    2:28:void run(java.lang.String[]):133 -> b
    29:29:java.util.List getStackTraceFromFile(java.lang.String,com.android.tools.r8.DiagnosticsHandler):104:104 -> b
    29:29:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):69 -> b
    29:29:void run(java.lang.String[]):133 -> b
    30:31:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):69:70 -> b
    30:31:void run(java.lang.String[]):133 -> b
    32:33:java.util.List getStackTraceFromFile(java.lang.String,com.android.tools.r8.DiagnosticsHandler):106:107 -> b
    32:33:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):69 -> b
    32:33:void run(java.lang.String[]):133 -> b
    34:36:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):73:75 -> b
    34:36:void run(java.lang.String[]):133 -> b
    37:41:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):73:77 -> b
    37:41:void run(java.lang.String[]):133 -> b
    42:45:java.util.List getStackTraceFromStandardInput():154:157 -> b
    42:45:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):85 -> b
    42:45:void run(java.lang.String[]):133 -> b
    46:46:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):85:85 -> b
    46:46:void run(java.lang.String[]):133 -> b
    47:53:void run(java.lang.String[]):136:142 -> b
    54:55:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):81:82 -> b
    54:55:void run(java.lang.String[]):133 -> b
    1:1:void main(java.lang.String[]):150:150 -> main
    2:10:void withMainProgramHandler(com.android.tools.r8.retrace.Retrace$MainAction):170:178 -> main
    2:10:void main(java.lang.String[]):150 -> main
    11:11:void withMainProgramHandler(com.android.tools.r8.retrace.Retrace$MainAction):173:173 -> main
    11:11:void main(java.lang.String[]):150 -> main
    1:9:void run(com.android.tools.r8.retrace.RetraceCommand):118:126 -> run
    10:12:void run(com.android.tools.r8.retrace.RetraceCommand):125:127 -> run
com.android.tools.r8.retrace.Retrace$1 -> com.android.tools.r8.retrace.Retrace$a:
    1:1:void <init>():132:132 -> <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$RetraceAbortException:
    1:1:void <init>():162:162 -> <init>
com.android.tools.r8.retrace.RetraceCommand -> com.android.tools.r8.retrace.RetraceCommand:
    com.android.tools.r8.DiagnosticsHandler diagnosticsHandler -> a
    java.util.function.Consumer retracedStackTraceConsumer -> d
    com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer proguardMapProducer -> b
    java.util.List stackTrace -> c
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():13:13 -> <clinit>
    1:1:void <init>(boolean,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):13:13 -> <init>
    2:12:void <init>(boolean,com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer,java.util.List,java.util.function.Consumer):26:36 -> <init>
    1:1:com.android.tools.r8.retrace.RetraceCommand$Builder builder(com.android.tools.r8.DiagnosticsHandler):45:45 -> a
    2:2:com.android.tools.r8.retrace.RetraceCommand$Builder builder():50:50 -> a
com.android.tools.r8.retrace.RetraceCommand$1 -> com.android.tools.r8.retrace.RetraceCommand$a:
    1:1:void <init>():50:50 -> <init>
com.android.tools.r8.retrace.RetraceCommand$Builder -> com.android.tools.r8.retrace.RetraceCommand$b:
    com.android.tools.r8.DiagnosticsHandler diagnosticsHandler -> a
    java.util.function.Consumer retracedStackTraceConsumer -> d
    com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer proguardMapProducer -> b
    java.util.List stackTrace -> c
    1:1:void <init>(com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.retrace.RetraceCommand$1):53:53 -> <init>
    2:3:void <init>(com.android.tools.r8.DiagnosticsHandler):61:62 -> <init>
    1:1:com.android.tools.r8.retrace.RetraceCommand$Builder setProguardMapProducer(com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer):77:77 -> a
    2:2:com.android.tools.r8.retrace.RetraceCommand$Builder setStackTrace(java.util.List):88:88 -> a
    3:3:com.android.tools.r8.retrace.RetraceCommand$Builder setRetracedStackTraceConsumer(java.util.function.Consumer):98:98 -> a
    4:16:com.android.tools.r8.retrace.RetraceCommand build():103:115 -> a
    17:17:com.android.tools.r8.retrace.RetraceCommand build():113:113 -> a
    18:18:com.android.tools.r8.retrace.RetraceCommand build():110:110 -> a
    19:19:com.android.tools.r8.retrace.RetraceCommand build():107:107 -> a
    20:20:com.android.tools.r8.retrace.RetraceCommand build():104:104 -> a
com.android.tools.r8.retrace.RetraceCore -> com.android.tools.r8.retrace.e:
    java.util.List stackTrace -> b
    com.android.tools.r8.naming.ClassNameMapper classNameMapper -> a
    com.android.tools.r8.DiagnosticsHandler diagnosticsHandler -> c
    1:4:void <init>(com.android.tools.r8.naming.ClassNameMapper,java.util.List,com.android.tools.r8.DiagnosticsHandler):110:113 -> <init>
    1:3:com.android.tools.r8.retrace.RetraceCore$RetraceResult retrace():117:119 -> a
    4:7:void retraceLine(java.util.List,int,java.util.List):123:126 -> a
    8:8:com.android.tools.r8.retrace.RetraceCore$StackTraceLine parseLine(int,java.lang.String):538:538 -> a
    8:8:void retraceLine(java.util.List,int,java.util.List):126 -> a
    9:29:com.android.tools.r8.retrace.RetraceCore$ExceptionLine com.android.tools.r8.retrace.RetraceCore$ExceptionLine.tryParse(java.lang.String):202:222 -> a
    9:29:com.android.tools.r8.retrace.RetraceCore$StackTraceLine parseLine(int,java.lang.String):542 -> a
    9:29:void retraceLine(java.util.List,int,java.util.List):126 -> a
    30:40:com.android.tools.r8.retrace.RetraceCore$StackTraceLine com.android.tools.r8.retrace.RetraceCore$MoreLine.tryParse(java.lang.String):487:497 -> a
    30:40:com.android.tools.r8.retrace.RetraceCore$StackTraceLine parseLine(int,java.lang.String):546 -> a
    30:40:void retraceLine(java.util.List,int,java.util.List):126 -> a
    41:42:com.android.tools.r8.retrace.RetraceCore$StackTraceLine parseLine(int,java.lang.String):548:549 -> a
    41:42:void retraceLine(java.util.List,int,java.util.List):126 -> a
    43:46:com.android.tools.r8.retrace.RetraceCore$StackTraceLine parseLine(int,java.lang.String):548:551 -> a
    43:46:void retraceLine(java.util.List,int,java.util.List):126 -> a
    47:50:void retraceLine(java.util.List,int,java.util.List):127:130 -> a
    51:52:com.android.tools.r8.retrace.RetraceCore$StackTraceLine parseLine(int,java.lang.String):534:535 -> a
    51:52:void retraceLine(java.util.List,int,java.util.List):126 -> a
com.android.tools.r8.retrace.RetraceCore$AtLine -> com.android.tools.r8.retrace.a:
    java.util.Set UNKNOWN_SOURCEFILE_NAMES -> h
    boolean $assertionsDisabled -> i
    int linePosition -> f
    java.lang.String startingWhitespace -> a
    boolean isAmbiguous -> g
    java.lang.String clazz -> c
    java.lang.String at -> b
    java.lang.String fileName -> e
    java.lang.String method -> d
    1:4:void <clinit>():254:257 -> <clinit>
    1:8:void <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean):277:284 -> <init>
    com.android.tools.r8.retrace.RetraceCore$AtLine asAtLine() -> a
    1:1:boolean access$000(com.android.tools.r8.retrace.RetraceCore$AtLine):254:254 -> a
    2:11:java.util.List retrace(com.android.tools.r8.naming.ClassNameMapper):346:355 -> a
    12:65:java.util.List retrace(com.android.tools.r8.naming.ClassNameMapper):349:402 -> a
    66:76:java.util.List retrace(com.android.tools.r8.naming.ClassNameMapper):396:406 -> a
    77:83:java.util.List retrace(com.android.tools.r8.naming.ClassNameMapper):363:369 -> a
    84:84:java.util.List retrace(com.android.tools.r8.naming.ClassNameMapper):363:363 -> a
    85:89:java.lang.String getClassSimpleName(java.lang.String):428:432 -> a
    90:96:java.lang.String toString(java.lang.String,java.lang.String):444:450 -> a
    97:105:java.lang.String com.android.tools.r8.com.google.common.base.Strings.padStart(java.lang.String,int,char):90:98 -> a
    97:105:java.lang.String toString(java.lang.String,java.lang.String):450 -> a
    106:119:java.lang.String toString(java.lang.String,java.lang.String):450:463 -> a
    120:120:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    120:120:java.lang.String com.android.tools.r8.com.google.common.base.Strings.padStart(java.lang.String,int,char):89 -> a
    120:120:java.lang.String toString(java.lang.String,java.lang.String):450 -> a
    boolean isAtLine() -> b
    1:1:java.lang.String access$100(com.android.tools.r8.retrace.RetraceCore$AtLine):254:254 -> b
    2:11:java.lang.String retracedFileName(java.lang.String):411:420 -> b
    12:14:java.lang.String com.android.tools.r8.com.google.common.io.Files.getFileExtension(java.lang.String):792:794 -> b
    12:14:java.lang.String retracedFileName(java.lang.String):420 -> b
    15:18:java.lang.String retracedFileName(java.lang.String):421:424 -> b
    19:19:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
    19:19:java.lang.String com.android.tools.r8.com.google.common.io.Files.getFileExtension(java.lang.String):791 -> b
    19:19:java.lang.String retracedFileName(java.lang.String):420 -> b
    1:1:java.lang.String access$200(com.android.tools.r8.retrace.RetraceCore$AtLine):254:254 -> c
    2:51:com.android.tools.r8.retrace.RetraceCore$AtLine tryParse(java.lang.String):289:338 -> c
    1:1:java.lang.String access$300(com.android.tools.r8.retrace.RetraceCore$AtLine):254:254 -> d
    1:1:java.lang.String access$400(com.android.tools.r8.retrace.RetraceCore$AtLine):254:254 -> e
    1:1:int access$500(com.android.tools.r8.retrace.RetraceCore$AtLine):254:254 -> f
    1:1:java.lang.String toString():440:440 -> toString
com.android.tools.r8.retrace.RetraceCore$AtStackTraceLineComparator -> com.android.tools.r8.retrace.b:
    1:1:void <init>():64:64 -> <init>
    1:1:int compare(java.lang.Object,java.lang.Object):64:64 -> compare
    2:16:int compare(com.android.tools.r8.retrace.RetraceCore$StackTraceLine,com.android.tools.r8.retrace.RetraceCore$StackTraceLine):68:82 -> compare
    2:16:int compare(java.lang.Object,java.lang.Object):64 -> compare
com.android.tools.r8.retrace.RetraceCore$ExceptionLine -> com.android.tools.r8.retrace.c:
    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):194:198 -> <init>
    1:6:java.util.List retrace(com.android.tools.r8.naming.ClassNameMapper):227:232 -> a
    1:1:java.lang.String toString():238:238 -> toString
com.android.tools.r8.retrace.RetraceCore$MoreLine -> com.android.tools.r8.retrace.d:
    java.lang.String line -> a
    1:2:void <init>(java.lang.String):480:481 -> <init>
    1:1:java.util.List retrace(com.android.tools.r8.naming.ClassNameMapper):505:505 -> a
    1:1:java.lang.String toString():510:510 -> toString
com.android.tools.r8.retrace.RetraceCore$RetraceResult -> com.android.tools.r8.retrace.e$a:
    java.util.List nodes -> a
    1:2:void <init>(java.util.List):90:91 -> <init>
    1:3:java.util.List toListOfStrings():95:97 -> a
com.android.tools.r8.retrace.RetraceCore$StackTraceLine -> com.android.tools.r8.retrace.f:
    1:1:void <init>():133:133 -> <init>
    com.android.tools.r8.retrace.RetraceCore$AtLine asAtLine() -> a
    java.util.List retrace(com.android.tools.r8.naming.ClassNameMapper) -> a
    1:1:int firstNonWhiteSpaceCharacterFromIndex(java.lang.String,int):137:137 -> a
    2:2:int firstCharFromIndex(java.lang.String,int,char):141:141 -> a
    3:3:boolean lambda$firstCharFromIndex$0(char,java.lang.Character):141:141 -> a
    4:9:int firstFromIndex(java.lang.String,int,java.util.function.Predicate):145:150 -> a
    boolean isAtLine() -> b
com.android.tools.r8.retrace.RetraceCore$StackTraceNode -> com.android.tools.r8.retrace.g:
    java.util.List lines -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():27:27 -> <clinit>
    1:4:void <init>(java.util.List):31:34 -> <init>
    1:9:void append(java.util.List):38:46 -> a
    10:24:void append(java.util.List):45:59 -> a
    25:25:boolean lambda$append$0(com.android.tools.r8.retrace.RetraceCore$StackTraceLine):46:46 -> a
com.android.tools.r8.retrace.RetraceCore$UnknownLine -> com.android.tools.r8.retrace.h:
    java.lang.String line -> a
    1:2:void <init>(java.lang.String):517:518 -> <init>
    1:1:java.util.List retrace(com.android.tools.r8.naming.ClassNameMapper):523:523 -> a
    1:1:java.lang.String toString():528:528 -> toString
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.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 -> a
    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>():29:29 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView,java.util.Set):36:39 -> <init>
    1:1:com.android.tools.r8.graph.DexAnnotationElement lambda$rewriteEncodedAnnotation$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement):263:263 -> a
    2:2:boolean lambda$rewriteAnnotationElement$1(com.android.tools.r8.graph.DexAnnotationElement,com.android.tools.r8.graph.DexEncodedMethod):282:282 -> a
    3:14:boolean lambda$stripAttributes$2(boolean,com.android.tools.r8.graph.DexProgramClass,boolean,com.android.tools.r8.graph.InnerClassAttribute):331:342 -> a
    1:7:void clearAnnotations(com.android.tools.r8.graph.AppView):357:363 -> 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):287:289 -> enclosingMethodPinned
    1:1:com.android.tools.r8.shaking.AnnotationRemover ensureValid():138:138 -> ensureValid
    1:1:boolean filterAnnotations(com.android.tools.r8.graph.DexAnnotation):47:47 -> filterAnnotations
    2:2:boolean filterAnnotations(com.android.tools.r8.graph.DexAnnotation):46:46 -> 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):293:294 -> 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:void processField(com.android.tools.r8.graph.DexEncodedField):245:245 -> processField
    1:3:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):239:241 -> processMethod
    1:5:com.android.tools.r8.graph.DexAnnotation rewriteAnnotation(com.android.tools.r8.graph.DexAnnotation):250:254 -> rewriteAnnotation
    1:1:com.android.tools.r8.graph.DexAnnotationElement rewriteAnnotationElement(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement):273:273 -> rewriteAnnotationElement
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> rewriteAnnotationElement
    2:2:com.android.tools.r8.graph.DexAnnotationElement rewriteAnnotationElement(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement):273 -> rewriteAnnotationElement
    3:6:com.android.tools.r8.graph.DexAnnotationElement rewriteAnnotationElement(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement):279:282 -> rewriteAnnotationElement
    1:8:com.android.tools.r8.graph.DexEncodedAnnotation rewriteEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):258:265 -> rewriteEncodedAnnotation
    9:9:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> rewriteEncodedAnnotation
    9:9:com.android.tools.r8.graph.DexEncodedAnnotation rewriteEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):265 -> rewriteEncodedAnnotation
    10:11:com.android.tools.r8.graph.DexEncodedAnnotation rewriteEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):266:267 -> rewriteEncodedAnnotation
    12:12:com.android.tools.r8.graph.DexEncodedAnnotation rewriteEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):266:266 -> rewriteEncodedAnnotation
    1:5:void run():230:234 -> run
    1:9:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):56:64 -> shouldKeepAnnotation
    10:10:boolean com.android.tools.r8.graph.DexAnnotation.isMemberClassesAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):137:137 -> shouldKeepAnnotation
    10:10:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):64 -> shouldKeepAnnotation
    11:12:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):64:65 -> shouldKeepAnnotation
    13:13:boolean com.android.tools.r8.graph.DexAnnotation.isEnclosingMethodAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):128:128 -> shouldKeepAnnotation
    13:13:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):65 -> shouldKeepAnnotation
    14:15:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):65:66 -> shouldKeepAnnotation
    16:16:boolean com.android.tools.r8.graph.DexAnnotation.isEnclosingClassAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):123:123 -> shouldKeepAnnotation
    16:16:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):66 -> shouldKeepAnnotation
    17:18:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):66:67 -> shouldKeepAnnotation
    19:19:boolean com.android.tools.r8.graph.DexAnnotation.isThrowingAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):268:268 -> shouldKeepAnnotation
    19:19:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):67 -> shouldKeepAnnotation
    20:23:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):70:73 -> shouldKeepAnnotation
    24:24:boolean com.android.tools.r8.graph.DexAnnotation.isSourceDebugExtension(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):284:284 -> shouldKeepAnnotation
    24:24:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):74 -> shouldKeepAnnotation
    25:25:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):77:77 -> shouldKeepAnnotation
    26:26:boolean com.android.tools.r8.graph.DexAnnotation.isParameterNameAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):289:289 -> shouldKeepAnnotation
    26:26:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):78 -> shouldKeepAnnotation
    27:27:boolean com.android.tools.r8.graph.DexAnnotation.isAnnotationDefaultAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):279:279 -> shouldKeepAnnotation
    27:27:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):81 -> shouldKeepAnnotation
    28:28:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):105:105 -> shouldKeepAnnotation
    29:29:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):89:89 -> shouldKeepAnnotation
    30:30:boolean com.android.tools.r8.graph.DexAnnotation.isSynthesizedClassMapAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):399:399 -> shouldKeepAnnotation
    30:30:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):95 -> shouldKeepAnnotation
    31:31:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):99:99 -> shouldKeepAnnotation
    1:45:void stripAttributes(com.android.tools.r8.graph.DexProgramClass):308:352 -> stripAttributes
    46:55:void stripAttributes(com.android.tools.r8.graph.DexProgramClass):320:329 -> stripAttributes
com.android.tools.r8.shaking.AppInfoWithLiveness -> com.android.tools.r8.shaking.AppInfoWithLiveness:
    1:1:void <clinit>():57:57 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexApplication,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,java.util.Set,java.util.Set,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.Set,java.util.SortedSet,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,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):230:230 -> <init>
    2:198:void <init>(com.android.tools.r8.graph.DexApplication,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,java.util.Set,java.util.Set,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.Set,java.util.SortedSet,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,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):74:270 -> <init>
    199:199:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,java.util.Set,java.util.Set,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.Set,java.util.SortedSet,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,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):313:313 -> <init>
    200:479:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,java.util.Set,java.util.Set,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.Set,java.util.SortedSet,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,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):74:353 -> <init>
    480:480:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness):357:357 -> <init>
    481:520:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DexApplication,java.util.Collection,java.util.Collection):365:404 -> <init>
    521:566:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DexApplication,java.util.Collection,java.util.Collection):365:410 -> <init>
    567:567:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense):415:415 -> <init>
    568:961:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense):74:467 -> <init>
    962:980:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense):463:481 -> <init>
    981:996:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense):477:492 -> <init>
    997:1004:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense):488:495 -> <init>
    1005:1005:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,java.util.Map,java.util.Map):502:502 -> <init>
    1006:1475:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,java.util.Map,java.util.Map):74:543 -> <init>
    1:6:void lambda$withoutStaticFieldsWrites$0(java.util.Set,com.android.tools.r8.graph.FieldAccessInfoImpl):622:627 -> a
    7:7:java.util.Set lambda$rewriteKeysConservativelyWhileMergingValues$1(com.android.tools.r8.graph.PresortedComparable):787:787 -> a
    1:3:com.android.tools.r8.shaking.AppInfoWithLiveness addEnumValueInfoMaps(java.util.Map):1226:1228 -> addEnumValueInfoMaps
    1:3:com.android.tools.r8.shaking.AppInfoWithLiveness addSwitchMaps(java.util.Map):1219:1221 -> addSwitchMaps
    1:12:boolean assertNoItemRemoved(java.util.Collection,java.util.Collection):660:671 -> assertNoItemRemoved
    1:33:java.util.Collection computeReachableInterfaces(java.util.Set):567:599 -> computeReachableInterfaces
    1:3:java.util.SortedSet filter(java.util.Set,java.util.function.Predicate):639:641 -> filter
    4:4:java.util.SortedSet filter(java.util.Set,java.util.function.Predicate):639:639 -> filter
    1:40:com.android.tools.r8.graph.DexEncodedMethod findSingleTargetFromSubtypes(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,boolean,boolean):1055:1094 -> findSingleTargetFromSubtypes
    1:2:java.util.Map getEnumValueInfoMapFor(com.android.tools.r8.graph.DexType):645:646 -> getEnumValueInfoMapFor
    1:1:com.android.tools.r8.graph.FieldAccessInfoCollection getFieldAccessInfoCollection():656:656 -> getFieldAccessInfoCollection
    1:2:java.lang.Iterable getPinnedItems():846:847 -> getPinnedItems
    1:2:java.util.Set getPrunedTypes():878:879 -> getPrunedTypes
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getSwitchMapFor(com.android.tools.r8.graph.DexField):650:651 -> getSwitchMapFor
    1:2:boolean hasAnyInstantiatedLambdas(com.android.tools.r8.graph.DexType):796:797 -> hasAnyInstantiatedLambdas
    1:1:boolean hasLiveness():802:802 -> hasLiveness
    1:10:boolean interfacesMayHaveDefaultFor(com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexMethod):1110:1119 -> interfacesMayHaveDefaultFor
    1:11:boolean isFieldRead(com.android.tools.r8.graph.DexEncodedField):710:720 -> isFieldRead
    1:2:boolean isFieldWritten(com.android.tools.r8.graph.DexEncodedField):724:725 -> isFieldWritten
    1:12:boolean isFieldWrittenByFieldPutInstruction(com.android.tools.r8.graph.DexEncodedField):729:740 -> isFieldWrittenByFieldPutInstruction
    1:3:boolean isInstanceFieldWrittenOnlyInEnclosingInstanceInitializers(com.android.tools.r8.graph.DexEncodedField):748:750 -> isInstanceFieldWrittenOnlyInEnclosingInstanceInitializers
    1:6:boolean isInstantiatedDirectly(com.android.tools.r8.graph.DexType):677:682 -> isInstantiatedDirectly
    1:3:boolean isInstantiatedDirectlyOrIndirectly(com.android.tools.r8.graph.DexType):704:706 -> isInstantiatedDirectlyOrIndirectly
    1:15:boolean isInstantiatedIndirectly(com.android.tools.r8.graph.DexType):686:700 -> isInstantiatedIndirectly
    1:4:boolean isInvalidSingleVirtualTarget(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):924:927 -> isInvalidSingleVirtualTarget
    1:2:boolean isLibraryOrClasspathField(com.android.tools.r8.graph.DexEncodedField):765:766 -> isLibraryOrClasspathField
    1:1:boolean isLiveProgramClass(com.android.tools.r8.graph.DexProgramClass):547:547 -> isLiveProgramClass
    1:2:boolean isLiveProgramType(com.android.tools.r8.graph.DexType):551:552 -> isLiveProgramType
    1:1:boolean isLockCandidate(com.android.tools.r8.graph.DexType):611:611 -> isLockCandidate
    1:20:boolean isMethodPinnedDirectlyOrInAncestor(com.android.tools.r8.graph.DexMethod):819:838 -> isMethodPinnedDirectlyOrInAncestor
    1:8:boolean isNonProgramTypeOrLiveProgramType(com.android.tools.r8.graph.DexType):556:563 -> isNonProgramTypeOrLiveProgramType
    1:2:boolean isPinned(com.android.tools.r8.graph.DexReference):813:814 -> isPinned
    1:3:boolean isStaticFieldWrittenOnlyInEnclosingStaticInitializer(com.android.tools.r8.graph.DexEncodedField):754:756 -> isStaticFieldWrittenOnlyInEnclosingStaticInitializer
    1:2:com.android.tools.r8.graph.DexEncodedMethod lookupSingleInterfaceTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1127:1128 -> lookupSingleInterfaceTarget
    3:24: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):1136:1157 -> lookupSingleInterfaceTarget
    25:57: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):1156:1188 -> lookupSingleInterfaceTarget
    58:58:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> lookupSingleInterfaceTarget
    58:58: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):1187 -> lookupSingleInterfaceTarget
    59:85: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):1189:1215 -> 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):884:899 -> 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):897:897 -> 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):895:895 -> 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):893:893 -> 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):891:891 -> lookupSingleTarget
    1:2:com.android.tools.r8.graph.DexEncodedMethod lookupSingleVirtualTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):932:933 -> lookupSingleVirtualTarget
    3:21: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):941:959 -> lookupSingleVirtualTarget
    22:77: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):958:1013 -> lookupSingleVirtualTarget
    78:84: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):1009:1015 -> lookupSingleVirtualTarget
    85:94: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):1008:1017 -> lookupSingleVirtualTarget
    95:95: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):995:995 -> lookupSingleVirtualTarget
    1:2:boolean mayPropagateValueFor(com.android.tools.r8.graph.DexReference):760:761 -> mayPropagateValueFor
    1:8:com.android.tools.r8.graph.DexEncodedMethod nestAccessLookup(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1022:1029 -> nestAccessLookup
    1:2:com.android.tools.r8.shaking.AppInfoWithLiveness prunedCopyFrom(com.android.tools.r8.graph.DexApplication,java.util.Collection,java.util.Collection):858:859 -> prunedCopyFrom
    1:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet rewriteItems(java.util.Set,java.util.function.Function):771:776 -> rewriteItems
    1:10:java.util.SortedMap rewriteKeysConservativelyWhileMergingValues(java.util.Map,java.util.function.Function):782:791 -> rewriteKeysConservativelyWhileMergingValues
    1:2:com.android.tools.r8.shaking.AppInfoWithLiveness rewrittenWithLense(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense):864:865 -> rewrittenWithLense
    1:9:com.android.tools.r8.graph.DexEncodedMethod validateSingleVirtualTarget(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):907:915 -> validateSingleVirtualTarget
    1:2:boolean wasPruned(com.android.tools.r8.graph.DexType):873:874 -> wasPruned
    1:1:com.android.tools.r8.shaking.AppInfoWithLiveness withLiveness():808:808 -> withLiveness
    1:19:com.android.tools.r8.shaking.AppInfoWithLiveness withoutStaticFieldsWrites(java.util.Set):615:633 -> withoutStaticFieldsWrites
    20:20:com.android.tools.r8.shaking.AppInfoWithLiveness withoutStaticFieldsWrites(java.util.Set):631:631 -> withoutStaticFieldsWrites
com.android.tools.r8.shaking.AppInfoWithLiveness$1 -> com.android.tools.r8.shaking.AppInfoWithLiveness$1:
    1:1:void <clinit>():889:889 -> <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):181:183 -> <init>
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):72:86 -> <init>
    1:1:com.android.tools.r8.shaking.ClassInlineRule$Builder builder():90:90 -> builder
    1:1:com.android.tools.r8.shaking.ClassInlineRule$Type getType():94:94 -> getType
    1:5:java.lang.String typeString():99:103 -> typeString
com.android.tools.r8.shaking.ClassInlineRule$1 -> com.android.tools.r8.shaking.ClassInlineRule$1:
    1:1:void <clinit>():99:99 -> <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):17:17 -> <init>
    2:2:void <init>():20:20 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():17:17 -> build
    2:4:com.android.tools.r8.shaking.ClassInlineRule build():37:39 -> build
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():17:17 -> self
    1:1:com.android.tools.r8.shaking.ClassInlineRule$Builder setType(com.android.tools.r8.shaking.ClassInlineRule$Type):31:31 -> setType
com.android.tools.r8.shaking.ClassInlineRule$Type -> com.android.tools.r8.shaking.ClassInlineRule$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.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:1:java.util.Map lambda$acceptEdge$0(com.android.tools.r8.experimental.graphinfo.GraphNode):30:30 -> a
    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.Set lambda$acceptEdge$1(com.android.tools.r8.experimental.graphinfo.GraphNode):31:31 -> b
    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
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.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:1:void lambda$run$0(java.util.List,com.android.tools.r8.graph.DexEncodedMethod):30:30 -> a
    2:2:void lambda$run$1(java.util.List,com.android.tools.r8.graph.DexEncodedField):31:31 -> a
    1:3:void checkItem(com.android.tools.r8.graph.DexDefinition,java.util.List):37:39 -> checkItem
    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>():103:103 -> <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):303:303 -> <init>
    2:195:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.shaking.Enqueuer$Mode):131:324 -> <init>
    1:1:void com.android.tools.r8.graph.analysis.EnqueuerAnalysis.processNewlyLiveField(com.android.tools.r8.graph.DexEncodedField):0:0 -> a
    1:1:void lambda$markInstanceFieldAsLive$21(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.analysis.EnqueuerAnalysis):1755 -> a
    boolean lambda$markVirtualMethodAsReachable$25(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod) -> a
    void lambda$newSetWithoutReasonReporter$1(java.lang.Object,com.android.tools.r8.shaking.KeepReason) -> a
    2:2:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():248:248 -> a
    2:2:void lambda$markResolutionAsLive$15(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):1608 -> a
    3:3:void lambda$markResolutionAsLive$15(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):1609:1609 -> a
    4:4:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    4:4:void lambda$markResolutionAsLive$15(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):1609 -> a
    5:12:void lambda$markResolutionAsLive$15(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):1610:1617 -> a
    13:13:void lambda$markResolutionAsLive$15(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):1614:1614 -> a
    14:19:void lambda$getNonPinnedWrittenFields$0(java.util.function.Predicate,java.util.Set,com.android.tools.r8.graph.FieldAccessInfoImpl):384:389 -> a
    20:20:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):158:158 -> a
    20:20:void lambda$getNonPinnedWrittenFields$0(java.util.function.Predicate,java.util.Set,com.android.tools.r8.graph.FieldAccessInfoImpl):389 -> a
    21:27:void lambda$getNonPinnedWrittenFields$0(java.util.function.Predicate,java.util.Set,com.android.tools.r8.graph.FieldAccessInfoImpl):391:397 -> a
    28:28:java.util.Set lambda$registerMethodWithTargetAndContext$3(com.android.tools.r8.graph.DexMethod):532:532 -> a
    29:29:boolean lambda$markTypeAsLive$8(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotation):1214:1214 -> a
    30:30:com.android.tools.r8.shaking.ScopedDexMethodSet lambda$ensureMethodsContinueToWidenAccess$10(com.android.tools.r8.graph.DexType):1226:1226 -> a
    31:31:void lambda$processNewlyInstantiatedClass$14(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.analysis.EnqueuerAnalysis):1457:1457 -> a
    32:32:com.android.tools.r8.graph.DexProgramClass com.android.tools.r8.graph.DexProgramClass.asProgramClass():0:0 -> a
    32:32:void lambda$processNewlyInstantiatedClass$14(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.analysis.EnqueuerAnalysis):1457 -> a
    33:33:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markFieldAsTargeted$16(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):1698:1698 -> a
    34:34:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markInstanceFieldAsReachable$22(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass):1860:1860 -> a
    35:35:com.android.tools.r8.shaking.Enqueuer$SetWithReason lambda$markInstanceFieldAsReachable$24(com.android.tools.r8.graph.DexProgramClass):1881:1881 -> a
    36:36:java.util.Set lambda$markSuperMethodAsReachable$27(com.android.tools.r8.graph.DexEncodedMethod):2155:2155 -> a
    37:37:void lambda$createAppInfo$28(com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder,com.android.tools.r8.graph.DexAnnotation):2207:2207 -> a
    38:38:boolean lambda$createAppInfo$29(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.FieldAccessInfoImpl):2212:2212 -> a
    39:39:java.util.Set lambda$trace$30(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):2311:2311 -> a
    40:40:void lambda$trace$31(com.android.tools.r8.graph.DexReference,java.util.Map):2332:2332 -> a
    41:41:void lambda$trace$32(com.android.tools.r8.graph.DexType,java.util.Set):2337:2337 -> a
    42:42:boolean com.android.tools.r8.graph.DexType.isDexType():0:0 -> a
    42:42:void lambda$trace$32(com.android.tools.r8.graph.DexType,java.util.Set):2337 -> a
    43:43:void lambda$trace$32(com.android.tools.r8.graph.DexType,java.util.Set):2338:2338 -> a
    44:44:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    44:44:void lambda$trace$32(com.android.tools.r8.graph.DexType,java.util.Set):2338 -> a
    45:45:void lambda$trace$32(com.android.tools.r8.graph.DexType,java.util.Set):2339:2339 -> a
    46:46:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexType.asDexType():0:0 -> a
    46:46:void lambda$trace$32(com.android.tools.r8.graph.DexType,java.util.Set):2338 -> a
    47:47:void lambda$trace$33(com.android.tools.r8.graph.analysis.EnqueuerAnalysis):2359:2359 -> a
    48:48:void lambda$markMethodAsLive$34(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexAnnotation):2515:2515 -> a
    49:49:void lambda$markMethodAsLive$35(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.analysis.EnqueuerAnalysis):2522:2522 -> a
    1:1:com.android.tools.r8.shaking.GraphReporter access$100(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$100
    1:1:java.util.Map access$1000(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$1000
    1:1:void access$1100(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):103:103 -> access$1100
    1:1:java.util.Map access$1200(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$1200
    1:1:com.android.tools.r8.graph.DexMethod access$1300(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):103:103 -> access$1300
    1:1:java.util.Map access$1400(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$1400
    1:1:void access$1500(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):103:103 -> access$1500
    1:1:com.android.tools.r8.graph.AppInfoWithSubtyping access$1600(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$1600
    1:1:void access$1700(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexField):103:103 -> access$1700
    1:1:com.android.tools.r8.graph.DexProgramClass access$1800(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexType):103:103 -> access$1800
    1:1:java.util.Set access$1900(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$1900
    1:1:com.android.tools.r8.graph.AppView access$200(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$200
    1:1:void access$2000(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):103:103 -> access$2000
    1:1:void access$2100(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexType,java.util.function.Function):103:103 -> access$2100
    1:1:void access$2200(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):103:103 -> access$2200
    1:1:boolean access$2300(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexType):103:103 -> access$2300
    1:1:void access$2400(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):103:103 -> access$2400
    1:1:java.util.Set access$2500(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$2500
    1:1:java.util.Set access$2600(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$2600
    1:1:void access$2700(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):103:103 -> access$2700
    1:1:java.util.Set access$2800(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$2800
    1:1:void access$2900(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):103:103 -> access$2900
    1:1:java.util.Set access$300(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$300
    1:1:com.android.tools.r8.utils.InternalOptions access$3000(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$3000
    1:1:java.util.Set access$3100(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$3100
    1:1:java.util.Set access$3200(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$3200
    1:1:java.util.Set access$3300(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$3300
    1:1:void access$3400(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ScopedDexMethodSet):103:103 -> access$3400
    1:1:boolean access$3500(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$3500
    1:1:void access$3600(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):103:103 -> access$3600
    1:1:com.android.tools.r8.graph.FieldAccessInfoCollectionImpl access$3700(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$3700
    1:1:java.util.Set access$400(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$400
    1:1:void access$4300(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexProgramClass):103:103 -> access$4300
    1:1:void access$4400(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):103:103 -> access$4400
    1:1:void access$4500(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):103:103 -> access$4500
    1:1:void access$4600(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):103:103 -> access$4600
    1:1:void access$4700(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):103:103 -> access$4700
    1:1:java.util.Map access$500(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$500
    1:1:boolean access$600(com.android.tools.r8.shaking.Enqueuer,java.util.Map,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):103:103 -> access$600
    1:1:com.android.tools.r8.shaking.EnqueuerWorklist access$700(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$700
    1:1:java.util.Map access$800(com.android.tools.r8.shaking.Enqueuer):103:103 -> access$800
    1:1:void access$900(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):103:103 -> access$900
    1:1:void com.android.tools.r8.graph.analysis.EnqueuerAnalysis.processNewlyLiveField(com.android.tools.r8.graph.DexEncodedField):0:0 -> b
    1:1:void lambda$markStaticFieldAsLive$20(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.analysis.EnqueuerAnalysis):1737 -> b
    2:2:void lambda$markTypeAsLive$9(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotation):1215:1215 -> b
    3:3:java.util.Set lambda$markInterfaceTypeAsLiveViaInheritanceClause$11(com.android.tools.r8.graph.DexProgramClass):1261:1261 -> b
    4:4:java.util.Set lambda$handleAnnotation$12(com.android.tools.r8.graph.DexType):1291:1291 -> b
    5:5:void lambda$markMethodAsTargeted$13(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexAnnotation):1431:1431 -> b
    6:6:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markFieldAsTargeted$17(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):1699:1699 -> b
    7:7:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markInstanceFieldAsReachable$23(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass):1862:1862 -> b
    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet lambda$markTypeAsLive$4(com.android.tools.r8.graph.DexType):1118:1118 -> c
    2:2:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markStaticFieldAsLive$18(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass):1706:1706 -> c
    3:3:com.android.tools.r8.shaking.Enqueuer$ReachableVirtualMethodsSet lambda$markPossibleTargetsAsReachable$26(com.android.tools.r8.graph.DexProgramClass):1970:1970 -> c
    4:4:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markParameterAndReturnTypesAsLive$37(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):2534:2534 -> c
    1:4:void compatEnqueueHolderIfDependentNonStaticMember(com.android.tools.r8.graph.DexClass,java.util.Set):516:519 -> compatEnqueueHolderIfDependentNonStaticMember
    1:16:com.android.tools.r8.shaking.AppInfoWithLiveness createAppInfo(com.android.tools.r8.graph.AppInfoWithSubtyping):2205:2220 -> createAppInfo
    17:57:com.android.tools.r8.shaking.AppInfoWithLiveness createAppInfo(com.android.tools.r8.graph.AppInfoWithSubtyping):2219:2259 -> createAppInfo
    58:61:com.android.tools.r8.shaking.AppInfoWithLiveness createAppInfo(com.android.tools.r8.graph.AppInfoWithSubtyping):2258:2261 -> createAppInfo
    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet lambda$markTypeAsLive$5(com.android.tools.r8.graph.DexType):1137:1137 -> d
    2:2:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markStaticFieldAsLive$19(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass):1708:1708 -> d
    3:3:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markParameterAndReturnTypesAsLive$38(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):2538:2538 -> d
    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet lambda$markTypeAsLive$6(com.android.tools.r8.graph.DexType):1144:1144 -> e
    2:2:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markReferencedTypesAsLive$36(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):2527:2527 -> e
    1:1:void enqueueDependentItem(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexDefinition,java.util.Set):1269:1269 -> enqueueDependentItem
    1:11:void enqueueFirstNonSerializableClassInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):488:498 -> enqueueFirstNonSerializableClassInitializer
    12:12:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():693:693 -> enqueueFirstNonSerializableClassInitializer
    12:12:void enqueueFirstNonSerializableClassInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):499 -> enqueueFirstNonSerializableClassInitializer
    13:13:void enqueueFirstNonSerializableClassInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):499:499 -> enqueueFirstNonSerializableClassInitializer
    1:3:boolean enqueueMarkMethodLiveAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):506:508 -> enqueueMarkMethodLiveAction
    1:1:void enqueueRootItem(java.util.Map$Entry):417:417 -> enqueueRootItem
    2:2:com.android.tools.r8.graph.DexDefinition com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexReference):153:153 -> enqueueRootItem
    2:2:void enqueueRootItem(java.util.Map$Entry):417 -> enqueueRootItem
    3:3:void enqueueRootItem(java.util.Map$Entry):419:419 -> enqueueRootItem
    4:4:void enqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set):427:427 -> enqueueRootItem
    1:1:void enqueueRootItems(java.util.Map):413:413 -> enqueueRootItems
    1:13:void ensureFromLibraryOrThrow(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):1374:1386 -> ensureFromLibraryOrThrow
    14:14:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> ensureFromLibraryOrThrow
    14:14:void ensureFromLibraryOrThrow(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):1386 -> ensureFromLibraryOrThrow
    15:26:void ensureFromLibraryOrThrow(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):1387:1398 -> ensureFromLibraryOrThrow
    1:4:void ensureMethodsContinueToWidenAccess(com.android.tools.r8.graph.DexClass):1224:1227 -> ensureMethodsContinueToWidenAccess
    5:9:void ensureMethodsContinueToWidenAccess(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.KeepReason):1232:1236 -> ensureMethodsContinueToWidenAccess
    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$registerMethodWithTargetAndContext$2(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):531:531 -> f
    2:2:com.android.tools.r8.shaking.ScopedDexMethodSet lambda$markTypeAsLive$7(com.android.tools.r8.graph.DexType):1167:1167 -> f
    1:38:com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget findAndMarkResolutionTarget(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.shaking.KeepReason):2016:2053 -> findAndMarkResolutionTarget
    39:50:com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget findAndMarkResolutionTarget(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.shaking.KeepReason):2052:2063 -> findAndMarkResolutionTarget
    1:5:com.android.tools.r8.graph.DexMethod generatedEnumValuesMethod(com.android.tools.r8.graph.DexClass):2090:2094 -> generatedEnumValuesMethod
    6:11:com.android.tools.r8.graph.DexMethod generatedEnumValuesMethod(com.android.tools.r8.graph.DexClass):2093:2098 -> generatedEnumValuesMethod
    1:1:com.android.tools.r8.shaking.GraphReporter getGraphReporter():332:332 -> getGraphReporter
    1:1:com.android.tools.r8.graph.DexMethod getInvokeSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1075:1075 -> getInvokeSuperTarget
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> getInvokeSuperTarget
    2:2:com.android.tools.r8.graph.DexMethod getInvokeSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1075 -> getInvokeSuperTarget
    3:6:com.android.tools.r8.graph.DexMethod getInvokeSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1076:1079 -> getInvokeSuperTarget
    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> getInvokeSuperTarget
    7:7:com.android.tools.r8.graph.DexMethod getInvokeSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1079 -> getInvokeSuperTarget
    8:13:com.android.tools.r8.graph.DexMethod getInvokeSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1080:1085 -> getInvokeSuperTarget
    1:1:com.android.tools.r8.shaking.Enqueuer$Mode getMode():328:328 -> getMode
    1:24:java.util.Set getNonPinnedWrittenFields(java.util.function.Predicate):381:404 -> getNonPinnedWrittenFields
    25:25:java.util.Set getNonPinnedWrittenFields(java.util.function.Predicate):400:400 -> getNonPinnedWrittenFields
    1:1:com.android.tools.r8.graph.DexProgramClass getProgramClassOrNull(com.android.tools.r8.graph.DexType):345:345 -> getProgramClassOrNull
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> getProgramClassOrNull
    2:2:com.android.tools.r8.graph.DexProgramClass getProgramClassOrNull(com.android.tools.r8.graph.DexType):345 -> getProgramClassOrNull
    3:11:com.android.tools.r8.graph.DexProgramClass getProgramClassOrNull(com.android.tools.r8.graph.DexType):347:355 -> getProgramClassOrNull
    1:3:void handleAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):1283:1285 -> handleAnnotation
    4:4:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> handleAnnotation
    4:4:void handleAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):1285 -> handleAnnotation
    5:18:void handleAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):1286:1299 -> handleAnnotation
    1:29:void handleInvokeOfDirectTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):1341:1369 -> handleInvokeOfDirectTarget
    1:23:void handleInvokeOfStaticTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):1303:1325 -> handleInvokeOfStaticTarget
    1:8:void handleJavaLangClassNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2675:2682 -> handleJavaLangClassNewInstance
    9:17:void handleJavaLangClassNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2681:2689 -> handleJavaLangClassNewInstance
    18:18:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():693:693 -> handleJavaLangClassNewInstance
    18:18:void handleJavaLangClassNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2693 -> handleJavaLangClassNewInstance
    19:22:void handleJavaLangClassNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2695:2698 -> handleJavaLangClassNewInstance
    1:6:void handleJavaLangEnumValueOf(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2845:2850 -> handleJavaLangEnumValueOf
    1:21:void handleJavaLangReflectConstructorNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2705:2725 -> handleJavaLangReflectConstructorNewInstance
    22:48:void handleJavaLangReflectConstructorNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2724:2750 -> handleJavaLangReflectConstructorNewInstance
    49:49:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():693:693 -> handleJavaLangReflectConstructorNewInstance
    49:49:void handleJavaLangReflectConstructorNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2752 -> handleJavaLangReflectConstructorNewInstance
    50:94:void handleJavaLangReflectConstructorNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2754:2798 -> handleJavaLangReflectConstructorNewInstance
    1:28:void handleJavaLangReflectProxyNewProxyInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2808:2835 -> handleJavaLangReflectProxyNewProxyInstance
    1:7:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod):2568:2574 -> handleReflectiveBehavior
    8:48:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):2579:2619 -> handleReflectiveBehavior
    49:49:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():693:693 -> handleReflectiveBehavior
    49:49:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):2620 -> handleReflectiveBehavior
    50:61:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):2621:2632 -> handleReflectiveBehavior
    62:62:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):158:158 -> handleReflectiveBehavior
    62:62:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):2632 -> handleReflectiveBehavior
    63:81:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):2641:2659 -> handleReflectiveBehavior
    82:82:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):163:163 -> handleReflectiveBehavior
    82:82:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):2659 -> handleReflectiveBehavior
    83:88:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):2663:2668 -> handleReflectiveBehavior
    89:90:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):2665:2666 -> handleReflectiveBehavior
    1:13:void handleServiceInstantiation(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):2889:2901 -> handleServiceInstantiation
    1:19:void handleServiceLoaderInvocation(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2856:2874 -> handleServiceLoaderInvocation
    20:36:void handleServiceLoaderInvocation(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2867:2883 -> handleServiceLoaderInvocation
    1:2:java.util.Set instanceFieldsWrittenOnlyInEnclosingInstanceInitializers():369:370 -> instanceFieldsWrittenOnlyInEnclosingInstanceInitializers
    1:8:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):432:439 -> internalEnqueueRootItem
    9:9:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():693:693 -> internalEnqueueRootItem
    9:9:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):440 -> internalEnqueueRootItem
    10:14:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):441:445 -> internalEnqueueRootItem
    15:20:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):442:447 -> internalEnqueueRootItem
    21:21:boolean com.android.tools.r8.graph.DexClass.isExternalizable(com.android.tools.r8.graph.AppView):733:733 -> internalEnqueueRootItem
    21:21:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):447 -> internalEnqueueRootItem
    22:33:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):448:459 -> internalEnqueueRootItem
    34:46:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):456:468 -> internalEnqueueRootItem
    47:55:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):465:473 -> internalEnqueueRootItem
    56:56:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):471:471 -> internalEnqueueRootItem
    1:1:boolean isFieldLive(com.android.tools.r8.graph.DexEncodedField):1828:1828 -> isFieldLive
    1:2:boolean isFieldRead(com.android.tools.r8.graph.DexEncodedField):1832:1833 -> isFieldRead
    1:5:boolean isFieldWrittenOutsideDefaultConstructor(com.android.tools.r8.graph.DexEncodedField):1837:1841 -> isFieldWrittenOutsideDefaultConstructor
    6:6:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> isFieldWrittenOutsideDefaultConstructor
    6:6:boolean isFieldWrittenOutsideDefaultConstructor(com.android.tools.r8.graph.DexEncodedField):1841 -> isFieldWrittenOutsideDefaultConstructor
    7:7:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():693:693 -> isFieldWrittenOutsideDefaultConstructor
    7:7:boolean isFieldWrittenOutsideDefaultConstructor(com.android.tools.r8.graph.DexEncodedField):1842 -> isFieldWrittenOutsideDefaultConstructor
    8:9:boolean isFieldWrittenOutsideDefaultConstructor(com.android.tools.r8.graph.DexEncodedField):1844:1845 -> isFieldWrittenOutsideDefaultConstructor
    10:10:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():693:693 -> isFieldWrittenOutsideDefaultConstructor
    10:10:boolean isFieldWrittenOutsideDefaultConstructor(com.android.tools.r8.graph.DexEncodedField):1842 -> isFieldWrittenOutsideDefaultConstructor
    1:1:boolean isInstantiatedOrHasInstantiatedSubtype(com.android.tools.r8.graph.DexProgramClass):1849:1849 -> isInstantiatedOrHasInstantiatedSubtype
    1:1:boolean isProgramClass(com.android.tools.r8.graph.DexType):341:341 -> isProgramClass
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap joinIdentifierNameStrings(java.util.Set,java.util.Set):2277:2282 -> joinIdentifierNameStrings
    1:6:void markClassAsInstantiatedWithCompatRule(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):2550:2555 -> markClassAsInstantiatedWithCompatRule
    7:7:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():693:693 -> markClassAsInstantiatedWithCompatRule
    7:7:void markClassAsInstantiatedWithCompatRule(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):2556 -> markClassAsInstantiatedWithCompatRule
    8:10:void markClassAsInstantiatedWithCompatRule(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):2557:2559 -> markClassAsInstantiatedWithCompatRule
    11:11:void markClassAsInstantiatedWithCompatRule(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):2557:2557 -> markClassAsInstantiatedWithCompatRule
    1:3:void markClassAsInstantiatedWithReason(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):2542:2544 -> markClassAsInstantiatedWithReason
    4:4:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():693:693 -> markClassAsInstantiatedWithReason
    4:4:void markClassAsInstantiatedWithReason(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):2544 -> markClassAsInstantiatedWithReason
    5:5:void markClassAsInstantiatedWithReason(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):2544:2544 -> markClassAsInstantiatedWithReason
    1:13:void markDirectStaticOrConstructorMethodAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1797:1809 -> 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):1808 -> markDirectStaticOrConstructorMethodAsLive
    1:7:void markEnumValuesAsReachable(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):2102:2108 -> markEnumValuesAsReachable
    1:5:void markFieldAsKept(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):2438:2442 -> markFieldAsKept
    1:2:void markFieldAsTargeted(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1698:1699 -> markFieldAsTargeted
    1:6:void markInstanceFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1741:1746 -> 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.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1746 -> markInstanceFieldAsLive
    8:15:void markInstanceFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1748:1755 -> markInstanceFieldAsLive
    1:3:void markInstanceFieldAsReachable(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1854:1856 -> 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):1856 -> markInstanceFieldAsReachable
    5:28:void markInstanceFieldAsReachable(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1859:1882 -> markInstanceFieldAsReachable
    1:2:void markInstantiated(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1760:1761 -> markInstantiated
    3:3:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markInstantiated
    3:3:void markInstantiated(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1761 -> markInstantiated
    4:4:void markInstantiated(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1763:1763 -> markInstantiated
    1:7:void markInterfaceAsInstantiated(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):477:483 -> markInterfaceAsInstantiated
    1:20:void markInterfaceTypeAsLiveViaInheritanceClause(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):1243:1262 -> markInterfaceTypeAsLiveViaInheritanceClause
    21:21:void markInterfaceTypeAsLiveViaInheritanceClause(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):1249:1249 -> markInterfaceTypeAsLiveViaInheritanceClause
    1:1:void markLambdaInstantiated(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):1767:1767 -> markLambdaInstantiated
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> markLambdaInstantiated
    2:2:void markLambdaInstantiated(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):1767 -> markLambdaInstantiated
    3:24:void markLambdaInstantiated(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):1769:1790 -> markLambdaInstantiated
    1:22:void markLibraryAndClasspathMethodOverridesAsLive(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass):1578:1599 -> markLibraryAndClasspathMethodOverridesAsLive
    1:25:void markMethodAsKept(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2402:2426 -> markMethodAsKept
    26:35:void markMethodAsKept(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2423:2432 -> markMethodAsKept
    1:12:void markMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2489:2500 -> markMethodAsLive
    13:13:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markMethodAsLive
    13:13:void markMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2500 -> markMethodAsLive
    14:18:void markMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2502:2506 -> markMethodAsLive
    19:22:void markMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2505:2508 -> markMethodAsLive
    23:38:void markMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2507:2522 -> markMethodAsLive
    1:1:void markMethodAsLiveWithCompatRule(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):2564:2564 -> markMethodAsLiveWithCompatRule
    1:12:void markMethodAsTargeted(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1423:1434 -> 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):1434 -> markMethodAsTargeted
    14:18:void markMethodAsTargeted(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1436:1440 -> markMethodAsTargeted
    1:1:void markNonStaticDirectMethodAsReachable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):1337:1337 -> markNonStaticDirectMethodAsReachable
    1:5:void markParameterAndReturnTypesAsLive(com.android.tools.r8.graph.DexEncodedMethod):2532:2536 -> markParameterAndReturnTypesAsLive
    1:1:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,java.util.function.BiPredicate,com.android.tools.r8.graph.DexEncodedMethod):1959:1959 -> markPossibleTargetsAsReachable
    2:2:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> markPossibleTargetsAsReachable
    2:2:boolean com.android.tools.r8.utils.InternalOptions.canUseNestBasedAccess():1055 -> markPossibleTargetsAsReachable
    2:2:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,java.util.function.BiPredicate,com.android.tools.r8.graph.DexEncodedMethod):1959 -> markPossibleTargetsAsReachable
    3:4:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,java.util.function.BiPredicate,com.android.tools.r8.graph.DexEncodedMethod):1959:1960 -> markPossibleTargetsAsReachable
    5:5:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():248:248 -> markPossibleTargetsAsReachable
    5:5:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,java.util.function.BiPredicate,com.android.tools.r8.graph.DexEncodedMethod):1960 -> markPossibleTargetsAsReachable
    6:52:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,java.util.function.BiPredicate,com.android.tools.r8.graph.DexEncodedMethod):1960:2006 -> markPossibleTargetsAsReachable
    53:59:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,java.util.function.BiPredicate,com.android.tools.r8.graph.DexEncodedMethod):2003:2009 -> markPossibleTargetsAsReachable
    60:63:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,java.util.function.BiPredicate,com.android.tools.r8.graph.DexEncodedMethod):1986:1989 -> markPossibleTargetsAsReachable
    64:64:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,java.util.function.BiPredicate,com.android.tools.r8.graph.DexEncodedMethod):1986:1986 -> markPossibleTargetsAsReachable
    1:16:com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget markPossiblyValidTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):2071:2086 -> markPossiblyValidTarget
    17:20:com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget markPossiblyValidTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):2072:2075 -> markPossiblyValidTarget
    21:29:com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget markPossiblyValidTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):2074:2082 -> markPossiblyValidTarget
    1:3:void markReferencedTypesAsLive(com.android.tools.r8.graph.DexEncodedMethod):2526:2528 -> markReferencedTypesAsLive
    1:2:void markResolutionAsLive(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.ResolutionResult):1605:1606 -> markResolutionAsLive
    1:19:void markStaticFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1704:1722 -> 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):1722 -> markStaticFieldAsLive
    21:22:void markStaticFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1725:1726 -> 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):1726 -> markStaticFieldAsLive
    24:31:void markStaticFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1730:1737 -> markStaticFieldAsLive
    1:15:void markSuperMethodAsReachable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):2119:2133 -> markSuperMethodAsReachable
    16:35:void markSuperMethodAsReachable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):2132:2151 -> markSuperMethodAsReachable
    36:36:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markSuperMethodAsReachable
    36:36:void markSuperMethodAsReachable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):2151 -> markSuperMethodAsReachable
    37:42:void markSuperMethodAsReachable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):2154:2159 -> markSuperMethodAsReachable
    1:16:void markTypeAsLive(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):1104:1119 -> markTypeAsLive
    17:17:void markTypeAsLive(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):1116:1116 -> markTypeAsLive
    18:33:void markTypeAsLive(com.android.tools.r8.graph.DexType,java.util.function.Function):1123:1138 -> markTypeAsLive
    34:34:void markTypeAsLive(com.android.tools.r8.graph.DexType,java.util.function.Function):1135:1135 -> markTypeAsLive
    35:37:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1142:1144 -> markTypeAsLive
    38:38:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1142:1142 -> markTypeAsLive
    39:44:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1150:1155 -> markTypeAsLive
    45:45:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markTypeAsLive
    45:45:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1155 -> markTypeAsLive
    46:107:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1158:1219 -> markTypeAsLive
    108:108:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():671:671 -> markTypeAsLive
    108:108:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1220 -> markTypeAsLive
    109:109:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1220:1220 -> markTypeAsLive
    110:110:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1219:1219 -> markTypeAsLive
    1:5:void markVirtualMethodAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1815:1819 -> markVirtualMethodAsLive
    6:11:void markVirtualMethodAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1817:1822 -> 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):1822 -> markVirtualMethodAsLive
    1:1:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.shaking.KeepReason):1889:1889 -> markVirtualMethodAsReachable
    2:29:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.shaking.KeepReason,java.util.function.BiPredicate):1897:1924 -> markVirtualMethodAsReachable
    30:30:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markVirtualMethodAsReachable
    30:30:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.shaking.KeepReason,java.util.function.BiPredicate):1924 -> markVirtualMethodAsReachable
    31:50:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.shaking.KeepReason,java.util.function.BiPredicate):1928:1947 -> markVirtualMethodAsReachable
    51:51:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():248:248 -> markVirtualMethodAsReachable
    51:51:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.shaking.KeepReason,java.util.function.BiPredicate):1948 -> markVirtualMethodAsReachable
    52:52:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.shaking.KeepReason,java.util.function.BiPredicate):1951:1951 -> markVirtualMethodAsReachable
    1:1:com.android.tools.r8.shaking.Enqueuer$SetWithReason newSetWithoutReasonReporter():409:409 -> newSetWithoutReasonReporter
    1:13:void populateInstantiatedTypesCache(com.android.tools.r8.graph.DexProgramClass):1480:1492 -> populateInstantiatedTypesCache
    1:1:void processAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):1279:1279 -> processAnnotation
    1:2:void processAnnotations(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation[]):1273:1274 -> processAnnotations
    1:15:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1452:1466 -> processNewlyInstantiatedClass
    16:16:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> processNewlyInstantiatedClass
    16:16:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1466 -> processNewlyInstantiatedClass
    17:24:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1469:1476 -> processNewlyInstantiatedClass
    1:1:com.android.tools.r8.shaking.Enqueuer registerAnalysis(com.android.tools.r8.graph.analysis.EnqueuerAnalysis):336:336 -> registerAnalysis
    1:2:void registerClassInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):1330:1331 -> registerClassInitializer
    1:2:boolean registerFieldAccess(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):546:547 -> registerFieldAccess
    3:31:boolean registerFieldAccess(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod,boolean):552:580 -> registerFieldAccess
    1:1:boolean registerFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):538:538 -> registerFieldRead
    1:1:boolean registerFieldWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):542:542 -> registerFieldWrite
    1:4:boolean registerMethodWithTargetAndContext(java.util.Map,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):529:532 -> registerMethodWithTargetAndContext
    1:2:void reportMissingClass(com.android.tools.r8.graph.DexType):1404:1405 -> reportMissingClass
    3:3:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> reportMissingClass
    3:3:void reportMissingClass(com.android.tools.r8.graph.DexType):1405 -> reportMissingClass
    1:2:void reportMissingField(com.android.tools.r8.graph.DexField):1416:1417 -> 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):1417 -> reportMissingField
    1:2:void reportMissingMethod(com.android.tools.r8.graph.DexMethod):1410:1411 -> 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):1411 -> reportMissingMethod
    1:15:boolean shouldMarkLibraryMethodOverrideAsReachable(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):2448:2462 -> shouldMarkLibraryMethodOverrideAsReachable
    16:16:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> shouldMarkLibraryMethodOverrideAsReachable
    16:16:boolean shouldMarkLibraryMethodOverrideAsReachable(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):2462 -> shouldMarkLibraryMethodOverrideAsReachable
    17:29:boolean shouldMarkLibraryMethodOverrideAsReachable(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):2467:2479 -> shouldMarkLibraryMethodOverrideAsReachable
    1:2:java.util.Set staticFieldsWrittenOnlyInEnclosingStaticInitializer():375:376 -> staticFieldsWrittenOnlyInEnclosingStaticInitializer
    1:6:java.util.SortedSet toSortedDescriptorSet(java.util.Set):2267:2272 -> toSortedDescriptorSet
    1:92:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):2288:2379 -> trace
    93:104:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):2378:2389 -> trace
    105:105:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):2387:2387 -> trace
    1:9: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):2184:2192 -> traceApplication
    1:8:java.util.Set traceMainDex(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):2168:2175 -> traceMainDex
    1:8:void transitionDefaultMethodsForInstantiatedClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ScopedDexMethodSet):1627:1634 -> transitionDefaultMethodsForInstantiatedClass
    1:4:void transitionDependentItemsForInstantiatedClass(com.android.tools.r8.graph.DexClass):1675:1678 -> transitionDependentItemsForInstantiatedClass
    5:5:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> transitionDependentItemsForInstantiatedClass
    5:5:void transitionDependentItemsForInstantiatedClass(com.android.tools.r8.graph.DexClass):1678 -> transitionDependentItemsForInstantiatedClass
    6:7:void transitionDependentItemsForInstantiatedClass(com.android.tools.r8.graph.DexClass):1680:1681 -> transitionDependentItemsForInstantiatedClass
    1:9:void transitionFieldsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1660:1668 -> transitionFieldsForInstantiatedClass
    1:22:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1513:1534 -> transitionMethodsForInstantiatedClass
    23:23:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> transitionMethodsForInstantiatedClass
    23:23:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1534 -> transitionMethodsForInstantiatedClass
    24:50:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1536:1562 -> transitionMethodsForInstantiatedClass
    51:51:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> transitionMethodsForInstantiatedClass
    51:51:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1562 -> transitionMethodsForInstantiatedClass
    52:56:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1564:1568 -> transitionMethodsForInstantiatedClass
    57:57:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> transitionMethodsForInstantiatedClass
    57:57:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1568 -> transitionMethodsForInstantiatedClass
    58:58:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1570:1570 -> transitionMethodsForInstantiatedClass
    1:9:void transitionNonAbstractMethodsToLiveAndShadow(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.Enqueuer$ReachableVirtualMethodsSet,com.android.tools.r8.shaking.ScopedDexMethodSet):1640:1648 -> transitionNonAbstractMethodsToLiveAndShadow
    10:10:void transitionNonAbstractMethodsToLiveAndShadow(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.Enqueuer$ReachableVirtualMethodsSet,com.android.tools.r8.shaking.ScopedDexMethodSet):1647:1647 -> transitionNonAbstractMethodsToLiveAndShadow
    11:11:void transitionNonAbstractMethodsToLiveAndShadow(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.Enqueuer$ReachableVirtualMethodsSet,com.android.tools.r8.shaking.ScopedDexMethodSet):1644:1644 -> transitionNonAbstractMethodsToLiveAndShadow
    1:3:void transitionReachableVirtualMethods(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet):1068:1070 -> transitionReachableVirtualMethods
    1:9:void transitionUnusedInterfaceToLive(com.android.tools.r8.graph.DexProgramClass):1685:1693 -> transitionUnusedInterfaceToLive
    1:5:void unpinLambdaMethods():2393:2397 -> unpinLambdaMethods
    1:3:boolean verifyKeptGraph():2196:2198 -> verifyKeptGraph
    1:2:boolean verifyMethodIsTargeted(com.android.tools.r8.graph.DexEncodedMethod):1093:1094 -> verifyMethodIsTargeted
    1:1:boolean verifyTypeIsLive(com.android.tools.r8.graph.DexProgramClass):1099:1099 -> verifyTypeIsLive
    1:5:void warnIfLibraryTypeInheritsFromProgramType(com.android.tools.r8.graph.DexLibraryClass):360:364 -> warnIfLibraryTypeInheritsFromProgramType
com.android.tools.r8.shaking.Enqueuer$1 -> com.android.tools.r8.shaking.Enqueuer$1:
    1:1:void <clinit>():1002:1002 -> <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):3067:3067 -> <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):3074:3077 -> <init>
    1:1:boolean addField(com.android.tools.r8.graph.DexField):3087:3087 -> addField
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> addField
    2:2:boolean addField(com.android.tools.r8.graph.DexField):3087 -> addField
    3:13:boolean addField(com.android.tools.r8.graph.DexField):3091:3101 -> addField
    14:14:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> addField
    14:14:boolean addField(com.android.tools.r8.graph.DexField):3101 -> addField
    15:27:boolean addField(com.android.tools.r8.graph.DexField):3101:3113 -> addField
    1:10:boolean addMethod(com.android.tools.r8.graph.DexMethod):3121:3130 -> addMethod
    11:18:boolean addMethod(com.android.tools.r8.graph.DexMethod):3129:3136 -> addMethod
    1:2:boolean addType(com.android.tools.r8.graph.DexType):3166:3167 -> addType
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):2930:2930 -> <init>
    2:7:void <init>(com.android.tools.r8.shaking.Enqueuer,java.util.function.BiConsumer):2926:2931 -> <init>
    1:1:java.util.Set access$4100(com.android.tools.r8.shaking.Enqueuer$LiveMethodsSet):2924:2924 -> access$4100
    1:3:boolean add(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2935:2937 -> add
    1:1:boolean contains(com.android.tools.r8.graph.DexEncodedMethod):2941:2941 -> contains
    1:1:java.util.Set getItems():2945:2945 -> getItems
com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget -> com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget:
    1:3:void <clinit>():2973:2975 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):2984:2987 -> <init>
    1:2:boolean equals(java.lang.Object):3003:3004 -> equals
    1:1:int hashCode():2997:2997 -> hashCode
    2:2:int com.android.tools.r8.graph.KeyedDexItem.hashCode():20:20 -> hashCode
    2:2:int hashCode():2997 -> hashCode
    1:1:boolean isUnresolved():2991:2991 -> isUnresolved
    1:1:com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget unresolved():2981:2981 -> unresolved
com.android.tools.r8.shaking.Enqueuer$Mode -> com.android.tools.r8.shaking.Enqueuer$Mode:
    1:4:void <clinit>():106:109 -> <clinit>
    5:5:void <clinit>():105:105 -> <clinit>
    1:1:void <init>(java.lang.String,int):105:105 -> <init>
    1:1:boolean isFinalTreeShaking():116:116 -> isFinalTreeShaking
    1:1:boolean isInitialOrFinalTreeShaking():120:120 -> isInitialOrFinalTreeShaking
    1:1:boolean isInitialTreeShaking():112:112 -> isInitialTreeShaking
    1:1:boolean isTracingMainDex():124:124 -> isTracingMainDex
    1:1:com.android.tools.r8.shaking.Enqueuer$Mode valueOf(java.lang.String):105:105 -> valueOf
    1:1:com.android.tools.r8.shaking.Enqueuer$Mode[] values():105:105 -> values
com.android.tools.r8.shaking.Enqueuer$ReachableVirtualMethodsSet -> com.android.tools.r8.shaking.Enqueuer$ReachableVirtualMethodsSet:
    1:4:void <init>():3008:3011 -> <init>
    5:5:void <init>(com.android.tools.r8.shaking.Enqueuer$1):3008:3008 -> <init>
    1:8:boolean add(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget):3022:3029 -> add
    1:1:java.util.Set getMethods():3014:3014 -> getMethods
    1:1:java.util.Set getReasons(com.android.tools.r8.graph.DexEncodedMethod):3018:3018 -> getReasons
com.android.tools.r8.shaking.Enqueuer$SetWithReason -> com.android.tools.r8.shaking.Enqueuer$SetWithReason:
    1:1:void <init>(java.util.function.BiConsumer):2955:2955 -> <init>
    2:7:void <init>(java.util.function.BiConsumer):2951:2956 -> <init>
    1:1:java.util.Set access$3900(com.android.tools.r8.shaking.Enqueuer$SetWithReason):2949:2949 -> access$3900
    1:2:boolean add(java.lang.Object,com.android.tools.r8.shaking.KeepReason):2960:2961 -> add
    1:1:boolean contains(java.lang.Object):2965:2965 -> contains
    1:1:java.util.Set getItems():2969:2969 -> getItems
com.android.tools.r8.shaking.Enqueuer$SetWithReportedReason -> com.android.tools.r8.shaking.Enqueuer$SetWithReportedReason:
    1:1:void <clinit>():2906:2906 -> <clinit>
    1:3:void <init>():2906:2908 -> <init>
    4:4:void <init>(com.android.tools.r8.shaking.Enqueuer$1):2906:2906 -> <init>
    1:1:java.util.Set access$4000(com.android.tools.r8.shaking.Enqueuer$SetWithReportedReason):2906:2906 -> access$4000
    1:2:boolean add(java.lang.Object,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):2911:2912 -> add
    1:1:boolean contains(java.lang.Object):2916:2916 -> contains
    1:1:java.util.Set getItems():2920:2920 -> getItems
com.android.tools.r8.shaking.Enqueuer$TargetWithContext -> com.android.tools.r8.shaking.Enqueuer$TargetWithContext:
    1:3:void <init>(com.android.tools.r8.graph.Descriptor,com.android.tools.r8.graph.DexEncodedMethod):3039:3041 -> <init>
    1:5:boolean equals(java.lang.Object):3059:3063 -> equals
    1:1:com.android.tools.r8.graph.DexEncodedMethod getContext():3049:3049 -> getContext
    1:1:com.android.tools.r8.graph.Descriptor getTarget():3045:3045 -> getTarget
    1:1:int hashCode():3054:3054 -> hashCode
    2:2:int com.android.tools.r8.graph.KeyedDexItem.hashCode():20:20 -> hashCode
    2:2:int hashCode():3054 -> hashCode
com.android.tools.r8.shaking.Enqueuer$UseRegistry -> com.android.tools.r8.shaking.Enqueuer$UseRegistry:
    1:1:void <clinit>():583:583 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.Enqueuer$1):583:583 -> <init>
    2:6:void <init>(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):588:592 -> <init>
    1:1:java.lang.Boolean lambda$registerStaticFieldRead$0(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):836:836 -> a
    1:1:java.lang.Boolean lambda$registerStaticFieldWrite$1(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):881:881 -> b
    1:65:void registerCallSite(com.android.tools.r8.graph.DexCallSite):956:1020 -> registerCallSite
    66:76:void registerCallSite(com.android.tools.r8.graph.DexCallSite):1007:1017 -> registerCallSite
    77:77:void registerCallSite(com.android.tools.r8.graph.DexCallSite):1016:1016 -> registerCallSite
    78:78:void registerCallSite(com.android.tools.r8.graph.DexCallSite):1010:1010 -> registerCallSite
    79:119:void registerCallSite(com.android.tools.r8.graph.DexCallSite):1004:1044 -> registerCallSite
    1:1:boolean registerCheckCast(com.android.tools.r8.graph.DexType):922:922 -> registerCheckCast
    1:8:boolean registerConstClass(com.android.tools.r8.graph.DexType):910:917 -> registerConstClass
    1:10:boolean registerConstClassOrCheckCast(com.android.tools.r8.graph.DexType):1050:1059 -> registerConstClassOrCheckCast
    11:11:boolean registerConstClassOrCheckCast(com.android.tools.r8.graph.DexType):1058:1058 -> registerConstClassOrCheckCast
    1:20:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):754:773 -> registerInstanceFieldRead
    21:21:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> registerInstanceFieldRead
    21:21:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):773 -> registerInstanceFieldRead
    22:30:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):778:786 -> registerInstanceFieldRead
    31:31:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):785:785 -> registerInstanceFieldRead
    1:20:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):708:727 -> registerInstanceFieldWrite
    21:21:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> registerInstanceFieldWrite
    21:21:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):727 -> registerInstanceFieldWrite
    22:39:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):731:748 -> registerInstanceFieldWrite
    1:1:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):626:626 -> registerInvokeDirect
    2:6:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):630:634 -> registerInvokeDirect
    7:7:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> registerInvokeDirect
    7:7:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):634 -> registerInvokeDirect
    8:8:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):636:636 -> registerInvokeDirect
    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):677:677 -> registerInvokeInterface
    2:6:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):681:685 -> registerInvokeInterface
    7:7:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> registerInvokeInterface
    7:7:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):685 -> registerInvokeInterface
    8:8:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):687:687 -> registerInvokeInterface
    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):642:642 -> registerInvokeStatic
    2:25:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):646:669 -> registerInvokeStatic
    26:26:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> registerInvokeStatic
    26:26:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):669 -> registerInvokeStatic
    27:27:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):671:671 -> registerInvokeStatic
    1:6:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):695:700 -> registerInvokeSuper
    7:7:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> registerInvokeSuper
    7:7:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):700 -> registerInvokeSuper
    8:8:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):702:702 -> registerInvokeSuper
    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):601:601 -> registerInvokeVirtual
    2:9:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):605:612 -> registerInvokeVirtual
    10:21:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):607:618 -> registerInvokeVirtual
    22:22:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]) -> registerInvokeVirtual
    22:22:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):618 -> registerInvokeVirtual
    23:23:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):620:620 -> registerInvokeVirtual
    1:1:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):933:933 -> registerMethodHandle
    2:2:boolean com.android.tools.r8.graph.DexMethodHandle.isMethodHandle():297:297 -> registerMethodHandle
    2:2:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):940 -> registerMethodHandle
    3:11:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):940:948 -> registerMethodHandle
    1:1:boolean registerNewInstance(com.android.tools.r8.graph.DexType):792:792 -> registerNewInstance
    2:7:boolean registerNewInstance(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):797:802 -> registerNewInstance
    1:19:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):810:828 -> registerStaticFieldRead
    20:20:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> registerStaticFieldRead
    20:20:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):828 -> registerStaticFieldRead
    21:27:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):831:837 -> registerStaticFieldRead
    28:43:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):834:849 -> registerStaticFieldRead
    1:19:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):855:873 -> registerStaticFieldWrite
    20:20:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> registerStaticFieldWrite
    20:20:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):873 -> registerStaticFieldWrite
    21:27:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):876:882 -> registerStaticFieldWrite
    28:51:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):879:902 -> registerStaticFieldWrite
    1:1:boolean registerTypeReference(com.android.tools.r8.graph.DexType):927:927 -> registerTypeReference
    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportClassReferenced(com.android.tools.r8.graph.DexProgramClass):596:596 -> reportClassReferenced
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>():16:16 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):169:169 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.AppView):167:170 -> <init>
    1:1:com.android.tools.r8.shaking.EnqueuerWorklist createWorklist(com.android.tools.r8.graph.AppView):174:174 -> createWorklist
    1:2:void enqueueMarkFieldKeptAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):229:230 -> enqueueMarkFieldKeptAction
    1:2:void enqueueMarkInstantiatedAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):211:212 -> enqueueMarkInstantiatedAction
    1:2:void enqueueMarkMethodKeptAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):223:224 -> enqueueMarkMethodKeptAction
    1:2:void enqueueMarkMethodLiveAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):217:218 -> enqueueMarkMethodLiveAction
    1:1:void enqueueMarkReachableDirectAction(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):186:186 -> enqueueMarkReachableDirectAction
    1:2:void enqueueMarkReachableFieldAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):203:204 -> enqueueMarkReachableFieldAction
    1:1:void enqueueMarkReachableInterfaceAction(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):194:194 -> enqueueMarkReachableInterfaceAction
    1:1:void enqueueMarkReachableSuperAction(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):198:198 -> enqueueMarkReachableSuperAction
    1:1:void enqueueMarkReachableVirtualAction(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):190:190 -> enqueueMarkReachableVirtualAction
    1:1:boolean isEmpty():178:178 -> isEmpty
    1:1:com.android.tools.r8.shaking.EnqueuerWorklist$Action poll():182:182 -> poll
com.android.tools.r8.shaking.EnqueuerWorklist$Action -> com.android.tools.r8.shaking.EnqueuerWorklist$Action:
    1:1:void <init>():18:18 -> <init>
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):154:157 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):162:162 -> run
com.android.tools.r8.shaking.EnqueuerWorklist$MarkInstantiatedAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkInstantiatedAction:
    1:4:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):103:106 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):111:111 -> 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):136:139 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):144:144 -> 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):119:121 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):126:126 -> 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):26:28 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):33:33 -> 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):86:88 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):93:93 -> run
com.android.tools.r8.shaking.EnqueuerWorklist$MarkReachableInterfaceAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkReachableInterfaceAction:
    1:3:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):56:58 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):63:63 -> 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):71:73 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):78:78 -> run
com.android.tools.r8.shaking.EnqueuerWorklist$MarkReachableVirtualAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkReachableVirtualAction:
    1:3:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):41:43 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):48:48 -> 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.experimental.graphinfo.GraphEdgeInfo lambda$getEdgeInfo$0(com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind):393:393 -> a
    2:6:com.android.tools.r8.experimental.graphinfo.AnnotationGraphNode lambda$getAnnotationGraphNode$1(com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexItem):400:404 -> a
    7:7:com.android.tools.r8.experimental.graphinfo.ClassGraphNode lambda$getClassGraphNode$2(com.android.tools.r8.graph.DexType):412:412 -> a
    8:8:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    8:8:com.android.tools.r8.experimental.graphinfo.ClassGraphNode lambda$getClassGraphNode$2(com.android.tools.r8.graph.DexType):412 -> a
    9:11:com.android.tools.r8.experimental.graphinfo.ClassGraphNode lambda$getClassGraphNode$2(com.android.tools.r8.graph.DexType):413:415 -> a
    12:12:com.android.tools.r8.experimental.graphinfo.MethodGraphNode lambda$getMethodGraphNode$3(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):423:423 -> a
    13:13:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    13:13:com.android.tools.r8.experimental.graphinfo.MethodGraphNode lambda$getMethodGraphNode$3(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):423 -> a
    14:26:com.android.tools.r8.experimental.graphinfo.MethodGraphNode lambda$getMethodGraphNode$3(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):424:436 -> a
    27:27:com.android.tools.r8.experimental.graphinfo.MethodGraphNode lambda$getMethodGraphNode$3(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):430:430 -> a
    28:28:com.android.tools.r8.experimental.graphinfo.FieldGraphNode lambda$getFieldGraphNode$4(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):444:444 -> a
    29:29:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    29:29:com.android.tools.r8.experimental.graphinfo.FieldGraphNode lambda$getFieldGraphNode$4(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):444 -> a
    30:35:com.android.tools.r8.experimental.graphinfo.FieldGraphNode lambda$getFieldGraphNode$4(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):445:450 -> a
    36:36:com.android.tools.r8.experimental.graphinfo.FieldGraphNode lambda$getFieldGraphNode$4(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):447:447 -> a
    37:37: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):468:468 -> a
    38:42:com.android.tools.r8.experimental.graphinfo.KeepRuleGraphNode lambda$getKeepRuleGraphNode$6(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.shaking.ProguardKeepRuleBase):476:480 -> a
    1:1:com.android.tools.r8.experimental.graphinfo.AnnotationGraphNode getAnnotationGraphNode(com.android.tools.r8.graph.DexItem):397:397 -> getAnnotationGraphNode
    1:1:com.android.tools.r8.experimental.graphinfo.ClassGraphNode getClassGraphNode(com.android.tools.r8.graph.DexType):409:409 -> getClassGraphNode
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo getEdgeInfo(com.android.tools.r8.shaking.KeepReason):389:389 -> getEdgeInfo
    2:2:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo getEdgeInfo(com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind):393:393 -> getEdgeInfo
    1:1:com.android.tools.r8.experimental.graphinfo.FieldGraphNode getFieldGraphNode(com.android.tools.r8.graph.DexField):441:441 -> getFieldGraphNode
    1:10:com.android.tools.r8.experimental.graphinfo.GraphNode getGraphNode(com.android.tools.r8.graph.DexReference):376:385 -> getGraphNode
    1:21:com.android.tools.r8.experimental.graphinfo.KeepRuleGraphNode getKeepRuleGraphNode(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardKeepRuleBase):463:483 -> getKeepRuleGraphNode
    1:1:com.android.tools.r8.experimental.graphinfo.MethodGraphNode getMethodGraphNode(com.android.tools.r8.graph.DexMethod):420:420 -> getMethodGraphNode
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.KeepReason):372:372 -> getSourceNode
    1:1:boolean isNonProgramClass(com.android.tools.r8.graph.DexType):367:367 -> isNonProgramClass
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> isNonProgramClass
    2:2:boolean isNonProgramClass(com.android.tools.r8.graph.DexType):367 -> isNonProgramClass
    3:3:boolean isNonProgramClass(com.android.tools.r8.graph.DexType):368:368 -> isNonProgramClass
    1:4:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness registerAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.shaking.KeepReason):330:333 -> registerAnnotation
    1:4:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness registerClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):323:326 -> registerClass
    1:8:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness registerEdge(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.shaking.KeepReason):356:363 -> registerEdge
    1:4:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness registerField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):349:352 -> registerField
    1:5:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness registerInterface(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):315:319 -> registerInterface
    1:9:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness registerMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):337:345 -> registerMethod
    1:6:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportClassReferencedFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):203:208 -> reportClassReferencedFrom
    7:12:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportClassReferencedFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):213:218 -> reportClassReferencedFrom
    13:18:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportClassReferencedFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField):222:227 -> reportClassReferencedFrom
    1:7:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompanionClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):254:260 -> reportCompanionClass
    8:8:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompanionClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):259:259 -> reportCompanionClass
    1:7:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompanionMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):265:271 -> reportCompanionMethod
    8:8:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompanionMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):269:269 -> reportCompanionMethod
    1:4:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatInstantiated(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):192:195 -> reportCompatInstantiated
    5:10:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatInstantiated(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):193:198 -> reportCompatInstantiated
    1:2:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepDefaultInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):170:171 -> reportCompatKeepDefaultInitializer
    3:3:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():693:693 -> reportCompatKeepDefaultInitializer
    3:3:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepDefaultInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):171 -> reportCompatKeepDefaultInitializer
    4:4:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepDefaultInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):171:171 -> reportCompatKeepDefaultInitializer
    5:5:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():693:693 -> reportCompatKeepDefaultInitializer
    5:5:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepDefaultInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):171 -> reportCompatKeepDefaultInitializer
    6:9:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepDefaultInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):172:175 -> reportCompatKeepDefaultInitializer
    10:15:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepDefaultInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):173:178 -> reportCompatKeepDefaultInitializer
    1:6:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepMethod(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):182:187 -> 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):276:278 -> 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):107:112 -> 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):117:123 -> 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):149:154 -> 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):159:165 -> 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):128:133 -> 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):138:144 -> reportKeepMethod
    1:7:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind reportPrecondition(com.android.tools.r8.experimental.graphinfo.KeepRuleGraphNode):96:102 -> reportPrecondition
    1:4:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportReachableMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget):232:235 -> reportReachableMethodAsLive
    5:10:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportReachableMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget):233:238 -> reportReachableMethodAsLive
    11:18:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportReachableMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):243:250 -> reportReachableMethodAsLive
    1:6:boolean skipReporting(com.android.tools.r8.shaking.KeepReason):306:311 -> skipReporting
    1:21:boolean verifyRootedPath(com.android.tools.r8.graph.DexProgramClass):71:91 -> verifyRootedPath
com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness -> com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness:
    1:1:void <clinit>():288:288 -> <clinit>
    1:1:void <init>():290:290 -> <init>
    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness access$000():286:286 -> access$000
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():296:296 -> edgeKind
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):301:301 -> 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:9:boolean lambda$run$0(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ProguardIfRule):102:110 -> a
    10:19:boolean lambda$run$1(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ProguardIfRule):136:145 -> a
    20:21:boolean lambda$evaluateIfRuleMembersAndMaterialize$2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):246:247 -> a
    22:25:boolean lambda$evaluateIfRuleMembersAndMaterialize$3(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):253:256 -> a
    26:27:boolean lambda$evaluateIfRuleMembersAndMaterialize$4(java.util.Collection,java.util.Collection,com.android.tools.r8.shaking.ProguardMemberRule):280:281 -> a
    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():671:671 -> evaluateIfRuleMembersAndMaterialize
    3:3:com.android.tools.r8.graph.DexReference com.android.tools.r8.graph.DexClass.toReference():604 -> 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():671:671 -> evaluateIfRuleMembersAndMaterialize
    52:52:com.android.tools.r8.graph.DexReference com.android.tools.r8.graph.DexClass.toReference():604 -> 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: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):168:168 -> 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.KeepReason -> com.android.tools.r8.shaking.KeepReason:
    1:1:void <init>():17:17 -> <init>
    1:1:com.android.tools.r8.shaking.KeepReason annotatedOn(com.android.tools.r8.graph.DexDefinition):24:24 -> annotatedOn
    1:1:com.android.tools.r8.shaking.KeepReason fieldReferencedIn(com.android.tools.r8.graph.DexEncodedMethod):52:52 -> fieldReferencedIn
    1:1:com.android.tools.r8.shaking.KeepReason instantiatedIn(com.android.tools.r8.graph.DexEncodedMethod):28:28 -> instantiatedIn
    1:1:com.android.tools.r8.shaking.KeepReason invokedFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):40:40 -> invokedFrom
    1:1:com.android.tools.r8.shaking.KeepReason invokedFromLambdaCreatedIn(com.android.tools.r8.graph.DexEncodedMethod):44:44 -> invokedFromLambdaCreatedIn
    1:1:com.android.tools.r8.shaking.KeepReason invokedViaSuperFrom(com.android.tools.r8.graph.DexEncodedMethod):32:32 -> invokedViaSuperFrom
    1:1:com.android.tools.r8.shaking.KeepReason isLibraryMethod(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType):48:48 -> isLibraryMethod
    1:1:com.android.tools.r8.shaking.KeepReason methodHandleReferencedIn(com.android.tools.r8.graph.DexEncodedMethod):76:76 -> methodHandleReferencedIn
    1:1:com.android.tools.r8.shaking.KeepReason reachableFromLiveType(com.android.tools.r8.graph.DexType):36:36 -> reachableFromLiveType
    1:1:com.android.tools.r8.shaking.KeepReason referencedInAnnotation(com.android.tools.r8.graph.DexItem):56:56 -> referencedInAnnotation
    1:1:com.android.tools.r8.shaking.KeepReason reflectiveUseIn(com.android.tools.r8.graph.DexEncodedMethod):72:72 -> reflectiveUseIn
    1:1:com.android.tools.r8.shaking.KeepReason targetedBySuperFrom(com.android.tools.r8.graph.DexEncodedMethod):68:68 -> targetedBySuperFrom
com.android.tools.r8.shaking.KeepReason$AnnotatedOn -> com.android.tools.r8.shaking.KeepReason$AnnotatedOn:
    1:1:void <clinit>():261:261 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.KeepReason$1):261:261 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.DexDefinition):265:266 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():271:271 -> edgeKind
    1:7:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):276:282 -> 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):79:79 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.DexEncodedMethod):83:84 -> <init>
    1:1:com.android.tools.r8.graph.DexMethod getMethod():90:90 -> getMethod
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):95:95 -> 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):99:99 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):102:102 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():107:107 -> edgeKind
    1:1:com.android.tools.r8.graph.DexMethod getMethod():99:99 -> getMethod
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):99:99 -> getSourceNode
com.android.tools.r8.shaking.KeepReason$InvokedFrom -> com.android.tools.r8.shaking.KeepReason$InvokedFrom:
    1:1:void <clinit>():150:150 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):150:150 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):153:154 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():159:159 -> 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):168:168 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):171:171 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():176:176 -> 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):116:116 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):119:119 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():124:124 -> 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):221:221 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):226:228 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():233:233 -> edgeKind
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):238:238 -> 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):309:309 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):312:312 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():317:317 -> 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):202:202 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.DexType):206:207 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():212:212 -> edgeKind
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):217:217 -> 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):185:185 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):188:188 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():193:193 -> 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):242:242 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.DexItem):246:247 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():252:252 -> edgeKind
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):257:257 -> 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):287:287 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):290:290 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():300:300 -> 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):133:133 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):136:136 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():141:141 -> 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>():27:27 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):39:39 -> <init>
    2:8:void <init>(com.android.tools.r8.graph.AppView):37:43 -> <init>
    9:9:void <init>(com.android.tools.r8.graph.AppView):42:42 -> <init>
    1:3:void lambda$getClassesWithLibraryMethodOverrides$0(java.util.Set,com.android.tools.r8.graph.DexProgramClass):65:67 -> a
    4:4:boolean lambda$finish$1(com.android.tools.r8.graph.DexType):145:145 -> a
    5:8:void lambda$logResults$2(java.lang.Class):173:176 -> a
    9:9:void lambda$logResults$2(java.lang.Class):172:172 -> a
    1:13:void analyze(com.android.tools.r8.ir.code.IRCode):105:117 -> analyze
    14:14:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> analyze
    14:14:void analyze(com.android.tools.r8.ir.code.IRCode):117 -> analyze
    15:30:void analyze(com.android.tools.r8.ir.code.IRCode):118:133 -> analyze
    31:31:void analyze(com.android.tools.r8.ir.code.IRCode):132:132 -> analyze
    1:2:void finish():143:144 -> finish
    1:4:java.util.Set getClassesWithLibraryMethodOverrides(com.android.tools.r8.graph.AppView):60:63 -> getClassesWithLibraryMethodOverrides
    5:5:java.util.Set getClassesWithLibraryMethodOverrides(com.android.tools.r8.graph.AppView):62:62 -> getClassesWithLibraryMethodOverrides
    1:5:java.util.Set getInitialNonEscapingClassesWithLibraryMethodOverrides(com.android.tools.r8.graph.AppView):49:53 -> getInitialNonEscapingClassesWithLibraryMethodOverrides
    1:5:boolean hasLibraryMethodOverrideDirectly(com.android.tools.r8.graph.DexProgramClass):80:84 -> hasLibraryMethodOverrideDirectly
    1:2:boolean hasLibraryMethodOverrideDirectlyOrIndirectly(com.android.tools.r8.graph.DexProgramClass,java.util.Set):75:76 -> hasLibraryMethodOverrideDirectlyOrIndirectly
    1:5:boolean hasLibraryMethodOverrideIndirectly(com.android.tools.r8.graph.DexProgramClass,java.util.Set):93:97 -> hasLibraryMethodOverrideIndirectly
    1:5:void logResults():159:163 -> logResults
    6:13:void logResults():160:167 -> logResults
    14:20:void logResults():164:170 -> logResults
    1:5:boolean verifyNoUninstantiatedTypesEscapeIntoLibrary():149:153 -> verifyNoUninstantiatedTypesEscapeIntoLibrary
    6:6:boolean verifyNoUninstantiatedTypesEscapeIntoLibrary():151:151 -> verifyNoUninstantiatedTypesEscapeIntoLibrary
com.android.tools.r8.shaking.LibraryMethodOverrideAnalysis$LibraryEscapeAnalysisConfiguration -> com.android.tools.r8.shaking.LibraryMethodOverrideAnalysis$LibraryEscapeAnalysisConfiguration:
    1:1:void <clinit>():181:181 -> <clinit>
    1:1:void <init>():184:184 -> <init>
    1:1:com.android.tools.r8.shaking.LibraryMethodOverrideAnalysis$LibraryEscapeAnalysisConfiguration getInstance():187:187 -> getInstance
    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):196:198 -> 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):197:197 -> isLegitimateEscapeRoute
    1:12:boolean isTrivialInitializerInvocation(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:220 -> isTrivialInitializerInvocation
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:2:void lambda$collectTypesMatching$0(java.util.function.Predicate,java.util.function.Consumer,com.android.tools.r8.graph.DexType):98:99 -> a
    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: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:void lambda$run$0(com.android.tools.r8.graph.DexEncodedField):47:47 -> a
    2:3:void lambda$run$1(com.android.tools.r8.graph.DexEncodedMethod):49:50 -> a
    4:8: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 -> a
    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: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
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>():27:27 -> <clinit>
    1:19:void <init>(java.util.Set,com.android.tools.r8.graph.DexApplication):39:57 -> <init>
    20:20:void <init>(java.util.Set,com.android.tools.r8.graph.DexApplication):56:56 -> <init>
    21:21:void <init>(java.util.Set,com.android.tools.r8.graph.DexApplication):52:52 -> <init>
    22:22:void <init>(java.util.Set,com.android.tools.r8.graph.DexApplication):47:47 -> <init>
    1:4:void lambda$traceRuntimeAnnotationsWithEnumForMainDex$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotation):80:83 -> a
    1:8:void addAnnotationsWithEnum(com.android.tools.r8.graph.DexProgramClass):139:146 -> addAnnotationsWithEnum
    1:1:void addClassAnnotatedWithAnnotationWithEnum(com.android.tools.r8.graph.DexType):154:154 -> addClassAnnotatedWithAnnotationWithEnum
    1:12:void addDirectDependency(com.android.tools.r8.graph.DexType):159:170 -> addDirectDependency
    13:20:void addDirectDependency(com.android.tools.r8.graph.DexProgramClass):174:181 -> addDirectDependency
    1:1:boolean isAnnotation(com.android.tools.r8.graph.DexType):124:124 -> isAnnotation
    1:27:boolean isAnnotationWithEnum(com.android.tools.r8.graph.DexType):90:116 -> isAnnotationWithEnum
    1:1:boolean isEnum(com.android.tools.r8.graph.DexType):120:120 -> isEnum
    1:2:boolean isProgramClass(com.android.tools.r8.graph.DexType):128:129 -> isProgramClass
    1:3:com.android.tools.r8.shaking.MainDexClasses run():61:63 -> run
    1:2:void traceMainDexDirectDependencies():133:134 -> traceMainDexDirectDependencies
    1:12:void traceRuntimeAnnotationsWithEnumForMainDex():67:78 -> traceRuntimeAnnotationsWithEnumForMainDex
    13:35:void com.android.tools.r8.graph.DexClass.forEachAnnotation(java.util.function.Consumer):359:381 -> traceRuntimeAnnotationsWithEnumForMainDex
    13:35:void traceRuntimeAnnotationsWithEnumForMainDex():78 -> 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:5:void lambda$filterOutMatches$0(java.util.Set,com.android.tools.r8.shaking.ProguardTypeMatcher):61:65 -> a
    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: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:1:java.util.stream.Stream lambda$getWildcards$0(java.lang.Iterable):344:344 -> a
    2:2: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 -> a
    3:3:void lambda$forEachTypeMatcher$2(java.util.function.Consumer,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$Entry):358:358 -> a
    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: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:1:boolean lambda$asSpecificDexTypes$0(com.android.tools.r8.shaking.ProguardTypeMatcher):245:245 -> a
    2:2:boolean lambda$matches$1(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardTypeMatcher):254:254 -> a
    3:3:java.util.stream.Stream lambda$getWildcards$2(java.lang.Iterable):261:261 -> a
    4:4:com.android.tools.r8.shaking.ProguardTypeMatcher lambda$materialize$3(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.ProguardTypeMatcher):269:269 -> a
    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 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:3:void lambda$append$0(java.lang.StringBuilder,com.android.tools.r8.shaking.ProguardMemberRule):356:358 -> a
    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: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,com.android.tools.r8.shaking.ProguardConfiguration$1):20:20 -> <init>
    2:40: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):457:495 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder builder(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):503:503 -> builder
    1:1:com.android.tools.r8.shaking.ProguardClassFilter getAdaptClassStrings():631:631 -> getAdaptClassStrings
    1:1:com.android.tools.r8.shaking.ProguardPathFilter getAdaptResourceFileContents():639:639 -> getAdaptResourceFileContents
    1:1:com.android.tools.r8.shaking.ProguardPathFilter getAdaptResourceFilenames():635:635 -> getAdaptResourceFilenames
    1:1:java.nio.file.Path getApplyMappingFile():547:547 -> getApplyMappingFile
    1:1:java.util.List getClassObfuscationDictionary():619:619 -> getClassObfuscationDictionary
    1:1:com.android.tools.r8.graph.DexItemFactory getDexItemFactory():511:511 -> getDexItemFactory
    1:1:com.android.tools.r8.shaking.ProguardClassFilter getDontNotePatterns():603:603 -> getDontNotePatterns
    1:1:com.android.tools.r8.shaking.ProguardClassFilter getDontWarnPatterns():599:599 -> getDontWarnPatterns
    1:1:java.util.List getInjars():515:515 -> getInjars
    1:1:com.android.tools.r8.shaking.ProguardKeepAttributes getKeepAttributes():591:591 -> getKeepAttributes
    1:1:com.android.tools.r8.shaking.ProguardPathFilter getKeepDirectories():643:643 -> getKeepDirectories
    1:1:com.android.tools.r8.shaking.ProguardPackageNameList getKeepPackageNamesPatterns():595:595 -> getKeepPackageNamesPatterns
    1:1:java.util.List getLibraryjars():519:519 -> getLibraryjars
    1:1:java.util.List getObfuscationDictionary():615:615 -> getObfuscationDictionary
    1:1:java.util.List getPackageObfuscationDictionary():623:623 -> getPackageObfuscationDictionary
    1:1:com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode getPackageObfuscationMode():523:523 -> getPackageObfuscationMode
    1:1:java.lang.String getPackagePrefix():527:527 -> getPackagePrefix
    1:1:java.lang.String getParsedConfiguration():507:507 -> getParsedConfiguration
    1:1:java.nio.file.Path getPrintConfigurationFile():571:571 -> getPrintConfigurationFile
    1:1:java.nio.file.Path getPrintMappingFile():539:539 -> getPrintMappingFile
    1:1:java.nio.file.Path getPrintUsageFile():579:579 -> getPrintUsageFile
    1:1:java.lang.String getRenameSourceFileAttribute():587:587 -> getRenameSourceFileAttribute
    1:1:java.util.List getRules():607:607 -> getRules
    1:1:java.nio.file.Path getSeedFile():651:651 -> getSeedFile
    1:1:boolean hasApplyMappingFile():543:543 -> hasApplyMappingFile
    1:1:boolean hasDontUseMixedCaseClassnames():659:659 -> hasDontUseMixedCaseClassnames
    1:1:boolean isAccessModificationAllowed():531:531 -> isAccessModificationAllowed
    1:1:boolean isConfigurationDebugging():655:655 -> isConfigurationDebugging
    1:1:boolean isIgnoreWarnings():551:551 -> isIgnoreWarnings
    1:1:boolean isKeepParameterNames():627:627 -> isKeepParameterNames
    1:1:boolean isObfuscating():559:559 -> isObfuscating
    1:1:boolean isOptimizing():555:555 -> isOptimizing
    1:1:boolean isOverloadAggressively():611:611 -> isOverloadAggressively
    1:1:boolean isPrintConfiguration():567:567 -> isPrintConfiguration
    1:1:boolean isPrintMapping():535:535 -> isPrintMapping
    1:1:boolean isPrintSeeds():647:647 -> isPrintSeeds
    1:1:boolean isPrintUsage():575:575 -> isPrintUsage
    1:1:boolean isShrinking():563:563 -> isShrinking
    1:1:boolean isVerbose():583:583 -> isVerbose
    1:10:java.lang.String toString():664:673 -> 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):74:74 -> <init>
    3:55:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):24:76 -> <init>
    1:1:java.lang.String[] lambda$synthesizeKeepRulesForRecompilation$0(int):305:305 -> a
    2:4:void lambda$build$1(com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder):366:368 -> a
    1:1:void addAdaptClassStringsPattern(com.android.tools.r8.shaking.ProguardClassNameList):248:248 -> addAdaptClassStringsPattern
    1:1:void addAdaptResourceFileContents(com.android.tools.r8.shaking.ProguardPathList):256:256 -> addAdaptResourceFileContents
    1:1:void addAdaptResourceFilenames(com.android.tools.r8.shaking.ProguardPathList):252:252 -> addAdaptResourceFilenames
    1:1:void addDontNotePattern(com.android.tools.r8.shaking.ProguardClassNameList):200:200 -> addDontNotePattern
    1:1:void addDontWarnPattern(com.android.tools.r8.shaking.ProguardClassNameList):196:196 -> addDontWarnPattern
    1:1:void addInjars(java.util.List):84:84 -> addInjars
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder addKeepAttributePatterns(java.util.List):183:183 -> addKeepAttributePatterns
    1:1:void addKeepDirectories(com.android.tools.r8.shaking.ProguardPathList):264:264 -> addKeepDirectories
    1:1:void addKeepPackageNamesPattern(boolean,com.android.tools.r8.shaking.ProguardPackageMatcher):192:192 -> addKeepPackageNamesPattern
    1:1:void addLibraryJars(java.util.List):88:88 -> addLibraryJars
    1:1:void addParsedConfiguration(java.lang.String):80:80 -> addParsedConfiguration
    1:1:void addRule(com.android.tools.r8.shaking.ProguardConfigurationRule):188:188 -> addRule
    1:20:com.android.tools.r8.shaking.ProguardConfiguration build():357:376 -> build
    1:42:com.android.tools.r8.shaking.ProguardConfiguration buildRaw():310:351 -> buildRaw
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder disableObfuscation():119:119 -> disableObfuscation
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder disableOptimization():114:114 -> disableOptimization
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder disableShrinking():136:136 -> disableShrinking
    1:1:void enableKeepDirectories():260:260 -> enableKeepDirectories
    1:1:void enableKeepRuleSynthesisForRecompilation():276:276 -> enableKeepRuleSynthesisForRecompilation
    1:1:com.android.tools.r8.origin.Origin getKeepParameterNamesOptionOrigin():240:240 -> getKeepParameterNamesOptionOrigin
    1:1:com.android.tools.r8.position.Position getKeepParameterNamesOptionPosition():244:244 -> getKeepParameterNamesOptionPosition
    1:1:com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode getPackageObfuscationMode():92:92 -> getPackageObfuscationMode
    1:1:boolean hasApplyMappingFile():171:171 -> hasApplyMappingFile
    1:1:boolean isConfigurationDebugging():284:284 -> isConfigurationDebugging
    1:1:boolean isKeepParameterNames():236:236 -> isKeepParameterNames
    1:1:boolean isObfuscating():124:124 -> isObfuscating
    1:1:boolean isOptimizing():128:128 -> isOptimizing
    1:1:boolean isOverloadAggressively():224:224 -> isOverloadAggressively
    1:1:boolean isShrinking():132:132 -> isShrinking
    1:1:void setAllowAccessModification(boolean):106:106 -> setAllowAccessModification
    1:1:void setApplyMappingFile(java.nio.file.Path):167:167 -> setApplyMappingFile
    1:1:void setClassObfuscationDictionary(java.nio.file.Path):216:216 -> setClassObfuscationDictionary
    1:1:void setConfigurationDebugging(boolean):280:280 -> setConfigurationDebugging
    1:1:void setDontUseMixedCaseClassnames(boolean):288:288 -> setDontUseMixedCaseClassnames
    1:2:void setFlattenPackagePrefix(java.lang.String):101:102 -> setFlattenPackagePrefix
    1:1:void setForceProguardCompatibility(boolean):268:268 -> setForceProguardCompatibility
    1:1:void setIgnoreWarnings(boolean):110:110 -> setIgnoreWarnings
    1:4:void setKeepParameterNames(boolean,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):229:232 -> setKeepParameterNames
    1:1:void setObfuscationDictionary(java.nio.file.Path):212:212 -> setObfuscationDictionary
    1:1:void setOverloadAggressively(boolean):272:272 -> setOverloadAggressively
    1:1:void setPackageObfuscationDictionary(java.nio.file.Path):220:220 -> setPackageObfuscationDictionary
    1:2:void setPackagePrefix(java.lang.String):96:97 -> setPackagePrefix
    1:1:void setPrintConfiguration(boolean):141:141 -> setPrintConfiguration
    1:2:void setPrintConfigurationFile(java.nio.file.Path):145:146 -> setPrintConfigurationFile
    1:1:void setPrintMapping(boolean):158:158 -> setPrintMapping
    1:2:void setPrintMappingFile(java.nio.file.Path):162:163 -> setPrintMappingFile
    1:1:void setPrintSeeds(boolean):208:208 -> setPrintSeeds
    1:1:void setPrintUsage(boolean):150:150 -> setPrintUsage
    1:1:void setPrintUsageFile(java.nio.file.Path):154:154 -> setPrintUsageFile
    1:1:void setRenameSourceFileAttribute(java.lang.String):179:179 -> setRenameSourceFileAttribute
    1:1:void setSeedFile(java.nio.file.Path):204:204 -> setSeedFile
    1:1:void setVerbose(boolean):175:175 -> setVerbose
    1:10:void synthesizeKeepRulesForRecompilation():296:305 -> synthesizeKeepRulesForRecompilation
    11:11:void synthesizeKeepRulesForRecompilation():302:302 -> synthesizeKeepRulesForRecompilation
    12:12:void synthesizeKeepRulesForRecompilation():301:301 -> synthesizeKeepRulesForRecompilation
com.android.tools.r8.shaking.ProguardConfigurationParser -> com.android.tools.r8.shaking.ProguardConfigurationParser:
    1:52:void <clinit>():55:106 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):110:110 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter,boolean):114:119 -> <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():155:156 -> getConfig
    1:2:com.android.tools.r8.shaking.ProguardConfiguration getConfigRawForTesting():164:165 -> getConfigRawForTesting
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder getConfigurationBuilder():123:123 -> getConfigurationBuilder
    1:7:java.lang.String getTextSourceSnippet(java.lang.String,com.android.tools.r8.position.TextPosition,com.android.tools.r8.position.TextPosition):2010:2016 -> getTextSourceSnippet
    1:1:void parse(java.nio.file.Path):169:169 -> parse
    2:2:void parse(com.android.tools.r8.shaking.ProguardConfigurationSource):173:173 -> parse
    3:10:void parse(java.util.List):177:184 -> parse
    11:12:void parse(java.util.List):181:182 -> parse
    13:19:void parse(java.util.List):181:187 -> parse
    1:7:void validate():127:133 -> validate
    8:10:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> validate
    8:10:void validate():130 -> validate
    11:22:void validate():135:146 -> 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):2024:2026 -> <init>
    1:2:boolean hasBackreference():2038:2039 -> hasBackreference
    1:15:boolean hasUnusualCharacters():2043:2057 -> hasUnusualCharacters
    1:1:boolean isMatchAllNames():2034:2034 -> isMatchAllNames
    1:1:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards withoutWildcards(java.lang.String):2030:2030 -> 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):2068:2070 -> <init>
com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType -> com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType:
    1:3:void <clinit>():191:193 -> <clinit>
    4:4:void <clinit>():190:190 -> <clinit>
    1:1:void <init>(java.lang.String,int):190:190 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType valueOf(java.lang.String):190:190 -> valueOf
    1:1:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType[] values():190:190 -> values
com.android.tools.r8.shaking.ProguardConfigurationParser$ProguardConfigurationSourceParser -> com.android.tools.r8.shaking.ProguardConfigurationParser$ProguardConfigurationSourceParser:
    1:1:void <clinit>():196:196 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser,com.android.tools.r8.shaking.ProguardConfigurationSource):206:206 -> <init>
    2:1384:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser,com.android.tools.r8.shaking.ProguardConfigurationSource):199:1581 -> <init>
    1385:1388:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser,com.android.tools.r8.shaking.ProguardConfigurationSource):208:211 -> <init>
    1:4:boolean lambda$parseFileName$1(boolean,char,boolean,java.lang.Integer):1330:1333 -> a
    5:5:boolean lambda$acceptQuotedOrUnquotedString$4(char,java.lang.Integer):1556:1556 -> a
    6:8:boolean lambda$acceptPattern$7(java.lang.Integer):1773:1775 -> a
    1:7:boolean acceptArobaseInclude():529:535 -> acceptArobaseInclude
    1:2:boolean acceptChar(char):1490:1491 -> acceptChar
    1:1:java.lang.String acceptClassName():1589:1589 -> acceptClassName
    1:22:java.lang.String acceptFieldNameOrIntegerForReturn():1721:1742 -> acceptFieldNameOrIntegerForReturn
    1:6:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType):1594:1599 -> acceptIdentifierWithBackreference
    7:33:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1604:1630 -> acceptIdentifierWithBackreference
    34:35:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1625:1626 -> acceptIdentifierWithBackreference
    36:38:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> acceptIdentifierWithBackreference
    36:38:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1625 -> acceptIdentifierWithBackreference
    39:41:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1633:1635 -> acceptIdentifierWithBackreference
    42:44:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> acceptIdentifierWithBackreference
    42:44:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1633 -> acceptIdentifierWithBackreference
    45:51:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1639:1645 -> acceptIdentifierWithBackreference
    52:54:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> acceptIdentifierWithBackreference
    52:54:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1644 -> acceptIdentifierWithBackreference
    55:98:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1656:1699 -> acceptIdentifierWithBackreference
    99:101:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> acceptIdentifierWithBackreference
    99:101:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1695 -> acceptIdentifierWithBackreference
    102:102:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1689:1689 -> acceptIdentifierWithBackreference
    103:130:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1684:1711 -> acceptIdentifierWithBackreference
    131:133:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> acceptIdentifierWithBackreference
    131:133:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1710 -> acceptIdentifierWithBackreference
    134:135:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1716:1717 -> acceptIdentifierWithBackreference
    1:5:java.lang.Integer acceptInteger():1564:1568 -> acceptInteger
    1:1:java.lang.String acceptPattern():1771:1771 -> acceptPattern
    1:20:java.util.List acceptPatternList():1746:1765 -> acceptPatternList
    1:1:char acceptQuoteIfPresent():1499:1499 -> acceptQuoteIfPresent
    1:4:java.lang.String acceptQuotedOrUnquotedString():1555:1558 -> acceptQuotedOrUnquotedString
    1:9:boolean acceptString(java.lang.String):1538:1546 -> acceptString
    10:10:java.lang.String acceptString():1551:1551 -> acceptString
    11:25:java.lang.String acceptString(java.util.function.Predicate):1779:1793 -> acceptString
    1:1:boolean lambda$acceptString$3(java.lang.Integer):1551:1551 -> b
    1:7:boolean lambda$new$5(java.lang.Integer):1573:1579 -> c
    1:10:void checkConstructorPattern(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.position.TextPosition):1243:1252 -> checkConstructorPattern
    11:11:void checkConstructorPattern(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.position.TextPosition):1249:1249 -> checkConstructorPattern
    1:4:boolean lambda$new$6(java.lang.Integer):1583:1586 -> d
    1:2:boolean lambda$parseFileFilter$2(java.lang.Integer):1388:1389 -> e
    1:1:boolean eof():1464:1464 -> eof
    2:2:boolean eof(int):1468:1468 -> eof
    1:2:void expectChar(char):1532:1533 -> expectChar
    1:5:void expectClosingQuote(char):1503:1507 -> expectClosingQuote
    6:6:void expectClosingQuote(char):1505:1505 -> expectClosingQuote
    1:1:boolean lambda$skipOptimizationName$0(java.lang.Integer):616:616 -> f
    1:1:int getColumn():1999:1999 -> getColumn
    1:4:com.android.tools.r8.position.Position getPosition(com.android.tools.r8.position.TextPosition):1987:1990 -> getPosition
    5:5:com.android.tools.r8.position.TextPosition getPosition():1995:1995 -> getPosition
    1:2:java.lang.String getSourceSnippet(java.lang.String,com.android.tools.r8.position.Position,com.android.tools.r8.position.Position):2003:2004 -> getSourceSnippet
    1:4:boolean hasNextChar(char):1472:1475 -> hasNextChar
    5:8:boolean hasNextChar(java.util.function.Predicate):1479:1482 -> hasNextChar
    1:2:void infoIgnoringModifier(java.lang.String,com.android.tools.r8.position.TextPosition):1982:1983 -> infoIgnoringModifier
    3:3:void infoIgnoringModifier(java.lang.String,com.android.tools.r8.position.TextPosition):1982:1982 -> infoIgnoringModifier
    1:2:void infoIgnoringOptions(java.lang.String,com.android.tools.r8.position.TextPosition):1957:1958 -> infoIgnoringOptions
    3:3:void infoIgnoringOptions(java.lang.String,com.android.tools.r8.position.TextPosition):1957:1957 -> infoIgnoringOptions
    1:2:boolean isInteger(java.lang.String):1455:1456 -> isInteger
    1:1:boolean isOptionalArgumentGiven():1486:1486 -> isOptionalArgumentGiven
    1:4:void parse():216:219 -> parse
    1:13:com.android.tools.r8.shaking.ProguardTypeMatcher parseAnnotation():886:898 -> parseAnnotation
    14:14:com.android.tools.r8.shaking.ProguardTypeMatcher parseAnnotation():897:897 -> parseAnnotation
    1:12:java.util.List parseArgumentList():1258:1269 -> parseArgumentList
    13:22:java.util.List parseArgumentList():1266:1275 -> parseArgumentList
    23:25:java.util.List parseArgumentList():1274:1276 -> parseArgumentList
    26:33:java.util.List parseArgumentList():1273:1280 -> parseArgumentList
    1:6:com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule parseAssumeMayHaveSideEffectsRule(com.android.tools.r8.position.Position):1411:1416 -> parseAssumeMayHaveSideEffectsRule
    1:8:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule parseAssumeNoSideEffectsRule(com.android.tools.r8.position.Position):1398:1405 -> parseAssumeNoSideEffectsRule
    1:8:com.android.tools.r8.shaking.ProguardAssumeValuesRule parseAssumeValuesRule(com.android.tools.r8.position.Position):1421:1428 -> parseAssumeValuesRule
    1:8:com.android.tools.r8.shaking.ProguardCheckDiscardRule parseCheckDiscardRule(com.android.tools.r8.position.Position):663:670 -> parseCheckDiscardRule
    1:6:void parseClassFilter(java.util.function.Consumer):1825:1830 -> parseClassFilter
    7:7:void parseClassFilter(java.util.function.Consumer):1829:1829 -> parseClassFilter
    1:23:void parseClassFlagsAndAnnotations(com.android.tools.r8.shaking.ProguardClassSpecification$Builder):911:933 -> parseClassFlagsAndAnnotations
    1:6:com.android.tools.r8.shaking.ClassInlineRule parseClassInlineRule(com.android.tools.r8.shaking.ClassInlineRule$Type,com.android.tools.r8.position.Position):676:681 -> parseClassInlineRule
    1:6:com.android.tools.r8.shaking.ClassMergingRule parseClassMergingRule(com.android.tools.r8.shaking.ClassMergingRule$Type,com.android.tools.r8.position.Position):687:692 -> parseClassMergingRule
    1:3:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards parseClassName():1857:1859 -> parseClassName
    4:7:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation parseClassName(boolean):1864:1867 -> parseClassName
    1:4:void parseClassNameAddToBuilder(com.android.tools.r8.shaking.ProguardClassNameList$Builder):1836:1839 -> parseClassNameAddToBuilder
    5:8:void parseClassNameAddToBuilder(com.android.tools.r8.shaking.ProguardClassNameList$Builder):1837:1840 -> parseClassNameAddToBuilder
    1:5:com.android.tools.r8.shaking.ProguardClassNameList parseClassNames():1844:1848 -> parseClassNames
    1:10:java.util.List parseClassPath():1350:1359 -> parseClassPath
    1:14:com.android.tools.r8.com.google.common.collect.ImmutableList parseClassPathFilters():1365:1378 -> parseClassPathFilters
    15:20:com.android.tools.r8.com.google.common.collect.ImmutableList parseClassPathFilters():1375:1380 -> parseClassPathFilters
    1:5:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):819:823 -> parseClassSpec
    1:20:void parseClassType(com.android.tools.r8.shaking.ProguardClassSpecification$Builder):946:965 -> parseClassType
    1:2:com.android.tools.r8.utils.StringDiagnostic parseClassTypeUnexpected(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.TextPosition):941:942 -> parseClassTypeUnexpected
    1:6:com.android.tools.r8.shaking.ConstantArgumentRule parseConstantArgumentRule(com.android.tools.r8.position.Position):760:765 -> parseConstantArgumentRule
    1:1:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String):1937:1937 -> parseError
    2:2:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String,java.lang.Throwable):1941:1941 -> parseError
    3:4:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String,com.android.tools.r8.position.TextPosition,java.lang.Throwable):1947:1948 -> parseError
    5:6:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String,com.android.tools.r8.position.TextPosition):1952:1953 -> parseError
    1:7:java.lang.String parseFileFilter():1385:1391 -> parseFileFilter
    1:22:java.nio.file.Path parseFileName(boolean):1320:1341 -> parseFileName
    23:30:java.nio.file.Path parseFileName(boolean):1339:1346 -> parseFileName
    31:31:java.nio.file.Path parseFileName(boolean):1335:1335 -> parseFileName
    32:32:java.nio.file.Path parseFileName(boolean):1324:1324 -> parseFileName
    1:8:com.android.tools.r8.shaking.ProguardIdentifierNameStringRule parseIdentifierNameStringRule(com.android.tools.r8.position.Position):723:730 -> parseIdentifierNameStringRule
    1:20:com.android.tools.r8.shaking.ProguardIfRule parseIfRule(com.android.tools.r8.position.TextPosition):735:754 -> parseIfRule
    21:23:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> parseIfRule
    21:23:com.android.tools.r8.shaking.ProguardIfRule parseIfRule(com.android.tools.r8.position.TextPosition):753 -> parseIfRule
    1:3:boolean parseIgnoredOption(com.android.tools.r8.position.TextPosition):505:507 -> parseIgnoredOption
    4:8:boolean parseIgnoredOption(com.android.tools.r8.position.TextPosition):506:510 -> parseIgnoredOption
    1:8:boolean parseIgnoredOptionAndWarn(com.android.tools.r8.position.TextPosition):486:493 -> parseIgnoredOptionAndWarn
    9:17:boolean parseIgnoredOptionAndWarn(com.android.tools.r8.position.TextPosition):492:500 -> parseIgnoredOptionAndWarn
    1:10:void parseInclude():514:523 -> parseInclude
    11:11:void parseInclude():520:520 -> parseInclude
    1:11:void parseInheritance(com.android.tools.r8.shaking.ProguardClassSpecification$Builder):971:981 -> parseInheritance
    12:12:void parseInheritance(com.android.tools.r8.shaking.ProguardClassSpecification$Builder):980:980 -> parseInheritance
    1:9:com.android.tools.r8.shaking.InlineRule parseInlineRule(com.android.tools.r8.shaking.InlineRule$Type,com.android.tools.r8.position.Position):709:717 -> parseInlineRule
    1:5:void parseKeepAttributes():540:544 -> parseKeepAttributes
    6:6:void parseKeepAttributes():542:542 -> parseKeepAttributes
    1:11:com.android.tools.r8.shaking.ProguardKeepRule parseKeepRule(com.android.tools.r8.position.Position):628:638 -> parseKeepRule
    12:21:com.android.tools.r8.shaking.ProguardKeepRule parseKeepRule(com.android.tools.r8.position.Position):637:646 -> parseKeepRule
    1:50:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1013:1062 -> parseMemberAccessFlags
    51:68:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1050:1067 -> parseMemberAccessFlags
    69:74:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1041:1046 -> parseMemberAccessFlags
    75:76:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1036:1037 -> parseMemberAccessFlags
    77:78:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1031:1032 -> parseMemberAccessFlags
    79:80:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1026:1027 -> parseMemberAccessFlags
    81:137:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1021:1077 -> parseMemberAccessFlags
    1:46:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1085:1130 -> parseMemberPattern
    47:63:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1125:1141 -> parseMemberPattern
    64:86:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1136:1158 -> parseMemberPattern
    87:101:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1157:1171 -> parseMemberPattern
    102:134:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1170:1202 -> parseMemberPattern
    135:135:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1201:1201 -> parseMemberPattern
    136:148:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1199:1211 -> parseMemberPattern
    149:149:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1210:1210 -> parseMemberPattern
    150:155:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1209:1214 -> parseMemberPattern
    156:179:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1213:1236 -> parseMemberPattern
    1:6:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):1003:1008 -> parseMemberRule
    1:8:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):990:997 -> parseMemberRules
    1:6:com.android.tools.r8.shaking.MemberValuePropagationRule parseMemberValuePropagationRule(com.android.tools.r8.shaking.MemberValuePropagationRule$Type,com.android.tools.r8.position.Position):699:704 -> parseMemberValuePropagationRule
    1:2:boolean parseNegation():904:905 -> parseNegation
    1:9:boolean parseOptimizationOption(com.android.tools.r8.position.TextPosition):600:608 -> parseOptimizationOption
    1:48:boolean parseOption():223:270 -> parseOption
    49:50:boolean parseOption():267:268 -> parseOption
    51:53:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> parseOption
    51:53:boolean parseOption():267 -> parseOption
    54:136:boolean parseOption():271:353 -> parseOption
    137:186:boolean parseOption():352:401 -> parseOption
    1:10:void parsePackageFilter(java.util.function.BiConsumer):1806:1815 -> parsePackageFilter
    11:14:void parsePackageFilter(java.util.function.BiConsumer):1814:1817 -> parsePackageFilter
    15:22:void parsePackageFilter(java.util.function.BiConsumer):1812:1819 -> parsePackageFilter
    1:1:java.lang.String parsePackageNameOrEmptyString():1852:1852 -> parsePackageNameOrEmptyString
    1:5:void parsePathFilter(java.util.function.Consumer):1878:1882 -> parsePathFilter
    6:25:com.android.tools.r8.shaking.ProguardPathList parsePathFilter():1887:1906 -> parsePathFilter
    26:31:com.android.tools.r8.shaking.ProguardPathList parsePathFilter():1903:1908 -> parsePathFilter
    32:32:com.android.tools.r8.shaking.ProguardPathList parsePathFilter():1893:1893 -> parsePathFilter
    1:18:void parseRuleModifiers(com.android.tools.r8.shaking.ProguardKeepRule$Builder):864:881 -> parseRuleModifiers
    1:34:void parseRuleTypeAndModifiers(com.android.tools.r8.shaking.ProguardKeepRule$Builder):827:860 -> parseRuleTypeAndModifiers
    1:49:boolean parseTestingOption(com.android.tools.r8.position.TextPosition):408:456 -> parseTestingOption
    1:4:boolean parseUnsupportedOptionAndErr(com.android.tools.r8.position.TextPosition):475:478 -> parseUnsupportedOptionAndErr
    5:5:boolean parseUnsupportedOptionAndErr(com.android.tools.r8.position.TextPosition):477:477 -> parseUnsupportedOptionAndErr
    1:6:com.android.tools.r8.shaking.UnusedArgumentRule parseUnusedArgumentRule(com.android.tools.r8.position.Position):771:776 -> parseUnusedArgumentRule
    1:8:com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule parseWhyAreYouKeepingRule(com.android.tools.r8.position.Position):651:658 -> parseWhyAreYouKeepingRule
    1:6:com.android.tools.r8.shaking.WhyAreYouNotInliningRule parseWhyAreYouNotInliningRule(com.android.tools.r8.position.Position):782:787 -> parseWhyAreYouNotInliningRule
    1:1:boolean pathFilterMatcher(java.lang.Integer):1873:1873 -> pathFilterMatcher
    1:1:char peekChar():1515:1515 -> peekChar
    1:2:char peekCharAt(int):1519:1520 -> peekCharAt
    1:1:char readChar():1524:1524 -> readChar
    1:1:int remainingChars():1528:1528 -> remainingChars
    1:21:java.lang.String replaceSystemPropertyReferences(java.lang.String):1286:1306 -> replaceSystemPropertyReferences
    22:34:java.lang.String replaceSystemPropertyReferences(java.lang.String):1304:1316 -> replaceSystemPropertyReferences
    1:8:void skipComment():1443:1450 -> skipComment
    1:3:boolean skipFlag(java.lang.String):548:550 -> skipFlag
    1:4:void skipOptimizationName():613:616 -> skipOptimizationName
    1:10:boolean skipOptionWithClassSpec(java.lang.String):583:592 -> skipOptionWithClassSpec
    1:7:boolean skipOptionWithOptionalSingleArg(java.lang.String):569:575 -> skipOptionWithOptionalSingleArg
    1:5:boolean skipOptionWithSingleArg(java.lang.String):558:562 -> skipOptionWithSingleArg
    1:3:void skipSingleArgument():620:622 -> skipSingleArgument
    1:8:void skipWhitespace():1432:1439 -> skipWhitespace
    1:10:java.lang.String snippetForPosition():1913:1922 -> snippetForPosition
    11:17:java.lang.String snippetForPosition():1918:1924 -> snippetForPosition
    18:21:java.lang.String snippetForPosition(com.android.tools.r8.position.TextPosition):1929:1932 -> snippetForPosition
    1:4:void unacceptString(java.lang.String):1797:1800 -> unacceptString
    1:1:java.lang.RuntimeException unknownOption(java.lang.String,com.android.tools.r8.position.TextPosition):464:464 -> unknownOption
    2:4:java.lang.RuntimeException unknownOption(java.lang.String,com.android.tools.r8.position.TextPosition,java.lang.String):469:471 -> unknownOption
    5:7:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> unknownOption
    5:7:java.lang.RuntimeException unknownOption(java.lang.String,com.android.tools.r8.position.TextPosition,java.lang.String):469 -> unknownOption
    1:13:void verifyAndLinkBackReferences(java.lang.Iterable):791:803 -> verifyAndLinkBackReferences
    14:17:void verifyAndLinkBackReferences(java.lang.Iterable):798:801 -> verifyAndLinkBackReferences
    18:20:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> verifyAndLinkBackReferences
    18:20:void verifyAndLinkBackReferences(java.lang.Iterable):798 -> verifyAndLinkBackReferences
    21:23:void verifyAndLinkBackReferences(java.lang.Iterable):805:807 -> verifyAndLinkBackReferences
    1:2:void warnIgnoringOptions(java.lang.String,com.android.tools.r8.position.TextPosition):1962:1963 -> warnIgnoringOptions
    3:3:void warnIgnoringOptions(java.lang.String,com.android.tools.r8.position.TextPosition):1962:1962 -> warnIgnoringOptions
    1:2:void warnOverridingOptions(java.lang.String,java.lang.String,com.android.tools.r8.position.TextPosition):1967:1968 -> warnOverridingOptions
    3:3:void warnOverridingOptions(java.lang.String,java.lang.String,com.android.tools.r8.position.TextPosition):1967:1967 -> warnOverridingOptions
    1:6:void warnUnusualCharacters(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.position.TextPosition):1973:1978 -> warnUnusualCharacters
    7:7:void warnUnusualCharacters(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.position.TextPosition):1973:1973 -> 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:1:java.util.stream.Stream lambda$getWildcards$0(java.lang.Iterable):91:91 -> a
    1:5:java.lang.StringBuilder append(java.lang.StringBuilder,boolean):126:130 -> append
    1:14:boolean equals(java.lang.Object):99:112 -> equals
    1:12:java.lang.Iterable getWildcards():82:93 -> 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():83 -> getWildcards
    1:5:int hashCode():117:121 -> hashCode
    1:1:boolean isUsed():45:45 -> isUsed
    1:1:void markAsUsed():49:49 -> markAsUsed
    1:5:java.lang.Iterable relevantCandidatesForRule(com.android.tools.r8.graph.AppView,java.lang.Iterable):54:58 -> relevantCandidatesForRule
    6:6:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> relevantCandidatesForRule
    6:6:java.lang.Iterable relevantCandidatesForRule(com.android.tools.r8.graph.AppView,java.lang.Iterable):59 -> relevantCandidatesForRule
    7:10:java.lang.Iterable relevantCandidatesForRule(com.android.tools.r8.graph.AppView,java.lang.Iterable):60:63 -> 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):61 -> relevantCandidatesForRule
    12:12:java.lang.Iterable relevantCandidatesForRule(com.android.tools.r8.graph.AppView,java.lang.Iterable):65:65 -> 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: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.ProguardKeepRule,java.util.Set):88:91 -> <init>
    6: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):88:93 -> <init>
    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 -> a
    2:2:boolean lambda$neverInlineRuleForCondition$1(com.android.tools.r8.shaking.ProguardMemberRule):199:199 -> a
    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 -> b
    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: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:1:com.android.tools.r8.shaking.ProguardMemberRule lambda$materialize$0(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.ProguardMemberRule):83:83 -> a
    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: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):114:122 -> <init>
    1:1:java.util.stream.Stream lambda$getWildcards$0(java.lang.Iterable):297:297 -> a
    2:2:com.android.tools.r8.shaking.ProguardTypeMatcher lambda$materialize$1(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.ProguardTypeMatcher):314:314 -> a
    1:1:com.android.tools.r8.shaking.ProguardMemberRule$Builder builder():129:129 -> builder
    1:3:com.android.tools.r8.shaking.ProguardMemberRule defaultKeepAllRule():407:409 -> defaultKeepAllRule
    1:25:boolean equals(java.lang.Object):321:345 -> equals
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getAccessFlags():137:137 -> getAccessFlags
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getAnnotation():133:133 -> getAnnotation
    1:1:java.util.List getArguments():157:157 -> getArguments
    1:1:com.android.tools.r8.shaking.ProguardNameMatcher getName():153:153 -> getName
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getNegatedAccessFlags():141:141 -> getNegatedAccessFlags
    1:1:com.android.tools.r8.shaking.ProguardMemberRuleReturnValue getReturnValue():165:165 -> getReturnValue
    1:1:com.android.tools.r8.shaking.ProguardMemberType getRuleType():145:145 -> getRuleType
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getType():149:149 -> getType
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getTypeMatcher():169:169 -> getTypeMatcher
    1:10:java.lang.Iterable getWildcards():290:299 -> 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():290 -> getWildcards
    1:1:boolean hasReturnValue():161:161 -> hasReturnValue
    1:7:int hashCode():350:356 -> hashCode
    1:9:boolean isSpecific():277:285 -> isSpecific
    1:28:boolean matches(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.DexStringCache):173:200 -> matches
    29:77:boolean matches(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.DexStringCache):215:263 -> matches
    78:89:boolean matches(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.DexStringCache):218:229 -> matches
    1:13:com.android.tools.r8.shaking.ProguardMemberRule materialize(com.android.tools.r8.graph.DexItemFactory):304:316 -> materialize
    1:37:java.lang.String toString():362:398 -> toString
    38:47:java.lang.String toString():375:384 -> toString
    48:66:java.lang.String toString():372:390 -> toString
    67:101:java.lang.String toString():369:403 -> toString
com.android.tools.r8.shaking.ProguardMemberRule$1 -> com.android.tools.r8.shaking.ProguardMemberRule$1:
    1:1:void <clinit>():174:174 -> <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():91:92 -> 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():87:87 -> 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:void 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):82:82 -> 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.RootSetBuilder -> com.android.tools.r8.shaking.RootSetBuilder:
    1:1:void <clinit>():62:62 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,java.lang.Iterable):97:97 -> <init>
    2:36:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,java.lang.Iterable):67:101 -> <init>
    37:37:void <init>(com.android.tools.r8.graph.AppView,java.util.Collection):106:106 -> <init>
    boolean lambda$process$0(com.android.tools.r8.graph.DexDefinition) -> a
    1:6:void lambda$runPerRule$4(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):248:253 -> a
    7:8: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):417:418 -> a
    9:10: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):476:477 -> a
    11:12: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):509:510 -> a
    13:13:boolean lambda$anySourceMatchesInheritanceRuleDirectly$11(boolean,com.android.tools.r8.graph.DexType):667:667 -> a
    14:14:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    14:14:boolean lambda$anySourceMatchesInheritanceRuleDirectly$11(boolean,com.android.tools.r8.graph.DexType):667 -> a
    15:15:boolean lambda$anySourceMatchesInheritanceRuleDirectly$11(boolean,com.android.tools.r8.graph.DexType):667:667 -> a
    16:16:java.util.Set lambda$addItemToSets$14(com.android.tools.r8.graph.DexType):897:897 -> a
    17:17:java.util.Map lambda$addItemToSets$15(com.android.tools.r8.graph.DexReference):905:905 -> a
    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):844:864 -> addItemToSets
    22:22:boolean com.android.tools.r8.graph.DexMethod.isLambdaDeserializeMethod(com.android.tools.r8.graph.DexItemFactory):194:194 -> 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):864 -> 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):870:873 -> addItemToSets
    27:27:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> 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):873 -> 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):874:879 -> 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):876:897 -> addItemToSets
    56:56:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():671:671 -> 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):897 -> 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):897:953 -> 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):947:947 -> 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):944:962 -> addItemToSets
    134:148: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):959:973 -> addItemToSets
    149:162: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):971:984 -> addItemToSets
    163:207: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):982:1026 -> addItemToSets
    1:2:boolean allRulesSatisfied(java.util.Collection,com.android.tools.r8.graph.DexClass):673:674 -> allRulesSatisfied
    1:26:boolean anyImplementedInterfaceMatchesImplementsRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):631:656 -> anyImplementedInterfaceMatchesImplementsRule
    1:6:boolean anySourceMatchesInheritanceRuleDirectly(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,boolean):663:668 -> anySourceMatchesInheritanceRuleDirectly
    1:13:boolean anySuperTypeMatchesExtendsRule(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardConfigurationRule):599:611 -> anySuperTypeMatchesExtendsRule
    1:1:boolean lambda$process$1(com.android.tools.r8.graph.DexDefinition):160:160 -> b
    2:3: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):425:426 -> b
    4:5: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):461:462 -> b
    6:7: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):494:495 -> b
    8:8:java.util.Set lambda$addItemToSets$16(com.android.tools.r8.graph.DexReference):906:906 -> b
    1:1:com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet buildConsequentRootSet():367:367 -> buildConsequentRootSet
    boolean lambda$process$2(com.android.tools.r8.graph.DexDefinition) -> c
    1:1:java.util.Set lambda$addItemToSets$17(com.android.tools.r8.graph.DexReference):909:909 -> c
    1:1:boolean containsAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.graph.DexClass):715:715 -> containsAnnotation
    2:6:boolean containsAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.graph.DexEncodedMethod):719:723 -> containsAnnotation
    7:7:boolean containsAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.graph.DexEncodedField):731:731 -> containsAnnotation
    8:12:boolean containsAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.graph.DexAnnotationSet):739:743 -> containsAnnotation
    com.android.tools.r8.graph.DexReference lambda$addItemToSets$18(com.android.tools.r8.graph.DexReference) -> d
    boolean lambda$process$3(com.android.tools.r8.graph.DexDefinition) -> d
    com.android.tools.r8.graph.DexReference lambda$addItemToSets$19(com.android.tools.r8.graph.DexReference) -> e
    1:1:java.util.Map lambda$includeDescriptor$12(com.android.tools.r8.graph.DexReference):816:816 -> f
    1:1:java.util.Set lambda$includeDescriptor$13(com.android.tools.r8.graph.DexReference):817:817 -> g
    1:10:void includeDescriptor(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardKeepRuleBase):801:810 -> includeDescriptor
    11:11:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> includeDescriptor
    11:11:void includeDescriptor(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardKeepRuleBase):810 -> includeDescriptor
    12:21:void includeDescriptor(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardKeepRuleBase):811:820 -> includeDescriptor
    1:11:void includeDescriptorClasses(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardKeepRuleBase):824:834 -> includeDescriptorClasses
    1:2:void markClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):794:795 -> 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):795 -> markClass
    4:4:void markClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):797:797 -> 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):782:785 -> 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):785 -> 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):788:788 -> 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):507:507 -> 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):474:474 -> 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):440:450 -> markMatchingOverriddenMethods
    12:12:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> 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):450 -> 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):454:464 -> 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):489:497 -> markMatchingVisibleFields
    1:24: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):405:428 -> markMatchingVisibleMethods
    1:7: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):758:764 -> markMethod
    8:8:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markMethod
    8: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):765 -> markMethod
    9:11: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):769:771 -> markMethod
    1:59:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):114:172 -> process
    60:79:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):149:168 -> process
    80:158:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):142:220 -> process
    159:159:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):209:209 -> process
    160:162:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):197:199 -> process
    163:165:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):198:200 -> process
    166:166:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):179:179 -> process
    1:12:void propagateAssumeRules(com.android.tools.r8.graph.DexClass):310:321 -> propagateAssumeRules
    13:44:void propagateAssumeRules(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,java.util.Set,java.util.Map):331:362 -> propagateAssumeRules
    1:4:boolean ruleSatisfied(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexClass):686:689 -> ruleSatisfied
    1:3:boolean ruleSatisfiedByFields(com.android.tools.r8.shaking.ProguardMemberRule,java.lang.Iterable):704:706 -> ruleSatisfiedByFields
    1:3:boolean ruleSatisfiedByMethods(com.android.tools.r8.shaking.ProguardMemberRule,java.lang.Iterable):693:695 -> ruleSatisfiedByMethods
    1:24:com.android.tools.r8.shaking.RootSetBuilder$RootSet run(java.util.concurrent.ExecutorService):260:283 -> run
    25:33:com.android.tools.r8.shaking.RootSetBuilder$RootSet run(java.util.concurrent.ExecutorService):282:290 -> run
    34:34:com.android.tools.r8.shaking.RootSetBuilder$RootSet run(java.util.concurrent.ExecutorService):276:276 -> run
    1:16:void runPerRule(java.util.concurrent.ExecutorService,java.util.List,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):230:245 -> runPerRule
    17:17:void runPerRule(java.util.concurrent.ExecutorService,java.util.List,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):244:244 -> runPerRule
    1:2:boolean satisfyAccessFlag(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexClass):572:573 -> satisfyAccessFlag
    1:1:boolean satisfyAnnotation(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexClass):577:577 -> satisfyAnnotation
    1:1:boolean satisfyClassType(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexClass):568:568 -> satisfyClassType
    1:6:boolean satisfyExtendsRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):589:594 -> satisfyExtendsRule
    1:6:boolean satisfyImplementsRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):617:622 -> satisfyImplementsRule
    1:5:boolean satisfyInheritanceRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):581:585 -> satisfyInheritanceRule
    1:10:com.android.tools.r8.graph.DexDefinition testAndGetPrecondition(com.android.tools.r8.graph.DexDefinition,java.util.Map):384:393 -> testAndGetPrecondition
    1:14:void writeSeeds(com.android.tools.r8.shaking.AppInfoWithLiveness,java.io.PrintStream,java.util.function.Predicate):517:530 -> writeSeeds
    15:40:void writeSeeds(com.android.tools.r8.shaking.AppInfoWithLiveness,java.io.PrintStream,java.util.function.Predicate):525:550 -> writeSeeds
    41:56:void writeSeeds(com.android.tools.r8.shaking.AppInfoWithLiveness,java.io.PrintStream,java.util.function.Predicate):549:564 -> writeSeeds
com.android.tools.r8.shaking.RootSetBuilder$1 -> com.android.tools.r8.shaking.RootSetBuilder$1:
    1:1:void <clinit>():986:986 -> <clinit>
    2:2:void <clinit>():975:975 -> <clinit>
    3:3:void <clinit>():964:964 -> <clinit>
    4:4:void <clinit>():942:942 -> <clinit>
    5:5:void <clinit>():139:139 -> <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,com.android.tools.r8.shaking.RootSetBuilder$1):1410:1410 -> <init>
    2:9:void <init>(java.util.Set,java.util.Set,java.util.Map,java.util.Set,java.util.Set,java.util.Map,java.util.Map):1426:1433 -> <init>
com.android.tools.r8.shaking.RootSetBuilder$RootSet -> com.android.tools.r8.shaking.RootSetBuilder$RootSet:
    1:1:void <clinit>():1030:1030 -> <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,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Set,com.android.tools.r8.shaking.RootSetBuilder$1):1030:1030 -> <init>
    2:23: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,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Set):1076:1097 -> <init>
    1:1:com.android.tools.r8.graph.DexDefinition com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexReference):153:153 -> a
    1:1:void lambda$forEachDependentNonStaticMember$5(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):1180 -> a
    2:4:void lambda$forEachDependentNonStaticMember$5(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):1182:1184 -> a
    5:6:void lambda$addConsequentRootSet$1(com.android.tools.r8.graph.DexType,java.util.Set):1136:1137 -> a
    7:7:java.util.Set lambda$addConsequentRootSet$0(com.android.tools.r8.graph.DexType):1137:1137 -> a
    8:8:java.util.Map lambda$addDependentItems$2(com.android.tools.r8.graph.DexReference):1146:1146 -> a
    9:10:void lambda$addDependentItems$3(com.android.tools.r8.graph.DexReference,java.util.Map):1146:1147 -> a
    11:11:void lambda$toString$7(java.lang.StringBuilder,com.android.tools.r8.graph.DexReference):1403:1403 -> a
    1:6:void addConsequentRootSet(com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet):1129:1134 -> addConsequentRootSet
    1:1:void addDependentItems(java.util.Map):1143:1143 -> addDependentItems
    1:1:com.android.tools.r8.graph.DexDefinition com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexReference):153:153 -> b
    1:1:void lambda$forEachDependentStaticMember$4(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):1166 -> b
    2:3:void lambda$forEachDependentStaticMember$4(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):1167:1168 -> b
    4:4:java.util.Set lambda$verifyKeptItemsAreKept$6(com.android.tools.r8.graph.DexType):1323:1323 -> b
    1:12:void checkAllRulesAreUsed(com.android.tools.r8.utils.InternalOptions):1101:1112 -> checkAllRulesAreUsed
    13:13:void checkAllRulesAreUsed(com.android.tools.r8.utils.InternalOptions):1109:1109 -> checkAllRulesAreUsed
    14:16:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> checkAllRulesAreUsed
    14:16:void checkAllRulesAreUsed(com.android.tools.r8.utils.InternalOptions):1109 -> checkAllRulesAreUsed
    1:14:void copy(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexReference):1190:1203 -> copy
    1:2:void forEachDependentNonStaticMember(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Consumer3):1177:1178 -> forEachDependentNonStaticMember
    1:2:void forEachDependentStaticMember(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Consumer3):1163:1164 -> forEachDependentStaticMember
    1:2:java.util.Map getDependentItems(com.android.tools.r8.graph.DexDefinition):1155:1156 -> getDependentItems
    3:3:java.util.Map getDependentItems(com.android.tools.r8.graph.DexDefinition):1155:1155 -> getDependentItems
    1:1:java.util.Set getDependentKeepClassCompatRule(com.android.tools.r8.graph.DexType):1151:1151 -> getDependentKeepClassCompatRule
    1:9:boolean isKeptDirectlyOrIndirectly(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.AppInfoWithLiveness):1290:1298 -> isKeptDirectlyOrIndirectly
    1:1:boolean mayBeMinified(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.AppView):1225:1225 -> mayBeMinified
    1:3:boolean mayNotBeMinified(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.AppView):1229:1231 -> mayNotBeMinified
    4:8:boolean mayNotBeMinified(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.AppView):1230:1234 -> mayNotBeMinified
    9:14:boolean mayNotBeMinified(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.AppView):1233:1238 -> mayNotBeMinified
    15:15:boolean mayNotBeMinified(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.AppView):1237:1237 -> mayNotBeMinified
    1:2:void move(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexReference):1216:1217 -> move
    1:5:void prune(com.android.tools.r8.graph.DexReference):1208:1212 -> prune
    1:3:java.util.Map rewriteDependentReferenceKeys(java.util.Map,java.util.function.Function):1121:1123 -> rewriteDependentReferenceKeys
    1:1:void shouldNotBeMinified(com.android.tools.r8.graph.DexReference):1221:1221 -> shouldNotBeMinified
    1:21:java.lang.String toString():1385:1405 -> toString
    1:4:boolean verifyKeptFieldsAreAccessedAndLive(com.android.tools.r8.shaking.AppInfoWithLiveness):1243:1246 -> verifyKeptFieldsAreAccessedAndLive
    5:5:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():114:114 -> verifyKeptFieldsAreAccessedAndLive
    5:5:boolean verifyKeptFieldsAreAccessedAndLive(com.android.tools.r8.shaking.AppInfoWithLiveness):1248 -> verifyKeptFieldsAreAccessedAndLive
    6:10:boolean verifyKeptFieldsAreAccessedAndLive(com.android.tools.r8.shaking.AppInfoWithLiveness):1248:1252 -> verifyKeptFieldsAreAccessedAndLive
    1:73:boolean verifyKeptItemsAreKept(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppInfo):1305:1377 -> verifyKeptItemsAreKept
    1:11:boolean verifyKeptMethodsAreTargetedAndLive(com.android.tools.r8.shaking.AppInfoWithLiveness):1260:1270 -> verifyKeptMethodsAreTargetedAndLive
    1:5:boolean verifyKeptTypesAreLive(com.android.tools.r8.shaking.AppInfoWithLiveness):1279:1283 -> verifyKeptTypesAreLive
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>():59:59 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.shaking.MainDexClasses):216:216 -> <init>
    2:21:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.shaking.MainDexClasses):206:225 -> <init>
    1:1:boolean lambda$mayMergeAcrossPackageBoundaries$2(com.android.tools.r8.graph.DexEncodedMethod):431:431 -> a
    2:2:boolean lambda$mayMergeAcrossPackageBoundaries$3(com.android.tools.r8.graph.DexEncodedField):435:435 -> a
    3:3: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):496:496 -> a
    4:4:boolean lambda$mergeMethods$6(java.util.Set,com.android.tools.r8.utils.MethodSignatureEquivalence,com.android.tools.r8.graph.DexMethod):500:500 -> a
    5:5: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):533:533 -> a
    6:6:boolean lambda$mergeFields$8(java.util.Set,com.android.tools.r8.utils.FieldSignatureEquivalence,com.android.tools.r8.graph.DexField):537:537 -> a
    1:1:com.android.tools.r8.com.google.common.base.Equivalence access$000(com.android.tools.r8.shaking.StaticClassMerger):59:59 -> access$000
    1:1:com.android.tools.r8.com.google.common.base.Equivalence access$100(com.android.tools.r8.shaking.StaticClassMerger):59:59 -> access$100
    1:1:boolean lambda$satisfiesMergeCriteria$0(com.android.tools.r8.graph.DexEncodedField):278:278 -> b
    2:2:boolean lambda$mayMergeAcrossPackageBoundaries$4(com.android.tools.r8.graph.DexEncodedMethod):443:443 -> b
    1:13:com.android.tools.r8.graph.GraphLense buildGraphLense():246:258 -> buildGraphLense
    14:23:com.android.tools.r8.graph.GraphLense buildGraphLense():247:256 -> buildGraphLense
    1:6:boolean lambda$satisfiesMergeCriteria$1(com.android.tools.r8.graph.DexEncodedMethod):294:299 -> c
    1:6:void clearRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key):412:417 -> clearRepresentative
    7:11:void clearRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key):416:420 -> 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):379:387 -> getOrCreateRepresentative
    1:1:boolean isValidRepresentative(com.android.tools.r8.graph.DexProgramClass):324:324 -> isValidRepresentative
    1:25:boolean mayMergeAcrossPackageBoundaries(com.android.tools.r8.graph.DexProgramClass):426:450 -> mayMergeAcrossPackageBoundaries
    1:8:boolean merge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.StaticClassMerger$MergeGroup):328:335 -> merge
    9:9:boolean merge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.StaticClassMerger$MergeGroup):331:331 -> merge
    10:44:boolean merge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key):339:373 -> merge
    1:31:com.android.tools.r8.graph.DexEncodedField[] mergeFields(java.util.List,java.util.List,com.android.tools.r8.graph.DexProgramClass):521:551 -> mergeFields
    1:20:java.util.List mergeMethods(java.util.List,java.util.List,com.android.tools.r8.graph.DexProgramClass):493:512 -> mergeMethods
    1:6:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):459:464 -> moveMembersFromSourceToTarget
    7:23:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):460:476 -> moveMembersFromSourceToTarget
    24:27:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):475:478 -> moveMembersFromSourceToTarget
    28:31:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):477:480 -> moveMembersFromSourceToTarget
    32:38:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):479:485 -> 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):579:591 -> 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):559:572 -> renameMethodIfNeeded
    1:12:com.android.tools.r8.graph.GraphLense run():229:240 -> run
    13:19:com.android.tools.r8.graph.GraphLense run():236:242 -> run
    1:41:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup satisfiesMergeCriteria(com.android.tools.r8.graph.DexProgramClass):262:302 -> satisfiesMergeCriteria
    42:42:boolean com.android.tools.r8.graph.DexClass.classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView):737:737 -> satisfiesMergeCriteria
    42:42:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup satisfiesMergeCriteria(com.android.tools.r8.graph.DexProgramClass):302 -> satisfiesMergeCriteria
    43:53:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup satisfiesMergeCriteria(com.android.tools.r8.graph.DexProgramClass):309:319 -> satisfiesMergeCriteria
    1:8:void setRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key,com.android.tools.r8.shaking.StaticClassMerger$Representative):391:398 -> setRepresentative
    9:20:void setRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key,com.android.tools.r8.shaking.StaticClassMerger$Representative):394:405 -> setRepresentative
    21:29:void setRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key,com.android.tools.r8.shaking.StaticClassMerger$Representative):400:408 -> setRepresentative
com.android.tools.r8.shaking.StaticClassMerger$1 -> com.android.tools.r8.shaking.StaticClassMerger$1:
    1:1:void <clinit>():113:113 -> <clinit>
com.android.tools.r8.shaking.StaticClassMerger$MergeGroup -> com.android.tools.r8.shaking.StaticClassMerger$MergeGroup:
    1:5:void <clinit>():61:65 -> <clinit>
    6:16:void <clinit>():61:71 -> <clinit>
    1:1:void <init>(java.lang.String,int):61:61 -> <init>
    1:9:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key globalKey():113:121 -> globalKey
    10:10:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key globalKey():119:119 -> globalKey
    11:11:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key globalKey():117:117 -> globalKey
    1:2:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key key(java.lang.String):126:127 -> key
    1:9:java.lang.String toString():132:140 -> toString
    1:1:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup valueOf(java.lang.String):61:61 -> valueOf
    1:1:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup[] values():61:61 -> 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):77:79 -> <init>
    1:1:java.lang.String access$400(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key):73:73 -> access$400
    1:5:boolean equals(java.lang.Object):104:108 -> equals
    1:1:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup getMergeGroup():83:83 -> getMergeGroup
    1:1:java.lang.String getPackageOrGlobal():87:87 -> getPackageOrGlobal
    1:1:int hashCode():96:96 -> hashCode
    1:1:boolean isGlobal():91:91 -> isGlobal
com.android.tools.r8.shaking.StaticClassMerger$Representative -> com.android.tools.r8.shaking.StaticClassMerger$Representative:
    1:1:void <clinit>():151:151 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.StaticClassMerger,com.android.tools.r8.graph.DexProgramClass):162:162 -> <init>
    2:9:void <init>(com.android.tools.r8.shaking.StaticClassMerger,com.android.tools.r8.graph.DexProgramClass):157:164 -> <init>
    1:1:boolean access$200(com.android.tools.r8.shaking.StaticClassMerger$Representative):151:151 -> access$200
    1:1:com.android.tools.r8.graph.DexProgramClass access$300(com.android.tools.r8.shaking.StaticClassMerger$Representative):151:151 -> access$300
    1:12:void include(com.android.tools.r8.graph.DexProgramClass):169:180 -> include
    1:5:boolean isFull():189:193 -> isFull
com.android.tools.r8.shaking.TreePruner -> com.android.tools.r8.shaking.TreePruner:
    1:1:void <clinit>():33:33 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView):41:41 -> <init>
    2:15:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView):38:51 -> <init>
    1:1:void lambda$new$0(com.android.tools.r8.utils.InternalOptions,java.lang.String):49:49 -> a
    2:2:boolean lambda$clearDeadNestMembers$1(com.android.tools.r8.graph.NestMemberClassAttribute):198:198 -> a
    3:3:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> a
    3:3:boolean lambda$clearDeadNestMembers$1(com.android.tools.r8.graph.NestMemberClassAttribute):198 -> a
    4:4:boolean lambda$clearDeadNestMembers$1(com.android.tools.r8.graph.NestMemberClassAttribute):199:199 -> a
    5:5:boolean lambda$reachableMethods$2(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DexEncodedMethod):254:254 -> a
    6:6:boolean lambda$reachableFields$3(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DexEncodedField):312:312 -> a
    1:1:void claimNestOwnership(com.android.tools.r8.graph.DexClass):203:203 -> claimNestOwnership
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> claimNestOwnership
    2:2:void claimNestOwnership(com.android.tools.r8.graph.DexClass):203 -> claimNestOwnership
    3:6:void claimNestOwnership(com.android.tools.r8.graph.DexClass):208:211 -> claimNestOwnership
    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> claimNestOwnership
    7:7:void claimNestOwnership(com.android.tools.r8.graph.DexClass):211 -> claimNestOwnership
    8:14:void claimNestOwnership(com.android.tools.r8.graph.DexClass):213:219 -> claimNestOwnership
    1:2:void clearDeadNestMembers(com.android.tools.r8.graph.DexClass):195:196 -> clearDeadNestMembers
    1:2:int firstUnreachableIndex(java.util.List,java.util.function.Predicate):242:243 -> firstUnreachableIndex
    1:1:java.util.Collection getMethodsToKeepForConfigurationDebugging():347:347 -> getMethodsToKeepForConfigurationDebugging
    1:35:java.util.List getNewProgramClasses(java.util.List):71:105 -> getNewProgramClasses
    1:1:java.util.Collection getRemovedClasses():343:343 -> getRemovedClasses
    1:4:boolean isAttributeReferencingPrunedItem(com.android.tools.r8.graph.EnclosingMethodAttribute):225:228 -> isAttributeReferencingPrunedItem
    1:6:boolean isAttributeReferencingPrunedType(com.android.tools.r8.graph.InnerClassAttribute):232:237 -> isAttributeReferencingPrunedType
    1:1:boolean isTypeLive(com.android.tools.r8.graph.DexType):189:189 -> isTypeLive
    1:22:void pruneMembersAndAttributes(com.android.tools.r8.graph.DexProgramClass):150:171 -> pruneMembersAndAttributes
    1:20:void pruneUnusedInterfaces(com.android.tools.r8.graph.DexProgramClass):113:132 -> pruneUnusedInterfaces
    1:30:com.android.tools.r8.graph.DexEncodedField[] reachableFields(java.util.List):310:339 -> reachableFields
    1:15:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):251:265 -> reachableMethods
    16:16:com.android.tools.r8.graph.DexMethod com.android.tools.r8.graph.DexEncodedMethod.getKey():1058:1058 -> reachableMethods
    16:16:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):265 -> reachableMethods
    17:24:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):265:272 -> reachableMethods
    25:30:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):269:274 -> reachableMethods
    31:31:com.android.tools.r8.graph.DexMethod com.android.tools.r8.graph.DexEncodedMethod.getKey():1058:1058 -> reachableMethods
    31:31:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):274 -> reachableMethods
    32:54:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):274:296 -> reachableMethods
    55:55:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> reachableMethods
    55:55:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexEncodedMethod.toEmptyThrowingMethod(com.android.tools.r8.utils.InternalOptions):666 -> reachableMethods
    55:55:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):296 -> reachableMethods
    56:57:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexEncodedMethod.toEmptyThrowingMethod(com.android.tools.r8.utils.InternalOptions):667:668 -> reachableMethods
    56:57:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):296 -> reachableMethods
    58:69:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):295:306 -> reachableMethods
    1:2:com.android.tools.r8.graph.DexApplication$Builder removeUnused(com.android.tools.r8.graph.DexApplication):66:67 -> removeUnused
    1:8:void retainReachableInterfacesFrom(com.android.tools.r8.graph.DexType,java.util.Set):137:144 -> retainReachableInterfacesFrom
    1:9:void rewriteNestAttributes(com.android.tools.r8.graph.DexProgramClass):175:183 -> rewriteNestAttributes
    1:6:com.android.tools.r8.graph.DexApplication run():55:60 -> 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>():89:89 -> <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):258:258 -> <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):231:270 -> <init>
    1:1:boolean lambda$isStillMergeCandidate$0(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType):475:475 -> a
    1:1:java.util.Set access$100(com.android.tools.r8.shaking.VerticalClassMerger):89:89 -> access$100
    1:1:com.android.tools.r8.utils.Timing access$1000(com.android.tools.r8.shaking.VerticalClassMerger):89:89 -> access$1000
    1:1:com.android.tools.r8.ir.optimize.MethodPoolCollection access$1100(com.android.tools.r8.shaking.VerticalClassMerger):89:89 -> access$1100
    1:1:void access$1200(com.android.tools.r8.graph.DexEncodedMethod):89:89 -> access$1200
    1:1:com.android.tools.r8.ir.optimize.info.OptimizationFeedback access$1300(com.android.tools.r8.shaking.VerticalClassMerger):89:89 -> access$1300
    1:1:java.util.Map access$1400(com.android.tools.r8.shaking.VerticalClassMerger):89:89 -> access$1400
    1:1:java.util.Map access$1500(com.android.tools.r8.shaking.VerticalClassMerger):89:89 -> access$1500
    1:1:com.android.tools.r8.graph.DexApplication access$1600(com.android.tools.r8.shaking.VerticalClassMerger):89:89 -> access$1600
    1:1:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder access$1700(com.android.tools.r8.shaking.VerticalClassMerger):89:89 -> access$1700
    1:1:java.util.List access$1800(com.android.tools.r8.shaking.VerticalClassMerger):89:89 -> access$1800
    1:1:java.util.Collection access$1900(com.android.tools.r8.shaking.VerticalClassMerger):89:89 -> access$1900
    1:1:com.android.tools.r8.shaking.AppInfoWithLiveness access$200(com.android.tools.r8.shaking.VerticalClassMerger):89:89 -> access$200
    1:1:com.android.tools.r8.graph.AppView access$300(com.android.tools.r8.shaking.VerticalClassMerger):89:89 -> access$300
    1:1:java.util.concurrent.ExecutorService access$900(com.android.tools.r8.shaking.VerticalClassMerger):89:89 -> access$900
    1:17:com.android.tools.r8.shaking.VerticalClassMerger$AbortReason disallowInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):1679:1695 -> disallowInlining
    18:26:com.android.tools.r8.shaking.VerticalClassMerger$AbortReason disallowInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):1694:1702 -> disallowInlining
    1:18:void extractPinnedItems(java.lang.Iterable,com.android.tools.r8.shaking.VerticalClassMerger$AbortReason):333:350 -> extractPinnedItems
    1:18:boolean fieldResolutionMayChange(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):887:904 -> fieldResolutionMayChange
    1:4:java.util.Collection getInvokes():571:574 -> getInvokes
    1:1:com.android.tools.r8.shaking.VerticalClassMerger$VerticallyMergedClasses getMergedClasses():274:274 -> getMergedClasses
    1:1:java.util.Collection getRemovedClasses():2001:2001 -> getRemovedClasses
    1:3:void initializeMergeCandidates(java.lang.Iterable):278:280 -> initializeMergeCandidates
    1:39:void initializePinnedTypes(java.lang.Iterable):290:328 -> initializePinnedTypes
    1:9:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):379:387 -> 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):387 -> isMergeCandidate
    11:13:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):387:389 -> isMergeCandidate
    14:71:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):387:444 -> isMergeCandidate
    72:72:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> isMergeCandidate
    72:72:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):444 -> isMergeCandidate
    73:75:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):447:449 -> isMergeCandidate
    76:77:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):439:440 -> isMergeCandidate
    1:17:boolean isStillMergeCandidate(com.android.tools.r8.graph.DexProgramClass):460:476 -> isStillMergeCandidate
    18:18:boolean com.android.tools.r8.graph.DexClass.classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView):737:737 -> isStillMergeCandidate
    18:18:boolean isStillMergeCandidate(com.android.tools.r8.graph.DexProgramClass):476 -> isStillMergeCandidate
    19:53:boolean isStillMergeCandidate(com.android.tools.r8.graph.DexProgramClass):483:517 -> isStillMergeCandidate
    54:55:boolean isStillMergeCandidate(com.android.tools.r8.graph.DexProgramClass):496:497 -> isStillMergeCandidate
    56:57:boolean isStillMergeCandidate(com.android.tools.r8.graph.DexProgramClass):478:479 -> isStillMergeCandidate
    1:4:void makePrivate(com.android.tools.r8.graph.DexEncodedMethod):1461:1464 -> makePrivate
    1:14:void markTypeAsPinned(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.VerticalClassMerger$AbortReason):357:370 -> markTypeAsPinned
    1:66:void mergeClassIfPossible(com.android.tools.r8.graph.DexProgramClass):810:875 -> mergeClassIfPossible
    67:77:void mergeClassIfPossible(com.android.tools.r8.graph.DexProgramClass):871:881 -> mergeClassIfPossible
    78:78:void mergeClassIfPossible(com.android.tools.r8.graph.DexProgramClass):877:877 -> mergeClassIfPossible
    79:79:void mergeClassIfPossible(com.android.tools.r8.graph.DexProgramClass):862:862 -> mergeClassIfPossible
    1:38:boolean mergeMayLeadToIllegalAccesses(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):525:562 -> mergeMayLeadToIllegalAccesses
    1:46:boolean methodResolutionMayChange(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):753:798 -> methodResolutionMayChange
    1:16:com.android.tools.r8.graph.GraphLense run():669:684 -> run
    17:22:com.android.tools.r8.graph.GraphLense run():680:685 -> run
    1:57:boolean verifyGraphLense(com.android.tools.r8.graph.GraphLense):690:746 -> verifyGraphLense
com.android.tools.r8.shaking.VerticalClassMerger$1 -> com.android.tools.r8.shaking.VerticalClassMerger$1:
    1:1:void <clinit>():1984:1984 -> <clinit>
    2:2:void <clinit>():1401:1401 -> <clinit>
    3:3:void <clinit>():155:155 -> <clinit>
com.android.tools.r8.shaking.VerticalClassMerger$AbortReason -> com.android.tools.r8.shaking.VerticalClassMerger$AbortReason:
    1:19:void <clinit>():129:147 -> <clinit>
    20:20:void <clinit>():129:129 -> <clinit>
    1:1:void <init>(java.lang.String,int):129:129 -> <init>
    1:59:java.lang.String getMessageForClass(com.android.tools.r8.graph.DexClass):155:213 -> getMessageForClass
    60:60:java.lang.String getMessageForClass(com.android.tools.r8.graph.DexClass):211:211 -> getMessageForClass
    1:1:void printLogMessageForClass(com.android.tools.r8.graph.DexClass):150:150 -> printLogMessageForClass
    1:1:com.android.tools.r8.shaking.VerticalClassMerger$AbortReason valueOf(java.lang.String):129:129 -> valueOf
    1:1:com.android.tools.r8.shaking.VerticalClassMerger$AbortReason[] values():129:129 -> values
com.android.tools.r8.shaking.VerticalClassMerger$ClassMerger -> com.android.tools.r8.shaking.VerticalClassMerger$ClassMerger:
    1:1:void <clinit>():915:915 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.VerticalClassMerger$1):915:915 -> <init>
    2:2:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):927:927 -> <init>
    3:11:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):921:929 -> <init>
    1:4:boolean lambda$merge$0(java.util.Set,java.util.Map,java.util.Map,com.android.tools.r8.graph.DexMethod):944:947 -> a
    5:7:boolean lambda$merge$1(java.util.function.Predicate,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool,com.android.tools.r8.graph.DexMethod):1021:1023 -> a
    8:8:boolean lambda$merge$1(java.util.function.Predicate,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool,com.android.tools.r8.graph.DexMethod):1022:1022 -> a
    9:9:boolean lambda$merge$2(java.util.Set,com.android.tools.r8.graph.DexField):1084:1084 -> a
    10:10:java.util.Set lambda$merge$3(com.android.tools.r8.graph.DexType):1128:1128 -> a
    11:12:void lambda$restoreDebuggingState$4(com.android.tools.r8.graph.DexEncodedMethod):1136:1137 -> a
    1:1:void add(java.util.Map,com.android.tools.r8.graph.KeyedDexItem,com.android.tools.r8.com.google.common.base.Equivalence):1309:1309 -> add
    1:2:void addAll(java.util.Collection,java.lang.Iterable,com.android.tools.r8.com.google.common.base.Equivalence):1314:1315 -> addAll
    1:2:void lambda$restoreDebuggingState$5(com.android.tools.r8.graph.DexEncodedMethod):1141:1142 -> b
    1:1:void blockRedirectionOfSuperCalls(com.android.tools.r8.graph.DexMethod):1235:1235 -> blockRedirectionOfSuperCalls
    1:34:com.android.tools.r8.graph.DexEncodedMethod buildBridgeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):1240:1273 -> buildBridgeMethod
    1:1:boolean lambda$restoreDebuggingState$6(com.android.tools.r8.graph.DexEncodedMethod):1146:1146 -> c
    1:21:com.android.tools.r8.graph.DexEncodedMethod findMethodInTarget(com.android.tools.r8.graph.DexEncodedMethod):1280:1300 -> findMethodInTarget
    22:22:com.android.tools.r8.graph.DexEncodedMethod findMethodInTarget(com.android.tools.r8.graph.DexEncodedMethod):1295:1295 -> findMethodInTarget
    1:5:com.android.tools.r8.graph.DexString getFreshName(java.lang.String,int,com.android.tools.r8.graph.DexType):1352:1356 -> getFreshName
    1:1:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder getRenamings():1151:1151 -> getRenamings
    1:1:java.util.List getSynthesizedBridges():1155:1155 -> getSynthesizedBridges
    1:5:void makeStatic(com.android.tools.r8.graph.DexEncodedMethod):1451:1455 -> makeStatic
    1:20:boolean merge():936:955 -> merge
    21:30:boolean merge():952:961 -> merge
    31:57:boolean merge():958:984 -> merge
    58:70:boolean merge():983:995 -> merge
    71:71:boolean com.android.tools.r8.graph.DexClass.isAbstract():589:589 -> merge
    71:71:boolean merge():996 -> merge
    72:74:boolean merge():997:999 -> merge
    75:75:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():335:335 -> merge
    75:75:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexEncodedMethod.toEmptyThrowingMethod(com.android.tools.r8.utils.InternalOptions):666 -> merge
    75:75:boolean merge():999 -> merge
    76:77:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexEncodedMethod.toEmptyThrowingMethod(com.android.tools.r8.utils.InternalOptions):667:668 -> merge
    76:77:boolean merge():999 -> merge
    78:104:boolean merge():1001:1027 -> merge
    105:152:boolean merge():1018:1065 -> merge
    153:178:boolean merge():1064:1089 -> merge
    179:188:boolean merge():1087:1096 -> merge
    189:224:boolean merge():1094:1129 -> merge
    1:3:java.util.Set mergeArrays(java.lang.Object[],java.lang.Object[]):1320:1322 -> mergeArrays
    1:13:com.android.tools.r8.graph.DexEncodedField[] mergeFields(java.util.Collection,java.util.Collection,java.util.function.Predicate,java.util.Set):1331:1343 -> mergeFields
    1:55:void redirectSuperCallsInTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):1159:1213 -> redirectSuperCallsInTarget
    1:20:com.android.tools.r8.graph.DexEncodedMethod renameConstructor(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate):1361:1380 -> renameConstructor
    1:16:com.android.tools.r8.graph.DexEncodedField renameFieldIfNeeded(com.android.tools.r8.graph.DexEncodedField,java.util.function.Predicate):1432:1447 -> 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):1386:1386 -> 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):1396:1424 -> 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):1403:1427 -> renameMethod
    1:13:boolean restoreDebuggingState(java.util.stream.Stream):1134:1146 -> restoreDebuggingState
    14:14:boolean restoreDebuggingState(java.util.stream.Stream):1145:1145 -> restoreDebuggingState
com.android.tools.r8.shaking.VerticalClassMerger$CollisionDetector -> com.android.tools.r8.shaking.VerticalClassMerger$CollisionDetector:
    1:1:void <clinit>():1568:1568 -> <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):1568:1568 -> <init>
    2:2:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):1579:1579 -> <init>
    3:15:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):1573:1585 -> <init>
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap lambda$fillSeenPositions$0(com.android.tools.r8.graph.DexString):1622:1623 -> a
    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):1642:1673 -> computePositionsFor
    1:18:void fillSeenPositions():1615:1632 -> fillSeenPositions
    1:22:boolean mayCollide():1589:1610 -> mayCollide
com.android.tools.r8.shaking.VerticalClassMerger$IllegalAccessDetector -> com.android.tools.r8.shaking.VerticalClassMerger$IllegalAccessDetector:
    1:1:void <clinit>():1787:1787 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):1796:1796 -> <init>
    2:11:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):1789:1798 -> <init>
    1:8:boolean checkFieldReference(com.android.tools.r8.graph.DexField):1810:1817 -> checkFieldReference
    9:9:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):158:158 -> checkFieldReference
    9:9:boolean checkFieldReference(com.android.tools.r8.graph.DexField):1817 -> checkFieldReference
    10:11:boolean checkFieldReference(com.android.tools.r8.graph.DexField):1818:1819 -> checkFieldReference
    1:10:boolean checkMethodReference(com.android.tools.r8.graph.DexMethod):1827:1836 -> checkMethodReference
    11:11:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):163:163 -> checkMethodReference
    11:11:boolean checkMethodReference(com.android.tools.r8.graph.DexMethod):1836 -> checkMethodReference
    12:13:boolean checkMethodReference(com.android.tools.r8.graph.DexMethod):1837:1838 -> checkMethodReference
    1:5:boolean checkTypeReference(com.android.tools.r8.graph.DexType):1846:1850 -> checkTypeReference
    6:6:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> checkTypeReference
    6:6:boolean checkTypeReference(com.android.tools.r8.graph.DexType):1850 -> checkTypeReference
    7:8:boolean checkTypeReference(com.android.tools.r8.graph.DexType):1851:1852 -> checkTypeReference
    1:1:boolean foundIllegalAccess():1802:1802 -> foundIllegalAccess
    1:1:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):1906:1906 -> registerInstanceFieldRead
    1:1:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):1901:1901 -> registerInstanceFieldWrite
    1:4:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):1869:1872 -> registerInvokeDirect
    1:4:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):1885:1888 -> registerInvokeInterface
    1:4:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):1877:1880 -> registerInvokeStatic
    1:4:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):1893:1896 -> registerInvokeSuper
    1:4:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):1861:1864 -> registerInvokeVirtual
    1:1:boolean registerNewInstance(com.android.tools.r8.graph.DexType):1911:1911 -> registerNewInstance
    1:1:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):1916:1916 -> registerStaticFieldRead
    1:1:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):1921:1921 -> registerStaticFieldWrite
    1:1:boolean registerTypeReference(com.android.tools.r8.graph.DexType):1926:1926 -> registerTypeReference
    1:1:void setContext(com.android.tools.r8.graph.DexEncodedMethod):1806:1806 -> 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):585:585 -> <init>
    2:9:void <init>(com.android.tools.r8.shaking.VerticalClassMerger):580:587 -> <init>
    1:1:com.android.tools.r8.graph.DexProto lambda$get$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexString):610:610 -> a
    1:35:java.util.Collection get():592:626 -> get
    1:15:boolean protoMayReferenceMergedSourceOrTarget(com.android.tools.r8.graph.DexProto):634:648 -> protoMayReferenceMergedSourceOrTarget
    1:8:boolean typeMayReferenceMergedSourceOrTarget(com.android.tools.r8.graph.DexType):654:661 -> typeMayReferenceMergedSourceOrTarget
com.android.tools.r8.shaking.VerticalClassMerger$Rename -> com.android.tools.r8.shaking.VerticalClassMerger$Rename:
    1:3:void <clinit>():218:220 -> <clinit>
    4:4:void <clinit>():217:217 -> <clinit>
    1:1:void <init>(java.lang.String,int):217:217 -> <init>
    1:1:com.android.tools.r8.shaking.VerticalClassMerger$Rename valueOf(java.lang.String):217:217 -> valueOf
    1:1:com.android.tools.r8.shaking.VerticalClassMerger$Rename[] values():217:217 -> values
com.android.tools.r8.shaking.VerticalClassMerger$SingleTypeMapperGraphLense -> com.android.tools.r8.shaking.VerticalClassMerger$SingleTypeMapperGraphLense:
    1:1:void <clinit>():1705:1705 -> <clinit>
    1:3:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):1710:1712 -> <init>
    1:1:com.android.tools.r8.graph.DexField getOriginalFieldSignature(com.android.tools.r8.graph.DexField):1722:1722 -> getOriginalFieldSignature
    1:1:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):1727:1727 -> getOriginalMethodSignature
    1:1:com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType):1717:1717 -> getOriginalType
    1:1:com.android.tools.r8.graph.DexField getRenamedFieldSignature(com.android.tools.r8.graph.DexField):1732:1732 -> getRenamedFieldSignature
    1:1:com.android.tools.r8.graph.DexMethod getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):1737:1737 -> getRenamedMethodSignature
    1:1:com.android.tools.r8.graph.DexField lookupField(com.android.tools.r8.graph.DexField):1776:1776 -> 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):1749:1766 -> lookupMethod
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):1771:1771 -> lookupPrototypeChanges
    1:1:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType):1742:1742 -> 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):1943:1948 -> <init>
    1:11:void lambda$getRegistryCallback$0(com.android.tools.r8.graph.UseRegistry):1984:1994 -> a
    12:12:void lambda$getRegistryCallback$0(com.android.tools.r8.graph.UseRegistry):1986:1986 -> a
    1:1:com.android.tools.r8.graph.DexMethod access$600(com.android.tools.r8.shaking.VerticalClassMerger$SynthesizedBridgeCode):1930:1930 -> access$600
    1:1:java.util.function.Consumer getRegistryCallback():1983:1983 -> getRegistryCallback
    1:10:com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider getSourceCodeProvider():1969:1978 -> getSourceCodeProvider
    1:2:void updateMethodSignatures(java.util.function.Function):1963:1964 -> 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):1467:1471 -> <init>
    6:8:void <init>(com.android.tools.r8.shaking.VerticalClassMerger):1470:1472 -> <init>
    9:9:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.shaking.VerticalClassMerger$1):1467:1467 -> <init>
    1:1:com.android.tools.r8.graph.GraphLense access$500(com.android.tools.r8.shaking.VerticalClassMerger$TreeFixer):1467:1467 -> access$500
    1:11:void fixupFields(java.util.List,com.android.tools.r8.graph.DexClass$FieldSetter):1511:1521 -> fixupFields
    1:2:com.android.tools.r8.graph.DexMethod fixupMethod(com.android.tools.r8.graph.DexMethod):1527:1528 -> fixupMethod
    3:3:com.android.tools.r8.graph.DexMethod fixupMethod(com.android.tools.r8.graph.DexMethod):1527:1527 -> fixupMethod
    1:9:void fixupMethods(java.util.List,com.android.tools.r8.graph.DexClass$MethodSetter):1494:1502 -> fixupMethods
    1:6:com.android.tools.r8.graph.DexProto fixupProto(com.android.tools.r8.graph.DexProto):1532:1537 -> fixupProto
    1:11:com.android.tools.r8.graph.DexType fixupType(com.android.tools.r8.graph.DexType):1543:1553 -> fixupType
    1:11:com.android.tools.r8.graph.GraphLense fixupTypeReferences():1476:1486 -> fixupTypeReferences
    1:3:com.android.tools.r8.graph.DexType[] fixupTypes(com.android.tools.r8.graph.DexType[]):1560:1562 -> fixupTypes
com.android.tools.r8.shaking.VerticalClassMerger$VerticallyMergedClasses -> com.android.tools.r8.shaking.VerticalClassMerger$VerticallyMergedClasses:
    1:1:void <clinit>():91:91 -> <clinit>
    1:1:void <init>(java.util.Map,com.android.tools.r8.shaking.VerticalClassMerger$1):91:91 -> <init>
    2:8:void <init>(java.util.Map):96:102 -> <init>
    1:1:java.util.List lambda$new$0(com.android.tools.r8.graph.DexType):100:100 -> a
    2:2:void lambda$new$1(java.util.Map,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):100:100 -> a
    1:1:java.util.List getSourcesFor(com.android.tools.r8.graph.DexType):106:106 -> getSourcesFor
    1:2:com.android.tools.r8.graph.DexType getTargetFor(com.android.tools.r8.graph.DexType):110:111 -> getTargetFor
    1:1:boolean hasBeenMergedIntoSubtype(com.android.tools.r8.graph.DexType):115:115 -> hasBeenMergedIntoSubtype
    1:4:boolean verifyAllSourcesPruned(com.android.tools.r8.graph.AppView):119:122 -> verifyAllSourcesPruned
com.android.tools.r8.shaking.VerticalClassMergerGraphLense -> com.android.tools.r8.shaking.VerticalClassMergerGraphLense:
    1:1:void <clinit>():47:47 -> <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):47:47 -> <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):74:74 -> <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):67:78 -> <init>
    1:2:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):88:89 -> getOriginalMethodSignature
    3:3:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):88:88 -> getOriginalMethodSignature
    1:1:com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType):83:83 -> getOriginalType
    1:7:boolean isContextFreeForMethod(com.android.tools.r8.graph.DexMethod):147:153 -> isContextFreeForMethod
    1:1:boolean isContextFreeForMethods():142:142 -> isContextFreeForMethods
    1:23: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):94:116 -> lookupMethod
    1:12:java.util.Set lookupMethodInAllContexts(com.android.tools.r8.graph.DexMethod):126:137 -> 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):121:121 -> mapInvocationType
com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder -> com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder:
    1:1:void <clinit>():160:160 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory):176:176 -> <init>
    2:15:void <init>(com.android.tools.r8.graph.DexItemFactory):164:177 -> <init>
    1:1:com.android.tools.r8.graph.DexType lambda$getMethodSignatureAfterClassMerging$0(java.util.Map,com.android.tools.r8.graph.DexType):269:269 -> a
    2:2:java.util.Map lambda$mapVirtualMethodToDirectInType$1(com.android.tools.r8.graph.DexType):331:331 -> a
    1:16:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.AppView,java.util.Map):225:240 -> build
    1:5:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):181:185 -> createBuilderForFixup
    6:13:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):183:190 -> createBuilderForFixup
    14:20:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):188:194 -> createBuilderForFixup
    21:35:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):193:207 -> createBuilderForFixup
    36:43:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):206:213 -> createBuilderForFixup
    44:52:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):211:219 -> createBuilderForFixup
    53:53:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):217:217 -> createBuilderForFixup
    1:12:com.android.tools.r8.graph.DexField getFieldSignatureAfterClassMerging(com.android.tools.r8.graph.DexField,java.util.Map):245:256 -> getFieldSignatureAfterClassMerging
    1:14:com.android.tools.r8.graph.DexMethod getMethodSignatureAfterClassMerging(com.android.tools.r8.graph.DexMethod,java.util.Map):261:274 -> getMethodSignatureAfterClassMerging
    1:9:com.android.tools.r8.graph.DexType getTypeAfterClassMerging(com.android.tools.r8.graph.DexType,java.util.Map):278:286 -> getTypeAfterClassMerging
    1:4:boolean hasMappingForSignatureInContext(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):290:293 -> hasMappingForSignatureInContext
    1:1:boolean hasOriginalSignatureMappingFor(com.android.tools.r8.graph.DexField):299:299 -> hasOriginalSignatureMappingFor
    2:3:boolean hasOriginalSignatureMappingFor(com.android.tools.r8.graph.DexMethod):303:304 -> hasOriginalSignatureMappingFor
    1:1:void map(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):312:312 -> map
    2:2:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder map(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):316:316 -> map
    1:3:void mapVirtualMethodToDirectInType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult,com.android.tools.r8.graph.DexType):330:332 -> mapVirtualMethodToDirectInType
    1:1:void markMethodAsMerged(com.android.tools.r8.graph.DexMethod):308:308 -> markMethodAsMerged
    1:14:void merge(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder):336:349 -> merge
    1:1:void recordCreationOfBridgeMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):325:325 -> recordCreationOfBridgeMethod
    1:1:void recordMove(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):321:321 -> 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):50:51 -> <init>
    1:1:com.android.tools.r8.utils.DexVersion getDexVersion():67:67 -> a
    1:1:int getLevel():55:55 -> b
    2:2:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):155:155 -> b
    3:3:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):153:153 -> b
    4:4:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):151:151 -> b
    5:5:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):149:149 -> b
    6:6:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):147:147 -> b
    7:7:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):145:145 -> b
    8:8:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):143:143 -> b
    9:9:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):141:141 -> b
    10:10:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):139:139 -> b
    11:11:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):137:137 -> b
    12:12:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):135:135 -> b
    13:13:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):133:133 -> b
    14:14:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):131:131 -> b
    15:15:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):129:129 -> b
    16:16:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):127:127 -> b
    17:17:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):125:125 -> b
    18:18:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):123:123 -> b
    19:19:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):121:121 -> b
    20:20:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):119:119 -> b
    21:21:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):117:117 -> b
    22:22:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):115:115 -> b
    23:23:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):113:113 -> b
    24:24:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):111:111 -> b
    25:25:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):109:109 -> b
    26:26:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):107:107 -> b
    27:27:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):105:105 -> b
    28:28:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):103:103 -> b
    29:29:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):101:101 -> b
    30:30:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):99:99 -> b
    31:31:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):97:97 -> b
    32:32:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):95:95 -> b
    1:2:java.util.List getAndroidApiLevelsSorted():71:72 -> c
    1:1:com.android.tools.r8.utils.AndroidApiLevel getDefault():63:63 -> 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>():56:56 -> <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):56:56 -> <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):137:147 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$200(com.android.tools.r8.utils.AndroidApp):56:56 -> a
    2:3:void closeInternalArchiveProviders():71:72 -> a
    4:7:void printClassFileProviders(java.lang.StringBuilder,java.util.Collection):110:113 -> a
    8:14:void printProgramResource(java.lang.StringBuilder,com.android.tools.r8.ProgramResource):119:125 -> a
    15:16:boolean verifyInternalProvidersInCloseSet(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList):153:154 -> a
    17:17:boolean lambda$verifyInternalProvidersInCloseSet$0(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.ClassFileResourceProvider):155:155 -> a
    18:18:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.Reporter):171:171 -> a
    19:19:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.Reporter):183:183 -> a
    20:24:java.util.List filter(java.util.List,com.android.tools.r8.ProgramResource$Kind):268:272 -> a
    25:28:void write(java.nio.file.Path,com.android.tools.r8.OutputMode):334:337 -> a
    29:30:java.lang.String getPrimaryClassDescriptor(com.android.tools.r8.Resource):381:382 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$300(com.android.tools.r8.utils.AndroidApp):56:56 -> b
    2:4:java.util.Collection computeAllProgramResources():188:190 -> b
    5:14:void writeToDirectory(java.nio.file.Path,com.android.tools.r8.OutputMode):345:354 -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$400(com.android.tools.r8.utils.AndroidApp):56:56 -> c
    2:7:java.util.List getClassProgramResourcesForTesting():211:216 -> c
    8:10:void writeToZip(java.nio.file.Path,com.android.tools.r8.OutputMode):361:363 -> c
    11:19:void writeToZip(java.nio.file.Path,com.android.tools.r8.OutputMode):362:370 -> c
    20:26:void writeToZip(java.nio.file.Path,com.android.tools.r8.OutputMode):369:375 -> c
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$500(com.android.tools.r8.utils.AndroidApp):56:56 -> d
    2:2:java.util.List getClasspathResourceProviders():258:258 -> d
    1:1:java.util.List access$600(com.android.tools.r8.utils.AndroidApp):56:56 -> e
    2:6:java.util.Set getDataEntryResourcesForTesting():222:226 -> e
    1:1:java.util.List access$700(com.android.tools.r8.utils.AndroidApp):56:56 -> f
    2:7:java.util.List getDexProgramResourcesForTesting():198:203 -> f
    1:1:com.android.tools.r8.utils.Reporter defaultReporter():159:159 -> g
    1:1:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.AndroidApp):178 -> g
    2:2:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.Reporter):183:183 -> g
    2:2:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.AndroidApp):178 -> g
    3:3:java.util.List getLibraryResourceProviders():263:263 -> g
    1:1:java.util.List getMainDexClasses():314:314 -> h
    1:1:java.util.List getMainDexListResources():307:307 -> i
    1:1:java.util.List getProgramResourceProviders():253:253 -> j
    1:1:com.android.tools.r8.StringResource getProguardMapOutputData():286:286 -> k
    1:1:boolean hasMainDexList():293:293 -> l
    1:1:boolean hasMainDexListResources():300:300 -> m
    1:9:com.android.tools.r8.utils.AndroidApp withoutMainDexList():319:327 -> n
    1:1:com.android.tools.r8.utils.Reporter defaultReporter():159:159 -> o
    1:1:com.android.tools.r8.utils.AndroidApp$Builder builder():166 -> o
    2:2:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.Reporter):171:171 -> o
    2:2:com.android.tools.r8.utils.AndroidApp$Builder builder():166 -> o
    1:5:java.lang.String toString():78:82 -> toString
    6:8:void printProgramResourceProviders(java.lang.StringBuilder,java.util.Collection):101:103 -> toString
    6:8:java.lang.String toString():82 -> toString
    9:20:java.lang.String toString():84:95 -> 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):227:227 -> <init>
    1:6:void visit(com.android.tools.r8.DataEntryResource):237:242 -> visit
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>():388:388 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.AndroidApp$1):388:388 -> <init>
    2:2:void <init>(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.AndroidApp$1):388:388 -> <init>
    3:3:void <init>(com.android.tools.r8.utils.Reporter):408:408 -> <init>
    4:23:void <init>(com.android.tools.r8.utils.Reporter):390:409 -> <init>
    24:30:void <init>(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.AndroidApp):414:420 -> <init>
    1:2:com.android.tools.r8.utils.AndroidApp$Builder addProgramResourceProvider(com.android.tools.r8.ProgramResourceProvider):459:460 -> a
    3:3:com.android.tools.r8.utils.AndroidApp$Builder addClasspathFile(java.nio.file.Path):479:479 -> a
    4:4:com.android.tools.r8.utils.AndroidApp$Builder addClasspathResourceProvider(com.android.tools.r8.ClassFileResourceProvider):487:487 -> a
    5:5:com.android.tools.r8.utils.AndroidApp$Builder addLibraryFiles(java.nio.file.Path[]):493:493 -> a
    6:7:com.android.tools.r8.utils.AndroidApp$Builder addLibraryFiles(java.util.Collection):498:499 -> a
    6:7:com.android.tools.r8.utils.AndroidApp$Builder addLibraryFiles(java.nio.file.Path[]):493 -> a
    8:9:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],java.util.Set):548:549 -> a
    10:10:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],java.util.Set):548:548 -> a
    11:11:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],java.util.Set,java.lang.String):561:561 -> a
    12:15:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],java.util.Set,java.lang.String):560:563 -> a
    16:17:com.android.tools.r8.utils.AndroidApp$Builder addClassProgramData(java.util.Collection):589:590 -> a
    18:18:com.android.tools.r8.utils.AndroidApp$Builder addClassProgramData(byte[],com.android.tools.r8.origin.Origin):599:599 -> a
    19:19:com.android.tools.r8.utils.AndroidApp$Builder addClassProgramData(byte[],com.android.tools.r8.origin.Origin,java.util.Set):603:603 -> a
    20:20:com.android.tools.r8.utils.AndroidApp$Builder addDataResource(com.android.tools.r8.DataResource):609:609 -> a
    21:21:void addDataResources(com.android.tools.r8.DataResource[]):752:752 -> a
    21:21:com.android.tools.r8.utils.AndroidApp$Builder addDataResource(com.android.tools.r8.DataResource):609 -> a
    22:22:void addDataResources(java.util.Collection):756:756 -> a
    22:22:void addDataResources(com.android.tools.r8.DataResource[]):752 -> a
    22:22:com.android.tools.r8.utils.AndroidApp$Builder addDataResource(com.android.tools.r8.DataResource):609 -> a
    23:23:com.android.tools.r8.utils.AndroidApp$Builder setProguardMapOutputData(java.lang.String):620:620 -> a
    24:24:com.android.tools.r8.utils.AndroidApp$Builder addMainDexClasses(java.lang.String[]):647:647 -> a
    25:25:com.android.tools.r8.utils.AndroidApp$Builder addMainDexClasses(java.util.Collection):654:654 -> a
    25:25:com.android.tools.r8.utils.AndroidApp$Builder addMainDexClasses(java.lang.String[]):647 -> a
    26:26:com.android.tools.r8.utils.AndroidApp$Builder setIgnoreDexInArchive(boolean):670:670 -> a
    27:66:com.android.tools.r8.utils.AndroidApp build():678:717 -> a
    67:67:void addProgramResources(com.android.tools.r8.ProgramResource[]):744:744 -> a
    68:68:void addProgramResources(java.util.Collection):748:748 -> a
    68:68:void addProgramResources(com.android.tools.r8.ProgramResource[]):744 -> a
    69:72:void addClasspathOrLibraryProvider(java.nio.file.Path,java.util.List):761:764 -> a
    73:88:void addClasspathOrLibraryProvider(java.nio.file.Path,java.util.List):762:777 -> a
    89:89:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    89:89:void addClasspathOrLibraryProvider(java.nio.file.Path,java.util.List):777 -> a
    90:90:void addClasspathOrLibraryProvider(java.nio.file.Path,java.util.List):777:777 -> a
    1:1:com.android.tools.r8.utils.AndroidApp$Builder addProgramFiles(java.nio.file.Path[]):429:429 -> b
    2:2:com.android.tools.r8.utils.AndroidApp$Builder addLibraryFile(java.nio.file.Path):506:506 -> b
    3:18:com.android.tools.r8.utils.AndroidApp$Builder addFilteredLibraryArchives(java.util.Collection):512:527 -> b
    19:19:com.android.tools.r8.utils.AndroidApp$Builder addFilteredLibraryArchives(java.util.Collection):523:523 -> b
    20:23:com.android.tools.r8.utils.AndroidApp$Builder addLibraryResourceProvider(com.android.tools.r8.ClassFileResourceProvider):537:540 -> b
    24:24:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],com.android.tools.r8.origin.Origin):571:571 -> b
    25:25:java.util.List getProgramResourceProviders():782:782 -> b
    1:1:com.android.tools.r8.utils.Reporter getReporter():424:424 -> c
    2:12:com.android.tools.r8.utils.AndroidApp$Builder addFilteredProgramArchives(java.util.Collection):442:452 -> c
    13:13:com.android.tools.r8.utils.AndroidApp$Builder addFilteredProgramArchives(java.util.Collection):448:448 -> c
    14:22:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):724:732 -> c
    23:24:boolean com.android.tools.r8.utils.FileUtils.isAarFile(java.nio.file.Path):71:72 -> c
    23:24:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):733 -> c
    25:25:com.android.tools.r8.utils.AarArchiveResourceProvider com.android.tools.r8.utils.AarArchiveResourceProvider.fromArchive(java.nio.file.Path):38:38 -> c
    25:25:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):734 -> c
    26:30:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):734:738 -> c
    31:31:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> c
    31:31:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):738 -> c
    32:32:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):738:738 -> c
    1:1:com.android.tools.r8.utils.AndroidApp$Builder addMainDexClasses(java.util.Collection):654:654 -> d
    2:2:boolean hasMainDexList():659:659 -> d
    1:7:com.android.tools.r8.utils.AndroidApp$Builder addMainDexListFiles(java.util.Collection):632:638 -> e
    8:8:com.android.tools.r8.utils.AndroidApp$Builder addMainDexListFiles(java.util.Collection):634:634 -> e
    1:2:com.android.tools.r8.utils.AndroidApp$Builder addProgramFiles(java.util.Collection):434:435 -> f
com.android.tools.r8.utils.AndroidApp$Builder$1 -> 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):683:683 -> <init>
    1:2:com.android.tools.r8.DataResourceProvider getDataResourceProvider():691:692 -> getDataResourceProvider
    1:1:java.util.Collection getProgramResources():686:686 -> getProgramResources
com.android.tools.r8.utils.AndroidApp$Builder$1$1 -> com.android.tools.r8.utils.f:
    com.android.tools.r8.utils.AndroidApp$Builder$1 this$1 -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():692:692 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp$Builder$1):692:692 -> <init>
    1:6:void accept(com.android.tools.r8.DataResourceProvider$Visitor):695:700 -> accept
com.android.tools.r8.utils.AndroidAppConsumers -> com.android.tools.r8.utils.g:
    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.g$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.g$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.h:
    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.j:
    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.i:
    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.g$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.k:
    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.g$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.n:
    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:67:void addIndexedClassFile(int,java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):178:179 -> a
    68: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.l:
com.android.tools.r8.utils.ArchiveBuilder$DelayedData -> com.android.tools.r8.utils.m:
    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>():35:35 -> <clinit>
    1:5:void <init>(com.android.tools.r8.shaking.FilteredClassPath,boolean):46:50 -> <init>
    1:16:java.util.List readArchive():54:69 -> a
    17:28:java.util.List readArchive():68:79 -> a
    29:37:java.util.List readArchive():75:83 -> a
    38:67:java.util.List readArchive():61:90 -> a
    68:68:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    68:68:java.util.List readArchive():90 -> a
    69:73:java.util.List readArchive():90:94 -> a
    74:105:java.util.List readArchive():56:87 -> a
    106:106:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):85:85 -> a
    1:7:void accept(com.android.tools.r8.DataResourceProvider$Visitor):113:119 -> accept
    8:8:boolean isProgramResourceName(java.lang.String):137:137 -> accept
    8:8:void accept(com.android.tools.r8.DataResourceProvider$Visitor):119 -> accept
    9:10:boolean com.android.tools.r8.utils.ZipUtils.isDexFile(java.lang.String):99:100 -> accept
    9:10:boolean isProgramResourceName(java.lang.String):137 -> accept
    9:10:void accept(com.android.tools.r8.DataResourceProvider$Visitor):119 -> accept
    11:11:boolean isProgramResourceName(java.lang.String):137:137 -> accept
    11:11:void accept(com.android.tools.r8.DataResourceProvider$Visitor):119 -> accept
    12:19:void accept(com.android.tools.r8.DataResourceProvider$Visitor):120:127 -> accept
    20:39:void accept(com.android.tools.r8.DataResourceProvider$Visitor):113:132 -> accept
    40:41:void accept(com.android.tools.r8.DataResourceProvider$Visitor):128:129 -> accept
    1:1:com.android.tools.r8.utils.ArchiveResourceProvider fromArchive(java.nio.file.Path,boolean):43:43 -> fromArchive
    1:3:java.util.Collection getProgramResources():100:102 -> getProgramResources
com.android.tools.r8.utils.ArrayUtils -> com.android.tools.r8.utils.o:
    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.BiMapContainer -> com.android.tools.r8.utils.p:
    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.q:
    boolean isBitInMaskSet(int,int) -> a
    boolean isBitSet(int,int) -> b
com.android.tools.r8.utils.BooleanUtils -> com.android.tools.r8.utils.r:
    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.s:
    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.CfgPrinter -> com.android.tools.r8.utils.t:
    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:8:com.android.tools.r8.utils.CfgPrinter sp():65:65 -> 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:8:void printIndent():75:76 -> 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.w:
    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.u:
com.android.tools.r8.utils.ClassMap$ConcurrentClassLoader -> com.android.tools.r8.utils.v:
    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:20:void lambda$get$0(com.android.tools.r8.graph.DexClass):259:278 -> a
    21:23:void lambda$get$0(com.android.tools.r8.graph.DexClass):264:266 -> a
    24:24:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    24:24:void lambda$get$0(com.android.tools.r8.graph.DexClass):266 -> a
    25:25:void lambda$get$0(com.android.tools.r8.graph.DexClass):266:266 -> a
    1:1:java.lang.Object get():234:234 -> get
    2:42:com.android.tools.r8.graph.DexClass get():251:291 -> get
    43:43:com.android.tools.r8.graph.DexClass get():287:287 -> get
com.android.tools.r8.utils.ClassProvider -> com.android.tools.r8.utils.B:
    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.x:
com.android.tools.r8.utils.ClassProvider$ClassFileResourceReader -> com.android.tools.r8.utils.y:
    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.z:
    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.A:
    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.C:
    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.D:
    void accept(java.lang.Object,java.lang.Object,java.lang.Object) -> a
com.android.tools.r8.utils.DescriptorUtils -> com.android.tools.r8.utils.E:
    java.util.Map typeNameToLetterMap -> a
    boolean $assertionsDisabled -> b
    1:17:void <clinit>():19:35 -> <clinit>
    1:12:java.lang.String internalToDescriptor(java.lang.String,boolean,boolean):41:52 -> a
    13:17:java.lang.String internalToDescriptor(java.lang.String,boolean,boolean):51:55 -> a
    18:24:java.lang.String descriptorToInternalName(java.lang.String):150:156 -> a
    25:25:java.lang.String descriptorToInternalName(java.lang.String):154:154 -> a
    26:26:java.lang.String descriptorToJavaType(java.lang.String,com.android.tools.r8.naming.ClassNameMapper):169:169 -> a
    27:27:java.lang.String primitiveDescriptorToJavaType(char):207:207 -> a
    27:27:java.lang.String descriptorToJavaType(java.lang.String,com.android.tools.r8.naming.ClassNameMapper):182 -> a
    28:28:java.lang.String descriptorToJavaType(java.lang.String,com.android.tools.r8.naming.ClassNameMapper):179:179 -> a
    29:33:java.lang.String descriptorToJavaType(java.lang.String,com.android.tools.r8.naming.ClassNameMapper):172:176 -> a
    34:40:java.lang.String computeInnerClassSeparator(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):314:320 -> a
    41:41:java.lang.String computeInnerClassSeparator(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):319:319 -> a
    42:42:java.lang.String computeInnerClassSeparator(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):317:317 -> a
    43:50:java.lang.String computeInnerClassSeparator(java.lang.String,java.lang.String,java.lang.String):325:332 -> a
    51:54:java.lang.String computeInnerClassSeparator(java.lang.String,java.lang.String,java.lang.String):331:334 -> a
    55:59:java.lang.String guessTypeDescriptor(java.nio.file.Path):406:410 -> a
    60:60:java.lang.String getPathFromJavaType(java.lang.Class):440:440 -> a
    1:1:java.lang.String descriptorToJavaType(java.lang.String):140:140 -> b
    1:1:java.lang.String getBinaryNameFromJavaType(java.lang.String):282:282 -> c
    1:3:java.lang.String getClassBinaryNameFromDescriptor(java.lang.String):260:262 -> d
    1:2:java.lang.String getClassNameFromDescriptor(java.lang.String):228:229 -> e
    1:2:java.lang.String getDescriptorFromClassBinaryName(java.lang.String):292:293 -> f
    1:1:java.lang.String getPackageBinaryNameFromJavaType(java.lang.String):272:272 -> g
    1:3:java.lang.String getPackageNameFromBinaryName(java.lang.String):384:386 -> h
    1:1:java.lang.String getPackageNameFromDescriptor(java.lang.String):250:250 -> i
    1:3:java.lang.String getPathFromDescriptor(java.lang.String):434:436 -> j
    1:2:java.lang.String getPathFromJavaType(java.lang.String):444:445 -> k
    1:1:java.lang.String getUnqualifiedClassNameFromDescriptor(java.lang.String):218:218 -> l
    2:3:java.lang.String getUnqualifiedClassNameFromBinaryName(java.lang.String):308:309 -> l
    2:3:java.lang.String getUnqualifiedClassNameFromDescriptor(java.lang.String):218 -> l
    1:8:java.lang.String guessTypeDescriptor(java.lang.String):422:429 -> m
    9:9:java.lang.String guessTypeDescriptor(java.lang.String):427:427 -> m
    10:10:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> m
    10:10:java.lang.String guessTypeDescriptor(java.lang.String):427 -> m
    11:11:java.lang.String guessTypeDescriptor(java.lang.String):427:427 -> m
    1:26:boolean isClassDescriptor(java.lang.String):341:366 -> n
    1:6:boolean isValidJavaType(java.lang.String):104:109 -> o
    1:2:java.lang.String javaTypeToDescriptor(java.lang.String):65:66 -> p
    1:2:java.lang.String javaTypeToDescriptorIfValidJavaType(java.lang.String):91:92 -> q
    1:2:java.lang.String javaTypeToDescriptorIgnorePrimitives(java.lang.String):80:81 -> r
    1:1:java.lang.String javaTypeToShorty(java.lang.String):130:130 -> s
com.android.tools.r8.utils.DexVersion -> com.android.tools.r8.utils.F:
    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:2:boolean matchesApiLevel(com.android.tools.r8.utils.AndroidApiLevel):36:36 -> a
    3:3:java.util.Optional getDexVersion(char,char,char):98:98 -> a
    4:4:java.util.Optional getDexVersion(char,char,char):96:96 -> a
    1:1:int getIntValue():28:28 -> b
    2:37:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):40:75 -> b
    38:38:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):73:73 -> b
    39:39:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):49:49 -> b
    40:40:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):46:46 -> b
    41:41:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):43:43 -> b
    42:42:java.util.Optional getDexVersion(int):90:90 -> b
    43:43:java.util.Optional getDexVersion(int):88:88 -> b
    44:44:java.util.Optional getDexVersion(int):86:86 -> b
    45:45:java.util.Optional getDexVersion(int):84:84 -> b
    46:46:java.util.Optional getDexVersion(int):82:82 -> b
com.android.tools.r8.utils.DiagnosticWithThrowable -> com.android.tools.r8.utils.G:
    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.H:
    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:8:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):49:51 -> a
    9:15:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):49: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.I:
    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:3:java.lang.Object makeSet(java.lang.Object):27:29 -> e
    1:1:java.util.Set lambda$collectSets$0(java.lang.Object):143:143 -> f
    1:12:java.lang.String toString():150:161 -> toString
com.android.tools.r8.utils.EncodedValueUtils -> com.android.tools.r8.utils.J:
    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.K:
    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):71:73 -> 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):71:73 -> 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):71:73 -> 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):71:73 -> 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.K$a:
com.android.tools.r8.utils.ExceptionUtils$MainAction -> com.android.tools.r8.utils.K$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
    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:6:java.util.List getNonClassFiles(java.lang.String,com.android.tools.r8.DiagnosticsHandler):129:134 -> b
    7:14:java.util.List getNonClassFiles(java.lang.String,com.android.tools.r8.DiagnosticsHandler):129: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.L:
    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.M:
    boolean isAndroid -> a
    boolean $assertionsDisabled -> b
    1:14:void <clinit>():21:34 -> <clinit>
    1:5:boolean isArchive(java.nio.file.Path):76:80 -> a
    6:6:java.lang.String readTextFile(java.nio.file.Path,java.nio.charset.Charset):84:84 -> a
    7:7:void writeTextFile(java.nio.file.Path,java.util.List):92:92 -> a
    8:8:void writeTextFile(java.nio.file.Path,java.lang.String[]):96:96 -> a
    9:11:java.nio.file.Path validateOutputFile(java.nio.file.Path,com.android.tools.r8.utils.Reporter):101:103 -> a
    12:12:void writeToFile(java.nio.file.Path,java.io.OutputStream,byte[]):165:165 -> a
    13:14:void writeToFile(java.nio.file.Path,java.io.OutputStream,com.android.tools.r8.ByteDataView):170:171 -> 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[]):129:133 -> a
    15:19:void writeToFile(java.nio.file.Path,java.io.OutputStream,com.android.tools.r8.ByteDataView):172 -> a
    20:21:void writeToFile(java.nio.file.Path,java.io.OutputStream,com.android.tools.r8.ByteDataView):179:180 -> a
    22:32:void writeToFile(java.nio.file.Path,java.io.OutputStream,com.android.tools.r8.ByteDataView):170:180 -> a
    33:38:java.lang.String withNativeFileSeparators(java.lang.String):184:189 -> a
    39:52:java.util.zip.ZipFile createZipFile(java.io.File,java.nio.charset.Charset):194:207 -> a
    1:6:boolean isClassFile(java.nio.file.Path):47:52 -> b
    1:17:boolean isClassesDexFile(java.nio.file.Path):139:155 -> c
    1:2:boolean isDexFile(java.nio.file.Path):37:38 -> d
    1:2:boolean isJarFile(java.nio.file.Path):56:57 -> e
    1:2:boolean isVDexFile(java.nio.file.Path):42:43 -> f
    1:2:boolean isZipFile(java.nio.file.Path):61:62 -> g
    1:1:java.util.List readAllLines(java.nio.file.Path):88:88 -> h
com.android.tools.r8.utils.FilteredArchiveClassFileProvider -> com.android.tools.r8.utils.N:
    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.O:
    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.IROrdering -> com.android.tools.r8.utils.P:
    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.P$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.P$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.Q:
    void accept(int,java.lang.Object) -> a
com.android.tools.r8.utils.InternalArchiveClassFileProvider -> com.android.tools.r8.utils.S:
    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.T:
    boolean invalidDebugInfoFatal -> f0
    boolean passthroughDexCode -> i
    com.android.tools.r8.StringConsumer usageInformationConsumer -> W0
    java.lang.String printCfgFile -> E0
    com.android.tools.r8.features.FeatureSplitConfiguration featureSplitConfiguration -> f
    boolean enableRedundantFieldLoadElimination -> X
    boolean enableArgumentRemoval -> q
    com.android.tools.r8.dex.Marker marker -> i0
    boolean enableInliningOfInvokesWithNullableReceivers -> y
    boolean enableNameReflectionOptimization -> G
    boolean minimalMainDex -> N0
    boolean printMemory -> h
    java.util.Set neverMergePrefixes -> k
    boolean skipIR -> J0
    boolean enableTreeShakingOfLibraryMethodOverrides -> I
    boolean enableNeverMergePrefixes -> j
    boolean enableMainDexListCheck -> A0
    boolean enableUnusedArgumentRemoval -> r
    com.android.tools.r8.utils.OffOrAuto tryWithResourcesDesugaring -> x0
    boolean lookupLibraryBeforeProgram -> z0
    boolean enableNestReduction -> v0
    boolean enableValuePropagation -> Y
    boolean disableInliningOfLibraryMethodOverrides -> z
    boolean enableDesugaring -> r0
    boolean enableStringConcatenationOptimization -> H
    boolean intermediate -> n0
    boolean enableHorizontalClassMerging -> o
    int callGraphCycleEliminatorMaxDepthThreshold -> M
    boolean ignoreMainDexMissingClasses -> g0
    boolean useSmaliSyntax -> c0
    com.android.tools.r8.experimental.graphinfo.GraphConsumer keptGraphConsumer -> b1
    boolean applyInliningToInlinee -> w
    com.android.tools.r8.StringConsumer proguardSeedsConsumer -> X0
    com.android.tools.r8.StringConsumer desugaredLibraryKeepRuleConsumer -> a1
    com.android.tools.r8.utils.InternalOptions$AssertionProcessing assertionProcessing -> H0
    boolean enableDeterminismAnalysis -> E
    boolean enableInheritanceClassInDexDistributor -> O0
    com.android.tools.r8.ProgramConsumer programConsumer -> d
    boolean debug -> K0
    int callGraphLikelySpuriousCallEdgeThreshold -> N
    boolean ignoreMissingClasses -> F0
    boolean enableVerticalClassMerging -> p
    boolean enableTreeShaking -> B0
    boolean enableInitializedClassesInInstanceMethodsAnalysis -> W
    com.android.tools.r8.utils.OffOrAuto interfaceMethodDesugaring -> w0
    com.android.tools.r8.graph.DexItemFactory itemFactory -> a
    java.util.List logArgumentsFilter -> p0
    java.util.Map warningInvalidDebugInfo -> S0
    int applyInliningToInlineeMaxDepth -> x
    boolean enableGeneratedExtensionRegistryShrinking -> s0
    java.util.List methodsFilter -> l0
    boolean enableServiceLoaderRewriting -> F
    boolean printTimes -> g
    boolean readCompileTimeAnnotations -> o0
    com.android.tools.r8.DataResourceConsumer dataResourceConsumer -> e
    boolean enableDynamicTypeOptimization -> m
    boolean verbose -> d0
    int classInliningInstructionLimit -> O
    java.util.function.BiPredicate dexClassChecksumFilter -> L
    int SUPPORTED_DEX_VERSION -> g1
    com.android.tools.r8.StringConsumer mainDexListConsumer -> U0
    boolean enableNonNullTracking -> u
    com.android.tools.r8.experimental.graphinfo.GraphConsumer mainDexKeptGraphConsumer -> c1
    com.android.tools.r8.StringConsumer configurationConsumer -> Y0
    com.android.tools.r8.utils.InternalOptions$TestingOptions testing -> L0
    com.android.tools.r8.utils.Reporter reporter -> c
    boolean enableStringSwitchConversion -> T
    java.util.Set extensiveInterfaceMethodMinifierLoggingFilter -> k0
    boolean skipReadingDexCode -> T0
    boolean enableInitializedClassesAnalysis -> C
    int inliningInstructionLimit -> P
    boolean enableFieldBitAccessAnalysis -> n
    int numberOfThreads -> b0
    boolean $assertionsDisabled -> h1
    boolean forceProguardCompatibility -> G0
    boolean enableMinification -> C0
    boolean enableEnumValueOptimization -> U
    boolean enableInlining -> v
    boolean enableGeneratedMessageLiteShrinking -> t0
    java.util.Map warningInvalidParameterAnnotations -> R0
    boolean hasMarker -> h0
    boolean enableSideEffectAnalysis -> D
    int inliningInstructionAllowance -> Q
    boolean quiet -> e0
    boolean enableCallSiteOptimizationInfoPropagation -> J
    boolean enableRedundantConstNumberOptimization -> a0
    com.android.tools.r8.StringConsumer proguardMapConsumer -> V0
    boolean enableUnusedInterfaceRemoval -> s
    java.util.Set extensiveLoggingFilter -> j0
    boolean enableUninstantiatedTypeOptimization -> Z
    java.util.List mainDexKeepRules -> M0
    boolean enableClassInlining -> A
    int inliningMonitorEnterValuesAllowance -> R
    boolean configurationDebugging -> I0
    java.util.function.Consumer syntheticProguardRulesConsumer -> e1
    boolean printCfg -> D0
    com.android.tools.r8.shaking.ProguardConfiguration proguardConfiguration -> b
    com.android.tools.r8.utils.InternalOptions$LineNumberOptimization lineNumberOptimization -> P0
    boolean encodeChecksums -> K
    boolean libraryInterfacesMayHaveStaticInitialization -> l
    com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration desugaredLibraryConfiguration -> Z0
    com.android.tools.r8.utils.InternalOptions$OutlineOptions outline -> V
    boolean processCovariantReturnTypeAnnotations -> y0
    com.android.tools.r8.DesugarGraphConsumer desugarGraphConsumer -> d1
    boolean enableDevirtualization -> t
    int minApiLevel -> m0
    boolean enableNestBasedAccessDesugaring -> u0
    java.util.Map missingEnclosingMembers -> Q0
    boolean enableLambdaMerging -> q0
    java.util.Set reportedMissingForDesugaring -> f1
    boolean enableClassStaticizer -> B
    int inliningControlFlowResolutionBlocksThreshold -> S
    1:23:void <clinit>():66:88 -> <clinit>
    1:1:void <init>():112:112 -> <init>
    2:525:void <init>():106:629 -> <init>
    526:530:void <init>():113:117 -> <init>
    531:531:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):121:121 -> <init>
    532:1055:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):106:629 -> <init>
    1056:1063:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):122:129 -> <init>
    1064:1064:void <init>(com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):133:133 -> <init>
    1065:1588:void <init>(com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):106:629 -> <init>
    1589:1600:void <init>(com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):134:145 -> <init>
    1:1:boolean hasProguardConfiguration():95:95 -> A
    1:1:boolean hasUsageInformationConsumer():586:586 -> B
    1:1:boolean isDesugaredLibraryCompilation():314:314 -> C
    1:1:boolean isGeneratingClassFiles():335:335 -> D
    1:1:boolean isGeneratingDexIndexed():327:327 -> E
    1:1:boolean isGeneratingDex():323 -> E
    2:2:boolean isGeneratingDexFilePerClassFile():331:331 -> E
    2:2:boolean isGeneratingDex():323 -> E
    1:1:boolean hasConsumer():298:298 -> F
    1:1:boolean isInterfaceMethodDesugaringEnabled():1072 -> F
    2:4:boolean isInterfaceMethodDesugaringEnabled():1075:1077 -> F
    1:1:boolean isMinifying():430:430 -> G
    1:1:boolean isProtoShrinkingEnabled():1085:1085 -> H
    1:1:boolean isShrinking():426:426 -> I
    1:1:boolean isStringSwitchConversionEnabled():1081:1081 -> J
    1:32:boolean printWarnings():804:835 -> K
    33:72:boolean printWarnings():831:870 -> K
    1:4:boolean shouldDesugarNests():370:373 -> L
    5:5:boolean isGeneratingClassFiles():335:335 -> L
    5:5:boolean canUseNestBasedAccess():1055 -> L
    5:5:boolean shouldDesugarNests():373 -> L
    1:13:void signalFinishedToConsumers():351:363 -> M
    1:1:boolean assertionsEnabled():624:624 -> N
    1:9:java.util.Set getExtensiveInterfaceMethodMinifierLoggingFilter():491:499 -> O
    1:9:java.util.Set getExtensiveLoggingFilter():465:473 -> P
    1:1:boolean shouldEnableKeepRuleSynthesisForRecompilation():461:461 -> Q
    boolean lambda$new$0(java.lang.String,java.lang.Long) -> a
    1:2:void setMarker(com.android.tools.r8.dex.Marker):268:269 -> a
    3:4:com.android.tools.r8.dex.Marker getMarker(com.android.tools.r8.dex.Marker$Tool):273:274 -> a
    5:11:com.android.tools.r8.dex.Marker createMarker(com.android.tools.r8.dex.Marker$Tool):281:287 -> a
    5:11:com.android.tools.r8.dex.Marker getMarker(com.android.tools.r8.dex.Marker$Tool):276 -> a
    12:12:boolean isGeneratingClassFiles():335:335 -> a
    12:12:com.android.tools.r8.dex.Marker createMarker(com.android.tools.r8.dex.Marker$Tool):288 -> a
    12:12:com.android.tools.r8.dex.Marker getMarker(com.android.tools.r8.dex.Marker$Tool):276 -> a
    13:16:com.android.tools.r8.dex.Marker createMarker(com.android.tools.r8.dex.Marker$Tool):289:292 -> a
    13:16:com.android.tools.r8.dex.Marker getMarker(com.android.tools.r8.dex.Marker$Tool):276 -> a
    17:17:void errorMissingClassMissingNestHost(com.android.tools.r8.graph.DexClass):632:632 -> a
    18:18:void errorMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):654:654 -> a
    19:25: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):748:754 -> a
    26:26: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):749:749 -> a
    27:28:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):761:762 -> a
    29:29:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():667:667 -> a
    29:29:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):764 -> a
    30:32:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):764:766 -> a
    33:33:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():671:671 -> a
    33:33:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):767 -> a
    34:34:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):767:767 -> a
    35:35:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():671:671 -> a
    35:35:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):770 -> a
    36:36:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):770:770 -> a
    37:37:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):762:762 -> a
    38:41:void warningMissingEnclosingMember(com.android.tools.r8.graph.DexType,com.android.tools.r8.origin.Origin,int):775:778 -> a
    42:46:void warningInvalidParameterAnnotations(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,int,int):783:787 -> a
    47:53:void warningInvalidDebugInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.errors.InvalidDebugInfoException):792:798 -> a
    54:54:void warningInvalidDebugInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.errors.InvalidDebugInfoException):793:793 -> a
    55:55:java.util.List lambda$warningInvalidDebugInfo$3(com.android.tools.r8.origin.Origin):797:797 -> a
    56:61:boolean methodMatchesFilter(com.android.tools.r8.graph.DexEncodedMethod):884:889 -> a
    62:63:boolean hasMinApi(com.android.tools.r8.utils.AndroidApiLevel):1026:1027 -> a
    64:64:boolean canHaveArtCheckCastVerifierBug():1406:1406 -> a
    1:4:void nestDesugaringWarningMissingNestHost(com.android.tools.r8.graph.DexClass):643:646 -> b
    5:5:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():667:667 -> b
    5:5:void nestDesugaringWarningMissingNestHost(com.android.tools.r8.graph.DexClass):648 -> b
    6:8:void nestDesugaringWarningMissingNestHost(com.android.tools.r8.graph.DexClass):648:650 -> b
    9:9:void nestDesugaringWarningMissingNestHost(com.android.tools.r8.graph.DexClass):646:646 -> b
    10:10:void errorMissingClassMissingNestHost(com.android.tools.r8.graph.DexClass):632:632 -> b
    10:10:void nestDesugaringWarningMissingNestHost(com.android.tools.r8.graph.DexClass):644 -> b
    11:11:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):670:670 -> b
    12:12:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> b
    12:12:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):671 -> b
    13:15:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):672:674 -> b
    16:16:void errorMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):654:654 -> b
    16:16:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):675 -> b
    17:18:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):679:680 -> b
    19:19:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():667:667 -> b
    19:19:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):682 -> b
    20:20:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):682:682 -> b
    21:21:java.lang.String messageWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):742:742 -> b
    21:21:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):684 -> b
    22:22:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):684:684 -> b
    23:23:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):680:680 -> b
    24:24:java.util.List lambda$warningInvalidParameterAnnotations$2(com.android.tools.r8.origin.Origin):786:786 -> b
    25:26:boolean canHaveArtInstanceOfVerifierBug():1361:1362 -> b
    1:4:void warningMissingClassMissingNestHost(com.android.tools.r8.graph.DexClass):636:639 -> c
    5:5:void errorMissingClassMissingNestHost(com.android.tools.r8.graph.DexClass):632:632 -> c
    5:5:void warningMissingClassMissingNestHost(com.android.tools.r8.graph.DexClass):637 -> c
    6:6:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):658:658 -> c
    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> c
    7:7:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):659 -> c
    8:8:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):660:660 -> c
    9:9:void errorMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):654:654 -> c
    9:9:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):661 -> c
    10:10:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):665:665 -> c
    11:11:java.lang.String messageWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):742:742 -> c
    11:11:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):665 -> c
    12:12:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):665:665 -> c
    13:13:java.util.List lambda$warningMissingEnclosingMember$1(com.android.tools.r8.origin.Origin):777:777 -> c
    14:14:boolean canHaveDalvikAbstractMethodOnNonAbstractClassVerificationBug():1438:1438 -> c
    1:1:boolean isGeneratingClassFiles():335:335 -> d
    1:1:boolean canHaveDalvikIntUsedAsNonIntPrimitiveTypeBug():1452 -> d
    2:2:boolean canHaveDalvikIntUsedAsNonIntPrimitiveTypeBug():1452:1452 -> d
    3:5:java.lang.String messageErrorMissingNestHost(com.android.tools.r8.graph.DexClass):688:690 -> d
    6:11:java.lang.String messageErrorIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):704:709 -> d
    12:12:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):168:168 -> d
    12:12:java.lang.String messageErrorIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):709 -> d
    13:40:java.lang.String messageErrorIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):711:738 -> d
    1:1:boolean isGeneratingClassFiles():335:335 -> e
    1:1:boolean canInitCauseAfterAssertionErrorObjectConstructor():1108 -> e
    2:2:boolean canInitCauseAfterAssertionErrorObjectConstructor():1108:1108 -> e
    3:5:java.lang.String messageWarningMissingNestHost(com.android.tools.r8.graph.DexClass):697:699 -> e
    1:1:boolean isGeneratingClassFiles():335:335 -> f
    1:1:boolean canLeaveStaticInterfaceMethodInvokes():1059 -> f
    2:2:boolean canLeaveStaticInterfaceMethodInvokes():1059:1059 -> f
    1:1:boolean isGeneratingClassFiles():335:335 -> g
    1:1:boolean canUseAssertionErrorTwoArgumentConstructor():1098 -> g
    2:2:boolean canUseAssertionErrorTwoArgumentConstructor():1098:1098 -> g
    1:1:boolean isGeneratingClassFiles():335:335 -> h
    1:1:boolean canUseConstantMethodHandle():1039 -> h
    2:2:boolean canUseConstantMethodHandle():1039:1039 -> h
    1:1:boolean isGeneratingClassFiles():335:335 -> i
    1:1:boolean canUseConstantMethodType():1043 -> i
    2:2:boolean canUseConstantMethodType():1043:1043 -> i
    1:1:boolean isGeneratingClassFiles():335:335 -> j
    1:1:boolean canUseDefaultAndStaticInterfaceMethods():1051 -> j
    2:2:boolean canUseDefaultAndStaticInterfaceMethods():1051:1051 -> j
    1:2:boolean canUseFilledNewArrayOfObjects():1120:1121 -> k
    1:1:boolean isGeneratingClassFiles():335:335 -> l
    1:1:boolean canUseInvokeCustom():1047 -> l
    2:2:boolean canUseInvokeCustom():1047:1047 -> l
    1:1:boolean isGeneratingClassFiles():335:335 -> m
    1:1:boolean canUseInvokePolymorphic():1035 -> m
    2:2:boolean canUseInvokePolymorphic():1035:1035 -> m
    1:1:boolean isGeneratingClassFiles():335:335 -> n
    1:1:boolean canUseInvokePolymorphicOnVarHandle():1031 -> n
    2:2:boolean canUseInvokePolymorphicOnVarHandle():1031:1031 -> n
    1:2:boolean canUseMultidex():1089:1090 -> o
    1:1:boolean isGeneratingClassFiles():335:335 -> p
    1:1:boolean canUseNotInstruction():1156 -> p
    2:2:boolean canUseNotInstruction():1156:1156 -> p
    1:1:boolean isGeneratingClassFiles():335:335 -> q
    1:1:boolean canUsePrivateInterfaceMethods():1067 -> q
    2:2:boolean canUsePrivateInterfaceMethods():1067:1067 -> q
    1:2:boolean canUseSameArrayAndResultRegisterInArrayGetWide():1129:1130 -> r
    1:1:boolean isGeneratingClassFiles():335:335 -> s
    1:1:boolean canUseSuppressedExceptions():1094 -> s
    2:2:boolean canUseSuppressedExceptions():1094:1094 -> s
    1:1:boolean isGeneratingClassFiles():335:335 -> t
    1:1:boolean canUseTwrCloseResourceMethod():1063 -> t
    2:2:boolean canUseTwrCloseResourceMethod():1063:1063 -> t
    1:4:void disableAllOptimizations():149:152 -> u
    1:17:void disableGlobalOptimizations():156:172 -> v
    1:1:void disableNameReflectionOptimization():1022:1022 -> w
    1:1:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():302:302 -> x
    2:2:boolean hasConsumer():298:298 -> x
    2:2:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():302 -> x
    3:3:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():302:302 -> x
    4:4:boolean isGeneratingDexIndexed():327:327 -> x
    4:4:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():303 -> x
    5:5:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():304:304 -> x
    6:6:boolean isGeneratingDexFilePerClassFile():331:331 -> x
    6:6:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():305 -> x
    7:7:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():306:306 -> x
    8:8:boolean isGeneratingClassFiles():335:335 -> x
    8:8:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():307 -> x
    9:11:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():308:310 -> x
    1:1:com.android.tools.r8.shaking.ProguardConfiguration getProguardConfiguration():99:99 -> y
    1:1:boolean hasMethodsFilter():879:879 -> z
com.android.tools.r8.utils.InternalOptions$AssertionProcessing -> com.android.tools.r8.utils.T$a:
    com.android.tools.r8.utils.InternalOptions$AssertionProcessing LEAVE -> a
    com.android.tools.r8.utils.InternalOptions$AssertionProcessing REMOVE -> b
    com.android.tools.r8.utils.InternalOptions$AssertionProcessing ENABLE -> c
    1:5:void <clinit>():79:83 -> <clinit>
    1:1:void <init>(java.lang.String,int):77:77 -> <init>
com.android.tools.r8.utils.InternalOptions$InvalidParameterAnnotationInfo -> com.android.tools.r8.utils.T$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):543:546 -> <init>
com.android.tools.r8.utils.InternalOptions$LineNumberOptimization -> com.android.tools.r8.utils.T$c:
    com.android.tools.r8.utils.InternalOptions$LineNumberOptimization ON -> b
    com.android.tools.r8.utils.InternalOptions$LineNumberOptimization OFF -> a
    1:2:void <clinit>():73:74 -> <clinit>
    1:1:void <init>(java.lang.String,int):72:72 -> <init>
com.android.tools.r8.utils.InternalOptions$OutlineOptions -> com.android.tools.r8.utils.T$d:
    int threshold -> d
    boolean enabled -> a
    int minSize -> b
    int maxSize -> c
    1:9:void <init>():911:919 -> <init>
com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode -> com.android.tools.r8.utils.T$e:
    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>():904:908 -> <clinit>
    6:6:void <clinit>():902:902 -> <clinit>
    1:1:void <init>(java.lang.String,int):902:902 -> <init>
    1:1:com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode[] values():902:902 -> a
com.android.tools.r8.utils.InternalOptions$TestingOptions -> com.android.tools.r8.utils.T$f:
    boolean invertConditionals -> m
    boolean dontCreateMarkerInD8 -> o
    boolean enableDeadSwitchCaseElimination -> i
    com.android.tools.r8.utils.InternalOptions$TestingOptions$ProguardIfRuleEvaluationData proguardIfRuleEvaluationData -> J
    boolean forceRedundantConstNumberRemoval -> k
    boolean disallowLoadStoreOptimization -> u
    java.util.function.Consumer irModifier -> w
    boolean nondeterministicCycleElimination -> q
    com.android.tools.r8.utils.IROrdering irOrdering -> b
    boolean noLocalsTableOnInput -> s
    int basicBlockMuncherIterationLimit -> y
    boolean verifyKeptGraphInfo -> E
    boolean allowUnusedProguardConfigurationRules -> f
    boolean allowOutlinerInterfaceArrayArguments -> G
    boolean alwaysUsePessimisticRegisterAllocation -> h
    boolean deterministicSortingBasedOnDexType -> A
    boolean trackDesugaredAPIConversions -> C
    boolean allowTypeErrors -> d
    boolean placeExceptionalBlocksLast -> n
    boolean forceJumboStringProcessing -> p
    com.android.tools.r8.utils.InternalOptions$TestingOptions$MinifierTestingOptions minifier -> H
    boolean measureProguardIfRuleEvaluations -> I
    boolean enableSwitchToIfRewriting -> j
    boolean forceAssumeNoneInsertion -> l
    boolean enableNarrowingChecksInD8 -> v
    boolean enableStatefulLambdaCreateInstanceMethod -> x
    boolean forceNameReflectionOptimization -> t
    byte[] forceDexVersionBytes -> a
    boolean dontReportFailingCheckDiscarded -> z
    boolean disableL8AnnotationRemoval -> e
    boolean readInputStackMaps -> F
    boolean reportUnusedProguardConfigurationRules -> g
    java.util.Set validInliningReasons -> r
    boolean addCallEdgesForLibraryInvokes -> c
    java.io.PrintStream whyAreYouNotInliningConsumer -> B
    boolean enableForceNestBasedAccessDesugaringForTest -> D
    1:87:void <init>():922:1008 -> <init>
com.android.tools.r8.utils.InternalOptions$TestingOptions$MinifierTestingOptions -> com.android.tools.r8.utils.T$f$a:
    java.util.Comparator interfaceMethodOrdering -> a
    1:3:void <init>():994:996 -> <init>
    1:2:java.util.Comparator getInterfaceMethodOrderingOrDefault(java.util.Comparator):1000:1001 -> 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):1001:1001 -> a
com.android.tools.r8.utils.InternalOptions$TestingOptions$ProguardIfRuleEvaluationData -> com.android.tools.r8.utils.T$f$b:
    int numberOfProguardIfRuleMemberEvaluations -> b
    int numberOfProguardIfRuleClassEvaluations -> a
    1:4:void <init>():1011:1014 -> <init>
com.android.tools.r8.utils.InternalOptions$TypeVersionPair -> com.android.tools.r8.utils.T$g:
    com.android.tools.r8.graph.DexType type -> b
    int version -> a
    1:3:void <init>(int,com.android.tools.r8.graph.DexType):555:557 -> <init>
com.android.tools.r8.utils.InternalOutputMode -> com.android.tools.r8.utils.U:
    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.IteratorUtils -> com.android.tools.r8.utils.W:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():17:17 -> <clinit>
    1:1:java.util.Iterator filter(java.util.Iterator,java.util.function.Predicate):20:20 -> a
    2:5:java.lang.Object peekNext(java.util.ListIterator):60:63 -> a
    6:18:boolean anyRemainingMatch(java.util.ListIterator,java.util.function.Predicate):103:115 -> a
    1:3:java.lang.Object peekPrevious(java.util.ListIterator):53:55 -> b
    4:7:void removeIf(java.util.Iterator,java.util.function.Predicate):80:83 -> b
com.android.tools.r8.utils.IteratorUtils$1 -> com.android.tools.r8.utils.V:
    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):20:22 -> <init>
    1:3:java.lang.Object advance():26:28 -> f
    1:1:boolean hasNext():37:37 -> hasNext
    1:5:java.lang.Object next():42:46 -> next
    6:6:java.lang.Object next():44:44 -> next
com.android.tools.r8.utils.LRUCacheTable -> com.android.tools.r8.utils.Y:
    int columnCapacity -> b
    int rowCapacity -> a
    1:3:void <init>(int,int,float):31:33 -> <init>
    1:1:com.android.tools.r8.utils.LRUCacheTable create(int,int):37:37 -> a
    2:2:java.util.Map lambda$put$0(java.lang.Object):46:46 -> a
    3:4:java.lang.Object put(java.lang.Object,java.lang.Object,java.lang.Object):46:47 -> a
    1:1:boolean removeEldestEntry(java.util.Map$Entry):42:42 -> removeEldestEntry
com.android.tools.r8.utils.LRUCacheTable$LRUCacheRow -> com.android.tools.r8.utils.X:
    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.Z:
    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.a0:
    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.h0:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():54:54 -> <clinit>
    1:10:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):167:176 -> a
    11:11:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():671:671 -> a
    11:11:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):177 -> a
    12:14:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):177:179 -> a
    15:17:void addClassToClassNaming(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,java.util.function.Supplier):343:345 -> 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.naming.NamingLens):187 -> a
    18:44:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):190:216 -> a
    45:147:void optimizeDexCodePositions(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List,boolean):430:532 -> a
    45:147:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):217 -> a
    148:148:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):219:219 -> a
    149:180:void optimizeCfCodePositions(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List,com.android.tools.r8.graph.AppView):541:572 -> a
    149:180:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):220 -> a
    181:181:void optimizeCfCodePositions(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List,com.android.tools.r8.graph.AppView):565:565 -> a
    181:181:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):220 -> a
    182:213:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):224:255 -> a
    214:214:void com.android.tools.r8.naming.MemberNaming.<init>(com.android.tools.r8.naming.MemberNaming$Signature,java.lang.String):61:61 -> 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.naming.NamingLens):255 -> a
    215:243:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):256:284 -> a
    244:254:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):282:292 -> a
    255:267:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):289:301 -> a
    268:269: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):182:183 -> a
    270:270: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):181:181 -> a
    271:272: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):247:248 -> a
    273:273: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):251:251 -> a
    274:274:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():671:671 -> a
    274:274: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):252 -> a
    275:275: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):251:251 -> a
    276:289:int getMethodStartLine(com.android.tools.r8.graph.DexEncodedMethod):305:318 -> a
    290:290:void sortMethods(java.util.List):327:327 -> a
    291:292:int lambda$sortMethods$3(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):329:330 -> a
    293:293:int com.android.tools.r8.graph.DexEncodedMethod.slowCompare(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):1095:1095 -> a
    293:293:int lambda$sortMethods$3(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):333 -> a
    294:294:void addFieldsToClassNaming(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass,java.util.function.Supplier):354:354 -> a
    295:301: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):356:362 -> a
    302:302:void com.android.tools.r8.naming.MemberNaming.<init>(com.android.tools.r8.naming.MemberNaming$Signature,java.lang.String):61:61 -> a
    302:302: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):362 -> a
    303:303: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):363:363 -> a
    304:311:java.util.IdentityHashMap groupMethodsByRenamedName(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass):370:377 -> a
    312:319:boolean doesContainPositions(com.android.tools.r8.graph.DexEncodedMethod):388:395 -> a
    312:319:java.util.IdentityHashMap groupMethodsByRenamedName(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass):378 -> a
    320:322:java.util.IdentityHashMap groupMethodsByRenamedName(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass):379:381 -> a
    323:323:java.util.List lambda$groupMethodsByRenamedName$5(com.android.tools.r8.graph.DexString):380:380 -> a
    324:329:boolean doesContainPositions(com.android.tools.r8.graph.DexCode):401:406 -> a
    330:332:boolean doesContainPositions(com.android.tools.r8.graph.CfCode):414:416 -> a
com.android.tools.r8.utils.LineNumberOptimizer$1 -> com.android.tools.r8.utils.b0:
    com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper val$positionRemapper -> i
    com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter val$positionEventEmitter -> h
    boolean $assertionsDisabled -> l
    java.util.List val$mappedPositions -> j
    int emittedPc -> g
    java.util.List val$processedEvents -> k
    1:1:void <clinit>():439:439 -> <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,java.util.List):439:442 -> <init>
    1:8:void visit(com.android.tools.r8.graph.DexDebugEvent$Default):455:462 -> a
    9:18:void visit(com.android.tools.r8.graph.DexDebugEvent$Default):458:467 -> a
    19:26:void visit(com.android.tools.r8.graph.DexDebugEvent$Default):463:470 -> a
    27:27:void visit(com.android.tools.r8.graph.DexDebugEvent$SetFile):479:479 -> a
    28:28:void visit(com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd):484:484 -> a
    29:29:void visit(com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin):489:489 -> a
    30:31:void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal):496:497 -> a
    32:33:void visit(com.android.tools.r8.graph.DexDebugEvent$EndLocal):502:503 -> a
    34:35:void visit(com.android.tools.r8.graph.DexDebugEvent$RestartLocal):508:509 -> a
    1:3:void flushPc():446:448 -> f
com.android.tools.r8.utils.LineNumberOptimizer$IdentityPositionRemapper -> com.android.tools.r8.utils.c0:
    1:1:void <init>():63:63 -> <init>
    2:2:void <init>(com.android.tools.r8.utils.LineNumberOptimizer$1):63:63 -> <init>
    1:1:com.android.tools.r8.ir.code.Position createRemappedPosition(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):67:67 -> a
com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition -> com.android.tools.r8.utils.d0:
    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):148:148 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.ir.code.Position,int):155:159 -> <init>
    1:1:com.android.tools.r8.graph.DexMethod access$100(com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition):148:148 -> a
    1:1:int access$200(com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition):148:148 -> b
    1:1:int access$300(com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition):148:148 -> c
    1:1:com.android.tools.r8.ir.code.Position access$400(com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition):148:148 -> d
com.android.tools.r8.utils.LineNumberOptimizer$OptimizingPositionRemapper -> com.android.tools.r8.utils.e0:
    boolean $assertionsDisabled -> e
    int nextOptimizedLineNumber -> d
    com.android.tools.r8.graph.DexMethod previousMethod -> b
    int previousSourceLine -> c
    int maxLineDelta -> a
    1:1:void <clinit>():71:71 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions):77:77 -> <init>
    2:10:void <init>(com.android.tools.r8.utils.InternalOptions):73:81 -> <init>
    1:12:com.android.tools.r8.ir.code.Position createRemappedPosition(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):87:98 -> a
com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter -> com.android.tools.r8.utils.f0:
    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>():105:105 -> <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):105:105 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod,java.util.List):114:114 -> <init>
    3:13:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod,java.util.List):107:117 -> <init>
    1:2:void emitAdvancePc(int):121:122 -> a
    1:2:void access$600(com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter,int):105 -> a
    3:15:void emitPositionEvents(int,com.android.tools.r8.ir.code.Position):126:138 -> a
    3:15:void access$800(com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter,int,com.android.tools.r8.ir.code.Position):105 -> a
    16:17:int getStartLine():142:143 -> a
    16:17:int access$900(com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter):105 -> a
com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper -> com.android.tools.r8.utils.g0:
    com.android.tools.r8.ir.code.Position createRemappedPosition(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position) -> a
com.android.tools.r8.utils.ListUtils -> com.android.tools.r8.utils.i0:
    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.j0:
    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.k0:
    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.l0:
    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:3:int doHash(com.android.tools.r8.graph.DexMethod):47:48 -> doHash
    2:3:int doHash(java.lang.Object):15 -> doHash
    4:4:int com.android.tools.r8.graph.DexTypeList.hashCode():33:33 -> doHash
    4:4:int doHash(com.android.tools.r8.graph.DexMethod):48 -> doHash
    4:4:int doHash(java.lang.Object):15 -> doHash
    5:5:int doHash(com.android.tools.r8.graph.DexMethod):50:50 -> doHash
    5:5:int doHash(java.lang.Object):15 -> doHash
    6:6:int com.android.tools.r8.graph.DexTypeList.hashCode():33:33 -> doHash
    6:6:int doHash(com.android.tools.r8.graph.DexMethod):50 -> doHash
    6:6:int doHash(java.lang.Object):15 -> doHash
com.android.tools.r8.utils.MethodSignatureEquivalence -> com.android.tools.r8.utils.m0:
    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.n0:
    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.o0:
    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.ProgramResource 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.OptionsParsing -> com.android.tools.r8.utils.p0:
    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.p0$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.q0:
    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:1:java.lang.Object next():13:13 -> next
    2:3:com.android.tools.r8.graph.KeyedDexItem next():40:41 -> next
    4:7:java.lang.Object getNextChecked(java.util.List,int):27:30 -> next
    4:7:com.android.tools.r8.graph.KeyedDexItem next():41 -> next
    8:8:com.android.tools.r8.graph.KeyedDexItem next():41:41 -> next
    9:9:java.lang.Object getNextChecked(java.util.List,int):28:28 -> next
    9:9:com.android.tools.r8.graph.KeyedDexItem next():41 -> next
    10:11:com.android.tools.r8.graph.KeyedDexItem next():43:44 -> next
    12:15:java.lang.Object getNextChecked(java.util.List,int):27:30 -> next
    12:15:com.android.tools.r8.graph.KeyedDexItem next():44 -> next
    16:16:com.android.tools.r8.graph.KeyedDexItem next():44:44 -> next
    17:17:java.lang.Object getNextChecked(java.util.List,int):28:28 -> next
    17:17:com.android.tools.r8.graph.KeyedDexItem next():44 -> next
    18:25:com.android.tools.r8.graph.KeyedDexItem next():46:53 -> next
    26:26:com.android.tools.r8.graph.KeyedDexItem next():51:51 -> next
com.android.tools.r8.utils.OutputBuilder -> com.android.tools.r8.utils.r0:
    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.s0:
    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.PreloadedClassFileProvider -> com.android.tools.r8.utils.t0:
    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.t0$a:
com.android.tools.r8.utils.PreloadedClassFileProvider$Builder -> com.android.tools.r8.utils.t0$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.t0$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.u0:
    com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver conflictResolver -> d
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():24:24 -> <clinit>
    1:2:void <init>(java.util.concurrent.ConcurrentHashMap,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):42:43 -> <init>
    1:1:java.util.function.Supplier getTransparentSupplier(com.android.tools.r8.graph.DexClass):24:24 -> a
    2:2:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):24:24 -> a
    3:3:com.android.tools.r8.graph.DexProgramClass resolveClassConflict(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):53:53 -> a
    3:3:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):24 -> a
    4:9:com.android.tools.r8.utils.ProgramClassCollection create(java.util.List,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):31:36 -> 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):34:34 -> a
    11:11:com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver disallowClassConflictsResolver(com.android.tools.r8.utils.Reporter):67:67 -> a
    12:17:com.android.tools.r8.graph.DexProgramClass lambda$disallowClassConflictsResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):68:73 -> a
    18:23:boolean assumeClassesAreEqual(com.android.tools.r8.graph.DexProgramClass):85:90 -> a
    18:23:com.android.tools.r8.graph.DexProgramClass lambda$disallowClassConflictsResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):74 -> a
    24:26:com.android.tools.r8.graph.DexProgramClass lambda$disallowClassConflictsResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):77:79 -> a
    27:27:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():667:667 -> a
    27:27:com.android.tools.r8.graph.DexProgramClass lambda$disallowClassConflictsResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):80 -> a
    28:28:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():667:667 -> a
    28:28:com.android.tools.r8.graph.DexProgramClass lambda$disallowClassConflictsResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):80 -> a
    29:29:com.android.tools.r8.graph.DexProgramClass lambda$disallowClassConflictsResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):80:80 -> a
    30:32:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):71:73 -> a
    30:32:com.android.tools.r8.graph.DexProgramClass lambda$disallowClassConflictsResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):77 -> a
    1:1:com.android.tools.r8.graph.ClassKind getClassKind():63:63 -> c
    1:1:java.lang.String toString():48:48 -> toString
com.android.tools.r8.utils.Reporter -> com.android.tools.r8.utils.v0:
    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):49:49 -> a
    2:5:void error(com.android.tools.r8.Diagnostic,java.lang.Throwable):53:56 -> a
    6:8:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic):71:73 -> a
    9:27:void failIfPendingErrors():89:107 -> a
    28:28:java.lang.Throwable addSuppressedExceptions(java.lang.Throwable):111:111 -> a
    1:4:void error(com.android.tools.r8.Diagnostic,java.lang.Throwable):53:56 -> b
    1:4:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic,java.lang.Throwable):80 -> b
    5:6:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic,java.lang.Throwable):81:82 -> b
    7:7:java.lang.RuntimeException fatalError(java.lang.String):63:63 -> b
    8:10:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic):71:73 -> b
    8:10:java.lang.RuntimeException fatalError(java.lang.String):63 -> b
    1:3:void error(com.android.tools.r8.Diagnostic):43:45 -> 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.v0$a:
    1:1:void <init>():24:24 -> <init>
com.android.tools.r8.utils.SingletonEquivalence -> com.android.tools.r8.utils.w0:
    1:1:void <init>():11:11 -> <init>
com.android.tools.r8.utils.StreamUtils -> com.android.tools.r8.utils.x0:
    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.y0:
    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:74:boolean onlyContainsDigits(java.lang.String):304:306 -> 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:22:java.util.List splitLines(java.lang.String):173:190 -> b
    23:23:java.lang.String zeroPrefix(int,int):197:197 -> b
    24:30:java.lang.String zeroPrefixString(java.lang.String,int):202:208 -> b
    1:2:java.lang.String stripLeadingBOM(java.lang.String):279:280 -> c
    1:9:java.lang.String toASCIIString(java.lang.String):49:57 -> d
    1:9:java.lang.String trim(java.lang.String):288:296 -> e
    1:5:java.lang.String withNativeLineSeparator(java.lang.String):155:159 -> f
com.android.tools.r8.utils.StringUtils$BraceType -> com.android.tools.r8.utils.y0$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.z0:
    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.z0$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.ThreadUtils:
    1:14:void awaitFutures(java.lang.Iterable):18:31 -> a
    15:25:void awaitFutures(java.lang.Iterable):24:34 -> a
    1:2:java.util.concurrent.ExecutorService getExecutorService(int):48:49 -> getExecutorService
    3:3:java.util.concurrent.ExecutorService getExecutorService(com.android.tools.r8.utils.InternalOptions):53:53 -> getExecutorService
    1:2:java.util.concurrent.ExecutorService getExecutorServiceForProcessors(int):41:42 -> getExecutorServiceForProcessors
com.android.tools.r8.utils.ThrowingBiConsumer -> com.android.tools.r8.utils.A0:
com.android.tools.r8.utils.ThrowingCharIterator -> com.android.tools.r8.utils.B0:
    char nextChar() -> a
com.android.tools.r8.utils.ThrowingConsumer -> com.android.tools.r8.utils.C0:
com.android.tools.r8.utils.ThrowingIntIterator -> com.android.tools.r8.utils.D0:
    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.E0:
    int getAsInt() -> a
com.android.tools.r8.utils.ThrowingIterator -> com.android.tools.r8.utils.F0:
    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.G0:
com.android.tools.r8.utils.Timing -> com.android.tools.r8.utils.H0:
    java.util.Stack stack -> a
    boolean trackMemory -> b
    1:1:void <init>():27:27 -> <init>
    2:2:void <init>(java.lang.String):31:31 -> <init>
    3:6:void <init>(java.lang.String,boolean):34:37 -> <init>
    1:1:boolean access$000(com.android.tools.r8.utils.Timing):21:21 -> a
    2:2:java.lang.String prettySize(long):149:149 -> a
    2:2:java.lang.String access$400(long):21 -> a
    3:19:java.lang.String prettyNumber(long):153:169 -> a
    3:19:java.lang.String prettySize(long):149 -> a
    3:19:java.lang.String access$400(long):21 -> a
    20:20:java.lang.String prettySize(long):149:149 -> a
    20:20:java.lang.String access$400(long):21 -> a
    21:24:void begin(java.lang.String):173:176 -> a
    25:26:void com.android.tools.r8.utils.Timing$Node.restart():74:75 -> a
    25:26:void begin(java.lang.String):177 -> a
    27:27:boolean access$000(com.android.tools.r8.utils.Timing):21:21 -> a
    27:27:void com.android.tools.r8.utils.Timing$Node.restart():75 -> a
    27:27:void begin(java.lang.String):177 -> a
    28:30:void com.android.tools.r8.utils.Timing$Node.restart():76:78 -> a
    28:30:void begin(java.lang.String):177 -> a
    31:34:void begin(java.lang.String):179:182 -> a
    35:36:void end():186:187 -> a
    1:4:void report():191:194 -> b
    5:10:java.util.Map computeMemoryInformation():211:216 -> b
    5:10:java.util.Map access$100(com.android.tools.r8.utils.Timing):21 -> b
    11:11:com.android.tools.r8.utils.Timing$MemInfo com.android.tools.r8.utils.Timing$MemInfo.fromTotalAndFree(long,long):48:48 -> b
    11:11:java.util.Map computeMemoryInformation():215 -> b
    11:11:java.util.Map access$100(com.android.tools.r8.utils.Timing):21 -> b
    12:12:java.util.Map computeMemoryInformation():213:213 -> b
    12:12:java.util.Map access$100(com.android.tools.r8.utils.Timing):21 -> b
    13:13:java.util.Map computeMemoryInformation():211:211 -> b
    13:13:java.util.Map access$100(com.android.tools.r8.utils.Timing):21 -> b
com.android.tools.r8.utils.Timing$MemInfo -> com.android.tools.r8.utils.H0$a:
    long used -> a
    1:2:void <init>(long):43:44 -> <init>
com.android.tools.r8.utils.Timing$Node -> com.android.tools.r8.utils.H0$b:
    com.android.tools.r8.utils.Timing this$0 -> g
    java.util.Map children -> b
    java.lang.String title -> a
    long start_time -> d
    boolean $assertionsDisabled -> h
    long duration -> c
    java.util.Map startMemory -> e
    java.util.Map endMemory -> f
    1:1:void <clinit>():56:56 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.Timing,java.lang.String):65:65 -> <init>
    2:13:void <init>(com.android.tools.r8.utils.Timing,java.lang.String):59:70 -> <init>
    1:5:void end():82:86 -> a
    6:6:void report(int,com.android.tools.r8.utils.Timing$Node):105:105 -> a
    7:7:long duration():91:91 -> a
    7:7:void report(int,com.android.tools.r8.utils.Timing$Node):105 -> a
    8:15:void report(int,com.android.tools.r8.utils.Timing$Node):105:112 -> a
    16:17:java.lang.String toString(com.android.tools.r8.utils.Timing$Node):100:101 -> a
    16:17:void report(int,com.android.tools.r8.utils.Timing$Node):112 -> a
    18:18:long duration():91:91 -> a
    18:18:java.lang.String toString(com.android.tools.r8.utils.Timing$Node):101 -> a
    18:18:void report(int,com.android.tools.r8.utils.Timing$Node):112 -> a
    19:19:java.lang.String com.android.tools.r8.utils.Timing.prettyPercentage(long,long):141:141 -> a
    19:19:java.lang.String com.android.tools.r8.utils.Timing.access$300(long,long):21 -> a
    19:19:java.lang.String toString(com.android.tools.r8.utils.Timing$Node):101 -> a
    19:19:void report(int,com.android.tools.r8.utils.Timing$Node):112 -> a
    20:20:java.lang.String toString(com.android.tools.r8.utils.Timing$Node):101:101 -> a
    20:20:void report(int,com.android.tools.r8.utils.Timing$Node):112 -> a
    21:22:void report(int,com.android.tools.r8.utils.Timing$Node):112:113 -> a
    23:35:void printMemory(int):120:132 -> a
    23:35:void report(int,com.android.tools.r8.utils.Timing$Node):114 -> a
    36:36:long com.android.tools.r8.utils.Timing$MemInfo.usedDelta(com.android.tools.r8.utils.Timing$MemInfo):52:52 -> a
    36:36:void printMemory(int):134 -> a
    36:36:void report(int,com.android.tools.r8.utils.Timing$Node):114 -> a
    37:37:void printMemory(int):134:134 -> a
    37:37:void report(int,com.android.tools.r8.utils.Timing$Node):114 -> a
    38:38:void printMemory(int):127:127 -> a
    38:38:void report(int,com.android.tools.r8.utils.Timing$Node):114 -> a
    39:39:void report(int,com.android.tools.r8.utils.Timing$Node):116:116 -> a
    40:40:void lambda$report$0(int,com.android.tools.r8.utils.Timing$Node,com.android.tools.r8.utils.Timing$Node):116:116 -> a
    1:1:java.lang.String toString():96:96 -> toString
    2:2:long duration():91:91 -> toString
    2:2:java.lang.String toString():96 -> toString
    3:3:java.lang.String com.android.tools.r8.utils.Timing.prettyTime(long):145:145 -> toString
    3:3:java.lang.String com.android.tools.r8.utils.Timing.access$200(long):21 -> toString
    3:3:java.lang.String toString():96 -> toString
    4:4:java.lang.String toString():96:96 -> toString
com.android.tools.r8.utils.TriFunction -> com.android.tools.r8.utils.I0:
    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.J0:
    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:java.lang.String toString():62:62 -> toString
com.android.tools.r8.utils.ZipUtils -> com.android.tools.r8.utils.K0:
    boolean lambda$unzip$0(java.util.zip.ZipEntry) -> a
    1:1:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):44:44 -> a
    2:2:java.util.List unzip(java.lang.String,java.io.File):48:48 -> a
    3:5:java.util.List unzip(java.lang.String,java.io.File,java.util.function.Predicate):53:55 -> a
    6:12:void iter(java.lang.String,com.android.tools.r8.utils.ZipUtils$OnEntryHandler):36:42 -> a
    6:12:java.util.List unzip(java.lang.String,java.io.File,java.util.function.Predicate):55 -> a
    13:17:void iter(java.lang.String,com.android.tools.r8.utils.ZipUtils$OnEntryHandler):40:44 -> a
    13:17:java.util.List unzip(java.lang.String,java.io.File,java.util.function.Predicate):55 -> a
    18:26:void iter(java.lang.String,com.android.tools.r8.utils.ZipUtils$OnEntryHandler):36:44 -> a
    18:26:java.util.List unzip(java.lang.String,java.io.File,java.util.function.Predicate):55 -> a
    27:39:void lambda$unzip$1(java.util.function.Predicate,java.nio.file.Path,java.util.List,java.util.zip.ZipEntry,java.io.InputStream):56:68 -> a
    40:42:void lambda$unzip$1(java.util.function.Predicate,java.nio.file.Path,java.util.List,java.util.zip.ZipEntry,java.io.InputStream):65:67 -> a
    43:43:void lambda$unzip$1(java.util.function.Predicate,java.nio.file.Path,java.util.List,java.util.zip.ZipEntry,java.io.InputStream):60:60 -> a
    44:44:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    44:44:void lambda$unzip$1(java.util.function.Predicate,java.nio.file.Path,java.util.List,java.util.zip.ZipEntry,java.io.InputStream):60 -> a
    45:45:void lambda$unzip$1(java.util.function.Predicate,java.nio.file.Path,java.util.List,java.util.zip.ZipEntry,java.io.InputStream):60:60 -> a
    46:46:void writeToZipStream(java.util.zip.ZipOutputStream,java.lang.String,byte[],int):77:77 -> a
    47:59:void writeToZipStream(java.util.zip.ZipOutputStream,java.lang.String,com.android.tools.r8.ByteDataView,int):83:95 -> a
    60:67:boolean isClassFile(java.lang.String):104:111 -> a
    1:2:boolean isDexFile(java.lang.String):99:100 -> b
com.android.tools.r8.utils.ZipUtils$OnEntryHandler -> com.android.tools.r8.utils.K0$a:
    void onEntry(java.util.zip.ZipEntry,java.io.InputStream) -> a
