FilesKt__UtilsKt.smali
.class public Lkotlin/io/FilesKt__UtilsKt;
.super Lkotlin/io/FilesKt__FileTreeWalkKt;
.source "Utils.kt"
# annotations
.annotation runtime Lkotlin/Metadata;
bv = {
0x1,
0x0,
0x3
}
d1 = {
"\u0000<\n\u0000\n\u0002\u0010\u000e\n\u0002\u0018\u0002\n\u0002\u0008\u000c\n\u0002\u0010\u000b\n\u0002\u0008\u0003\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0008\u0002\n\u0002\u0010\u0008\n\u0002\u0008\u0004\n\u0002\u0010 \n\u0000\n\u0002\u0018\u0002\n\u0002\u0008\u000c\u001a*\u0010\t\u001a\u00020\u00022\u0008\u0008\u0002\u0010\n\u001a\u00020\u00012\n\u0008\u0002\u0010\u000b\u001a\u0004\u0018\u00010\u00012\n\u0008\u0002\u0010\u000c\u001a\u0004\u0018\u00010\u0002H\u0007\u001a*\u0010\r\u001a\u00020\u00022\u0008\u0008\u0002\u0010\n\u001a\u00020\u00012\n\u0008\u0002\u0010\u000b\u001a\u0004\u0018\u00010\u00012\n\u0008\u0002\u0010\u000c\u001a\u0004\u0018\u00010\u0002H\u0007\u001a8\u0010\u000e\u001a\u00020\u000f*\u00020\u00022\u0006\u0010\u0010\u001a\u00020\u00022\u0008\u0008\u0002\u0010\u0011\u001a\u00020\u000f2\u001a\u0008\u0002\u0010\u0012\u001a\u0014\u0012\u0004\u0012\u00020\u0002\u0012\u0004\u0012\u00020\u0014\u0012\u0004\u0012\u00020\u00150\u0013\u001a&\u0010\u0016\u001a\u00020\u0002*\u00020\u00022\u0006\u0010\u0010\u001a\u00020\u00022\u0008\u0008\u0002\u0010\u0011\u001a\u00020\u000f2\u0008\u0008\u0002\u0010\u0017\u001a\u00020\u0018\u001a\n\u0010\u0019\u001a\u00020\u000f*\u00020\u0002\u001a\u0012\u0010\u001a\u001a\u00020\u000f*\u00020\u00022\u0006\u0010\u001b\u001a\u00020\u0002\u001a\u0012\u0010\u001a\u001a\u00020\u000f*\u00020\u00022\u0006\u0010\u001b\u001a\u00020\u0001\u001a\n\u0010\u001c\u001a\u00020\u0002*\u00020\u0002\u001a\u001d\u0010\u001c\u001a\u0008\u0012\u0004\u0012\u00020\u00020\u001d*\u0008\u0012\u0004\u0012\u00020\u00020\u001dH\u0002\u00a2\u0006\u0002\u0008\u001e\u001a\u0011\u0010\u001c\u001a\u00020\u001f*\u00020\u001fH\u0002\u00a2\u0006\u0002\u0008\u001e\u001a\u0012\u0010 \u001a\u00020\u0002*\u00020\u00022\u0006\u0010!\u001a\u00020\u0002\u001a\u0014\u0010\"\u001a\u0004\u0018\u00010\u0002*\u00020\u00022\u0006\u0010!\u001a\u00020\u0002\u001a\u0012\u0010#\u001a\u00020\u0002*\u00020\u00022\u0006\u0010!\u001a\u00020\u0002\u001a\u0012\u0010$\u001a\u00020\u0002*\u00020\u00022\u0006\u0010%\u001a\u00020\u0002\u001a\u0012\u0010$\u001a\u00020\u0002*\u00020\u00022\u0006\u0010%\u001a\u00020\u0001\u001a\u0012\u0010&\u001a\u00020\u0002*\u00020\u00022\u0006\u0010%\u001a\u00020\u0002\u001a\u0012\u0010&\u001a\u00020\u0002*\u00020\u00022\u0006\u0010%\u001a\u00020\u0001\u001a\u0012\u0010\'\u001a\u00020\u000f*\u00020\u00022\u0006\u0010\u001b\u001a\u00020\u0002\u001a\u0012\u0010\'\u001a\u00020\u000f*\u00020\u00022\u0006\u0010\u001b\u001a\u00020\u0001\u001a\u0012\u0010(\u001a\u00020\u0001*\u00020\u00022\u0006\u0010!\u001a\u00020\u0002\u001a\u001b\u0010)\u001a\u0004\u0018\u00010\u0001*\u00020\u00022\u0006\u0010!\u001a\u00020\u0002H\u0002\u00a2\u0006\u0002\u0008*\"\u0015\u0010\u0000\u001a\u00020\u0001*\u00020\u00028F\u00a2\u0006\u0006\u001a\u0004\u0008\u0003\u0010\u0004\"\u0015\u0010\u0005\u001a\u00020\u0001*\u00020\u00028F\u00a2\u0006\u0006\u001a\u0004\u0008\u0006\u0010\u0004\"\u0015\u0010\u0007\u001a\u00020\u0001*\u00020\u00028F\u00a2\u0006\u0006\u001a\u0004\u0008\u0008\u0010\u0004\u00a8\u0006+"
}
d2 = {
"extension",
"",
"Ljava/io/File;",
"getExtension",
"(Ljava/io/File;)Ljava/lang/String;",
"invariantSeparatorsPath",
"getInvariantSeparatorsPath",
"nameWithoutExtension",
"getNameWithoutExtension",
"createTempDir",
"prefix",
"suffix",
"directory",
"createTempFile",
"copyRecursively",
"",
"target",
"overwrite",
"onError",
"Lkotlin/Function2;",
"Ljava/io/IOException;",
"Lkotlin/io/OnErrorAction;",
"copyTo",
"bufferSize",
"",
"deleteRecursively",
"endsWith",
"other",
"normalize",
"",
"normalize$FilesKt__UtilsKt",
"Lkotlin/io/FilePathComponents;",
"relativeTo",
"base",
"relativeToOrNull",
"relativeToOrSelf",
"resolve",
"relative",
"resolveSibling",
"startsWith",
"toRelativeString",
"toRelativeStringOrNull",
"toRelativeStringOrNull$FilesKt__UtilsKt",
"kotlin-stdlib"
}
k = 0x5
mv = {
0x1,
0x4,
0x1
}
xi = 0x1
xs = "kotlin/io/FilesKt"
.end annotation
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Lkotlin/io/FilesKt__FileTreeWalkKt;-><init>()V
return-void
.end method
.method public static final copyRecursively(Ljava/io/File;Ljava/io/File;ZLkotlin/jvm/functions/Function2;)Z
.registers 15
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/File;",
"Ljava/io/File;",
"Z",
"Lkotlin/jvm/functions/Function2<",
"-",
"Ljava/io/File;",
"-",
"Ljava/io/IOException;",
"+",
"Lkotlin/io/OnErrorAction;",
">;)Z"
}
.end annotation
const-string v0, "$this$copyRecursively"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string/jumbo v0, "target"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "onError"
invoke-static {p3, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v0
const/4 v1, 0x1
const/4 v2, 0x0
if-nez v0, :cond_31
new-instance p1, Lkotlin/io/NoSuchFileException;
const/4 v5, 0x0
const/4 v7, 0x2
const/4 v8, 0x0
const-string v6, "The source file doesn\'t exist."
move-object v3, p1
move-object v4, p0
invoke-direct/range {v3 .. v8}, Lkotlin/io/NoSuchFileException;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
invoke-interface {p3, p0, p1}, Lkotlin/jvm/functions/Function2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Lkotlin/io/OnErrorAction;
sget-object p1, Lkotlin/io/OnErrorAction;->TERMINATE:Lkotlin/io/OnErrorAction;
if-eq p0, p1, :cond_2f
goto :goto_30
:cond_2f
const/4 v1, 0x0
:goto_30
return v1
:cond_31
:try_start_31
invoke-static {p0}, Lkotlin/io/FilesKt__FileTreeWalkKt;->walkTopDown(Ljava/io/File;)Lkotlin/io/FileTreeWalk;
move-result-object v0
new-instance v3, Lkotlin/io/FilesKt__UtilsKt$copyRecursively$2;
invoke-direct {v3, p3}, Lkotlin/io/FilesKt__UtilsKt$copyRecursively$2;-><init>(Lkotlin/jvm/functions/Function2;)V
invoke-virtual {v0, v3}, Lkotlin/io/FileTreeWalk;->onFail(Lkotlin/jvm/functions/Function2;)Lkotlin/io/FileTreeWalk;
move-result-object v0
invoke-virtual {v0}, Lkotlin/io/FileTreeWalk;->iterator()Ljava/util/Iterator;
move-result-object v0
:cond_42
:goto_42
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_e4
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/io/File;
invoke-virtual {v3}, Ljava/io/File;->exists()Z
move-result v4
if-nez v4, :cond_6b
new-instance v10, Lkotlin/io/NoSuchFileException;
const/4 v6, 0x0
const-string v7, "The source file doesn\'t exist."
const/4 v8, 0x2
const/4 v9, 0x0
move-object v4, v10
move-object v5, v3
invoke-direct/range {v4 .. v9}, Lkotlin/io/NoSuchFileException;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
invoke-interface {p3, v3, v10}, Lkotlin/jvm/functions/Function2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lkotlin/io/OnErrorAction;
sget-object v4, Lkotlin/io/OnErrorAction;->TERMINATE:Lkotlin/io/OnErrorAction;
if-ne v3, v4, :cond_42
return v2
:cond_6b
invoke-static {v3, p0}, Lkotlin/io/FilesKt__UtilsKt;->toRelativeString(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
move-result-object v4
new-instance v5, Ljava/io/File;
invoke-direct {v5, p1, v4}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
invoke-virtual {v5}, Ljava/io/File;->exists()Z
move-result v4
if-eqz v4, :cond_b3
invoke-virtual {v3}, Ljava/io/File;->isDirectory()Z
move-result v4
if-eqz v4, :cond_86
invoke-virtual {v5}, Ljava/io/File;->isDirectory()Z
move-result v4
if-nez v4, :cond_b3
:cond_86
if-nez p2, :cond_8a
:goto_88
const/4 v4, 0x1
goto :goto_9f
:cond_8a
invoke-virtual {v5}, Ljava/io/File;->isDirectory()Z
move-result v4
if-eqz v4, :cond_97
invoke-static {v5}, Lkotlin/io/FilesKt__UtilsKt;->deleteRecursively(Ljava/io/File;)Z
move-result v4
if-nez v4, :cond_9e
goto :goto_88
:cond_97
invoke-virtual {v5}, Ljava/io/File;->delete()Z
move-result v4
if-nez v4, :cond_9e
goto :goto_88
:cond_9e
const/4 v4, 0x0
:goto_9f
if-eqz v4, :cond_b3
new-instance v4, Lkotlin/io/FileAlreadyExistsException;
const-string v6, "The destination file already exists."
invoke-direct {v4, v3, v5, v6}, Lkotlin/io/FileAlreadyExistsException;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)V
invoke-interface {p3, v5, v4}, Lkotlin/jvm/functions/Function2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lkotlin/io/OnErrorAction;
sget-object v4, Lkotlin/io/OnErrorAction;->TERMINATE:Lkotlin/io/OnErrorAction;
if-ne v3, v4, :cond_42
return v2
:cond_b3
invoke-virtual {v3}, Ljava/io/File;->isDirectory()Z
move-result v4
if-eqz v4, :cond_bd
invoke-virtual {v5}, Ljava/io/File;->mkdirs()Z
goto :goto_42
:cond_bd
const/4 v7, 0x0
const/4 v8, 0x4
const/4 v9, 0x0
move-object v4, v3
move v6, p2
invoke-static/range {v4 .. v9}, Lkotlin/io/FilesKt__UtilsKt;->copyTo$default(Ljava/io/File;Ljava/io/File;ZIILjava/lang/Object;)Ljava/io/File;
move-result-object v4
invoke-virtual {v4}, Ljava/io/File;->length()J
move-result-wide v4
invoke-virtual {v3}, Ljava/io/File;->length()J
move-result-wide v6
cmp-long v8, v4, v6
if-eqz v8, :cond_42
new-instance v4, Ljava/io/IOException;
const-string v5, "Source file wasn\'t copied completely, length of destination file differs."
invoke-direct {v4, v5}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
invoke-interface {p3, v3, v4}, Lkotlin/jvm/functions/Function2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lkotlin/io/OnErrorAction;
sget-object v4, Lkotlin/io/OnErrorAction;->TERMINATE:Lkotlin/io/OnErrorAction;
:try_end_e1
.catch Lkotlin/io/TerminateException; {:try_start_31 .. :try_end_e1} :catch_e5
if-ne v3, v4, :cond_42
return v2
:cond_e4
return v1
:catch_e5
return v2
.end method
.method public static synthetic copyRecursively$default(Ljava/io/File;Ljava/io/File;ZLkotlin/jvm/functions/Function2;ILjava/lang/Object;)Z
.registers 6
and-int/lit8 p5, p4, 0x2
if-eqz p5, :cond_5
const/4 p2, 0x0
:cond_5
and-int/lit8 p4, p4, 0x4
if-eqz p4, :cond_b
sget-object p3, Lkotlin/io/FilesKt__UtilsKt$copyRecursively$1;->INSTANCE:Lkotlin/io/FilesKt__UtilsKt$copyRecursively$1;
:cond_b
invoke-static {p0, p1, p2, p3}, Lkotlin/io/FilesKt__UtilsKt;->copyRecursively(Ljava/io/File;Ljava/io/File;ZLkotlin/jvm/functions/Function2;)Z
move-result p0
return p0
.end method
.method public static final copyTo(Ljava/io/File;Ljava/io/File;ZI)Ljava/io/File;
.registers 10
const-string v0, "$this$copyTo"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string/jumbo v0, "target"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_71
invoke-virtual {p1}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_30
if-eqz p2, :cond_28
invoke-virtual {p1}, Ljava/io/File;->delete()Z
move-result p2
if-eqz p2, :cond_20
goto :goto_30
:cond_20
new-instance p2, Lkotlin/io/FileAlreadyExistsException;
const-string p3, "Tried to overwrite the destination, but failed to delete it."
invoke-direct {p2, p0, p1, p3}, Lkotlin/io/FileAlreadyExistsException;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)V
throw p2
:cond_28
new-instance p2, Lkotlin/io/FileAlreadyExistsException;
const-string p3, "The destination file already exists."
invoke-direct {p2, p0, p1, p3}, Lkotlin/io/FileAlreadyExistsException;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)V
throw p2
:cond_30
:goto_30
invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z
move-result p2
if-eqz p2, :cond_45
invoke-virtual {p1}, Ljava/io/File;->mkdirs()Z
move-result p2
if-eqz p2, :cond_3d
goto :goto_62
:cond_3d
new-instance p2, Lkotlin/io/FileSystemException;
const-string p3, "Failed to create target directory."
invoke-direct {p2, p0, p1, p3}, Lkotlin/io/FileSystemException;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)V
throw p2
:cond_45
invoke-virtual {p1}, Ljava/io/File;->getParentFile()Ljava/io/File;
move-result-object p2
if-eqz p2, :cond_4e
invoke-virtual {p2}, Ljava/io/File;->mkdirs()Z
:cond_4e
new-instance p2, Ljava/io/FileInputStream;
invoke-direct {p2, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
:try_start_53
new-instance p0, Ljava/io/FileOutputStream;
invoke-direct {p0, p1}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
:try_end_58
.catchall {:try_start_53 .. :try_end_58} :catchall_6a
:try_start_58
invoke-static {p2, p0, p3}, Lkotlin/io/ByteStreamsKt;->copyTo(Ljava/io/InputStream;Ljava/io/OutputStream;I)J
:try_end_5b
.catchall {:try_start_58 .. :try_end_5b} :catchall_63
const/4 p3, 0x0
:try_start_5c
invoke-static {p0, p3}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V
:try_end_5f
.catchall {:try_start_5c .. :try_end_5f} :catchall_6a
invoke-static {p2, p3}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V
:goto_62
return-object p1
:catchall_63
move-exception p1
:try_start_64
throw p1
:try_end_65
.catchall {:try_start_64 .. :try_end_65} :catchall_65
:catchall_65
move-exception p3
:try_start_66
invoke-static {p0, p1}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V
throw p3
:try_end_6a
.catchall {:try_start_66 .. :try_end_6a} :catchall_6a
:catchall_6a
move-exception p0
:try_start_6b
throw p0
:try_end_6c
.catchall {:try_start_6b .. :try_end_6c} :catchall_6c
:catchall_6c
move-exception p1
invoke-static {p2, p0}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V
throw p1
:cond_71
new-instance p1, Lkotlin/io/NoSuchFileException;
const/4 v2, 0x0
const/4 v4, 0x2
const/4 v5, 0x0
const-string v3, "The source file doesn\'t exist."
move-object v0, p1
move-object v1, p0
invoke-direct/range {v0 .. v5}, Lkotlin/io/NoSuchFileException;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
throw p1
.end method
.method public static synthetic copyTo$default(Ljava/io/File;Ljava/io/File;ZIILjava/lang/Object;)Ljava/io/File;
.registers 6
and-int/lit8 p5, p4, 0x2
if-eqz p5, :cond_5
const/4 p2, 0x0
:cond_5
and-int/lit8 p4, p4, 0x4
if-eqz p4, :cond_b
const/16 p3, 0x2000
:cond_b
invoke-static {p0, p1, p2, p3}, Lkotlin/io/FilesKt__UtilsKt;->copyTo(Ljava/io/File;Ljava/io/File;ZI)Ljava/io/File;
move-result-object p0
return-object p0
.end method
.method public static final createTempDir(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
.registers 4
.annotation runtime Lkotlin/Deprecated;
message = "Avoid creating temporary directories in the default temp location with this function due to too wide permissions on the newly created directory. Use kotlin.io.path.createTempDirectory instead."
.end annotation
const-string v0, "prefix"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
invoke-static {p0, p1, p2}, Ljava/io/File;->createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
move-result-object p0
invoke-virtual {p0}, Ljava/io/File;->delete()Z
invoke-virtual {p0}, Ljava/io/File;->mkdir()Z
move-result p1
if-eqz p1, :cond_18
const-string p1, "dir"
invoke-static {p0, p1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
return-object p0
:cond_18
new-instance p1, Ljava/io/IOException;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "Unable to create temporary directory "
invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const/16 p0, 0x2e
invoke-virtual {p2, p0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {p1, p0}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public static synthetic createTempDir$default(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;ILjava/lang/Object;)Ljava/io/File;
.registers 6
and-int/lit8 p4, p3, 0x1
if-eqz p4, :cond_7
const-string/jumbo p0, "tmp"
:cond_7
and-int/lit8 p4, p3, 0x2
const/4 v0, 0x0
if-eqz p4, :cond_d
move-object p1, v0
:cond_d
and-int/lit8 p3, p3, 0x4
if-eqz p3, :cond_12
move-object p2, v0
:cond_12
invoke-static {p0, p1, p2}, Lkotlin/io/FilesKt__UtilsKt;->createTempDir(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
move-result-object p0
return-object p0
.end method
.method public static final createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
.registers 4
.annotation runtime Lkotlin/Deprecated;
message = "Avoid creating temporary files in the default temp location with this function due to too wide permissions on the newly created file. Use kotlin.io.path.createTempFile instead or resort to java.io.File.createTempFile."
.end annotation
const-string v0, "prefix"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
invoke-static {p0, p1, p2}, Ljava/io/File;->createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
move-result-object p0
const-string p1, "File.createTempFile(prefix, suffix, directory)"
invoke-static {p0, p1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
return-object p0
.end method
.method public static synthetic createTempFile$default(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;ILjava/lang/Object;)Ljava/io/File;
.registers 6
and-int/lit8 p4, p3, 0x1
if-eqz p4, :cond_7
const-string/jumbo p0, "tmp"
:cond_7
and-int/lit8 p4, p3, 0x2
const/4 v0, 0x0
if-eqz p4, :cond_d
move-object p1, v0
:cond_d
and-int/lit8 p3, p3, 0x4
if-eqz p3, :cond_12
move-object p2, v0
:cond_12
invoke-static {p0, p1, p2}, Lkotlin/io/FilesKt__UtilsKt;->createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
move-result-object p0
return-object p0
.end method
.method public static final deleteRecursively(Ljava/io/File;)Z
.registers 5
const-string v0, "$this$deleteRecursively"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
invoke-static {p0}, Lkotlin/io/FilesKt__FileTreeWalkKt;->walkBottomUp(Ljava/io/File;)Lkotlin/io/FileTreeWalk;
move-result-object p0
invoke-interface {p0}, Lkotlin/sequences/Sequence;->iterator()Ljava/util/Iterator;
move-result-object p0
const/4 v0, 0x1
:goto_e
const/4 v1, 0x1
:goto_f
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_2c
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/io/File;
invoke-virtual {v2}, Ljava/io/File;->delete()Z
move-result v3
if-nez v3, :cond_27
invoke-virtual {v2}, Ljava/io/File;->exists()Z
move-result v2
if-nez v2, :cond_2a
:cond_27
if-eqz v1, :cond_2a
goto :goto_e
:cond_2a
const/4 v1, 0x0
goto :goto_f
:cond_2c
return v1
.end method
.method public static final endsWith(Ljava/io/File;Ljava/io/File;)Z
.registers 5
const-string v0, "$this$endsWith"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "other"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
invoke-static {p0}, Lkotlin/io/FilesKt__FilePathComponentsKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object v0
invoke-static {p1}, Lkotlin/io/FilesKt__FilePathComponentsKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object v1
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->isRooted()Z
move-result v2
if-eqz v2, :cond_1d
invoke-static {p0, p1}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result p0
return p0
:cond_1d
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSize()I
move-result p0
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->getSize()I
move-result p1
sub-int/2addr p0, p1
if-gez p0, :cond_2a
const/4 p0, 0x0
goto :goto_3e
:cond_2a
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object p1
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v0
invoke-interface {p1, p0, v0}, Ljava/util/List;->subList(II)Ljava/util/List;
move-result-object p0
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object p1
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
:goto_3e
return p0
.end method
.method public static final endsWith(Ljava/io/File;Ljava/lang/String;)Z
.registers 3
const-string v0, "$this$endsWith"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "other"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
new-instance v0, Ljava/io/File;
invoke-direct {v0, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-static {p0, v0}, Lkotlin/io/FilesKt__UtilsKt;->endsWith(Ljava/io/File;Ljava/io/File;)Z
move-result p0
return p0
.end method
.method public static final getExtension(Ljava/io/File;)Ljava/lang/String;
.registers 3
const-string v0, "$this$extension"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
invoke-virtual {p0}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object p0
const-string v0, "name"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
const/16 v0, 0x2e
const-string v1, ""
invoke-static {p0, v0, v1}, Lkotlin/text/StringsKt__StringsKt;->substringAfterLast(Ljava/lang/String;CLjava/lang/String;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static final getInvariantSeparatorsPath(Ljava/io/File;)Ljava/lang/String;
.registers 10
const-string v0, "$this$invariantSeparatorsPath"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
sget-char v0, Ljava/io/File;->separatorChar:C
const-string v1, "path"
const/16 v2, 0x2f
if-eq v0, v2, :cond_20
invoke-virtual {p0}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v3
invoke-static {v3, v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
sget-char v4, Ljava/io/File;->separatorChar:C
const/16 v5, 0x2f
const/4 v6, 0x0
const/4 v7, 0x4
const/4 v8, 0x0
invoke-static/range {v3 .. v8}, Lkotlin/text/StringsKt__StringsJVMKt;->replace$default(Ljava/lang/String;CCZILjava/lang/Object;)Ljava/lang/String;
move-result-object p0
goto :goto_27
:cond_20
invoke-virtual {p0}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object p0
invoke-static {p0, v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
:goto_27
return-object p0
.end method
.method public static final getNameWithoutExtension(Ljava/io/File;)Ljava/lang/String;
.registers 4
const-string v0, "$this$nameWithoutExtension"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
invoke-virtual {p0}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object p0
const-string v0, "name"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
const/4 v0, 0x0
const-string v1, "."
const/4 v2, 0x2
invoke-static {p0, v1, v0, v2, v0}, Lkotlin/text/StringsKt__StringsKt;->substringBeforeLast$default(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static final normalize(Ljava/io/File;)Ljava/io/File;
.registers 11
const-string v0, "$this$normalize"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
invoke-static {p0}, Lkotlin/io/FilesKt__FilePathComponentsKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object p0
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File;
move-result-object v0
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object p0
invoke-static {p0}, Lkotlin/io/FilesKt__UtilsKt;->normalize$FilesKt__UtilsKt(Ljava/util/List;)Ljava/util/List;
move-result-object v1
sget-object v2, Ljava/io/File;->separator:Ljava/lang/String;
const-string p0, "File.separator"
invoke-static {v2, p0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
const/4 v3, 0x0
const/4 v4, 0x0
const/4 v5, 0x0
const/4 v6, 0x0
const/4 v7, 0x0
const/16 v8, 0x3e
const/4 v9, 0x0
invoke-static/range {v1 .. v9}, Lkotlin/collections/CollectionsKt___CollectionsKt;->joinToString$default(Ljava/lang/Iterable;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ILjava/lang/CharSequence;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ljava/lang/String;
move-result-object p0
invoke-static {v0, p0}, Lkotlin/io/FilesKt__UtilsKt;->resolve(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
move-result-object p0
return-object p0
.end method
.method public static final normalize$FilesKt__UtilsKt(Ljava/util/List;)Ljava/util/List;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"+",
"Ljava/io/File;",
">;)",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
new-instance v0, Ljava/util/ArrayList;
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v1
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p0
:goto_d
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_68
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/io/File;
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
if-nez v2, :cond_20
goto :goto_64
:cond_20
invoke-virtual {v2}, Ljava/lang/String;->hashCode()I
move-result v3
const/16 v4, 0x2e
if-eq v3, v4, :cond_5b
const/16 v4, 0x5c0
if-eq v3, v4, :cond_2d
goto :goto_64
:cond_2d
const-string v3, ".."
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_64
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v2
if-nez v2, :cond_57
invoke-static {v0}, Lkotlin/collections/CollectionsKt___CollectionsKt;->last(Ljava/util/List;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/io/File;
invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
invoke-static {v2, v3}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v2
xor-int/lit8 v2, v2, 0x1
if-eqz v2, :cond_57
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
add-int/lit8 v1, v1, -0x1
invoke-interface {v0, v1}, Ljava/util/List;->remove(I)Ljava/lang/Object;
goto :goto_d
:cond_57
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_d
:cond_5b
const-string v3, "."
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_64
goto :goto_d
:cond_64
:goto_64
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_d
:cond_68
return-object v0
.end method
.method public static final normalize$FilesKt__UtilsKt(Lkotlin/io/FilePathComponents;)Lkotlin/io/FilePathComponents;
.registers 3
new-instance v0, Lkotlin/io/FilePathComponents;
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File;
move-result-object v1
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object p0
invoke-static {p0}, Lkotlin/io/FilesKt__UtilsKt;->normalize$FilesKt__UtilsKt(Ljava/util/List;)Ljava/util/List;
move-result-object p0
invoke-direct {v0, v1, p0}, Lkotlin/io/FilePathComponents;-><init>(Ljava/io/File;Ljava/util/List;)V
return-object v0
.end method
.method public static final relativeTo(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
.registers 3
const-string v0, "$this$relativeTo"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "base"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
new-instance v0, Ljava/io/File;
invoke-static {p0, p1}, Lkotlin/io/FilesKt__UtilsKt;->toRelativeString(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
return-object v0
.end method
.method public static final relativeToOrNull(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
.registers 3
const-string v0, "$this$relativeToOrNull"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "base"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
invoke-static {p0, p1}, Lkotlin/io/FilesKt__UtilsKt;->toRelativeStringOrNull$FilesKt__UtilsKt(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
move-result-object p0
if-eqz p0, :cond_16
new-instance p1, Ljava/io/File;
invoke-direct {p1, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
goto :goto_17
:cond_16
const/4 p1, 0x0
:goto_17
return-object p1
.end method
.method public static final relativeToOrSelf(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
.registers 3
const-string v0, "$this$relativeToOrSelf"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "base"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
invoke-static {p0, p1}, Lkotlin/io/FilesKt__UtilsKt;->toRelativeStringOrNull$FilesKt__UtilsKt(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
move-result-object p1
if-eqz p1, :cond_15
new-instance p0, Ljava/io/File;
invoke-direct {p0, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
:cond_15
return-object p0
.end method
.method public static final resolve(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
.registers 6
const-string v0, "$this$resolve"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "relative"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
invoke-static {p1}, Lkotlin/io/FilesKt__FilePathComponentsKt;->isRooted(Ljava/io/File;)Z
move-result v0
if-eqz v0, :cond_11
return-object p1
:cond_11
invoke-virtual {p0}, Ljava/io/File;->toString()Ljava/lang/String;
move-result-object p0
const-string/jumbo v0, "this.toString()"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
invoke-interface {p0}, Ljava/lang/CharSequence;->length()I
move-result v0
const/4 v1, 0x0
if-nez v0, :cond_24
const/4 v0, 0x1
goto :goto_25
:cond_24
const/4 v0, 0x0
:goto_25
if-nez v0, :cond_4c
sget-char v0, Ljava/io/File;->separatorChar:C
const/4 v2, 0x2
const/4 v3, 0x0
invoke-static {p0, v0, v1, v2, v3}, Lkotlin/text/StringsKt__StringsKt;->endsWith$default(Ljava/lang/CharSequence;CZILjava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_32
goto :goto_4c
:cond_32
new-instance v0, Ljava/io/File;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-char p0, Ljava/io/File;->separatorChar:C
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
goto :goto_60
:cond_4c
:goto_4c
new-instance v0, Ljava/io/File;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
:goto_60
return-object v0
.end method
.method public static final resolve(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
.registers 3
const-string v0, "$this$resolve"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "relative"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
new-instance v0, Ljava/io/File;
invoke-direct {v0, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-static {p0, v0}, Lkotlin/io/FilesKt__UtilsKt;->resolve(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
move-result-object p0
return-object p0
.end method
.method public static final resolveSibling(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
.registers 4
const-string v0, "$this$resolveSibling"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "relative"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
invoke-static {p0}, Lkotlin/io/FilesKt__FilePathComponentsKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object p0
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v0
if-nez v0, :cond_1c
new-instance v0, Ljava/io/File;
const-string v1, ".."
invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
goto :goto_27
:cond_1c
const/4 v0, 0x0
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v1
add-int/lit8 v1, v1, -0x1
invoke-virtual {p0, v0, v1}, Lkotlin/io/FilePathComponents;->subPath(II)Ljava/io/File;
move-result-object v0
:goto_27
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File;
move-result-object p0
invoke-static {p0, v0}, Lkotlin/io/FilesKt__UtilsKt;->resolve(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
move-result-object p0
invoke-static {p0, p1}, Lkotlin/io/FilesKt__UtilsKt;->resolve(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
move-result-object p0
return-object p0
.end method
.method public static final resolveSibling(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
.registers 3
const-string v0, "$this$resolveSibling"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "relative"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
new-instance v0, Ljava/io/File;
invoke-direct {v0, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-static {p0, v0}, Lkotlin/io/FilesKt__UtilsKt;->resolveSibling(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
move-result-object p0
return-object p0
.end method
.method public static final startsWith(Ljava/io/File;Ljava/io/File;)Z
.registers 5
const-string v0, "$this$startsWith"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "other"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
invoke-static {p0}, Lkotlin/io/FilesKt__FilePathComponentsKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object p0
invoke-static {p1}, Lkotlin/io/FilesKt__FilePathComponentsKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object p1
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File;
move-result-object v0
invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File;
move-result-object v1
invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v0
xor-int/lit8 v0, v0, 0x1
const/4 v1, 0x0
if-eqz v0, :cond_24
return v1
:cond_24
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v0
invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v2
if-ge v0, v2, :cond_2f
goto :goto_43
:cond_2f
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object p0
invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v0
invoke-interface {p0, v1, v0}, Ljava/util/List;->subList(II)Ljava/util/List;
move-result-object p0
invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object p1
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v1
:goto_43
return v1
.end method
.method public static final startsWith(Ljava/io/File;Ljava/lang/String;)Z
.registers 3
const-string v0, "$this$startsWith"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "other"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
new-instance v0, Ljava/io/File;
invoke-direct {v0, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-static {p0, v0}, Lkotlin/io/FilesKt__UtilsKt;->startsWith(Ljava/io/File;Ljava/io/File;)Z
move-result p0
return p0
.end method
.method public static final toRelativeString(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
.registers 5
const-string v0, "$this$toRelativeString"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "base"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
invoke-static {p0, p1}, Lkotlin/io/FilesKt__UtilsKt;->toRelativeStringOrNull$FilesKt__UtilsKt(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
move-result-object v0
if-eqz v0, :cond_11
return-object v0
:cond_11
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "this and base files have different roots: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string p0, " and "
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const/16 p0, 0x2e
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static final toRelativeStringOrNull$FilesKt__UtilsKt(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
.registers 19
invoke-static/range {p0 .. p0}, Lkotlin/io/FilesKt__FilePathComponentsKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object v0
invoke-static {v0}, Lkotlin/io/FilesKt__UtilsKt;->normalize$FilesKt__UtilsKt(Lkotlin/io/FilePathComponents;)Lkotlin/io/FilePathComponents;
move-result-object v0
invoke-static/range {p1 .. p1}, Lkotlin/io/FilesKt__FilePathComponentsKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object v1
invoke-static {v1}, Lkotlin/io/FilesKt__UtilsKt;->normalize$FilesKt__UtilsKt(Lkotlin/io/FilePathComponents;)Lkotlin/io/FilePathComponents;
move-result-object v1
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File;
move-result-object v2
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File;
move-result-object v3
invoke-static {v2, v3}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v2
xor-int/lit8 v2, v2, 0x1
const/4 v3, 0x0
if-eqz v2, :cond_22
return-object v3
:cond_22
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v2
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v4
const/4 v5, 0x0
invoke-static {v4, v2}, Ljava/lang/Math;->min(II)I
move-result v6
:goto_2f
if-ge v5, v6, :cond_4e
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object v7
invoke-interface {v7, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v7
check-cast v7, Ljava/io/File;
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object v8
invoke-interface {v8, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v8
check-cast v8, Ljava/io/File;
invoke-static {v7, v8}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v7
if-eqz v7, :cond_4e
add-int/lit8 v5, v5, 0x1
goto :goto_2f
:cond_4e
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
add-int/lit8 v7, v2, -0x1
if-lt v7, v5, :cond_7d
:goto_57
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object v8
invoke-interface {v8, v7}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v8
check-cast v8, Ljava/io/File;
invoke-virtual {v8}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v8
const-string v9, ".."
invoke-static {v8, v9}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v8
if-eqz v8, :cond_6e
return-object v3
:cond_6e
invoke-virtual {v6, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
if-eq v7, v5, :cond_78
sget-char v8, Ljava/io/File;->separatorChar:C
invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:cond_78
if-eq v7, v5, :cond_7d
add-int/lit8 v7, v7, -0x1
goto :goto_57
:cond_7d
if-ge v5, v4, :cond_a2
if-ge v5, v2, :cond_86
sget-char v1, Ljava/io/File;->separatorChar:C
invoke-virtual {v6, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:cond_86
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object v0
invoke-static {v0, v5}, Lkotlin/collections/CollectionsKt___CollectionsKt;->drop(Ljava/lang/Iterable;I)Ljava/util/List;
move-result-object v7
sget-object v9, Ljava/io/File;->separator:Ljava/lang/String;
const-string v0, "File.separator"
invoke-static {v9, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
const/4 v10, 0x0
const/4 v11, 0x0
const/4 v12, 0x0
const/4 v13, 0x0
const/4 v14, 0x0
const/16 v15, 0x7c
const/16 v16, 0x0
move-object v8, v6
invoke-static/range {v7 .. v16}, Lkotlin/collections/CollectionsKt___CollectionsKt;->joinTo$default(Ljava/lang/Iterable;Ljava/lang/Appendable;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ILjava/lang/CharSequence;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ljava/lang/Appendable;
:cond_a2
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method