1.抖音xlog算法是什么?

与X-Gorgon算法和设备注册服务的不同,他主要是搜集环境信息参数包括一些检测点,组成一个json串然后调用data加密传到服务器进行分析比对。我们抓包可以看到一条url为/v2/r?,POST包,其body体为加密函数,加密过程VM化,只能动态调试跟踪理解,具体过程略复杂。抖音xlog接口用于收集设备环境数据,主要用于检测设备环境是否“合规”,也就是大伙经常听到的过“风控”!xlog接口的body是加密后的设备环境数据,加密通过xlog算法加密。目前抖音APP最新版12.x依然还是用的02算法,此算法抖音官方老长时间没更新了......

POST https://xlog.snssdk.com/v2/r?os=0&ver=0.6.10.25.17-IH-Do&m=2&app_ver=12.4.0&region=zh_CN&aid=1128&did=19671560880 HTTP/1.1
Host: xlog.snssdk.com
Connection: keep-alive
Cookie: sessionid=
X-SS-REQ-TICKET: 1599446905153
sdk-version: 1
x-tt-trace-id: 00-8c16dd31094948432b05140591f60468-8c16dd3109494843-01
User-Agent: com.ss.android.ugc.aweme/990 (Linux; U; Android 5.1.1; zh_CN; YQ601; Build/LMY47V; Cronet/77.0.3844.0)
Accept-Encoding: gzip, deflate
X-Gorgon: 0408d012000449c94d909ca41fa968eb6a8ab9ea7528d54eadae
X-Khronos: 1599446905

抖音xlog算法是在native层,无法通过反编译dex获取到具体算法实现,xlog算法大概逻辑是:

首先调用解密方法,将02开头的 byte[]数组进行解密,解密后是一个json字符串,然后再调用xlog加密接口进行加密,然后提交,返回的依然是一个02开头的,然后再进行解密,就可以看到结果了,
再次之前还有一个 sdfp包,也是需要用到这个加密解密的 可以参考文档

package hook;import android.text.TextUtils;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;public final class ByteUtil {private static final String NULL_MD5_STRING = "00000000000000000000000000000000";public static byte[] b(String paramString) {int i = paramString.length();byte[] arrayOfByte = new byte[i / 2];for (byte b = 0; b < i; b += 2)arrayOfByte[b / 2] = (byte)((Character.digit(paramString.charAt(b), 16) << 4) + Character.digit(paramString.charAt(b + 1), 16));return arrayOfByte;}public static String ByteToStr(byte[] bArr) {int i = 0;char[] toCharArray = "0123456789abcdef".toCharArray();char[] cArr = new char[(bArr.length * 2)];while (i < bArr.length) {int i2 = bArr[i] & 255;int i3 = i * 2;cArr[i3] = toCharArray[i2 >>> 4];cArr[i3 + 1] = toCharArray[i2 & 15];i++;}return new String(cArr);}public static String getXGon(String url, String stub, String ck, String sessionid){StringBuilder sb=new StringBuilder();if (TextUtils.isEmpty(url)){sb.append(NULL_MD5_STRING);}else {sb.append(encryption(url).toLowerCase());}if (TextUtils.isEmpty(stub)){sb.append(NULL_MD5_STRING);}else {sb.append(stub);}if (TextUtils.isEmpty(ck)){sb.append(NULL_MD5_STRING);}else {sb.append(encryption(ck).toLowerCase());}if (TextUtils.isEmpty(sessionid)){sb.append(NULL_MD5_STRING);}else {sb.append(encryption(sessionid).toLowerCase());}return sb.toString();}public static String encryption(String str) {String re_md5=null;try {MessageDigest md = MessageDigest.getInstance("MD5");md.update(str.getBytes());byte b[] = md.digest();int i;StringBuffer buf = new StringBuffer("");for (int offset = 0; offset < b.length; offset++) {i = b[offset];if (i < 0)i += 256;if (i < 16)buf.append("0");buf.append(Integer.toHexString(i));}re_md5 = buf.toString();} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return re_md5.toUpperCase();}public static byte[] StrToByte(String str) {String str2 = str;Object[] objArr = new Object[1];int i = 0;objArr[0] = str2;int length = str.length();byte[] bArr = new byte[(length / 2)];while (i < length) {bArr[i / 2] = (byte) ((Character.digit(str2.charAt(i), 16) << 4) + Character.digit(str2.charAt(i + 1), 16));i += 2;}return bArr;}
}

我们根据抖音最新的12.4版本进行逆向,解密xlog接口的数据后,发现抖音在这方面真的是做到了极致,解密后数据如下:

{"extra": "SS-200","grilock": "eyJvcyI6IkFuZHJvaWQiLCJ2ZXJzaW9uIjoiMS4wLjUiLCJ0b2tlbl9pZCI6IlwvOWpudDRyRFRkdyt4bmxqT1pmN3VOUnN1RHNndEMwSFJRSFJaM3pCNXl1enRKRHB1TVVxUk1TaDc3Sld3Y0RLaDFkaEFUSkxyTzkzeEFEVFAraU1XSU1CdDNCSW9jYz0iLCJjb2RlIjoyMDB9","ast": 1,"p1": "38464475038","p2": "1143087178466429","ait": 1595642532,"ut": 1751,"pkg": "com.ss.android.ugc.aweme","prn": "CZL-MLP","vc": 120001,"fp": "OPPO/A59/A59:5.1/LMY47I/1519786508:user/release-keys","mdi_if": {"ui": "","mc": "","mid": "","ts": -1},"mdi_s": 10,"wifisid": "HUAWEI-10GLZ6","wifimac": "6c:06:d6:c4:6a:c8","wifip": "192.168.3.15","vpn": 0,"aplist": [{"ss": "","bs": "6c:06:d6:c4:6a:cd"},{"ss": "HUAWEI-10GLZ6_Wi-Fi5","bs": "6c:06:d6:f4:6a:ce"},{"ss": "HUAWEI-10GLZ6_Wi-Fi5","bs": "6c:06:d6:f4:6a:cd"},{"ss": "ChinaNet-5mds","bs": "18:52:07:8a:af:c2"},{"ss": "","bs": "6c:06:d6:c4:6a:ce"},{"ss": "HUAWEI-10GLZ6","bs": "6c:06:d6:c4:6a:cc"},{"ss": "HUAWEI-10GLZ6","bs": "6c:06:d6:c4:6a:c8"},{"ss": "","bs": "6c:06:d6:c4:6a:c9"},{"ss": "ChinaNet-5mds-5G","bs": "18:52:07:8a:af:c1"},{"ss": "www.uoko.com","bs": "d4:ee:07:37:db:26"}],"route": {"iip": "192.168.3.15","gip": "192.168.3.1","ghw": "6c:06:d6:c4:6a:c2","type": "wlan0"},"location": "","i_mk": -1,"cell": "[16241,2147483647,2147483647,13898,11]","hw": {"brand": "OPPO","model": "OPPO A59s","board": "full_oppo6750_15131","device": "A59","product": "A59","manuf": "OPPO","tags": "dev-keys","inc": "1576670525","des": "full_oppo6750_15131-user 5.1 LMY47I 1576670525 dev-keys","bt": "unknown","pfbd": "mt6750","display": "720*1280","dpi": 320,"bat": 3075,"bas": [],"cpu": {"core": 8,"pc": "AArch64 Processor rev 2 (aarch64)","hw": "MT6750","max": "1508000","min": "156000","ft": "fp asimd aes pmull sha1 sha2 crc32 wp half thumb fastmult vfp edsp neon vfpv3 tlsi vfpv4 idiva idivt"},"mem": {"ram": "3969265664","rom": "28043313152","sd": "27990884352","ram_f": "1715597312","rom_f": "22127783936","sd_f": "22041800704"},"hdf": "ZmVhdHVyZTpyZXFHbEVzVmVyc2lvbj0weDMwMDAwCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5hdWRpby5vdXRwdXQKZmVhdHVyZTphbmRyb2lkLmhhcmR3YXJlLmJsdWV0b290aApmZWF0dXJlOmFuZHJvaWQuaGFyZHdhcmUuYmx1ZXRvb3RoX2xlCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEKZmVhdHVyZTphbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5hbnkKZmVhdHVyZTphbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5hdXRvZm9jdXMKZmVhdHVyZTphbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5mbGFzaApmZWF0dXJlOmFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmZyb250CmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5ldGhlcm5ldApmZWF0dXJlOmFuZHJvaWQuaGFyZHdhcmUuZmFrZXRvdWNoCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5sb2NhdGlvbgpmZWF0dXJlOmFuZHJvaWQuaGFyZHdhcmUubG9jYXRpb24uZ3BzCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5sb2NhdGlvbi5uZXR3b3JrCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5taWNyb3Bob25lCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5zY3JlZW4ubGFuZHNjYXBlCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5zY3JlZW4ucG9ydHJhaXQKZmVhdHVyZTphbmRyb2lkLmhhcmR3YXJlLnNlbnNvci5hY2NlbGVyb21ldGVyCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5zZW5zb3IuY29tcGFzcwpmZWF0dXJlOmFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yLmd5cm9zY29wZQpmZWF0dXJlOmFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yLmxpZ2h0CmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5zZW5zb3IucHJveGltaXR5CmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5zZW5zb3Iuc3RlcGNvdW50ZXIKZmVhdHVyZTphbmRyb2lkLmhhcmR3YXJlLnNlbnNvci5zdGVwZGV0ZWN0b3IKZmVhdHVyZTphbmRyb2lkLmhhcmR3YXJlLnRlbGVwaG9ueQpmZWF0dXJlOmFuZHJvaWQuaGFyZHdhcmUudGVsZXBob255LmNkbWEKZmVhdHVyZTphbmRyb2lkLmhhcmR3YXJlLnRlbGVwaG9ueS5nc20KZmVhdHVyZTphbmRyb2lkLmhhcmR3YXJlLnRvdWNoc2NyZWVuCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS50b3VjaHNjcmVlbi5tdWx0aXRvdWNoCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS50b3VjaHNjcmVlbi5tdWx0aXRvdWNoLmRpc3RpbmN0CmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS50b3VjaHNjcmVlbi5tdWx0aXRvdWNoLmphenpoYW5kCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS51c2IuYWNjZXNzb3J5CmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS51c2IuaG9zdApmZWF0dXJlOmFuZHJvaWQuaGFyZHdhcmUud2lmaQpmZWF0dXJlOmFuZHJvaWQuaGFyZHdhcmUud2lmaS5kaXJlY3QKZmVhdHVyZTphbmRyb2lkLnNvZnR3YXJlLmFwcF93aWRnZXRzCmZlYXR1cmU6YW5kcm9pZC5zb2Z0d2FyZS5iYWNrdXAKZmVhdHVyZTphbmRyb2lkLnNvZnR3YXJlLmNvbm5lY3Rpb25zZXJ2aWNlCmZlYXR1cmU6YW5kcm9pZC5zb2Z0d2FyZS5kZXZpY2VfYWRtaW4KZmVhdHVyZTphbmRyb2lkLnNvZnR3YXJlLmhvbWVfc2NyZWVuCmZlYXR1cmU6YW5kcm9pZC5zb2Z0d2FyZS5pbnB1dF9tZXRob2RzCmZlYXR1cmU6YW5kcm9pZC5zb2Z0d2FyZS5saXZlX3dhbGxwYXBlcgpmZWF0dXJlOmFuZHJvaWQuc29mdHdhcmUucHJpbnQKZmVhdHVyZTphbmRyb2lkLnNvZnR3YXJlLnNpcApmZWF0dXJlOmFuZHJvaWQuc29mdHdhcmUuc2lwLnZvaXAKZmVhdHVyZTphbmRyb2lkLnNvZnR3YXJlLnZvaWNlX3JlY29nbml6ZXJzCmZlYXR1cmU6YW5kcm9pZC5zb2Z0d2FyZS53ZWJ2aWV3CmZlYXR1cmU6bXRrLmdlbWluaS5zdXBwb3J0CmZlYXR1cmU6b3Bwby5BbGlnbi5hbGFybS5zdXBwb3J0CmZlYXR1cmU6b3Bwby5hbGwuY2xpZW50CmZlYXR1cmU6b3Bwby5hbGwuY2xpZW50XzdfNQpmZWF0dXJlOm9wcG8uYWxsLmN0CmZlYXR1cmU6b3Bwby5hbGwubXAKZmVhdHVyZTpvcHBvLmFtcy5icm9hZGNhc3QuYWRqdXN0Lm9icmVjcXVlCmZlYXR1cmU6b3Bwby5hbXMuYnJvYWRjYXN0LmFkanVzdC5wYnJlY3F1ZQpmZWF0dXJlOm9wcG8uYW1zLmJyb2FkY2FzdC5qdW1wcXVldWUKZmVhdHVyZTpvcHBvLmFtcy5icm9hZGNhc3Qub3Bwb2J0CmZlYXR1cmU6b3Bwby5hcHAyc2QuZGlzYWJsZWQKZmVhdHVyZTpvcHBvLmF1dG9icmlnaHRjdGwuYW5pbWF0aW9uLnN1cHBvcnQKZmVhdHVyZTpvcHBvLmJhdHRlcnkubm90aWZ5Lm5ldwpmZWF0dXJlOm9wcG8uYmxhY2suZ2VzdHVyZS5wcm94aW1pdHlzZW5zb3Iuc3VwcG9ydApmZWF0dXJlOm9wcG8uYnJlYXRoLmxpZ2h0LnN1cHBvcnQKZmVhdHVyZTpvcHBvLmJyaWdodG5lc3MubW9kZS5hdXRvbWF0aWMKZmVhdHVyZTpvcHBvLmJ1dHRvbi5saWdodC5zdXBwb3J0CmZlYXR1cmU6b3Bwby5jb21tY2VudGVyLnJlYm9vdC5kaWFsb2cKZmVhdHVyZTpvcHBvLmRpcmFjLnN1cHBvcnQKZmVhdHVyZTpvcHBvLmRpc2FibGUuc21hbGwud2luZG93LmxlYXRoZXIKZmVhdHVyZTpvcHBvLmRpc2FibGUuc21hbGwud2luZG93LmxlYXRoZXIuZW5kY2FsbHZpZXcKZmVhdHVyZTpvcHBvLmRpc3BsYXkubWlyYXZpc2lvbi5zdXBwb3J0CmZlYXR1cmU6b3Bwby5kb3VibGUuY2xpY2suaG9tZS5ub3Quc3VwcG9ydApmZWF0dXJlOm9wcG8uZmlsdHJhdGVkLmFwcApmZWF0dXJlOm9wcG8uZmluZ2VycHJpbnQuc2Vuc29yLmZyb250CmZlYXR1cmU6b3Bwby5maW5nZXJwcmludC5zdXBwb3J0CmZlYXR1cmU6b3Bwby5mdWxsZGlza2VuY3J5cHRpb24udW5zdXBwb3J0ZWQKZmVhdHVyZTpvcHBvLmdhbGxlcnkub3BlbmNhYmMKZmVhdHVyZTpvcHBvLmd1YXJkLmVsZi5zdXBwb3J0CmZlYXR1cmU6b3Bwby5ody5tYW51ZmFjdHVyZXIubXRrCmZlYXR1cmU6b3Bwby5pbmV4YWN0LmFsYXJtCmZlYXR1cmU6b3Bwby5tZW1vcnkuYXV0by5jbGVhbgpmZWF0dXJlOm9wcG8ubWVtb3J5LmF1dG8uZGVlcC5jbGVhbgpmZWF0dXJlOm9wcG8ubXVsdGlhcHAuc3VwcG9ydApmZWF0dXJlOm9wcG8ub3RnLmNvbm5lY3Rpb24ubWVudS5zdXBwb3J0CmZlYXR1cmU6b3Bwby5xdWljay5zaG90LnN1cHBvcnQgCmZlYXR1cmU6b3Bwby5zY3JlZW4uaG92ZXJpbmcuc3VwcG9ydApmZWF0dXJlOm9wcG8uc291bmRlZmZlY3Quc3VwcG9ydApmZWF0dXJlOm9wcG8uc3BlZWNoYXNzaXN0LnNwZWVkLmRpYWwudW5zdXBwb3J0CmZlYXR1cmU6b3Bwby5zdXBwb3J0LnNpbmdsZS5wYXJ0aXRpb24KZmVhdHVyZTpvcHBvLnRwLmxpbWl0LnN1cHBvcnQKZmVhdHVyZTpvcHBvLnZvbHRlLnN1cHBvcnQK","slb": "bGlicmFyeTphbmRyb2lkLnRlc3QucnVubmVyCmxpYnJhcnk6Y29sb3Jvcy5zdXBwb3J0CmxpYnJhcnk6Y29tLmFuZHJvaWQuZnV0dXJlLnVzYi5hY2Nlc3NvcnkKbGlicmFyeTpjb20uYW5kcm9pZC5sb2NhdGlvbi5wcm92aWRlcgpsaWJyYXJ5OmNvbS5hbmRyb2lkLm1lZGlhLnJlbW90ZWRpc3BsYXkKbGlicmFyeTpjb20uYW5kcm9pZC5tZWRpYWRybS5zaWduZXIKbGlicmFyeTpjb20uY29sb3Jvcy5zdGF0aXN0aWNzCmxpYnJhcnk6Y29tLmdvb2dsZS5hbmRyb2lkLm1hcHMKbGlicmFyeTpjb20uZ29vZ2xlLndpZGV2aW5lLnNvZnR3YXJlLmRybQpsaWJyYXJ5OmphdmF4Lm9iZXgKbGlicmFyeTpvcmcuc2ltYWxsaWFuY2Uub3Blbm1vYmlsZWFwaQo="},"id": {"i": 22,"mc": "41b2f037fc3f9e","bd": "c26a6cc2d606c406d606c46ad6c2066c","r": "5.1","imei": "865277033537810","imsi": "460038101829321","acg_m": 1,"onm": "46003","alpha": "5Lit5Zu955S15L+h","adid": "1afd67f2ce9c914","adid_ex": "1afd67f2ce9c914","mac": "ec:f3:42:c7:cb:c3","serial": "USDQSSG699999999","cm_e": "","cm_i": ""},"emulator": {"cb": 10,"cid": 0,"br": "","file": [],"prop": [],"ghw": 0},"env": {"ver": "0.6.11.28.36","tag": "CZL_LAST_VER","pkg": "com.ss.android.ugc.aweme","tz": "GMT+08:00","ml": "zh_CN","uid": 10105,"mc": 0,"arch": 1,"e_arch": 1,"v_bnd": 0,"su": 0,"sp": "","ro.secure_s": "1","ro.debuggable_s": "0","rebuild": 0,"jd": 0,"dbg": 0,"tid": 0,"trm": "","dbg_st": 0,"dbg_tid": 2,"dbg_if": 101188614,"hph": "192.168.3.11","hpp": "8888","envrion": [],"oem_s": -1,"oem_a": -1,"xposed": 0,"frida": 0,"cydia": 0,"rr": 0,"jexp": 0,"click": "","acb": -1,"hook": [],"jvh": [],"fish": {},"vapp": "","vmos": 0,"ssr": 0,"mal": "","mor": -1,"mor2": -1,"ech": "4294967295"},"extension": {"sg": 1213,"sp": 1,"f_clk": 0,"u_clk": 0,"atify": "0x00000000","notify": 1,"sg_s": 1,"path": "","bdc": "","dp": "12074564,0,0","sign": "AEA615AB910015038F73C47E45D21466","sha1": "","dump": 0,"dump2": -1,"mk": 0,"cba": "0xf733b5b7","ts1": -290275320,"ts2": 0,"bqq": "u6qooKqsrvHkuLK4v66m5Kq7u+SJqqigvruKpa+Zrri/pLmu5ImqqKC+u4qlr5muuL+kua7lqrug9qikpuWopKekuaS45amqqKC+u7muuL+kua7Bu6qooKqsrvHkuLK4v66m5Kq7u+SMqarkjKmq5aq7oPaopKblpq6voqq/rqDlrKmqwbuqqKCqrK7x5LiyuL+upuSqu7vknqKoqPmfrrmmoqWqp+Seoqio+Z+uuaaipaqn5aq7oPakuazluKKmqqenoqqlqK7lpLuupaakqaKnrqq7ouW+oqio+b+uuaaipaqnwbuqqKCqrK7x5LiyuL+upuSqu7vkiJ+Kvr+kma6sori/5Iifir6/pJmurKK4v+Wqu6D2qKSm5aS7u6TlqL+qvr+kua6sori/wbuqqKCqrK7x5LiyuL+upuSqu7vkm6Okpa6FhIq5rqqCpbq+ormum7mkvaKvrrnkm6Okpa6FhIq5rqqCpbq+ormum7mkvaKvrrnlqrug9qikpuWopKekuaS45bujpKWupaSqua6qoqW6vqK5rsG7qqigqqyu8eS4sri/rqbku7miveaqu7vkn66nrrujpKWym7mkvaKvrrnkn66nrrujpKWym7mkvaKvrrnlqrug9qikpuWqpa+5pKKv5bu5pL2ir665uOW/rqeuu6OkpbLBu6qooKqsrvHkuLK4v66m5Lu5or3mqru75IS7u6Scormup664uJiuv7+ipay45IS7u6Scormup664uJiuv7+ipay45aq7oPaopKblqKSnpLmkuOW8ormup664uLiuv7+ipay4wbuqqKCqrK7x5LiyuL+upuSqu7vkjKW4uJukvK65mKq9rrnkjKW4uJukvK65mKq9rrnlqrug9qikpuWspbi45bukvK65wbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+SIqqeupa+quZu5pL2ir6655Iiqp66lr6q5m7mkvaKvrrnlqrug9qikpuWqpa+5pKKv5bu5pL2ir665uOWoqqeupa+qucG7qqigqqyu8eS4sri/rqbku7miveaqu7vkhq6voqqbuaS9oq+uueSGrq+iqpu5pL2ir6655aq7oPaopKblqqWvuaSir+W7uaS9oq+uubjlpq6voqrBu6qooKqsrvHkuLK4v66m5LunvqyipeSNvKCbp76soqXkjbygm6e+rKKl5aq7oPaopKblpq6voqq/rqDlrbyg5bunvqyipcG7qqigqqyu8eS4sri/rqbkqru75JiyuL+upoOup7uuueSYsri/rqaDrqe7rrnlqrug9qikpuWmpKmip66/pKSnuOW4sri/rqajrqe7rrnBu6qooKqsrvHkuLK4v66m5Lu5or3mqru75Jyqp6e7qruuuYi5pLu7rrnknKqnp7uqu665iLmku7uuueWqu6D2qKSm5aqlr7mkoq/lvKqnp7uqu665qLmku7uuucG7qqigqqyu8eS4sri/rqbkqru75IS7u6SFrryYoqaPrr+uqL/khLu7pIWuvJiipo+uv66ov+Wqu6D2qKSm5aikp6S5pLjlpa68uKKmr66/rqi/wbuqqKCqrK7x5LiyuL+upuSqu7vkmKStv7iippmur7+uqoikuOSYpK2/uKKmma6vv66qiKS45aq7oPaopKblua6vv66qpqSpoqeu5b2iub++qqfluKStv7iipsG7qqigqqyu8eS4sri/rqbkqru75Jimqrm/qKq5r5iuub2iqK7kmKaqub+oqrmvmK65vaKoruWqu6D2pLms5biipqqnp6Kqpaiu5aS7rqWmpKmip66qu6LluK65vaKorsG7qqigqqyu8eSvqr+q5Kq7u+SopKblpa6quaau5aWkv67m+uSpqriu5aq7oPaopKblpa6quaau5aWkv67Bu6qooKqsrvHkr6q/quSqu7vkqKSm5aWuqrmmruW7p6qy5vnkqaq4ruWqu6D2qKSm5aWuqrmmruW7p6qywbuqqKCqrK7x5LiyuL+upuSqu7vkgK6ArpiypajkgK6Arpiypajlqrug9qikpuWlrqq5pq7luLKlqMG7qqigqqyu8eS4sri/rqbkqru75I+kqL6mrqW/uJ6C5I+kqL6mrqW/uJ6C5aq7oPaopKblqqWvuaSir+WvpKi+pq6lv7i+osG7qqigqqyu8eS4sri/rqbku7miveaqu7vkhLu7pJiippiuv7+ipay45IS7u6SYoqaYrr+/oqWsuOWqu6D2qKSm5aikp6S5pLjluKKmuK6/v6KlrLjBu6qooKqsrvHkuLK4v66m5Kq7u+SYpKykvoKGjuSYpKykvoKGjuWqu6D2qKSm5biko77loqW7vr+mrr+jpK/luKSspL6krqbBu6qooKqsrvHkuLK4v66m5Lu5or3mqru75I6zv665paqnmL+kuaqsrpu5pL2ir6655I6zv665paqnmL+kuaqsrpu5pL2ir6655aq7oPaopKblqqWvuaSir+Wus7+uuaWqp7i/pLmqrK7Bu6qooKqsrvHkuLK4v66m5Kq7u+SSjJuY5JKMm5jlqrug9qikpuWmrq+iqr+uoOWyrLu4wbuqqKCqrK7x5LiyuL+upuSqu7vkg5+Gh52irryuueSDn4aHnaKuvK655aq7oPaopKblqqWvuaSir+Wjv6anvaKuvK65wbuqqKCqrK7x5LiyuL+upuSqu7vkgo2nspi7rq6oo5iuub2iqK7kgo2nspi7rq6oo5iuub2iqK7lqrug9qikpuWiraeyv66g5bi7rq6oo6inpL6vwbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pJyuqr+jrrmYrrm9oqiu5IS7u6Scrqq/o665mK65vaKoruWqu6D2qKSm5aikp6S5pLjlvK6qv6OuueW4rrm9oqiuwbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+SGpriYrrm9oqiu5IamuJiuub2iqK7lqrug9qikpuWqpa+5pKKv5aamuOW4rrm9oqiuwbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+SPpLylp6Sqr5u5pL2ir6655I+kvKWnpKqvm7mkvaKvrrnlqrug9qikpuWqpa+5pKKv5bu5pL2ir665uOWvpLylp6Sqr7jBu6qooKqsrvHkuLK4v66m5Kq7u+SPpLylp6Sqr665iK6lv665noLkj6S8paekqq+uuYiupb+uuZ6C5aq7oPaopKblqKSnpLmkuOW7uaS9oq+uubjlr6S8paekqq+45b6iwbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pIq+v6Sfrri/mK65va655IS7u6SKvr+kn664v5iuub2uueWqu6D2qKSm5aS7u6Tlqr6/pL+uuL/Bu6qooKqsrvHkuLK4v66m5Kq7u+SOpayipa6uuYakr67kjqWsoqWurrmGpK+u5aq7oPaopKblpq6voqq/rqDlrqWsoqWurrmmpK+uwbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+SJp6qooIeiuL/kiaeqqKCHori/5aq7oPaopKblqKSnpLmkuOWpp6qooKeiuL/Bu6qooKqsrvHkuLK4v66m5Kq7u+SOpayYu66ooqqnn664v+SOpayYu66ooqqnn664v+Wqu6D2qKSm5aS7u6TlrqWsoqWurrmipaympK+u5bi7rqiiqqe/rri/wbuqqKCqrK7x5LiyuL+upuSqu7vkjaq4v52ir66k5I2quL+doq+upOWqu6D2qKSm5aS7u6TlqKqmrrmq5a2quL+9oq+upKakr67Bu6qooKqsrvHkr6q/quSqu7vkqKSm5aqlr7mkoq/lqbmkvLiuueb65KmquK7lqrug9qikpuWqpa+5pKKv5am5pLy4rrnBu6qooKqsrvHkuLK4v66m5Kq7u+SKu7unoqiqv6KkpbibuaS9oq+uueSKu7unoqiqv6KkpbibuaS9oq+uueWqu6D2qKSm5aqlr7mkoq/lu7mkvaKvrrm45aq7u6eiqKq/oqSluMG7qqigqqyu8eS4sri/rqbku7miveaqu7vkm6mqu4inoq6lv+Sbqaq7iKeirqW/5aq7oPaopKblpLu7pOWpp76uv6Skv6Plu6mqu6inoq6lv8G7qqigqqyu8eS4sri/rqbku7miveaqu7vkj66tqr6nv4ikpb+qoqWuuZiuub2iqK7kj66tqr6nv4ikpb+qoqWuuZiuub2iqK7lqrug9qikpuWqpa+5pKKv5a+uraikpb+qoqWuucG7qqigqqyu8eS4sri/rqbkqru75JuqqJu5pKiuuLikueSbqqibuaSorri4pLnlqrug9qikpuWqpa+5pKKv5buqqLu5pKiuuLikucG7qqigqqyu8eS4sri/rqbkqru75I2ipayuubu5oqW/5I2ipayuubu5oqW/5aq7oPaopKblqKSnpLmkuOWtoqWsrrm7uaKlv8G7qqigqqyu8eS4sri/rqbkqru75IS7u6SMrri/vrmunoLkhLu7pIyuuL++ua6eguWqu6D2qKSm5aikp6S5pLjlrK64v765rsG7qqigqqyu8eS4sri/rqbkqru75JuqpaS5qqaqiKqmrrmq5JuqpaS5qqaqiKqmrrmq5aq7oPaopKblpLu7pOWoqqauuarlu6qlpLmqpqrBu6qooKqsrvHkr6q/quSqu7vkqKSm5b+upaiupb/lpqbm+eSpqriu5aq7oPaopKblv66lqK6lv+WmpsG7qqigqqyu8eS4sri/rqbkqru75Jikrb+4oqaZrq+/rqqJuaKvrK7kmKStv7iippmur7+uqom5oq+sruWqu6D2qKSm5aqlr7mkoq/lva6lr6S5uOWpuaKvrK7luKStv7iipsG7qqigqqyu8eS4sri/rqbkqru75Iiuub+Cpbi/qqenrrnkiK65v4KluL+qp6euueWqu6D2qKSm5aqlr7mkoq/lqK65v6KluL+qp6euucG7qqigqqyu8eS4sri/rqbkqru75IS7u6SHrqq/o6655IS7u6SHrqq/o6655aq7oPaopKblqKSnpLmkuOWnrqq/o665wbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pImkpL+ZrqzkhLu7pImkpL+Zrqzlqrug9qikpuWopKekuaS45amkpL+5rqzBu6qooKqsrvHkuLK4v66m5K25qqauvKS5oOStuaqmrrykuaDmua645aq7oPaqpa+5pKKvwbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+SIj5iUgoWNhOSIj5iUgoWNhOWqu6D2qKSm5aaur6Kqv66g5aikpaWuqL+ivaK/ssG7qqigqqyu8eS4sri/rqbkqru75I+kvqmnro6zu6S4vrmuiKqmrrmq5I+kvqmnro6zu6S4vrmuiKqmrrmq5aq7oPaopKblpLu7pOWoqqauuarlr6S+qaeurrO7pLi+ua7Bu6qooKqsrvHkuLK4v66m5Lu5or3mqru75Iikpb+qqL+45Iikpb+qqL+45aq7oPaopKblqqWvuaSir+WopKW/qqi/uMG7qqigqqyu8eSvqr+q5Kq7u+SopKblqKSnpLmkuOW8qqenrr/m+uSpqriu5aq7oPaopKblqKSnpLmkuOW8qqenrr/Bu6qooKqsrvHkuLK4v66m5Kq7u+Scrqmdoq68jKSkrKeulP/55JyuqZ2irryMpKSsp66U//nlqrug9qikpuWku7uk5byuqb2irrzBu6qooKqsrvHkuLK4v66m5Kq7u+SFvqaprrmZrqikrKWiv6KkpeSFvqaprrmZrqikrKWiv6KkpeWqu6D2qKSm5b+ur+WlvqaprrnBu6qooKqsrvHkuLK4v66m5Kq7u+SEu7ukjL6qua+Op63khLu7pIy+qrmvjqet5aq7oPaopKblqKSnpLmkuOWku7ukrL6qua+up63Bu6qooKqsrvHkuLK4v66m5Lu5or3mqru75IamuOSGprjlqrug9qikpuWqpa+5pKKv5aamuMG7qqigqqyu8eS4sri/rqbkqru75Ji/oPrkmL+g+uWqu6D2qKSm5aqlr7mkoq/luL+gwbuqqKCqrK7x5LiyuL+upuSqu7vknr+g5J6/oOWqu6D2qKSm5aqlr7mkoq/lvr+gwbuqqKCqrK7x5LiyuL+upuSqu7vkj6K5qqiKvq+ipIikpb+5pKeYrrm9oqiu5I+iuaqoir6voqSIpKW/uaSnmK65vaKoruWqu6D2uK7lr6K5qqjlqqi4wbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pI+5pLuppLOIo6akr5iuub2iqK7khLu7pI+5pLuppLOIo6akr5iuub2iqK7lqrug9qikpuWvuaS7qaSzqKOmpK/Bu6qooKqsrvHkuLK4v66m5Kq7u+SPp6WqmK65vaKoruSPp6WqmK65vaKoruWqu6D2qKSm5aqlr7mkoq/lr6elquW4rrm9oqiuwbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pJujpKWuiqi/or2qv6KkpeSEu7ukm6Okpa6KqL+ivaq/oqSl5aq7oPaopKblqKSnpLmkuOWqqL+ivaq/oqSlwbuqqKCqrK7x5LiyuL+upuSqu7vkmL67rrmRpKSmiKqmrrmq5Ji+u665kaSkpoiqpq65quWqu6D2qKSm5aS7u6TlqKqmrrmq5bi+u665saSkpsG7qqigqqyu8eS4sri/rqbkqru75Iiqp66lr6q55Iiqp66lr6q55aq7oPaopKblqqWvuaSir+Woqqeupa+qucG7qqigqqyu8eS4sri/rqbkqru75I+5ppu5pL2ir6655I+5ppu5pL2ir6655aq7oPaopKblpq6voqq/rqDlu7mkvaKvrrm45a+5psG7qqigqqyu8eS4sri/rqbkqru75I2ipayuubu5oqW/m7mkvaKvrrnkjaKlrK65u7mipb+buaS9oq+uueWqu6D2qKSm5aS7u6TlraKlrK65u7mipb+45biuub2iqK7Bu6qooKqsrvHkuLK4v66m5Lu5or3mqru75Jiuv7+ipay4m7mkvaKvrrnkmK6/v6KlrLibuaS9oq+uueWqu6D2qKSm5aqlr7mkoq/lu7mkvaKvrrm45biuv7+ipay4wbuqqKCqrK7x5LiyuL+upuSqu7vkhqK5qp2iuKKkpeSGormqnaK4oqSl5aq7oPaopKblpq6voqq/rqDlpqK5qr2iuKKkpeW+osG7qqigqqyu8eS4sri/rqbku7miveaqu7vkmKOqua6vmL+kuaqsromqqKC+u+SYo6q5rq+Yv6S5qqyuiaqooL675aq7oPaopKblqqWvuaSir+W4o6q5rq+4v6S5qqyuqaqooL67wbuqqKCqrK7x5LiyuL+upuSqu7vkm7mipb+Yu6Skp6655Ju5oqW/mLukpKeuueWqu6D2qKSm5aqlr7mkoq/lu7mipb+4u6Skp665wbuqqKCqrK7x5LiyuL+upuSqu7vknqKoqPqfrrmmoqWqp+Seoqio+p+uuaaipaqn5aq7oPakuazluKKmqqenoqqlqK7lpLuupaakqaKnrqq7ouW+oqio+r+uuaaipaqnwbuqqKCqrK7x5LiyuL+upuSqu7vkpaS/oq2iqKq/oqSllKiupb+uueSlpL+iraKoqr+ipKWUqK6lv6655aq7oPaopKblqKSnpLmkuOWlpL+iraKoqr+ipKWmqqWqrK65wbuqqKCqrK7x5K+qv6rkqru75KikpuWku7uk5aikpqa+paK/sub65KmquK7lqrug9qikpuWku7uk5aikpqa+paK/ssG7qqigqqyu8eS4sri/rqbkqru75ImquKKoj7muqqa45ImquKKoj7muqqa45aq7oPaopKblqqWvuaSir+Wvua6qprjlqaq4oqjBu6qooKqsrvHkuLK4v66m5Kq7u+SCpYiqp6eeguSCpYiqp6eeguWqu6D2qKSm5aqlr7mkoq/loqWoqqenvqLBu6qooKqsrvHkr6q/quSqu7vkqKSm5aWuqrmmruW/o66mrri7qqiu5vrkqaq4ruWqu6D2qKSm5aWuqrmmruW/o66mrri7qqiuwbuqqKCqrK7x5LiyuL+upuSqu7vkgqaqrK6fpKSn5IKmqqyun6Skp+Wqu6D2qKSm5aS7u6TlraKlrK65u7mipb+45a2ipayuubu5oqW/uK6luKS5v664v8G7qqigqqyu8eSvqr+q5Kq7u+SopKblpLu7pOWipbi/qqW/5aekqKqn5biuub2iqK7m+uSpqriu5aq7oPaopKblpLu7pOWipbi/qqW/5aekqKqn5biuub2iqK7Bu6qooKqsrvHkuLK4v66m5Lu5or3mqru75IKlu76/j669oqiuuOSCpbu+v4+uvaKorrjlqrug9qikpuWqpa+5pKKv5aKlu76/r669oqiuuMG7qqigqqyu8eS4sri/rqbkqru75Jikrb+4oqaZrq+/rqqZpKqmoqWs5Jikrb+4oqaZrq+/rqqZpKqmoqWs5aq7oPaopKblua6vv66qpqSpoqeu5bmkqqaipazBu6qooKqsrvHkuLK4v66m5K25qqauvKS5oOSmrq+iqr+uoOa5rrjkpq6voqq/rqDmua645aq7oPaopKblpq6voqq/rqDBu6qooKqsrvHkr6q/quSqu7vkqKSm5a+qrqakpeW4o66nu6655vrkqaq4ruWqu6D2qKSm5a+qrqakpeW4o66nu665wbuqqKCqrK7x5LiyuL+upuStuaqmrrykuaDkpLu7pOatuaqmrrykuaDmua645aq7oPaku7ukwbuqqKCqrK7x5K+qv6rkqru75KikpuWopKekuaS45aikpruquLjm+eSpqriu5aq7oPaopKblqKSnpLmkuOWopKa7qri4wbuqqKCqrK7x5K+qv6rkqru75KikpuWopKekuaS45amqqKC+u7muuL+kua7lua6mpL+uuK65vaKorub65KmquK7lqrug9qikpuWopKekuaS45amqqKC+u7muuL+kua7lua6mpL+uuK65vaKorsG7qqigqqyu8eS4sri/rqbkqru75IS7u6SHqr6lqKOuueSEu7ukh6q+paijrrnlqrug9qikpuWku7uk5aeqvqWoo665wbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pJu5rr2upb+GpK+u5IS7u6Sbua69rqW/hqSvruWqu6D2qKSm5aikp6S5pLjlu7muva6lv6akr67Bu6qooKqsrvHkuLK4v66m5Kq7u+Scrqmdoq68jKSkrKeu5JyuqZ2irryMpKSsp67lqrug9qikpuWspKSsp67lqqWvuaSir+W8rqm9oq68wbuqqKCqrK7x5LiyuL+upuSqu7vkma6orqW/n6q4oOSZrqiupb+fqrig5aq7oPaopKblqKSnpLmkuOW5rqiupb+4wbuqqKCqrK7x5LiyuL+upuSqu7vknKqnp7uqu665uOScqqenu6q7rrm45aq7oPaopKblqKSnpLmkuOW8qqenu6q7rrm4wbuqqKCqrK7x5K+qv6rkqru75KikpuWopKekuaS45aaouOb65KmquK7lqrug9qikpuWopKekuaS45aaouMG7qqigqqyu8eS4sri/rqbkqru75JiyuL+upoq7u567r6q/rpiuub2iqK7kmLK4v66miru7nruvqr+umK65vaKoruWqu6D2qKSm5aikp6S5pLjluKq+wbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+SEpa6foqaugqWiv6Kqp6KxrrnkhKWun6KmroKlor+iqqeisa655aq7oPaopKblqqWvuaSir+Wkpa6/oqauoqWiv6Kqp6KxrrnBu6qooKqsrvHkuLK4v66m5Kq7u+SFp7uYrrm9oqiu5IWnu5iuub2iqK7lqrug9qikpuWmrq+iqr+uoOWlp7u4rrm9oqiuwbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+SfrqeuqKSm5J+up66opKblqrug9qikpuWqpa+5pKKv5biuub2uueW/rqeuqKSmwbuqqKCqrK7x5LiyuL+upuSqu7vkiKSnpLmego6lrKKlruSIpKekuZ6CjqWsoqWu5aq7oPaopKblqKSnpLnlvqKupayipa7Bu6qooKqsrvHkuLK4v66m5Kq7u+SArrKIo6qipeSArrKIo6qipeWqu6D2qKSm5aqlr7mkoq/loK6yqKOqoqXBu6qooKqsrvHkuLK4v66m5Lu5or3mqru75ICusqy+qrmv5ICusqy+qrmv5aq7oPaopKblqqWvuaSir+WgrrKsvqq5r8G7qqigqqyu8eSvqr+q5Kq7u+SopKblqKSnpLmkuOW8rqq/o6655IS7u6Scrqq/o6655aq7oPaopKblqKSnpLmkuOW8rqq/o665wbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pJ64qZiup66ov6KkpeSEu7uknripmK6nrqi/oqSl5aq7oPaopKblqKSnpLmkuOW+uKm4rqeuqL+ipKXBu6qooKqsrvHkuLK4v66m5Kq7u+SEu7ukj4iY5IS7u6SPiJjlqrug9qikpuWlrqq5pq7luL+qv6K4v6KouOW5pKbBu6qooKqsrvHkr6q/quSqu7vkqKSm5bi45aqlr7mkoq/lvqyo5aq8rqau5vnkqaq4ruWqu6D2qKSm5bi45aqlr7mkoq/lvqyo5aq8rqauwbuqqKCqrK7x5K+qv6rkqru75KikpuWopKekuaS45bKkp6Lm+eSpqriu5aq7oPaopKblqKSnpLmkuOWypKeiwbuqqKCqrK7x5LiyuL+upuSqu7vkg66/iKSmpuSDrr+IpKam5aq7oPaopKblpq6voqq/rqDlo66/qKSmpsG7qqigqqyu8eSvqr+q5Kq7u+SopKblv66lqK6lv+WmpKmip666uub55KmquK7lqrug9qikpuW/rqWorqW/5aakqaKnrrq6wbuqqKCqrK7x5LiyuL+upuSqu7vkm6qooKqsroKluL+qp6euueSbqqigqqyugqW4v6qnp6655aq7oPaopKblqqWvuaSir+W7qqigqqyuoqW4v6qnp665wbuqqKCqrK7x5LiyuL+upuSqu7vkma64pL65qK6GpKWiv6S55JmuuKS+uaiuhqSlor+kueWqu6D2qKSm5aS7u6Tlua64pqSlor+kucG7qqigqqyu8eS4sri/rqbkqru75JuiqL+kuaKqp+Sboqi/pLmiqqflqrug9qikpuWopKekuaS45buiqL+kuaKqp8G7qqigqqyu8eS4sri/rqbkqru75JuiqKSfv7jkm6KopJ+/uOWqu6D2qKSm5bi9pLPlu6KopMG7qqigqqyu8eS4sri/rqbku7miveaqu7vkm7mks7KDqqWvp6655Ju5pLOyg6qlr6euueWqu6D2qKSm5aqlr7mkoq/lu7mks7KjqqWvp665wbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pJimqqennK6qv6OuuZyir6yuv+SEu7ukmKaqp6ecrqq/o665nKKvrK6/5aq7oPaopKblqKSnpLmkuOW8oq+srr/luKaqp6e8rqq/o665wbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pI2nqrijh6Kso7/khLu7pI2nqrijh6Kso7/lqrug9qikpuWopKekuaS45a2nqrijp6Kso7/Bu6qooKqsrvHkuLK4v66m5Kq7u+SYqq2ujbmqpq68pLmg5Jiqra6NuaqmrrykuaDlqrug9qikpuWopKekuaS45biqra7luK65vaKoruWtuaqmrrykuaDBu6qooKqsrvHkuLK4v66m5Lu5or3mqru75JujpL+kjq2trqi/uOSbo6S/pI6tra6ov7jlqrug9qikpuWopKekuaS45bujpL+krq2trqi/uMG7qqigqqyu8eS4sri/rqbkqru75Iaqpaqsrq+buaS9oriipKWipazkhqqlqqyur5u5pL2iuKKkpaKlrOWqu6D2qKSm5aqlr7mkoq/lpqqlqqyur7u5pL2iuKKkpaKlrMG7qqigqqyu8eS4sri/rqbkqru75Ij5nuSI+Z7lqrug9qikpuWku7uk5aj5vsG7qqigqqyu8eS4sri/rqbkqru75ISfiuSEn4rlqrug9qikpuWku7uk5aS/qsG7qqigqqyu8eS4sri/rqbkqru75Iq/qKKYrrm9oqiu5Iq/qKKYrrm9oqiu5aq7oPaopKblpq6voqq/rqDlqr+oouW4rrm9oqiuwbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pIiqpq65quSEu7ukiKqmrrmq5aq7oPaopKblpLu7pOWoqqauuarBu6qooKqsrvHkuLK4v66m5Kq7u+Sbo6S/pJ+qqaeu5JujpL+kn6qpp67lqrug9qikpuWqpa+5pKKv5a+5rqqmuOW7o6S/pL+qqaeuwbuqqKCqrK7x5LiyuL+upuSqu7vkja6ur6mqqKDkja6ur6mqqKDlqrug9qikpuWopKekuaS45a2urq+pqqigwbuqqKCqrK7x5LiyuL+upuSqu7vkiKekqKDkiKekqKDlqrug9qikpuWopKekuaS45aqnqrmmqKekqKDBu6qooKqsrvHkuLK4v66m5Kq7u+SYr4iqua+Yrrm9oqiu5JiviKq5r5iuub2iqK7lqrug9qikpuWku7uk5bivqKq5r7iuub2iqK7Bu6qooKqsrvHkuLK4v66m5Kq7u+SIp66qpaaquL+uuf3/5Iinrqqlpqq4v665/f/lqrug9qikpuWop66qpaaquL+uueW4r6DBu6qooKqsrvHkuLK4v66m5Kq7u+SbuaStrri4oqSlqqeIqqauuarkm7mkra64uKKkpaqniKqmrrmq5aq7oPaopKblpLu7pOWoqqauuarlu7mkra64uKKkpaqnwbuqqKCqrK7x5LiyuL+upuSqu7vknKqnp7uqu665iKOkpLiuueScqqenu6q7rrmIo6SkuK655aq7oPaopKblqqWvuaSir+W8qqenu6q7rrnlp6K9rruiqKCuucG7qqigqqyu8eSvqr+q5Kq7u+SopKblpLu7pOWmqrmgrr/m+uSpqriu5aq7oPaopKblpLu7pOWmqrmgrr/Bu6qooKqsrvHkr6q/quSqu7vkqKSm5Zq+paq55vrkqaq4ruWqu6D2qKSm5Zq+paq5wbuqqKCqrK7x5LiyuL+upuSqu7vkiru7iaqooL67iKSmu6S4rrnkiru7iaqooL67iKSmu6S4rrnlqrug9qikpuWopKekuaS45amqqKC+u+WopKa7pLiuueWqu7vBu6qooKqsrvHkuLK4v66m5Kq7u+SNoqWvhrKbo6SlruSNoqWvhrKbo6SlruWqu6D2qKSm5aikp6S5pLjlraKlr6ayu6Okpa7Bu6qooKqsrvHkuLK4v66m5Kq7u+SEu7ukiLmiv6KoqqeHpKyYrrm9oqiu5IS7u6SIuaK/oqiqp4ekrJiuub2iqK7lqrug9qikpuWouaK/oqiqp6ekrMG7qqigqqyu8eS4sri/rqbkqru75ICugK6fo66mrpi7qqiuh6Kp5ICugK6fo66mrpi7qqiuh6Kp5aq7oPaopKblpa6quaau5b+jrqauuLuqqK6noqnBu6qooKqsrvHkuLK4v66m5Kq7u+SYqq2uiK6lv6655Jiqra6IrqW/rrnlqrug9qikpuWopKekuaS45biqra6orqW/rrnBu6qooKqsrvHkr6q/quSqu7vkqKSm5b+upaiupb/lpa68uOb65KmquK7lqrug9qikpuW/rqWorqW/5aWuvLjBu6qooKqsrvHkuLK4v66m5Lu5or3mqru75Jiuv7+ipay45Jiuv7+ipay45aq7oPaopKblqqWvuaSir+W4rr+/oqWsuMG7qqigqqyu8eS4sri/rqbkqru75ICusqy+qrmvhaS/oq2iqKq/oqSl5ICusqy+qrmvhaS/oq2iqKq/oqSl5aq7oPaopKblqKSnpLmkuOWgrrKsvqq5r+WlpL+iraKoqr+ipKXBu6qooKqsrvHkuLK4v66m5Kq7u+SEu7ukjqWsoqWurrmGpK+u5IS7u6SOpayipa6uuYakr67lqrug9qikpuWku7uk5a6lrKKlrq65pqSvrsG7qqigqqyu8eS4sri/rqbkqru75I2qqL+kubKMu7jkjaqov6S5soy7uOWqu6D2qKSm5aS7u6Tlraqov6S5sqy7uMG7qqigqqyu8eSvqr+q5Kq7u+SopKblpa6quaau5aq/p6q45vnkqaq4ruWqu6D2qKSm5aWuqrmmruWqv6equMG7qqigqqyu8eS4sri/rqbkqru75IS7u6SOs5iuub2iqK6eguSEu7ukjrOYrrm9oqiunoLlqrug9qikpuWopKekuaS45a6zuK65vaKorr6iwbuqqKCqrK7x5K+qv6rkqru75KikpuWqpa+5pKKv5aiqp6i+p6q/pLn55Iiqp6i+p6q/pLnlqrug9qikpuWqpa+5pKKv5aiqp6i+p6q/pLn5wbuqqKCqrK7x5LiyuL+upuSqu7vkiKSnpLmYqLmurqW4o6S/5Iikp6S5mKi5rq6luKOkv+Wqu6D2qKSm5aikp6S5pLjluKi5rq6luKOkv8G7qqigqqyu8eS4sri/rqbkqru75IS7u6SPormqqOSEu7ukj6K5qqjlqrug9qikpuWku7uk5a+iuaqowbuqqKCqrK7x5K+qv6rkqru75KikpuWku7uk5aa+uKKo5vrkqaq4ruWqu6D2qKSm5aS7u6Tlpr64oqjBu6qooKqsrvHkuLK4v66m5Kq7u+SHpKiqv6KkpY6G+eSHpKiqv6KkpY6G+eWqu6D2qKSm5aaur6Kqv66g5aepuOWupvnlvqLBu6qooKqsrvHkuLK4v66m5Kq7u+SIp6S+r5iuub2iqK7kiKekvq+Yrrm9oqiu5aq7oPaopKblqKSnpLmkuOWop6S+r8G7qqigqqyu8eS4sri/rqbku7miveaqu7vknaKvrqSMqqenrrmy5J2ir66kjKqnp665suWqu6D2qKSm5aikp6S5pLjlvaKvrqTBu6qooKqsrvHkuLK4v66m5Kq7u+SNoqeuhqqlqqyuueSNoqeuhqqlqqyuueWqu6D2qKSm5aikp6S5pLjlraKnrqaqpaqsrrnBu6qooKqsrvHkr6q/quSqu7vkqKSm5aS7u6Tlvriuuaiupb+uueb65KmquK7lqrug9qikpuWku7uk5b64rrmorqW/rrnBu6qooKqsrvHkuLK4v66m5Kq7u+SNoqe/rrmIqqauuarkjaKnv665iKqmrrmq5aq7oPaopKblpLu7pOWoqqauuarlraKnv665wbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+Sdu6WPoqqnpKy45J27pY+iqqekrLjlqrug9qikpuWqpa+5pKKv5b27pa+iqqekrLjBu6qooKqsrvHkuLK4v66m5Kq7u+Sku7ukhr6nv6KKu7vkpLu7pIa+p7+iiru75aq7oPaopKblqKSnpLmkuOWku7ukpr6nv6Kqu7vBu6qooKqsrvHkr6q/quSqu7vkqKSm5aWuqrmmruWipbi/qqW/5bunqr+tpLmm5vrkqaq4ruWqu6D2qKSm5aWuqrmmruWipbi/qqW/5bunqr+tpLmmwbuqqKCqrK7x5LiyuL+upuSqu7vkha68mKS+pa+Zrqikua+uueSFrryYpL6lr5muqKS5r6655aq7oPaopKblqKSnpLmkuOW4pL6lr7muqKS5r665wbuqqKCqrK7x5K+qv6rkqru75KikpuWqpa+5pKKv5a6mqqKn5vrkqaq4ruWqu6D2qKSm5aqlr7mkoq/lrqaqoqfBu6qooKqsrvHkuLK4v66m5Kq7u+SEu7ukmLuurqijiri4ori/5IS7u6SYu66uqKOKuLiiuL/lqrug9qikpuWopKekuaS45bi7rq6oo6q4uKK4v8G7qqigqqyu8eS4sri/rqbku7miveaqu7vkn66nrpiuub2iqK7kn66nrpiuub2iqK7lqrug9qikpuWqpa+5pKKv5bujpKWuwbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+SYo66np+SYo66np+Wqu6D2qKSm5aqlr7mkoq/luKOup6fBu6qooKqsrvHkuLK4v66m5Kq7u+SeuK65j6Kov6Kkpaq5spu5pL2ir6655J64rrmPoqi/oqSlqrmym7mkvaKvrrnlqrug9qikpuWqpa+5pKKv5bu5pL2ir665uOW+uK65r6Kov6Kkpaq5ssG7qqigqqyu8eSvqr+q5Kq7u+SopKblpLu7pOW6vqKooLiuqrmoo6mks+b65KmquK7lqrug9qikpuWku7uk5bq+oqiguK6quaijqaSzwbuqqKCqrK7x5LiyuL+upuSqu7vkrpiOn665pqKlqqfkrpiOn665pqKlqqflqrug9qS5rOW4oqaqp6eiqqWoruWku66lpqSpoqeuqrui5a64rr+uuaaipaqnwbuqqKCqrK7x5LiyuL+upuSqu7vkjKKtiKqmrrmq5IyirYiqpq65quWqu6D2qKSm5aS7u6TlqKqmrrmq5ayircG7qqigqqyu8eS4sri/rqbku7miveaqu7vkjb64rq+HpKiqv6KkpeSNvriur4ekqKq/oqSl5aq7oPaopKblqqWvuaSir+WnpKiqv6KkpeWtvriur8G7qqigqqyu8eS4sri/rqbkqru75IS7u6SYu66uqKOYrrm9oqiu5IS7u6SYu66uqKOYrrm9oqiu5aq7oPaopKblqKSnpLmkuOW4u66uqKOquLiiuL/lrqWsoqWuwbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+SYsri/rqaeguSYsri/rqaeguWqu6D2qKSm5aqlr7mkoq/luLK4v66mvqLBu6qooKqsrvHkuLK4v66m5Kq7u+SFrr+8pLmgh6Soqr+ipKXkha6/vKS5oIekqKq/oqSl5aq7oPaopKblqqaqu+Wqpa+5pKKv5aekqKq/oqSlwbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pIS7rrmqv6KkpYaqpb6qp+SEu7ukhLuuuaq/oqSlhqqlvqqn5aq7oPaopKblqKSnpLmkuOWku665qr+ipKWGqqW+qqfBu6qooKqsrvHkuLK4v66m5Kq7u+SZpKaeu6+qv67kmaSmnruvqr+u5aq7oPaopKblpa6quaau5bmkpr67r6q/rsG7qqigqqyu8eS4sri/rqbkqru75IafgIekrKyuueSGn4CHpKysrrnlqrug9qikpuWmrq+iqr+uoOWmv6CnpKysrrnBu6qooKqsrvHkuLK4v66m5Kq7u+SEu7ukjK64v765ro6lrKKlruSEu7ukjK64v765ro6lrKKlruWqu6D2qKSm5aS7u6TlrK64v765rriuub2iqK7Bu6qooKqsrvHkuLK4v66m5Lu5or3mqru75IS7u6SMqqenrrmy+eSEu7ukjKqnp665svnlqrug9qikpuWopKekuaS45ayqp6euubL4r8G7qqigqqyu8eS4sri/rqbkqru75Imnvq6/pKS/o+SJp76uv6Skv6Plqrug9qikpuWqpa+5pKKv5amnvq6/pKS/o8G7qqigqqyu8eS4sri/rqbku7miveaqu7vkiKSlv6qov7ibuaS9oq+uueSIpKW/qqi/uJu5pL2ir6655aq7oPaopKblqqWvuaSir+W7uaS9oq+uubjlqKSlv6qov7jBu6qooKqsrvHkuLK4v66m5Kq7u+SIpKekuYq7u5iuub2iqK64hqqlqqyuueSIpKekuYq7u5iuub2iqK64hqqlqqyuueWqu6D2qKSm5aikp6S5pLjlqru7pqqlqqyuucG7qqigqqyu8eS4sri/rqbkqru75Iiqu7+iva6bpLm/qqeHpKyipeSIqru/or2um6S5v6qnh6SsoqXlqrug9qikpuWqpa+5pKKv5aiqu7+iva67pLm/qqenpKyipcG7qqigqqyu8eS4sri/rqbkqru75L64qqyuj76mu6655L64qqyuj76mu6655aq7oPaopKblpLu7pOW+uKqsro++prvBu6qooKqsrvHkuLK4v66m5Kq7u+SNqqiuia6qvr+yiKqmrrmq5I2qqK6Jrqq+v7KIqqauuarlqrug9qikpuWku7uk5aiqpq65quWtqqiuqa6qvr+ywbuqqKCqrK7x5LiyuL+upuSqu7vkpLu7pIakuaWipayYsri/rqbkpLu7pIakuaWipayYsri/rqblqrug9qikpuWopKekuaS45aS7u6SmpLmloqWsuLK4v66mwQ=="},"paradox": {"thd": 0,"add": 0,"cba": 0,"bnd": 0,"f_fd": 1,"p_dso": 1},"gp_ctl": {"usb": -1,"adb": -1,"acc": ""},"custom_info": {},"hc": "0016777216","fch": "0345472631"
}

将此数据进行xlog算法加密后,进行提交,即可进行正常的操作,如注册抖音号、点赞、关注、采集数据等等了。

下一篇文章分析 xlog里面每个参数的作用!

抖音xlog算法 hook分析记录 抖音xlog风控算法 抖音xlog参数分析相关推荐

  1. 看好友抖音显示服务器,抖音怎么看访客记录 抖音7天访客记录查看方法入口

    [惠美优普]数码资讯 抖音最新版里有访客记录啦,不过这个显示也只能看7天的,超过这个天数的话就看不了了,而且这个功能是可以关闭的,下面一起来看看具体的操作流程. 2021新版抖音可以看访客记录吗? 可 ...

  2. 某次元app之data参数分析

    今天我们要分析的app 是5Y2K5qyh5YWD54mI5pys5Y+3djUuMC44 ,小伙伴们可以去各大应用商定自行下载. 同系列文章推荐下: 1.聚美app之 _sign参数分析 2.大润发 ...

  3. 美图秀秀 sig参数分析

    转载一篇好的博客,原始链接 https://mp.weixin.qq.com/s/5kUDmlPvIOw-6mdzywvyFA 推荐一波,这是博主的网站:https://www.qinless.com ...

  4. 金融风控实战——风控领域涉及到的算法和风控算法工程师需要具备的能力

    一些简单的介绍 市面上算法相关的岗位,从大范围上分为两大类 1.研究驱动的算法工程师,这类算法工程师的门槛很高,分布在大型公司的研究院.创新实验室等部门,这类算法工程师主要是以研究新的算法或者是更好的 ...

  5. 聚美app之 _sign参数分析

    今天我们要分析的app 是聚美优品, 版本号v8.781 (当前最新版),小伙伴们可以去各大应用商定自行下载. 转载请注明出处: https://blog.csdn.net/weixin_388198 ...

  6. 大润发优鲜app之paramsMD5参数分析

    今天我们要分析的app 是大润发优鲜, 版本号1.4.0,小伙伴们可以去各大应用商定自行下载,软件使用360壳且混淆,APP校验了HTTPS证书,需要使用xposed的JustTrustMe模块. 参 ...

  7. 贝壳app Authorization参数分析

    嗯,2021年快结束了,学习忙碌一年了,年底了写点文章,总结性学习成果吧! 今天我们要分析的app是贝壳 版本号:v2.66.0,小伙伴们可以去各大应用商定自行下载,也是一个很好的逆向分析案例. 转载 ...

  8. 豆瓣app sig参数分析

    今天我们要分析的app 是豆瓣, 版本号7.18.0,下载链接小伙伴们可以去各大应用商定自行下载.怕自己忘,赶紧记录下分析流程,是作为一个逆向分析的很好案例. 参考链接: https://blog.c ...

  9. 飞瓜快数app之sign参数分析

    趁着还有一些记忆,赶紧记录下. 今天我们要分析的app 是飞瓜快数,版本号v1.0.8 ,小伙伴们可以去各大应用商定自行下载. 只做参数分析,用来学习,如有侵权,请联系博主,第一时间删除. 转载请注明 ...

  10. matlab处理abaqus_Abaqus/用Abaqus进行参数分析(python+maltab助攻)

    (原文发在微信公众号"建筑工业产品经理") 有时候需要对模型做大量的参数分析以尝试获得一些规律认识,这时若仅仅通过abaqus的cae界面手动修改参数以及前后处理,几乎不可能完成大 ...

最新文章

  1. Android 简单记事本
  2. wmic 获取计算机ip,【已解决】xp系统下,受限用户如何用批处理在不使用wmic获取多个网卡的IP地址?...
  3. Java虚拟机:垃圾回收机制与垃圾收集器
  4. python logger_Python:logging 的巧妙设计!
  5. CTSC2017 APIO2017 THUSC2017 游记
  6. ★LeetCode(108)——将有序数组转换为二叉搜索树(JavaScript)
  7. 200多个恶意NPM程序包针对Azure 开发人员,发动供应链攻击
  8. python必备基础代码-Python初学者必会的3款代码编辑器
  9. 【Nokov】动作捕捉系统标定与机械臂各坐标系的说明
  10. spinlock变量没有初始化
  11. 《C语言程序设计》课后习题答案(第四版)谭浩强
  12. IT眼界--- 十亿美金之盛大盒子
  13. php 按钮美化,input(file)按钮样式美化第二种
  14. 谈谈服务器虚拟化解决方案
  15. win10安装win10X虚拟机教程
  16. 什么杀毒软件最好|什么杀毒软件好用
  17. JavaWeb-文件上传和下载
  18. Python用户管理系统,宠物管理系统
  19. 复旦大学计算机学院教师简介,复旦大学计算机科学技术学院导师教师师资介绍简介-危辉...
  20. Proteus仿真最小系统板的绘制及流水灯

热门文章

  1. 数据结构——堆(C++)
  2. 单片机供电及掉电保护
  3. UITableViewCell单元格的删除、插入、移动
  4. python基础练习(3)
  5. 简历筛选三要素,你满足几个?
  6. 简单的酷跑游戏制作思路
  7. Java实现 蓝桥杯VIP 算法提高 分数统计
  8. 语义检索系统【一】:基于无监督预训练语义索引召回:SimCSE、Diffcse
  9. 高尔夫集团如何操作智能软件提前规避财务风险
  10. 2.求e的值。(分数阶乘)