FilesKt__UtilsKt.smali
.class Lkotlin/io/FilesKt__UtilsKt;
.super Lkotlin/io/FilesKt__FileTreeWalkKt;
.source "Utils.kt"
# annotations
.annotation system Ldalvik/annotation/SourceDebugExtension;
value = "SMAP\nUtils.kt\nKotlin\n*S Kotlin\n*F\n+ 1 Utils.kt\nkotlin/io/FilesKt__UtilsKt\n+ 2 fake.kt\nkotlin/jvm/internal/FakeKt\n+ 3 _Sequences.kt\nkotlin/sequences/SequencesKt___SequencesKt\n*L\n1#1,447:1\n1#2:448\n1217#3,3:449\n*E\n*S KotlinDebug\n*F\n+ 1 Utils.kt\nkotlin/io/FilesKt__UtilsKt\n*L\n321#1,3:449\n*E\n"
.end annotation
.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\u0002\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\u0002\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,
0x0
}
xi = 0x1
xs = "kotlin/io/FilesKt"
.end annotation
# direct methods
.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 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
.line 267
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v0
const/4 v1, 0x1
const/4 v2, 0x0
if-nez v0, :cond_30
.line 268
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_2e
goto :goto_2f
:cond_2e
const/4 v1, 0x0
:goto_2f
return v1
.line 273
:cond_30
:try_start_30
invoke-static {p0}, Lkotlin/io/FilesKt;->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
check-cast v3, Lkotlin/jvm/functions/Function2;
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_43
:goto_43
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_e5
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/io/File;
.line 274
invoke-virtual {v3}, Ljava/io/File;->exists()Z
move-result v4
if-nez v4, :cond_6c
.line 275
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_43
return v2
.line 279
:cond_6c
invoke-static {v3, p0}, Lkotlin/io/FilesKt;->toRelativeString(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
move-result-object v4
.line 280
new-instance v5, Ljava/io/File;
invoke-direct {v5, p1, v4}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
.line 281
invoke-virtual {v5}, Ljava/io/File;->exists()Z
move-result v4
if-eqz v4, :cond_b4
invoke-virtual {v3}, Ljava/io/File;->isDirectory()Z
move-result v4
if-eqz v4, :cond_87
invoke-virtual {v5}, Ljava/io/File;->isDirectory()Z
move-result v4
if-nez v4, :cond_b4
:cond_87
if-nez p2, :cond_8b
:goto_89
const/4 v4, 0x1
goto :goto_a0
.line 283
:cond_8b
invoke-virtual {v5}, Ljava/io/File;->isDirectory()Z
move-result v4
if-eqz v4, :cond_98
.line 284
invoke-static {v5}, Lkotlin/io/FilesKt;->deleteRecursively(Ljava/io/File;)Z
move-result v4
if-nez v4, :cond_9f
goto :goto_89
.line 286
:cond_98
invoke-virtual {v5}, Ljava/io/File;->delete()Z
move-result v4
if-nez v4, :cond_9f
goto :goto_89
:cond_9f
const/4 v4, 0x0
:goto_a0
if-eqz v4, :cond_b4
.line 290
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_43
return v2
.line 299
:cond_b4
invoke-virtual {v3}, Ljava/io/File;->isDirectory()Z
move-result v4
if-eqz v4, :cond_be
.line 300
invoke-virtual {v5}, Ljava/io/File;->mkdirs()Z
goto :goto_43
:cond_be
const/4 v7, 0x0
const/4 v8, 0x4
const/4 v9, 0x0
move-object v4, v3
move v6, p2
.line 302
invoke-static/range {v4 .. v9}, Lkotlin/io/FilesKt;->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_43
.line 303
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_e2
.catch Lkotlin/io/TerminateException; {:try_start_30 .. :try_end_e2} :catch_e6
if-ne v3, v4, :cond_43
return v2
:cond_e5
return v1
:catch_e6
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_d
.line 265
sget-object p3, Lkotlin/io/FilesKt__UtilsKt$copyRecursively$1;->INSTANCE:Lkotlin/io/FilesKt__UtilsKt$copyRecursively$1;
check-cast p3, Lkotlin/jvm/functions/Function2;
:cond_d
invoke-static {p0, p1, p2, p3}, Lkotlin/io/FilesKt;->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 v0, "target"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 192
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_89
.line 196
invoke-virtual {p1}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_33
if-eqz p2, :cond_29
.line 199
invoke-virtual {p1}, Ljava/io/File;->delete()Z
move-result p2
if-eqz p2, :cond_1f
goto :goto_33
.line 200
:cond_1f
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
check-cast p2, Ljava/lang/Throwable;
throw p2
.line 198
:cond_29
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
check-cast p2, Ljava/lang/Throwable;
throw p2
.line 203
:cond_33
:goto_33
invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z
move-result p2
if-eqz p2, :cond_4a
.line 204
invoke-virtual {p1}, Ljava/io/File;->mkdirs()Z
move-result p2
if-eqz p2, :cond_40
goto :goto_7a
.line 205
:cond_40
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
check-cast p2, Ljava/lang/Throwable;
throw p2
.line 207
:cond_4a
invoke-virtual {p1}, Ljava/io/File;->getParentFile()Ljava/io/File;
move-result-object p2
if-eqz p2, :cond_53
invoke-virtual {p2}, Ljava/io/File;->mkdirs()Z
.line 209
:cond_53
new-instance p2, Ljava/io/FileInputStream;
invoke-direct {p2, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
check-cast p2, Ljava/io/Closeable;
const/4 p0, 0x0
move-object v0, p0
check-cast v0, Ljava/lang/Throwable;
:try_start_5e
move-object v1, p2
check-cast v1, Ljava/io/FileInputStream;
.line 210
new-instance v2, Ljava/io/FileOutputStream;
invoke-direct {v2, p1}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
check-cast v2, Ljava/io/Closeable;
check-cast p0, Ljava/lang/Throwable;
:try_end_6a
.catchall {:try_start_5e .. :try_end_6a} :catchall_82
:try_start_6a
move-object v3, v2
check-cast v3, Ljava/io/FileOutputStream;
.line 211
check-cast v1, Ljava/io/InputStream;
check-cast v3, Ljava/io/OutputStream;
invoke-static {v1, v3, p3}, Lkotlin/io/ByteStreamsKt;->copyTo(Ljava/io/InputStream;Ljava/io/OutputStream;I)J
:try_end_74
.catchall {:try_start_6a .. :try_end_74} :catchall_7b
.line 210
:try_start_74
invoke-static {v2, p0}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V
:try_end_77
.catchall {:try_start_74 .. :try_end_77} :catchall_82
.line 209
invoke-static {p2, v0}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V
:goto_7a
return-object p1
:catchall_7b
move-exception p0
.line 210
:try_start_7c
throw p0
:try_end_7d
.catchall {:try_start_7c .. :try_end_7d} :catchall_7d
:catchall_7d
move-exception p1
:try_start_7e
invoke-static {v2, p0}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V
throw p1
:try_end_82
.catchall {:try_start_7e .. :try_end_82} :catchall_82
:catchall_82
move-exception p0
.line 209
:try_start_83
throw p0
:try_end_84
.catchall {:try_start_83 .. :try_end_84} :catchall_84
:catchall_84
move-exception p1
invoke-static {p2, p0}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V
throw p1
.line 193
:cond_89
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
check-cast p1, Ljava/lang/Throwable;
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
.line 191
:cond_b
invoke-static {p0, p1, p2, p3}, Lkotlin/io/FilesKt;->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
const-string v0, "prefix"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 32
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
.line 33
invoke-virtual {p0}, Ljava/io/File;->delete()Z
.line 34
invoke-virtual {p0}, Ljava/io/File;->mkdir()Z
move-result p1
if-eqz p1, :cond_18
const-string p1, "dir"
.line 35
invoke-static {p0, p1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
return-object p0
.line 37
: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
check-cast p1, Ljava/lang/Throwable;
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_6
const-string p0, "tmp"
:cond_6
and-int/lit8 p4, p3, 0x2
const/4 v0, 0x0
if-eqz p4, :cond_e
.line 31
move-object p1, v0
check-cast p1, Ljava/lang/String;
:cond_e
and-int/lit8 p3, p3, 0x4
if-eqz p3, :cond_15
move-object p2, v0
check-cast p2, Ljava/io/File;
:cond_15
invoke-static {p0, p1, p2}, Lkotlin/io/FilesKt;->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
const-string v0, "prefix"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 59
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_6
const-string p0, "tmp"
:cond_6
and-int/lit8 p4, p3, 0x2
const/4 v0, 0x0
if-eqz p4, :cond_e
.line 58
move-object p1, v0
check-cast p1, Ljava/lang/String;
:cond_e
and-int/lit8 p3, p3, 0x4
if-eqz p3, :cond_15
move-object p2, v0
check-cast p2, Ljava/io/File;
:cond_15
invoke-static {p0, p1, p2}, Lkotlin/io/FilesKt;->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
.line 321
invoke-static {p0}, Lkotlin/io/FilesKt;->walkBottomUp(Ljava/io/File;)Lkotlin/io/FileTreeWalk;
move-result-object p0
check-cast p0, Lkotlin/sequences/Sequence;
.line 450
invoke-interface {p0}, Lkotlin/sequences/Sequence;->iterator()Ljava/util/Iterator;
move-result-object p0
const/4 v0, 0x1
:goto_10
const/4 v1, 0x1
:goto_11
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_2e
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/io/File;
.line 321
invoke-virtual {v2}, Ljava/io/File;->delete()Z
move-result v3
if-nez v3, :cond_29
invoke-virtual {v2}, Ljava/io/File;->exists()Z
move-result v2
if-nez v2, :cond_2c
:cond_29
if-eqz v1, :cond_2c
goto :goto_10
:cond_2c
const/4 v1, 0x0
goto :goto_11
:cond_2e
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
.line 358
invoke-static {p0}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object v0
.line 359
invoke-static {p1}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object v1
.line 360
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->isRooted()Z
move-result v2
if-eqz v2, :cond_1d
.line 361
invoke-static {p0, p1}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result p0
return p0
.line 362
: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
.line 364
: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
.line 375
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;->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
.line 66
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;->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
.line 73
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;->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
.line 79
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-string v0, "."
const/4 v1, 0x0
const/4 v2, 0x2
invoke-static {p0, v0, v1, v2, v1}, Lkotlin/text/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
.line 384
invoke-static {p0}, Lkotlin/io/FilesKt;->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 p0
move-object v1, p0
check-cast v1, Ljava/lang/Iterable;
sget-object p0, Ljava/io/File;->separator:Ljava/lang/String;
const-string v2, "File.separator"
invoke-static {p0, v2}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
move-object v2, p0
check-cast v2, Ljava/lang/CharSequence;
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;->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;->resolve(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
move-result-object p0
return-object p0
.end method
.method private 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
.line 390
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
check-cast v0, Ljava/util/List;
.line 391
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p0
:goto_f
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_6a
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/io/File;
.line 392
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
if-nez v2, :cond_22
goto :goto_66
:cond_22
invoke-virtual {v2}, Ljava/lang/String;->hashCode()I
move-result v3
const/16 v4, 0x2e
if-eq v3, v4, :cond_5d
const/16 v4, 0x5c0
if-eq v3, v4, :cond_2f
goto :goto_66
:cond_2f
const-string v3, ".."
.line 394
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_66
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v2
if-nez v2, :cond_59
invoke-static {v0}, Lkotlin/collections/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_59
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_f
:cond_59
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_f
:cond_5d
const-string v3, "."
.line 393
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_66
goto :goto_f
.line 395
:cond_66
:goto_66
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_f
:cond_6a
return-object v0
.end method
.method private static final normalize$FilesKt__UtilsKt(Lkotlin/io/FilePathComponents;)Lkotlin/io/FilePathComponents;
.registers 3
.line 387
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
.line 102
new-instance v0, Ljava/io/File;
invoke-static {p0, p1}, Lkotlin/io/FilesKt;->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
.line 122
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
.line 448
new-instance p1, Ljava/io/File;
.line 122
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
.line 112
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
.line 448
new-instance p0, Ljava/io/File;
.line 112
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 7
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
.line 411
invoke-static {p1}, Lkotlin/io/FilesKt;->isRooted(Ljava/io/File;)Z
move-result v0
if-eqz v0, :cond_11
return-object p1
.line 413
:cond_11
invoke-virtual {p0}, Ljava/io/File;->toString()Ljava/lang/String;
move-result-object p0
const-string v0, "this.toString()"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
.line 414
move-object v0, p0
check-cast v0, Ljava/lang/CharSequence;
invoke-interface {v0}, Ljava/lang/CharSequence;->length()I
move-result v1
const/4 v2, 0x0
if-nez v1, :cond_26
const/4 v1, 0x1
goto :goto_27
:cond_26
const/4 v1, 0x0
:goto_27
if-nez v1, :cond_4e
sget-char v1, Ljava/io/File;->separatorChar:C
const/4 v3, 0x2
const/4 v4, 0x0
invoke-static {v0, v1, v2, v3, v4}, Lkotlin/text/StringsKt;->endsWith$default(Ljava/lang/CharSequence;CZILjava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_34
goto :goto_4e
:cond_34
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_62
:cond_4e
:goto_4e
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_62
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
.line 424
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;->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
.line 434
invoke-static {p0}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object p0
.line 435
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
.line 436
:goto_27
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File;
move-result-object p0
invoke-static {p0, v0}, Lkotlin/io/FilesKt;->resolve(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
move-result-object p0
invoke-static {p0, p1}, Lkotlin/io/FilesKt;->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
.line 446
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;->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
.line 331
invoke-static {p0}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object p0
.line 332
invoke-static {p1}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object p1
.line 333
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
.line 335
: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
.line 336
: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
.line 346
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;->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
.line 91
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 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
check-cast v0, Ljava/lang/Throwable;
throw v0
.end method
.method private static final toRelativeStringOrNull$FilesKt__UtilsKt(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
.registers 19
.line 127
invoke-static/range {p0 .. p0}, Lkotlin/io/FilesKt;->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
.line 128
invoke-static/range {p1 .. p1}, Lkotlin/io/FilesKt;->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
.line 129
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
.line 133
:cond_22
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v2
.line 134
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v4
const/4 v5, 0x0
.line 138
invoke-static {v4, v2}, Ljava/lang/Math;->min(II)I
move-result v6
:goto_2f
if-ge v5, v6, :cond_4e
.line 139
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
.line 145
: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
.line 147
: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
.line 151
:cond_6e
invoke-virtual {v6, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
if-eq v7, v5, :cond_78
.line 154
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_ac
if-ge v5, v2, :cond_86
.line 162
sget-char v1, Ljava/io/File;->separatorChar:C
invoke-virtual {v6, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 164
:cond_86
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object v0
check-cast v0, Ljava/lang/Iterable;
invoke-static {v0, v5}, Lkotlin/collections/CollectionsKt;->drop(Ljava/lang/Iterable;I)Ljava/util/List;
move-result-object v0
move-object v7, v0
check-cast v7, Ljava/lang/Iterable;
move-object v8, v6
check-cast v8, Ljava/lang/Appendable;
sget-object v0, Ljava/io/File;->separator:Ljava/lang/String;
const-string v1, "File.separator"
invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
move-object v9, v0
check-cast v9, Ljava/lang/CharSequence;
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
invoke-static/range {v7 .. v16}, Lkotlin/collections/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;
.line 167
:cond_ac
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method