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 _Sequences.kt\nkotlin/sequences/SequencesKt___SequencesKt\n*L\n1#1,437:1\n1058#2,3:438\n*E\n*S KotlinDebug\n*F\n+ 1 Utils.kt\nkotlin/io/FilesKt__UtilsKt\n*L\n311#1,3:438\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,
0x1,
0xf
}
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 16
.param p0, "$this$copyRecursively" # Ljava/io/File;
.param p1, "target" # Ljava/io/File;
.param p2, "overwrite" # Z
.param p3, "onError" # Lkotlin/jvm/functions/Function2;
.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;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "target"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "onError"
invoke-static {p3, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 257
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v0
const/4 v1, 0x1
const/4 v2, 0x0
if-nez v0, :cond_32
.line 258
nop
.line 259
nop
.line 258
new-instance v0, 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, v0
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, v0}, Lkotlin/jvm/functions/Function2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lkotlin/io/OnErrorAction;
sget-object v3, Lkotlin/io/OnErrorAction;->TERMINATE:Lkotlin/io/OnErrorAction;
if-eq v0, v3, :cond_30
goto :goto_31
:cond_30
const/4 v1, 0x0
:goto_31
return v1
.line 261
:cond_32
nop
.line 263
:try_start_33
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
:goto_46
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_fa
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/io/File;
.line 264
.local v3, "src":Ljava/io/File;
invoke-virtual {v3}, Ljava/io/File;->exists()Z
move-result v4
if-nez v4, :cond_71
.line 265
nop
.line 266
nop
.line 265
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 v4
check-cast v4, Lkotlin/io/OnErrorAction;
sget-object v5, Lkotlin/io/OnErrorAction;->TERMINATE:Lkotlin/io/OnErrorAction;
if-ne v4, v5, :cond_f7
.line 267
return v2
.line 269
:cond_71
invoke-static {v3, p0}, Lkotlin/io/FilesKt;->toRelativeString(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
move-result-object v4
move-object v10, v4
.line 270
.local v10, "relPath":Ljava/lang/String;
new-instance v4, Ljava/io/File;
invoke-direct {v4, p1, v10}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
move-object v11, v4
.line 271
.local v11, "dstFile":Ljava/io/File;
invoke-virtual {v11}, Ljava/io/File;->exists()Z
move-result v4
if-eqz v4, :cond_c5
invoke-virtual {v3}, Ljava/io/File;->isDirectory()Z
move-result v4
if-eqz v4, :cond_8e
invoke-virtual {v11}, Ljava/io/File;->isDirectory()Z
move-result v4
if-nez v4, :cond_c5
.line 272
:cond_8e
if-nez p2, :cond_92
const/4 v4, 0x1
goto :goto_ab
.line 273
:cond_92
invoke-virtual {v11}, Ljava/io/File;->isDirectory()Z
move-result v4
if-eqz v4, :cond_a2
.line 274
invoke-static {v11}, Lkotlin/io/FilesKt;->deleteRecursively(Ljava/io/File;)Z
move-result v4
if-nez v4, :cond_a0
const/4 v4, 0x1
goto :goto_ab
:cond_a0
const/4 v4, 0x0
goto :goto_ab
.line 276
:cond_a2
invoke-virtual {v11}, Ljava/io/File;->delete()Z
move-result v4
if-nez v4, :cond_aa
const/4 v4, 0x1
goto :goto_ab
:cond_aa
const/4 v4, 0x0
.line 273
:goto_ab
nop
.line 272
nop
.line 279
.local v4, "stillExists":Z
if-eqz v4, :cond_c5
.line 280
nop
.line 282
nop
.line 280
new-instance v5, Lkotlin/io/FileAlreadyExistsException;
.line 281
nop
.line 282
const-string v6, "The destination file already exists."
.line 280
invoke-direct {v5, v3, v11, v6}, Lkotlin/io/FileAlreadyExistsException;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)V
invoke-interface {p3, v11, v5}, Lkotlin/jvm/functions/Function2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v5
check-cast v5, Lkotlin/io/OnErrorAction;
sget-object v6, Lkotlin/io/OnErrorAction;->TERMINATE:Lkotlin/io/OnErrorAction;
if-ne v5, v6, :cond_c4
.line 283
return v2
.line 285
:cond_c4
goto :goto_f7
.line 289
.end local v4 # "stillExists":Z
:cond_c5
invoke-virtual {v3}, Ljava/io/File;->isDirectory()Z
move-result v4
if-eqz v4, :cond_cf
.line 290
invoke-virtual {v11}, Ljava/io/File;->mkdirs()Z
goto :goto_f7
.line 292
:cond_cf
const/4 v7, 0x0
const/4 v8, 0x4
const/4 v9, 0x0
move-object v4, v3
move-object v5, v11
move v6, p2
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_f7
.line 293
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 v4
check-cast v4, Lkotlin/io/OnErrorAction;
sget-object v5, Lkotlin/io/OnErrorAction;->TERMINATE:Lkotlin/io/OnErrorAction;
:try_end_f4
.catch Lkotlin/io/TerminateException; {:try_start_33 .. :try_end_f4} :catch_fb
if-ne v4, v5, :cond_f7
.line 294
return v2
.line 296
.end local v3 # "src":Ljava/io/File;
.end local v10 # "relPath":Ljava/lang/String;
.end local v11 # "dstFile":Ljava/io/File;
:cond_f7
:goto_f7
nop
.line 297
goto/16 :goto_46
.line 299
:cond_fa
return v1
.line 300
:catch_fb
move-exception v0
.line 301
.local v0, "e":Lkotlin/io/TerminateException;
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
.line 254
const/4 p2, 0x0
:cond_5
and-int/lit8 p4, p4, 0x4
if-eqz p4, :cond_d
.line 255
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 14
.param p0, "$this$copyTo" # Ljava/io/File;
.param p1, "target" # Ljava/io/File;
.param p2, "overwrite" # Z
.param p3, "bufferSize" # I
const-string v0, "$this$copyTo"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "target"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 182
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_8f
.line 186
invoke-virtual {p1}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_33
.line 187
if-eqz p2, :cond_29
.line 189
invoke-virtual {p1}, Ljava/io/File;->delete()Z
move-result v0
if-eqz v0, :cond_1f
goto :goto_33
.line 190
:cond_1f
new-instance v0, Lkotlin/io/FileAlreadyExistsException;
const-string v1, "Tried to overwrite the destination, but failed to delete it."
invoke-direct {v0, p0, p1, v1}, Lkotlin/io/FileAlreadyExistsException;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)V
check-cast v0, Ljava/lang/Throwable;
throw v0
.line 188
:cond_29
new-instance v0, Lkotlin/io/FileAlreadyExistsException;
const-string v1, "The destination file already exists."
invoke-direct {v0, p0, p1, v1}, Lkotlin/io/FileAlreadyExistsException;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)V
check-cast v0, Ljava/lang/Throwable;
throw v0
.line 193
:cond_33
:goto_33
invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z
move-result v0
if-eqz v0, :cond_4a
.line 194
invoke-virtual {p1}, Ljava/io/File;->mkdirs()Z
move-result v0
if-eqz v0, :cond_40
goto :goto_7f
.line 195
:cond_40
new-instance v0, Lkotlin/io/FileSystemException;
const-string v1, "Failed to create target directory."
invoke-direct {v0, p0, p1, v1}, Lkotlin/io/FileSystemException;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)V
check-cast v0, Ljava/lang/Throwable;
throw v0
.line 197
:cond_4a
invoke-virtual {p1}, Ljava/io/File;->getParentFile()Ljava/io/File;
move-result-object v0
if-eqz v0, :cond_53
invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
.line 199
:cond_53
new-instance v0, Ljava/io/FileInputStream;
invoke-direct {v0, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
check-cast v0, Ljava/io/Closeable;
const/4 v1, 0x0
move-object v2, v1
check-cast v2, Ljava/lang/Throwable;
:try_start_5e
move-object v3, v0
check-cast v3, Ljava/io/FileInputStream;
.local v3, "input":Ljava/io/FileInputStream;
const/4 v4, 0x0
.line 200
.local v4, "$i$a$-use-FilesKt__UtilsKt$copyTo$1":I
new-instance v5, Ljava/io/FileOutputStream;
invoke-direct {v5, p1}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
check-cast v5, Ljava/io/Closeable;
check-cast v1, Ljava/lang/Throwable;
:try_end_6b
.catchall {:try_start_5e .. :try_end_6b} :catchall_88
:try_start_6b
move-object v6, v5
check-cast v6, Ljava/io/FileOutputStream;
.local v6, "output":Ljava/io/FileOutputStream;
const/4 v7, 0x0
.line 201
.local v7, "$i$a$-use-FilesKt__UtilsKt$copyTo$1$1":I
move-object v8, v3
check-cast v8, Ljava/io/InputStream;
move-object v9, v6
check-cast v9, Ljava/io/OutputStream;
invoke-static {v8, v9, p3}, Lkotlin/io/ByteStreamsKt;->copyTo(Ljava/io/InputStream;Ljava/io/OutputStream;I)J
:try_end_78
.catchall {:try_start_6b .. :try_end_78} :catchall_81
.line 200
.end local v6 # "output":Ljava/io/FileOutputStream;
.end local v7 # "$i$a$-use-FilesKt__UtilsKt$copyTo$1$1":I
:try_start_78
invoke-static {v5, v1}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V
:try_end_7b
.catchall {:try_start_78 .. :try_end_7b} :catchall_88
.line 202
nop
.line 199
.end local v3 # "input":Ljava/io/FileInputStream;
.end local v4 # "$i$a$-use-FilesKt__UtilsKt$copyTo$1":I
invoke-static {v0, v2}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V
.line 204
:goto_7f
nop
.line 206
return-object p1
.line 200
.restart local v3 # "input":Ljava/io/FileInputStream;
.restart local v4 # "$i$a$-use-FilesKt__UtilsKt$copyTo$1":I
:catchall_81
move-exception v1
.end local v3 # "input":Ljava/io/FileInputStream;
.end local v4 # "$i$a$-use-FilesKt__UtilsKt$copyTo$1":I
.end local p0 # "$this$copyTo":Ljava/io/File;
.end local p1 # "target":Ljava/io/File;
.end local p2 # "overwrite":Z
.end local p3 # "bufferSize":I
:try_start_82
throw v1
:try_end_83
.catchall {:try_start_82 .. :try_end_83} :catchall_83
.restart local v3 # "input":Ljava/io/FileInputStream;
.restart local v4 # "$i$a$-use-FilesKt__UtilsKt$copyTo$1":I
.restart local p0 # "$this$copyTo":Ljava/io/File;
.restart local p1 # "target":Ljava/io/File;
.restart local p2 # "overwrite":Z
.restart local p3 # "bufferSize":I
:catchall_83
move-exception v2
:try_start_84
invoke-static {v5, v1}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V
.end local p0 # "$this$copyTo":Ljava/io/File;
.end local p1 # "target":Ljava/io/File;
.end local p2 # "overwrite":Z
.end local p3 # "bufferSize":I
throw v2
:try_end_88
.catchall {:try_start_84 .. :try_end_88} :catchall_88
.line 199
.end local v3 # "input":Ljava/io/FileInputStream;
.end local v4 # "$i$a$-use-FilesKt__UtilsKt$copyTo$1":I
.restart local p0 # "$this$copyTo":Ljava/io/File;
.restart local p1 # "target":Ljava/io/File;
.restart local p2 # "overwrite":Z
.restart local p3 # "bufferSize":I
:catchall_88
move-exception v1
.end local p0 # "$this$copyTo":Ljava/io/File;
.end local p1 # "target":Ljava/io/File;
.end local p2 # "overwrite":Z
.end local p3 # "bufferSize":I
:try_start_89
throw v1
:try_end_8a
.catchall {:try_start_89 .. :try_end_8a} :catchall_8a
.restart local p0 # "$this$copyTo":Ljava/io/File;
.restart local p1 # "target":Ljava/io/File;
.restart local p2 # "overwrite":Z
.restart local p3 # "bufferSize":I
:catchall_8a
move-exception v2
invoke-static {v0, v1}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V
throw v2
.line 183
:cond_8f
new-instance v0, 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, v0
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
check-cast v0, Ljava/lang/Throwable;
throw v0
.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
.line 181
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;->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 7
.param p0, "prefix" # Ljava/lang/String;
.param p1, "suffix" # Ljava/lang/String;
.param p2, "directory" # Ljava/io/File;
const-string v0, "prefix"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 27
invoke-static {p0, p1, p2}, Ljava/io/File;->createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
move-result-object v0
.line 28
.local v0, "dir":Ljava/io/File;
invoke-virtual {v0}, Ljava/io/File;->delete()Z
.line 29
invoke-virtual {v0}, Ljava/io/File;->mkdir()Z
move-result v1
if-eqz v1, :cond_18
.line 30
const-string v1, "dir"
invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
return-object v0
.line 32
:cond_18
new-instance v1, Ljava/io/IOException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Unable to create temporary directory "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const/16 v3, 0x2e
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
check-cast v1, Ljava/lang/Throwable;
throw v1
.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
.line 26
const-string p0, "tmp"
:cond_6
and-int/lit8 p4, p3, 0x2
const/4 v0, 0x0
if-eqz p4, :cond_e
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 5
.param p0, "prefix" # Ljava/lang/String;
.param p1, "suffix" # Ljava/lang/String;
.param p2, "directory" # Ljava/io/File;
const-string v0, "prefix"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 49
invoke-static {p0, p1, p2}, Ljava/io/File;->createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
move-result-object v0
const-string v1, "File.createTempFile(prefix, suffix, directory)"
invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
return-object v0
.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
.line 48
const-string p0, "tmp"
:cond_6
and-int/lit8 p4, p3, 0x2
const/4 v0, 0x0
if-eqz p4, :cond_e
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 11
.param p0, "$this$deleteRecursively" # Ljava/io/File;
const-string v0, "$this$deleteRecursively"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 311
invoke-static {p0}, Lkotlin/io/FilesKt;->walkBottomUp(Ljava/io/File;)Lkotlin/io/FileTreeWalk;
move-result-object v0
check-cast v0, Lkotlin/sequences/Sequence;
.local v0, "$this$fold$iv":Lkotlin/sequences/Sequence;
const/4 v1, 0x1
.local v1, "initial$iv":Z
const/4 v2, 0x0
.line 438
.local v2, "$i$f$fold":I
move v3, v1
.line 439
.local v3, "accumulator$iv":Z
invoke-interface {v0}, Lkotlin/sequences/Sequence;->iterator()Ljava/util/Iterator;
move-result-object v4
:goto_12
invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z
move-result v5
if-eqz v5, :cond_34
invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v5
.local v5, "element$iv":Ljava/lang/Object;
move-object v6, v5
check-cast v6, Ljava/io/File;
.local v6, "it":Ljava/io/File;
move v7, v3
.local v7, "res":Z
const/4 v8, 0x0
.line 311
.local v8, "$i$a$-fold-FilesKt__UtilsKt$deleteRecursively$1":I
invoke-virtual {v6}, Ljava/io/File;->delete()Z
move-result v9
if-nez v9, :cond_2d
invoke-virtual {v6}, Ljava/io/File;->exists()Z
move-result v9
if-nez v9, :cond_31
:cond_2d
if-eqz v7, :cond_31
const/4 v9, 0x1
goto :goto_32
:cond_31
const/4 v9, 0x0
.end local v6 # "it":Ljava/io/File;
.end local v7 # "res":Z
.end local v8 # "$i$a$-fold-FilesKt__UtilsKt$deleteRecursively$1":I
:goto_32
move v3, v9
.end local v5 # "element$iv":Ljava/lang/Object;
goto :goto_12
.line 440
:cond_34
nop
.line 311
.end local v0 # "$this$fold$iv":Lkotlin/sequences/Sequence;
.end local v1 # "initial$iv":Z
.end local v2 # "$i$f$fold":I
.end local v3 # "accumulator$iv":Z
return v3
.end method
.method public static final endsWith(Ljava/io/File;Ljava/io/File;)Z
.registers 7
.param p0, "$this$endsWith" # Ljava/io/File;
.param p1, "other" # Ljava/io/File;
const-string v0, "$this$endsWith"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "other"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 348
invoke-static {p0}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object v0
.line 349
.local v0, "components":Lkotlin/io/FilePathComponents;
invoke-static {p1}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object v1
.line 350
.local v1, "otherComponents":Lkotlin/io/FilePathComponents;
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->isRooted()Z
move-result v2
if-eqz v2, :cond_1d
.line 351
invoke-static {p0, p1}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v2
return v2
.line 352
:cond_1d
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v2
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v3
sub-int/2addr v2, v3
.line 353
.local v2, "shift":I
if-gez v2, :cond_2a
const/4 v3, 0x0
goto :goto_3e
.line 354
:cond_2a
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object v3
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v4
invoke-interface {v3, v2, v4}, Ljava/util/List;->subList(II)Ljava/util/List;
move-result-object v3
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v3
.line 353
:goto_3e
return v3
.end method
.method public static final endsWith(Ljava/io/File;Ljava/lang/String;)Z
.registers 3
.param p0, "$this$endsWith" # Ljava/io/File;
.param p1, "other" # Ljava/lang/String;
const-string v0, "$this$endsWith"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "other"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 365
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 v0
return v0
.end method
.method public static final getExtension(Ljava/io/File;)Ljava/lang/String;
.registers 4
.param p0, "$this$extension" # Ljava/io/File;
const-string v0, "$this$extension"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 56
invoke-virtual {p0}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v0
const-string v1, "name"
invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
const/16 v1, 0x2e
const-string v2, ""
invoke-static {v0, v1, v2}, Lkotlin/text/StringsKt;->substringAfterLast(Ljava/lang/String;CLjava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static final getInvariantSeparatorsPath(Ljava/io/File;)Ljava/lang/String;
.registers 10
.param p0, "$this$invariantSeparatorsPath" # Ljava/io/File;
const-string v0, "$this$invariantSeparatorsPath"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 63
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;->checkExpressionValueIsNotNull(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 v0
goto :goto_27
:cond_20
invoke-virtual {p0}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v0
invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
:goto_27
return-object v0
.end method
.method public static final getNameWithoutExtension(Ljava/io/File;)Ljava/lang/String;
.registers 5
.param p0, "$this$nameWithoutExtension" # Ljava/io/File;
const-string v0, "$this$nameWithoutExtension"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 69
invoke-virtual {p0}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v0
const-string v1, "name"
invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
const/4 v1, 0x0
const-string v2, "."
const/4 v3, 0x2
invoke-static {v0, v2, v1, v3, v1}, Lkotlin/text/StringsKt;->substringBeforeLast$default(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static final normalize(Ljava/io/File;)Ljava/io/File;
.registers 14
.param p0, "$this$normalize" # Ljava/io/File;
const-string v0, "$this$normalize"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 374
invoke-static {p0}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object v0
.local v0, "$this$with":Lkotlin/io/FilePathComponents;
const/4 v1, 0x0
.local v1, "$i$a$-with-FilesKt__UtilsKt$normalize$1":I
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File;
move-result-object v2
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object v3
invoke-static {v3}, Lkotlin/io/FilesKt__UtilsKt;->normalize$FilesKt__UtilsKt(Ljava/util/List;)Ljava/util/List;
move-result-object v3
move-object v4, v3
check-cast v4, Ljava/lang/Iterable;
sget-object v3, Ljava/io/File;->separator:Ljava/lang/String;
const-string v5, "File.separator"
invoke-static {v3, v5}, Lkotlin/jvm/internal/Intrinsics;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
move-object v5, v3
check-cast v5, Ljava/lang/CharSequence;
const/4 v6, 0x0
const/4 v7, 0x0
const/4 v8, 0x0
const/4 v9, 0x0
const/4 v10, 0x0
const/16 v11, 0x3e
const/4 v12, 0x0
invoke-static/range {v4 .. v12}, 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 v3
invoke-static {v2, v3}, Lkotlin/io/FilesKt;->resolve(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
move-result-object v0
.end local v0 # "$this$with":Lkotlin/io/FilePathComponents;
.end local v1 # "$i$a$-with-FilesKt__UtilsKt$normalize$1":I
return-object v0
.end method
.method private static final normalize$FilesKt__UtilsKt(Ljava/util/List;)Ljava/util/List;
.registers 7
.param p0, "$this$normalize" # Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"+",
"Ljava/io/File;",
">;)",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 380
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 381
.local v0, "list":Ljava/util/List;
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_f
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_6b
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/io/File;
.line 382
.local v2, "file":Ljava/io/File;
invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v3
if-nez v3, :cond_22
goto :goto_2e
:cond_22
invoke-virtual {v3}, Ljava/lang/String;->hashCode()I
move-result v4
const/16 v5, 0x2e
if-eq v4, v5, :cond_5d
const/16 v5, 0x5c0
if-eq v4, v5, :cond_2f
:goto_2e
goto :goto_66
.line 384
:cond_2f
const-string v4, ".."
invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_66
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v3
if-nez v3, :cond_59
invoke-static {v0}, Lkotlin/collections/CollectionsKt;->last(Ljava/util/List;)Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/io/File;
invoke-virtual {v3}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v3
invoke-static {v3, v4}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v3
xor-int/lit8 v3, v3, 0x1
if-eqz v3, :cond_59
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v3
add-int/lit8 v3, v3, -0x1
invoke-interface {v0, v3}, Ljava/util/List;->remove(I)Ljava/lang/Object;
goto :goto_69
:cond_59
invoke-interface {v0, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_69
.line 383
:cond_5d
const-string v4, "."
invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_66
goto :goto_69
.line 385
:cond_66
:goto_66
invoke-interface {v0, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 386
.end local v2 # "file":Ljava/io/File;
:goto_69
nop
.line 381
goto :goto_f
.line 388
:cond_6b
return-object v0
.end method
.method private static final normalize$FilesKt__UtilsKt(Lkotlin/io/FilePathComponents;)Lkotlin/io/FilePathComponents;
.registers 4
.param p0, "$this$normalize" # Lkotlin/io/FilePathComponents;
.line 377
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 v2
invoke-static {v2}, Lkotlin/io/FilesKt__UtilsKt;->normalize$FilesKt__UtilsKt(Ljava/util/List;)Ljava/util/List;
move-result-object v2
invoke-direct {v0, v1, v2}, 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 4
.param p0, "$this$relativeTo" # Ljava/io/File;
.param p1, "base" # Ljava/io/File;
const-string v0, "$this$relativeTo"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "base"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 92
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 v1
invoke-direct {v0, v1}, 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 5
.param p0, "$this$relativeToOrNull" # Ljava/io/File;
.param p1, "base" # Ljava/io/File;
const-string v0, "$this$relativeToOrNull"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "base"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(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 v0
if-eqz v0, :cond_17
.local v0, "p1":Ljava/lang/String;
const/4 v1, 0x0
.local v1, "$i$a$-unknown-FilesKt__UtilsKt$relativeToOrNull$1":I
new-instance v2, Ljava/io/File;
invoke-direct {v2, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.end local v0 # "p1":Ljava/lang/String;
.end local v1 # "$i$a$-unknown-FilesKt__UtilsKt$relativeToOrNull$1":I
goto :goto_18
:cond_17
const/4 v2, 0x0
:goto_18
return-object v2
.end method
.method public static final relativeToOrSelf(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
.registers 5
.param p0, "$this$relativeToOrSelf" # Ljava/io/File;
.param p1, "base" # Ljava/io/File;
const-string v0, "$this$relativeToOrSelf"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "base"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 102
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_17
.local v0, "p1":Ljava/lang/String;
const/4 v1, 0x0
.local v1, "$i$a$-unknown-FilesKt__UtilsKt$relativeToOrSelf$1":I
new-instance v2, Ljava/io/File;
invoke-direct {v2, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.end local v0 # "p1":Ljava/lang/String;
.end local v1 # "$i$a$-unknown-FilesKt__UtilsKt$relativeToOrSelf$1":I
goto :goto_18
:cond_17
move-object v2, p0
:goto_18
return-object v2
.end method
.method public static final resolve(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
.registers 8
.param p0, "$this$resolve" # Ljava/io/File;
.param p1, "relative" # Ljava/io/File;
const-string v0, "$this$resolve"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "relative"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 401
invoke-static {p1}, Lkotlin/io/FilesKt;->isRooted(Ljava/io/File;)Z
move-result v0
if-eqz v0, :cond_11
.line 402
return-object p1
.line 403
:cond_11
invoke-virtual {p0}, Ljava/io/File;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "this.toString()"
invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 404
.local v0, "baseName":Ljava/lang/String;
move-object v1, v0
check-cast v1, Ljava/lang/CharSequence;
invoke-interface {v1}, 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_51
move-object v1, v0
check-cast v1, Ljava/lang/CharSequence;
sget-char v3, Ljava/io/File;->separatorChar:C
const/4 v4, 0x2
const/4 v5, 0x0
invoke-static {v1, v3, v2, v4, v5}, Lkotlin/text/StringsKt;->endsWith$default(Ljava/lang/CharSequence;CZILjava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_37
goto :goto_51
:cond_37
new-instance v1, Ljava/io/File;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-char v3, Ljava/io/File;->separatorChar:C
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
goto :goto_65
:cond_51
:goto_51
new-instance v1, Ljava/io/File;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
:goto_65
return-object v1
.end method
.method public static final resolve(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
.registers 3
.param p0, "$this$resolve" # Ljava/io/File;
.param p1, "relative" # Ljava/lang/String;
const-string v0, "$this$resolve"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "relative"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 414
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 v0
return-object v0
.end method
.method public static final resolveSibling(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
.registers 5
.param p0, "$this$resolveSibling" # Ljava/io/File;
.param p1, "relative" # Ljava/io/File;
const-string v0, "$this$resolveSibling"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "relative"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 424
invoke-static {p0}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object v0
.line 425
.local v0, "components":Lkotlin/io/FilePathComponents;
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v1
if-nez v1, :cond_1c
new-instance v1, Ljava/io/File;
const-string v2, ".."
invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
goto :goto_27
:cond_1c
const/4 v1, 0x0
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v2
add-int/lit8 v2, v2, -0x1
invoke-virtual {v0, v1, v2}, Lkotlin/io/FilePathComponents;->subPath(II)Ljava/io/File;
move-result-object v1
.line 426
.local v1, "parentSubPath":Ljava/io/File;
:goto_27
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File;
move-result-object v2
invoke-static {v2, v1}, Lkotlin/io/FilesKt;->resolve(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
move-result-object v2
invoke-static {v2, p1}, Lkotlin/io/FilesKt;->resolve(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
move-result-object v2
return-object v2
.end method
.method public static final resolveSibling(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
.registers 3
.param p0, "$this$resolveSibling" # Ljava/io/File;
.param p1, "relative" # Ljava/lang/String;
const-string v0, "$this$resolveSibling"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "relative"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 436
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 v0
return-object v0
.end method
.method public static final startsWith(Ljava/io/File;Ljava/io/File;)Z
.registers 7
.param p0, "$this$startsWith" # Ljava/io/File;
.param p1, "other" # Ljava/io/File;
const-string v0, "$this$startsWith"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "other"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 321
invoke-static {p0}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object v0
.line 322
.local v0, "components":Lkotlin/io/FilePathComponents;
invoke-static {p1}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object v1
.line 323
.local v1, "otherComponents":Lkotlin/io/FilePathComponents;
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_24
.line 324
return v3
.line 325
:cond_24
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v2
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v4
if-ge v2, v4, :cond_2f
goto :goto_43
.line 326
:cond_2f
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object v2
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v4
invoke-interface {v2, v3, v4}, Ljava/util/List;->subList(II)Ljava/util/List;
move-result-object v2
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v3
.line 325
:goto_43
return v3
.end method
.method public static final startsWith(Ljava/io/File;Ljava/lang/String;)Z
.registers 3
.param p0, "$this$startsWith" # Ljava/io/File;
.param p1, "other" # Ljava/lang/String;
const-string v0, "$this$startsWith"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "other"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 336
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 v0
return v0
.end method
.method public static final toRelativeString(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
.registers 5
.param p0, "$this$toRelativeString" # Ljava/io/File;
.param p1, "base" # Ljava/io/File;
const-string v0, "$this$toRelativeString"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "base"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 81
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 v2, " and "
invoke-virtual {v1, v2}, 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 v2, 0x2e
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, 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
.param p0, "$this$toRelativeStringOrNull" # Ljava/io/File;
.param p1, "base" # Ljava/io/File;
.line 117
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 118
.local v0, "thisComponents":Lkotlin/io/FilePathComponents;
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 119
.local v1, "baseComponents":Lkotlin/io/FilePathComponents;
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
.line 120
return-object v3
.line 123
:cond_22
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v2
.line 124
.local v2, "baseCount":I
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v4
.line 126
.local v4, "thisCount":I
move-object/from16 v5, p0
.local v5, "$this$countSame":Ljava/io/File;
const/4 v6, 0x0
.line 127
.local v6, "$i$a$-run-FilesKt__UtilsKt$toRelativeStringOrNull$sameCount$1":I
const/4 v7, 0x0
.line 128
.local v7, "i":I
invoke-static {v4, v2}, Ljava/lang/Math;->min(II)I
move-result v8
.line 129
.local v8, "maxSameCount":I
:goto_32
if-ge v7, v8, :cond_51
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object v9
invoke-interface {v9, v7}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v9
check-cast v9, Ljava/io/File;
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object v10
invoke-interface {v10, v7}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v10
check-cast v10, Ljava/io/File;
invoke-static {v9, v10}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v9
if-eqz v9, :cond_51
.line 130
add-int/lit8 v7, v7, 0x1
.line 129
goto :goto_32
.line 131
:cond_51
nop
.line 126
.end local v5 # "$this$countSame":Ljava/io/File;
.end local v6 # "$i$a$-run-FilesKt__UtilsKt$toRelativeStringOrNull$sameCount$1":I
.end local v7 # "i":I
.end local v8 # "maxSameCount":I
move v5, v7
.line 135
.local v5, "sameCount":I
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
.line 136
.local v6, "res":Ljava/lang/StringBuilder;
add-int/lit8 v7, v2, -0x1
if-lt v7, v5, :cond_82
.line 137
.restart local v7 # "i":I
:goto_5c
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_73
.line 138
return-object v3
.line 141
:cond_73
invoke-virtual {v6, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 143
if-eq v7, v5, :cond_7d
.line 144
sget-char v8, Ljava/io/File;->separatorChar:C
invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 136
:cond_7d
if-eq v7, v5, :cond_82
.end local v7 # "i":I
add-int/lit8 v7, v7, -0x1
goto :goto_5c
.line 149
:cond_82
if-ge v5, v4, :cond_b1
.line 151
if-ge v5, v2, :cond_8b
.line 152
sget-char v3, Ljava/io/File;->separatorChar:C
invoke-virtual {v6, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 154
:cond_8b
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object v3
check-cast v3, Ljava/lang/Iterable;
invoke-static {v3, v5}, Lkotlin/collections/CollectionsKt;->drop(Ljava/lang/Iterable;I)Ljava/util/List;
move-result-object v3
move-object v7, v3
check-cast v7, Ljava/lang/Iterable;
move-object v8, v6
check-cast v8, Ljava/lang/Appendable;
sget-object v3, Ljava/io/File;->separator:Ljava/lang/String;
const-string v9, "File.separator"
invoke-static {v3, v9}, Lkotlin/jvm/internal/Intrinsics;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
move-object v9, v3
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 157
:cond_b1
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
return-object v3
.end method