Util.smali
.class public final Lokhttp3/internal/Util;
.super Ljava/lang/Object;
.source "Util.java"
# static fields
.field public static final EMPTY_BYTE_ARRAY:[B
.field public static final EMPTY_REQUEST:Lokhttp3/RequestBody;
.field public static final EMPTY_RESPONSE:Lokhttp3/ResponseBody;
.field public static final EMPTY_STRING_ARRAY:[Ljava/lang/String;
.field public static final ISO_8859_1:Ljava/nio/charset/Charset;
.field public static final NATURAL_ORDER:Ljava/util/Comparator;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Comparator<",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field public static final UTC:Ljava/util/TimeZone;
.field private static final UTF_16_BE:Ljava/nio/charset/Charset;
.field private static final UTF_16_BE_BOM:Lokio/ByteString;
.field private static final UTF_16_LE:Ljava/nio/charset/Charset;
.field private static final UTF_16_LE_BOM:Lokio/ByteString;
.field private static final UTF_32_BE:Ljava/nio/charset/Charset;
.field private static final UTF_32_BE_BOM:Lokio/ByteString;
.field private static final UTF_32_LE:Ljava/nio/charset/Charset;
.field private static final UTF_32_LE_BOM:Lokio/ByteString;
.field public static final UTF_8:Ljava/nio/charset/Charset;
.field private static final UTF_8_BOM:Lokio/ByteString;
.field private static final VERIFY_AS_IP_ADDRESS:Ljava/util/regex/Pattern;
.field private static final addSuppressedExceptionMethod:Ljava/lang/reflect/Method;
# direct methods
.method static constructor <clinit>()V
.registers 5
.line 57
const/4 v0, 0x0
new-array v1, v0, [B
sput-object v1, Lokhttp3/internal/Util;->EMPTY_BYTE_ARRAY:[B
.line 58
new-array v2, v0, [Ljava/lang/String;
sput-object v2, Lokhttp3/internal/Util;->EMPTY_STRING_ARRAY:[Ljava/lang/String;
.line 60
const/4 v2, 0x0
invoke-static {v2, v1}, Lokhttp3/ResponseBody;->create(Lokhttp3/MediaType;[B)Lokhttp3/ResponseBody;
move-result-object v1
sput-object v1, Lokhttp3/internal/Util;->EMPTY_RESPONSE:Lokhttp3/ResponseBody;
.line 61
sget-object v1, Lokhttp3/internal/Util;->EMPTY_BYTE_ARRAY:[B
invoke-static {v2, v1}, Lokhttp3/RequestBody;->create(Lokhttp3/MediaType;[B)Lokhttp3/RequestBody;
move-result-object v1
sput-object v1, Lokhttp3/internal/Util;->EMPTY_REQUEST:Lokhttp3/RequestBody;
.line 63
const-string v1, "efbbbf"
invoke-static {v1}, Lokio/ByteString;->decodeHex(Ljava/lang/String;)Lokio/ByteString;
move-result-object v1
sput-object v1, Lokhttp3/internal/Util;->UTF_8_BOM:Lokio/ByteString;
.line 64
const-string v1, "feff"
invoke-static {v1}, Lokio/ByteString;->decodeHex(Ljava/lang/String;)Lokio/ByteString;
move-result-object v1
sput-object v1, Lokhttp3/internal/Util;->UTF_16_BE_BOM:Lokio/ByteString;
.line 65
const-string v1, "fffe"
invoke-static {v1}, Lokio/ByteString;->decodeHex(Ljava/lang/String;)Lokio/ByteString;
move-result-object v1
sput-object v1, Lokhttp3/internal/Util;->UTF_16_LE_BOM:Lokio/ByteString;
.line 66
const-string v1, "0000ffff"
invoke-static {v1}, Lokio/ByteString;->decodeHex(Ljava/lang/String;)Lokio/ByteString;
move-result-object v1
sput-object v1, Lokhttp3/internal/Util;->UTF_32_BE_BOM:Lokio/ByteString;
.line 67
const-string v1, "ffff0000"
invoke-static {v1}, Lokio/ByteString;->decodeHex(Ljava/lang/String;)Lokio/ByteString;
move-result-object v1
sput-object v1, Lokhttp3/internal/Util;->UTF_32_LE_BOM:Lokio/ByteString;
.line 69
const-string v1, "UTF-8"
invoke-static {v1}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
move-result-object v1
sput-object v1, Lokhttp3/internal/Util;->UTF_8:Ljava/nio/charset/Charset;
.line 70
const-string v1, "ISO-8859-1"
invoke-static {v1}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
move-result-object v1
sput-object v1, Lokhttp3/internal/Util;->ISO_8859_1:Ljava/nio/charset/Charset;
.line 71
const-string v1, "UTF-16BE"
invoke-static {v1}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
move-result-object v1
sput-object v1, Lokhttp3/internal/Util;->UTF_16_BE:Ljava/nio/charset/Charset;
.line 72
const-string v1, "UTF-16LE"
invoke-static {v1}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
move-result-object v1
sput-object v1, Lokhttp3/internal/Util;->UTF_16_LE:Ljava/nio/charset/Charset;
.line 73
const-string v1, "UTF-32BE"
invoke-static {v1}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
move-result-object v1
sput-object v1, Lokhttp3/internal/Util;->UTF_32_BE:Ljava/nio/charset/Charset;
.line 74
const-string v1, "UTF-32LE"
invoke-static {v1}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
move-result-object v1
sput-object v1, Lokhttp3/internal/Util;->UTF_32_LE:Ljava/nio/charset/Charset;
.line 77
const-string v1, "GMT"
invoke-static {v1}, Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;
move-result-object v1
sput-object v1, Lokhttp3/internal/Util;->UTC:Ljava/util/TimeZone;
.line 79
new-instance v1, Lokhttp3/internal/Util$1;
invoke-direct {v1}, Lokhttp3/internal/Util$1;-><init>()V
sput-object v1, Lokhttp3/internal/Util;->NATURAL_ORDER:Ljava/util/Comparator;
.line 90
:try_start_7f
const-class v1, Ljava/lang/Throwable;
const-string v2, "addSuppressed"
const/4 v3, 0x1
new-array v3, v3, [Ljava/lang/Class;
const-class v4, Ljava/lang/Throwable;
aput-object v4, v3, v0
invoke-virtual {v1, v2, v3}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
:try_end_8e
.catch Ljava/lang/Exception; {:try_start_7f .. :try_end_8e} :catch_8f
.line 93
.local v0, "m":Ljava/lang/reflect/Method;
goto :goto_92
.line 91
.end local v0 # "m":Ljava/lang/reflect/Method;
:catch_8f
move-exception v0
.line 92
.local v0, "e":Ljava/lang/Exception;
const/4 v1, 0x0
move-object v0, v1
.line 94
.local v0, "m":Ljava/lang/reflect/Method;
:goto_92
sput-object v0, Lokhttp3/internal/Util;->addSuppressedExceptionMethod:Ljava/lang/reflect/Method;
.line 116
.end local v0 # "m":Ljava/lang/reflect/Method;
const-string v0, "([0-9a-fA-F]*:[0-9a-fA-F:.]*)|([\\d.]+)"
invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object v0
sput-object v0, Lokhttp3/internal/Util;->VERIFY_AS_IP_ADDRESS:Ljava/util/regex/Pattern;
return-void
.end method
.method private constructor <init>()V
.registers 1
.line 119
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 120
return-void
.end method
.method public static addSuppressedIfPossible(Ljava/lang/Throwable;Ljava/lang/Throwable;)V
.registers 5
.param p0, "e" # Ljava/lang/Throwable;
.param p1, "suppressed" # Ljava/lang/Throwable;
.line 98
sget-object v0, Lokhttp3/internal/Util;->addSuppressedExceptionMethod:Ljava/lang/reflect/Method;
if-eqz v0, :cond_11
.line 100
const/4 v1, 0x1
:try_start_5
new-array v1, v1, [Ljava/lang/Object;
const/4 v2, 0x0
aput-object p1, v1, v2
invoke-virtual {v0, p0, v1}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
:try_end_d
.catch Ljava/lang/reflect/InvocationTargetException; {:try_start_5 .. :try_end_d} :catch_10
.catch Ljava/lang/IllegalAccessException; {:try_start_5 .. :try_end_d} :catch_e
.line 102
goto :goto_11
.line 101
:catch_e
move-exception v0
goto :goto_11
:catch_10
move-exception v0
.line 104
:cond_11
:goto_11
return-void
.end method
.method public static assertionError(Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/AssertionError;
.registers 4
.param p0, "message" # Ljava/lang/String;
.param p1, "e" # Ljava/lang/Exception;
.line 502
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0, p0}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V
.line 504
.local v0, "assertionError":Ljava/lang/AssertionError;
:try_start_5
invoke-virtual {v0, p1}, Ljava/lang/AssertionError;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
:try_end_8
.catch Ljava/lang/IllegalStateException; {:try_start_5 .. :try_end_8} :catch_9
.line 507
goto :goto_a
.line 505
:catch_9
move-exception v1
.line 508
:goto_a
return-object v0
.end method
.method public static bomAwareCharset(Lokio/BufferedSource;Ljava/nio/charset/Charset;)Ljava/nio/charset/Charset;
.registers 5
.param p0, "source" # Lokio/BufferedSource;
.param p1, "charset" # Ljava/nio/charset/Charset;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 469
sget-object v0, Lokhttp3/internal/Util;->UTF_8_BOM:Lokio/ByteString;
const-wide/16 v1, 0x0
invoke-interface {p0, v1, v2, v0}, Lokio/BufferedSource;->rangeEquals(JLokio/ByteString;)Z
move-result v0
if-eqz v0, :cond_17
.line 470
sget-object v0, Lokhttp3/internal/Util;->UTF_8_BOM:Lokio/ByteString;
invoke-virtual {v0}, Lokio/ByteString;->size()I
move-result v0
int-to-long v0, v0
invoke-interface {p0, v0, v1}, Lokio/BufferedSource;->skip(J)V
.line 471
sget-object v0, Lokhttp3/internal/Util;->UTF_8:Ljava/nio/charset/Charset;
return-object v0
.line 473
:cond_17
sget-object v0, Lokhttp3/internal/Util;->UTF_16_BE_BOM:Lokio/ByteString;
invoke-interface {p0, v1, v2, v0}, Lokio/BufferedSource;->rangeEquals(JLokio/ByteString;)Z
move-result v0
if-eqz v0, :cond_2c
.line 474
sget-object v0, Lokhttp3/internal/Util;->UTF_16_BE_BOM:Lokio/ByteString;
invoke-virtual {v0}, Lokio/ByteString;->size()I
move-result v0
int-to-long v0, v0
invoke-interface {p0, v0, v1}, Lokio/BufferedSource;->skip(J)V
.line 475
sget-object v0, Lokhttp3/internal/Util;->UTF_16_BE:Ljava/nio/charset/Charset;
return-object v0
.line 477
:cond_2c
sget-object v0, Lokhttp3/internal/Util;->UTF_16_LE_BOM:Lokio/ByteString;
invoke-interface {p0, v1, v2, v0}, Lokio/BufferedSource;->rangeEquals(JLokio/ByteString;)Z
move-result v0
if-eqz v0, :cond_41
.line 478
sget-object v0, Lokhttp3/internal/Util;->UTF_16_LE_BOM:Lokio/ByteString;
invoke-virtual {v0}, Lokio/ByteString;->size()I
move-result v0
int-to-long v0, v0
invoke-interface {p0, v0, v1}, Lokio/BufferedSource;->skip(J)V
.line 479
sget-object v0, Lokhttp3/internal/Util;->UTF_16_LE:Ljava/nio/charset/Charset;
return-object v0
.line 481
:cond_41
sget-object v0, Lokhttp3/internal/Util;->UTF_32_BE_BOM:Lokio/ByteString;
invoke-interface {p0, v1, v2, v0}, Lokio/BufferedSource;->rangeEquals(JLokio/ByteString;)Z
move-result v0
if-eqz v0, :cond_56
.line 482
sget-object v0, Lokhttp3/internal/Util;->UTF_32_BE_BOM:Lokio/ByteString;
invoke-virtual {v0}, Lokio/ByteString;->size()I
move-result v0
int-to-long v0, v0
invoke-interface {p0, v0, v1}, Lokio/BufferedSource;->skip(J)V
.line 483
sget-object v0, Lokhttp3/internal/Util;->UTF_32_BE:Ljava/nio/charset/Charset;
return-object v0
.line 485
:cond_56
sget-object v0, Lokhttp3/internal/Util;->UTF_32_LE_BOM:Lokio/ByteString;
invoke-interface {p0, v1, v2, v0}, Lokio/BufferedSource;->rangeEquals(JLokio/ByteString;)Z
move-result v0
if-eqz v0, :cond_6b
.line 486
sget-object v0, Lokhttp3/internal/Util;->UTF_32_LE_BOM:Lokio/ByteString;
invoke-virtual {v0}, Lokio/ByteString;->size()I
move-result v0
int-to-long v0, v0
invoke-interface {p0, v0, v1}, Lokio/BufferedSource;->skip(J)V
.line 487
sget-object v0, Lokhttp3/internal/Util;->UTF_32_LE:Ljava/nio/charset/Charset;
return-object v0
.line 489
:cond_6b
return-object p1
.end method
.method public static canonicalizeHost(Ljava/lang/String;)Ljava/lang/String;
.registers 6
.param p0, "host" # Ljava/lang/String;
.line 398
const-string v0, ":"
invoke-virtual {p0, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
const/4 v1, 0x0
if-eqz v0, :cond_5b
.line 400
const-string v0, "["
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_24
const-string v0, "]"
invoke-virtual {p0, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_24
.line 401
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
const/4 v2, 0x1
sub-int/2addr v0, v2
invoke-static {p0, v2, v0}, Lokhttp3/internal/Util;->decodeIpv6(Ljava/lang/String;II)Ljava/net/InetAddress;
move-result-object v0
goto :goto_2d
.line 402
:cond_24
const/4 v0, 0x0
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v2
invoke-static {p0, v0, v2}, Lokhttp3/internal/Util;->decodeIpv6(Ljava/lang/String;II)Ljava/net/InetAddress;
move-result-object v0
:goto_2d
nop
.line 403
.local v0, "inetAddress":Ljava/net/InetAddress;
if-nez v0, :cond_31
return-object v1
.line 404
:cond_31
invoke-virtual {v0}, Ljava/net/InetAddress;->getAddress()[B
move-result-object v1
.line 405
.local v1, "address":[B
array-length v2, v1
const/16 v3, 0x10
if-ne v2, v3, :cond_3f
invoke-static {v1}, Lokhttp3/internal/Util;->inet6AddressToAscii([B)Ljava/lang/String;
move-result-object v2
return-object v2
.line 406
:cond_3f
new-instance v2, Ljava/lang/AssertionError;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Invalid IPv6 address: \'"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v4, "\'"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V
throw v2
.line 410
.end local v0 # "inetAddress":Ljava/net/InetAddress;
.end local v1 # "address":[B
:cond_5b
:try_start_5b
invoke-static {p0}, Ljava/net/IDN;->toASCII(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
sget-object v2, Ljava/util/Locale;->US:Ljava/util/Locale;
invoke-virtual {v0, v2}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v0
.line 411
.local v0, "result":Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z
move-result v2
if-eqz v2, :cond_6c
return-object v1
.line 414
:cond_6c
invoke-static {v0}, Lokhttp3/internal/Util;->containsInvalidHostnameAsciiCodes(Ljava/lang/String;)Z
move-result v2
:try_end_70
.catch Ljava/lang/IllegalArgumentException; {:try_start_5b .. :try_end_70} :catch_74
if-eqz v2, :cond_73
.line 415
return-object v1
.line 418
:cond_73
return-object v0
.line 419
.end local v0 # "result":Ljava/lang/String;
:catch_74
move-exception v0
.line 420
.local v0, "e":Ljava/lang/IllegalArgumentException;
return-object v1
.end method
.method public static checkDuration(Ljava/lang/String;JLjava/util/concurrent/TimeUnit;)I
.registers 11
.param p0, "name" # Ljava/lang/String;
.param p1, "duration" # J
.param p3, "unit" # Ljava/util/concurrent/TimeUnit;
.line 493
const-wide/16 v0, 0x0
cmp-long v2, p1, v0
if-ltz v2, :cond_54
.line 494
if-eqz p3, :cond_4c
.line 495
invoke-virtual {p3, p1, p2}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J
move-result-wide v2
.line 496
.local v2, "millis":J
const-wide/32 v4, 0x7fffffff
cmp-long v6, v2, v4
if-gtz v6, :cond_35
.line 497
cmp-long v4, v2, v0
if-nez v4, :cond_33
cmp-long v4, p1, v0
if-gtz v4, :cond_1c
goto :goto_33
:cond_1c
new-instance v0, Ljava/lang/IllegalArgumentException;
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;
const-string v4, " too small."
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)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
throw v0
.line 498
:cond_33
:goto_33
long-to-int v0, v2
return v0
.line 496
:cond_35
new-instance v0, Ljava/lang/IllegalArgumentException;
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;
const-string v4, " too large."
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)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
throw v0
.line 494
.end local v2 # "millis":J
:cond_4c
new-instance v0, Ljava/lang/NullPointerException;
const-string v1, "unit == null"
invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw v0
.line 493
:cond_54
new-instance v0, Ljava/lang/IllegalArgumentException;
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;
const-string v2, " < 0"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)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
throw v0
.end method
.method public static checkOffsetAndCount(JJJ)V
.registers 11
.param p0, "arrayLength" # J
.param p2, "offset" # J
.param p4, "count" # J
.line 123
or-long v0, p2, p4
const-wide/16 v2, 0x0
cmp-long v4, v0, v2
if-ltz v4, :cond_13
cmp-long v0, p2, p0
if-gtz v0, :cond_13
sub-long v0, p0, p2
cmp-long v2, v0, p4
if-ltz v2, :cond_13
.line 126
return-void
.line 124
:cond_13
new-instance v0, Ljava/lang/ArrayIndexOutOfBoundsException;
invoke-direct {v0}, Ljava/lang/ArrayIndexOutOfBoundsException;-><init>()V
throw v0
.end method
.method public static closeQuietly(Ljava/io/Closeable;)V
.registers 2
.param p0, "closeable" # Ljava/io/Closeable;
.line 138
if-eqz p0, :cond_a
.line 140
:try_start_2
invoke-interface {p0}, Ljava/io/Closeable;->close()V
:try_end_5
.catch Ljava/lang/RuntimeException; {:try_start_2 .. :try_end_5} :catch_8
.catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_6
.line 144
goto :goto_a
.line 143
:catch_6
move-exception v0
goto :goto_a
.line 141
:catch_8
move-exception v0
.line 142
.local v0, "rethrown":Ljava/lang/RuntimeException;
throw v0
.line 146
.end local v0 # "rethrown":Ljava/lang/RuntimeException;
:cond_a
:goto_a
return-void
.end method
.method public static closeQuietly(Ljava/net/ServerSocket;)V
.registers 2
.param p0, "serverSocket" # Ljava/net/ServerSocket;
.line 170
if-eqz p0, :cond_a
.line 172
:try_start_2
invoke-virtual {p0}, Ljava/net/ServerSocket;->close()V
:try_end_5
.catch Ljava/lang/RuntimeException; {:try_start_2 .. :try_end_5} :catch_8
.catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_6
.line 176
goto :goto_a
.line 175
:catch_6
move-exception v0
goto :goto_a
.line 173
:catch_8
move-exception v0
.line 174
.local v0, "rethrown":Ljava/lang/RuntimeException;
throw v0
.line 178
.end local v0 # "rethrown":Ljava/lang/RuntimeException;
:cond_a
:goto_a
return-void
.end method
.method public static closeQuietly(Ljava/net/Socket;)V
.registers 3
.param p0, "socket" # Ljava/net/Socket;
.line 153
if-eqz p0, :cond_13
.line 155
:try_start_2
invoke-virtual {p0}, Ljava/net/Socket;->close()V
:try_end_5
.catch Ljava/lang/AssertionError; {:try_start_2 .. :try_end_5} :catch_a
.catch Ljava/lang/RuntimeException; {:try_start_2 .. :try_end_5} :catch_8
.catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_6
.line 161
:goto_5
goto :goto_13
.line 160
:catch_6
move-exception v0
goto :goto_13
.line 158
:catch_8
move-exception v0
.line 159
.local v0, "rethrown":Ljava/lang/RuntimeException;
throw v0
.line 156
.end local v0 # "rethrown":Ljava/lang/RuntimeException;
:catch_a
move-exception v0
.line 157
.local v0, "e":Ljava/lang/AssertionError;
invoke-static {v0}, Lokhttp3/internal/Util;->isAndroidGetsocknameError(Ljava/lang/AssertionError;)Z
move-result v1
if-eqz v1, :cond_12
.end local v0 # "e":Ljava/lang/AssertionError;
goto :goto_5
.restart local v0 # "e":Ljava/lang/AssertionError;
:cond_12
throw v0
.line 163
.end local v0 # "e":Ljava/lang/AssertionError;
:cond_13
:goto_13
return-void
.end method
.method public static concat([Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
.registers 5
.param p0, "array" # [Ljava/lang/String;
.param p1, "value" # Ljava/lang/String;
.line 313
array-length v0, p0
add-int/lit8 v0, v0, 0x1
new-array v0, v0, [Ljava/lang/String;
.line 314
.local v0, "result":[Ljava/lang/String;
array-length v1, p0
const/4 v2, 0x0
invoke-static {p0, v2, v0, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 315
array-length v1, v0
add-int/lit8 v1, v1, -0x1
aput-object p1, v0, v1
.line 316
return-object v0
.end method
.method private static containsInvalidHostnameAsciiCodes(Ljava/lang/String;)Z
.registers 6
.param p0, "hostnameAscii" # Ljava/lang/String;
.line 425
const/4 v0, 0x0
.local v0, "i":I
:goto_1
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v1
if-ge v0, v1, :cond_23
.line 426
invoke-virtual {p0, v0}, Ljava/lang/String;->charAt(I)C
move-result v1
.line 430
.local v1, "c":C
const/16 v2, 0x1f
const/4 v3, 0x1
if-le v1, v2, :cond_22
const/16 v2, 0x7f
if-lt v1, v2, :cond_15
goto :goto_22
.line 436
:cond_15
const-string v2, " #%/:?@[\\]"
invoke-virtual {v2, v1}, Ljava/lang/String;->indexOf(I)I
move-result v2
const/4 v4, -0x1
if-eq v2, v4, :cond_1f
.line 437
return v3
.line 425
.end local v1 # "c":C
:cond_1f
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 431
.restart local v1 # "c":C
:cond_22
:goto_22
return v3
.line 440
.end local v0 # "i":I
.end local v1 # "c":C
:cond_23
const/4 v0, 0x0
return v0
.end method
.method public static decodeHexDigit(C)I
.registers 2
.param p0, "c" # C
.line 512
const/16 v0, 0x30
if-lt p0, v0, :cond_b
const/16 v0, 0x39
if-gt p0, v0, :cond_b
add-int/lit8 v0, p0, -0x30
return v0
.line 513
:cond_b
const/16 v0, 0x61
if-lt p0, v0, :cond_18
const/16 v0, 0x66
if-gt p0, v0, :cond_18
add-int/lit8 v0, p0, -0x61
add-int/lit8 v0, v0, 0xa
return v0
.line 514
:cond_18
const/16 v0, 0x41
if-lt p0, v0, :cond_25
const/16 v0, 0x46
if-gt p0, v0, :cond_25
add-int/lit8 v0, p0, -0x41
add-int/lit8 v0, v0, 0xa
return v0
.line 515
:cond_25
const/4 v0, -0x1
return v0
.end method
.method private static decodeIpv4Suffix(Ljava/lang/String;II[BI)Z
.registers 13
.param p0, "input" # Ljava/lang/String;
.param p1, "pos" # I
.param p2, "limit" # I
.param p3, "address" # [B
.param p4, "addressOffset" # I
.line 592
move v0, p4
.line 594
.local v0, "b":I
move v1, p1
.local v1, "i":I
:goto_2
const/4 v2, 0x0
if-ge v1, p2, :cond_45
.line 595
array-length v3, p3
if-ne v0, v3, :cond_9
return v2
.line 598
:cond_9
if-eq v0, p4, :cond_16
.line 599
invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C
move-result v3
const/16 v4, 0x2e
if-eq v3, v4, :cond_14
return v2
.line 600
:cond_14
add-int/lit8 v1, v1, 0x1
.line 604
:cond_16
const/4 v3, 0x0
.line 605
.local v3, "value":I
move v4, v1
.line 606
.local v4, "groupOffset":I
:goto_18
if-ge v1, p2, :cond_39
.line 607
invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C
move-result v5
.line 608
.local v5, "c":C
const/16 v6, 0x30
if-lt v5, v6, :cond_39
const/16 v7, 0x39
if-le v5, v7, :cond_27
goto :goto_39
.line 609
:cond_27
if-nez v3, :cond_2c
if-eq v4, v1, :cond_2c
return v2
.line 610
:cond_2c
mul-int/lit8 v7, v3, 0xa
add-int/2addr v7, v5
add-int/lit8 v3, v7, -0x30
.line 611
const/16 v6, 0xff
if-le v3, v6, :cond_36
return v2
.line 606
.end local v5 # "c":C
:cond_36
add-int/lit8 v1, v1, 0x1
goto :goto_18
.line 613
:cond_39
:goto_39
sub-int v5, v1, v4
.line 614
.local v5, "groupLength":I
if-nez v5, :cond_3e
return v2
.line 617
:cond_3e
add-int/lit8 v2, v0, 0x1
.end local v0 # "b":I
.local v2, "b":I
int-to-byte v6, v3
aput-byte v6, p3, v0
.line 618
.end local v3 # "value":I
.end local v4 # "groupOffset":I
.end local v5 # "groupLength":I
move v0, v2
goto :goto_2
.line 620
.end local v1 # "i":I
.end local v2 # "b":I
.restart local v0 # "b":I
:cond_45
add-int/lit8 v1, p4, 0x4
if-eq v0, v1, :cond_4a
return v2
.line 621
:cond_4a
const/4 v1, 0x1
return v1
.end method
.method private static decodeIpv6(Ljava/lang/String;II)Ljava/net/InetAddress;
.registers 14
.param p0, "input" # Ljava/lang/String;
.param p1, "pos" # I
.param p2, "limit" # I
.annotation runtime Ljavax/annotation/Nullable;
.end annotation
.line 520
const/16 v0, 0x10
new-array v0, v0, [B
.line 521
.local v0, "address":[B
const/4 v1, 0x0
.line 522
.local v1, "b":I
const/4 v2, -0x1
.line 523
.local v2, "compress":I
const/4 v3, -0x1
.line 525
.local v3, "groupOffset":I
move v4, p1
.local v4, "i":I
:goto_8
const/4 v5, -0x1
const/4 v6, 0x0
const/4 v7, 0x0
if-ge v4, p2, :cond_7c
.line 526
array-length v8, v0
if-ne v1, v8, :cond_11
return-object v7
.line 529
:cond_11
add-int/lit8 v8, v4, 0x2
if-gt v8, p2, :cond_29
const/4 v8, 0x2
const-string v9, "::"
invoke-virtual {p0, v4, v9, v6, v8}, Ljava/lang/String;->regionMatches(ILjava/lang/String;II)Z
move-result v8
if-eqz v8, :cond_29
.line 531
if-eq v2, v5, :cond_21
return-object v7
.line 532
:cond_21
add-int/lit8 v4, v4, 0x2
.line 533
add-int/lit8 v1, v1, 0x2
.line 534
move v2, v1
.line 535
if-ne v4, p2, :cond_4c
goto :goto_7c
.line 536
:cond_29
if-eqz v1, :cond_4c
.line 538
const/4 v8, 0x1
const-string v9, ":"
invoke-virtual {p0, v4, v9, v6, v8}, Ljava/lang/String;->regionMatches(ILjava/lang/String;II)Z
move-result v9
if-eqz v9, :cond_37
.line 539
add-int/lit8 v4, v4, 0x1
goto :goto_4c
.line 540
:cond_37
const-string v9, "."
invoke-virtual {p0, v4, v9, v6, v8}, Ljava/lang/String;->regionMatches(ILjava/lang/String;II)Z
move-result v8
if-eqz v8, :cond_4b
.line 542
add-int/lit8 v8, v1, -0x2
invoke-static {p0, v3, p2, v0, v8}, Lokhttp3/internal/Util;->decodeIpv4Suffix(Ljava/lang/String;II[BI)Z
move-result v8
if-nez v8, :cond_48
return-object v7
.line 543
:cond_48
add-int/lit8 v1, v1, 0x2
.line 544
goto :goto_7c
.line 546
:cond_4b
return-object v7
.line 551
:cond_4c
:goto_4c
const/4 v6, 0x0
.line 552
.local v6, "value":I
move v3, v4
.line 553
:goto_4e
if-ge v4, p2, :cond_62
.line 554
invoke-virtual {p0, v4}, Ljava/lang/String;->charAt(I)C
move-result v8
.line 555
.local v8, "c":C
invoke-static {v8}, Lokhttp3/internal/Util;->decodeHexDigit(C)I
move-result v9
.line 556
.local v9, "hexDigit":I
if-ne v9, v5, :cond_5b
goto :goto_62
.line 557
:cond_5b
shl-int/lit8 v10, v6, 0x4
add-int v6, v10, v9
.line 553
.end local v8 # "c":C
.end local v9 # "hexDigit":I
add-int/lit8 v4, v4, 0x1
goto :goto_4e
.line 559
:cond_62
:goto_62
sub-int v5, v4, v3
.line 560
.local v5, "groupLength":I
if-eqz v5, :cond_7b
const/4 v8, 0x4
if-le v5, v8, :cond_6a
goto :goto_7b
.line 563
:cond_6a
add-int/lit8 v7, v1, 0x1
.end local v1 # "b":I
.local v7, "b":I
ushr-int/lit8 v8, v6, 0x8
and-int/lit16 v8, v8, 0xff
int-to-byte v8, v8
aput-byte v8, v0, v1
.line 564
add-int/lit8 v1, v7, 0x1
.end local v7 # "b":I
.restart local v1 # "b":I
and-int/lit16 v8, v6, 0xff
int-to-byte v8, v8
aput-byte v8, v0, v7
.line 565
.end local v5 # "groupLength":I
.end local v6 # "value":I
goto :goto_8
.line 560
.restart local v5 # "groupLength":I
.restart local v6 # "value":I
:cond_7b
:goto_7b
return-object v7
.line 576
.end local v4 # "i":I
.end local v5 # "groupLength":I
.end local v6 # "value":I
:cond_7c
:goto_7c
array-length v4, v0
if-eq v1, v4, :cond_91
.line 577
if-ne v2, v5, :cond_82
return-object v7
.line 578
:cond_82
array-length v4, v0
sub-int v5, v1, v2
sub-int/2addr v4, v5
sub-int v5, v1, v2
invoke-static {v0, v2, v0, v4, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 579
array-length v4, v0
sub-int/2addr v4, v1
add-int/2addr v4, v2
invoke-static {v0, v2, v4, v6}, Ljava/util/Arrays;->fill([BIIB)V
.line 583
:cond_91
:try_start_91
invoke-static {v0}, Ljava/net/InetAddress;->getByAddress([B)Ljava/net/InetAddress;
move-result-object v4
:try_end_95
.catch Ljava/net/UnknownHostException; {:try_start_91 .. :try_end_95} :catch_96
return-object v4
.line 584
:catch_96
move-exception v4
.line 585
.local v4, "e":Ljava/net/UnknownHostException;
new-instance v5, Ljava/lang/AssertionError;
invoke-direct {v5}, Ljava/lang/AssertionError;-><init>()V
goto :goto_9e
:goto_9d
throw v5
:goto_9e
goto :goto_9d
.end method
.method public static delimiterOffset(Ljava/lang/String;IIC)I
.registers 6
.param p0, "input" # Ljava/lang/String;
.param p1, "pos" # I
.param p2, "limit" # I
.param p3, "delimiter" # C
.line 382
move v0, p1
.local v0, "i":I
:goto_1
if-ge v0, p2, :cond_d
.line 383
invoke-virtual {p0, v0}, Ljava/lang/String;->charAt(I)C
move-result v1
if-ne v1, p3, :cond_a
return v0
.line 382
:cond_a
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 385
.end local v0 # "i":I
:cond_d
return p2
.end method
.method public static delimiterOffset(Ljava/lang/String;IILjava/lang/String;)I
.registers 7
.param p0, "input" # Ljava/lang/String;
.param p1, "pos" # I
.param p2, "limit" # I
.param p3, "delimiters" # Ljava/lang/String;
.line 371
move v0, p1
.local v0, "i":I
:goto_1
if-ge v0, p2, :cond_12
.line 372
invoke-virtual {p0, v0}, Ljava/lang/String;->charAt(I)C
move-result v1
invoke-virtual {p3, v1}, Ljava/lang/String;->indexOf(I)I
move-result v1
const/4 v2, -0x1
if-eq v1, v2, :cond_f
return v0
.line 371
:cond_f
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 374
.end local v0 # "i":I
:cond_12
return p2
.end method
.method public static discard(Lokio/Source;ILjava/util/concurrent/TimeUnit;)Z
.registers 5
.param p0, "source" # Lokio/Source;
.param p1, "timeout" # I
.param p2, "timeUnit" # Ljava/util/concurrent/TimeUnit;
.line 187
:try_start_0
invoke-static {p0, p1, p2}, Lokhttp3/internal/Util;->skipAll(Lokio/Source;ILjava/util/concurrent/TimeUnit;)Z
move-result v0
:try_end_4
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_4} :catch_5
return v0
.line 188
:catch_5
move-exception v0
.line 189
.local v0, "e":Ljava/io/IOException;
const/4 v1, 0x0
return v1
.end method
.method public static equal(Ljava/lang/Object;Ljava/lang/Object;)Z
.registers 3
.param p0, "a" # Ljava/lang/Object;
.param p1, "b" # Ljava/lang/Object;
.line 130
if-eq p0, p1, :cond_d
if-eqz p0, :cond_b
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_b
goto :goto_d
:cond_b
const/4 v0, 0x0
goto :goto_e
:cond_d
:goto_d
const/4 v0, 0x1
:goto_e
return v0
.end method
.method public static varargs format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
.registers 3
.param p0, "format" # Ljava/lang/String;
.param p1, "args" # [Ljava/lang/Object;
.line 465
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
invoke-static {v0, p0, p1}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static hostHeader(Lokhttp3/HttpUrl;Z)Ljava/lang/String;
.registers 6
.param p0, "url" # Lokhttp3/HttpUrl;
.param p1, "includeDefaultPort" # Z
.line 288
invoke-virtual {p0}, Lokhttp3/HttpUrl;->host()Ljava/lang/String;
move-result-object v0
const-string v1, ":"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_27
.line 289
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "["
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lokhttp3/HttpUrl;->host()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "]"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
goto :goto_2b
.line 290
:cond_27
invoke-virtual {p0}, Lokhttp3/HttpUrl;->host()Ljava/lang/String;
move-result-object v0
:goto_2b
nop
.line 291
.local v0, "host":Ljava/lang/String;
if-nez p1, :cond_3f
invoke-virtual {p0}, Lokhttp3/HttpUrl;->port()I
move-result v2
invoke-virtual {p0}, Lokhttp3/HttpUrl;->scheme()Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Lokhttp3/HttpUrl;->defaultPort(Ljava/lang/String;)I
move-result v3
if-eq v2, v3, :cond_3d
goto :goto_3f
.line 293
:cond_3d
move-object v1, v0
goto :goto_55
.line 292
:cond_3f
:goto_3f
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, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lokhttp3/HttpUrl;->port()I
move-result v1
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
.line 291
:goto_55
return-object v1
.end method
.method public static immutableList(Ljava/util/List;)Ljava/util/List;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/util/List<",
"TT;>;)",
"Ljava/util/List<",
"TT;>;"
}
.end annotation
.line 222
.local p0, "list":Ljava/util/List;, "Ljava/util/List<TT;>;"
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0, p0}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
invoke-static {v0}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public static varargs immutableList([Ljava/lang/Object;)Ljava/util/List;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">([TT;)",
"Ljava/util/List<",
"TT;>;"
}
.end annotation
.line 234
.local p0, "elements":[Ljava/lang/Object;, "[TT;"
invoke-virtual {p0}, [Ljava/lang/Object;->clone()Ljava/lang/Object;
move-result-object v0
check-cast v0, [Ljava/lang/Object;
invoke-static {v0}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v0
invoke-static {v0}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public static immutableMap(Ljava/util/Map;)Ljava/util/Map;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">(",
"Ljava/util/Map<",
"TK;TV;>;)",
"Ljava/util/Map<",
"TK;TV;>;"
}
.end annotation
.line 227
.local p0, "map":Ljava/util/Map;, "Ljava/util/Map<TK;TV;>;"
invoke-interface {p0}, Ljava/util/Map;->isEmpty()Z
move-result v0
if-eqz v0, :cond_b
.line 228
invoke-static {}, Ljava/util/Collections;->emptyMap()Ljava/util/Map;
move-result-object v0
goto :goto_14
.line 229
:cond_b
new-instance v0, Ljava/util/LinkedHashMap;
invoke-direct {v0, p0}, Ljava/util/LinkedHashMap;-><init>(Ljava/util/Map;)V
invoke-static {v0}, Ljava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map;
move-result-object v0
.line 227
:goto_14
return-object v0
.end method
.method public static indexOf(Ljava/util/Comparator;[Ljava/lang/String;Ljava/lang/String;)I
.registers 6
.param p1, "array" # [Ljava/lang/String;
.param p2, "value" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Comparator<",
"Ljava/lang/String;",
">;[",
"Ljava/lang/String;",
"Ljava/lang/String;",
")I"
}
.end annotation
.line 306
.local p0, "comparator":Ljava/util/Comparator;, "Ljava/util/Comparator<Ljava/lang/String;>;"
const/4 v0, 0x0
.local v0, "i":I
array-length v1, p1
.local v1, "size":I
:goto_2
if-ge v0, v1, :cond_10
.line 307
aget-object v2, p1, v0
invoke-interface {p0, v2, p2}, Ljava/util/Comparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
move-result v2
if-nez v2, :cond_d
return v0
.line 306
:cond_d
add-int/lit8 v0, v0, 0x1
goto :goto_2
.line 309
.end local v0 # "i":I
.end local v1 # "size":I
:cond_10
const/4 v0, -0x1
return v0
.end method
.method public static indexOfControlOrNonAscii(Ljava/lang/String;)I
.registers 5
.param p0, "input" # Ljava/lang/String;
.line 449
const/4 v0, 0x0
.local v0, "i":I
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v1
.local v1, "length":I
:goto_5
if-ge v0, v1, :cond_18
.line 450
invoke-virtual {p0, v0}, Ljava/lang/String;->charAt(I)C
move-result v2
.line 451
.local v2, "c":C
const/16 v3, 0x1f
if-le v2, v3, :cond_17
const/16 v3, 0x7f
if-lt v2, v3, :cond_14
goto :goto_17
.line 449
.end local v2 # "c":C
:cond_14
add-int/lit8 v0, v0, 0x1
goto :goto_5
.line 452
.restart local v2 # "c":C
:cond_17
:goto_17
return v0
.line 455
.end local v0 # "i":I
.end local v1 # "length":I
.end local v2 # "c":C
:cond_18
const/4 v0, -0x1
return v0
.end method
.method private static inet6AddressToAscii([B)Ljava/lang/String;
.registers 9
.param p0, "address" # [B
.line 629
const/4 v0, -0x1
.line 630
.local v0, "longestRunOffset":I
const/4 v1, 0x0
.line 631
.local v1, "longestRunLength":I
const/4 v2, 0x0
.local v2, "i":I
:goto_3
array-length v3, p0
const/16 v4, 0x10
if-ge v2, v3, :cond_24
.line 632
move v3, v2
.line 633
.local v3, "currentRunOffset":I
:goto_9
if-ge v2, v4, :cond_18
aget-byte v5, p0, v2
if-nez v5, :cond_18
add-int/lit8 v5, v2, 0x1
aget-byte v5, p0, v5
if-nez v5, :cond_18
.line 634
add-int/lit8 v2, v2, 0x2
goto :goto_9
.line 636
:cond_18
sub-int v4, v2, v3
.line 637
.local v4, "currentRunLength":I
if-le v4, v1, :cond_21
const/4 v5, 0x4
if-lt v4, v5, :cond_21
.line 638
move v0, v3
.line 639
move v1, v4
.line 631
.end local v3 # "currentRunOffset":I
.end local v4 # "currentRunLength":I
:cond_21
add-int/lit8 v2, v2, 0x2
goto :goto_3
.line 644
.end local v2 # "i":I
:cond_24
new-instance v2, Lokio/Buffer;
invoke-direct {v2}, Lokio/Buffer;-><init>()V
.line 645
.local v2, "result":Lokio/Buffer;
const/4 v3, 0x0
.local v3, "i":I
:cond_2a
:goto_2a
array-length v5, p0
if-ge v3, v5, :cond_55
.line 646
const/16 v5, 0x3a
if-ne v3, v0, :cond_3b
.line 647
invoke-virtual {v2, v5}, Lokio/Buffer;->writeByte(I)Lokio/Buffer;
.line 648
add-int/2addr v3, v1
.line 649
if-ne v3, v4, :cond_2a
invoke-virtual {v2, v5}, Lokio/Buffer;->writeByte(I)Lokio/Buffer;
goto :goto_2a
.line 651
:cond_3b
if-lez v3, :cond_40
invoke-virtual {v2, v5}, Lokio/Buffer;->writeByte(I)Lokio/Buffer;
.line 652
:cond_40
aget-byte v5, p0, v3
and-int/lit16 v5, v5, 0xff
shl-int/lit8 v5, v5, 0x8
add-int/lit8 v6, v3, 0x1
aget-byte v6, p0, v6
and-int/lit16 v6, v6, 0xff
or-int/2addr v5, v6
.line 653
.local v5, "group":I
int-to-long v6, v5
invoke-virtual {v2, v6, v7}, Lokio/Buffer;->writeHexadecimalUnsignedLong(J)Lokio/Buffer;
.line 654
nop
.end local v5 # "group":I
add-int/lit8 v3, v3, 0x2
.line 655
goto :goto_2a
.line 657
.end local v3 # "i":I
:cond_55
invoke-virtual {v2}, Lokio/Buffer;->readUtf8()Ljava/lang/String;
move-result-object v3
return-object v3
.end method
.method public static intersect(Ljava/util/Comparator;[Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
.registers 12
.param p1, "first" # [Ljava/lang/String;
.param p2, "second" # [Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Comparator<",
"-",
"Ljava/lang/String;",
">;[",
"Ljava/lang/String;",
"[",
"Ljava/lang/String;",
")[",
"Ljava/lang/String;"
}
.end annotation
.line 254
.local p0, "comparator":Ljava/util/Comparator;, "Ljava/util/Comparator<-Ljava/lang/String;>;"
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 255
.local v0, "result":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;"
array-length v1, p1
const/4 v2, 0x0
const/4 v3, 0x0
:goto_8
if-ge v3, v1, :cond_22
aget-object v4, p1, v3
.line 256
.local v4, "a":Ljava/lang/String;
array-length v5, p2
const/4 v6, 0x0
:goto_e
if-ge v6, v5, :cond_1f
aget-object v7, p2, v6
.line 257
.local v7, "b":Ljava/lang/String;
invoke-interface {p0, v4, v7}, Ljava/util/Comparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
move-result v8
if-nez v8, :cond_1c
.line 258
invoke-interface {v0, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 259
goto :goto_1f
.line 256
.end local v7 # "b":Ljava/lang/String;
:cond_1c
add-int/lit8 v6, v6, 0x1
goto :goto_e
.line 255
.end local v4 # "a":Ljava/lang/String;
:cond_1f
:goto_1f
add-int/lit8 v3, v3, 0x1
goto :goto_8
.line 263
:cond_22
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
new-array v1, v1, [Ljava/lang/String;
invoke-interface {v0, v1}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v1
check-cast v1, [Ljava/lang/String;
return-object v1
.end method
.method public static isAndroidGetsocknameError(Ljava/lang/AssertionError;)Z
.registers 3
.param p0, "e" # Ljava/lang/AssertionError;
.line 301
invoke-virtual {p0}, Ljava/lang/AssertionError;->getCause()Ljava/lang/Throwable;
move-result-object v0
if-eqz v0, :cond_1a
invoke-virtual {p0}, Ljava/lang/AssertionError;->getMessage()Ljava/lang/String;
move-result-object v0
if-eqz v0, :cond_1a
.line 302
invoke-virtual {p0}, Ljava/lang/AssertionError;->getMessage()Ljava/lang/String;
move-result-object v0
const-string v1, "getsockname failed"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_1a
const/4 v0, 0x1
goto :goto_1b
:cond_1a
const/4 v0, 0x0
.line 301
:goto_1b
return v0
.end method
.method public static nonEmptyIntersection(Ljava/util/Comparator;[Ljava/lang/String;[Ljava/lang/String;)Z
.registers 11
.param p1, "first" # [Ljava/lang/String;
.param p2, "second" # [Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Comparator<",
"Ljava/lang/String;",
">;[",
"Ljava/lang/String;",
"[",
"Ljava/lang/String;",
")Z"
}
.end annotation
.line 274
.local p0, "comparator":Ljava/util/Comparator;, "Ljava/util/Comparator<Ljava/lang/String;>;"
const/4 v0, 0x0
if-eqz p1, :cond_27
if-eqz p2, :cond_27
array-length v1, p1
if-eqz v1, :cond_27
array-length v1, p2
if-nez v1, :cond_c
goto :goto_27
.line 277
:cond_c
array-length v1, p1
const/4 v2, 0x0
:goto_e
if-ge v2, v1, :cond_26
aget-object v3, p1, v2
.line 278
.local v3, "a":Ljava/lang/String;
array-length v4, p2
const/4 v5, 0x0
:goto_14
if-ge v5, v4, :cond_23
aget-object v6, p2, v5
.line 279
.local v6, "b":Ljava/lang/String;
invoke-interface {p0, v3, v6}, Ljava/util/Comparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
move-result v7
if-nez v7, :cond_20
.line 280
const/4 v0, 0x1
return v0
.line 278
.end local v6 # "b":Ljava/lang/String;
:cond_20
add-int/lit8 v5, v5, 0x1
goto :goto_14
.line 277
.end local v3 # "a":Ljava/lang/String;
:cond_23
add-int/lit8 v2, v2, 0x1
goto :goto_e
.line 284
:cond_26
return v0
.line 275
:cond_27
:goto_27
return v0
.end method
.method public static platformTrustManager()Ljavax/net/ssl/X509TrustManager;
.registers 5
.line 663
:try_start_0
invoke-static {}, Ljavax/net/ssl/TrustManagerFactory;->getDefaultAlgorithm()Ljava/lang/String;
move-result-object v0
.line 662
invoke-static {v0}, Ljavax/net/ssl/TrustManagerFactory;->getInstance(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
move-result-object v0
.line 664
.local v0, "trustManagerFactory":Ljavax/net/ssl/TrustManagerFactory;
const/4 v1, 0x0
check-cast v1, Ljava/security/KeyStore;
invoke-virtual {v0, v1}, Ljavax/net/ssl/TrustManagerFactory;->init(Ljava/security/KeyStore;)V
.line 665
invoke-virtual {v0}, Ljavax/net/ssl/TrustManagerFactory;->getTrustManagers()[Ljavax/net/ssl/TrustManager;
move-result-object v1
.line 666
.local v1, "trustManagers":[Ljavax/net/ssl/TrustManager;
array-length v2, v1
const/4 v3, 0x1
if-ne v2, v3, :cond_22
const/4 v2, 0x0
aget-object v3, v1, v2
instance-of v3, v3, Ljavax/net/ssl/X509TrustManager;
if-eqz v3, :cond_22
.line 670
aget-object v2, v1, v2
check-cast v2, Ljavax/net/ssl/X509TrustManager;
return-object v2
.line 667
:cond_22
new-instance v2, Ljava/lang/IllegalStateException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Unexpected default trust managers:"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 668
invoke-static {v1}, Ljava/util/Arrays;->toString([Ljava/lang/Object;)Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v2
:try_end_3d
.catch Ljava/security/GeneralSecurityException; {:try_start_0 .. :try_end_3d} :catch_3d
.line 671
.end local v0 # "trustManagerFactory":Ljavax/net/ssl/TrustManagerFactory;
.end local v1 # "trustManagers":[Ljavax/net/ssl/TrustManager;
:catch_3d
move-exception v0
.line 672
.local v0, "e":Ljava/security/GeneralSecurityException;
const-string v1, "No System TLS"
invoke-static {v1, v0}, Lokhttp3/internal/Util;->assertionError(Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/AssertionError;
move-result-object v1
throw v1
.end method
.method public static skipAll(Lokio/Source;ILjava/util/concurrent/TimeUnit;)Z
.registers 15
.param p0, "source" # Lokio/Source;
.param p1, "duration" # I
.param p2, "timeUnit" # Ljava/util/concurrent/TimeUnit;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 198
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v0
.line 199
.local v0, "now":J
invoke-interface {p0}, Lokio/Source;->timeout()Lokio/Timeout;
move-result-object v2
invoke-virtual {v2}, Lokio/Timeout;->hasDeadline()Z
move-result v2
const-wide v3, 0x7fffffffffffffffL
if-eqz v2, :cond_1d
.line 200
invoke-interface {p0}, Lokio/Source;->timeout()Lokio/Timeout;
move-result-object v2
invoke-virtual {v2}, Lokio/Timeout;->deadlineNanoTime()J
move-result-wide v5
sub-long/2addr v5, v0
goto :goto_1e
.line 201
:cond_1d
move-wide v5, v3
:goto_1e
nop
.line 202
.local v5, "originalDuration":J
invoke-interface {p0}, Lokio/Source;->timeout()Lokio/Timeout;
move-result-object v2
int-to-long v7, p1
invoke-virtual {p2, v7, v8}, Ljava/util/concurrent/TimeUnit;->toNanos(J)J
move-result-wide v7
invoke-static {v5, v6, v7, v8}, Ljava/lang/Math;->min(JJ)J
move-result-wide v7
add-long/2addr v7, v0
invoke-virtual {v2, v7, v8}, Lokio/Timeout;->deadlineNanoTime(J)Lokio/Timeout;
.line 204
:try_start_30
new-instance v2, Lokio/Buffer;
invoke-direct {v2}, Lokio/Buffer;-><init>()V
.line 205
.local v2, "skipBuffer":Lokio/Buffer;
:goto_35
const-wide/16 v7, 0x2000
invoke-interface {p0, v2, v7, v8}, Lokio/Source;->read(Lokio/Buffer;J)J
move-result-wide v7
const-wide/16 v9, -0x1
cmp-long v11, v7, v9
if-eqz v11, :cond_45
.line 206
invoke-virtual {v2}, Lokio/Buffer;->clear()V
:try_end_44
.catch Ljava/io/InterruptedIOException; {:try_start_30 .. :try_end_44} :catch_73
.catchall {:try_start_30 .. :try_end_44} :catchall_5c
goto :goto_35
.line 208
:cond_45
const/4 v7, 0x1
.line 212
cmp-long v8, v5, v3
if-nez v8, :cond_52
.line 213
invoke-interface {p0}, Lokio/Source;->timeout()Lokio/Timeout;
move-result-object v3
invoke-virtual {v3}, Lokio/Timeout;->clearDeadline()Lokio/Timeout;
goto :goto_5b
.line 215
:cond_52
invoke-interface {p0}, Lokio/Source;->timeout()Lokio/Timeout;
move-result-object v3
add-long v8, v0, v5
invoke-virtual {v3, v8, v9}, Lokio/Timeout;->deadlineNanoTime(J)Lokio/Timeout;
.line 208
:goto_5b
return v7
.line 212
.end local v2 # "skipBuffer":Lokio/Buffer;
:catchall_5c
move-exception v2
cmp-long v7, v5, v3
if-nez v7, :cond_69
.line 213
invoke-interface {p0}, Lokio/Source;->timeout()Lokio/Timeout;
move-result-object v3
invoke-virtual {v3}, Lokio/Timeout;->clearDeadline()Lokio/Timeout;
goto :goto_72
.line 215
:cond_69
invoke-interface {p0}, Lokio/Source;->timeout()Lokio/Timeout;
move-result-object v3
add-long v7, v0, v5
invoke-virtual {v3, v7, v8}, Lokio/Timeout;->deadlineNanoTime(J)Lokio/Timeout;
:goto_72
throw v2
.line 209
:catch_73
move-exception v2
.line 210
.local v2, "e":Ljava/io/InterruptedIOException;
const/4 v7, 0x0
.line 212
cmp-long v8, v5, v3
if-nez v8, :cond_81
.line 213
invoke-interface {p0}, Lokio/Source;->timeout()Lokio/Timeout;
move-result-object v3
invoke-virtual {v3}, Lokio/Timeout;->clearDeadline()Lokio/Timeout;
goto :goto_8a
.line 215
:cond_81
invoke-interface {p0}, Lokio/Source;->timeout()Lokio/Timeout;
move-result-object v3
add-long v8, v0, v5
invoke-virtual {v3, v8, v9}, Lokio/Timeout;->deadlineNanoTime(J)Lokio/Timeout;
.line 210
:goto_8a
return v7
.end method
.method public static skipLeadingAsciiWhitespace(Ljava/lang/String;II)I
.registers 6
.param p0, "input" # Ljava/lang/String;
.param p1, "pos" # I
.param p2, "limit" # I
.line 324
move v0, p1
.local v0, "i":I
:goto_1
if-ge v0, p2, :cond_20
.line 325
invoke-virtual {p0, v0}, Ljava/lang/String;->charAt(I)C
move-result v1
const/16 v2, 0x9
if-eq v1, v2, :cond_1c
const/16 v2, 0xa
if-eq v1, v2, :cond_1c
const/16 v2, 0xc
if-eq v1, v2, :cond_1c
const/16 v2, 0xd
if-eq v1, v2, :cond_1c
const/16 v2, 0x20
if-eq v1, v2, :cond_1c
.line 333
return v0
.line 331
:cond_1c
nop
.line 324
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 336
.end local v0 # "i":I
:cond_20
return p2
.end method
.method public static skipTrailingAsciiWhitespace(Ljava/lang/String;II)I
.registers 6
.param p0, "input" # Ljava/lang/String;
.param p1, "pos" # I
.param p2, "limit" # I
.line 344
add-int/lit8 v0, p2, -0x1
.local v0, "i":I
:goto_2
if-lt v0, p1, :cond_23
.line 345
invoke-virtual {p0, v0}, Ljava/lang/String;->charAt(I)C
move-result v1
const/16 v2, 0x9
if-eq v1, v2, :cond_1f
const/16 v2, 0xa
if-eq v1, v2, :cond_1f
const/16 v2, 0xc
if-eq v1, v2, :cond_1f
const/16 v2, 0xd
if-eq v1, v2, :cond_1f
const/16 v2, 0x20
if-eq v1, v2, :cond_1f
.line 353
add-int/lit8 v1, v0, 0x1
return v1
.line 351
:cond_1f
nop
.line 344
add-int/lit8 v0, v0, -0x1
goto :goto_2
.line 356
.end local v0 # "i":I
:cond_23
return p1
.end method
.method public static threadFactory(Ljava/lang/String;Z)Ljava/util/concurrent/ThreadFactory;
.registers 3
.param p0, "name" # Ljava/lang/String;
.param p1, "daemon" # Z
.line 238
new-instance v0, Lokhttp3/internal/Util$2;
invoke-direct {v0, p0, p1}, Lokhttp3/internal/Util$2;-><init>(Ljava/lang/String;Z)V
return-object v0
.end method
.method public static trimSubstring(Ljava/lang/String;II)Ljava/lang/String;
.registers 6
.param p0, "string" # Ljava/lang/String;
.param p1, "pos" # I
.param p2, "limit" # I
.line 361
invoke-static {p0, p1, p2}, Lokhttp3/internal/Util;->skipLeadingAsciiWhitespace(Ljava/lang/String;II)I
move-result v0
.line 362
.local v0, "start":I
invoke-static {p0, v0, p2}, Lokhttp3/internal/Util;->skipTrailingAsciiWhitespace(Ljava/lang/String;II)I
move-result v1
.line 363
.local v1, "end":I
invoke-virtual {p0, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
return-object v2
.end method
.method public static verifyAsIpAddress(Ljava/lang/String;)Z
.registers 2
.param p0, "host" # Ljava/lang/String;
.line 460
sget-object v0, Lokhttp3/internal/Util;->VERIFY_AS_IP_ADDRESS:Ljava/util/regex/Pattern;
invoke-virtual {v0, p0}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v0
invoke-virtual {v0}, Ljava/util/regex/Matcher;->matches()Z
move-result v0
return v0
.end method