e.smali
.class public final Lcom/alibaba/fastjson/util/e;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final a:Ljava/util/Properties;
.field public static final b:[C
.field public static final c:[Z
.field public static final d:[Z
.field public static final e:[B
.field public static final f:[B
.field public static final g:[Z
.field public static final h:[Z
.field public static final i:[C
.field public static final j:[C
.field public static final k:[C
.field public static final l:[C
.field public static final m:[C
.field public static final n:[I
.field public static final o:[C
.field public static final p:[I
# direct methods
.method public static constructor <clinit>()V
.registers 21
.line 1
new-instance v0, Ljava/util/Properties;
invoke-direct {v0}, Ljava/util/Properties;-><init>()V
sput-object v0, Lcom/alibaba/fastjson/util/e;->a:Ljava/util/Properties;
const-string v0, "UTF-8"
.line 2
invoke-static {v0}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
const/16 v0, 0x10
new-array v0, v0, [C
.line 3
fill-array-data v0, :array_1f0
sput-object v0, Lcom/alibaba/fastjson/util/e;->b:[C
const/16 v0, 0x100
new-array v1, v0, [Z
.line 4
sput-object v1, Lcom/alibaba/fastjson/util/e;->c:[Z
const/4 v1, 0x0
const/4 v2, 0x0
.line 5
:goto_1d
sget-object v3, Lcom/alibaba/fastjson/util/e;->c:[Z
array-length v4, v3
const/16 v5, 0x5a
const/16 v6, 0x61
const/16 v7, 0x41
const/4 v8, 0x1
if-ge v2, v4, :cond_43
if-lt v2, v7, :cond_30
if-gt v2, v5, :cond_30
.line 6
aput-boolean v8, v3, v2
goto :goto_3f
:cond_30
if-lt v2, v6, :cond_39
const/16 v4, 0x7a
if-gt v2, v4, :cond_39
.line 7
aput-boolean v8, v3, v2
goto :goto_3f
:cond_39
const/16 v4, 0x5f
if-ne v2, v4, :cond_3f
.line 8
aput-boolean v8, v3, v2
:cond_3f
:goto_3f
add-int/lit8 v2, v2, 0x1
int-to-char v2, v2
goto :goto_1d
:cond_43
new-array v2, v0, [Z
.line 9
sput-object v2, Lcom/alibaba/fastjson/util/e;->d:[Z
const/4 v2, 0x0
.line 10
:goto_48
sget-object v3, Lcom/alibaba/fastjson/util/e;->d:[Z
array-length v4, v3
if-ge v2, v4, :cond_72
if-lt v2, v7, :cond_54
if-gt v2, v5, :cond_54
.line 11
aput-boolean v8, v3, v2
goto :goto_6e
:cond_54
if-lt v2, v6, :cond_5d
const/16 v4, 0x7a
if-gt v2, v4, :cond_5d
.line 12
aput-boolean v8, v3, v2
goto :goto_6e
:cond_5d
const/16 v4, 0x5f
if-ne v2, v4, :cond_64
.line 13
aput-boolean v8, v3, v2
goto :goto_6e
:cond_64
const/16 v4, 0x30
if-lt v2, v4, :cond_6e
const/16 v4, 0x39
if-gt v2, v4, :cond_6e
.line 14
aput-boolean v8, v3, v2
:cond_6e
:goto_6e
add-int/lit8 v2, v2, 0x1
int-to-char v2, v2
goto :goto_48
.line 15
:cond_72
:try_start_72
new-instance v2, Lcom/alibaba/fastjson/util/d;
invoke-direct {v2}, Lcom/alibaba/fastjson/util/d;-><init>()V
invoke-static {v2}, Ljava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/io/InputStream;
:try_end_7d
.catchall {:try_start_72 .. :try_end_7d} :catchall_a1
if-eqz v2, :cond_87
.line 16
:try_start_7f
sget-object v3, Lcom/alibaba/fastjson/util/e;->a:Ljava/util/Properties;
invoke-virtual {v3, v2}, Ljava/util/Properties;->load(Ljava/io/InputStream;)V
.line 17
invoke-virtual {v2}, Ljava/io/InputStream;->close()V
:try_end_87
.catch Ljava/io/IOException; {:try_start_7f .. :try_end_87} :catch_87
.catchall {:try_start_7f .. :try_end_87} :catchall_a1
:catch_87
:cond_87
:try_start_87
const-string v2, "fastjson.compatibleWithJavaBean"
.line 18
invoke-static {v2}, Lcom/alibaba/fastjson/util/e;->d(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
const-string v3, "true"
invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
sput-boolean v2, Lcom/alibaba/fastjson/util/j;->a:Z
const-string v2, "fastjson.compatibleWithFieldName"
.line 19
invoke-static {v2}, Lcom/alibaba/fastjson/util/e;->d(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
sput-boolean v2, Lcom/alibaba/fastjson/util/j;->b:Z
:try_end_a1
.catchall {:try_start_87 .. :try_end_a1} :catchall_a1
:catchall_a1
const/16 v2, 0xa1
new-array v3, v2, [B
.line 20
sput-object v3, Lcom/alibaba/fastjson/util/e;->e:[B
new-array v4, v2, [B
.line 21
sput-object v4, Lcom/alibaba/fastjson/util/e;->f:[B
new-array v5, v2, [Z
.line 22
sput-object v5, Lcom/alibaba/fastjson/util/e;->g:[Z
new-array v5, v2, [Z
.line 23
sput-object v5, Lcom/alibaba/fastjson/util/e;->h:[Z
const/16 v5, 0x5d
new-array v5, v5, [C
.line 24
sput-object v5, Lcom/alibaba/fastjson/util/e;->i:[C
const/4 v5, 0x4
aput-byte v5, v3, v1
aput-byte v5, v3, v8
const/4 v6, 0x2
aput-byte v5, v3, v6
const/4 v7, 0x3
aput-byte v5, v3, v7
aput-byte v5, v3, v5
const/4 v9, 0x5
aput-byte v5, v3, v9
const/4 v10, 0x6
aput-byte v5, v3, v10
const/4 v11, 0x7
aput-byte v5, v3, v11
const/16 v12, 0x8
aput-byte v8, v3, v12
const/16 v13, 0x9
aput-byte v8, v3, v13
const/16 v14, 0xa
aput-byte v8, v3, v14
const/16 v15, 0xb
aput-byte v5, v3, v15
const/16 v16, 0xc
aput-byte v8, v3, v16
const/16 v17, 0xd
aput-byte v8, v3, v17
const/16 v18, 0x22
aput-byte v8, v3, v18
const/16 v19, 0x5c
aput-byte v8, v3, v19
aput-byte v5, v4, v1
aput-byte v5, v4, v8
aput-byte v5, v4, v6
aput-byte v5, v4, v7
aput-byte v5, v4, v5
aput-byte v5, v4, v9
aput-byte v5, v4, v10
aput-byte v5, v4, v11
aput-byte v8, v4, v12
aput-byte v8, v4, v13
aput-byte v8, v4, v14
aput-byte v5, v4, v15
aput-byte v8, v4, v16
aput-byte v8, v4, v17
aput-byte v8, v4, v19
const/16 v3, 0x27
aput-byte v8, v4, v3
const/16 v4, 0xe
:goto_113
const/16 v0, 0x1f
if-gt v4, v0, :cond_122
.line 25
sget-object v0, Lcom/alibaba/fastjson/util/e;->e:[B
aput-byte v5, v0, v4
.line 26
sget-object v0, Lcom/alibaba/fastjson/util/e;->f:[B
aput-byte v5, v0, v4
add-int/lit8 v4, v4, 0x1
goto :goto_113
:cond_122
const/16 v0, 0x7f
:goto_124
const/16 v4, 0xa0
if-ge v0, v4, :cond_133
.line 27
sget-object v4, Lcom/alibaba/fastjson/util/e;->e:[B
aput-byte v5, v4, v0
.line 28
sget-object v4, Lcom/alibaba/fastjson/util/e;->f:[B
aput-byte v5, v4, v0
add-int/lit8 v0, v0, 0x1
goto :goto_124
:cond_133
const/4 v0, 0x0
:goto_134
if-ge v0, v2, :cond_157
.line 29
sget-object v4, Lcom/alibaba/fastjson/util/e;->g:[Z
sget-object v20, Lcom/alibaba/fastjson/util/e;->e:[B
aget-byte v20, v20, v0
if-eqz v20, :cond_141
const/16 v20, 0x1
goto :goto_143
:cond_141
const/16 v20, 0x0
:goto_143
aput-boolean v20, v4, v0
.line 30
sget-object v4, Lcom/alibaba/fastjson/util/e;->h:[Z
sget-object v20, Lcom/alibaba/fastjson/util/e;->f:[B
aget-byte v20, v20, v0
if-eqz v20, :cond_150
const/16 v20, 0x1
goto :goto_152
:cond_150
const/16 v20, 0x0
:goto_152
aput-boolean v20, v4, v0
add-int/lit8 v0, v0, 0x1
goto :goto_134
.line 31
:cond_157
sget-object v0, Lcom/alibaba/fastjson/util/e;->i:[C
const/16 v2, 0x30
aput-char v2, v0, v1
const/16 v2, 0x31
.line 32
aput-char v2, v0, v8
const/16 v2, 0x32
.line 33
aput-char v2, v0, v6
const/16 v2, 0x33
.line 34
aput-char v2, v0, v7
const/16 v2, 0x34
.line 35
aput-char v2, v0, v5
const/16 v2, 0x35
.line 36
aput-char v2, v0, v9
const/16 v2, 0x36
.line 37
aput-char v2, v0, v10
const/16 v2, 0x37
.line 38
aput-char v2, v0, v11
const/16 v2, 0x62
.line 39
aput-char v2, v0, v12
const/16 v2, 0x74
.line 40
aput-char v2, v0, v13
const/16 v2, 0x6e
.line 41
aput-char v2, v0, v14
const/16 v2, 0x76
.line 42
aput-char v2, v0, v15
const/16 v2, 0x66
.line 43
aput-char v2, v0, v16
const/16 v2, 0x72
.line 44
aput-char v2, v0, v17
.line 45
aput-char v18, v0, v18
.line 46
aput-char v3, v0, v3
const/16 v2, 0x2f
const/16 v3, 0x2f
.line 47
aput-char v3, v0, v2
.line 48
aput-char v19, v0, v19
const/16 v0, 0x60
new-array v0, v0, [C
.line 49
fill-array-data v0, :array_204
sput-object v0, Lcom/alibaba/fastjson/util/e;->j:[C
const/16 v0, 0x24
new-array v0, v0, [C
.line 50
fill-array-data v0, :array_268
sput-object v0, Lcom/alibaba/fastjson/util/e;->k:[C
const/16 v0, 0x64
new-array v0, v0, [C
.line 51
fill-array-data v0, :array_290
sput-object v0, Lcom/alibaba/fastjson/util/e;->l:[C
const/16 v0, 0x64
new-array v0, v0, [C
.line 52
fill-array-data v0, :array_2f8
sput-object v0, Lcom/alibaba/fastjson/util/e;->m:[C
new-array v0, v14, [I
.line 53
fill-array-data v0, :array_360
sput-object v0, Lcom/alibaba/fastjson/util/e;->n:[I
const-string v0, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
.line 54
invoke-virtual {v0}, Ljava/lang/String;->toCharArray()[C
move-result-object v0
sput-object v0, Lcom/alibaba/fastjson/util/e;->o:[C
const/16 v2, 0x100
new-array v2, v2, [I
.line 55
sput-object v2, Lcom/alibaba/fastjson/util/e;->p:[I
const/4 v3, -0x1
.line 56
invoke-static {v2, v3}, Ljava/util/Arrays;->fill([II)V
.line 57
array-length v0, v0
const/4 v2, 0x0
:goto_1dc
if-ge v2, v0, :cond_1e9
.line 58
sget-object v3, Lcom/alibaba/fastjson/util/e;->p:[I
sget-object v4, Lcom/alibaba/fastjson/util/e;->o:[C
aget-char v4, v4, v2
aput v2, v3, v4
add-int/lit8 v2, v2, 0x1
goto :goto_1dc
.line 59
:cond_1e9
sget-object v0, Lcom/alibaba/fastjson/util/e;->p:[I
const/16 v2, 0x3d
aput v1, v0, v2
return-void
:array_1f0
.array-data 2
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x41s
0x42s
0x43s
0x44s
0x45s
0x46s
.end array-data
:array_204
.array-data 2
0x30s
0x30s
0x30s
0x31s
0x30s
0x32s
0x30s
0x33s
0x30s
0x34s
0x30s
0x35s
0x30s
0x36s
0x30s
0x37s
0x30s
0x38s
0x30s
0x39s
0x30s
0x41s
0x30s
0x42s
0x30s
0x43s
0x30s
0x44s
0x30s
0x45s
0x30s
0x46s
0x31s
0x30s
0x31s
0x31s
0x31s
0x32s
0x31s
0x33s
0x31s
0x34s
0x31s
0x35s
0x31s
0x36s
0x31s
0x37s
0x31s
0x38s
0x31s
0x39s
0x31s
0x41s
0x31s
0x42s
0x31s
0x43s
0x31s
0x44s
0x31s
0x45s
0x31s
0x46s
0x32s
0x30s
0x32s
0x31s
0x32s
0x32s
0x32s
0x33s
0x32s
0x34s
0x32s
0x35s
0x32s
0x36s
0x32s
0x37s
0x32s
0x38s
0x32s
0x39s
0x32s
0x41s
0x32s
0x42s
0x32s
0x43s
0x32s
0x44s
0x32s
0x45s
0x32s
0x46s
.end array-data
:array_268
.array-data 2
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x61s
0x62s
0x63s
0x64s
0x65s
0x66s
0x67s
0x68s
0x69s
0x6as
0x6bs
0x6cs
0x6ds
0x6es
0x6fs
0x70s
0x71s
0x72s
0x73s
0x74s
0x75s
0x76s
0x77s
0x78s
0x79s
0x7as
.end array-data
:array_290
.array-data 2
0x30s
0x30s
0x30s
0x30s
0x30s
0x30s
0x30s
0x30s
0x30s
0x30s
0x31s
0x31s
0x31s
0x31s
0x31s
0x31s
0x31s
0x31s
0x31s
0x31s
0x32s
0x32s
0x32s
0x32s
0x32s
0x32s
0x32s
0x32s
0x32s
0x32s
0x33s
0x33s
0x33s
0x33s
0x33s
0x33s
0x33s
0x33s
0x33s
0x33s
0x34s
0x34s
0x34s
0x34s
0x34s
0x34s
0x34s
0x34s
0x34s
0x34s
0x35s
0x35s
0x35s
0x35s
0x35s
0x35s
0x35s
0x35s
0x35s
0x35s
0x36s
0x36s
0x36s
0x36s
0x36s
0x36s
0x36s
0x36s
0x36s
0x36s
0x37s
0x37s
0x37s
0x37s
0x37s
0x37s
0x37s
0x37s
0x37s
0x37s
0x38s
0x38s
0x38s
0x38s
0x38s
0x38s
0x38s
0x38s
0x38s
0x38s
0x39s
0x39s
0x39s
0x39s
0x39s
0x39s
0x39s
0x39s
0x39s
0x39s
.end array-data
:array_2f8
.array-data 2
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
.end array-data
:array_360
.array-data 4
0x9
0x63
0x3e7
0x270f
0x1869f
0xf423f
0x98967f
0x5f5e0ff
0x3b9ac9ff
0x7fffffff
.end array-data
.end method
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static a(Ljava/io/Closeable;)V
.registers 1
if-eqz p0, :cond_5
:try_start_2
invoke-interface {p0}, Ljava/io/Closeable;->close()V
:try_end_5
.catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_5
:catch_5
:cond_5
return-void
.end method
.method public static b(II[C)V
.registers 7
if-gez p0, :cond_6
const/16 v0, 0x2d
neg-int p0, p0
goto :goto_7
:cond_6
const/4 v0, 0x0
:goto_7
const/high16 v1, 0x10000
if-lt p0, v1, :cond_28
.line 1
div-int/lit8 v1, p0, 0x64
shl-int/lit8 v2, v1, 0x6
shl-int/lit8 v3, v1, 0x5
add-int/2addr v2, v3
shl-int/lit8 v3, v1, 0x2
add-int/2addr v2, v3
sub-int/2addr p0, v2
add-int/lit8 p1, p1, -0x1
.line 2
sget-object v2, Lcom/alibaba/fastjson/util/e;->m:[C
aget-char v2, v2, p0
aput-char v2, p2, p1
add-int/lit8 p1, p1, -0x1
.line 3
sget-object v2, Lcom/alibaba/fastjson/util/e;->l:[C
aget-char p0, v2, p0
aput-char p0, p2, p1
move p0, v1
goto :goto_7
:cond_28
:goto_28
const v1, 0xcccd
mul-int v1, v1, p0
ushr-int/lit8 v1, v1, 0x13
shl-int/lit8 v2, v1, 0x3
shl-int/lit8 v3, v1, 0x1
add-int/2addr v2, v3
sub-int/2addr p0, v2
add-int/lit8 p1, p1, -0x1
.line 4
sget-object v2, Lcom/alibaba/fastjson/util/e;->k:[C
aget-char p0, v2, p0
aput-char p0, p2, p1
if-nez v1, :cond_46
if-eqz v0, :cond_45
add-int/lit8 p1, p1, -0x1
.line 5
aput-char v0, p2, p1
:cond_45
return-void
:cond_46
move p0, v1
goto :goto_28
.end method
.method public static c(JI[C)V
.registers 11
const-wide/16 v0, 0x0
cmp-long v2, p0, v0
if-gez v2, :cond_a
const/16 v0, 0x2d
neg-long p0, p0
goto :goto_b
:cond_a
const/4 v0, 0x0
:goto_b
const-wide/32 v1, 0x7fffffff
cmp-long v3, p0, v1
if-lez v3, :cond_35
const-wide/16 v1, 0x64
.line 1
div-long v1, p0, v1
const/4 v3, 0x6
shl-long v3, v1, v3
const/4 v5, 0x5
shl-long v5, v1, v5
add-long/2addr v3, v5
const/4 v5, 0x2
shl-long v5, v1, v5
add-long/2addr v3, v5
sub-long/2addr p0, v3
long-to-int p1, p0
add-int/lit8 p2, p2, -0x1
.line 2
sget-object p0, Lcom/alibaba/fastjson/util/e;->m:[C
aget-char p0, p0, p1
aput-char p0, p3, p2
add-int/lit8 p2, p2, -0x1
.line 3
sget-object p0, Lcom/alibaba/fastjson/util/e;->l:[C
aget-char p0, p0, p1
aput-char p0, p3, p2
move-wide p0, v1
goto :goto_b
:cond_35
long-to-int p1, p0
:goto_36
const/high16 p0, 0x10000
if-lt p1, p0, :cond_57
.line 4
div-int/lit8 p0, p1, 0x64
shl-int/lit8 v1, p0, 0x6
shl-int/lit8 v2, p0, 0x5
add-int/2addr v1, v2
shl-int/lit8 v2, p0, 0x2
add-int/2addr v1, v2
sub-int/2addr p1, v1
add-int/lit8 p2, p2, -0x1
.line 5
sget-object v1, Lcom/alibaba/fastjson/util/e;->m:[C
aget-char v1, v1, p1
aput-char v1, p3, p2
add-int/lit8 p2, p2, -0x1
.line 6
sget-object v1, Lcom/alibaba/fastjson/util/e;->l:[C
aget-char p1, v1, p1
aput-char p1, p3, p2
move p1, p0
goto :goto_36
:cond_57
:goto_57
const p0, 0xcccd
mul-int p0, p0, p1
ushr-int/lit8 p0, p0, 0x13
shl-int/lit8 v1, p0, 0x3
shl-int/lit8 v2, p0, 0x1
add-int/2addr v1, v2
sub-int/2addr p1, v1
add-int/lit8 p2, p2, -0x1
.line 7
sget-object v1, Lcom/alibaba/fastjson/util/e;->k:[C
aget-char p1, v1, p1
aput-char p1, p3, p2
if-nez p0, :cond_75
if-eqz v0, :cond_74
add-int/lit8 p2, p2, -0x1
.line 8
aput-char v0, p3, p2
:cond_74
return-void
:cond_75
move p1, p0
goto :goto_57
.end method
.method public static d(Ljava/lang/String;)Ljava/lang/String;
.registers 2
.line 1
:try_start_0
invoke-static {p0}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
:try_end_4
.catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_4} :catch_5
goto :goto_6
:catch_5
const/4 v0, 0x0
:goto_6
if-nez v0, :cond_e
.line 2
sget-object v0, Lcom/alibaba/fastjson/util/e;->a:Ljava/util/Properties;
invoke-virtual {v0, p0}, Ljava/util/Properties;->getProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
:cond_e
return-object v0
.end method
.method public static e(I)I
.registers 3
const/4 v0, 0x0
:goto_1
sget-object v1, Lcom/alibaba/fastjson/util/e;->n:[I
aget v1, v1, v0
if-gt p0, v1, :cond_a
add-int/lit8 v0, v0, 0x1
return v0
:cond_a
add-int/lit8 v0, v0, 0x1
goto :goto_1
.end method
.method public static f(J)I
.registers 8
const/4 v0, 0x1
const-wide/16 v1, 0xa
move-wide v3, v1
:goto_4
const/16 v5, 0x13
if-ge v0, v5, :cond_12
cmp-long v5, p0, v3
if-gez v5, :cond_d
return v0
:cond_d
mul-long v3, v3, v1
add-int/lit8 v0, v0, 0x1
goto :goto_4
:cond_12
return v5
.end method