public final class oadd.com.google.common.net.PercentEscaper extends oadd.com.google.common.escape.UnicodeEscaper
{
private static final char[] PLUS_SIGN;
private static final char[] UPPER_HEX_DIGITS;
private final boolean plusForSpace;
private final boolean[] safeOctets;
public void <init>(java.lang.String, boolean)
{
boolean[] v;
java.lang.IllegalArgumentException v, v;
oadd.com.google.common.net.PercentEscaper v;
java.lang.String v, v, v;
boolean v, v, v;
v := @this: oadd.com.google.common.net.PercentEscaper;
v := @parameter: java.lang.String;
v := @parameter: boolean;
specialinvoke v.<oadd.com.google.common.escape.UnicodeEscaper: void <init>()>();
staticinvoke <oadd.com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.String: boolean matches(java.lang.String)>(".*[0-9A-Za-z].*");
if v == 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Alphanumeric characters are always \'safe\' and should not be explicitly specified");
throw v;
label:
v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.String: java.lang.String concat(java.lang.String)>("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>(" ");
if v == 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("plusForSpace cannot be specified when space is a \'safe\' character");
throw v;
label:
v.<oadd.com.google.common.net.PercentEscaper: boolean plusForSpace> = v;
v = staticinvoke <oadd.com.google.common.net.PercentEscaper: boolean[] createSafeOctets(java.lang.String)>(v);
v.<oadd.com.google.common.net.PercentEscaper: boolean[] safeOctets> = v;
return;
}
private static boolean[] createSafeOctets(java.lang.String)
{
boolean[] v;
char v, v;
int v, v, v, v, v, v, v;
char[] v;
java.lang.String v;
v := @parameter: java.lang.String;
v = (int) -1;
v = v;
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = staticinvoke <java.lang.Math: int max(int,int)>(v, v);
v = v + 1;
goto label;
label:
v = v + 1;
v = newarray (boolean)[v];
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v[v] = 1;
v = v + 1;
goto label;
label:
return v;
}
protected int nextEscapeIndex(java.lang.CharSequence, int, int)
{
java.lang.CharSequence v;
boolean[] v, v;
char v;
oadd.com.google.common.net.PercentEscaper v;
int v, v, v;
boolean v;
v := @this: oadd.com.google.common.net.PercentEscaper;
v := @parameter: java.lang.CharSequence;
v := @parameter: int;
v := @parameter: int;
staticinvoke <oadd.com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
label:
if v >= v goto label;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v = v.<oadd.com.google.common.net.PercentEscaper: boolean[] safeOctets>;
v = lengthof v;
if v >= v goto label;
v = v.<oadd.com.google.common.net.PercentEscaper: boolean[] safeOctets>;
v = v[v];
if v == 0 goto label;
v = v + 1;
goto label;
label:
return v;
}
public java.lang.String escape(java.lang.String)
{
boolean[] v, v;
char v;
oadd.com.google.common.net.PercentEscaper v;
int v, v, v;
java.lang.String v, v;
boolean v;
v := @this: oadd.com.google.common.net.PercentEscaper;
v := @parameter: java.lang.String;
staticinvoke <oadd.com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.String: int length()>();
v = 0;
label:
if v >= v goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = v.<oadd.com.google.common.net.PercentEscaper: boolean[] safeOctets>;
v = lengthof v;
if v >= v goto label;
v = v.<oadd.com.google.common.net.PercentEscaper: boolean[] safeOctets>;
v = v[v];
if v != 0 goto label;
label:
v = virtualinvoke v.<oadd.com.google.common.net.PercentEscaper: java.lang.String escapeSlow(java.lang.String,int)>(v, v);
return v;
label:
v = v + 1;
goto label;
label:
return v;
}
protected char[] escape(int)
{
java.lang.StringBuilder v;
java.lang.String v;
boolean[] v, v;
char[] v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
oadd.com.google.common.net.PercentEscaper v;
boolean v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
char v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.IllegalArgumentException v;
v := @this: oadd.com.google.common.net.PercentEscaper;
v := @parameter: int;
v = v.<oadd.com.google.common.net.PercentEscaper: boolean[] safeOctets>;
v = lengthof v;
if v >= v goto label;
v = v.<oadd.com.google.common.net.PercentEscaper: boolean[] safeOctets>;
v = v[v];
if v == 0 goto label;
return null;
label:
if v != 32 goto label;
v = v.<oadd.com.google.common.net.PercentEscaper: boolean plusForSpace>;
if v == 0 goto label;
v = <oadd.com.google.common.net.PercentEscaper: char[] PLUS_SIGN>;
return v;
label:
if v > 127 goto label;
v = newarray (char)[3];
v[0] = 37;
v = <oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS>;
v = v & 15;
v = v[v];
v[2] = v;
v = <oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS>;
v = v >>> 4;
v = v[v];
v[1] = v;
return v;
label:
if v > 2047 goto label;
v = newarray (char)[6];
v[0] = 37;
v[3] = 37;
v = <oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS>;
v = v & 15;
v = v[v];
v[5] = v;
v = v >>> 4;
v = <oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS>;
v = v & 3;
v = 8 | v;
v = v[v];
v[4] = v;
v = v >>> 2;
v = <oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS>;
v = v & 15;
v = v[v];
v[2] = v;
v = v >>> 4;
v = <oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS>;
v = 12 | v;
v = v[v];
v[1] = v;
return v;
label:
v = (int) 65535;
if v > v goto label;
v = newarray (char)[9];
v[0] = 37;
v[1] = 69;
v[3] = 37;
v[6] = 37;
v = <oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS>;
v = v & 15;
v = v[v];
v[8] = v;
v = v >>> 4;
v = <oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS>;
v = v & 3;
v = 8 | v;
v = v[v];
v[7] = v;
v = v >>> 2;
v = <oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS>;
v = v & 15;
v = v[v];
v[5] = v;
v = v >>> 4;
v = <oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS>;
v = v & 3;
v = 8 | v;
v = v[v];
v[4] = v;
v = v >>> 2;
v = <oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS>;
v = v[v];
v[2] = v;
return v;
label:
if v > 1114111 goto label;
v = newarray (char)[12];
v[0] = 37;
v[1] = 70;
v[3] = 37;
v[6] = 37;
v[9] = 37;
v = <oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS>;
v = v & 15;
v = v[v];
v[11] = v;
v = v >>> 4;
v = <oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS>;
v = v & 3;
v = 8 | v;
v = v[v];
v[10] = v;
v = v >>> 2;
v = <oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS>;
v = v & 15;
v = v[v];
v[8] = v;
v = v >>> 4;
v = <oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS>;
v = v & 3;
v = 8 | v;
v = v[v];
v[7] = v;
v = v >>> 2;
v = <oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS>;
v = v & 15;
v = v[v];
v[5] = v;
v = v >>> 4;
v = <oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS>;
v = v & 3;
v = 8 | v;
v = v[v];
v[4] = v;
v = v >>> 2;
v = <oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS>;
v = v & 7;
v = v[v];
v[2] = v;
return v;
label:
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.StringBuilder: void <init>(int)>(43);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Invalid unicode character value \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
}
static void <clinit>()
{
char[] v, v;
java.lang.String v;
v = newarray (char)[1];
v[0] = 43;
<oadd.com.google.common.net.PercentEscaper: char[] PLUS_SIGN> = v;
v = "0123456789ABCDEF";
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
<oadd.com.google.common.net.PercentEscaper: char[] UPPER_HEX_DIGITS> = v;
return;
}
}