# {"id":"partitionSourceFiles","fileNameMappings":{"kotlinx.coroutines.sync.MutexImpl$CancellableContinuationWithOwner":"Mutex.kt","kotlinx.coroutines.sync.SemaphoreAndMutexImpl":"Semaphore.kt","kotlinx.coroutines.CancellableContinuationImpl":"CancellableContinuationImpl.kt"}}
kotlinx.coroutines.sync.MutexImpl -> mp1:
# {"id":"sourceFile","fileName":"Mutex.kt"}
    java.util.concurrent.atomic.AtomicReferenceFieldUpdater owner$volatile$FU -> j
    long owner$volatile$FU$offset -> k
      # {"id":"com.android.tools.r8.synthesized"}
    1:25:void <clinit>():0:0 -> <clinit>
    2:4:void <init>(boolean):130:130 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"()V"}
    5:9:void <init>(boolean):137:137 -> <init>
    1:2:java.util.concurrent.atomic.AtomicIntegerFieldUpdater kotlinx.coroutines.sync.SemaphoreAndMutexImpl.get_availablePermits$volatile$FU():0:0 -> d
    1:2:int kotlinx.coroutines.sync.SemaphoreAndMutexImpl.getAvailablePermits():147 -> d
    1:2:boolean isLocked():145 -> d
    3:16:int kotlinx.coroutines.sync.SemaphoreAndMutexImpl.getAvailablePermits():147:147 -> d
    3:16:boolean isLocked():145 -> d
    1:9:java.lang.Object lock$suspendImpl(kotlinx.coroutines.sync.MutexImpl,java.lang.Object,kotlin.coroutines.Continuation):167:167 -> e
    1:9:java.lang.Object lock(java.lang.Object,kotlin.coroutines.Continuation):0 -> e
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lr50;)Ljava/lang/Object;"}
    10:17:java.lang.Object lockSuspend(java.lang.Object,kotlin.coroutines.Continuation):316:316 -> e
    10:17:java.lang.Object lock$suspendImpl(kotlinx.coroutines.sync.MutexImpl,java.lang.Object,kotlin.coroutines.Continuation):168 -> e
    10:17:java.lang.Object lock(java.lang.Object,kotlin.coroutines.Continuation):0 -> e
    18:22:java.lang.Object lockSuspend(java.lang.Object,kotlin.coroutines.Continuation):172:172 -> e
    18:22:java.lang.Object lock$suspendImpl(kotlinx.coroutines.sync.MutexImpl,java.lang.Object,kotlin.coroutines.Continuation):168 -> e
    18:22:java.lang.Object lock(java.lang.Object,kotlin.coroutines.Continuation):0 -> e
    23:24:java.util.concurrent.atomic.AtomicIntegerFieldUpdater kotlinx.coroutines.sync.SemaphoreAndMutexImpl.get_availablePermits$volatile$FU():0:0 -> e
    23:24:int kotlinx.coroutines.sync.SemaphoreAndMutexImpl.decPermits():232 -> e
    23:24:void kotlinx.coroutines.sync.SemaphoreAndMutexImpl.acquire(kotlinx.coroutines.CancellableContinuation):412 -> e
    23:24:java.lang.Object lockSuspend(java.lang.Object,kotlin.coroutines.Continuation):173 -> e
    23:24:java.lang.Object lock$suspendImpl(kotlinx.coroutines.sync.MutexImpl,java.lang.Object,kotlin.coroutines.Continuation):168 -> e
    23:24:java.lang.Object lock(java.lang.Object,kotlin.coroutines.Continuation):0 -> e
    25:28:int kotlinx.coroutines.sync.SemaphoreAndMutexImpl.decPermits():232:232 -> e
    25:28:void kotlinx.coroutines.sync.SemaphoreAndMutexImpl.acquire(kotlinx.coroutines.CancellableContinuation):412 -> e
    25:28:java.lang.Object lockSuspend(java.lang.Object,kotlin.coroutines.Continuation):173 -> e
    25:28:java.lang.Object lock$suspendImpl(kotlinx.coroutines.sync.MutexImpl,java.lang.Object,kotlin.coroutines.Continuation):168 -> e
    25:28:java.lang.Object lock(java.lang.Object,kotlin.coroutines.Continuation):0 -> e
    29:34:int kotlinx.coroutines.sync.SemaphoreAndMutexImpl.decPermits():236:236 -> e
    29:34:void kotlinx.coroutines.sync.SemaphoreAndMutexImpl.acquire(kotlinx.coroutines.CancellableContinuation):412 -> e
    29:34:java.lang.Object lockSuspend(java.lang.Object,kotlin.coroutines.Continuation):173 -> e
    29:34:java.lang.Object lock$suspendImpl(kotlinx.coroutines.sync.MutexImpl,java.lang.Object,kotlin.coroutines.Continuation):168 -> e
    29:34:java.lang.Object lock(java.lang.Object,kotlin.coroutines.Continuation):0 -> e
    35:36:java.util.concurrent.atomic.AtomicReferenceFieldUpdater getOwner$volatile$FU():0:0 -> e
    35:36:java.util.concurrent.atomic.AtomicReferenceFieldUpdater access$getOwner$volatile$FU():130 -> e
    35:36:void kotlinx.coroutines.sync.MutexImpl$CancellableContinuationWithOwner.resume(kotlin.Unit,kotlin.jvm.functions.Function3):276 -> e
    35:36:void kotlinx.coroutines.sync.MutexImpl$CancellableContinuationWithOwner.resume(java.lang.Object,kotlin.jvm.functions.Function3):246 -> e
    35:36:void kotlinx.coroutines.sync.SemaphoreAndMutexImpl.acquire(kotlinx.coroutines.CancellableContinuation):195 -> e
    35:36:java.lang.Object lockSuspend(java.lang.Object,kotlin.coroutines.Continuation):173 -> e
    35:36:java.lang.Object lock$suspendImpl(kotlinx.coroutines.sync.MutexImpl,java.lang.Object,kotlin.coroutines.Continuation):168 -> e
    35:36:java.lang.Object lock(java.lang.Object,kotlin.coroutines.Continuation):0 -> e
    37:42:void kotlinx.coroutines.sync.MutexImpl$CancellableContinuationWithOwner.resume(kotlin.Unit,kotlin.jvm.functions.Function3):276:276 -> e
    37:42:void kotlinx.coroutines.sync.MutexImpl$CancellableContinuationWithOwner.resume(java.lang.Object,kotlin.jvm.functions.Function3):246 -> e
    37:42:void kotlinx.coroutines.sync.SemaphoreAndMutexImpl.acquire(kotlinx.coroutines.CancellableContinuation):195 -> e
    37:42:java.lang.Object lockSuspend(java.lang.Object,kotlin.coroutines.Continuation):173 -> e
    37:42:java.lang.Object lock$suspendImpl(kotlinx.coroutines.sync.MutexImpl,java.lang.Object,kotlin.coroutines.Continuation):168 -> e
    37:42:java.lang.Object lock(java.lang.Object,kotlin.coroutines.Continuation):0 -> e
    43:49:void kotlinx.coroutines.sync.MutexImpl$CancellableContinuationWithOwner.resume(kotlin.Unit,kotlin.jvm.functions.Function3):277:277 -> e
    43:49:void kotlinx.coroutines.sync.MutexImpl$CancellableContinuationWithOwner.resume(java.lang.Object,kotlin.jvm.functions.Function3):246 -> e
    43:49:void kotlinx.coroutines.sync.SemaphoreAndMutexImpl.acquire(kotlinx.coroutines.CancellableContinuation):195 -> e
    43:49:java.lang.Object lockSuspend(java.lang.Object,kotlin.coroutines.Continuation):173 -> e
    43:49:java.lang.Object lock$suspendImpl(kotlinx.coroutines.sync.MutexImpl,java.lang.Object,kotlin.coroutines.Continuation):168 -> e
    43:49:java.lang.Object lock(java.lang.Object,kotlin.coroutines.Continuation):0 -> e
    50:51:void kotlinx.coroutines.CancellableContinuationImpl.resume(java.lang.Object,kotlin.jvm.functions.Function1):363:363 -> e
    50:51:void kotlinx.coroutines.sync.MutexImpl$CancellableContinuationWithOwner.resume(kotlin.Unit,kotlin.jvm.functions.Function3):277 -> e
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    50:51:void kotlinx.coroutines.sync.MutexImpl$CancellableContinuationWithOwner.resume(java.lang.Object,kotlin.jvm.functions.Function3):246 -> e
    50:51:void kotlinx.coroutines.sync.SemaphoreAndMutexImpl.acquire(kotlinx.coroutines.CancellableContinuation):195 -> e
    50:51:java.lang.Object lockSuspend(java.lang.Object,kotlin.coroutines.Continuation):173 -> e
    50:51:java.lang.Object lock$suspendImpl(kotlinx.coroutines.sync.MutexImpl,java.lang.Object,kotlin.coroutines.Continuation):168 -> e
    50:51:java.lang.Object lock(java.lang.Object,kotlin.coroutines.Continuation):0 -> e
    52:61:void kotlinx.coroutines.CancellableContinuationImpl.resume(java.lang.Object,kotlin.jvm.functions.Function1):363:363 -> e
    52:61:void kotlinx.coroutines.sync.MutexImpl$CancellableContinuationWithOwner.resume(kotlin.Unit,kotlin.jvm.functions.Function3):277 -> e
    52:61:void kotlinx.coroutines.sync.MutexImpl$CancellableContinuationWithOwner.resume(java.lang.Object,kotlin.jvm.functions.Function3):246 -> e
    52:61:void kotlinx.coroutines.sync.SemaphoreAndMutexImpl.acquire(kotlinx.coroutines.CancellableContinuation):195 -> e
    52:61:java.lang.Object lockSuspend(java.lang.Object,kotlin.coroutines.Continuation):173 -> e
    52:61:java.lang.Object lock$suspendImpl(kotlinx.coroutines.sync.MutexImpl,java.lang.Object,kotlin.coroutines.Continuation):168 -> e
    52:61:java.lang.Object lock(java.lang.Object,kotlin.coroutines.Continuation):0 -> e
    62:67:void kotlinx.coroutines.sync.SemaphoreAndMutexImpl.acquire(kotlinx.coroutines.CancellableContinuation):194:194 -> e
    62:67:java.lang.Object lockSuspend(java.lang.Object,kotlin.coroutines.Continuation):173 -> e
    62:67:java.lang.Object lock$suspendImpl(kotlinx.coroutines.sync.MutexImpl,java.lang.Object,kotlin.coroutines.Continuation):168 -> e
    62:67:java.lang.Object lock(java.lang.Object,kotlin.coroutines.Continuation):0 -> e
    68:71:java.lang.Object lockSuspend(java.lang.Object,kotlin.coroutines.Continuation):325:325 -> e
    68:71:java.lang.Object lock$suspendImpl(kotlinx.coroutines.sync.MutexImpl,java.lang.Object,kotlin.coroutines.Continuation):168 -> e
    68:71:java.lang.Object lock(java.lang.Object,kotlin.coroutines.Continuation):0 -> e
    72:82:java.lang.Object lockSuspend(java.lang.Object,kotlin.coroutines.Continuation):315:315 -> e
    72:82:java.lang.Object lock$suspendImpl(kotlinx.coroutines.sync.MutexImpl,java.lang.Object,kotlin.coroutines.Continuation):168 -> e
    72:82:java.lang.Object lock(java.lang.Object,kotlin.coroutines.Continuation):0 -> e
    83:85:java.lang.Object lockSuspend(java.lang.Object,kotlin.coroutines.Continuation):322:322 -> e
    83:85:java.lang.Object lock$suspendImpl(kotlinx.coroutines.sync.MutexImpl,java.lang.Object,kotlin.coroutines.Continuation):168 -> e
    83:85:java.lang.Object lock(java.lang.Object,kotlin.coroutines.Continuation):0 -> e
    86:86:java.lang.Object lockSuspend(java.lang.Object,kotlin.coroutines.Continuation):323:323 -> e
    86:86:java.lang.Object lock$suspendImpl(kotlinx.coroutines.sync.MutexImpl,java.lang.Object,kotlin.coroutines.Continuation):168 -> e
    86:86:java.lang.Object lock(java.lang.Object,kotlin.coroutines.Continuation):0 -> e
    1:12:boolean tryLock(java.lang.Object):179:179 -> f
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Z"}
    13:19:boolean tryLock(java.lang.Object):180:180 -> f
    20:28:boolean tryLock(java.lang.Object):179:179 -> f
    1:6:boolean kotlinx.coroutines.sync.SemaphoreAndMutexImpl.tryAcquire():154:154 -> g
    1:6:int tryLockImpl(java.lang.Object):185 -> g
      # {"id":"com.android.tools.r8.residualsignature","signature":"()I"}
    7:10:boolean kotlinx.coroutines.sync.SemaphoreAndMutexImpl.tryAcquire():159:159 -> g
    7:10:int tryLockImpl(java.lang.Object):185 -> g
    11:16:void kotlinx.coroutines.sync.SemaphoreAndMutexImpl.coerceAvailablePermitsAtMaximum():271:271 -> g
    11:16:boolean kotlinx.coroutines.sync.SemaphoreAndMutexImpl.tryAcquire():160 -> g
    11:16:int tryLockImpl(java.lang.Object):185 -> g
    17:29:void kotlinx.coroutines.sync.SemaphoreAndMutexImpl.coerceAvailablePermitsAtMaximum():273:273 -> g
    17:29:boolean kotlinx.coroutines.sync.SemaphoreAndMutexImpl.tryAcquire():160 -> g
    17:29:int tryLockImpl(java.lang.Object):185 -> g
    30:35:boolean kotlinx.coroutines.sync.SemaphoreAndMutexImpl.tryAcquire():166:166 -> g
    30:35:int tryLockImpl(java.lang.Object):185 -> g
    36:37:java.util.concurrent.atomic.AtomicReferenceFieldUpdater getOwner$volatile$FU():0:0 -> g
    36:37:int tryLockImpl(java.lang.Object):187 -> g
    38:50:int tryLockImpl(java.lang.Object):187:187 -> g
    1:6:void unlock(java.lang.Object):209:209 -> h
    7:8:java.util.concurrent.atomic.AtomicReferenceFieldUpdater getOwner$volatile$FU():0:0 -> h
    7:8:void unlock(java.lang.Object):211 -> h
    9:19:void unlock(java.lang.Object):211:211 -> h
    20:28:void unlock(java.lang.Object):212:212 -> h
    29:38:void unlock(java.lang.Object):214:214 -> h
    39:49:boolean java.util.concurrent.atomic.AtomicReferenceFieldUpdater.compareAndSet(java.lang.Object,java.lang.Object,java.lang.Object):0:0 -> h
    39:49:void unlock(java.lang.Object):216 -> h
    50:53:void unlock(java.lang.Object):218:218 -> h
    54:63:boolean java.util.concurrent.atomic.AtomicReferenceFieldUpdater.compareAndSet(java.lang.Object,java.lang.Object,java.lang.Object):0:0 -> h
    54:63:void unlock(java.lang.Object):216 -> h
    64:69:void unlock(java.lang.Object):209:209 -> h
    1:31:java.lang.String toString():301:301 -> toString
    32:33:java.util.concurrent.atomic.AtomicReferenceFieldUpdater getOwner$volatile$FU():0:0 -> toString
    32:33:java.lang.String toString():301 -> toString
    34:57:java.lang.String toString():301:301 -> toString
