From 5574c3a3708b886f2ffb45fdac1d09f184b2d9d8 Mon Sep 17 00:00:00 2001 From: luzhisheng Date: Wed, 1 Jun 2022 11:21:39 +0800 Subject: [PATCH] =?UTF-8?q?test=5Fpc=5F=E6=8A=96=E9=9F=B3=E7=A0=B4?= =?UTF-8?q?=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test_pc_小红书破解/client/bg.png | Bin 0 -> 26607 bytes test_pc_小红书破解/client/fg.png | Bin 0 -> 17301 bytes .../client/verification_code.py | 1314 +++++++++++++ test_pc_小红书破解/encryption_2.js | 1655 +++++++++++++++++ 4 files changed, 2969 insertions(+) create mode 100644 test_pc_小红书破解/client/bg.png create mode 100644 test_pc_小红书破解/client/fg.png create mode 100644 test_pc_小红书破解/client/verification_code.py create mode 100644 test_pc_小红书破解/encryption_2.js diff --git a/test_pc_小红书破解/client/bg.png b/test_pc_小红书破解/client/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..92ddf6f8841cdcd715ddf0b217dc0b7245fd3493 GIT binary patch literal 26607 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�onY~e_F(`S z$d#KF6v=F`n62%VcVKU3EX(cq1CLQ7UkwJDBhY_o``m5<{JZ$ZwP$Mk%mb z4!3}1ZZq?#!xlUd+#kZ7G)V)=AC$o4kg9SDo`f2sJ>1g=1b~f?lyCv2Pb#z#Aq=jl z03`M6QauFo?hv$N<|;F@?}1f~%*Jqh<_8-}gZDi>sQW|48aUV}Vha#CIH(JTXWllp zbG?0jlvqr0E$8M=N$Z~U+oxU2wKkA2dFpAztL+8GeMK^OTVg)o#m_);MKmNNVO{ca z6nw^|SxoIDj{Q$hK~?TE3}!LM_m8bMCkqY%0F%uCkDKJNBS7BsY`&0MkimkNKPnm}*Izb{6&M0M5(y2B@2`dBEiyWHV zuwP-uYFO@Z*QHb~ywDW(sZPa8Dn^2&b8}P0XBI_gMIlOiUb1wi-Ny(exuYeB>a_H= z*tx2pL+K$){m#RCwgt0S2#W!^?16rAsM} zt2Dbu%TiK0HJ%|BPAd}k%a&F=8qJpaUE4{(ph{bu)jf&5$9VusN|GvB8PzdVe%8w_ zI@QLMG#Nc=9Cax&29qR?n52yZA9GN)e8M|Yq>Qb_CYU1pf4gjOY0Y*|2ZA`N-f0WF zJk>8d<|LYqQk;&O&iq3c&B^tu@?AkRyNMf#XC>ah|mJ5!B_YR3`3eU9>Er zR{)Om$mb|FsmQ41wRsRao=0kOz~KPLJ?Ih^Nzqi~<27Qp25I37d2 z^NP`u=t6;F8GgWas9NSUVv0s-5Th``QvkR7>xM$ew0Zess-nC*dJbr!P z7##tub-(k1!UoVdspg1Ife!7pR_ZkR8g}~f!*#SmrXW6C8q!Y^M>1mGCT8eB85yo} z+S1z07k`}p0JT@GwJS?#$cP4!x!MLPYT2x1WNDk5`=uekiE+_=eznX`qH40UNRn+; zW3>^v{{Z#Y{{Z&9Oqk_c(T5bVU9_w`u&?R|2B{6|a;aoVB6+0}1IiKeezmh>X#|jB z7Tm)bR~(PS)9G5$+rfQ-aSI1tnH`~ z=AuKGK_ra&npoJXmIIDQG=Ouy2^q#?P)QpB1Owr}P zyZ->!sXWxRpAj|=I;!NK#MG;(pdhpbw)ZEk0by+-itT)eOM{)d>C}l7AYuH3*rHmf{dP06D8xWH(|HV=t1C7#v3*B?|ajPPv2Q?OG-I|S?2BDcmolRPV2J2bs z^)z$sG?OXByyyU`GjMTJ8;#3VWNgx4kg+z_&09BzZrs&0`Kiqr>p(P%kdXCZlo8EP zhbzrZ=XNzJ_Zap7Q#awhQ%ShLN@zkGnjYgeY$xLewKsyC8pg6r;;y@tt4x~%t1}at zLlN7_r!0UBnudF&P;zQP6z+&t;-3I4wOyq1Uo~a|0vcq=yOEf4AvHEs3=`6#c`=%$ zads2s9GWgtE*DTq$fk#nIVQ7w=5f}QWb8Sl7BnW5Y{04{F>X3j)w{8#w5l=%O@>&u z!k?R(y&RyCSZz560Ec}n91 zT6ml1Q9DUWxXpR+AlG;HCl286danH4&|AzWS1jxs)fX4vzla* zBnnScS$7vLD<4W8qgtExI-E$yBl4;4HC2$|7Z|QuCt!HaYf9a)n~L*H8nLXJoO?cX z6%o{?*!FU`hPY--` ztvDfqU?fFkVckv$th7J~G0Ncg8L6Yan$qD_d5rbVXqp<4uIX~XD#_*%(l&d17ipO0M}VJ5pp$?UaA@3bx-Lm@^0r;e`jgE^<^qS-p+-3hP8+wq zO(YvFQdVp=jKe266$8n%5&7bQid-mVZbv7Ielcz4 zb;dLJ({1gizLRCT@;>qB1M6KziJ-_8O!CJit7CG3jl_C;R5xPb8{X$HBvObLcU(l= zDfOz%M27$q>^s+Yt;=l%s#zthZEpGDN8BU5V8Ij?QSSRb`3E^YezjEZAyi5>GRB`K z-Od^z=);<^{h4wjE*>^f?^jx5au~Mo4+IXhq(lzg#V^9r@+!MGrE$mLyde_D;&A)Iidj(VD;ku8MG;=HL%g zQa+Q2rxHv1_>MNODt?}))|WCv#Ajj9)QcnS>qUu@Ey;DX9%_TmWPF~L z80)Y)H?NeLiRe2cZrHPIyFz8-Z$jPS&!}5AnJ;&CpM#qk6 zq)mit4>aThk6OQLZLv0hK>l>L=L%|NcHLL9A>Fc^@DnCaZj{3cfz3YVM&5ad$;DE+yi&)?998{Z)-Bl?AB|#!H*lNtRX)Vn8Ku+3% z=Xy#|lUh1>2+gwmQ9^et$j+E$4WC?8l3u5hH;!s}rDlter|_zCDzPd+ z#%VN!o%b3DlonH*P$gv;UWc_*T%_!(PATfdDZ%ejQYZ5R0$oQH3q7+P#DSV@j6`LJ zTB64$s>X>Ic0qzSO&)7r-ry9+;-JDeO~*=6h0J-Q5A;j2l&50+-A7|uB%-X0MpY}Goj;X6?$Q|SVwFMNAv?M2%@-BAkX^%d91A4z3^@6Ff%Wt?XGO4@^6^{j z?C`D(nP9&ssQ0O?rIPyQ+ex`{)}in@`LH?+`c|E(7QQ94x3^G{jHm;s2exV)p2n&R za;~qT#|6UND+_Bm7in_A!Z)EF^@w!oW3w~ED!D>;#kUNAcRB4{#r(f%xPsPnM~Tiz zBBIx{ix#%?Ojva$EQTW^9B0(jDvY;D9Gn_xyNMJdF_`?aqi);ANZZ#nHM~$+T{WwS zZRKDITd|Nh;N!7BUMi)8@>~6yL~oc9dFLlR>!>m;nw`7LZv*+LH-}Bx{Q0FR4l!0S zyw!tHD|{k}Zct^?K*(|EM^DC*-EE6B7RBX}*!e8r?G5xDbL(0Lk3#ctLhhKXe=r0~mw#t6ktlh~`s5)`}*XdDSNd9VEvlfwo1h+h5rMkOkv5PT68Z}+47m@4v)i=lCzCb_CfcWsH~ryD`OT0a zXH9=?-LhlFiIYPU|H9vmsK5QyPS48ys?(y&7OUgOij|`_+&@bpV;Aj^Or6Vet~7ZZ zNv77cE?c|GYHejVU5qV&q^G0HR46x1&&ZJPF*s{|*toc`LLC7P;KX~8@7p`ecKXiB zf)MQLY#J;$l6m*t1yiQF!++q{!dxXBXMB)ZWUi0%IXXLWPP-f60i2z^HUIfTF0glf zUDHiZinv*eamSu+G5k?(6?;dt{;FO7x#4aPk8OL2~u{#%93cFmG-=~Npyu?sR7R1 z=&PVXc7-iUEA_oB~;1hV*rb8-O!b$c{3cDv^~}o{Cz7YmgAbJF%-6~JjApNMVDe40;oa1 zG{heprc7G}Iykr!{x|MYxI0#DsmjYJnlWY$p)_jba1V3iNxY;%1ko+ zU^tijc{D_SsL{=cNl;F2PqT3q`^K=51X$77KQ!6mDD9xdm^+WQt;gnUCf7}S$AuaP zd!>eK7Z-p}m$}JyD#d^dNu;}aX7rvi4y&ILQ!-q5RMOo8uU=-`Y&NEajPs)sx$=f{ z2Vaus7aj+y?-;+MA>a1sDu*C!S4{n^95?(RZ3gYS4xfl8hV6);Whu^T zg?|};%!EJVHYpN6-7%xz>@q*~NE!Q8B=_yM#VLXMZ2XxF6x9eA4UfwG3 zMydR$8Z&eXONcx2=*FDb*N_b@$W?IZk+TQ>-I(7!m)|@s1tv~TOnt`zaPfC9-zoa` zW!yLkI*?>&mUI7OQbMb#PSm8jpC7-7QH7;`D!ru*N8gcG@+2*b7mzF6+|_-zk7uho z#6DV0+OM7IX}C2mK|u$N^tEH2sEH_OTnkh75$F1j4($&6sz|_Ievf;Gb*QOAa08W_ z+=Q9&Iyqeh>E%J`taNzuNFtDoe&$i#Qc|Rj+eney=jBEi^{VUnDZ&YX5VWqY?lQ&p zn6QG!FC<}aMlZCF|NZ{JqJ_Xy)~V0#Q+^2N-q%Ri$xqRFK@C0j_rOfwuk0hYwu!^% z!x&+}O9|okdAMGC!2TDhDHCj!{1PCK`q)Y)e@D7&Nl1!zRZ*4F1~>p{2?G<;+-_u| z?0UB~W8TfiCgN`7-^#KU zpk`*aNzrfw^st`MYmve%ws7=-Z8>y*DSwyOY!C?azTew7|LZT3T)52f%gvUi|5B^N z6~<%OWzXvlr2vD^mE(M$4977GvoLJ?j{DZqn7`xM6r#ZWJSyQ^f8SRJqTjh_+E4`I zYp>hqUi{^&(f8c(&h(R^OmKv?(>9M3WoU6A(@@R17fN*WJiJ{)pgw*y@%0L{su(L_3oQ_S7F@h zLVQwe`)c)Dx;XI35nxr{YjZ!dXZ~cfkH-$bvwhzkC6WmQeGj9!ihSSCOA|SDK9XhY z-9nz{woM_8MqK`P9K+D~yPz}Ep+Wtt!(+nJ^&MFh1&}&G&A?hXnzE>GxHl;3`(ZWs z7|;itv*D-1<3|=pW^xu#78#&zU}Pv1n#0IyW*IhVRV?1Qi^$=L`+E5*v0{T|+A82Z1j>U-?0WEJe?RTU^*j8d3B zIR#iJ!RP042L%d;d_EGSIgjiHIyr^@YEnyq232a=N*5C2T}$P65zTQdA;s;sdlc|c zvnV>!33tV{)Ren-Ma3vih&P59*{k=Cg-s3GRuBRSB17}nhjttD1qB${1}z$*>2-_{ z6>HQ*(WJit@$%9O{MS08EOQpIVxs!VG))7yl+5@&b2Y$SNd1wk7(BMtSyaR*1Psn! zF|{{uFFS$ze$n>cJHI~H9kxb*s$)Ju z3=@Z~cpY$Z4(44nR0YxEMp|GA6(_=ovXEE=DSV8JS7D4}G0#pN4>8|-prhloxQL1S zCVf&W0Vq&}`9Qy>LJuB~Rqx}!HMF{}+s$8wt12MGBNv3UeSrzjVfnJ`NjKv%pe{2| z9F(YCBHY(u(*(YU_CD7oMgym-+V*_^{Q;jPzt3697F&+&?fp6^(3Uo!6d=mDvj$%z ze;2<-OPWkf$x9aq(EV42KR6&f3kVz6Dvi@__BHi64SIo>imXu}=in>C%MhuWO@g9i zob2jnJ^%pVVtW#Wpd4kSwG010o-u(T!t$HG**gf?VhFnx$ukb>?S9K}8<-;~`nus>NTzeP(Z_{Nkn` z2g_#W+!Ko@FIy+_D4ZaKo;Z0Yfqjeuwi61$-`UnXgWo^f%H#0xr$XGjc$VwXF8v_O zD$|ZL$Ga8&B)`N5S|`ieK$8a0Xkf(22WpEvpXVn2o72)U@Eyo`z1tI{RFP&M@p%L{ zzT_(AAEj-u0`rB-35P#_O(dOIwi*#*xl22H7Y#~(Lb*Q9_qpYcN^6o+Rt2}hw^k9T z2S(+ zoRS=O&va~M)P1INJv%OrUP5@E*j_1dr#`jnc!CSsk|P*v)^s`(9~$So8v=*{7+g18 zKD4dB=C3cTKjgG^7ThOYKjnw{x`bummS+blYhdg%)<9gXgqdp!vBm zzy&!^U{OR#RM%q=#KsE%)htX7ltq{uRL`g2*Fu5s*QQN9Khf`A@cYn*adisVK}YD( zGxfiTvLl2MnTHi40NJePwrL>;3IQ>lMZ8ofz~0`#b6vHWsyoEJr~z4JySDV%+i#F= zL)TlCi`mn)0>2u?q#Zy8QzfT9JK2O?wW&1?k|=uUj9N@=ghK$v%X1E@iZMY|L0RhQ z?JYw~;pavGHI$dv_QI_&IT{_b)9{cdh5Wdp!={`TBVLOE8VWY)G;^C)2_BZLY9o z8i7${kP9OUZ88p;@#@2Aw2nr;vWLYP4;&I}zNgzU$go;OzVW?->DYz7f~4x8@e-%F zdHB-e#9|B8X0fI)W+1Yy$R0k36bwTm83pCRCa;7r+?pUG$P9h7Vrh~RB1eXHpkITt z`%o0M0;3(i6M}14XxcC43g((x>gE~`!Sxt^^MEiZhdTVkxWbX~L$glCe`__rvinPL z8{*Rqu{shb@twzTUbGnv4ecD19e?W>EQGb->^I+lcLy59kS-INWrnWWE-v*gys@lF zR}ykDDi`i!>u@Lccr2>R>Gr2~x{O>01Sp)uaUKE87N24kCWXa-Su>Z2(js}nQu9&x zXVCn-aMu&48(S`1Q?eg83PXzorDAblC)6b|Z#s-Qg`NQzR1RJax+@Z#=`&4JcNdqY zG-N0=E`+WVY*92}S8!rc-|Kw^H0d;^5yNPuH3R|#^+m(r{2^f6R zT*y1oS`#%@l71o^gmOWM4;L4g%`jR3dN@WRnWFKir4m1WXCM94UK6JE!+n0!osNO1d>bwgMc8faBP4j0g0HMIUL3EIo^ zIM6Fat&U

(!vg%-F?Y_eic*I>G@-9rGtIKQm^vP0wb^wso^u!OK06a!PuLXc-35d>(D|^Ezfg+ zqMU>!cWz}2@Ddd_M{%40JdyYWZL0_!3S^U;Wv7s=;5m@`SI?_RuP90^8*{i94VmM) zc6yF6c>swB@SACyF>(i$Qc+Ab(y!dg{u?L-2fK&-Pevbp;nZT`I{1(@7Y9eW9}JAu z(KYDiq(Y-*{}My?ECa}pGKB)0OTXe6v+r#rYJ4y3E-Fd>|Ose)}B6-fu#NW_+zw2aezqru&03{Y?^JQ{TIj~8sW|1XU?^3+?r z)6kC+t23w@)cD+K)w}eK{EQ4&)FFv(8elD$KIDMdFks}*z&GOd&Afy^pzI+(OM(>f z6i&$%NiV@0&)_+%O~m1v9nGs$$FfzL*%x7tlv2+E`QM7(lq_SN_YY~0&wf!XmB-2QXX9^Dhw>{PFK=PN6)>C zzAtminRm{f3;EU|Ouc6T+sk;j!P}=gWC#^FjuA^==#_VDlK6QM7GV|T{x6xul$oRg zMa8u@7vt^Chob}!`VwlqaVe9TscIXx93%ujQW<-lzm^NB6&Dp*GkJEbcoS}88b*hf zD7ZwF{0H*lF&zhvM7tXjV%T;T9MqkcLt)Pi2$#kgW#T-6Xhe;-77V{rWF584ohb9w z($wDptvaZm>Wu&+TZYcJ`Ot~a*E>eW+f5&%*Ij8*FxrXas^f1OLazTYnH}A1R_Xush)<0E6tGsF3dO)w&K2%6WMF4-^qM{$x|XtoM_0;Z?9ifFuQFA;!>`G`X23s9ROz4l2tmHJTR4pbJnmSP zl@(nRN_b8-i{Qp}Pw0RDv1K+OBO_3IiEuV6WX6$J(7=t$e~zj12G&-v^E0lB1p?p2 z^anlFyb{TOhzu!#%X;zoPiHd?We1JioPetm#5FW~dq|r-WBhNtvcJ zT7|opkJ;1(n!<{)WuNmt3zlr+%jH%fi9MS=etR1*I;5q>i{J!-t z42YWSHfG1mIhqcOL1R};+QispDHzB?T{Ak$wuX95Y{0?woA_t+lqYSHQDc*3{%-Z? zX4d<((+6#^CHtMguG4p=e`oUYx8Psq7qI}nBnij;Gmg?Uo6W#Y``&Em!sp)a&t%u$ z_ifLA0)hV9rr~ZU3-8vKte0gA;<6D6NU;BmG1vJY3}SOB{&(!JAh+&qw84RHagt8q zc>&ESw2vao#dKEOp#zBuB!?|aoG(3;K1+8F1E)Pexgihh`_5pPrn#eU!>_UeQriBL zvWF17HCx$*sL`vT?}Ha=_f>d-YS}Rx^yAvzm$jpY8)^4Rx-LLmzv`D);@9-pHdo4n zsJ>ytc2>{xAZ*F-Ylv|tixEwLTP`^#)F~r6bT}Kced05B6;zp2P9j@dY*|tQm)!|F zSx&=mNNK6;k4c9-ige?aPDpdP>dB8_G zuKf@WYy|6?J`5NHb;OOp!{QX1XycS@sYzq+zr1=#3yax!d|vkx_BFj`EE}q{j+h_S z3F(6GY`>T0g09ba-rHVjlHtA04J$%)zXH<$Ne0CU(bBP>q|8|3QHIu@X}P#?D6-`P z5@qmkiJnD8ANKr-KZrllq$n~>)S^zCxP!wP_T3Mo zs-xR!{`;f_(|_HWN$XysVG!_4?^oNqW7^8pYBG5P-txxP^8|n2=k8do>=if;q_BFk z9VPYl>^!ns>K)}sh(Db|7-VlmIV_tk69@Fzu=3k=d1G&n4ID6e1Jv+tf_>XIZV*Y; zI0CiGhEGe5N9gn!ns&-WH#HA8xfWMJO2H}ctHmV(L0z9>C{nc^l(!HnCHkTo=N0pd z_^}WK>4CL^V+p^Ikf3q&6PE_Q^>>gLqrPBNK&7BD!G23Tne@$lA5va-p7TW?cXRoM z&Ubz8{7yfv>I3k$-g^yyJT*jz>za+SjdGvlxwL;H2Gv??P>arO<)tM4q{tuscXdi>Ga4JS4Wz0|!r6A?!Q?xN-?7 zt&r2AO)B{Yy3(vS+U{vUaEj!>A>xcllA%#dR3<0XPEB>cVxg`W`5dOS5m}lA33BvN>v**A*S21?KU6=OV#A){3 z)UH^cu*P}!P;=JGQ0byu)kSwstToWgSJEu1iGQYT*U-$@(ZJSEn!Ncu4@Dhoh<0iPzAe8EhTFlEidvMNVxfp|U|`znVjq|&qF#!We186$9rZIZ3!lbAUNcMT z`*fy4@)&pvMC`b7k2S|_y&`47C(#qbOkB;X4~#(6nur#)P>_26+GK3B`m~=mgT~P$ zSjUCan{(10jEYZfj0aJ|3R)u44} zP}B^kbV=FCwMgZFD}e5lCr>IJ0$d{ zp*cLtTTL51lk#)|%S^)ECq4xp3Vz@E^r`2tdv5F;x~50Lm)*5MG`V3!W8~+89T%vu z$Jn}q8Vz)twXzrSm1f4$dE{ZX-!Fae4E zPyI0x_d=9|&;Hn0TUcW04si==)B3ZS3prupW;$)0iy!Mx%m(1=BSxI3KvfntG~8PT z3?(Vp!yj<*`su!iFmw&)v-1sih7SED5Ham9WGE}tdmL2IB>pfJ055V&{RiTK@7{aKlt$%n@3h+&+0;wK)_gqxIyR;f_8L`ETxlz*$BK|oY zg|JEXB+T7Qw*|pLV2z>33Klzokmtnez}g5Or7O)BsiK6YG{#^9UBD;NaizIf&$Cl+ zmcLz6UAi`7Z?nTpMA{1>Ok4)^5c5T9TLMu16mXpjy&_+X01XCukbQSA-Wk6CYyzGN zq0}a_jU*!0iOLetgL8E^fnAq?C&oGOi_QLw%=O1lbv$BVKu3v9Kqogfb`12guCsG> zk0Z=G?kXBMD%DXy>PFd&t@4@@n+7Q&?BwA=%89=VC#m&y%;wqPT#?c+RAWl zZkydGW604grpZV@*fLqk7zG~jBy3y2h)4fl7C^`IZiedPS37;S97Mu)dJLR*8X3%V0W|_A>zB=KmMIwe zg|!76`(kZsct0(!jfwIZ82|N$3TB#M&_T-WkIn!q+nj=?s}H`alpCpO1(c5B9EDV> zg6PR#rnQWNN8YjT&9(!3?6TKxSxv|98a=DIody6W*O`qsX-nPBdGmu5XGimZdDq;m93Tl& zli}{T3+2ZaN%G_w>~%=OipuDx6bQ`JF0Kp{7G4cxs>$D4!W@)8>#Zy0!u%Z=0qeLu~o#^-BY29L<-bX;^V)KM6kwRh3uKJd~0Gi zL0lTPDde2^?+#l@!+d}7fxw@#2584pOetJwCf} zNeVJQ(?;c!j`%e6tQH_MLi^ylF=gUh0(`7K@aFXA`U7hcJ@)vW)>Sr$Id-$1Uc-d^ zzh6(h3fTegAqC?t4o)?({_vrz;V43E)f8}uaR^?;!|Lc*A?aFT0s6`|&m196*UZ(G zsjm>;7?35i278;5>JN#vaOfsxGtn19)JDlK`d}$_DiIE?4LQx2ct}kPc1EBC8GS+m5Nj4{RuPXomV0bjmF3HY>ex9T5?x7`25b4~C^ie2gJpRw zY{YW`uXlaTR^&V*A2IHux$tb`Ih`A)QEXETqQwW>^J~b?c-oRF2S9GKim>@oaR|f6 zv0$?+c8H>|Ssc&0L{|`>gjA14h+|sQ$x^7vU&J35FxiQN_wbutdMWY3r?P5-vnEC? zTQcd5<}unmCc=5HEDfz)md!k`&%G|KCfW^@md66Z!>OD(f+14|pxD!$? z{T7N0TD+Sf)`SK0{#2oSXqr;ZjP%*ejSY(1fBTxfk7;(43r|m$MvN}K$tm{Z@J69G z?B-zMWz)c<2c(=J0^wwhYw$*fWI693cpAxb@ zKw8Y1uoVFROyoTwBS@Ie0&?Y%=eSfnBOEp6Hv5;+<=TuEv{D46{=%6ZRCt2nP0v24 z4?QNJ49L4|w7<31i+w}j`Dj*#FlZD3)UZ+J-h+T0M{{E9LaihD!VBMFR& ztrJaia0fu)A^ACU7mtmK3v0rFr8oyI>1!^hqi4%Cx$f4l+*7eB3gbdYEvHr!Hz7A9 zY!hExkx+ALFQ&!VoQwq5nuF2=c#&iZ=*Mv;ipdcQu$St^#_T&z(*OIa_Gnx94#Tbx zWH+rFymWNUj!^Lt*v#+P1Q6g_r7cGFDUEH-I9os9W16Chj*^I8RqH@tr{w18N}vf& zY-OwGL=*rOFiA|B>xlFHZP=tAGl} z36ACHnpF;>26%SDMs5xL4m70AFeM@0jyo#vL#aoIc9xIIfi4IHa65mnyV*zyeViFf z2?vG)OwvFP(%++V21|)Jx%`L!7_p%IEW?Jbo-T`?t)%cG43z6KH3p-u@lDpZ=Dbu( zX`GW}`Fj1QFBv~RVFGGh+qHC&TaviX#8jzL__iz*f!qrNjEXC2ls%QyVb%!T&#e*& zn2*uNchgbDt#Y@59U3FiGP&4}y-O&dm zg+onkY(h2@!KjBk0r+;sFtHm0Z#kLSRr`BpHJ*G*qD7|YCou90iE$UE5W2FmQvsCA z?(s+#47GK2NbJOaO&@f9J{|y*AL=b+1P`OIcxB^AbJqgl#$o}_h1ydxMFu4) ztATyynlr;f^Awk3)Q+15FCJVhmH!eHjx+N#jlie9EX%2j^OCPd?tPtd<`C}qC3wBi zNvxG!)`&DWMAZ=*N#!46uZ&H3Yrq#@ok|b;g>*--6*tu|jf{1ZIc-JCuqr z=^bV-^adS0?5&|Uc{(6U5@2V>=Ei}ev%j^$L}QI7Zl&vg5Dmj?)ze)vd3lH$75q2& zG{y`i@Sj&cyPZV}&g(VWTx$RKV26TIuIF`j%OK3d*vLcCU8T^_O$U)9?AyePfYd~* zB8wzd!~{YP#NKvx)pK`ba}tISPZ*N&i+ot(Fq|@4z3jwd>)JlMk`o(=h(v5025`RN zDxoMH2-S>??`64As{hTUY-C!iWa z7eX)%JRfi^a^n8|V-LaH+}8syZ*3MALuH}-#KFZ!!V%|l`$LC-@TWkpSI!}~y;6`L z!ot=<284$`bkzu9P{+u?c6oJ_V=2MM{m%TYv!l_9W0mu*kjohuvAv^}0(YyO-q0Lc z?~;w4s{eME*Jf5QprA}}0ovRZ4<2RK9rVS1IOXZ>gJeV(S2r|n2_m9J){g}{41*ayJ)J$8`+7b&)|04D!K~XU z(xZ{vr<=RNYMrB>z1?Y@l5=^J6fyA(@H#K5FbUfEGH>o7pDhzGFaK0l6UR`jUW?om zf%M}@(jVF;8C(}ws!G(uXA;5m(_eN-S&V#W!Gl;0L)JwJo|?_Ns_Pk?rk~ABJCT=R zR@hriUWl9?qB25iaV^EUZrEryaF8NXM{WkEH|k@NQK8Qj4rW#R7ixfK7%K|1$Y!zx z-{6M_(KZ9J@>uslvt>GSii=ibo?_^GG0aJJz3UD*8tVJF!j?mqV?e-x8nG2((tqGK z(AUq8P3PWhw&2VI>ZI3|3PePodBxH_Y{40d_50tOL{H|AgqXNHis$uS&FL?D& zN>j!xrOgkv+$Khvcyg)6nDkZjigL{MsM(dJ94;P$kDR}-caqH*_QH4xTm%l!n6fox z9SgxDi#e}_?oD28dHx6W^yoZur{HyFR!1j7ynSnyVZ=MgcFBd7u0Hy|^L$32xX8B|3+Qv=V_ST2m|>e%7X+;W$dHbn#gj4}<0@NsL> z@2PMI2rQ=#uG}w&MGnBpKi>;Y!lzi83lzqjr?A?&aq?aeiIvP>B~c{HC1pOD7$nnP z7p%%5BGtK!ROfw}Rq<>8qWl(@tJ!HOLI4ELjK`0^77`yUvchRtOo)x_{Aj;Olta-+ zqkK^ z#wI{Fe&?Gjt;}|=;x>EJ6@Wm%Gq;SZdirjmm>EInuR=1z?2~%tF_YPG3a9JCIaebk zl}kA*Ax-FxHBrPA*AkS3oR`^D9Ip{t*%oB%l5}NYV8DX!APm!6A=_9b$tW26Hfm#?y*-AGr`0ulNF6%+ zDapg_EPRtZuXkBOIZ9ew69L?Z%t zBEQE+OA?IDMN)vsFmQfzz0frEc}9+u@zhv@fQF^qK%0H6z%ywkbv%ctwxg-V3XtvA z+)!<-z*xYvbwe*qxpe(-^~4q?q$oJHfnV7#z?Ocea|{vdEt*Y-Oh?KPHuN~I^Jo^P zrkD`L6pRd*HY>A|+@eYRi!zEpu4L`jE-w&OxbT`~`6jxRKb6(TMAINGsaUzq(S`Y< zv{c~t!yOEqU8E3jk4Ty1xf+IWbzVus-ORLy#!kO*m5&C!L?PPfV-oRc9N?@IL)`qN z2U@5aFMkYb;)n*4Xt6HLd#yIP4{FfMLB3{KgS62V~fvI1`IozarB zr^2D$MzUUX{f1cG?$^slEZJ!i10*cy{o;YOtY^o9EDhXLhJ`oS=u9lnWAl)5lu6R( z#K7)Ur_9;~Zf41(pZy_{1iBPp9#^i|ZKAQJDNiwD*Oz5NCEc^2UMn&8lTwdH{o!!g?TqT8284B`2_5J4R&8IOm& zwMTln-{?rS7S~#bRbZf#pWA!^6<}^$zH9t#=c}O%L<(0V?=#Cd-TWM4zi=uyWNS-J z0C6n}!`^lS)`8VbD(dZEk_?C_j0 z+|o5=A=Vtt&uscRbG=Q_+(QkAO9G3@bQauao0OezH7%F(s1`MgV)aObwPnzoK0zWh zJ*;N4c|r(F>h)t?=tlu%=6P*_?3L5Y?Rd|}tW5sYLx|VqXWsGTW}#0!v$b_~dSQ`Y zx=O(3iA_3dzEG&bkc$`1()LaLkfJC+eQNZ9Cn36nac#JCa1N5A@jPdHU&9?rwh<_u zGNS*~(p9dIXXXgh1!)n1PzdB@!yAZL9ucB(kjEJCE&g>S_#I@a;6r6hbD2QeVK6@6 zEf$7-s%%oh$^ri#+nw2z%!QdN(g27z@Mdnjd$LfF8aJd!6&us0h&1+}BbmVzi1@A1e8CJFV96T&9GfanMCnGui$T7K@YGaH;gJaTr`XLONMyHo4@HkH z{=+tls!9iqu#55oO|pq#@$yab9A~ z;E;}N)zc=MU7_RqcEjIrudm&RpB~#2MWlNkD+BAibRYQX+xMr?Mi*y&wE{;#VJ80r zr;zo%bR--0F+P{;@^WYtrJ=vI^P-SiZf|Gnl0PqwXka-j@6o{r`{SX?Zqiv5tk;^34cEZt) z6O^ZcBpH`9k(OZthj;TvK?Jr)>g>Mcv9L!Byrk;IByG7Iu;dV?@)ivyor>;RzSedz z(PfQ4^1#f~4M+W}A8V8nc#=XH{?vx%!TDp@7MA17q#1KH1sIg<7Wuwk(5OoK)qp?+ z8s)xxqstXm+0%;%0_N6S1*b4^X8wCi>8koheg;q^m6is21Rt5g4Rp=Ef$i6R#p%4U zTeh2-o4uU8yw8$|J8q1In@tkeh(+Uav3U-Qoc0>@*v$Xy@WQF{<%f6-UZNL3TgTzM!+> zHCdZOwp_syU4o!OFJ@+0&rG4dXLtdyzR+fLoWFjBhwx!v&pHvJix|NNrGSy)=v31N zYm4jdmPtuDUaU67?DBV42U9vAPa8R4QQIL)!fn*m=^i8g4Y~Vw`+;(1G%5wqNe2M` zhw`S;LKDjj5nSTYB9}2<`}x>4DYugwu&dnM(g^T>_824B)zkSd>3NFT!=N~dd z|$;lJ||}Bv>Wy%`g@lx$Ake4EYo0Weinq;9(Ej21)oTy4(B`i8VUc2 z4v)tO&g2l2+bLC<*o4K}%T!!RJPuTd>a1O(U0dR+q(sI)|By|3U>*;^l1;z-6gZkX zCe00dkOnpNC9>3gK)>e1n&9{PIoGnbs>rx(p+FFD*t^b>$sNbpeUw)`Ys#~%&^Mzd zoJ!05+uYl0^1)T(yZ&F~#3_Z_%UV1*5B`C(%TmWtrx*;Z^0ti~Unzz0cVgzM;H_2h zSHAtz((`Z`+v{zf?s|75Jp=>5ClOuGO7N>%3^sUh%^y(DRTnJ=Kxf4mo+oI-9z+-s zW}vT)qMyp58QoS*?HV% zvBq;{t6ovr2`9P~M!}e~S_)f|_r4t%rLaI`7|+$lZlwDun|9_v)CU~pXB`go0r7;o zIj(fEGL3xWW|^+Qe}qWD_iE*C`j88cu@67ti5+XK43+$a*b8xkHxhx zsNnKJAzZ=5r0X3>>GHyI!$1{ca+9BejwxP;3u7}0cU% z{o_$DC=@1VyeH#$f8Qd#mfReWw|b5Jzk2R+=!Ie6q5Yd0F&t5ut^7J9Tbb;lgHKqa zTzR+fS+OoA27qzcRGDRkr$Kd4a#vEN(73xSaZtW`?hmD12EZk!PuBEpyg{@T>GIf^ ze^M!VqIGg`DQ;p|p@FA(rai-sw64v{BB2`TXh;vCl;`P9%kLp)hPQ3qwgB#PHCfij zGwFrEz}kSlLFA>HTVsaMvAihJ8#hjKVJ;jmqF=&D&iLs+8G1y(Rm|2HJtcLacg{Bk6=P26vTh0#h1okOeG8IP*yW&bw0y`q zt3Ys$KYd?)G$LVw_Yf66Z{zQPyMYi23}S(w?IjXDKU6|4*ZJw`*~|<>0b=1PXyvFj zZ5v}2Lm*j2Sb7F{|*L#iv90hfId1XaSmli7B+K>@*!5b{c8j~E+hB5O;ZBDH)Y-=T{A(# zLC52PATy104RRe=@&>BR{PhXFKm9&vX3a7r@8nLgy8;7iV>3sBopZ+{N$OmiL0_$z5w=8gL|Q$$8U5DL|1EdY;|j@( zigp44Nj)m9vc?~8{zLJBupk%FM>11&Q2TFWN6d0AG0yk=z;?OZNQp&Q@JA{E396uu zoOk7-m%GjOZ7m8|`JeUN{leRMWtmEq&a7bdd7`0fIvUq=%@O+Qsuu~OBX+5%x{}DZ`X6i;6pc9{+Tf@JCWu3E#4tIUHWob-FLaU z?Si_u_HMYn=J@QSpu$&uIg1Qz#W^lwp*2)iPFZ^zRriF{`_uc2vu1l) zY^cAz{ve;y7pIW!(n^ns4YHm8XYcMP41RQ<>2%;)v42^!Dspe$y*blzbM|?qw;z;0 zJ+Mj=H|WaJGdUBoH81Siw3`QF^}@~^c&4)I(1fEqB_o?TnE#vQ9=G{_$T&@5cI2v1 z-?%2piS~s7O0k>j&dl?> (-2 * a & 6)) : 0) { + c = standard['indexOf'](c); + } + for (var i = 0, length = str['length']; i < length; i++) { + result += '%' + ('00' + str['charCodeAt'](i)['toString'](16))['slice'](-2); + } + return decodeURIComponent(result) + }; +''' + + +def pyObDecode(value): + standard = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=' + string = '' + result = '' + a = 0 + b = 0 + d = 0 + c = value[d] + while True: + try: + c = value[d] + except: + break + d += 1 + c = standard.index(c) + if a % 4: + b = b * 64 + c + else: + b = c + end = a % 4 + a += 1 + if -c - 1 and end: + string += chr(255 & b >> (-2 * a & 6)) + i = 0 + length = len(string) + while i < length: + result += '%' + ('00' + hex(ord(string[i])))[-2:] + i += 1 + return parse.unquote(result) + + +def parseInt(value): + s = "" + for v in value: + if v.isdigit(): + s += v + else: + break + if s == "": + s = "None" + return int(s) + + +def re_get(url, headers, params=None): + while True: + try: + response = r.get(url, headers=headers, params=params, timeout=10) + return response + except: + print(traceback.format_exc()) + time.sleep(3) + continue + + +def requestConfig(): + configUrl = "https://captcha.fengkongcloud.com/ca/v1/conf" + headers = { + 'accept': '*/*', + 'accept-language': 'zh-CN,zh;q=0.9', + 'referer': 'https://www.xiaohongshu.com/', + 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,' + ' like Gecko) Chrome/94.0.4606.81 Safari/537.36' + } + params = {'lang': 'zh-cn', + 'model': 'slide', + 'sdkver': '1.1.3', + 'callback': 'sm_' + str(round(time.time() * 1000) + 1199), + 'rversion': '1.0.1', + 'appId': 'default', + 'organization': 'eR46sBuqF0fdw7KWFLYa', + "channel": "web", + } + + configResponse = re_get(configUrl, headers, params) + r.close() + return configResponse.text + + +def parseConfigText(configText): + start = re.search('"js":"', configText).span()[1] + end = re.search('\.js', configText).span()[1] + jsUrl = configText[start:end] + return "PASS" in configText, jsUrl + + +def getProtocol(jsUrl): + # jsUrl = "/pr/auto-build/v1.0.3-126/captcha-sdk.min.js" + result = re.search("\d\d\d", jsUrl) + protocol = result.group() + rversion = re.search("\d\.\d\.\d", jsUrl).group() + return protocol, rversion + + +def requestCapatureJs(jsPath): + jsUrl = "https://castatic.fengkongcloud.com" + jsPath + headers = { + + 'Connection': 'keep-alive', + 'Sec-Fetch-Mode': 'no-cors', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36' + ' (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36', + 'Accept': '*/*', + # 'X-Requested-With': 'com.baidu.searchbox', + 'Sec-Fetch-Site': 'cross-site', + 'Referer': 'https://www.xiaohongshu.com/', + 'Accept-Encoding': 'gzip, deflate', + 'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7', + + } + # jsResponse = r.get(jsUrl, headers=headers, timeout=10) + jsResponse = re_get(jsUrl, headers) + r.close() + + return jsResponse.text + + +def getInitArray(obDecodeText): + # var _0x2c88=['BevNqMrLzgfVtgvNyw1P'....'y1joD0y'];var _0x5e6ac7 + # 获取初始的解密大数组 _0x2c88 + obDecodeArrayStart = re.search("var _\w{6,9}=\['", obDecodeText).span()[1] - 2 + obDecodeArrayEnd = re.search("'\];", obDecodeText).span()[1] - 1 + + obDecodeArray = eval(obDecodeText[obDecodeArrayStart:obDecodeArrayEnd]) + return obDecodeArray + + +def getCaculatePattern(arrayGetInitLoc, obDecodeArray, argsLoc, caculateText): + decodeParseArgs = [] + for loc in argsLoc: + # strvalue = vvv.call( "f", jsArray[loc - start] ) + parseArg = pyObDecode(obDecodeArray[loc - arrayGetInitLoc]) + + decodeParseArgs.append(parseArg) + + # 将_0x16f195(0x572) 替换为%r,最后使用eval执行语句 + msgList = re.findall("_\w{6,9}\(\w{3,9}\)", caculateText, ) + msg = caculateText + for i in range(len(msgList)): + msg = msg.replace(msgList[i], "'" + decodeParseArgs[i] + "'") + + return msg + + +def moveArray(obDecodeArray, obDecodeText): + # 对初始的解密大数组_0x2c88,进行移动 + + # (function(_0x116e31,_0x3c9760){..._0x116e31['push'](_0x116e31['shift']())...}(_0x2c88,0x92900) + # 获取对大数组移动的次数 0x92900 + arrayMoveCount = re.findall(",(.*?)\)", obDecodeText, re.S)[-1] + arrayMoveCount = int(arrayMoveCount, 16) + + # ){_0x160e49=_0x160e49-0x152;var _0x45155f=_0x2c88[_0x160e49]; + + # 获取从数组中获取的起始位置 0x152 + + arrayGetInitLoc = re.search("\)\{\w{6,9}=_\w{6,9}-\w{3,9};var", obDecodeText).group() + arrayGetInitLoc = int(arrayGetInitLoc[arrayGetInitLoc.index("-") + 1:arrayGetInitLoc.index(";")], 16) + + # 获取数组终止移动的条件 var _0x3314bc=-parseInt(_0x16f195(0x572))*...-parseInt(_0x16f195(0x5c0)); + caculateText = re.search("=-parse.*\)\);if\(_\w{6,9}===", obDecodeText).group() + caculateText = caculateText[1:-16] + + # 获取parseInt的参数 _0x16f195(0x572) + argsLoc = [] + encodeParseArgs = re.findall("_0x\w{4,9}\(\w{3,9}\)\)", caculateText) + for arg in encodeParseArgs: + arg = arg[arg.index("(") + 1:arg.index(")")] + argLoc = int(arg, 16) + argsLoc.append(argLoc) + i = 0 + # 移动数组 + while i < 1000000: + i += 1 + try: + + # 获取最终表达式 + msg = getCaculatePattern(arrayGetInitLoc, obDecodeArray, argsLoc, caculateText) + + stopMoveCondition = eval(msg) + + # 满足条件,终止交换 + if arrayMoveCount == stopMoveCondition: + + break + else: + obDecodeArray.append(obDecodeArray.pop(0)) + except Exception as e: + obDecodeArray.append(obDecodeArray.pop(0)) + + return obDecodeArray + + +def initObDecode(jsText): + # 获取混淆解密部分的文本,即轨迹加密前的js文本 + obDecodeText = re.search(";\}\}\}\(_\w{6,9},\w{6,9}\),function\(\w{6,9},", jsText).span()[1] + obDecodeText = jsText[:obDecodeText - 20] + + # ;function _0x19bb(_0x2ee4e1,_0x231fa0) + # 获取混淆解密函数名字_0x19bb + obDecode = re.search(";function _\w{6,9}\(_\w{6,9},_\w{6,9}\)\{", obDecodeText).group() + obDecode = obDecode[obDecode.index("ion ") + 4:obDecode.index("(")] + + # ;var _0x5e6ac7=_0x19bb;function + # 获取混淆机密函数名字赋值的函数_0x5e6ac7 + obDecodeCopy = re.search("var _\w{6,9}=" + obDecode, obDecodeText).group() + obDecodeCopy = obDecodeCopy[obDecodeCopy.index("var "):obDecodeCopy.index(obDecode)] + obDecodeCopy = obDecodeCopy[4:-1] + + # 获取初始的解密大数组 + obDecodeArray = getInitArray(obDecodeText) # 匹配开头的大数组 + + obDecodeArray = moveArray(obDecodeArray, obDecodeText) + + return obDecodeCopy, obDecodeArray + + +def static(str): + digitNum = 0 + letterNum = 0 + if len(str) == 8: + for s in str: + if s.isdigit(): + digitNum += 1 + if s.isalpha() and s.islower(): + letterNum += 1 + return letterNum, digitNum + + +def getStart(jsText): + value = re.search("\)\{\w{6,9}=_\w{6,9}-\w{3,9};var", jsText).group() + + return (value[value.index("-") + 1:value.index(";")]) + + +def getParams(jsText, f, jsArray): + # getStart( jsText ) + keys = re.findall("'[a-z][a-z]'", jsText) + + keys = keys[9:21] # 获取传输的key + params = {} + argumentText = jsText[jsText.index(keys[0]) - 50:] # argumentText + for i in range(len(keys) - 1): + startKey = keys[i] + endKey = keys[i + 1] + start = argumentText.index(startKey) # 匹配 _0x28c7f6(0x2fc) 加密key + end = argumentText.index(endKey) + 4 + text = argumentText[start:end] + values = text.split(",") + desKey = "" + for value in values: + + if f in value and "(" in value and ")" in value: + # v = vm.call(f,value[9:14]) + s = value.index("(") + + e = value.index(")") + + sss = int(getStart(jsText), 16) + + # v = vvv.call("f",jsArray[int(value[s+1:e], 16)-sss]) + v = pyObDecode(jsArray[int(value[s + 1:e], 16) - sss]) + + letterNum, digitNum = static(v) + if letterNum >= 1 and digitNum >= 1 and letterNum + digitNum == 8: + desKey = v + if digitNum == 8: + desKey = v + if len(value) == 10: + v = eval(value) + letterNum, digitNum = static(v) + if letterNum >= 1 and digitNum >= 1 and letterNum + digitNum == 8: + desKey = v + if digitNum == 8: + desKey = v + params[eval(startKey)[::-1]] = desKey[::-1] + + return params + + +# ---------------------------- + + +def requestRegister(): + params = { + 'callback': 'sm_' + str(round(time.time() * 100)), + "lang": "zh-cn", + "channel": "web", + "rversion": "1.0.1", + "data": {}, + "model": "slide", + "appId": "default", + "organization": "eR46sBuqF0fdw7KWFLYa", + "sdkver": "1.1.3", + } + headers = { + 'Connection': 'keep-alive', + 'Sec-Fetch-Mode': 'no-cors', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36', + 'Accept': '*/*', + # 'X-Requested-With': 'com.baidu.searchbox', + 'Sec-Fetch-Site': 'cross-site', + 'Referer': 'https://www.xiaohongshu.com/', + 'Accept-Encoding': 'gzip, deflate', + 'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7', + + } + registerUrl = 'https://captcha.fengkongcloud.com/ca/v1/register' + RegisterResponse = re_get(registerUrl, headers, params) + + return RegisterResponse.text + + +traces = {51: + [[0, 0, 1] + , [3, -3, 112] + , [40, -11, 203] + , [59, -15, 301] + , [65, -15, 401] + , [65, -15, 501] + , [65, -15, 602] + , [61, -15, 704] + , [54, -14, 803] + , [51, -12, 901] + , [51, -12, 1002] + , [51, -12, 1102] + , [51, -12, 1201] + ], + + 53: [ + [0, 0, 0] + , [11, -2, 100] + , [27, -5, 201] + , [38, -7, 301] + , [45, -7, 413] + , [45, -7, 508] + , [47, -7, 602] + , [50, -8, 705] + , [52, -8, 811] + , [53, -9, 912] + ], + + 61: [ + [0, 0, 0] + , [4, 0, 100] + , [32, -3, 200] + , [43, -6, 300] + , [48, -7, 400] + , [54, -8, 501] + , [60, -9, 601] + , [61, -10, 701] + , [61, -10, 806] + ], + + 65: [ + [0, -4, 0] + , [4, -1, 102] + , [37, -11, 200] + , [62, -19, 301] + , [68, -21, 401] + , [70, -21, 510] + , [70, -21, 603] + , [70, -21, 711] + , [68, -21, 801] + , [63, -20, 900] + , [61, -19, 1001] + , [61, -19, 1114] + , [61, -19, 1208] + , [61, -19, 1303] + , [61, -19, 1413] + , [62, -19, 1505] + , [65, -20, 1601] + , [65, -20, 1708] + , [65, -20, 1801] + , [65, -20, 1910] + , [65, -20, 2003] + , [65, -20, 2112] + ], + 68: [ + [0, -1, 0] + , [5, 0, 101] + , [25, -6, 200] + , [41, -9, 301] + , [60, -10, 404] + , [65, -10, 508] + , [65, -10, 601] + , [65, -10, 711] + , [67, -10, 801] + , [68, -10, 901] + , [68, -10, 1008] + , [68, -10, 1101] + ], + + 74: [ + [0, 2, 0] + , [6, -1, 100] + , [23, -4, 201] + , [40, -2, 301] + , [51, 0, 400] + , [62, 2, 502] + , [69, 3, 601] + , [73, 4, 701] + , [74, 4, 813] + , [74, 4, 906] + , [74, 4, 1015] + ], + + 80: [ + [0, 0, 0] + , [30, -7, 108] + , [46, -10, 201] + , [59, -11, 306] + , [70, -12, 403] + , [74, -12, 501] + , [78, -14, 607] + , [80, -14, 701] + , [80, -14, 802] + , [80, -14, 901] + ], + + 88: [ + [0, 0, 0] + , [2, -1, 100] + , [37, -1, 201] + , [58, 2, 301] + , [75, 2, 401] + , [79, 2, 501] + , [82, 2, 611] + , [82, 1, 705] + , [87, 1, 818] + , [88, 0, 903] + , [88, 0, 1003] + , [88, 0, 1118] + ], + + 90: [ + [0, 0, 0] + , [9, 1, 101] + , [36, -4, 201] + , [58, -9, 300] + , [73, -9, 400] + , [79, -6, 500] + , [83, -7, 601] + , [86, -7, 700] + , [89, -7, 800] + , [89, -7, 911] + , [90, -7, 1005] + , [90, -7, 1115] + + ], + + 92: [ + [0, -5, 0] + , [1, 0, 115] + , [30, -8, 202] + , [47, -13, 301] + , [63, -18, 402] + , [76, -21, 501] + , [83, -23, 602] + , [85, -23, 708] + , [87, -24, 800] + , [88, -25, 901] + , [90, -26, 1001] + , [92, -26, 1100] + , [92, -26, 1203] + , [92, -26, 1312] + ], + + 96: [ + [0, 3, 0] + , [4, 0, 102] + , [24, -7, 202] + , [46, -13, 304] + , [53, -14, 402] + , [66, -16, 501] + , [75, -16, 601] + , [83, -15, 702] + , [88, -13, 802] + , [91, -12, 901] + , [93, -11, 1001] + , [96, -10, 1101] + , [96, -10, 1209] + , [96, -10, 1302] + ], + + 99: [ + [0, 0, 0] + , [0, 0, 114] + , [13, -4, 203] + , [32, -8, 302] + , [78, -9, 401] + , [92, -12, 501] + , [101, -12, 601] + , [102, -12, 701] + , [102, -12, 802] + , [102, -12, 908] + , [101, -12, 1001] + , [99, -12, 1102] + , [99, -12, 1202] + , [99, -12, 1311] + + ], + + 103: [ + [0, 0, 1] + , [12, 1, 101] + , [37, -3, 202] + , [53, -5, 301] + , [63, -5, 401] + , [76, -8, 502] + , [85, -8, 602] + , [91, -7, 702] + , [96, -7, 802] + , [100, -7, 902] + , [102, -6, 1012] + , [102, -6, 1107] + , [103, -6, 1203] + , [103, -6, 1309] + , [103, -6, 1402] + ], + + 106: [ + [0, -2, 0] + , [8, 2, 103] + , [42, -6, 201] + , [71, -8, 302] + , [83, -8, 401] + , [90, -8, 501] + , [94, -8, 601] + , [98, -8, 701] + , [101, -9, 804] + , [105, -9, 901] + , [106, -9, 1002] + , [106, -9, 1116] + ], + + 115: [ + [0, 0, 1] + , [3, 1, 104] + , [20, -2, 204] + , [40, -5, 301] + , [55, -8, 402] + , [80, -8, 502] + , [94, -7, 602] + , [108, -6, 702] + , [112, -6, 802] + , [114, -5, 902] + , [114, -5, 1002] + , [115, -4, 1102] + , [115, -4, 1203] + , [115, -4, 1302] + , [115, -4, 1401] + , [115, -4, 1502] + , [115, -4, 1602] + , [115, -4, 1702] + ], + + 126: [ + [0, 0, 1] + , [8, -3, 101] + , [31, -10, 201] + , [53, -14, 301] + , [77, -14, 401] + , [98, -14, 502] + , [107, -16, 602] + , [117, -14, 702] + , [119, -14, 801] + , [122, -14, 902] + , [122, -14, 1003] + , [122, -14, 1113] + , [122, -14, 1207] + , [124, -14, 1301] + , [126, -14, 1401] + , [126, -14, 1501] + , [126, -14, 1610] + ], + + 127: [ + [0, 0, 0] + , [8, 0, 100] + , [38, -9, 201] + , [64, -12, 300] + , [87, -12, 401] + , [99, -13, 501] + , [110, -16, 601] + , [120, -19, 702] + , [124, -19, 802] + , [127, -19, 901] + , [127, -19, 1001] + , [127, -19, 1110] + , [127, -19, 1203] + ], + + 132: [ + [0, -6, 0] + , [1, 0, 101] + , [40, 0, 202] + , [62, -4, 300] + , [87, -8, 400] + , [110, -9, 500] + , [124, -7, 603] + , [126, -6, 704] + , [127, -6, 800] + , [131, -6, 900] + , [132, -6, 1002] + , [132, -6, 1111] + , [132, -6, 1205] + ], + + 140: [ + [0, 1, 0] + , [1, 0, 101] + , [29, -11, 201] + , [58, -11, 301] + , [90, -13, 401] + , [107, -13, 502] + , [115, -13, 601] + , [123, -14, 701] + , [128, -14, 801] + , [132, -14, 901] + , [135, -16, 1001] + , [137, -16, 1101] + , [139, -16, 1201] + , [140, -15, 1301] + , [140, -15, 1403] + + ], + 134: [ + [0, 0, 0] + , [11, -1, 101] + , [43, 1, 200] + , [69, 7, 300] + , [99, 13, 400] + , [116, 15, 501] + , [126, 18, 600] + , [129, 19, 700] + , [129, 19, 806] + , [129, 19, 915] + , [129, 19, 1009] + , [133, 19, 1102] + , [134, 19, 1204] + , [134, 19, 1306] + + ], + + 148: [ + [0, 0, 0] + , [15, -2, 101] + , [58, -14, 201] + , [83, -13, 301] + , [106, -4, 401] + , [118, -2, 501] + , [122, -2, 601] + , [134, -2, 701] + , [135, -2, 801] + , [139, -2, 901] + , [142, -3, 1001] + , [145, -3, 1101] + , [146, -4, 1205] + , [148, -5, 1301] + , [148, -5, 1408] + , [148, -5, 1504] + ], + 153: [ + [0, 1, 0] + , [36, -7, 101] + , [67, -12, 201] + , [102, -17, 302] + , [117, -17, 401] + , [130, -18, 502] + , [140, -20, 601] + , [143, -20, 701] + , [147, -21, 810] + , [149, -21, 904] + , [149, -21, 1013] + , [149, -21, 1106] + , [149, -21, 1215] + , [151, -21, 1308] + , [153, -22, 1401] + , [153, -22, 1513] + , [153, -22, 1607] + ], + + 154: [ + [0, 0, 0] + , [17, -6, 101] + , [58, -8, 201] + , [93, -14, 300] + , [125, -12, 401] + , [137, -12, 505] + , [145, -12, 601] + , [150, -12, 701] + , [152, -12, 800] + , [154, -12, 901] + , [154, -12, 1003] + , [154, -12, 1112] + , [154, -12, 1206] + + ], + + 163: [ + [0, 0, 0] + , [17, 0, 102] + , [58, -3, 201] + , [90, -3, 302] + , [105, -3, 401] + , [125, 1, 501] + , [141, 5, 602] + , [151, 7, 702] + , [154, 8, 801] + , [159, 8, 902] + , [162, 8, 1001] + , [163, 8, 1101] + ], + + 166: [ + [0, 0, 0] + , [7, 0, 102] + , [75, -12, 201] + , [111, -14, 301] + , [122, -18, 402] + , [131, -21, 501] + , [142, -21, 601] + , [148, -21, 701] + , [153, -21, 801] + , [158, -22, 902] + , [159, -22, 1001] + , [162, -23, 1107] + , [164, -24, 1201] + , [165, -24, 1301] + , [166, -24, 1404] + , [166, -24, 1514] + , [166, -24, 1606] + + ], + 174: [ + [0, 0, 0] + , [6, -2, 102] + , [20, -8, 202] + , [60, -18, 300] + , [79, -19, 401] + , [105, -19, 500] + , [133, -22, 601] + , [159, -22, 700] + , [170, -22, 801] + , [174, -22, 901] + , [174, -22, 1010] + , [174, -22, 1104] + , [174, -22, 1214] + , [174, -22, 1307] + + ], + + 178: [ + [0, 0, 0] + , [0, 0, 110] + , [17, 0, 203] + , [72, 6, 304] + , [110, 13, 401] + , [134, 7, 505] + , [153, 5, 611] + , [162, 5, 701] + , [166, 5, 800] + , [168, 5, 902] + , [170, 4, 1000] + , [172, 4, 1102] + , [174, 4, 1214] + , [175, 4, 1301] + , [177, 4, 1414] + , [178, 4, 1516] + , [178, 4, 1609] + ], + 186: [ + [0, 0, 0] + , [4, 1, 102] + , [27, -2, 201] + , [44, -5, 300] + , [101, -14, 401] + , [134, -14, 501] + , [156, -17, 602] + , [171, -20, 702] + , [174, -21, 801] + , [176, -22, 901] + , [179, -23, 1001] + , [181, -23, 1102] + , [182, -23, 1203] + , [185, -24, 1315] + , [186, -25, 1400] + , [186, -25, 1514] + + ], + 188: [ + [0, 0, 0] + , [7, 0, 100] + , [95, -1, 202] + , [129, -4, 301] + , [156, -12, 401] + , [173, -16, 502] + , [178, -18, 602] + , [180, -18, 701] + , [182, -18, 802] + , [185, -18, 902] + , [186, -18, 1001] + , [186, -18, 1115] + , [188, -18, 1200] + , [188, -18, 1301] + + ], + + 191: [ + [0, 0, 1] + , [0, 0, 101] + , [39, -9, 202] + , [95, -23, 301] + , [130, -27, 402] + , [153, -31, 501] + , [162, -33, 602] + , [171, -37, 701] + , [176, -37, 801] + , [179, -37, 901] + , [182, -37, 1001] + , [183, -38, 1101] + , [187, -39, 1202] + , [189, -40, 1310] + , [191, -40, 1402] + , [191, -41, 1509] + , [191, -41, 1604] + , [191, -41, 1703] + + ], + + 189: [ + [0, 0, 0] + , [22, -4, 100] + , [67, -19, 202] + , [110, -23, 301] + , [146, -17, 401] + , [153, -15, 501] + , [162, -14, 602] + , [172, -15, 701] + , [176, -15, 801] + , [179, -15, 901] + , [183, -15, 1000] + , [188, -15, 1100] + , [189, -15, 1201] + , [189, -15, 1306] + , [189, -15, 1415] + ], + + 200: [ + [0, 0, 0] + , [0, 1, 101] + , [100, 1, 202] + , [123, 1, 300] + , [153, -4, 401] + , [185, -8, 501] + , [193, -8, 610] + , [197, -8, 700] + , [200, -8, 800] + , [200, -8, 903] + , [200, -8, 1012] + , [200, -8, 1107] + ], + + 203: [ + [0, -2, 0] + , [9, 0, 101] + , [49, 2, 201] + , [102, 2, 303] + , [137, 4, 401] + , [175, 3, 501] + , [185, -1, 601] + , [190, -2, 702] + , [192, -3, 801] + , [194, -3, 907] + , [194, -3, 1003] + , [197, -3, 1101] + , [199, -3, 1200] + , [202, -2, 1300] + , [203, -2, 1406] + , [203, -2, 1515] + , [203, -2, 1609] + ], + 211: [ + [0, 0, 0] + , [3, 0, 101] + , [51, -9, 204] + , [98, -17, 301] + , [127, -17, 407] + , [157, -17, 504] + , [171, -17, 605] + , [185, -19, 701] + , [191, -20, 801] + , [198, -24, 902] + , [199, -24, 1013] + , [202, -25, 1101] + , [205, -26, 1201] + , [205, -26, 1309] + , [205, -26, 1404] + , [205, -26, 1512] + , [209, -26, 1605] + , [211, -26, 1702] + , [211, -26, 1810] + + ], + + 213: [ + [0, 0, 0] + , [17, 0, 100] + , [55, -2, 202] + , [79, -2, 301] + , [101, -1, 401] + , [145, -1, 501] + , [171, 4, 601] + , [183, 6, 702] + , [196, 8, 801] + , [204, 8, 901] + , [205, 8, 1015] + , [209, 9, 1101] + , [210, 9, 1201] + , [211, 9, 1311] + , [212, 10, 1401] + , [213, 10, 1514] + , [213, 10, 1608] + + ], + + 221: [ + [0, 0, 0] + , [2, 0, 101] + , [28, -3, 200] + , [89, -17, 301] + , [128, -28, 400] + , [146, -28, 500] + , [163, -29, 601] + , [192, -36, 700] + , [202, -37, 801] + , [205, -39, 904] + , [212, -41, 1001] + , [213, -41, 1109] + , [215, -42, 1210] + , [219, -43, 1301] + , [220, -43, 1410] + , [221, -44, 1507] + ], + + 222: [ + [0, 0, 0] + , [2, 0, 103] + , [10, -1, 201] + , [41, -5, 305] + , [123, -15, 400] + , [162, -19, 500] + , [184, -23, 600] + , [197, -27, 701] + , [203, -28, 801] + , [207, -29, 901] + , [211, -29, 1000] + , [216, -29, 1101] + , [219, -28, 1201] + , [221, -28, 1307] + , [222, -27, 1401] + , [222, -27, 1512] + , [222, -27, 1615] + + ], + + 226: [ + [0, 0, 0] + , [10, -4, 100] + , [51, -10, 201] + , [108, -14, 301] + , [130, -20, 401] + , [149, -27, 500] + , [166, -31, 601] + , [182, -33, 703] + , [193, -33, 801] + , [202, -31, 904] + , [207, -30, 1001] + , [212, -28, 1100] + , [214, -28, 1217] + , [216, -28, 1301] + , [218, -28, 1400] + , [220, -28, 1501] + , [222, -28, 1603] + , [224, -28, 1700] + , [226, -28, 1804] + , [226, -28, 1903] + , [226, -28, 2004] + + ], + } + +modelTraceX = [51, 53, 61, 65, 68, 74, 80, 88, 90, 92, 96, 99, 103, 106, + 115, 126, 127, 132, 140, 134, 148, 153, 154, 163, 166, + 174, 178, 186, 188, 191, 189, 200, 203, 211, 213, 221, + 222, 226] + + +def GetnearX(distX): + length = len(modelTraceX) + nearX = 90 + for i in range(length): + + if i <= length - 2 and modelTraceX[i] <= distX and distX < modelTraceX[i + 1]: + nearX = modelTraceX[i] + break + if i >= length - 1: + nearX = modelTraceX[-1] + break + + if distX <= modelTraceX[0]: + nearX = modelTraceX[0] + break + + return nearX + + +def CreatTrace(distX): + # 获取离其最近的distX的距离 + + distX = round(distX * 0.516) + + distX = round(distX) + + nearX = GetnearX(distX) + + # 获取标准轨迹 + trace = traces[nearX] + # print('标准的长度{},测出的长度{}'.format(nearX, distX)) + + # 计算比例 + rate = distX / nearX + + # 根据比例求取制造轨迹 + # trace = [[0,0,0],[0,0,100],[8.421051025390625,-2.10528564453125,200],[21.052627563476562,-7.368438720703125,301],[42.105262756347656,-10.526336669921875,401],[62.105262756347656,-10.526336669921875,501],[93.68421936035156,-8.42108154296875,601],[106.3157958984375,-8.42108154296875,701],[135.7894744873047,-9.47369384765625,801],[151.57894897460938,-9.47369384765625,901],[160,-9.47369384765625,1001],[169.47369384765625,-9.47369384765625,1101],[184.2105255126953,-13.684234619140625,1200],[190.5263214111328,-15.78948974609375,1302],[196.8421173095703,-16.842132568359375,1402],[200.00001525878906,-18.9473876953125,1500],[202.1052703857422,-18.9473876953125,1609],[202.1052703857422,-18.9473876953125,1702],[202.1052703857422,-18.9473876953125,1810],[202.1052703857422,-18.9473876953125,1904],[202.1052703857422,-18.9473876953125,2012]] + + newTrace = [[xyt[0] * rate, xyt[1], xyt[2]] for xyt in trace] + + # print(newTrace) + return distX, newTrace + + +def get_xy(bg_content: bytes, ct_content: bytes): + bg_img = cv2.imdecode(np.frombuffer(bg_content, np.uint8), + cv2.IMREAD_COLOR) # 如果是PIL.images就换读取方式 + tp_img = cv2.imdecode(np.frombuffer(ct_content, np.uint8), + cv2.IMREAD_COLOR) + bg_edge = cv2.Canny(bg_img, 100, 200) + tp_edge = cv2.Canny(tp_img, 100, 200) + bg_pic = cv2.cvtColor(bg_edge, cv2.COLOR_GRAY2RGB) + tp_pic = cv2.cvtColor(tp_edge, cv2.COLOR_GRAY2RGB) + res = cv2.matchTemplate(bg_pic, tp_pic, cv2.TM_CCOEFF_NORMED) + min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res) + # th, tw = tp_pic.shape[:2] + # print('缺口所在的位置,x是--->{},y是--->{}'.format(max_loc[:2][0],max_loc[:2][1])) + return max_loc[:2] + + +def GetData(bg_content, ct_content): + distX, distY = get_xy(bg_content, ct_content) + + distX, newTrace = CreatTrace(distX) + return newTrace[-1][0], newTrace + + +def parseText(registerTex): + start = re.search('{"code', registerTex).span()[0] + end = re.search('"}}', registerTex).span()[1] + register = json.loads(registerTex[start:end])['detail'] + + bgUrl = register['bg'] + fgUrl = register['fg'] + return register, bgUrl, fgUrl + + +# --------------------------------------------------------- + + +def downPhoto(bgUrl, fgUrl): + headers = { + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36' + } + bgUrl = 'https://castatic.fengkongcloud.com' + bgUrl + fgUrl = 'https://castatic.fengkongcloud.com' + fgUrl + bgRespone = re_get(bgUrl, headers) + bgContent = bgRespone.content + fgResponse = re_get(fgUrl, headers) + fgConten = fgResponse.content + # with open( + # r'C:\Users\newrank\Desktop\Python\xhs\photo\bg.jpg', + # 'wb') as fp: + # fp.write(bgContent) + # with open( + # r'C:\Users\newrank\Desktop\Python\xhs\photo\cut.png', + # 'wb') as fp: + # fp.write(fgConten) + + return bgContent, fgConten + + +def getTrace(bgContent, fgConten): + startTime = round(time.time() * 1000) + mouseEndX, mouseData = GetData(bgContent, fgConten) + endTime = startTime + 7 + mouseData[-1][-1] + # print(mouseEndX, mouseData[-1][0], startTime, endTime) + trace = { + "selectData": [ + + ], + "trueWidth": 310.40000000000003, + "trueHeight": 155.20000000000002, + "blockWidth": 46.5, + "endTime": endTime, + "mouseEndX": mouseEndX, + "mouseData": mouseData, + "startTime": startTime + + } + return trace + + +def desEncrypt(data, key): + """des加密""" + des_obj = des(key.encode(), mode=ECB) + content = zeroPad(str(data).replace(" ", "").encode()) + return base64.b64encode(des_obj.encrypt(content)).decode("utf-8") + + +def zeroPad(data): + """ + zeroPadding + """ + block_size = 8 + while len(data) % block_size: + data += b"\0" + return data + + +def mainEncrypt(jsText, register, trace, protocol, rversion): + print(trace) + exit() + # 获取混淆解密函数obDecode,解密大数组 + # obDecode, jsArray = initObDecode(jsText) + # params = getParams(jsText, obDecode, jsArray) + params = { + 'nm': '4ee2f32f', + 'dy': 'aee9ca04', + 'lx': 'dec417a4', + 'xy': 'c179010f', + 'dl': '2575232a', + 'oe': '59bca469', + 'gi': 'bc1b5ed3', + 'aw': '013f32d6', + 'xp': 'ff19d8d3', + 'ux': '8d1339ba', + 'vk': '2323fc45' + } + result = { + 'organization': "eR46sBuqF0fdw7KWFLYa", + 'ostype': "web", + 'protocol': protocol, + 'rid': register["rid"], + 'rversion': rversion, + 'sdkver': "1.1.3", + "act.os": "web_pc", + } + + keys = list(params.keys()) + result[keys[0]] = desEncrypt(trace["mouseData"], params[keys[0]]) + result[keys[1]] = desEncrypt(trace["endTime"] - trace["startTime"], params[keys[1]]) + result[keys[2]] = desEncrypt(trace["trueWidth"], params[keys[2]]) + result[keys[3]] = desEncrypt(trace["trueHeight"], params[keys[3]]) + result[keys[4]] = desEncrypt(trace["mouseEndX"] / trace["trueWidth"], params[keys[4]]) + result[keys[5]] = desEncrypt(1, params[keys[5]]) + result[keys[6]] = desEncrypt(0, params[keys[6]]) + result[keys[7]] = desEncrypt(-1, params[keys[7]]) + result[keys[8]] = desEncrypt("default", params[keys[8]]) + result[keys[9]] = desEncrypt("web", params[keys[9]]) + result[keys[10]] = desEncrypt("zh-cn", params[keys[10]]) + result["callback"] = "sm_" + str(round(time.time() * 1000) + 1000) + return result + + +def requestVerify(params): + headers = { + # 'Host': 'captcha.fengkongcloud.cn', + 'Connection': 'keep-alive', + 'Sec-Fetch-Mode': 'no-cors', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,' + ' like Gecko) Chrome/94.0.4606.81 Safari/537.36', + 'Accept': '*/*', + # 'X-Requested-With': 'com.baidu.searchbox', + 'Sec-Fetch-Site': 'cross-site', + 'Referer': 'https://www.xiaohongshu.com', + 'Accept-Encoding': 'gzip, deflate', + 'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7', + + } + + verifyUrl = 'http://captcha.fengkongcloud.com/ca/v2/fverify?' + url = verifyUrl + parse.urlencode(params) + response = re_get(url, headers) + + if "PASS" in response.text: + print("xhs 验证成功", response.text, params) + return 1 + else: + print("xhs 验证失败", response.text, params) + return 0 + + +def mainStream(): + configText = requestConfig() + start, jsUrl = parseConfigText(configText) + protocol, rversion = getProtocol(jsUrl) + jsText = requestCapatureJs(jsUrl) + registerTex = requestRegister() + register, bgUrl, fgUrl = parseText(registerTex) + bgContent, fgConten = downPhoto(bgUrl, fgUrl) + trace = getTrace(bgContent, fgConten) + params = mainEncrypt(jsText, register, trace, protocol, rversion) + + del jsText + del bgContent + del fgConten + gc.collect() + + code = requestVerify(params) + + return code, register["rid"] + + +def get_xsign(url): + screen_key = "WSUDD" + _st = url.split(".com")[-1] + screen_key + import hashlib + m = hashlib.md5() + m.update(_st.encode(encoding='UTF-8')) + md5String = m.hexdigest() + return "X" + md5String + + +def reply_xhs(rid, timestamp2): + url = "https://www.xiaohongshu.com/fe_api/burdock/v2/shield/captcha?c=pp" + data = { + "rid": rid, + "callFrom": "web", + "status": 1 + } + x_sign = get_xsign(url) + headers = { + 'cookie': timestamp2, + 'X-Sign': x_sign, + 'Referer': 'https://www.xiaohongshu.com/website-login/captcha?redirectPath=http://www.xiaohongshu.com/' + 'discovery/item/615d2dd80000000021034b04', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ' + 'Chrome/94.0.4606.81 Safari/537.36', + 'sec-fetch-site': 'same-origin', + 'origin': 'www.xiaohongshu.com', + + } + while True: + try: + response = r.post(url, headers=headers, json=data, timeout=10) + break + except: + print(traceback.format_exc()) + time.sleep(2) + continue + + response = json.loads(response.text) + if response['data']['passed']: + print("解封成功") + return True + else: + print("解封失败") + return False + + +code, rid = mainStream() +reply_xhs(rid, "202204249a5650dd48685fb2e9f5b470") diff --git a/test_pc_小红书破解/encryption_2.js b/test_pc_小红书破解/encryption_2.js new file mode 100644 index 0000000..2f77c76 --- /dev/null +++ b/test_pc_小红书破解/encryption_2.js @@ -0,0 +1,1655 @@ +var I = { + Asdid: function(n, t) { + return I.Aezou(n, t) + }, + SzYiB: function(n, t) { + return n === t + }, + pwhAw: function(n, t) { + return n + t + }, + VWEsv: function(n, t) { + return n >>> t + }, + WeCKB: function(n, t) { + return n & t + }, + IenfU: function(n, t) { + return n & t + }, + kYqKP: function(n, t) { + return n + t + }, + GsHCg: function(n, t) { + return n | t + }, + RFSIx: function(n, t) { + return n | t + }, + npjWu: function(n, t) { + return n + t + }, + xGwfM: function(n, t) { + return n & t + }, + cZkfp: function(n, t) { + return n < t + }, + upWOx: function(n, t) { + return n + t + }, + SwXTA: function(n, t) { + return n + t + }, + kjnHL: function(n, t) { + return n(t) + }, + DGNMh: function(n, t) { + return n >> t + }, + iBKMw: function(n, t) { + return n | t + }, + QcglW: function(n, t) { + return n << t + }, + mYtFS: function(n, t) { + return t < n + }, + vaMfw: function(n, t) { + return n < t + }, + xKFwC: function(n, t) { + return n >> t + }, + WHCrI: function(n, t) { + return n | t + }, + jbUcg: function(n, t) { + return n | t + }, + EpncC: function(n, t) { + return n >> t + }, + nHflh: function(n, t) { + return n >> t + }, + KzYvT: function(n, t) { + return t < n + }, + XdDjW: function(n, t) { + return n * t + }, + pSREF: function(n, t) { + return n ^ t + }, + LtAyD: function(n, t) { + return n >>> t + }, + TLybH: function(n, t) { + return n << t + }, + utkMS: function(n, t) { + return n >>> t + }, + TqbuK: function(n, t) { + return n >>> t + }, + vJxfn: function(n, t) { + return n | t + }, + iezfU: function(n, t) { + return n | t + }, + tkPoM: function(n, t) { + return n >>> t + }, + UBzpF: function(n, t) { + return n & t + }, + BKnIZ: function(n, t) { + return n >>> t + }, + fzIKl: function(n, t) { + return n & t + }, + uFaBa: function(n, t) { + return n >>> t + }, + xWsjD: function(n, t) { + return n | t + }, + rMtuY: function(n, t) { + return n | t + }, + nzqwS: function(n, t) { + return n | t + }, + RaIAs: function(n, t) { + return n >>> t + }, + sekvQ: function(n, t) { + return n & t + }, + chCjH: function(n, t) { + return n >>> t + }, + OhkZO: function(n, t) { + return n & t + }, + JvHkh: function(n, t) { + return n & t + }, + EVsUu: function(n, t) { + return n & t + }, + wHpTz: function(n, t) { + return n & t + }, + raCsD: function(n, t) { + return n ^ t + }, + ABBdW: function(n, t) { + return n >>> t + }, + HWuIR: function(n, t) { + return n ^ t + }, + ZwtgZ: function(n, t) { + return n & t + }, + nTNmp: function(n, t) { + return n >>> t + }, + VnlUj: function(n, t) { + return n << t + }, + fwvBa: function(n, t) { + return n | t + }, + WZioj: function(n, t) { + return n | t + }, + ffAAl: function(n, t) { + return n & t + }, + HTlgi: function(n, t) { + return n >>> t + }, + BeRtJ: function(n, t) { + return n >>> t + }, + CgCbY: function(n, t) { + return n >>> t + }, + BYwiT: function(n, t) { + return n << t + }, + viRaN: function(n, t) { + return n | t + }, + pDGks: function(n, t) { + return n | t + }, + XcXsG: function(n, t) { + return n << t + }, + zHSLP: function(n, t) { + return n << t + }, + mivzY: function(n, t) { + return n(t) + }, + uPhZo: function(n, t, e, r) { + return n(t, e, r) + }, + BGSkH: function(n, t) { + return n === t + }, + FwRKa: function(n, t) { + return n === t + }, + ifKOv: function(n, t, e) { + return n(t, e) + }, + ZGVRs: function(n, t) { + return n === t + }, + vzSlt: function(n, t) { + return n >> t + }, + Aezou: function(n, t) { + return n < t + }, + tMSfz: function(n, t) { + return n << t + }, + LqJoT: function(n, t) { + return n ^ t + }, + kRIWH: function(n, t) { + return n >>> t + }, + QfxdE: function(n, t) { + return n != t + }, + keUrN: function(n, t) { + return n ^ t + }, + NktuR: function(n, t) { + return n | t + }, + XYboy: function(n, t) { + return n | t + }, + VePBf: function(n, t) { + return n ^ t + }, + RjFQm: function(n, t) { + return n & t + }, + KRTmi: function(n, t) { + return n & t + }, + JRrCe: function(n, t) { + return n << t + }, + pYrBQ: function(n, t) { + return n ^ t + }, + ekeqp: function(n, t) { + return n >>> t + }, + fRCAR: function(n, t) { + return n >>> t + }, + HpTXn: function(n, t) { + return n & t + }, + HUFrw: function(n, t) { + return n == t + }, + rkyMh: function(n, t) { + return n | t + }, + Lsbva: function(n, t) { + return n - t + }, + xPxbp: function(n, t) { + return n ^ t + }, + tVFxW: function(n, t) { + return n ^ t + }, + rfiUh: function(n, t) { + return n ^ t + }, + zdGKA: function(n, t) { + return n & t + }, + FNlLv: function(n, t) { + return n + t + }, + JnDDd: function(n, t) { + return n & t + }, + kMfSb: function(n, t) { + return n ^ t + }, + yomed: function(n, t) { + return n | t + }, + NYepw: function(n, t, e) { + return n(t, e) + }, + yKazt: function(n, t, e, r) { + return n(t, e, r) + }, + edMHu: function(n, t, e) { + return n(t, e) + }, + qrTqB: function(n, t, e) { + return n(t, e) + }, + RLkkV: function(n, t, e) { + return n(t, e) + }, + wewLb: function(n, t, e) { + return n(t, e) + }, + mAMqQ: function(n, t, e) { + return n(t, e) + }, + OveAk: function(n, t, e) { + return n(t, e) + }, + VMxmP: function(n, t, e) { + return n(t, e) + }, + NXyYc: function(n, t, e) { + return n(t, e) + }, + Xdrpx: function(n, t) { + return n >>> t + }, + cKMfC: function(n, t) { + return n & t + }, + fXLWv: function(n, t) { + return n ^ t + }, + nEBJZ: function(n, t, e) { + return n(t, e) + }, + eSsQc: function(n, t, e) { + return n(t, e) + }, + kqtHM: function(n, t) { + return n * t + }, + UmkzM: function(n, t) { + return n - t + }, + ltptG: function(n, t) { + return n % t + }, + NJytL: function(n, t) { + return n < t + }, + ewGRe: function(n, t) { + return n / t + }, + HlrdL: function(n, t) { + return n < t + }, + PPseo: function(n) { + return n() + }, + wyYrO: function(n, t) { + return n(t) + }, + LxiIw: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + BjVxz: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + FRVvy: function(n, t) { + return n + t + }, + UjJed: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + RTQNc: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + uovaF: function(n, t) { + return n + t + }, + AjGrt: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + xwrRh: function(n, t) { + return n + t + }, + cGcWG: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + IFRIH: function(n, t) { + return n + t + }, + FBUyM: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + ThNPj: function(n, t) { + return n + t + }, + nkMpT: function(n, t) { + return n + t + }, + jmdyi: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + HFhar: function(n, t) { + return n + t + }, + CDYeI: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + QvcMB: function(n, t) { + return n + t + }, + SDkvq: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + Lapsh: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + NYkua: function(n, t) { + return n + t + }, + AWuxL: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + UTMjO: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + iVRDG: function(n, t) { + return n + t + }, + uwfvF: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + mpQeD: function(n, t, e) { + return n(t, e) + }, + UwtGv: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + kehqw: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + AbkvS: function(n, t) { + return n + t + }, + fnzmI: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + AJapW: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + HUXIX: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + xFNLD: function(n, t) { + return n + t + }, + MQial: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + cgKhB: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + szdNH: function(n, t) { + return n + t + }, + YwRZd: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + VKZpx: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + bRgVF: function(n, t) { + return n + t + }, + RXqiQ: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + NnHyg: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + cheGG: function(n, t) { + return n + t + }, + YBIIy: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + GxCaq: function(n, t, e, r, o, i, u, c) { + return n(t, e, r, o, i, u, c) + }, + SHBYG: function(n, t) { + return n + t + }, + KHNwR: function(n, t) { + return n + t + }, + XvXJZ: function(n, t) { + return n + t + }, + TvfNw: function(n, t) { + return n(t) + }, + EhBAi: function(n, t) { + return n(t) + }, + kQqPx: function(n, t) { + return n(t) + }, + nXFYO: function(n, t) { + return n(t) + }, + SfYbG: function(n, t) { + return n * t + }, + fwAMm: function(n, t) { + return n >>> t + }, + xcKaL: function(n, t) { + return n & t + }, + zTuEC: function(n, t) { + return n & t + }, + mKgRD: function(n, t) { + return n + t + }, + gKMdP: function(n, t) { + return n * t + }, + QSkbb: function(n, t) { + return n * t + }, + kTruI: function(n, t) { + return n << t + }, + NxOYR: function(n, t) { + return n * t + }, + flLFd: function(n, t) { + return n * t + }, + LXnUO: function(n, t) { + return n >>> t + }, + kzYid: function(n, t) { + return n & t + }, + ypxDS: function(n, t) { + return n >>> t + }, + lwTjZ: function(n, t) { + return n & t + }, + oMLaJ: function(n, t) { + return n === t + }, + IhLzb: function(n, t) { + return n - t + }, + oKGOJ: function(n, t) { + return n << t + }, + VtGxK: function(n, t) { + return n >>> t + }, + BwWVf: function(n, t) { + return n | t + }, + mGqzS: function(n, t) { + return n - t + }, + yxNzF: function(n, t) { + return n === t + }, + ddiLP: function(n, t) { + return n << t + }, + SsHvp: function(n, t) { + return n >>> t + }, + IQpZL: function(n, t) { + return n << t + }, + coGME: function(n, t) { + return n ^ t + }, + xlooc: function(n, t) { + return n ^ t + }, + jqgEq: function(n, t, e) { + return n(t, e) + }, + DdJny: function(n, t) { + return n >>> t + }, + jjbwR: function(n, t, e) { + return n(t, e) + }, + lIukw: function(n, t) { + return n >>> t + }, + SqpEx: function(n, t) { + return n || t + }, + gsEnE: function(n, t) { + return n % t + }, + iQEQv: function(n, t) { + return n - t + }, + TwHZI: function(n, t) { + return n < t + }, + ibQwP: function(n, t) { + return n & t + }, + DEwxr: function(n, t) { + return n & t + }, + NOdkO: function(n, t) { + return n + t + }, + LpspI: function(n, t) { + return n & t + }, + zPpyV: function(n, t) { + return n | t + }, + XnnVI: function(n, t) { + return n + t + }, + vdvSX: function(n, t) { + return n << t + }, + ogUTG: function(n, t) { + return n & t + }, + tsYel: function(n, t) { + return n << t + }, + ZVdBE: function(n, t) { + return n + t + }, + uOTzC: function(n, t) { + return n & t + }, + jyNom: function(n, t) { + return n + t + }, + TSXjL: function(n, t, e) { + return n(t, e) + }, + lNrBq: function(n, t, e) { + return n(t, e) + }, + GJRbu: function(n, t, e) { + return n(t, e) + }, + WbEDk: function(n, t, e) { + return n(t, e) + }, + TKBbc: function(n, t, e) { + return n(t, e) + }, + xuzXZ: function(n, t, e) { + return n(t, e) + }, + xLvUU: function(n, t) { + return n | t + }, + PgtQJ: function(n, t) { + return n & t + }, + nPLtg: function(n, t) { + return n << t + }, + yKuRz: function(n, t) { + return n << t + }, + oSyUk: function(n, t) { + return n + t + }, + olxBI: function(n, t) { + return n | t + }, + SxArR: function(n, t) { + return n << t + }, + PVyvH: function(n, t) { + return n + t + }, + TJEjI: function(n, t) { + return n + t + }, + PQnGv: function(n, t, e) { + return n(t, e) + }, + dRfnR: function(n, t, e) { + return n(t, e) + }, + KpSSJ: function(n, t, e) { + return n(t, e) + }, + uGDGu: function(n, t, e) { + return n(t, e) + }, + uwzBp: function(n, t) { + return n + t + }, + kdWvY: function(n, t) { + return n + t + }, + ANWNn: function(n, t, e) { + return n(t, e) + }, + ostWl: function(n, t, e) { + return n(t, e) + }, + ncKTe: function(n, t, e) { + return n(t, e) + }, + rPOrp: function(n, t) { + return n + t + }, + AKJPR: function(n, t, e) { + return n(t, e) + }, + vTDMk: function(n, t) { + return n + t + }, + sbNeo: function(n, t, e) { + return n(t, e) + }, + DbXGH: function(n, t) { + return n + t + }, + DtsUC: function(n, t, e) { + return n(t, e) + }, + Uztor: function(n, t, e) { + return n(t, e) + }, + icQNu: function(n, t, e) { + return n(t, e) + }, + Ndize: function(n, t) { + return n + t + }, + suLtE: function(n, t, e) { + return n(t, e) + }, + bpQDU: function(n, t, e) { + return n(t, e) + }, + IZmls: function(n, t) { + return n + t + }, + EgGBJ: function(n, t, e) { + return n(t, e) + }, + SzxUo: function(n, t, e) { + return n(t, e) + }, + rWZsL: function(n, t) { + return n + t + }, + wzGHQ: function(n, t) { + return n + t + }, + WDcAM: function(n, t) { + return n + t + }, + IPMLK: function(n, t) { + return n + t + }, + vJjlP: "00000000", + oJYfb: function(n, t) { + return n >>> t + }, + mQkte: function(n, t) { + return n >>> t + }, + oBvcE: function(n, t) { + return n === t + }, + kOjKY: function(n, t) { + return n === t + }, + QyAuu: function(n, t) { + return n < t + }, + irzNm: function(n, t, e, r) { + return n(t, e, r) + }, + eDyeh: function(n, t, e, r) { + return n(t, e, r) + }, + gOvzB: function(n, t) { + return n == t + }, + ANWvb: function(n, t) { + return n === t + }, + SPCco: "4|2|3|1|0", + LfhXp: function(n, t) { + return n == t + }, + cjoUF: "id=", + CAODF: function(n, t) { + return n(t) + }, + USNta: "catch", + htgrX: "15|4|12|13|5|9|6|8|0|1|10|3|14|16|11|7|2", + VUSLk: function(n, t) { + return n(t) + }, + qywHB: function(n, t, e) { + return n(t, e) + }, + LQaHK: "reduction", + UwkXJ: function(n, t) { + return n(t) + }, + BuRFi: 'Audio fingerprint timed out. Please report bug at https://github.com/Valve/fingerprintjs2 with your user agent: "', + CeSwE: function(n, t) { + return n(t) + }, + PlXqX: function(n, t) { + return n(t) + }, + HNrfZ: function(n, t) { + return n(t) + }, + CElIf: function(n, t) { + return n(t) + }, + VsoVR: function(n, t) { + return n(t) + }, + hFaXX: function(n, t) { + return n(t) + }, + nnXWj: function(n, t) { + return n(t) + }, + HCUnF: function(n, t) { + return n(t) + }, + dCpkX: function(n, t) { + return n(t) + }, + pPDwm: function(n, t) { + return n(t) + }, + wCZjq: function(n, t) { + return n(t) + }, + OkugN: function(n, t) { + return n(t) + }, + NzKgI: function(n, t) { + return n(t) + }, + tBANh: function(n, t) { + return n(t) + }, + BSWPd: function(n) { + return n() + }, + xfrIi: function(n, t) { + return n(t) + }, + GEqBJ: function(n, t) { + return n(t) + }, + XZsXi: function(n, t) { + return n(t) + }, + ojWNH: function(n) { + return n() + }, + tQozy: function(n) { + return n() + }, + UOJGw: function(n) { + return n() + }, + ENbkA: function(n) { + return n() + }, + wCltw: function(n, t) { + return n(t) + }, + HRCTQ: function(n, t, e) { + return n(t, e) + }, + bSbMj: function(n, t) { + return n === t + }, + nTZWl: "left", + ywDtF: function(n) { + return n() + }, + wuimU: function(n, t) { + return n + t + }, + VEQBL: function(n, t) { + return n < t + }, + LqCjk: function(n, t) { + return n < t + }, + ugqhR: function(n, t) { + return n !== t + }, + cdJKU: function(n, t) { + return n(t) + }, + RiXvr: function(n, t) { + return n(t) + }, + wkJtj: function(n, t) { + return n == t + }, + sbolW: function(n, t) { + return n in t + }, + qCwQZ: function(n, t, e) { + return n(t, e) + }, + SnCxi: function(n, t) { + return n(t) + }, + jARwv: function(n) { + return n() + }, + fbVHm: function(n, t) { + return n !== t + }, + upYgD: function(n, t) { + return n in t + }, + deGWr: function(n, t) { + return n !== t + }, + ZFrcE: function(n, t) { + return n + t + }, + CvwPU: function(n, t) { + return n(t) + }, + AWPLY: function(n, t) { + return n(t) + }, + gzChF: function(n, t) { + return n + t + }, + fGSCT: function(n, t) { + return n + t + }, + iFBIe: function(n, t) { + return n + t + }, + zWzwc: function(n, t) { + return n + t + }, + OhXyn: function(n, t) { + return n + t + }, + vErem: function(n, t) { + return n + t + }, + oFNVz: function(n, t) { + return n + t + }, + buggz: function(n, t) { + return n + t + }, + emXyb: function(n, t) { + return n + t + }, + mEhwQ: function(n, t) { + return n + t + }, + IcJaW: function(n, t) { + return n + t + }, + VoBCP: function(n, t, e) { + return n(t, e) + }, + SQWwb: function(n) { + return n() + }, + EzVGv: function(n, t) { + return n !== t + }, + zTzDd: function(n, t) { + return t <= n + }, + eWPwu: function(n, t) { + return n !== t + }, + KpakZ: function(n, t) { + return n === t + }, + nJWOB: function(n, t) { + return t <= n + }, + OsWjd: function(n, t) { + return n !== t + }, + ISutV: function(n, t) { + return t <= n + }, + BclsK: function(n, t) { + return n === t + }, + pIBWh: function(n, t) { + return t <= n + }, + GciZN: function(n, t) { + return n < t + }, + wLnmA: function(n, t) { + return n < t + }, + ocRrk: function(n, t) { + return t <= n + }, + Sdcoe: function(n, t) { + return t <= n + }, + PIPoW: function(n, t) { + return n !== t + }, + CFJut: function(n, t) { + return n !== t + }, + zIMiR: function(n, t) { + return n !== t + }, + joyvC: function(n, t) { + return n === t + }, + KCYeT: function(n, t) { + return t < n + }, + UQqOc: function(n, t) { + return t < n + }, + KRKUj: function(n, t) { + return t <= n + }, + IIVZC: function(n, t) { + return t <= n + }, + PGNCC: function(n, t) { + return t <= n + }, + HEbnw: function(n, t) { + return t <= n + }, + TlGvN: function(n, t) { + return t <= n + }, + qsYdU: function(n, t) { + return t <= n + }, + MgtAD: function(n, t) { + return n !== t + }, + FtaCF: function(n, t) { + return n === t + }, + wOHDj: function(n, t) { + return n === t + }, + dUlhQ: function(n, t) { + return n === t + }, + ueCzU: function(n, t) { + return n !== t + }, + DWZiG: function(n, t) { + return n !== t + }, + fsIBe: function(n, t) { + return n !== t + }, + FZQrz: function(n, t) { + return n(t) + }, + AtlxA: function(n, t) { + return n === t + }, + HLBTR: function(n, t) { + return n(t) + }, + fDMPG: function(n, t) { + return n(t) + }, + BDhYE: function(n, t) { + return n === t + }, + CzmIL: function(n, t) { + return t < n + }, + LEITf: function(n, t, e) { + return n(t, e) + }, + FdIxT: function(n, t) { + return n < t + }, + MIdeR: function(n, t) { + return n === t + }, + JawGx: function(n, t) { + return n === t + }, + xeOdR: function(n, t, e) { + return n(t, e) + }, + yCpJQ: function(n, t) { + return n !== t + }, + IULpW: function(n, t, e) { + return n(t, e) + }, + Nqbum: function(n, t) { + return n(t) + }, + DrohQ: function(n, t) { + return n + t + }, + pTowB: function(n, t) { + return n == t + }, + QkCjU: function(n, t) { + return n === t + }, +}; + + +function T() { + var n = ["SxIff", "attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}", "mYtFS", "rPTfJ", "NEYHQ", "Technical", "4|13|8|10|9|6|12|5|14|1|3|7|0|2|11", "webgl alpha bits:", "APQnP", "webgl max combined texture image units:", "tZrYs", "2028168ISEjRH", "kUAAS", "FIoLl", "JNZKU", "RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)", "Adobe Garamond", "NOT_AVAILABLE", "Kaufmann BT", "sortPluginsFor", "isArray", "Forte", "Gill Sans MT Condensed", "fWJvy", "YJaFi", "uGKTs", "Baskerville", "webgl max vertex texture image units:", "rYbau", "VMAjX", "Asdid", "3|2|4|5|1|0", "Swis721 BlkEx BT", "appName", "Incised901 Bd BT", "bPnop", " opr/", "BeIpX", "Tunga", "VAhtO", "Univers", "OCR A Extended", "sddir", "viRaN", "vJxfn", "Gloucester MT Extra Condensed", "nvkbJ", "STENCIL_BITS", "MIdeR", "PgtQJ", "iVpri", "22|7|18|13|20|16|14|5|19|17|9|12|4|23|0|11|6|1|21|2|15|8|3|10", "VERTEX", "Sketch Rockwell", "WHCrI", "itemSize", "Herald", "Calligrapher", "Baskerville Old Face", "BIyvX", "YBIIy", "Lithograph", "HEbnw", "ucqiX", "4|0|2|5|3|1", "CaRjq", "bECmX", "HFhar", "charAt", "Thonburi", "FrankRuehl", "EXaJi", "FbmlO", "Amazone BT", "Gabriola", "Minion Pro", "compileShader", "ERROR", "Cooper Black", "TUtJd", "VsoVR", "FRUTIGER", "oejQo", "fbKGC", "adBlock", "jLKBZ", "dFruX", "firefox/", "aXLqh", "GfDHz", "function", "11pt no-real-font-123", "aShOC", "DKOFW", "edMHu", "TqbuK", "beginPath", "Constantia", "TJEjI", "ShockwaveFlash.ShockwaveFlash", "webgl shading language version:", "Modern", "NOSfR", "KaiTi", "hCoVP", "enableVertexAttribArray", "webgl max vertex attribs:", "Harrington", "ibQwP", "stringify", "charCodeAt", "oabeX", "Marker Felt", "DB LCD Temp", "RxXwn", "Sakkal Majalla", "iBPXg", "languages", "FvyKj", "XYboy", "rUQWL", "div", "kzgLl", "QkCjU", "DtsUC", "unmqq", "zLUFt", "Futura Md BT", "spSYE", "bpjfn", "android", "AWuxL", "jARwv", "DIN", "92fiHaBd", "hardwareConcurrency", "AVENIR", "ogUTG", "PhEpr", "Shell.UIHelper", "TLybH", "hFvMM", "SWCtl.SWCtl", "fbVHm", "uJELP", "image/jpeg", "Kailasa", "-9999px", "offsetHeight", "wYmxp", "VklNv", "NzKgI", "Vivaldi", "removeChild", "WEBKIT_EXT_texture_filter_anisotropic", "VENDOR", "kbDoV", "GciZN", "VuSbl", "rgb(255,255,0)", "MtJEO", "nPMzm", "msDoNotTrack", "ZGVRs", "rgb(0,255,255)", "DriFg", "sTgXt", "RyVRa", "WbEDk", "Stencil", "Mistral", "prototype", "Gill Sans Ultra Bold", "CJgfa", "UBHxL", "swf object not loaded", "getTimezoneOffset", "kOjKY", "Algerian", "arc", "hvmzJ", "aToKR", "xKFwC", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", "OqWgd", "HHOWK", "DIERs", "oKGOJ", "Script", "IyVYE", "niaJE", "7|12|16|14|1|2|9|5|0|15|6|13|4|8|17|11|10|3", "Android", "getSupportedExtensions", "sFCRe", "NEVIS", "lXmsb", "naNVj", "Harlow Solid Italic", "pfWCj", "Exotc350 Bd BT", "hogdk", "Charlesworth", "Plantagenet Cherokee", "mwOoC", "width", "font", "call", "VkhnK", "mAMqQ", "yerGp", "IYLsH", "addPreprocessedComponent", "Dozht", "jbUcg", "nXFYO", "Chrome", "Gigi", "DGNMh", "nHflh", "HCUnF", "hasFlashPlayerVersion", "MYnep", "yKuRz", "ZrLhD", "rfiUh", "ARCHER", "zYNsf", "MAX_VERTEX_ATTRIBS", "eXKAr", "AmerType Md BT", "openDatabase", "tVXEs", "Msxml2.DOMDocument", "viYmg", "kTruI", "PhKmd", "kDoWr", "usFaV", "Coronet", "oiqgd", "Copperplate Gothic Bold", "audioTimeout", "MONO", "JAeKU", "Bookshelf Symbol 7", "Aezou", "Pegasus", "sxQbi", "mqUJJ", "ADOBE GARAMOND PRO", "IcJaW", "rvQQG", "YwRZd", "Vladimir Script", "WebGLRenderingContext", "pDGks", "txWjX", "Mongolian Baiti", "UBzpF", "DdJny", "Mangal", "Abadi MT Condensed Light", "BDhYE", "fdLiH", "Freefrm721 Blk BT", "pYvMj", "vertexPosAttrib", "fillStyle", "Gungsuh", "createBuffer", "Albertus Extra Bold", "opera/", "fingerprintjs2", "xJXVn", "dQxaZ", "sfllr", "winnt", "Miriam Fixed", "Agency FB", "GxCaq", "LfhXp", "Tw Cen MT Condensed", "Tamil Sangam MN", "lHDQj", "ncKTe", "appendChild", "android 3.", "SsHvp", "FkHgm", "fsIBe", "Tw Cen MT Condensed Extra Bold", "xqnVF", "MingLiU-ExtB", "EpncC", "NYkua", "getParameter", "DELICIOUS", "BatangChe", "HTlgi", "VMxmP", "join", "HEyeC", "enumerateDevices", "FJnTO", "fXLWv", "TGGEI", "Rage Italic", "bUEhq", "Hiragino Mincho ProN", "FdIxT", "Windows Phone", "map", "Zapfino", "knee", "createShader", "Berlin Sans FB", "Korinna BT", "FrTxy", "mboos", "NBcDC", "toSource", "QcglW", "windows", "vQiEj", "nkMpT", "createProgram", "aZxnG", "Apple SD Gothic Neo", "tNGCG", "wOHDj", "oUEcO", "NXyYc", "Viner Hand ITC", "FoEmV", "QfxdE", "toString", "EXCLUDED", "vcrhL", "BuRFi", "antialias", "xhlqo", "FangSong", "hEMCC", "Helvetica", "Aparajita", "abqib", "error", "LYely", "30|63|6|57|62|50|37|64|51|53|9|59|10|22|38|61|4|15|44|0|43|48|33|12|71|54|2|32|17|25|28|3|49|36|47|31|19|42|55|24|34|27|60|18|46|70|41|7|69|20|1|52|23|66|5|56|45|29|58|8|65|35|16|21|13|26|14|67|11|40|68|39", "eTaUc", "MAX_CUBE_MAP_TEXTURE_SIZE", "Cornerstone", "Rockwell", "ezudT", "then", "cJoKe", "wAECB", "lurKq", "Bell MT", "BlvOv", "AcroPDF.PDF", "fontFamily", "suLtE", "kqtHM", "CElIf", "cKMfC", "QSkbb", "timeout", "vzyDb", "evenodd", "RjFQm", "NYepw", "kQqPx", "Cuckoo", "mwqRW", "CwcSE", "RRq9y03tuV", "concat", "height", "SfYbG", "rDyXG", "DsnRW", "HpTXn", "FRAGMENT_SHADER", "mKgRD", "Browallia New", "ZPDZP", "Matura MT Script Capitals", "wyYrO", "sbNeo", "tkuoa", "userDefinedFonts", "Serifa Th BT", "HUXIX", "Roman", "Eras Bold ITC", "fqgqO", "Didot", "eAfIz", "FNlLv", "screen", "lineHeight", "doNotTrack", "TKndj", "IIVZC", "Intl", "ypxDS", "MAX_RENDERBUFFER_SIZE", "GymEb", "experimental-webgl", "SILKSCREEN", "IenfU", "SDkvq", "vaMfw", "7|1|3|11|2|12|8|6|10|13|5|0|4|9|14", "MUSEO", "16qlutdv", "VERTEX_SHADER", "gKMdP", "Humanst521 Lt BT", "CeSwE", "bindBuffer", "key", "Agisd", "XSYlo", "Tw Cen MT", "getElementsByClassName", "Iskoola Pota", "emXyb", "FBUyM", "Skia", "tiDUz", "extraComponents", "webgl depth bits:", "OvbVC", "BeRtJ", "UwtGv", "cVWoa", "Pickwick", "STATIC_DRAW", "Papyrus", "yKazt", "SQWwb", "Geometr231 Hv BT", "yRDWR", "pPDwm", "wCDMn", "xmWfR", "QyAuu", "nmYwj", "GoudyOLSt BT", "xwrRh", "length", "RLkkV", "Californian FB", "sans-serif", "xqYxr", "ZapfHumnst BT", "qCwQZ", "webgl max viewport dims:", "OPVzy", "plugins", "createDynamicsCompressor", "KRHyI", "DVzDC", "trident/", "sort", "mediaDevices", "WMPlayer.OCX", "XSLtq", "Big Caslon", "bxcHf", "whiteSpace", "GeoSlab 703 XBd BT", "flash/compiled/FontList.swf", "getShaderPrecisionFormat", "fxios", "joyvC", "Khmer UI", "opWac", "android 2.", "pike", "getPromise", "jmdyi", " ", "Chaucer", "BjVxz", "xBsCe", "SRclD", "UGnPM", "Ravie", "webgl max vertex uniform vectors:", "Staccato222 BT", "engvC", "QSgnL", "flLFd", "WZioj", "TcFRu", "Lydian BT", "attack", "mivzY", "zEBOb", "laNsg", "cAIRm", "webgl", "Kabel Ult BT", "CopperplGoth Bd BT", "JnDDd", "OsWjd", "NzNeY", "UOJGw", "PGNCC", "Broadway", "AWPLY", "kMTnR", "hasOwnProperty", "WHITNEY", "TiVlx", "pRWYN", "Tempus Sans ITC", "Heiti TC", "OveAk", "PgCiz", "Chalkboard SE", "bgANs", "suDBy", "AqJSx", "tgZWi", "Palace Script MT", "Modern No. 20", "depthFunc", "encrypt", "ANbkd", "upYgD", "SnCxi", "Simplified Arabic Fixed", "position", "disconnect", "KRKUj", "bMISA", "cheGG", "Maiandra GD", "name", "RiXvr", "Chalkboard", "pYrBQ", "ChelthmITC Bk BT", "FLzer", "PVyvH", "aoGZP", "JTjQR", "GxvGD", "1198CTBSVW", "EVmyN", "Kabel Bk BT", "touchSupport", "Eras Light ITC", "GsHCg", "Narkisim", "fillRect", "wkJtj", "LOW", "ARNO PRO", "skqFy", "Malgun Gothic", "Juice ITC", "HyGCy", "Informal Roman", "ostWl", "platform", "mZFGo", "yhvxM", "aCyUS", "Microsoft JhengHei", "KdXhA", "yQcNL", "win95", "VUSLk", "Gujarati Sangam MN", "cpuClass", "tsYel", "nPLtg", "Berlin Sans FB Demi", "Rockwell Extra Bold", "webgl vendor:", "News GothicMT", "Bangla Sangam MN", "dRfnR", "yes", "Galliard BT", "vdvSX", "webgl version:", "ZapfEllipt BT", "ZJhiu", "_SHADER", "AXAdd", "Euphemia", "LQaHK", "ZNEMp", "BSWPd", "Other", "Bauer Bodoni", "ypEhe", "forEach", "kdWvY", "VWEsv", "DotumChe", "eDyeh", "ooTnT", "SzxUo", "Apple Chancery", "Oriya Sangam MN", "rMtuY", "Jokerman", "CG Times", "180005KBRtiI", "IZmls", "YzETf", "getData", "Arial", "hvHcp", "Edwardian Script ITC", "cGcWG", "bpQDU", "Storybook", "iphone", "Goudy Old Style", "RTQNc", "UwkXJ", "win", "UNMASKED_RENDERER_WEBGL", "cZAqX", "getOwnPropertyDescriptor", "HQYou", "VnlUj", "FRVvy", "lNrBq", "acuzV", "iOS", "DKqyn", "QuickTimeCheckObject.QuickTimeCheck.1", "seLSf", "dtUgD", "Teletype", "MAX_TEXTURE_SIZE", "Lsbva", "fXhTG", "Sherwood", "Copperplate", "DEPTH_BUFFER_BIT", "EgGBJ", "fzwYB", "AfzaL", "tlAoB", "pbyIN", "RXqiQ", "pbqXV", "VtGxK", "EhBAi", "win64", "tSeOW", "Andalus", "oIQNm", "YVvKs", "aQTmo", "decrypt", "413945XqSNzk", "irzNm", "wLnmA", "REBOM", "rgb(255,0,255)", "userLanguage", "TOaxJ", "yxNzF", "FreesiaUPC", "Gurmukhi MN", "ZwtgZ", "aZKUA", "cjeXR", "cMSVz", "FtaCF", "mCGQG", "XvXJZ", "webgl blue bits:", "LEQUAL", "NxOYR", "cRvCU", "IiIdz", "LqJoT", "kpfIG", "tOesP", "chCjH", "xbaxX", "WfjkI", "Cordia New", "uXAJu", "Perpetua", "Footlight MT Light", "gEygn", "dontUseFakeFontInCanvas", "Cezanne", "FnVMw", "hasLiedResolution", "swfContainerId", "QXULn", "reverse", "fonts", "GHSxn", "XnnVI", "CAzFq", "BlairMdITC TT", "UjJed", "IqDnP", "udYMm", "getExtension", "offsetUniform", "detectScreenOrientation", "NuOdZ", "jkEag", "tBANh", "ModZs", "KQjce", "display", "upWOx", "KpSSJ", "xLvUU", "uniformOffset", "HlrdL", "indexedDb", "yPauW", "fillText", "MQial", "audio", "FyirL", "vErem", "System", "vLLkl", "FyLTe", "PosterBodoni BT", "oCrcg", "OpkbS", "fill", "skeWa", "groupId", "Kunstler Script", "ACcvO", "drawArrays", "push", "ESkWG", "uFaBa", "DzgAX", "LrTHY", "impun", "Blackadder ITC", "kYqKP", "20030107", "fzIKl", "JawGx", "ajFJj", "EVsUu", "moyQw", "Cwm fjordbank glyphs vext quiz, 😃", "KRTmi", "unknown", "Gisha", "PetitaBold", "toDataURL", "XdDjW", "moDvy", "Cochin", "CgCbY", "WEBGL_debug_renderer_info", "xuzXZ", "qnEve", "style", "NJytL", "ULiaF", "'new Fingerprint()' is deprecated, see https://github.com/Valve/fingerprintjs2#upgrade-guide-from-182-to-200", "getTime", "bXftd", "hasLiedBrowser", "AvantGarde Md BT", "nFtkm", "SF UI Text", "zaatm", "xWsjD", "webgl ", "MAX_FRAGMENT_UNIFORM_VECTORS", "DevalVRXCtrl.DevalVRXCtrl.1", "pIBWh", "IQpZL", "tMSfz", "vQjux", "preprocessor", "Gill Sans", "nnXWj", "connect", "Humanst521 BT", "QuickTime.QuickTime", "UNMASKED_VENDOR_WEBGL", "nbBDV", "Denmark", "yCpJQ", "American Typewriter", "sessionStorage", "wCZjq", "webgl green bits:", "createElement", "multiply", "SnplC", "vkanf", "YCQRk", "EucrosiaUPC", "kzYid", "jYvai", "language", "FhIEq", "getV18", "XZsXi", "BYwiT", "oyOEr", "cnoOZ", "Gsjye", "Westminster", "Microsoft Internet Explorer", "Kannada Sangam MN", "Chalkduster", "ALIASED_LINE_WIDTH_RANGE", "SBnKV", "Fsanx", "aDhqa", "6027510CrvkqJ", "lFDPE", "ffAAl", "Playbill", "PPseo", "GEbIe", "wCltw", "Long Island", "Bodoni MT", "MEDIUM", "Ayuthaya", "rPOrp", "18pt Arial", "rgba(102, 204, 0, 0.2)", "suffixes", "type", "triangle", "SYDMx", "swfPath", "win98", "WenQuanYi Micro Hei", "iZvLw", "xaBud", "Humanst 521 Cn BT", "Gautami", "fGSCT", "1019311YWVfYU", "textShadow", "Old English Text MT", "Bank Gothic", "label", "fDMPG", "always", "8|15|21|25|24|29|3|13|36|31|1|12|6|34|37|5|19|20|2|38|17|7|33|18|16|35|10|4|14|0|26|30|27|23|22|32|9|28|11", "Nqbum", "gfmUW", "deGWr", "colorDepth", "Haettenschweiler", "iQkOb", "GungsuhChe", "swfobject", "PMingLiU-ExtB", "KHNwR", "tGcUb", "Serifa", "bSBWL", "ytjwd", "TSXjL", "vhpQs", "nTNmp", "precision ", "HaGWh", "dotwV", "Gill Sans Ultra Bold Condensed", "USNta", "bgYtZ", "coXhs", "timeZone", "ENJgY", "Ribbon131 Bd BT", "bqAQh", "Vrinda", "Niagara Solid", "setValueAtTime", "UmkzM", "Tristan", "Mona Lisa Solid ITC TT", "gsEnE", "CFNnO", "toLowerCase", "BankGothic Md BT", "mpQeD", "Angsana New", "JRrCe", "VsmkS", "serif", "IrisUPC", "vertexPosArray", "QTrlt", "COLOR_BUFFER_BIT", "DEwxr", "RBnqp", "Heiti SC", "DateTimeFormat", "npjWu", "Raavi", "HIyrt", "pTowB", "hHopu", "createOscillator", "yGncl", "yqMwE", "cjoUF", "none", "-apple-system", "BfWkI", "Rod", "Gill Sans MT", "blGrD", "textDecoration", "jzajN", "G89CfW4k", "TjaCy", "DOQud", "cZkfp", "Gulim", "Geometr231 BT", "qrTqB", "VERSION", "linkProgram", "RQUUn", "innerHTML", "vJBrG", "Centaur", "ANWvb", "BOqKF", "oZqaG", "DWZiG", "INCONSOLATA", "ojWNH", "Gedbn", "gNGUz", "ekeqp", "split", "Vagabond", "JdisC", "yomed", "bQuHD", "pzOIr", "textTransform", "Geeza Pro", "UYuwD", "mEhwQ", "Arabic Typesetting", "uaGiK", "windows phone", "slice", "Bandy", "iezfU", "qrkOk", "mjfiM", "Academy Engraved LET", "jgiHy", "npUrV", "utkMS", "AJSmC", "Pristina", "nTHEc", "vJjlP", "RFSIx", "iFBIe", "fwAMm", "3|1|4|5|0|2", "EzVGv", "lwTjZ", "Serifa BT", "pkQzr", "Script MT Bold", "lIukw", "Brush Script MT", "ocRrk", "AKJPR", "OiqVj", "vzXzz", "eKPUd", "LXnUO", "wzGHQ", "IHNWM", "jPMhP", "excludeIOS11", "nJWOB", "BevRJ", "globalCompositeOperation", "Zxyov", "Trajan", "fromCharCode", "wewLb", "Old Century", "BXxyQ", "EtyLE", "szdNH", "ongFH", "abs", "JvHkh", "getContext", "hQKPq", "FLOAT", "Tubular", "ENbkA", "zTzDd", "CG Omega", "00000000", "Jazz LET", "LtcMC", "FNuqM", "jhZMu", "QZirS", "Bodoni MT Black", "availWidth", "fRCAR", "LlAwE", "threshold", "Euphemia UCAS", "textAlign", "Unicorn", "xeOdR", "ZnDQC", "WuFrg", "Leelawadee", "mac", "OhkZO", "ePTmL", "ROtXg", "canvas", "jYOfN", "ZJbhz", "offsetWidth", "Kalinga", "pvlFT", "wordSpacing", "ontouchstart", "fwvBa", "FZTyP", "MOZ_EXT_texture_filter_anisotropic", "ItSfB", "UXOiF", "fkTJH", "nEBJZ", "nzqwS", "2|3|1|0|4|5", "linux", "screenResolution", "extensions:", "brOil", "NOICs", "Boulder", "AOSP", "timezoneOffset", "Vani", "ipod", "CDYeI", "gWtPS", "IRYcn", "Univers CE 55 Medium", "TvfNw", "MAX_COMBINED_TEXTURE_IMAGE_UNITS", "tavMH", "uwfvF", "gnVkc", "SkACi", "Skype.Detection", "Copperplate Gothic", "ZdTgF", "MgSVo", "DrohQ", "createEvent", "FPpGB", "MT Extra", "ewGRe", "x11", "PMingLiU", "ocbJu", "eSsQc", "oSyUk", "YFihx", "aGztd", "tkPoM", "Poor Richard", "tfrfS", "fontStyle", "ywDtF", "vrhgA", "Pythagoras", "kjnHL", "oncomplete", "missing options.fonts.swfPath", "UYuzx", "nurgb", "iemobile/", "hLJeO", "hFaXX", "gFqtt", "Levenim MT", "13|3|10|15|14|7|0|2|5|11|8|6|9|1|4|12", "UQqOc", "RWOzj", "yrYVd", "Bodoni 72 Oldstyle", "olxBI", "Corbel", "rMQNo", "webgl max fragment uniform vectors:", "OfuXv", "SimHei", "ABBdW", "9.0.0", "OhXyn", "fnzmI", "pCKlL", "nWPKA", "FXVbj", "Informal011 BT", "iqmvA", "KzYvT", "Bernard MT Condensed", "bRgVF", "XjNAe", "RvzzI", "French Script MT", "tQozy", "diZbL", "rrkrE", "FoxqG", "value", "iQEQv", "Arrus BT", "TJgvj", "uGDGu", "eWPwu", "substr", "Eras Demi ITC", "PdMPZ", "normal", "___fp_swf_loaded", "NRwXl", "njWOs", "PDF.PdfCtrl", "wuimU", "wtxCP", "gCbtf", "attachShader", "iKYFT", "FixQy", "BinnerD", "AjGrt", "MgtAD", "Market", "win16", "CvwPU", "uRImQ", "DBllB", "AFeIR", "nRiQP", "Gzddb", "ddiLP", "nOlDB", "fRdSa", "UIwxP", "LxiIw", "LpspI", "resolvedOptions", "LtAyD", "Firefox", "ZWAdobeF", "get", "cIYxU", "vGIJb", "Aharoni", "numItems", "deviceMemory", "qdSgd", "EEcgV", "nqLqO", "MS LineDraw", "availHeight", "NrJEX", "WeCKB", "kRIWH", "WAyln", "Niagara Engraved", "vzSlt", "Bazooka", "Helvetica Neue", "AngsanaUPC", "kcUQB", "fHFml", "SJTuz", "YgNWE", "description", "CjhhV", "left", "WJsFs", "CEVPp", "zCeoq", "jHVaG", "NOdkO", "raCsD", "jqgEq", "akXOL", "AkLkT", "webgl aliased line width range:", "Yacju", "pwhAw", "icQNu", "pExpn", "ActiveXObject", "ipad", "eEyIb", "ljvsL", "haXnC", "xdwum", "closePath", "XYyyE", "availableScreenResolution", "iBKMw", "XTFhn", "TiKJm", "mac_powerpc)", "5|4|0|3|2|1", "MingLiU", "UTMjO", "NHhuW", "Gill Sans MT Ext Condensed Bold", "msMaxTouchPoints", "Onyx BT", "precision", "Castellar", "RaIAs", "XbYKN", "XmtwK", "macintosh", "uOTzC", "JasmineUPC", "Showcard Gothic", "uovaF", "zGpbK", "oFNVz", "MS UI Gothic", "UuSrz", "JDfEP", "zCsZU", "DFKai-SB", "yOWTR", "Fixedsys", "SPCco", "Incised901 BT", "rangeMin", "IFRIH", "kind", "ILKUf", "abxkj", "LEITf", "destination", "Futura Bk BT", "wZgod", "lineBreak", "SzYiB", "Kaufmann Bd BT", "nTZWl", "Subway", "Magneto", "LTESe", "BGSkH", "English 111 Vivace BT", "Imprint MT Shadow", "Snell Roundhand", "Marlett", "ISutV", "Sdcoe", "rect", "Jswhe", "zdGKA", "startRendering", "BtrNb", "wtPgj", "undefined", "jocgx", "SwXTA", "Ndize", "kehqw", "SZZkl", "xPxbp", "Vijaya", "wHpTz", "monospace", "body", "XvlrH", "maxTouchPoints", "hfzvw", "Sinhala Sangam MN", "Microsoft PhagsPa", "IhLzb", "TRAJAN PRO", ";gid=", "FRAGMENT", " shader ", "gVzKI", "Ulsrd", "Party LET", "release", "Windows", "arm", "data", "OGRNn", "QegFT", "android 1.", "Shruti", "pjHJk", "10873800HrFoQU", "webdriver", "PSYpk", "AbkvS", "pSREF", "VHSNJ", "XNOAl", "Maugc", "BKnIZ", "VEQBL", "ALPHA_BITS", "ltQnP", "SimSun", "[object Array]", "rangeMax", "Onyx", "replace", "OPTIMA", "GulimChe", "lcvKX", "jjbwR", "x64hash128", "webgl aliased point size range:", "bqHQC", "SUUuw", "fJpXa", "Krungthep", "qywHB", "KLswB", "IqGxn", "RcNkb", "CAODF", "25|0|23|7|17|16|4|9|13|10|3|15|14|1|5|19|18|22|26|24|8|2|11|20|21|6|12", "Adodb.Stream", "HuFLd", "CFJut", "gyFth", "chrome/", "NSimSun", "2631MDhqLP", "vTDMk", "UsBuu", "OSAKA", "pixelRatio", "eEMHu", "LDwEG", "excludeIE", "WBANH", "DbXGH", "GEqBJ", "ReQVG", "Wide Latin", "webkitOfflineAudioContext", "RealPlayer", "Microsoft Yi Baiti", "kMfSb", "zUAqE", "Traditional Arabic", "gzChF", "dLBqf", "ifndi", "AgControl.AgControl", "CloisterBlack BT", "Lapsh", "Microsoft YaHei", "timezone", "wHjQP", "webgl max texture size:", "ltptG", "XnIcv", "Felix Titling", "DilleniaUPC", "span", "Nadeem", "Fransiscan", "ThNPj", "BWyrI", "BLUE_BITS", "ZFrcE", "excludes", "zPpyV", "VoBCP", "SimSun-ExtB", "Terminal", "cCIoW", "webgl unmasked vendor:", "Snap ITC", "Jester", "KwWut", "FEitm", "Antique Olive", "xGwfM", "bufferData", "TypoUpright BT", "enable", "uZvGu", "mGdbi", "VePBf", "HSbxY", "xfrIi", "Bodoni MT Poster Compressed", "currentTime", "HNrfZ", "oBvcE", "Sylfaen", "aeBOX", "Lithograph Light", "IPMLK", "addBehavior", "AtZmX", "Univers Condensed", "Freestyle Script", "hdYwZ", "ZVlij", "indexOf", "ugqhR", "LqCjk", "zIMiR", "XPTDO", "Latha", "CQhOi", "Opera", "INT", "Mac", "uPhZo", "Synchro LET", "ADOBE CASLON PRO", "dHCLI", "KpakZ", "buggz", "VAQZS", "svybQ", "match", "components", "PEKbo", "Calisto MT", "dVcrK", "PlXqX", "HUFrw", "HmGFT", "MAX_VERTEX_TEXTURE_IMAGE_UNITS", "bymFL", "Linux", "fontSize", "bPgyE", "OLiFo", "EUROSTILE", "Signboard", "mmmmmmmmmmlli", "hYBRf", "Meiryo", "oMLaJ", "HWuIR", "FoCpm", "webgl stencil bits:", "precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}", "Goudy Stout", "nXkeS", "BernhardMod BT", "Bodoni 72", "Minion", "Lao UI", "kczHm", "wow64", "mwJyF", "RealVideo.RealVideo(tm) ActiveX Control (32-bit)", "rkyMh", "AiGsR", "Netscape", "HELV", "FdXjJ", "webgl renderer:", "userAgent", "8|7|3|5|4|9|6|1|2|0", "UsBuA", "Internet Explorer", "zHSLP", "safari/", "localStorage", "epNNB", "shaderSource", "0|1|3|2|4", "iuvLL", "MingLiU_HKSCS-ExtB", "UFscN", "Hoefler Text", "RfBKH", "GoudyHandtooled BT", "NewsGoth BT", "Sceptre", "HLBTR", "MJtte", "rCIrI", "TwHZI", "getAttribLocation", "Dotum", "DEPTH_BITS", "keUrN", "DaunPenh", "Hiragino Sans GB", "zTuEC", "qGCJh", "renderedBuffer"]; + return (T = function() { + return n + } + )() +} + +C = function(n, t) { + var e = T(); + return e[n -= 175] +}; + + +function l(n, t,base64_t) { + var e, r, o, i, X = C, + H = { + qrkOk: "18|1|2|13|22|16|7|5|3|14|17|6|15|20|21|19|0|12|4|11|8|9|10", + xbaxX: function(n, t) { + return I["BGSkH"](n, t) + }, + KRHyI: "encrypt", + qApBh: function(n, t) { + return I.FwRKa(n, t) + }, + QTrlt: function(n, t) { + return I["BGSkH"](n, t) + }, + KhoyT: X(370), + Plrzb: function(n, t) { + return n == t + }, + Xusqg: function(n, t, e) { + return I.ifKOv(n, t, e) + }, + FbmlO: function(n, t) { + return n + t + }, + zYNsf: function(n, t) { + return I["ZGVRs"](n, t) + }, + IBqmw: function(n, t) { + return I["cZkfp"](n, t) + }, + WuFrg: function(n, t) { + return n + t + }, + kIzDb: function(n, t) { + return I["vzSlt"](n, t) + }, + RQUUn: function(n, t) { + return n & t + }, + SwLvn: function(n, t) { + return I["Aezou"](n, t) + }, + rrkrE: function(n, t) { + return I["fwvBa"](n, t) + }, + kczHm: function(n, t) { + return I["zHSLP"](n, t) + }, + PdMPZ: function(n, t) { + return I["pDGks"](n, t) + }, + bQuHD: function(n, t) { + return I["tMSfz"](n, t) + }, + aCyUS: function(n, t) { + return I["ZwtgZ"](n, t) + }, + LrTHY: function(n, t) { + return I.LqJoT(n, t) + }, + kcUQB: function(n, t) { + return I["VnlUj"](n, t) + }, + tZrYs: function(n, t) { + return I["CgCbY"](n, t) + }, + ZJhiu: function(n, t) { + return I["HWuIR"](n, t) + }, + dLBqf: function(n, t) { + return I.QcglW(n, t) + }, + GEbIe: function(n, t) { + return n & t + }, + ocbJu: function(n, t) { + return I["IenfU"](n, t) + }, + VMAjX: function(n, t) { + return I["kRIWH"](n, t) + }, + brOil: function(n, t) { + return I.RaIAs(n, t) + }, + XPTDO: function(n, t) { + return I["TLybH"](n, t) + }, + tGcUb: function(n, t) { + return I.cZkfp(n, t) + }, + Texck: function(n, t) { + return I.QfxdE(n, t) + }, + WAyln: '4|3|2|0|1', + JAeKU: function(n, t) { + return I["keUrN"](n, t) + }, + bgYtZ: function(n, t) { + return I.NktuR(n, t) + }, + qPWBi: function(n, t) { + return I["WZioj"](n, t) + }, + iKYFT: function(n, t) { + return I["XYboy"](n, t) + }, + FixQy: function(n, t) { + return n & t + }, + pYvMj: function(n, t) { + return I["UBzpF"](n, t) + }, + xJXVn: function(n, t) { + return I["LtAyD"](n, t) + }, + CEVPp: function(n, t) { + return n & t + }, + ReQVG: function(n, t) { + return I["UBzpF"](n, t) + }, + hQKPq: function(n, t) { + return I.VnlUj(n, t) + }, + NoXzg: function(n, t) { + return I["pwhAw"](n, t) + }, + XTFhn: function(n, t) { + return I["VePBf"](n, t) + }, + xBsCe: function(n, t) { + return I["HTlgi"](n, t) + }, + aXLqh: function(n, t) { + return n << t + }, + pXekF: function(n, t) { + return I["RjFQm"](n, t) + }, + DsnRW: function(n, t) { + return I["KRTmi"](n, t) + }, + nWPKA: function(n, t) { + return I.JRrCe(n, t) + }, + FvyKj: function(n, t) { + return I["pYrBQ"](n, t) + }, + iVpri: function(n, t) { + return I["ABBdW"](n, t) + }, + vrhgA: function(n, t) { + return I["ekeqp"](n, t) + }, + xmWfR: function(n, t) { + return I["fRCAR"](n, t) + }, + yerGp: function(n, t) { + return I["ZwtgZ"](n, t) + }, + FLzer: function(n, t) { + return I["WeCKB"](n, t) + }, + vkhGs: function(n, t) { + return n & t + }, + ooTnT: function(n, t) { + return I.RaIAs(n, t) + }, + kUAAS: function(n, t) { + return I["HpTXn"](n, t) + }, + hvHcp: function(n, t) { + return I["HUFrw"](n, t) + } + }, + h = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', + g = function(n) { + return t + }, + U = function(n) { + for (var t, e, r, o = X, + i = new Array(0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964), + u = new Array(0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697), + c = new Array(0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272), + a = new Array(0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144), + f = new Array(0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256), + s = new Array(0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488), + l = new Array(0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746), + v = new Array(0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568), + p = new Array(0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578), + d = new Array(0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488), + h = new Array(0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800), + g = new Array(0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744), + y = new Array(0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128), + w = new Array(0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261), + m = I["KzYvT"](n["length"], 8) ? 3 : 1, + x = new Array(I["XdDjW"](32, m)), + b = new Array(0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0), + T = 0, + S = 0, + C = 0; + I.cZkfp(C, m); C++) + for (var E = ['25', '0', '23', '7', '17', '16', '4', '9', '13', '10', '3', '15', '14', '1', '5', '19', '18', '22', '26', '24', '8', '2', '11', '20', '21', '6', '12'], A = 0; ; ) { + // 控制流平坦化 + switch (E[A++]) { + case "0": + var B = n.charCodeAt(T++) << 24 | I["QcglW"](n["charCodeAt"](T++), 16) | I.QcglW(n.charCodeAt(T++), 8) | n["charCodeAt"](T++); + continue; + case "1": + B ^= I["QcglW"](r, -16); + continue; + case "2": + B ^= r; + continue; + case "3": + O ^= I["QcglW"](r, 2); + continue; + case "4": + O ^= r; + continue; + case "5": + r = I["xGwfM"](I["pSREF"](O >>> 1, B), 1431655765); + continue; + case "6": + B = r; + continue; + case "7": + B ^= r; + continue; + case "8": + r = I["WeCKB"](I.pSREF(I.LtAyD(O, 1), B), 1431655765); + continue; + case "9": + B ^= I["QcglW"](r, -16); + continue; + case "10": + B ^= r; + continue; + case "11": + O ^= r << 1; + continue; + case "12": + for (var k = 0; k < b["length"]; k++) + B = b[k] ? (O = I["TLybH"](O, 2) | I["utkMS"](O, 26), + I["QcglW"](B, 2) | I["LtAyD"](B, 26)) : (O = I["jbUcg"](O << 1, I["TqbuK"](O, 27)), + I["vJxfn"](B << 1, I.TqbuK(B, 27))), + O &= -15, + B &= -15, + t = I["RFSIx"](I.iBKMw(I.RFSIx(I["iezfU"](I["iezfU"](i[I.tkPoM(O, 28)], u[I["UBzpF"](I["BKnIZ"](O, 24), 15)]), c[O >>> 20 & 15]), a[15 & I.TqbuK(O, 16)]), f[I["xGwfM"](I["BKnIZ"](O, 12), 15)]), s[I["fzIKl"](O >>> 8, 15)]) | l[I["fzIKl"](I.uFaBa(O, 4), 15)], + e = I["xWsjD"](I["rMtuY"](I["nzqwS"](I.RFSIx(v[B >>> 28], p[I.xGwfM(I["RaIAs"](B, 24), 15)]), d[I.sekvQ(I["chCjH"](B, 20), 15)]), h[I["OhkZO"](B >>> 16, 15)]), g[I["JvHkh"](B >>> 12, 15)]) | y[I.fzIKl(I["chCjH"](B, 8), 15)] | w[I["EVsUu"](I["LtAyD"](B, 4), 15)], + r = I["wHpTz"](I["raCsD"](I["ABBdW"](e, 16), t), 65535), + x[S++] = I["HWuIR"](t, r), + x[S++] = I.raCsD(e, r << 16); + continue; + case "13": + r = I.ZwtgZ(I["raCsD"](I["TqbuK"](O, 2), B), 858993459); + continue; + case "14": + O ^= r; + continue; + case "15": + r = I["JvHkh"](I.pSREF(I["nTNmp"](B, -16), O), 65535); + continue; + case "16": + r = I["WeCKB"](I["pSREF"](B >>> -16, O), 65535); + continue; + case "17": + O ^= I["TLybH"](r, 4); + continue; + case "18": + O ^= I["QcglW"](r, 1); + continue; + case "19": + B ^= r; + continue; + case "20": + r = I.xWsjD(I["VnlUj"](O, 8), B >>> 20 & 240); + continue; + case "21": + O = I["fwvBa"](I["WZioj"](B << 24, I.fzIKl(I["VnlUj"](B, 8), 16711680)) | I["ffAAl"](I["chCjH"](B, 8), 65280), I.WeCKB(I["HTlgi"](B, 24), 240)); + continue; + case "22": + r = 16711935 & (I["BeRtJ"](B, 8) ^ O); + continue; + case "23": + r = I["JvHkh"](I["pSREF"](I["CgCbY"](O, 4), B), 252645135); + continue; + case "24": + B ^= I["BYwiT"](r, 8); + continue; + case "25": + var O = I["viRaN"](I.pDGks(I["QcglW"](n["charCodeAt"](T++), 24), I.XcXsG(n.charCodeAt(T++), 16)), I["zHSLP"](n["charCodeAt"](T++), 8)) | n.charCodeAt(T++); + continue; + case "26": + O ^= r; + continue + } + break + } + return x + }; + return e = "G89CfW4k", + r = t, + i = base64_t, + I["uPhZo"](function(n, t, e) { + for (var r = X, o = '18|1|2|13|22|16|7|5|3|14|17|6|15|20|21|19|0|12|4|11|8|9|10'["split"]("|"), i = 0; ; ) { + switch (o[i++]) { + case "0": + w = 3 == j ? H["xbaxX"](e, H["KRHyI"]) ? new Array(0,32,2) : new Array(30,-2,-2) : H.qApBh(e, H["KRHyI"]) ? new Array(0,32,2,62,30,-2,64,96,2) : new Array(94,62,-2,32,64,2,30,-2,-2); + continue; + case "1": + if (H["QTrlt"](e, H.KhoyT)) { + for (var u = "", c = H.Plrzb(t["substr"](0, 2), "0x") ? 2 : 0; c < t["length"]; c += 2) + u += String["fromCharCode"](H.Xusqg($.a, t["substr"](c, 2), 16)); + R = u + } + continue; + case "2": + var a = new Array(16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756); + continue; + case "3": + var f = new Array(2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154); + continue; + case "4": + var s = ""; + continue; + case "5": + var l = new Array(536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312); + continue; + case "6": + var v, p, d, h, g, y, w, m = 0; + continue; + case "7": + var x = new Array(256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080); + continue; + case "8": + var b = H["FbmlO"](k, s); + continue; + case "9": + if (H["zYNsf"](e, "encrypt")) { + var T = "" + , + S = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"); + + for (c = 0; H.IBqmw(c, b["length"]); c++) + T += H["WuFrg"](S[H.kIzDb(b["charCodeAt"](c), 4)], S[H["RQUUn"](b["charCodeAt"](c), 15)]); + return T + } + continue; + case "10": + return k + s; + case "11": + for (; H.SwLvn(m, D); ) { + for (g = H["rrkrE"](H["rrkrE"](H["kczHm"](R["charCodeAt"](m++), 24) | H["kczHm"](R["charCodeAt"](m++), 16), H["kczHm"](R["charCodeAt"](m++), 8)), R["charCodeAt"](m++)), + y = H["PdMPZ"](H["kczHm"](R["charCodeAt"](m++), 24) | H["bQuHD"](R["charCodeAt"](m++), 16) | R["charCodeAt"](m++) << 8, R["charCodeAt"](m++)), + y ^= p = H["aCyUS"](H.LrTHY(g >>> 4, y), 252645135), + g ^= H["kcUQB"](p, 4), + y ^= p = H.RQUUn(H["LrTHY"](H.tZrYs(g, 16), y), 65535), + g ^= H["kcUQB"](p, 16), + g ^= p = 858993459 & H["ZJhiu"](y >>> 2, g), + y ^= H["dLBqf"](p, 2), + g ^= p = H["GEbIe"](H["tZrYs"](y, 8) ^ g, 16711935), + y ^= H.dLBqf(p, 8), + y ^= p = H["ocbJu"](H["LrTHY"](H["VMAjX"](g, 1), y), 1431655765), + g ^= p << 1, + g = H["rrkrE"](H["dLBqf"](g, 1), H["brOil"](g, 31)), + y = H["XPTDO"](y, 1) | y >>> 31, + v = 0; H["tGcUb"](v, j); v += 3) + for (var C = "4|5|2|1|3|0".split("|"), E = 0; ; ) { + switch (C[E++]) { + case "0": + y = p; + continue; + case "1": + p = g; + continue; + case "2": + for (c = w[v]; H.Texck(c, M); c += L) + for (var A = H["WAyln"]["split"]("|"), B = 0; ; ) { + switch (A[B++]) { + case "0": + g = y; + continue; + case "1": + y = H["JAeKU"](p, H["PdMPZ"](H["bgYtZ"](H.qPWBi(H["rrkrE"](H["iKYFT"](O[H.FixQy(H["tZrYs"](d, 24), 63)], P[H.pYvMj(d >>> 16, 63)]) | l[H["FixQy"](H["VMAjX"](d, 8), 63)], I[H["FixQy"](d, 63)]), a[H.RQUUn(h >>> 24, 63)]) | G[H["RQUUn"](H["xJXVn"](h, 16), 63)], x[H["CEVPp"](H["tZrYs"](h, 8), 63)]), f[H["ReQVG"](h, 63)])); + continue; + case "2": + p = g; + continue; + case "3": + h = H["rrkrE"](H["tZrYs"](y, 4), H["hQKPq"](y, 28)) ^ F[H.NoXzg(c, 1)]; + continue; + case "4": + d = H["XTFhn"](y, F[c]); + continue + } + break + } + continue; + case "3": + g = y; + continue; + case "4": + M = w[H.FbmlO(v, 1)]; + continue; + case "5": + L = w[H["FbmlO"](v, 2)]; + continue + } + break + } + g = H.bgYtZ(H.xJXVn(g, 1), g << 31), + y = H["bgYtZ"](H["xBsCe"](y, 1), H.aXLqh(y, 31)), + y ^= p = H.pXekF(H["XTFhn"](g >>> 1, y), 1431655765), + g ^= H["aXLqh"](p, 1), + g ^= p = H["DsnRW"](H["ZJhiu"](H["tZrYs"](y, 8), g), 16711935), + y ^= H["nWPKA"](p, 8), + g ^= p = 858993459 & H["FvyKj"](H["iVpri"](y, 2), g), + y ^= p << 2, + y ^= p = H["pYvMj"](H["FvyKj"](H["vrhgA"](g, 16), y), 65535), + g ^= H["XPTDO"](p, 16), + y ^= p = H.CEVPp(H["xmWfR"](g, 4) ^ y, 252645135), + g ^= H["kczHm"](p, 4), + s += String.fromCharCode(H["brOil"](g, 24), H["DsnRW"](H["xJXVn"](g, 16), 255), H["yerGp"](H["xmWfR"](g, 8), 255), H["FLzer"](g, 255), H["tZrYs"](y, 24), H.vkhGs(H["ooTnT"](y, 16), 255), H["kUAAS"](y >>> 8, 255), H["aCyUS"](y, 255)), + N += 8, + H["hvHcp"](N, 512) && (k += s, + s = "", + N = 0) + } + continue; + case "12": + var k = ""; + continue; + case "13": + var O = new Array(-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344); + continue; + case "14": + var I = new Array(268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696); + continue; + case "15": + var M, L; + continue; + case "16": + var P = new Array(8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928); + continue; + case "17": + var F = U(n); + continue; + case "18": + var R = t; + continue; + case "19": + var j = 32 == F["length"] ? 3 : 9; + continue; + case "20": + var D = R["length"]; + continue; + case "21": + var N = 0; + continue; + case "22": + var G = new Array(520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584); + continue + } + break + } + }, n, base64_t , "encrypt") +} + + + + +function timeStamp2(t) { + var base64_t = Buffer.from(t).toString('base64'); + var sign = l("G89CfW4k", t,base64_t); + console.log(sign); + return sign; +} + + +var params = '{"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36","webdriver":false,"language":"zh-CN","colorDepth":24,"deviceMemory":8,"hardwareConcurrency":8,"screenResolution":"1920;1080","availableScreenResolution":"1920;1040","timezoneOffset":-480,"timezone":"Asia/Shanghai","sessionStorage":1,"localStorage":1,"indexedDb":1,"openDatabase":1,"cpuClass":"unknown","platform":"Win32","plugins":["Chrome PDF Plugin::Portable Document Format::application/x-google-chrome-pdf~pdf","Chrome PDF Viewer::::application/pdf~pdf","KGChromePlugin_64.dll::::application/kg-plugin~","Native Client::::application/x-nacl~,application/x-pnacl~"],"canvas":"10cfbbb02b2606dbc2ccb15a3cd2b558","adBlock":false,"hasLiedLanguages":false,"hasLiedResolution":false,"hasLiedOs":false,"hasLiedBrowser":false,"touchSupport":"0;false;false","fonts":"4;7;8","audio":"124.04347527516074"}'; +timeStamp2(params); + + +var params2 = '{"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 Edg/100.0.1185.50","webdriver":false,"language":"zh-CN","colorDepth":24,"deviceMemory":8,"hardwareConcurrency":8,"screenResolution":"1920;1080","availableScreenResolution":"1920;1040","timezoneOffset":-480,"timezone":"Asia/Shanghai","sessionStorage":1,"localStorage":1,"indexedDb":1,"openDatabase":1,"cpuClass":"unknown","platform":"Win32","plugins":["Chrome PDF Plugin::Portable Document Format::application/x-google-chrome-pdf~pdf","Chrome PDF Viewer::::application/pdf~pdf","KGChromePlugin_64.dll::::application/kg-plugin~","Native Client::::application/x-nacl~,application/x-pnacl~"],"canvas":"10cfbbb02b2606dbc2ccb15a3cd2b558","adBlock":false,"hasLiedLanguages":false,"hasLiedResolution":false,"hasLiedOs":false,"hasLiedBrowser":false,"touchSupport":"0;false;false","fonts":"4;7;8","audio":"124.04347527516074"}'; +timeStamp2(params2); + +//id = md5 ( sign + "RRq9y03tuV") \ No newline at end of file