CrackMe.apk
Download file
package kotlinx.coroutines.internal;
import androidx.concurrent.futures.AbstractResolvableFuture$SafeAtomicHelper$$ExternalSyntheticBackportWithForwarding0;
import java.util.concurrent.CancellationException;
import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
import kotlin.Metadata;
import kotlin.Result;
import kotlin.ResultKt;
import kotlin.Unit;
import kotlin.coroutines.Continuation;
import kotlin.coroutines.CoroutineContext;
import kotlin.coroutines.jvm.internal.CoroutineStackFrame;
import kotlin.jvm.functions.Function1;
import kotlin.jvm.internal.InlineMarker;
import kotlin.jvm.internal.Intrinsics;
import kotlinx.coroutines.CancellableContinuation;
import kotlinx.coroutines.CancellableContinuationImpl;
import kotlinx.coroutines.CompletedWithCancellation;
import kotlinx.coroutines.CompletionStateKt;
import kotlinx.coroutines.CoroutineContextKt;
import kotlinx.coroutines.CoroutineDispatcher;
import kotlinx.coroutines.DebugKt;
import kotlinx.coroutines.DebugStringsKt;
import kotlinx.coroutines.DispatchedTask;
import kotlinx.coroutines.EventLoop;
import kotlinx.coroutines.Job;
import kotlinx.coroutines.ThreadLocalEventLoop;
import kotlinx.coroutines.UndispatchedCoroutine;
@Metadata(d1 = {"\u0000\u0001\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\u0002\n\u0002\b\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u0003\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\r\n\u0002\u0010\u000e\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u000e\n\u0002\u0018\u0002\b\u0000\u0018\u0000*\u0006\b\u0000\u0010\u0001 \u00002\b\u0012\u0004\u0012\u00028\u00000O2\u00060?j\u0002`@2\b\u0012\u0004\u0012\u00028\u00000\u0004B\u001d\u0012\u0006\u0010\u0003\u001a\u00020\u0002\u0012\f\u0010\u0005\u001a\b\u0012\u0004\u0012\u00028\u00000\u0004¢\u0006\u0004\b\u0006\u0010\u0007J\r\u0010\t\u001a\u00020\b¢\u0006\u0004\b\t\u0010\nJ!\u0010\u0011\u001a\u00020\b2\b\u0010\f\u001a\u0004\u0018\u00010\u000b2\u0006\u0010\u000e\u001a\u00020\rH\u0010¢\u0006\u0004\b\u000f\u0010\u0010J\u0015\u0010\u0013\u001a\n\u0012\u0004\u0012\u00028\u0000\u0018\u00010\u0012¢\u0006\u0004\b\u0013\u0010\u0014J\u001f\u0010\u001a\u001a\u00020\b2\u0006\u0010\u0016\u001a\u00020\u00152\u0006\u0010\u0017\u001a\u00028\u0000H\u0000¢\u0006\u0004\b\u0018\u0010\u0019J\u0017\u0010\u001d\u001a\n\u0018\u00010\u001bj\u0004\u0018\u0001`\u001cH\u0016¢\u0006\u0004\b\u001d\u0010\u001eJ\r\u0010 \u001a\u00020\u001f¢\u0006\u0004\b \u0010!J\u0015\u0010\"\u001a\u00020\u001f2\u0006\u0010\u000e\u001a\u00020\r¢\u0006\u0004\b\"\u0010#J\r\u0010$\u001a\u00020\b¢\u0006\u0004\b$\u0010\nJH\u0010+\u001a\u00020\b2\f\u0010&\u001a\b\u0012\u0004\u0012\u00028\u00000%2%\b\b\u0010*\u001a\u001f\u0012\u0013\u0012\u00110\r¢\u0006\f\b(\u0012\b\b)\u0012\u0004\b\b(\u000e\u0012\u0004\u0012\u00020\b\u0018\u00010'H\bø\u0001\u0000¢\u0006\u0004\b+\u0010,J\u001a\u0010.\u001a\u00020\u001f2\b\u0010-\u001a\u0004\u0018\u00010\u000bH\b¢\u0006\u0004\b.\u0010/J!\u00100\u001a\u00020\b2\f\u0010&\u001a\b\u0012\u0004\u0012\u00028\u00000%H\bø\u0001\u0000¢\u0006\u0004\b0\u00101J \u00102\u001a\u00020\b2\f\u0010&\u001a\b\u0012\u0004\u0012\u00028\u00000%H\u0016ø\u0001\u0000¢\u0006\u0004\b2\u00101J\u0011\u00105\u001a\u0004\u0018\u00010\u000bH\u0010¢\u0006\u0004\b3\u00104J\u000f\u00107\u001a\u000206H\u0016¢\u0006\u0004\b7\u00108J\u001b\u0010:\u001a\u0004\u0018\u00010\r2\n\u0010\u0005\u001a\u0006\u0012\u0002\b\u000309¢\u0006\u0004\b:\u0010;R\u001e\u0010<\u001a\u0004\u0018\u00010\u000b8\u0000@\u0000X\u000e¢\u0006\f\n\u0004\b<\u0010=\u0012\u0004\b>\u0010\nR\u001c\u0010C\u001a\n\u0018\u00010?j\u0004\u0018\u0001`@8VX\u0004¢\u0006\u0006\u001a\u0004\bA\u0010BR\u0014\u0010\u0016\u001a\u00020\u00158\u0016X\u0005¢\u0006\u0006\u001a\u0004\bD\u0010ER\u001a\u0010\u0005\u001a\b\u0012\u0004\u0012\u00028\u00000\u00048\u0006X\u0004¢\u0006\u0006\n\u0004\b\u0005\u0010FR\u0014\u0010G\u001a\u00020\u000b8\u0000X\u0004¢\u0006\u0006\n\u0004\bG\u0010=R\u001a\u0010J\u001a\b\u0012\u0004\u0012\u00028\u00000\u00048PX\u0004¢\u0006\u0006\u001a\u0004\bH\u0010IR\u0014\u0010\u0003\u001a\u00020\u00028\u0006X\u0004¢\u0006\u0006\n\u0004\b\u0003\u0010KR\u001a\u0010M\u001a\b\u0012\u0002\b\u0003\u0018\u00010\u00128BX\u0004¢\u0006\u0006\u001a\u0004\bL\u0010\u0014\u0002\u0004\n\u0002\b\u0019¨\u0006N"}, d2 = {"Lkotlinx/coroutines/internal/DispatchedContinuation;", "T", "Lkotlinx/coroutines/CoroutineDispatcher;", "dispatcher", "Lkotlin/coroutines/Continuation;", "continuation", "<init>", "(Lkotlinx/coroutines/CoroutineDispatcher;Lkotlin/coroutines/Continuation;)V", "", "awaitReusability", "()V", "", "takenState", "", "cause", "cancelCompletedResult$kotlinx_coroutines_core", "(Ljava/lang/Object;Ljava/lang/Throwable;)V", "cancelCompletedResult", "Lkotlinx/coroutines/CancellableContinuationImpl;", "claimReusableCancellableContinuation", "()Lkotlinx/coroutines/CancellableContinuationImpl;", "Lkotlin/coroutines/CoroutineContext;", "context", "value", "dispatchYield$kotlinx_coroutines_core", "(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Object;)V", "dispatchYield", "Ljava/lang/StackTraceElement;", "Lkotlinx/coroutines/internal/StackTraceElement;", "getStackTraceElement", "()Ljava/lang/StackTraceElement;", "", "isReusable", "()Z", "postponeCancellation", "(Ljava/lang/Throwable;)Z", "release", "Lkotlin/Result;", "result", "Lkotlin/Function1;", "Lkotlin/ParameterName;", "name", "onCancellation", "resumeCancellableWith", "(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)V", "state", "resumeCancelled", "(Ljava/lang/Object;)Z", "resumeUndispatchedWith", "(Ljava/lang/Object;)V", "resumeWith", "takeState$kotlinx_coroutines_core", "()Ljava/lang/Object;", "takeState", "", "toString", "()Ljava/lang/String;", "Lkotlinx/coroutines/CancellableContinuation;", "tryReleaseClaimedContinuation", "(Lkotlinx/coroutines/CancellableContinuation;)Ljava/lang/Throwable;", "_state", "Ljava/lang/Object;", "get_state$kotlinx_coroutines_core$annotations", "Lkotlin/coroutines/jvm/internal/CoroutineStackFrame;", "Lkotlinx/coroutines/internal/CoroutineStackFrame;", "getCallerFrame", "()Lkotlin/coroutines/jvm/internal/CoroutineStackFrame;", "callerFrame", "getContext", "()Lkotlin/coroutines/CoroutineContext;", "Lkotlin/coroutines/Continuation;", "countOrElement", "getDelegate$kotlinx_coroutines_core", "()Lkotlin/coroutines/Continuation;", "delegate", "Lkotlinx/coroutines/CoroutineDispatcher;", "getReusableCancellableContinuation", "reusableCancellableContinuation", "kotlinx-coroutines-core", "Lkotlinx/coroutines/DispatchedTask;"}, k = 1, mv = {1, 6, 0}, xi = 48)
/* compiled from: DispatchedContinuation.kt */
public final class DispatchedContinuation<T> extends DispatchedTask<T> implements CoroutineStackFrame, Continuation<T> {
private static final /* synthetic */ AtomicReferenceFieldUpdater _reusableCancellableContinuation$FU = AtomicReferenceFieldUpdater.newUpdater(DispatchedContinuation.class, Object.class, "_reusableCancellableContinuation");
private volatile /* synthetic */ Object _reusableCancellableContinuation = null;
public Object _state = DispatchedContinuationKt.UNDEFINED;
public final Continuation<T> continuation;
public final Object countOrElement = ThreadContextKt.threadContextElements(getContext());
public final CoroutineDispatcher dispatcher;
public static /* synthetic */ void get_state$kotlinx_coroutines_core$annotations() {
}
public CoroutineContext getContext() {
return this.continuation.getContext();
}
public StackTraceElement getStackTraceElement() {
return null;
}
public DispatchedContinuation(CoroutineDispatcher coroutineDispatcher, Continuation<? super T> continuation2) {
super(-1);
this.dispatcher = coroutineDispatcher;
this.continuation = continuation2;
}
public CoroutineStackFrame getCallerFrame() {
Continuation<T> continuation2 = this.continuation;
if (continuation2 instanceof CoroutineStackFrame) {
return (CoroutineStackFrame) continuation2;
}
return null;
}
private final CancellableContinuationImpl<?> getReusableCancellableContinuation() {
Object obj = this._reusableCancellableContinuation;
if (obj instanceof CancellableContinuationImpl) {
return (CancellableContinuationImpl) obj;
}
return null;
}
public final boolean isReusable() {
return this._reusableCancellableContinuation != null;
}
public final void release() {
awaitReusability();
CancellableContinuationImpl<?> reusableCancellableContinuation = getReusableCancellableContinuation();
if (reusableCancellableContinuation != null) {
reusableCancellableContinuation.detachChild$kotlinx_coroutines_core();
}
}
public Object takeState$kotlinx_coroutines_core() {
Object obj = this._state;
if (DebugKt.getASSERTIONS_ENABLED()) {
if (!(obj != DispatchedContinuationKt.UNDEFINED)) {
throw new AssertionError();
}
}
this._state = DispatchedContinuationKt.UNDEFINED;
return obj;
}
public Continuation<T> getDelegate$kotlinx_coroutines_core() {
return this;
}
public void resumeWith(Object obj) {
CoroutineContext context;
Object updateThreadContext;
CoroutineContext context2 = this.continuation.getContext();
Object state$default = CompletionStateKt.toState$default(obj, (Function1) null, 1, (Object) null);
if (this.dispatcher.isDispatchNeeded(context2)) {
this._state = state$default;
this.resumeMode = 0;
this.dispatcher.dispatch(context2, this);
return;
}
boolean assertions_enabled = DebugKt.getASSERTIONS_ENABLED();
EventLoop eventLoop$kotlinx_coroutines_core = ThreadLocalEventLoop.INSTANCE.getEventLoop$kotlinx_coroutines_core();
if (eventLoop$kotlinx_coroutines_core.isUnconfinedLoopActive()) {
this._state = state$default;
this.resumeMode = 0;
eventLoop$kotlinx_coroutines_core.dispatchUnconfined(this);
return;
}
DispatchedTask dispatchedTask = this;
eventLoop$kotlinx_coroutines_core.incrementUseCount(true);
try {
context = getContext();
updateThreadContext = ThreadContextKt.updateThreadContext(context, this.countOrElement);
this.continuation.resumeWith(obj);
Unit unit = Unit.INSTANCE;
ThreadContextKt.restoreThreadContext(context, updateThreadContext);
do {
} while (eventLoop$kotlinx_coroutines_core.processUnconfinedEvent());
} catch (Throwable th) {
try {
dispatchedTask.handleFatalException(th, (Throwable) null);
} catch (Throwable th2) {
eventLoop$kotlinx_coroutines_core.decrementUseCount(true);
throw th2;
}
}
eventLoop$kotlinx_coroutines_core.decrementUseCount(true);
}
public final void resumeCancellableWith(Object obj, Function1<? super Throwable, Unit> function1) {
boolean z;
CoroutineContext context;
Object updateThreadContext;
UndispatchedCoroutine<?> undispatchedCoroutine;
Object state = CompletionStateKt.toState(obj, function1);
if (this.dispatcher.isDispatchNeeded(getContext())) {
this._state = state;
this.resumeMode = 1;
this.dispatcher.dispatch(getContext(), this);
return;
}
boolean assertions_enabled = DebugKt.getASSERTIONS_ENABLED();
EventLoop eventLoop$kotlinx_coroutines_core = ThreadLocalEventLoop.INSTANCE.getEventLoop$kotlinx_coroutines_core();
if (eventLoop$kotlinx_coroutines_core.isUnconfinedLoopActive()) {
this._state = state;
this.resumeMode = 1;
eventLoop$kotlinx_coroutines_core.dispatchUnconfined(this);
return;
}
DispatchedTask dispatchedTask = this;
eventLoop$kotlinx_coroutines_core.incrementUseCount(true);
try {
Job job = (Job) getContext().get(Job.Key);
if (job == null || job.isActive()) {
z = false;
} else {
CancellationException cancellationException = job.getCancellationException();
cancelCompletedResult$kotlinx_coroutines_core(state, cancellationException);
Result.Companion companion = Result.Companion;
resumeWith(Result.m352constructorimpl(ResultKt.createFailure(cancellationException)));
z = true;
}
if (!z) {
Continuation<T> continuation2 = this.continuation;
Object obj2 = this.countOrElement;
context = continuation2.getContext();
updateThreadContext = ThreadContextKt.updateThreadContext(context, obj2);
if (updateThreadContext != ThreadContextKt.NO_THREAD_ELEMENTS) {
undispatchedCoroutine = CoroutineContextKt.updateUndispatchedCompletion(continuation2, context, updateThreadContext);
} else {
UndispatchedCoroutine undispatchedCoroutine2 = null;
undispatchedCoroutine = null;
}
this.continuation.resumeWith(obj);
Unit unit = Unit.INSTANCE;
InlineMarker.finallyStart(1);
if (undispatchedCoroutine == null || undispatchedCoroutine.clearThreadContext()) {
ThreadContextKt.restoreThreadContext(context, updateThreadContext);
}
InlineMarker.finallyEnd(1);
}
do {
} while (eventLoop$kotlinx_coroutines_core.processUnconfinedEvent());
InlineMarker.finallyStart(1);
} catch (Throwable th) {
try {
dispatchedTask.handleFatalException(th, (Throwable) null);
InlineMarker.finallyStart(1);
} catch (Throwable th2) {
InlineMarker.finallyStart(1);
eventLoop$kotlinx_coroutines_core.decrementUseCount(true);
InlineMarker.finallyEnd(1);
throw th2;
}
}
eventLoop$kotlinx_coroutines_core.decrementUseCount(true);
InlineMarker.finallyEnd(1);
}
public void cancelCompletedResult$kotlinx_coroutines_core(Object obj, Throwable th) {
if (obj instanceof CompletedWithCancellation) {
((CompletedWithCancellation) obj).onCancellation.invoke(th);
}
}
public final boolean resumeCancelled(Object obj) {
Job job = (Job) getContext().get(Job.Key);
if (job == null || job.isActive()) {
return false;
}
Throwable cancellationException = job.getCancellationException();
cancelCompletedResult$kotlinx_coroutines_core(obj, cancellationException);
Result.Companion companion = Result.Companion;
resumeWith(Result.m352constructorimpl(ResultKt.createFailure(cancellationException)));
return true;
}
public final void resumeUndispatchedWith(Object obj) {
UndispatchedCoroutine<?> undispatchedCoroutine;
Continuation<T> continuation2 = this.continuation;
Object obj2 = this.countOrElement;
CoroutineContext context = continuation2.getContext();
Object updateThreadContext = ThreadContextKt.updateThreadContext(context, obj2);
if (updateThreadContext != ThreadContextKt.NO_THREAD_ELEMENTS) {
undispatchedCoroutine = CoroutineContextKt.updateUndispatchedCompletion(continuation2, context, updateThreadContext);
} else {
undispatchedCoroutine = null;
UndispatchedCoroutine undispatchedCoroutine2 = undispatchedCoroutine;
}
try {
this.continuation.resumeWith(obj);
Unit unit = Unit.INSTANCE;
} finally {
InlineMarker.finallyStart(1);
if (undispatchedCoroutine == null || undispatchedCoroutine.clearThreadContext()) {
ThreadContextKt.restoreThreadContext(context, updateThreadContext);
}
InlineMarker.finallyEnd(1);
}
}
public final void dispatchYield$kotlinx_coroutines_core(CoroutineContext coroutineContext, T t) {
this._state = t;
this.resumeMode = 1;
this.dispatcher.dispatchYield(coroutineContext, this);
}
public String toString() {
return "DispatchedContinuation[" + this.dispatcher + ", " + DebugStringsKt.toDebugString(this.continuation) + ']';
}
public final void awaitReusability() {
do {
} while (this._reusableCancellableContinuation == DispatchedContinuationKt.REUSABLE_CLAIMED);
}
public final CancellableContinuationImpl<T> claimReusableCancellableContinuation() {
while (true) {
Object obj = this._reusableCancellableContinuation;
if (obj == null) {
this._reusableCancellableContinuation = DispatchedContinuationKt.REUSABLE_CLAIMED;
return null;
} else if (obj instanceof CancellableContinuationImpl) {
if (AbstractResolvableFuture$SafeAtomicHelper$$ExternalSyntheticBackportWithForwarding0.m(_reusableCancellableContinuation$FU, this, obj, DispatchedContinuationKt.REUSABLE_CLAIMED)) {
return (CancellableContinuationImpl) obj;
}
} else if (obj != DispatchedContinuationKt.REUSABLE_CLAIMED && !(obj instanceof Throwable)) {
throw new IllegalStateException(Intrinsics.stringPlus("Inconsistent state ", obj).toString());
}
}
}
public final Throwable tryReleaseClaimedContinuation(CancellableContinuation<?> cancellableContinuation) {
do {
Object obj = this._reusableCancellableContinuation;
if (obj != DispatchedContinuationKt.REUSABLE_CLAIMED) {
if (!(obj instanceof Throwable)) {
throw new IllegalStateException(Intrinsics.stringPlus("Inconsistent state ", obj).toString());
} else if (AbstractResolvableFuture$SafeAtomicHelper$$ExternalSyntheticBackportWithForwarding0.m(_reusableCancellableContinuation$FU, this, obj, (Object) null)) {
return (Throwable) obj;
} else {
throw new IllegalArgumentException("Failed requirement.".toString());
}
}
} while (!AbstractResolvableFuture$SafeAtomicHelper$$ExternalSyntheticBackportWithForwarding0.m(_reusableCancellableContinuation$FU, this, DispatchedContinuationKt.REUSABLE_CLAIMED, cancellableContinuation));
return null;
}
public final boolean postponeCancellation(Throwable th) {
while (true) {
Object obj = this._reusableCancellableContinuation;
if (Intrinsics.areEqual(obj, (Object) DispatchedContinuationKt.REUSABLE_CLAIMED)) {
if (AbstractResolvableFuture$SafeAtomicHelper$$ExternalSyntheticBackportWithForwarding0.m(_reusableCancellableContinuation$FU, this, DispatchedContinuationKt.REUSABLE_CLAIMED, th)) {
return true;
}
} else if (obj instanceof Throwable) {
return true;
} else {
if (AbstractResolvableFuture$SafeAtomicHelper$$ExternalSyntheticBackportWithForwarding0.m(_reusableCancellableContinuation$FU, this, obj, (Object) null)) {
return false;
}
}
}
}
}
Download file