Rabbit-R1/switch port/java/sources/com/alibaba/fastjson/parser/JSONLexer.java
2024-05-21 17:08:36 -04:00

2753 lines
90 KiB
Java

package com.alibaba.fastjson.parser;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
import kotlin.text.Typography;
import okio.internal.BufferKt;
import tech.rabbit.r1launcher.BuildConfig;
import tech.rabbit.r1systemupdater.model.UpdateEngineErrorCodes;
/* loaded from: classes2.dex */
public final class JSONLexer {
public static final char[] CA;
public static final int END = 4;
public static final char EOI = 26;
static final int[] IA;
public static final int NOT_MATCH = -1;
public static final int NOT_MATCH_NAME = -2;
public static final int UNKNOWN = 0;
private static boolean V6 = false;
public static final int VALUE = 3;
protected static final int[] digits;
public static final boolean[] firstIdentifierFlags;
public static final boolean[] identifierFlags;
private static final ThreadLocal<char[]> sbufLocal;
protected int bp;
public Calendar calendar;
protected char ch;
public boolean disableCircularReferenceDetect;
protected int eofPos;
protected boolean exp;
public int features;
protected long fieldHash;
protected boolean hasSpecial;
protected boolean isDouble;
protected final int len;
public Locale locale;
public int matchStat;
protected int np;
protected int pos;
protected char[] sbuf;
protected int sp;
protected String stringDefaultValue;
protected final String text;
public TimeZone timeZone;
protected int token;
static boolean checkDate(char c, char c2, char c3, char c4, char c5, char c6, int i, int i2) {
if (c >= '1' && c <= '3' && c2 >= '0' && c2 <= '9' && c3 >= '0' && c3 <= '9' && c4 >= '0' && c4 <= '9') {
if (c5 == '0') {
if (c6 < '1' || c6 > '9') {
return false;
}
} else if (c5 != '1' || (c6 != '0' && c6 != '1' && c6 != '2')) {
return false;
}
if (i == 48) {
return i2 >= 49 && i2 <= 57;
}
if (i != 49 && i != 50) {
return i == 51 && (i2 == 48 || i2 == 49);
}
if (i2 >= 48 && i2 <= 57) {
return true;
}
}
return false;
}
/* JADX WARN: Code restructure failed: missing block: B:36:0x001d, code lost:
if (r5 <= '4') goto L18;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
static boolean checkTime(char r4, char r5, char r6, char r7, char r8, char r9) {
/*
r0 = 57
r1 = 0
r2 = 48
if (r4 != r2) goto Lc
if (r5 < r2) goto Lb
if (r5 <= r0) goto L20
Lb:
return r1
Lc:
r3 = 49
if (r4 != r3) goto L15
if (r5 < r2) goto L14
if (r5 <= r0) goto L20
L14:
return r1
L15:
r3 = 50
if (r4 != r3) goto L42
if (r5 < r2) goto L42
r4 = 52
if (r5 <= r4) goto L20
goto L42
L20:
r4 = 53
r5 = 54
if (r6 < r2) goto L2d
if (r6 > r4) goto L2d
if (r7 < r2) goto L2c
if (r7 <= r0) goto L32
L2c:
return r1
L2d:
if (r6 != r5) goto L42
if (r7 == r2) goto L32
return r1
L32:
if (r8 < r2) goto L3b
if (r8 > r4) goto L3b
if (r9 < r2) goto L3a
if (r9 <= r0) goto L40
L3a:
return r1
L3b:
if (r8 != r5) goto L42
if (r9 == r2) goto L40
return r1
L40:
r4 = 1
return r4
L42:
return r1
*/
throw new UnsupportedOperationException("Method not decompiled: com.alibaba.fastjson.parser.JSONLexer.checkTime(char, char, char, char, char, char):boolean");
}
public final int token() {
return this.token;
}
/* JADX WARN: Removed duplicated region for block: B:10:0x0030 A[LOOP:0: B:8:0x002c->B:10:0x0030, LOOP_END] */
/* JADX WARN: Removed duplicated region for block: B:15:0x0040 A[LOOP:1: B:13:0x003c->B:15:0x0040, LOOP_END] */
/* JADX WARN: Removed duplicated region for block: B:20:0x0050 A[LOOP:2: B:18:0x004c->B:20:0x0050, LOOP_END] */
/* JADX WARN: Removed duplicated region for block: B:24:0x006f A[LOOP:3: B:23:0x006d->B:24:0x006f, LOOP_END] */
/* JADX WARN: Removed duplicated region for block: B:29:0x0090 */
/* JADX WARN: Removed duplicated region for block: B:42:0x00a6 A[EDGE_INSN: B:42:0x00a6->B:43:0x00a6 BREAK A[LOOP:4: B:27:0x0085->B:33:0x00a2], SYNTHETIC] */
/* JADX WARN: Removed duplicated region for block: B:46:0x00af */
/* JADX WARN: Removed duplicated region for block: B:64:0x00cc A[SYNTHETIC] */
static {
/*
Method dump skipped, instructions count: 205
To view this dump add '--comments-level debug' option
*/
throw new UnsupportedOperationException("Method not decompiled: com.alibaba.fastjson.parser.JSONLexer.<clinit>():void");
}
public JSONLexer(String str) {
this(str, JSON.DEFAULT_PARSER_FEATURE);
}
public JSONLexer(char[] cArr, int i) {
this(cArr, i, JSON.DEFAULT_PARSER_FEATURE);
}
public JSONLexer(char[] cArr, int i, int i2) {
this(new String(cArr, 0, i), i2);
}
public JSONLexer(String str, int i) {
this.features = JSON.DEFAULT_PARSER_FEATURE;
this.exp = false;
this.isDouble = false;
this.timeZone = JSON.defaultTimeZone;
this.locale = JSON.defaultLocale;
this.calendar = null;
this.matchStat = 0;
char[] cArr = sbufLocal.get();
this.sbuf = cArr;
if (cArr == null) {
this.sbuf = new char[512];
}
this.features = i;
this.text = str;
int length = str.length();
this.len = length;
int i2 = (-1) + 1;
this.bp = i2;
char charAt = i2 >= length ? EOI : str.charAt(i2);
this.ch = charAt;
if (charAt == 65279) {
next();
}
this.stringDefaultValue = (Feature.InitStringFieldAsEmpty.mask & i) != 0 ? "" : null;
this.disableCircularReferenceDetect = (Feature.DisableCircularReferenceDetect.mask & i) != 0;
}
public void close() {
char[] cArr = this.sbuf;
if (cArr.length <= 8196) {
sbufLocal.set(cArr);
}
this.sbuf = null;
}
public char next() {
int i = this.bp + 1;
this.bp = i;
char charAt = i >= this.len ? EOI : this.text.charAt(i);
this.ch = charAt;
return charAt;
}
public final void config(Feature feature, boolean z) {
if (z) {
this.features |= feature.mask;
} else {
this.features &= ~feature.mask;
}
if (feature == Feature.InitStringFieldAsEmpty) {
this.stringDefaultValue = z ? "" : null;
}
this.disableCircularReferenceDetect = (this.features & Feature.DisableCircularReferenceDetect.mask) != 0;
}
public final boolean isEnabled(Feature feature) {
return (this.features & feature.mask) != 0;
}
public final void nextTokenWithChar(char c) {
this.sp = 0;
while (true) {
char c2 = this.ch;
if (c2 == c) {
int i = this.bp + 1;
this.bp = i;
this.ch = i >= this.len ? EOI : this.text.charAt(i);
nextToken();
return;
}
if (c2 == ' ' || c2 == '\n' || c2 == '\r' || c2 == '\t' || c2 == '\f' || c2 == '\b') {
next();
} else {
throw new JSONException("not match " + c + " - " + this.ch);
}
}
}
public final String numberString() {
char charAt = this.text.charAt((this.np + this.sp) - 1);
int i = this.sp;
if (charAt == 'L' || charAt == 'S' || charAt == 'B' || charAt == 'F' || charAt == 'D') {
i--;
}
return subString(this.np, i);
}
protected char charAt(int i) {
return i >= this.len ? EOI : this.text.charAt(i);
}
/* JADX WARN: Code restructure failed: missing block: B:12:0x0027, code lost:
scanNumber();
*/
/* JADX WARN: Code restructure failed: missing block: B:13:0x002a, code lost:
return;
*/
/* JADX WARN: Code restructure failed: missing block: B:55:0x00a1, code lost:
if (r16.token == 20) goto L68;
*/
/* JADX WARN: Code restructure failed: missing block: B:56:0x00a3, code lost:
r16.token = 20;
r1 = r16.eofPos;
r16.bp = r1;
r16.pos = r1;
*/
/* JADX WARN: Code restructure failed: missing block: B:57:0x00ab, code lost:
return;
*/
/* JADX WARN: Code restructure failed: missing block: B:59:0x00b3, code lost:
throw new com.alibaba.fastjson.JSONException("EOF error");
*/
/* JADX WARN: Code restructure failed: missing block: B:82:0x00fe, code lost:
scanIdent();
*/
/* JADX WARN: Code restructure failed: missing block: B:83:0x0101, code lost:
return;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public final void nextToken() {
/*
Method dump skipped, instructions count: 496
To view this dump add '--comments-level debug' option
*/
throw new UnsupportedOperationException("Method not decompiled: com.alibaba.fastjson.parser.JSONLexer.nextToken():void");
}
/* JADX WARN: Can't fix incorrect switch cases order, some code will duplicate */
/* JADX WARN: Failed to find 'out' block for switch in B:12:0x0029. Please report as an issue. */
public final void nextToken(int i) {
this.sp = 0;
while (true) {
if (i != 2) {
char c = EOI;
if (i == 4) {
char c2 = this.ch;
if (c2 == '\"') {
this.pos = this.bp;
scanString();
return;
}
if (c2 >= '0' && c2 <= '9') {
this.pos = this.bp;
scanNumber();
return;
} else if (c2 == '{') {
this.token = 12;
int i2 = this.bp + 1;
this.bp = i2;
if (i2 < this.len) {
c = this.text.charAt(i2);
}
this.ch = c;
return;
}
} else if (i == 12) {
char c3 = this.ch;
if (c3 == '{') {
this.token = 12;
int i3 = this.bp + 1;
this.bp = i3;
if (i3 < this.len) {
c = this.text.charAt(i3);
}
this.ch = c;
return;
}
if (c3 == '[') {
this.token = 14;
int i4 = this.bp + 1;
this.bp = i4;
if (i4 < this.len) {
c = this.text.charAt(i4);
}
this.ch = c;
return;
}
} else {
if (i == 18) {
nextIdent();
return;
}
if (i != 20) {
switch (i) {
case 14:
char c4 = this.ch;
if (c4 == '[') {
this.token = 14;
next();
return;
} else if (c4 == '{') {
this.token = 12;
next();
return;
}
break;
case 15:
if (this.ch == ']') {
this.token = 15;
next();
return;
}
break;
case 16:
char c5 = this.ch;
if (c5 == ',') {
this.token = 16;
int i5 = this.bp + 1;
this.bp = i5;
if (i5 < this.len) {
c = this.text.charAt(i5);
}
this.ch = c;
return;
}
if (c5 == '}') {
this.token = 13;
int i6 = this.bp + 1;
this.bp = i6;
if (i6 < this.len) {
c = this.text.charAt(i6);
}
this.ch = c;
return;
}
if (c5 == ']') {
this.token = 15;
int i7 = this.bp + 1;
this.bp = i7;
if (i7 < this.len) {
c = this.text.charAt(i7);
}
this.ch = c;
return;
}
if (c5 == 26) {
this.token = 20;
return;
}
break;
}
}
if (this.ch == 26) {
this.token = 20;
return;
}
}
} else {
char c6 = this.ch;
if (c6 >= '0' && c6 <= '9') {
this.pos = this.bp;
scanNumber();
return;
}
if (c6 == '\"') {
this.pos = this.bp;
scanString();
return;
} else if (c6 == '[') {
this.token = 14;
next();
return;
} else if (c6 == '{') {
this.token = 12;
next();
return;
}
}
char c7 = this.ch;
if (c7 == ' ' || c7 == '\n' || c7 == '\r' || c7 == '\t' || c7 == '\f' || c7 == '\b') {
next();
} else {
nextToken();
return;
}
}
}
public final void nextIdent() {
char c;
while (true) {
c = this.ch;
if (c > ' ' || !(c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == '\f' || c == '\b')) {
break;
} else {
next();
}
}
if (c == '_' || Character.isLetter(c)) {
scanIdent();
} else {
nextToken();
}
}
public final Number integerValue() throws NumberFormatException {
char c;
boolean z;
long j;
long j2;
int i = this.np;
int i2 = this.sp + i;
int i3 = i2 - 1;
char charAt = i3 >= this.len ? EOI : this.text.charAt(i3);
if (charAt == 'B') {
i2--;
c = 'B';
} else if (charAt == 'L') {
i2--;
c = 'L';
} else if (charAt != 'S') {
c = ' ';
} else {
i2--;
c = 'S';
}
int i4 = this.np;
if (i4 < this.len && this.text.charAt(i4) == '-') {
i++;
j = Long.MIN_VALUE;
z = true;
} else {
z = false;
j = -9223372036854775807L;
}
if (i < i2) {
j2 = -((i >= this.len ? EOI : this.text.charAt(i)) - '0');
i++;
} else {
j2 = 0;
}
while (i < i2) {
int i5 = i + 1;
int charAt2 = (i >= this.len ? EOI : this.text.charAt(i)) - '0';
if (j2 < BufferKt.OVERFLOW_ZONE) {
return new BigInteger(numberString());
}
long j3 = j2 * 10;
long j4 = charAt2;
if (j3 < j + j4) {
return new BigInteger(numberString());
}
j2 = j3 - j4;
i = i5;
}
if (!z) {
long j5 = -j2;
if (j5 > 2147483647L || c == 'L') {
return Long.valueOf(j5);
}
if (c == 'S') {
return Short.valueOf((short) j5);
}
if (c == 'B') {
return Byte.valueOf((byte) j5);
}
return Integer.valueOf((int) j5);
}
if (i <= this.np + 1) {
throw new NumberFormatException(numberString());
}
if (j2 < -2147483648L || c == 'L') {
return Long.valueOf(j2);
}
if (c == 'S') {
return Short.valueOf((short) j2);
}
if (c == 'B') {
return Byte.valueOf((byte) j2);
}
return Integer.valueOf((int) j2);
}
public final String scanSymbol(SymbolTable symbolTable) {
char c;
while (true) {
c = this.ch;
if (c != ' ' && c != '\n' && c != '\r' && c != '\t' && c != '\f' && c != '\b') {
break;
}
next();
}
if (c == '\"') {
return scanSymbol(symbolTable, Typography.quote);
}
if (c == '\'') {
return scanSymbol(symbolTable, '\'');
}
if (c == '}') {
next();
this.token = 13;
return null;
}
if (c == ',') {
next();
this.token = 16;
return null;
}
if (c != 26) {
return scanSymbolUnQuoted(symbolTable);
}
this.token = 20;
return null;
}
public String scanSymbol(SymbolTable symbolTable, char c) {
String readString;
int i = this.bp + 1;
int indexOf = this.text.indexOf(c, i);
if (indexOf == -1) {
throw new JSONException("unclosed str, " + info());
}
int i2 = indexOf - i;
char[] sub_chars = sub_chars(this.bp + 1, i2);
boolean z = false;
while (i2 > 0 && sub_chars[i2 - 1] == '\\') {
int i3 = 1;
for (int i4 = i2 - 2; i4 >= 0 && sub_chars[i4] == '\\'; i4--) {
i3++;
}
if (i3 % 2 == 0) {
break;
}
int indexOf2 = this.text.indexOf(c, indexOf + 1);
int i5 = (indexOf2 - indexOf) + i2;
if (i5 >= sub_chars.length) {
int length = (sub_chars.length * 3) / 2;
if (length < i5) {
length = i5;
}
char[] cArr = new char[length];
System.arraycopy(sub_chars, 0, cArr, 0, sub_chars.length);
sub_chars = cArr;
}
this.text.getChars(indexOf, indexOf2, sub_chars, i2);
indexOf = indexOf2;
i2 = i5;
z = true;
}
if (z) {
readString = readString(sub_chars, i2);
} else {
int i6 = 0;
for (int i7 = 0; i7 < i2; i7++) {
char c2 = sub_chars[i7];
i6 = (i6 * 31) + c2;
if (c2 == '\\') {
z = true;
}
}
if (z) {
readString = readString(sub_chars, i2);
} else {
readString = i2 < 20 ? symbolTable.addSymbol(sub_chars, 0, i2, i6) : new String(sub_chars, 0, i2);
}
}
int i8 = indexOf + 1;
this.bp = i8;
this.ch = i8 >= this.len ? EOI : this.text.charAt(i8);
return readString;
}
/* JADX WARN: Failed to find 'out' block for switch in B:26:0x0040. Please report as an issue. */
/* JADX WARN: Failed to find 'out' block for switch in B:27:0x0043. Please report as an issue. */
private static String readString(char[] cArr, int i) {
int i2;
int i3;
char[] cArr2 = new char[i];
int i4 = 0;
int i5 = 0;
while (i4 < i) {
char c = cArr[i4];
if (c != '\\') {
cArr2[i5] = c;
i5++;
} else {
int i6 = i4 + 1;
char c2 = cArr[i6];
if (c2 == '\"') {
i2 = i5 + 1;
cArr2[i5] = Typography.quote;
} else if (c2 != '\'') {
if (c2 != 'F') {
if (c2 == '\\') {
i2 = i5 + 1;
cArr2[i5] = '\\';
} else if (c2 == 'b') {
i2 = i5 + 1;
cArr2[i5] = '\b';
} else if (c2 != 'f') {
if (c2 == 'n') {
i2 = i5 + 1;
cArr2[i5] = '\n';
} else if (c2 != 'r') {
if (c2 != 'x') {
switch (c2) {
case '/':
i2 = i5 + 1;
cArr2[i5] = '/';
break;
case '0':
i2 = i5 + 1;
cArr2[i5] = 0;
break;
case ConstraintLayout.LayoutParams.Table.LAYOUT_EDITOR_ABSOLUTEX /* 49 */:
i2 = i5 + 1;
cArr2[i5] = 1;
break;
case '2':
i2 = i5 + 1;
cArr2[i5] = 2;
break;
case ConstraintLayout.LayoutParams.Table.LAYOUT_CONSTRAINT_TAG /* 51 */:
i2 = i5 + 1;
cArr2[i5] = 3;
break;
case UpdateEngineErrorCodes.UPDATED_BUT_NOT_ACTIVE /* 52 */:
i2 = i5 + 1;
cArr2[i5] = 4;
break;
case '5':
i2 = i5 + 1;
cArr2[i5] = 5;
break;
case '6':
i2 = i5 + 1;
cArr2[i5] = 6;
break;
case '7':
i2 = i5 + 1;
cArr2[i5] = 7;
break;
default:
switch (c2) {
case 't':
i2 = i5 + 1;
cArr2[i5] = '\t';
break;
case 'u':
i3 = i5 + 1;
i4 += 5;
cArr2[i5] = (char) Integer.parseInt(new String(new char[]{cArr[i4 + 2], cArr[i4 + 3], cArr[i4 + 4], cArr[i4]}), 16);
break;
case 'v':
i2 = i5 + 1;
cArr2[i5] = 11;
break;
default:
throw new JSONException("unclosed.str.lit");
}
}
} else {
i3 = i5 + 1;
int[] iArr = digits;
int i7 = iArr[cArr[i4 + 2]] * 16;
i4 += 3;
cArr2[i5] = (char) (i7 + iArr[cArr[i4]]);
}
i5 = i3;
} else {
i2 = i5 + 1;
cArr2[i5] = '\r';
}
}
}
i2 = i5 + 1;
cArr2[i5] = '\f';
} else {
i2 = i5 + 1;
cArr2[i5] = '\'';
}
i5 = i2;
i4 = i6;
}
i4++;
}
return new String(cArr2, 0, i5);
}
public String info() {
StringBuilder append = new StringBuilder("pos ").append(this.bp).append(", json : ");
int i = this.len;
String str = this.text;
if (i >= 65536) {
str = str.substring(0, 65536);
}
return append.append(str).toString();
}
protected void skipComment() {
next();
char c = this.ch;
if (c != '/') {
if (c == '*') {
next();
while (true) {
char c2 = this.ch;
if (c2 == 26) {
return;
}
if (c2 == '*') {
next();
if (this.ch == '/') {
next();
return;
}
} else {
next();
}
}
} else {
throw new JSONException("invalid comment");
}
}
do {
next();
} while (this.ch != '\n');
next();
}
public final String scanSymbolUnQuoted(SymbolTable symbolTable) {
int i = this.ch;
boolean[] zArr = firstIdentifierFlags;
if (i < zArr.length && !zArr[i]) {
throw new JSONException("illegal identifier : " + this.ch + ", " + info());
}
this.np = this.bp;
this.sp = 1;
while (true) {
char next = next();
boolean[] zArr2 = identifierFlags;
if (next < zArr2.length && !zArr2[next]) {
break;
}
i = (i * 31) + next;
this.sp++;
}
this.ch = charAt(this.bp);
this.token = 18;
if (this.sp == 4 && this.text.startsWith("null", this.np)) {
return null;
}
return symbolTable.addSymbol(this.text, this.np, this.sp, i);
}
public final void scanString() {
char c = this.ch;
int i = this.bp + 1;
int indexOf = this.text.indexOf(c, i);
if (indexOf == -1) {
throw new JSONException("unclosed str, " + info());
}
int i2 = indexOf - i;
char[] sub_chars = sub_chars(this.bp + 1, i2);
boolean z = false;
while (i2 > 0 && sub_chars[i2 - 1] == '\\') {
int i3 = 1;
for (int i4 = i2 - 2; i4 >= 0 && sub_chars[i4] == '\\'; i4--) {
i3++;
}
if (i3 % 2 == 0) {
break;
}
int indexOf2 = this.text.indexOf(c, indexOf + 1);
int i5 = (indexOf2 - indexOf) + i2;
if (i5 >= sub_chars.length) {
int length = (sub_chars.length * 3) / 2;
if (length < i5) {
length = i5;
}
char[] cArr = new char[length];
System.arraycopy(sub_chars, 0, cArr, 0, sub_chars.length);
sub_chars = cArr;
}
this.text.getChars(indexOf, indexOf2, sub_chars, i2);
indexOf = indexOf2;
i2 = i5;
z = true;
}
if (!z) {
for (int i6 = 0; i6 < i2; i6++) {
if (sub_chars[i6] == '\\') {
z = true;
}
}
}
this.sbuf = sub_chars;
this.sp = i2;
this.np = this.bp;
this.hasSpecial = z;
int i7 = indexOf + 1;
this.bp = i7;
this.ch = i7 >= this.len ? EOI : this.text.charAt(i7);
this.token = 4;
}
public String scanStringValue(char c) {
String str;
int i = this.bp + 1;
int indexOf = this.text.indexOf(c, i);
if (indexOf == -1) {
throw new JSONException("unclosed str, " + info());
}
if (V6) {
str = this.text.substring(i, indexOf);
} else {
int i2 = indexOf - i;
str = new String(sub_chars(this.bp + 1, i2), 0, i2);
}
if (str.indexOf(92) != -1) {
while (true) {
int i3 = 0;
for (int i4 = indexOf - 1; i4 >= 0 && this.text.charAt(i4) == '\\'; i4--) {
i3++;
}
if (i3 % 2 == 0) {
break;
}
indexOf = this.text.indexOf(c, indexOf + 1);
}
int i5 = indexOf - i;
str = readString(sub_chars(this.bp + 1, i5), i5);
}
int i6 = indexOf + 1;
this.bp = i6;
this.ch = i6 >= this.len ? EOI : this.text.charAt(i6);
return str;
}
public final int intValue() {
int i;
boolean z;
int i2 = this.np;
int i3 = this.sp + i2;
int i4 = 0;
if (i2 < this.len && this.text.charAt(i2) == '-') {
i2++;
i = Integer.MIN_VALUE;
z = true;
} else {
i = -2147483647;
z = false;
}
if (i2 < i3) {
i4 = -((i2 >= this.len ? (char) 26 : this.text.charAt(i2)) - '0');
i2++;
}
while (i2 < i3) {
int i5 = i2 + 1;
char charAt = i2 >= this.len ? (char) 26 : this.text.charAt(i2);
if (charAt == 'L' || charAt == 'S' || charAt == 'B') {
i2 = i5;
break;
}
int i6 = charAt - '0';
if (i4 < -214748364) {
throw new NumberFormatException(numberString());
}
int i7 = i4 * 10;
if (i7 < i + i6) {
throw new NumberFormatException(numberString());
}
i4 = i7 - i6;
i2 = i5;
}
if (!z) {
return -i4;
}
if (i2 > this.np + 1) {
return i4;
}
throw new NumberFormatException(numberString());
}
public byte[] bytesValue() {
return decodeFast(this.text, this.np + 1, this.sp);
}
private void scanIdent() {
this.np = this.bp - 1;
this.hasSpecial = false;
do {
this.sp++;
next();
} while (Character.isLetterOrDigit(this.ch));
String stringVal = stringVal();
if (stringVal.equals("null")) {
this.token = 8;
return;
}
if (stringVal.equals("true")) {
this.token = 6;
return;
}
if (stringVal.equals("false")) {
this.token = 7;
return;
}
if (stringVal.equals("new")) {
this.token = 9;
return;
}
if (stringVal.equals("undefined")) {
this.token = 23;
return;
}
if (stringVal.equals("Set")) {
this.token = 21;
} else if (stringVal.equals("TreeSet")) {
this.token = 22;
} else {
this.token = 18;
}
}
public final String stringVal() {
if (this.hasSpecial) {
return readString(this.sbuf, this.sp);
}
return subString(this.np + 1, this.sp);
}
private final String subString(int i, int i2) {
char[] cArr = this.sbuf;
if (i2 < cArr.length) {
this.text.getChars(i, i + i2, cArr, 0);
return new String(this.sbuf, 0, i2);
}
char[] cArr2 = new char[i2];
this.text.getChars(i, i2 + i, cArr2, 0);
return new String(cArr2);
}
final char[] sub_chars(int i, int i2) {
char[] cArr = this.sbuf;
if (i2 < cArr.length) {
this.text.getChars(i, i2 + i, cArr, 0);
return this.sbuf;
}
char[] cArr2 = new char[i2];
this.sbuf = cArr2;
this.text.getChars(i, i2 + i, cArr2, 0);
return cArr2;
}
public final boolean isBlankInput() {
int i = 0;
while (true) {
char charAt = charAt(i);
if (charAt == 26) {
return true;
}
if (charAt > ' ' || !(charAt == ' ' || charAt == '\n' || charAt == '\r' || charAt == '\t' || charAt == '\f' || charAt == '\b')) {
break;
}
i++;
}
return false;
}
/* JADX INFO: Access modifiers changed from: package-private */
public final void skipWhitespace() {
while (true) {
char c = this.ch;
if (c > '/') {
return;
}
if (c == ' ' || c == '\r' || c == '\n' || c == '\t' || c == '\f' || c == '\b') {
next();
} else if (c != '/') {
return;
} else {
skipComment();
}
}
}
public final void scanNumber() {
char c;
char c2;
int i = this.bp;
this.np = i;
this.exp = false;
if (this.ch == '-') {
this.sp++;
int i2 = i + 1;
this.bp = i2;
this.ch = i2 >= this.len ? (char) 26 : this.text.charAt(i2);
}
while (true) {
c = this.ch;
if (c < '0' || c > '9') {
break;
}
this.sp++;
int i3 = this.bp + 1;
this.bp = i3;
this.ch = i3 >= this.len ? (char) 26 : this.text.charAt(i3);
}
this.isDouble = false;
if (c == '.') {
this.sp++;
int i4 = this.bp + 1;
this.bp = i4;
this.ch = i4 >= this.len ? (char) 26 : this.text.charAt(i4);
this.isDouble = true;
while (true) {
char c3 = this.ch;
if (c3 < '0' || c3 > '9') {
break;
}
this.sp++;
int i5 = this.bp + 1;
this.bp = i5;
this.ch = i5 >= this.len ? (char) 26 : this.text.charAt(i5);
}
}
char c4 = this.ch;
if (c4 == 'L') {
this.sp++;
next();
} else if (c4 == 'S') {
this.sp++;
next();
} else if (c4 == 'B') {
this.sp++;
next();
} else if (c4 == 'F') {
this.sp++;
next();
this.isDouble = true;
} else if (c4 == 'D') {
this.sp++;
next();
this.isDouble = true;
} else if (c4 == 'e' || c4 == 'E') {
this.sp++;
int i6 = this.bp + 1;
this.bp = i6;
char charAt = i6 >= this.len ? (char) 26 : this.text.charAt(i6);
this.ch = charAt;
if (charAt == '+' || charAt == '-') {
this.sp++;
int i7 = this.bp + 1;
this.bp = i7;
this.ch = i7 >= this.len ? (char) 26 : this.text.charAt(i7);
}
while (true) {
c2 = this.ch;
if (c2 < '0' || c2 > '9') {
break;
}
this.sp++;
int i8 = this.bp + 1;
this.bp = i8;
this.ch = i8 >= this.len ? (char) 26 : this.text.charAt(i8);
}
if (c2 == 'D' || c2 == 'F') {
this.sp++;
next();
}
this.exp = true;
this.isDouble = true;
}
if (this.isDouble) {
this.token = 3;
} else {
this.token = 2;
}
}
public boolean scanBoolean() {
int i;
boolean z = false;
if (this.text.startsWith("false", this.bp)) {
i = 5;
} else if (this.text.startsWith("true", this.bp)) {
i = 4;
z = true;
} else {
char c = this.ch;
if (c == '1') {
i = 1;
z = true;
} else {
if (c != '0') {
this.matchStat = -1;
return false;
}
i = 1;
}
}
int i2 = this.bp + i;
this.bp = i2;
this.ch = charAt(i2);
return z;
}
/* JADX WARN: Removed duplicated region for block: B:108:0x026d A[Catch: NumberFormatException -> 0x02b3, TryCatch #0 {NumberFormatException -> 0x02b3, blocks: (B:101:0x025b, B:106:0x0269, B:108:0x026d, B:112:0x027e, B:113:0x0275, B:115:0x027c, B:121:0x0285, B:124:0x028b, B:126:0x0290, B:129:0x0296, B:131:0x0266, B:132:0x029b, B:134:0x02a5, B:136:0x02aa), top: B:98:0x0257 }] */
/* JADX WARN: Removed duplicated region for block: B:121:0x0285 A[Catch: NumberFormatException -> 0x02b3, TryCatch #0 {NumberFormatException -> 0x02b3, blocks: (B:101:0x025b, B:106:0x0269, B:108:0x026d, B:112:0x027e, B:113:0x0275, B:115:0x027c, B:121:0x0285, B:124:0x028b, B:126:0x0290, B:129:0x0296, B:131:0x0266, B:132:0x029b, B:134:0x02a5, B:136:0x02aa), top: B:98:0x0257 }] */
/* JADX WARN: Removed duplicated region for block: B:126:0x0290 A[Catch: NumberFormatException -> 0x02b3, TryCatch #0 {NumberFormatException -> 0x02b3, blocks: (B:101:0x025b, B:106:0x0269, B:108:0x026d, B:112:0x027e, B:113:0x0275, B:115:0x027c, B:121:0x0285, B:124:0x028b, B:126:0x0290, B:129:0x0296, B:131:0x0266, B:132:0x029b, B:134:0x02a5, B:136:0x02aa), top: B:98:0x0257 }] */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public final java.lang.Number scanNumberValue() {
/*
Method dump skipped, instructions count: 729
To view this dump add '--comments-level debug' option
*/
throw new UnsupportedOperationException("Method not decompiled: com.alibaba.fastjson.parser.JSONLexer.scanNumberValue():java.lang.Number");
}
/* JADX WARN: Code restructure failed: missing block: B:30:0x00be, code lost:
if (r0 != false) goto L37;
*/
/* JADX WARN: Code restructure failed: missing block: B:32:0x00c1, code lost:
return -r4;
*/
/* JADX WARN: Code restructure failed: missing block: B:33:?, code lost:
return r4;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public final long scanLongValue() {
/*
r12 = this;
r0 = 0
r12.np = r0
char r1 = r12.ch
r2 = 45
r3 = 1
if (r1 != r2) goto L3b
r12.np = r3
int r0 = r12.bp
int r0 = r0 + r3
r12.bp = r0
int r1 = r12.len
if (r0 >= r1) goto L22
java.lang.String r1 = r12.text
char r0 = r1.charAt(r0)
r12.ch = r0
r0 = -9223372036854775808
r1 = r0
r0 = r3
goto L40
L22:
com.alibaba.fastjson.JSONException r0 = new com.alibaba.fastjson.JSONException
java.lang.StringBuilder r1 = new java.lang.StringBuilder
java.lang.String r2 = "syntax error, "
r1.<init>(r2)
java.lang.String r12 = r12.info()
java.lang.StringBuilder r12 = r1.append(r12)
java.lang.String r12 = r12.toString()
r0.<init>(r12)
throw r0
L3b:
r1 = -9223372036854775807(0x8000000000000001, double:-4.9E-324)
L40:
r4 = 0
L42:
char r6 = r12.ch
r7 = 48
if (r6 < r7) goto Lbe
r7 = 57
if (r6 > r7) goto Lbe
int r6 = r6 + (-48)
r7 = -922337203685477580(0xf333333333333334, double:-8.390303882365713E246)
int r7 = (r4 > r7 ? 1 : (r4 == r7 ? 0 : -1))
java.lang.String r8 = ", "
java.lang.String r9 = "error long value, "
if (r7 < 0) goto L9f
r10 = 10
long r4 = r4 * r10
long r6 = (long) r6
long r10 = r1 + r6
int r10 = (r4 > r10 ? 1 : (r4 == r10 ? 0 : -1))
if (r10 < 0) goto L80
long r4 = r4 - r6
int r6 = r12.np
int r6 = r6 + r3
r12.np = r6
int r6 = r12.bp
int r6 = r6 + r3
r12.bp = r6
int r7 = r12.len
if (r6 < r7) goto L77
r6 = 26
goto L7d
L77:
java.lang.String r7 = r12.text
char r6 = r7.charAt(r6)
L7d:
r12.ch = r6
goto L42
L80:
com.alibaba.fastjson.JSONException r0 = new com.alibaba.fastjson.JSONException
java.lang.StringBuilder r1 = new java.lang.StringBuilder
r1.<init>(r9)
java.lang.StringBuilder r1 = r1.append(r4)
java.lang.StringBuilder r1 = r1.append(r8)
java.lang.String r12 = r12.info()
java.lang.StringBuilder r12 = r1.append(r12)
java.lang.String r12 = r12.toString()
r0.<init>(r12)
throw r0
L9f:
com.alibaba.fastjson.JSONException r0 = new com.alibaba.fastjson.JSONException
java.lang.StringBuilder r1 = new java.lang.StringBuilder
r1.<init>(r9)
java.lang.StringBuilder r1 = r1.append(r4)
java.lang.StringBuilder r1 = r1.append(r8)
java.lang.String r12 = r12.info()
java.lang.StringBuilder r12 = r1.append(r12)
java.lang.String r12 = r12.toString()
r0.<init>(r12)
throw r0
Lbe:
if (r0 != 0) goto Lc1
long r4 = -r4
Lc1:
return r4
*/
throw new UnsupportedOperationException("Method not decompiled: com.alibaba.fastjson.parser.JSONLexer.scanLongValue():long");
}
/* JADX WARN: Removed duplicated region for block: B:30:0x0077 */
/* JADX WARN: Removed duplicated region for block: B:35:0x0087 */
/* JADX WARN: Removed duplicated region for block: B:8:0x002d */
/* JADX WARN: Unsupported multi-entry loop pattern (BACK_EDGE: B:21:0x005e -> B:6:0x0027). Please report as a decompilation issue!!! */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public final long longValue() throws java.lang.NumberFormatException {
/*
r13 = this;
int r0 = r13.np
int r1 = r13.sp
int r1 = r1 + r0
char r2 = r13.charAt(r0)
r3 = 45
r4 = 1
if (r2 != r3) goto L15
int r0 = r0 + 1
r2 = -9223372036854775808
r5 = r2
r2 = r4
goto L1b
L15:
r2 = 0
r5 = -9223372036854775807(0x8000000000000001, double:-4.9E-324)
L1b:
if (r0 >= r1) goto L29
int r3 = r0 + 1
char r0 = r13.charAt(r0)
int r0 = r0 + (-48)
int r0 = -r0
long r7 = (long) r0
L27:
r0 = r3
goto L2b
L29:
r7 = 0
L2b:
if (r0 >= r1) goto L75
int r3 = r0 + 1
int r9 = r13.len
if (r0 < r9) goto L36
r0 = 26
goto L3c
L36:
java.lang.String r9 = r13.text
char r0 = r9.charAt(r0)
L3c:
r9 = 76
if (r0 == r9) goto L74
r9 = 83
if (r0 == r9) goto L74
r9 = 66
if (r0 != r9) goto L49
goto L74
L49:
int r0 = r0 + (-48)
r9 = -922337203685477580(0xf333333333333334, double:-8.390303882365713E246)
int r9 = (r7 > r9 ? 1 : (r7 == r9 ? 0 : -1))
if (r9 < 0) goto L6a
r9 = 10
long r7 = r7 * r9
long r9 = (long) r0
long r11 = r5 + r9
int r0 = (r7 > r11 ? 1 : (r7 == r11 ? 0 : -1))
if (r0 < 0) goto L60
long r7 = r7 - r9
goto L27
L60:
java.lang.NumberFormatException r0 = new java.lang.NumberFormatException
java.lang.String r13 = r13.numberString()
r0.<init>(r13)
throw r0
L6a:
java.lang.NumberFormatException r0 = new java.lang.NumberFormatException
java.lang.String r13 = r13.numberString()
r0.<init>(r13)
throw r0
L74:
r0 = r3
L75:
if (r2 == 0) goto L87
int r1 = r13.np
int r1 = r1 + r4
if (r0 <= r1) goto L7d
return r7
L7d:
java.lang.NumberFormatException r0 = new java.lang.NumberFormatException
java.lang.String r13 = r13.numberString()
r0.<init>(r13)
throw r0
L87:
long r0 = -r7
return r0
*/
throw new UnsupportedOperationException("Method not decompiled: com.alibaba.fastjson.parser.JSONLexer.longValue():long");
}
public final Number decimalValue(boolean z) {
char[] cArr;
boolean z2;
int i = (this.np + this.sp) - 1;
char charAt = i >= this.len ? EOI : this.text.charAt(i);
try {
if (charAt == 'F') {
return Float.valueOf(Float.parseFloat(numberString()));
}
if (charAt == 'D') {
return Double.valueOf(Double.parseDouble(numberString()));
}
if (z) {
return decimalValue();
}
char charAt2 = this.text.charAt((this.np + this.sp) - 1);
int i2 = this.sp;
if (charAt2 == 'L' || charAt2 == 'S' || charAt2 == 'B' || charAt2 == 'F' || charAt2 == 'D') {
i2--;
}
int i3 = this.np;
char[] cArr2 = this.sbuf;
int i4 = 0;
if (i2 < cArr2.length) {
this.text.getChars(i3, i3 + i2, cArr2, 0);
cArr = this.sbuf;
} else {
char[] cArr3 = new char[i2];
this.text.getChars(i3, i3 + i2, cArr3, 0);
cArr = cArr3;
}
if (i2 <= 9 && !this.exp) {
char c = cArr[0];
int i5 = 2;
if (c == '-') {
c = cArr[1];
z2 = true;
} else {
if (c == '+') {
c = cArr[1];
} else {
i5 = 1;
}
z2 = false;
}
int i6 = c - '0';
while (i5 < i2) {
char c2 = cArr[i5];
if (c2 == '.') {
i4 = 1;
} else {
i6 = (i6 * 10) + (c2 - '0');
if (i4 != 0) {
i4 *= 10;
}
}
i5++;
}
double d = i6 / i4;
if (z2) {
d = -d;
}
return Double.valueOf(d);
}
return Double.valueOf(Double.parseDouble(new String(cArr, 0, i2)));
} catch (NumberFormatException e) {
throw new JSONException(e.getMessage() + ", " + info());
}
}
public final BigDecimal decimalValue() {
char charAt = this.text.charAt((this.np + this.sp) - 1);
int i = this.sp;
if (charAt == 'L' || charAt == 'S' || charAt == 'B' || charAt == 'F' || charAt == 'D') {
i--;
}
int i2 = this.np;
char[] cArr = this.sbuf;
if (i < cArr.length) {
this.text.getChars(i2, i2 + i, cArr, 0);
return new BigDecimal(this.sbuf, 0, i);
}
char[] cArr2 = new char[i];
this.text.getChars(i2, i + i2, cArr2, 0);
return new BigDecimal(cArr2);
}
public boolean matchField(long j) {
char c = this.ch;
int i = this.bp + 1;
int i2 = 1;
while (c != '\"' && c != '\'') {
if (c > ' ' || !(c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == '\f' || c == '\b')) {
this.fieldHash = 0L;
this.matchStat = -2;
return false;
}
int i3 = i2 + 1;
int i4 = this.bp + i2;
c = i4 >= this.len ? EOI : this.text.charAt(i4);
i2 = i3;
}
int i5 = i;
long j2 = -3750763034362895579L;
while (true) {
if (i5 >= this.len) {
break;
}
char charAt = this.text.charAt(i5);
if (charAt == c) {
i2 += (i5 - i) + 1;
break;
}
j2 = 1099511628211L * (j2 ^ charAt);
i5++;
}
if (j2 != j) {
this.matchStat = -2;
this.fieldHash = j2;
return false;
}
int i6 = i2 + 1;
int i7 = this.bp + i2;
char charAt2 = i7 >= this.len ? EOI : this.text.charAt(i7);
while (charAt2 != ':') {
if (charAt2 <= ' ' && (charAt2 == ' ' || charAt2 == '\n' || charAt2 == '\r' || charAt2 == '\t' || charAt2 == '\f' || charAt2 == '\b')) {
int i8 = i6 + 1;
int i9 = this.bp + i6;
charAt2 = i9 >= this.len ? EOI : this.text.charAt(i9);
i6 = i8;
} else {
throw new JSONException("match feild error expect ':'");
}
}
int i10 = this.bp + i6;
char charAt3 = i10 >= this.len ? EOI : this.text.charAt(i10);
if (charAt3 == '{') {
int i11 = i10 + 1;
this.bp = i11;
this.ch = i11 >= this.len ? EOI : this.text.charAt(i11);
this.token = 12;
} else if (charAt3 == '[') {
int i12 = i10 + 1;
this.bp = i12;
this.ch = i12 >= this.len ? EOI : this.text.charAt(i12);
this.token = 14;
} else {
this.bp = i10;
this.ch = i10 >= this.len ? EOI : this.text.charAt(i10);
nextToken();
}
return true;
}
private int matchFieldHash(long j) {
char c = this.ch;
int i = 1;
while (c != '\"' && c != '\'') {
if (c != ' ' && c != '\n' && c != '\r' && c != '\t' && c != '\f' && c != '\b') {
this.fieldHash = 0L;
this.matchStat = -2;
return 0;
}
int i2 = i + 1;
int i3 = this.bp + i;
c = i3 >= this.len ? EOI : this.text.charAt(i3);
i = i2;
}
int i4 = this.bp + i;
long j2 = -3750763034362895579L;
while (true) {
if (i4 >= this.len) {
break;
}
char charAt = this.text.charAt(i4);
if (charAt == c) {
i += (i4 - this.bp) - i;
break;
}
j2 = 1099511628211L * (charAt ^ j2);
i4++;
}
if (j2 != j) {
this.fieldHash = j2;
this.matchStat = -2;
return 0;
}
int i5 = i + 1;
int i6 = this.bp + i5;
char charAt2 = i6 >= this.len ? EOI : this.text.charAt(i6);
while (charAt2 != ':') {
if (charAt2 <= ' ' && (charAt2 == ' ' || charAt2 == '\n' || charAt2 == '\r' || charAt2 == '\t' || charAt2 == '\f' || charAt2 == '\b')) {
int i7 = i5 + 1;
int i8 = this.bp + i5;
charAt2 = i8 >= this.len ? EOI : this.text.charAt(i8);
i5 = i7;
} else {
throw new JSONException("match feild error expect ':'");
}
}
return i5 + 1;
}
public int scanFieldInt(long j) {
int i;
char charAt;
this.matchStat = 0;
int matchFieldHash = matchFieldHash(j);
if (matchFieldHash == 0) {
return 0;
}
int i2 = matchFieldHash + 1;
int i3 = this.bp + matchFieldHash;
int i4 = this.len;
char c = EOI;
char charAt2 = i3 >= i4 ? (char) 26 : this.text.charAt(i3);
boolean z = charAt2 == '\"';
if (z) {
int i5 = matchFieldHash + 2;
int i6 = this.bp + i2;
charAt2 = i6 >= this.len ? (char) 26 : this.text.charAt(i6);
i2 = i5;
z = true;
}
boolean z2 = charAt2 == '-';
if (z2) {
int i7 = i2 + 1;
int i8 = this.bp + i2;
charAt2 = i8 >= this.len ? (char) 26 : this.text.charAt(i8);
i2 = i7;
}
if (charAt2 < '0' || charAt2 > '9') {
this.matchStat = -1;
return 0;
}
int i9 = charAt2 - '0';
while (true) {
i = i2 + 1;
int i10 = this.bp + i2;
charAt = i10 >= this.len ? (char) 26 : this.text.charAt(i10);
if (charAt < '0' || charAt > '9') {
break;
}
i9 = (i9 * 10) + (charAt - '0');
i2 = i;
}
if (charAt == '.') {
this.matchStat = -1;
return 0;
}
if (charAt == '\"') {
if (!z) {
this.matchStat = -1;
return 0;
}
int i11 = i2 + 2;
int i12 = this.bp + i;
charAt = i12 >= this.len ? (char) 26 : this.text.charAt(i12);
i = i11;
}
if (i9 < 0) {
this.matchStat = -1;
return 0;
}
while (charAt != ',') {
if (charAt > ' ' || !(charAt == ' ' || charAt == '\n' || charAt == '\r' || charAt == '\t' || charAt == '\f' || charAt == '\b')) {
if (charAt != '}') {
this.matchStat = -1;
return 0;
}
char charAt3 = charAt(this.bp + i);
if (charAt3 == ',') {
this.token = 16;
int i13 = this.bp + i + 1;
this.bp = i13;
if (i13 < this.len) {
c = this.text.charAt(i13);
}
this.ch = c;
} else if (charAt3 == ']') {
this.token = 15;
int i14 = this.bp + i + 1;
this.bp = i14;
if (i14 < this.len) {
c = this.text.charAt(i14);
}
this.ch = c;
} else if (charAt3 == '}') {
this.token = 13;
int i15 = this.bp + i + 1;
this.bp = i15;
if (i15 < this.len) {
c = this.text.charAt(i15);
}
this.ch = c;
} else {
if (charAt3 != 26) {
this.matchStat = -1;
return 0;
}
this.token = 20;
this.bp += i;
this.ch = EOI;
}
this.matchStat = 4;
return z2 ? -i9 : i9;
}
int i16 = i + 1;
int i17 = this.bp + i;
charAt = i17 >= this.len ? (char) 26 : this.text.charAt(i17);
i = i16;
}
int i18 = this.bp + (i - 1) + 1;
this.bp = i18;
if (i18 < this.len) {
c = this.text.charAt(i18);
}
this.ch = c;
this.matchStat = 3;
this.token = 16;
return z2 ? -i9 : i9;
}
public final int[] scanFieldIntArray(long j) {
boolean z;
int[] iArr;
int i;
int i2;
char charAt;
int i3;
char charAt2;
int i4;
this.matchStat = 0;
int matchFieldHash = matchFieldHash(j);
int[] iArr2 = null;
if (matchFieldHash == 0) {
return null;
}
int i5 = matchFieldHash + 1;
int i6 = this.bp + matchFieldHash;
int i7 = -1;
if (i6 >= this.len || this.text.charAt(i6) != '[') {
this.matchStat = -1;
return null;
}
int i8 = matchFieldHash + 2;
int i9 = this.bp + i5;
char charAt3 = i9 >= this.len ? EOI : this.text.charAt(i9);
int[] iArr3 = new int[16];
if (charAt3 != ']') {
int i10 = 0;
while (true) {
if (charAt3 == '-') {
int i11 = i8 + 1;
int i12 = this.bp + i8;
charAt3 = i12 >= this.len ? EOI : this.text.charAt(i12);
i8 = i11;
z = true;
} else {
z = false;
}
if (charAt3 < '0') {
iArr = iArr2;
i = i7;
break;
}
if (charAt3 > '9') {
i = i7;
iArr = null;
break;
}
int i13 = charAt3 - '0';
while (true) {
i2 = i8 + 1;
int i14 = this.bp + i8;
charAt = i14 >= this.len ? EOI : this.text.charAt(i14);
if (charAt < '0' || charAt > '9') {
break;
}
i13 = (i13 * 10) + (charAt - '0');
i8 = i2;
}
if (i10 >= iArr3.length) {
int[] iArr4 = new int[(iArr3.length * 3) / 2];
System.arraycopy(iArr3, 0, iArr4, 0, i10);
iArr3 = iArr4;
}
i3 = i10 + 1;
if (z) {
i13 = -i13;
}
iArr3[i10] = i13;
if (charAt == ',') {
int i15 = i8 + 2;
int i16 = this.bp + i2;
charAt = i16 >= this.len ? EOI : this.text.charAt(i16);
i2 = i15;
} else if (charAt == ']') {
int i17 = i8 + 2;
int i18 = this.bp + i2;
charAt2 = i18 >= this.len ? EOI : this.text.charAt(i18);
i4 = i17;
}
charAt3 = charAt;
i7 = -1;
i10 = i3;
iArr2 = null;
i8 = i2;
}
this.matchStat = i;
return iArr;
}
i4 = matchFieldHash + 3;
int i19 = this.bp + i8;
charAt2 = i19 >= this.len ? EOI : this.text.charAt(i19);
i3 = 0;
if (i3 != iArr3.length) {
int[] iArr5 = new int[i3];
System.arraycopy(iArr3, 0, iArr5, 0, i3);
iArr3 = iArr5;
}
if (charAt2 == ',') {
this.bp += i4 - 1;
next();
this.matchStat = 3;
this.token = 16;
return iArr3;
}
if (charAt2 != '}') {
this.matchStat = -1;
return null;
}
char charAt4 = charAt(this.bp + i4);
if (charAt4 == ',') {
this.token = 16;
this.bp += i4;
next();
} else if (charAt4 == ']') {
this.token = 15;
this.bp += i4;
next();
} else if (charAt4 == '}') {
this.token = 13;
this.bp += i4;
next();
} else {
if (charAt4 != 26) {
this.matchStat = -1;
return null;
}
this.bp += i4;
this.token = 20;
this.ch = EOI;
}
this.matchStat = 4;
return iArr3;
}
public long scanFieldLong(long j) {
int i;
char charAt;
this.matchStat = 0;
int matchFieldHash = matchFieldHash(j);
if (matchFieldHash == 0) {
return 0L;
}
int i2 = matchFieldHash + 1;
int i3 = this.bp + matchFieldHash;
char charAt2 = i3 >= this.len ? EOI : this.text.charAt(i3);
boolean z = charAt2 == '\"';
if (z) {
int i4 = matchFieldHash + 2;
int i5 = this.bp + i2;
charAt2 = i5 >= this.len ? EOI : this.text.charAt(i5);
i2 = i4;
}
boolean z2 = charAt2 == '-';
if (z2) {
int i6 = i2 + 1;
int i7 = this.bp + i2;
i2 = i6;
charAt2 = i7 >= this.len ? EOI : this.text.charAt(i7);
}
if (charAt2 < '0' || charAt2 > '9') {
this.matchStat = -1;
return 0L;
}
long j2 = charAt2 - '0';
while (true) {
i = i2 + 1;
int i8 = this.bp + i2;
charAt = i8 >= this.len ? EOI : this.text.charAt(i8);
if (charAt < '0' || charAt > '9') {
break;
}
j2 = (j2 * 10) + (charAt - '0');
i2 = i;
}
if (charAt == '.') {
this.matchStat = -1;
return 0L;
}
if (charAt == '\"') {
if (!z) {
this.matchStat = -1;
return 0L;
}
int i9 = i2 + 2;
int i10 = this.bp + i;
charAt = i10 >= this.len ? EOI : this.text.charAt(i10);
i = i9;
}
if (j2 < 0) {
this.matchStat = -1;
return 0L;
}
if (charAt == ',') {
int i11 = this.bp + (i - 1) + 1;
this.bp = i11;
this.ch = i11 >= this.len ? EOI : this.text.charAt(i11);
this.matchStat = 3;
this.token = 16;
return z2 ? -j2 : j2;
}
if (charAt != '}') {
this.matchStat = -1;
return 0L;
}
char charAt3 = charAt(this.bp + i);
if (charAt3 == ',') {
this.token = 16;
int i12 = this.bp + i + 1;
this.bp = i12;
this.ch = i12 >= this.len ? EOI : this.text.charAt(i12);
} else if (charAt3 == ']') {
this.token = 15;
int i13 = this.bp + i + 1;
this.bp = i13;
this.ch = i13 >= this.len ? EOI : this.text.charAt(i13);
} else if (charAt3 == '}') {
this.token = 13;
int i14 = this.bp + i + 1;
this.bp = i14;
this.ch = i14 >= this.len ? EOI : this.text.charAt(i14);
} else {
if (charAt3 != 26) {
this.matchStat = -1;
return 0L;
}
this.token = 20;
this.bp += i;
this.ch = EOI;
}
this.matchStat = 4;
return z2 ? -j2 : j2;
}
public String scanFieldString(long j) {
String str;
this.matchStat = 0;
int matchFieldHash = matchFieldHash(j);
if (matchFieldHash == 0) {
return null;
}
int i = matchFieldHash + 1;
int i2 = this.bp + matchFieldHash;
if (i2 >= this.len) {
throw new JSONException("unclosed str, " + info());
}
if (this.text.charAt(i2) != '\"') {
this.matchStat = -1;
return this.stringDefaultValue;
}
int i3 = this.bp + i;
int indexOf = this.text.indexOf(34, i3);
if (indexOf == -1) {
throw new JSONException("unclosed str, " + info());
}
if (V6) {
str = this.text.substring(i3, indexOf);
} else {
int i4 = indexOf - i3;
str = new String(sub_chars(this.bp + i, i4), 0, i4);
}
if (str.indexOf(92) != -1) {
boolean z = false;
while (true) {
int i5 = indexOf - 1;
int i6 = 0;
while (i5 >= 0 && this.text.charAt(i5) == '\\') {
i6++;
i5--;
z = true;
}
if (i6 % 2 == 0) {
break;
}
indexOf = this.text.indexOf(34, indexOf + 1);
}
int i7 = indexOf - i3;
char[] sub_chars = sub_chars(this.bp + i, i7);
if (z) {
str = readString(sub_chars, i7);
} else {
str = new String(sub_chars, 0, i7);
if (str.indexOf(92) != -1) {
str = readString(sub_chars, i7);
}
}
}
int i8 = indexOf + 1;
int i9 = this.len;
char c = EOI;
char charAt = i8 >= i9 ? (char) 26 : this.text.charAt(i8);
if (charAt == ',') {
int i10 = indexOf + 2;
this.bp = i10;
if (i10 < this.len) {
c = this.text.charAt(i10);
}
this.ch = c;
this.matchStat = 3;
this.token = 16;
return str;
}
if (charAt != '}') {
this.matchStat = -1;
return this.stringDefaultValue;
}
int i11 = indexOf + 2;
char charAt2 = i11 >= this.len ? (char) 26 : this.text.charAt(i11);
if (charAt2 == ',') {
this.token = 16;
this.bp = i11;
next();
} else if (charAt2 == ']') {
this.token = 15;
this.bp = i11;
next();
} else if (charAt2 == '}') {
this.token = 13;
this.bp = i11;
next();
} else {
if (charAt2 != 26) {
this.matchStat = -1;
return this.stringDefaultValue;
}
this.token = 20;
this.bp = i11;
this.ch = EOI;
}
this.matchStat = 4;
return str;
}
public Date scanFieldDate(long j) {
int i;
char charAt;
char c;
int i2;
Date date;
this.matchStat = 0;
int matchFieldHash = matchFieldHash(j);
if (matchFieldHash == 0) {
return null;
}
int i3 = this.bp;
char c2 = this.ch;
int i4 = matchFieldHash + 1;
int i5 = i3 + matchFieldHash;
int i6 = this.len;
char c3 = EOI;
char charAt2 = i5 >= i6 ? (char) 26 : this.text.charAt(i5);
if (charAt2 == '\"') {
int i7 = this.bp;
int i8 = i7 + i4;
int i9 = matchFieldHash + 2;
int i10 = i7 + i4;
if (i10 < this.len) {
this.text.charAt(i10);
}
int indexOf = this.text.indexOf(34, this.bp + i9);
if (indexOf == -1) {
throw new JSONException("unclosed str");
}
int i11 = indexOf - i8;
this.bp = i8;
if (!scanISO8601DateIfMatch(false, i11)) {
this.bp = i3;
this.matchStat = -1;
return null;
}
date = this.calendar.getTime();
int i12 = i9 + i11;
i2 = i12 + 1;
c = charAt(i12 + i3);
this.bp = i3;
} else {
if (charAt2 < '0' || charAt2 > '9') {
this.matchStat = -1;
return null;
}
long j2 = charAt2 - '0';
while (true) {
i = i4 + 1;
int i13 = this.bp + i4;
charAt = i13 >= this.len ? (char) 26 : this.text.charAt(i13);
if (charAt < '0' || charAt > '9') {
break;
}
j2 = (j2 * 10) + (charAt - '0');
i4 = i;
}
if (charAt == '.') {
this.matchStat = -1;
return null;
}
if (charAt == '\"') {
i2 = i4 + 2;
int i14 = this.bp + i;
c = i14 >= this.len ? (char) 26 : this.text.charAt(i14);
} else {
c = charAt;
i2 = i;
}
if (j2 < 0) {
this.matchStat = -1;
return null;
}
date = new Date(j2);
}
if (c == ',') {
int i15 = this.bp + (i2 - 1) + 1;
this.bp = i15;
if (i15 < this.len) {
c3 = this.text.charAt(i15);
}
this.ch = c3;
this.matchStat = 3;
this.token = 16;
return date;
}
if (c != '}') {
this.bp = i3;
this.ch = c2;
this.matchStat = -1;
return null;
}
char charAt3 = charAt(this.bp + i2);
if (charAt3 == ',') {
this.token = 16;
int i16 = this.bp + i2 + 1;
this.bp = i16;
if (i16 < this.len) {
c3 = this.text.charAt(i16);
}
this.ch = c3;
} else if (charAt3 == ']') {
this.token = 15;
int i17 = this.bp + i2 + 1;
this.bp = i17;
if (i17 < this.len) {
c3 = this.text.charAt(i17);
}
this.ch = c3;
} else if (charAt3 == '}') {
this.token = 13;
int i18 = this.bp + i2 + 1;
this.bp = i18;
if (i18 < this.len) {
c3 = this.text.charAt(i18);
}
this.ch = c3;
} else {
if (charAt3 != 26) {
this.bp = i3;
this.ch = c2;
this.matchStat = -1;
return null;
}
this.token = 20;
this.bp += i2;
this.ch = EOI;
}
this.matchStat = 4;
return date;
}
/* JADX WARN: Removed duplicated region for block: B:11:0x0097 */
/* JADX WARN: Removed duplicated region for block: B:15:0x00be */
/* JADX WARN: Removed duplicated region for block: B:66:0x00b1 */
/* JADX WARN: Removed duplicated region for block: B:69:0x0099 */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public boolean scanFieldBoolean(long r13) {
/*
Method dump skipped, instructions count: 347
To view this dump add '--comments-level debug' option
*/
throw new UnsupportedOperationException("Method not decompiled: com.alibaba.fastjson.parser.JSONLexer.scanFieldBoolean(long):boolean");
}
public final float scanFieldFloat(long j) {
int i;
char charAt;
int i2;
float parseFloat;
int i3;
char charAt2;
this.matchStat = 0;
int matchFieldHash = matchFieldHash(j);
if (matchFieldHash == 0) {
return 0.0f;
}
int i4 = matchFieldHash + 1;
char charAt3 = charAt(this.bp + matchFieldHash);
int i5 = this.bp;
int i6 = (i5 + i4) - 1;
boolean z = charAt3 == '-';
if (z) {
charAt3 = charAt(i5 + i4);
i4 = matchFieldHash + 2;
}
if (charAt3 < '0' || charAt3 > '9') {
this.matchStat = -1;
return 0.0f;
}
int i7 = charAt3 - '0';
while (true) {
i = i4 + 1;
charAt = charAt(this.bp + i4);
if (charAt < '0' || charAt > '9') {
break;
}
i7 = (i7 * 10) + (charAt - '0');
i4 = i;
}
if (charAt == '.') {
int i8 = i4 + 2;
char charAt4 = charAt(this.bp + i);
if (charAt4 < '0' || charAt4 > '9') {
this.matchStat = -1;
return 0.0f;
}
i7 = (i7 * 10) + (charAt4 - '0');
int i9 = 10;
while (true) {
i3 = i8 + 1;
charAt2 = charAt(this.bp + i8);
if (charAt2 < '0' || charAt2 > '9') {
break;
}
i7 = (i7 * 10) + (charAt2 - '0');
i9 *= 10;
i8 = i3;
}
i = i3;
int i10 = i9;
charAt = charAt2;
i2 = i10;
} else {
i2 = 1;
}
boolean z2 = charAt == 'e' || charAt == 'E';
if (z2) {
int i11 = i + 1;
charAt = charAt(this.bp + i);
if (charAt == '+' || charAt == '-') {
i += 2;
charAt = charAt(this.bp + i11);
} else {
i = i11;
}
while (charAt >= '0' && charAt <= '9') {
charAt = charAt(this.bp + i);
i++;
}
}
int i12 = ((this.bp + i) - i6) - 1;
if (z2 || i12 >= 10) {
parseFloat = Float.parseFloat(subString(i6, i12));
} else {
parseFloat = i7 / i2;
if (z) {
parseFloat = -parseFloat;
}
}
if (charAt == ',') {
this.bp += i - 1;
next();
this.matchStat = 3;
this.token = 16;
return parseFloat;
}
if (charAt != '}') {
this.matchStat = -1;
return 0.0f;
}
char charAt5 = charAt(this.bp + i);
if (charAt5 == ',') {
this.token = 16;
this.bp += i;
next();
} else if (charAt5 == ']') {
this.token = 15;
this.bp += i;
next();
} else if (charAt5 == '}') {
this.token = 13;
this.bp += i;
next();
} else {
if (charAt5 != 26) {
this.matchStat = -1;
return 0.0f;
}
this.bp += i;
this.token = 20;
this.ch = EOI;
}
this.matchStat = 4;
return parseFloat;
}
/* JADX WARN: Code restructure failed: missing block: B:134:0x00d3, code lost:
r19.matchStat = -1;
*/
/* JADX WARN: Code restructure failed: missing block: B:135:0x00d5, code lost:
return r3;
*/
/* JADX WARN: Code restructure failed: missing block: B:142:0x0222, code lost:
r19.matchStat = -1;
*/
/* JADX WARN: Code restructure failed: missing block: B:143:0x0224, code lost:
return r3;
*/
/* JADX WARN: Removed duplicated region for block: B:64:0x0119 A[ADDED_TO_REGION] */
/* JADX WARN: Removed duplicated region for block: B:67:0x0125 */
/* JADX WARN: Removed duplicated region for block: B:70:0x0128 */
/* JADX WARN: Unsupported multi-entry loop pattern (BACK_EDGE: B:67:0x0116 -> B:61:0x0117). Please report as a decompilation issue!!! */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public final float[] scanFieldFloatArray(long r20) {
/*
Method dump skipped, instructions count: 549
To view this dump add '--comments-level debug' option
*/
throw new UnsupportedOperationException("Method not decompiled: com.alibaba.fastjson.parser.JSONLexer.scanFieldFloatArray(long):float[]");
}
/* JADX WARN: Code restructure failed: missing block: B:165:0x00f2, code lost:
r20.matchStat = -1;
*/
/* JADX WARN: Code restructure failed: missing block: B:166:0x00f7, code lost:
return r3;
*/
/* JADX WARN: Code restructure failed: missing block: B:173:0x02a1, code lost:
r6 = r3;
r20.matchStat = -1;
*/
/* JADX WARN: Code restructure failed: missing block: B:174:0x02a7, code lost:
return r6;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public final float[][] scanFieldFloatArray2(long r21) {
/*
Method dump skipped, instructions count: 685
To view this dump add '--comments-level debug' option
*/
throw new UnsupportedOperationException("Method not decompiled: com.alibaba.fastjson.parser.JSONLexer.scanFieldFloatArray2(long):float[][]");
}
public final double scanFieldDouble(long j) {
int i;
char charAt;
int i2;
double parseDouble;
int i3;
char charAt2;
this.matchStat = 0;
int matchFieldHash = matchFieldHash(j);
if (matchFieldHash == 0) {
return BuildConfig.SENTRY_SAMPLE_RATE;
}
int i4 = matchFieldHash + 1;
char charAt3 = charAt(this.bp + matchFieldHash);
int i5 = this.bp;
int i6 = (i5 + i4) - 1;
boolean z = charAt3 == '-';
if (z) {
charAt3 = charAt(i5 + i4);
i4 = matchFieldHash + 2;
}
if (charAt3 < '0' || charAt3 > '9') {
this.matchStat = -1;
return BuildConfig.SENTRY_SAMPLE_RATE;
}
int i7 = charAt3 - '0';
while (true) {
i = i4 + 1;
charAt = charAt(this.bp + i4);
if (charAt < '0' || charAt > '9') {
break;
}
i7 = (i7 * 10) + (charAt - '0');
i4 = i;
}
if (charAt == '.') {
int i8 = i4 + 2;
char charAt4 = charAt(this.bp + i);
if (charAt4 < '0' || charAt4 > '9') {
this.matchStat = -1;
return BuildConfig.SENTRY_SAMPLE_RATE;
}
i7 = (i7 * 10) + (charAt4 - '0');
int i9 = 10;
while (true) {
i3 = i8 + 1;
charAt2 = charAt(this.bp + i8);
if (charAt2 < '0' || charAt2 > '9') {
break;
}
i7 = (i7 * 10) + (charAt2 - '0');
i9 *= 10;
i8 = i3;
}
i = i3;
int i10 = i9;
charAt = charAt2;
i2 = i10;
} else {
i2 = 1;
}
boolean z2 = charAt == 'e' || charAt == 'E';
if (z2) {
int i11 = i + 1;
charAt = charAt(this.bp + i);
if (charAt == '+' || charAt == '-') {
i += 2;
charAt = charAt(this.bp + i11);
} else {
i = i11;
}
while (charAt >= '0' && charAt <= '9') {
charAt = charAt(this.bp + i);
i++;
}
}
int i12 = ((this.bp + i) - i6) - 1;
if (z2 || i12 >= 10) {
parseDouble = Double.parseDouble(subString(i6, i12));
} else {
parseDouble = i7 / i2;
if (z) {
parseDouble = -parseDouble;
}
}
if (charAt == ',') {
this.bp += i - 1;
next();
this.matchStat = 3;
this.token = 16;
return parseDouble;
}
if (charAt != '}') {
this.matchStat = -1;
return BuildConfig.SENTRY_SAMPLE_RATE;
}
char charAt5 = charAt(this.bp + i);
if (charAt5 == ',') {
this.token = 16;
this.bp += i;
next();
} else if (charAt5 == ']') {
this.token = 15;
this.bp += i;
next();
} else if (charAt5 == '}') {
this.token = 13;
this.bp += i;
next();
} else {
if (charAt5 != 26) {
this.matchStat = -1;
return BuildConfig.SENTRY_SAMPLE_RATE;
}
this.bp += i;
this.token = 20;
this.ch = EOI;
}
this.matchStat = 4;
return parseDouble;
}
/* JADX WARN: Code restructure failed: missing block: B:135:0x00d3, code lost:
r19.matchStat = -1;
*/
/* JADX WARN: Code restructure failed: missing block: B:136:0x00d5, code lost:
return r3;
*/
/* JADX WARN: Removed duplicated region for block: B:64:0x0119 A[ADDED_TO_REGION] */
/* JADX WARN: Removed duplicated region for block: B:67:0x0125 */
/* JADX WARN: Removed duplicated region for block: B:70:0x0128 */
/* JADX WARN: Unsupported multi-entry loop pattern (BACK_EDGE: B:67:0x0116 -> B:61:0x0117). Please report as a decompilation issue!!! */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public final double[] scanFieldDoubleArray(long r20) {
/*
Method dump skipped, instructions count: 555
To view this dump add '--comments-level debug' option
*/
throw new UnsupportedOperationException("Method not decompiled: com.alibaba.fastjson.parser.JSONLexer.scanFieldDoubleArray(long):double[]");
}
/* JADX WARN: Code restructure failed: missing block: B:165:0x00f2, code lost:
r20.matchStat = -1;
*/
/* JADX WARN: Code restructure failed: missing block: B:166:0x00f7, code lost:
return r3;
*/
/* JADX WARN: Code restructure failed: missing block: B:173:0x02a3, code lost:
r6 = r3;
r20.matchStat = -1;
*/
/* JADX WARN: Code restructure failed: missing block: B:174:0x02a9, code lost:
return r6;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public final double[][] scanFieldDoubleArray2(long r21) {
/*
Method dump skipped, instructions count: 687
To view this dump add '--comments-level debug' option
*/
throw new UnsupportedOperationException("Method not decompiled: com.alibaba.fastjson.parser.JSONLexer.scanFieldDoubleArray2(long):double[][]");
}
public long scanFieldSymbol(long j) {
this.matchStat = 0;
int matchFieldHash = matchFieldHash(j);
if (matchFieldHash == 0) {
return 0L;
}
int i = matchFieldHash + 1;
int i2 = this.bp + matchFieldHash;
if (i2 >= this.len || this.text.charAt(i2) != '\"') {
this.matchStat = -1;
return 0L;
}
long j2 = -3750763034362895579L;
while (true) {
int i3 = i + 1;
int i4 = this.bp + i;
int i5 = this.len;
char c = EOI;
char charAt = i4 >= i5 ? (char) 26 : this.text.charAt(i4);
if (charAt == '\"') {
int i6 = i + 2;
int i7 = this.bp + i3;
char charAt2 = i7 >= this.len ? (char) 26 : this.text.charAt(i7);
if (charAt2 == ',') {
int i8 = this.bp + i + 1 + 1;
this.bp = i8;
if (i8 < this.len) {
c = this.text.charAt(i8);
}
this.ch = c;
this.matchStat = 3;
return j2;
}
if (charAt2 != '}') {
this.matchStat = -1;
return 0L;
}
int i9 = this.bp + i6;
char charAt3 = i9 >= this.len ? (char) 26 : this.text.charAt(i9);
if (charAt3 == ',') {
this.token = 16;
this.bp += i + 2;
next();
} else if (charAt3 == ']') {
this.token = 15;
this.bp += i + 2;
next();
} else if (charAt3 == '}') {
this.token = 13;
this.bp += i + 2;
next();
} else {
if (charAt3 != 26) {
this.matchStat = -1;
return 0L;
}
this.token = 20;
this.bp += i + 2;
this.ch = EOI;
}
this.matchStat = 4;
return j2;
}
j2 = (j2 ^ charAt) * 1099511628211L;
if (charAt == '\\') {
this.matchStat = -1;
return 0L;
}
i = i3;
}
}
public boolean scanISO8601DateIfMatch(boolean z) {
return scanISO8601DateIfMatch(z, this.len - this.bp);
}
/* JADX WARN: Removed duplicated region for block: B:127:0x0209 A[RETURN] */
/* JADX WARN: Removed duplicated region for block: B:128:0x020c */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public boolean scanISO8601DateIfMatch(boolean r36, int r37) {
/*
Method dump skipped, instructions count: 1614
To view this dump add '--comments-level debug' option
*/
throw new UnsupportedOperationException("Method not decompiled: com.alibaba.fastjson.parser.JSONLexer.scanISO8601DateIfMatch(boolean, int):boolean");
}
protected void setTime(char c, char c2, char c3, char c4, char c5, char c6) {
this.calendar.set(11, ((c - '0') * 10) + (c2 - '0'));
this.calendar.set(12, ((c3 - '0') * 10) + (c4 - '0'));
this.calendar.set(13, ((c5 - '0') * 10) + (c6 - '0'));
}
protected void setTimeZone(char c, char c2, char c3) {
int i = (((c2 - '0') * 10) + (c3 - '0')) * 3600000;
if (c == '-') {
i = -i;
}
if (this.calendar.getTimeZone().getRawOffset() != i) {
String[] availableIDs = TimeZone.getAvailableIDs(i);
if (availableIDs.length > 0) {
this.calendar.setTimeZone(TimeZone.getTimeZone(availableIDs[0]));
}
}
}
private void setCalendar(char c, char c2, char c3, char c4, char c5, char c6, char c7, char c8) {
Calendar calendar = Calendar.getInstance(this.timeZone, this.locale);
this.calendar = calendar;
calendar.set(1, ((c - '0') * 1000) + ((c2 - '0') * 100) + ((c3 - '0') * 10) + (c4 - '0'));
this.calendar.set(2, (((c5 - '0') * 10) + (c6 - '0')) - 1);
this.calendar.set(5, ((c7 - '0') * 10) + (c8 - '0'));
}
public static final byte[] decodeFast(String str, int i, int i2) {
int i3;
if (i2 == 0) {
return new byte[0];
}
int i4 = (i + i2) - 1;
int i5 = i;
while (i5 < i4 && IA[str.charAt(i5)] < 0) {
i5++;
}
while (i4 > 0 && IA[str.charAt(i4)] < 0) {
i4--;
}
int i6 = str.charAt(i4) == '=' ? str.charAt(i4 + (-1)) == '=' ? 2 : 1 : 0;
int i7 = (i4 - i5) + 1;
if (i2 > 76) {
i3 = (str.charAt(76) == '\r' ? i7 / 78 : 0) << 1;
} else {
i3 = 0;
}
int i8 = (((i7 - i3) * 6) >> 3) - i6;
byte[] bArr = new byte[i8];
int i9 = (i8 / 3) * 3;
int i10 = 0;
int i11 = 0;
while (i10 < i9) {
int[] iArr = IA;
int i12 = i5 + 4;
int i13 = iArr[str.charAt(i5 + 3)] | (iArr[str.charAt(i5 + 1)] << 12) | (iArr[str.charAt(i5)] << 18) | (iArr[str.charAt(i5 + 2)] << 6);
bArr[i10] = (byte) (i13 >> 16);
int i14 = i10 + 2;
bArr[i10 + 1] = (byte) (i13 >> 8);
i10 += 3;
bArr[i14] = (byte) i13;
if (i3 <= 0 || (i11 = i11 + 1) != 19) {
i5 = i12;
} else {
i5 += 6;
i11 = 0;
}
}
if (i10 < i8) {
int i15 = 0;
int i16 = 0;
while (i5 <= i4 - i6) {
i15 |= IA[str.charAt(i5)] << (18 - (i16 * 6));
i16++;
i5++;
}
int i17 = 16;
while (i10 < i8) {
bArr[i10] = (byte) (i15 >> i17);
i17 -= 8;
i10++;
}
}
return bArr;
}
}