From fc48c8a2a6a53d463ea4ab6048a97024911e1a45 Mon Sep 17 00:00:00 2001 From: luzhisheng Date: Wed, 16 Mar 2022 17:39:43 +0800 Subject: [PATCH] =?UTF-8?q?socket=E6=9C=8D=E5=8A=A1=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- img/61.png | Bin 0 -> 58977 bytes img/62.png | Bin 0 -> 29362 bytes zy-rpc/WebSocket_text.js | 2 +- .../passApi/js/loginv5_8bfd9d2.js | 9236 +++++++++++++++++ zy-rpc/rpc.md | 59 + zy-rpc/socket服务器.py | 13 +- 6 files changed, 9305 insertions(+), 5 deletions(-) create mode 100644 img/61.png create mode 100644 img/62.png create mode 100644 zy-rpc/ppui-static-pc.cdn.bcebos.com/passApi/js/loginv5_8bfd9d2.js diff --git a/img/61.png b/img/61.png new file mode 100644 index 0000000000000000000000000000000000000000..8feb2e14db62102fc4b63d90a73ebe9f2fbc3b71 GIT binary patch literal 58977 zcmb?@V{j#3yKih86Wg|JPMnEt+qP}n$;6u2wkI}r?A-j{^PY1*oO7#g)xG_pdv{m& z?(SO8de-y9>Ig-733wPB7$6`ZcqvIyWgs9>^zYx-P!Qki;P;o4?+uufu#^ha_u>s@ z9R9tJ?JTC@{L{|V+0DSw1jx+R&c=k!$;i>f#Ma5&&iNX&m;d`DJ_{8MXAwse17{06 zTS65J8o?E!CESJo~fy2W~69- zs!&%fZ>qXYY)!eyJY}V>r8XzjShQrAsEJp#gl6u8%L=xiKoN7aBc@^NPc!ac$L*36 z|D`M9yIzS}k(s&UJ?1^;n#s6(;hj02r=hhz5hJzbA|ethE-7)TyR8qg_7<8NrdZBL z1t!WYA($R%^W?uSeqlUsb_<`UGafr0^3SYbursLig;wxOmovW*S9@3+&Q9@S1o@2X z8p}$EnAC0o4f15JVjs%SdLr($l12hTxf!m5jiBv3Xa52KD6wJ5@F%^C*#`z|Y$TE2pS?n_guh@TXB-(T^Iv)#7q z`GzC^!}(Ac1w(aKJ{bx|Y}|%bT2dRn{!*0_>&-WLydfHqD2hbVYTi=DF>2tcEy14_Ds26 z8KQ=Q(?Umd7C!=^XtjXOEV!R8BpBL!9nZ!sM^+xb4}#;%1O`^N3vA->23uPX)vp^| z-gzA^*MTehSudZpADa)O;5puHi1Dw+Q!0bQzz+zbb?0#t#vpD zpU>`5$-fv;nT&{<#H+>_DhD@a2!MgF`SDeBM=;uR->TA76Jqb`pX5&AP=ZZ z`OxJ>hcrL$JFh()eVA;YLLB{eWM<|#=1~`pM>M*O1!j6Q|9If)Q&D_|1krA51&l3U z6&{LJd+ZWU@N?*oEjM|O3FT_~W|G3@GmtOsjkVR6<~fJp&K1NvR--7@8rJtl_ct}; z!Ms%}^$o@}0S>F)GTy?_5;s92vaSMwkY@ARDq=}(R%bRb=f{>hcDFa{vz|Oe0J-Dy zCa4YG44&@V3~lL5VAw#tYl{TrD1!!|tS2dY z^FPFDFLjWb#wC^RO;x^1L1S~HVJa!e*1$%g{Ol>?9&3(1(05qeJh)#23TV^IyAFOt z3flEM&A$vZ2JyZeCy}Otq_1@fjj;GFIFk{8KGDAn?1{JH^ zi#jTg5e1I@d`AXjD_AH+*(D{UL?cwsSJOZeLlh<-w3lduXy^lx2LS=G1g0$vcRMgP zEEECMM`(Znr~E)_T6>67?YdvVbl;89Ie?rtcyVHq^b83W<++WLV)kUNlnO^An8Rg` zn$rgIBPeW!K;fq;TLdxmMfQ52?kCBn=L$Jh!G~^lof7KOx72L!Ca-S(!EHcf9SjLV z2=;;`j@_}~FB>2Y>;jJmn`waD&6LBbum_I2xRhu=>rX8kRrlk!LHFDddP07yP*6m0 z5QNt9ZKp?G8ZydY)j7qj?pyCtADp`L_M(|LT!Gk5JwV_kTrFYGr&BUjg3YOFdB zj9W<~c|&eK)qwlq*VW%klRnWWi=TZ{aV6KEku}%b(~+Iv%Dtl`TOgb?iuwa8ZVxLL z)|(6io8jSbA^Y$raZM-^4Wa8**N!6^)KcT|$V~I}gRmmM!LY|AsUZ%oMB^0WGvnnt zfEm@A?iA^OMcB&Ma|;WDbHdIp1A7{B`_Il#<6{<$4$FzXp%Ou-zk`E0$#K$oVh6mb z0-~wO|F8W^vzQ3~3+6bZ-psXs@E~1jPz4>JX{6j}0Jnfvr#{u@E}!%TH_=gejy3&{ zWuLhc;ppAk<2!8&FtP(oIVLhPQ)E68nDS1}46Ptm?~f4kL1XahwUbA-%dote;~Yeh zh}SL7Q0NF(78+=1XdX3GsS49n@eY#gMig`iZ0#y!;6AxOIu!;-c}4BL6&?BCY2N!3 zM?R(CGc*(WG)ab$?_4a{h|7hUxTFOH%iqMU7(8F^&NAgljcKf*M#~(4SQv6*B=D`VUeKOFJRr5zqzSK(iEJF zA@~bqYAmPFWl{>9@RsOIaiTW|KLnn)48}v710zI-WBzhmc9Dg3=rX9LY5?+;JCcz5) z2l!?V9#kgYR7Y4A^~9ll0UG*mm_yZv$>6vXWF2rQjn&X}Ecf4XHPH>F8S3d0OJI}$MCY=3`^P-Pwh$PSF7^ry<&L z+K7%)yX)Br(5pqMETP>2^yFKgIh;phbQ2~S$SRK5#o_Nn;hGbE?EJ>CVRI;*6<;L8 z3-LJ3(DMOQSl7CqVb2f2VrY63xb&DyZtG4lceb$2KrSbyx0 z@Ikhty?*}{Dh)dPTZdLFWAwpY$vJXPbgux$blRy;JwT_zeAu#xwI)2-QlLK&?Sj{s zwAB_!NC>9Qo-JthrL9#0%D!*H&{%;fzrE)(UBN8=@&@bESI{*~wHAk|DjMyOa2Q;5 zAK#k%P(W_4MYXuHHunQp>jRg&xVvKK!LUL!joPS>QenEyf|5Hyj%f4Nt*^P4V7>pt z_*c$aN3dv|5VPM|!E>-E(n*E*CHDB@@exb4IpWSS5LyvWX3SUdsi=h@pEX93i1h5~ zgO`!bF-ZafGnd1MWlOjkO(?6}1$6HR4HJifGu@ z9xZa51#3;}ryh*Ol}<5SsYqqq25FwbI^WZk=P>S1-6+7M^=B=llfsAUt$b1qy z+N)K>JP;)oS7FTBc=NWID}B{xsnMF=#z)OGQ4wr=*K?R?Bc#BeYykh`AwshNa&H8A zea+bH-xupoUxGS?%N_^MKRE%ixTk^3*kH|(>CoLuDa*=>EdtDfL?XBs12@|-$*LNE zl*hJ%$osEhOy>o`1B(KC5_&`-e_N>27&^KX*zxepPY-v4OMtHv>KPKu6623iv=_*& zH9wBn2a{m?Mq^(tT>>nQBCi8W5{uy=#iyYNt4pJc3y=0yPviyfKYYO|E^}NFZ%AJq z%K~xbUmKXie+*6%qK?Eaao}~QTnEw^i6aufDH?{!uNyS!?mhJKi>Loyq?rp!D78Zr zL*)uPTmYGaB7U*hsefF;qZ3eh$*VIf`clRi@(UPO4!jy*^Pc}5DZPxb{Js%Z!eC?2 z(J%V=>8A1K@-rGSPO+4~IX)!UGT0Mzjl#9wasVH$bq|7!)EC6NwB~OLBxHd~xgrm| z(WS&w;I7v)Z*Rh)>F%^hqC z$0TE-XzDS`O zrsghb>-Tk&c)USl8_Lm1>1BicaeijSeGR=GyyZ!!u_|U|$%5Bo-%|MW*mDa*ZZ(EW znv79NY1NeKU4HwmQBHmRs>@w$jA^xfqd(WxZ2i^^gF`(g{}$@@*iupCJTx&v&?F7* zY$w%Lt1G^`xVy=xASgysvL@EmT0(V;vg(7y{tV1c3xP_tQ_{4>?|tCwk;q}($BV;} z+iqD-U8{dQT)3QcjF}XFHZ+-n>al1@ZZUzp_p=krO^}H(-Q^3a-XcdYgLSETwh2bk*GD zxai7~2sGB8NKSz+V`i0DW)R)nKeAa7-RFMBW(Mjp0ojI$Qy=LnI)aW_FRl~Y;B{1+ z92c}3>TbXJibZ)GVV+{84ysh+9Wp$UgGFcZ)6kS3kNZ?ZlDmf_iA=tmwv^M#<1+;a zMo(bamCCeaFhw!6;d!S@spl2RPvBOjc}U6esgVgzfxo}fr}YzmAonYI<<~OPrCk_< zx(gmi#M`|LJ}>fw4ql3k+%liN-^zn0 zW51w);j2oL{rfRdp;;FI$xWw1ktJ0!Z@~M8L8>7BWKB}~pUXuRB(C~4(@4S-)bHfH zfwvkEUUr1U6(@njJzRfTj*gNP(3l}a;0H&al#$;YAi<4s4c5XgxtQ+rZo&fRHt=rb2=gBS`i^K9$RwA_~xMmhSC3$!MWjJy?D zj!LxJ@SXQg+d2ZFL1nijmo$m*)i5S>fB7uiN*1@RHB574zBt@v{J07t#7KI*Mz3C7 z+vm^wet!Yr%6Q*F{>8lA9t1@_1zT}^00Ekkxr^cYt+^=#t7>(XgdcI(bIlMMJ9MM4 z9s#}&r~io{1z1$Zrif|%l{EsOFv+8lP=~#xoiAFnNdMC!jY_VGJw$r=7;f)vu+-RYRFCf@=#)hv%|7j#~&O&GFOGpSN~*1%kjwbLR6~-$MScUnhoe%q_NM`Xj=o zpXZDO%`^GFMNAlX!>~h8MqvQmNqGKN14Qk|A;5Z9gSFpjnhkNwje=dn+g%J8VpO5h z@A{`GKOJTKi(?r%9X>t0Pe5Y}Udq@Z^N~V^yHqzQg+fw_9pd)iYP9eOr~!%nVHv%= z_Nz}BX)y&+Jh@FLH$q$O{%SDL02W>2q3h$MhkH+Dv75Yx@DQT4YEMt-j87+xW^XD) zGrlQPJ|yO_k~sGwZLTl{>CguA2jbMttf9o5Awt9h044@h+o1 zgS=izBkt_+J-QURh;?iI{ZMkPcdApV{m-T%YYx2}jmbbr(3g`K+~nkgRQ;pD6|eFw z&ZP7egr?3TwWs6d-Ms_JlsV@mldRr1;Hae@Pw%;9oIH!o_`YxqSc1z1VD)v zje?mmFyK~&{c2j`xA4)l4yi((f-_Wc=?fAccl<@Sl@v8*fj6#KV<|Hmcl^|=wJ?R~ zeojve-l@2#vv=dQ!FF`4c#{)k=*^g{%Bj24KyK+KT1E|E_&ZZMm}B!FszQ8YTuig9 zKoLv)-3BTjuGbf>dwDlzk4-p;w$7sB*zx|lRk!E!Mk7Oi(q0xGa66 zOUm$wD8nN`aB2x`1HbG)d>T|d&WY%Ht1~rt=%Sm>dLWyBR5T_Z<;tY2_eF`dtkdaL zlIpp_Zk9kZ(6S}GhnpYEu*nQsCHB%EAp}~|Y`TjwzBawd!`um34~pK*;m^O4b{_7M zd64-ive!s{DXOUE)7X=*yQZ4$Pap$7)dLUmA4s$<12_DR&dFkt9BmL%B&-{J-8&@B zPee4)Nr$I}Xz6i;(OJNW2gk*Tx}-i%j?R}dn9Nzs>ak=zxqH3|aw=94QMmxaU&<7$ zDtvWkDpk}A#EFXd>Rlkk23AlooxvU)43LL9(n{Go z?Fxi~4hSI{n#6panKz8v@XP>*7+kjp zH&Hsw7h83htVk0u3Anwr@@;d5<-2_@>6APdrd#xH5)g5r}+s1aN> zMnk$RIaA#jjZGS9&DK0bmuiylC{$v3>Z5JGtp&WDh%B?6dZe~udJfYdoKY&d znllAmEa_O2Cwjf32jL6W(zZ=v7mUG*tsHATPITm(r!`k+VVZ(oD~6#wJ|nfgKH@bS zTZ6pa=}KZV01@#K8rhXN!ND%{NyOQPvkbE0NaRVq_T-)IoUtf9Jqe7=dCTdnk2bRw zf>clw<7^J2j=)4>^X6zAs1UEqKvPkFSVLX>V}>d_B8Q;ZLDQu4-d2_fz`ar5#WtEP zcYh=+?k)?lCTlCfYwxknRkp64jBQAwy&swJFRjIoPu3z*?|cE13Nr?_?s!P%^AIsn zlRC3GX}lC)#CpR+W&G)Px~$In57#`b$<04ndtZsNmHlCDCcE|>FZ@0cQI{fHm;$#4 z1)iHD!GQjE!Rfl$q}mzNm&Oa4OaUF5$^-*mfuR69_7h1?1`ac(fWlrC@jCPjL8)Hd2 zzcHkOw3v5izKtd;D#59Xw|);(6}nzNW6}Gwi3|JZvxNcDMgP_`p7kSjt)uCWeLlt? zoYMqNxJnf|P)Z=|sAV+Cn^%WGCN?OtZ5043*4rGV;qVQS^wO?BJM0*a@`qE6*af_r zsgqwhR_M22dJMwT*?X;TI7lh6aLzzoueTTG60v?R$#UqilRb8nM#eVDk@6#dMLH3|Lhq`Bj2E%t;#nz6(lYP!QK4j*geE7ai5WacLgmi# zqU()3YC=P6V>YSBcx?U|7fOG$p|DS>!4$Y^!(ocMKmB%`4>%jBlELpA>gG^j_<|Jk zFdO6ZaT++KxOz>$h4s*wd|0)vxg%*Uj^0dUwk5z3meawbTJzYVwlaNfO8`PkR!wv! zhm(iO({pnvM)rA038s$pTnxcc)G?k374p&mY8K9 zt=h@+f;CDKj$KFkLZB^42PtW?vCYdK8!7zpfM2VLQBFhQ`(a_aeLhkY6*#M`FupCz zeo<+Q0%i=x$C_J%xK@>Q@40+(QI$wt0w)u5SQ%oVnobc!BmK-c1*aytqb;fwoeH&r zkPK4=9|evUi?G^CSz9JxOSz=a-crTH7|Qc%+_!W98#}vLQVx7P6dybD$zK%_yVDeE5;i2f z9X8NAvWuV5CrPmoim4ZPDxc& zSbUhRCKxNdADma13SvYzlBJuQz2}L)$W3$tjv;WQFvdY;{iIk>QBDYJX8M%mbbA9X zukBxn(lhmVoB>=5bzG@+l&zsUJRJ@3_B926klx3j5!CWKm?6qW5RXSe&1on7DmDP` zUqmKNAn4Wvc!r*AB7j{yWK2@J8JWM3!??7l6-YyJXQcyG+p{Y;8WM6r9d_kYWd3DS z#v+59Z85!1>~OwMZdp+=T_NLi_)Z*j8vs=BL3An}ET0hn z+-|@fxy=|f+e6(*EslEN9a$72XJsVc%EWC6QLwF*41_SvnG8Kzpju(hs^399rV;el zxVW~oSxKh`x=&(Bj0g6u^#@5aXc_3->QI==-qpf3+-F}kEFFw;R?aOXVxF8 zmXM4Y6_(pdjFBpu;3~FwDyb8Slz--Dp+;+)1eVfc@>TTCfau)a^BrIg0UR96Rj297 z{^Repxn-bNmW-;cm1U*t;^xZKo10*0J)rIeF1^cETWz1~HiqsPyvGdoM@4B= z8xnmIAAMM$bd(7L9l4hyZ~wu+CN=H}gVD{HkVb-=Xi=s9uCvKo&9W$e70O5la9$*8 z1(A}+LPT#V9qGih8!TOK$l4qmP*8xJ681iiu)_8WgHCGyz`sP-TC=8gF(SPK`JsYN zI)!GO8@ZuVv!jMQQF)3s##w^XgpB$d1hSiXrXkyVA;oR4eOIbpU#gZg5x3LwtLQm1 z-DsQvN&(?I(Hx$>tAXh8`6)#ea5m((behvQPzk$I#_(+s@`5a(LQ!cD$;Jfp9Nyn<& z^e$6}+)^!oVQmN0vl_3w3F`qOt-- zO?KsYQL1JM?AAVtO_Fc1vON~!zikS0H}wz4KO*ZX&+qU7Q9#;h(x+ZsJ*Yq1064AM znzAV#Uo9qOt68o3r6n-3w4_b19Q>bN0OHbx_V?2oL+(6mJlNw@h=fWI3fA0 zDG*rI=9q&|_iXe|26e&0T6+v&q$;sW%gC2!hO&)nYCSSMUMn8FI4`%^a&)Lw_0O#w zFvcjX1SZo9ee(FJ32kahbFk}hqOP^xW|Fc6r)L>Y1kQ>K9=7au5gJb4Y6Kt=A)<2_ z7$I^-(|#lj2`|7-4jIa~05*;izq zfso|ZM2(VG|IMJ)FWC0q4d~pNX&5w=S_l&sDV;odUUZa@$S3LpYb+eJiZ*3fRaN#5 zRxyc3d&^ntnY9Bm)9J0z0R?H-Di<%_`*aUu=EJT4;%?6eko=Y&{HjahD@%0rB@Xe^ z(<{e-!5O%`cqkCQrE)%zjMq)?Q1r{)w;%q7&Js<4Jk}ga`0}tRLq|zy?i{{bks~3z z(3=Wgq(X=pbNsf2EbANuP{L9?VmYj_MV=32B&aT)P{p6*795=PzrW25&_B14sk{9K z>Oh*&4s*=cLKL|v8CQ;!ZNLvev6u<}zN#BkA5)HE0C2qsuB79=w&l#RevOWv6&8ei zWX0BB)OEP}Nw^#NVY=2EQb%xuyYW5(71RQOWagV25^qTFN|$!M)4jFOl2>xC2@#1bjRbWbBan7IgLo;l za`iPoLb6~(%Fi-d!?iZ+1W!tds-q57OAyaO`R5P&-5VFK)0YSAJ>SkS{bp~D zcbxZMIq`*a1LgHeXDwC*Q1R)?+6oGo#yU6FmGbZ)`*u}DI%V=(HtQ_36GV~n z1b27f=8E1^cUNM;-|d_N@7UA!yPn?IjNj`5?FexPFsC!&*HndrF2}HcQ9tIdDuiuNk4ta+sb~ zbT$pBwabs0CT3?1f2GdZrOf2WnPHUHme~g+*%2)j0w!yZu`}+*r0sRS)UYCAe)}r8`RDC~ z^tl6~eN*qxTwT#->wXufEBGHGZMPB#ZU<C{$b=`R_rd7ak@xr9bb&&2y3|L0_8BvMXGSzfLt4p&C`LXfw*ogD&8I0g zIV|^}R$xZdoYj8!Wa9_#Qgc#^hE30~u`+SRb)Ej*&nOKP0Z2rlL1&_@Yk_If201#R z{Ww1Y_2jfwHy7a|@F;eFaGAh4?y>sC#l%LQoH*_5LK84P&hIiDBvoA6DQfL^`=~GC zu=3s)(SC#k#NDkH1(*z9dsw5SrLAR+>9sD2L!83j?ltytgp&IAC@o4l{Q(NuL= zn~5B9_Sq;sXh=t95(ctd#i*mv5{^i?R{Pcb4p zJlw%17TbM#ClWF?7p&Uh_c1G&CwQKTZ%r;Nse6ydjxE7?y#F^9GfHo{t*Y;B)T%FU zw!{~2sFx)UlTJB#Yd3+WE%3$yak$SR!jTr7^@j|MS5?7{K7B{HqOQkKS|cn3OjLo# ze(QOA8L8u|@vp~PV+9Fct6GCW*=|hvI-{+gDy%&D=j$}>^vCDBcY{j`jX{Vvd6-z^92+VD=QB8_fdTgm_5E5J1u>DJ557}$ z4EFm<_G>a*gnwD>wl>Q_I3f)OLLbt5q$MRKHz~VHyN8ZCZRN!;^CgCnC?<>n%Xw*v zw@!a8M?SvEKPNv;>Rtugwo{)suDc}D#hwi31SM^cmGcu_SA#9S2Jb~VotBK;RHZjl zN8O8{HE$Odu?iKGA3rvUQKfnQCE=i;Y~@=YH*GGt0Hs|OC^GR*hJLE>ky9WV_M>HQ zIapkGR!6gzm!{?8J!KtKxA=#@0XZGy2@mYQpl&`yVuJ_hX zU+nP(1|X@5`1tteyb&UOXoZlR{i5KR_Q_{aw%jo{UZLkoo+Osy<7_uPm;G|K4y?(LIBlq8%wh($ z4T!zI-m16aB^%Ja@ja7b6u@*niI`H{a@`Yj=F?>NFlCKi_z_I7xZ!px@OXoORj==6 zbR_EL={2P$zp`RBw$1Fqg?IT+*|&YmsfwkOiU4Wa3Q4QU4|3@9ajRjkESoF9XXj&6 zqa>d}h09xD&4@DUVW_!TV|R7vN=sYk;t+s$k{&S50IH`SR@>(L@6`{x8D&A?w+@2U z^!xiO@(IrZg<;NV(KQ=Xs}1oPU)+-t;5sY4!973IJ<>Abt|Cl>&_Wc1h4;*2|KVvC z=LY%QAop6xCZ!pXIQPZW-hKHs73wHd!M?DgG_Vq^1mlv#;L5Z9+ zUc)&$QkGfK`vN^m@KeXXjPOJF}O?Quc2ZuAI3}W{!LKR%{T65aY~SW3V35h zA@Z4O+L67};I{|k`L`0~maIB?TGPIu0PlP85heH9@G2C{pHwf2HErLbDWc%Fl1L0n zf<>udvVY|*N@IMrDRz7RA{r)WnTa@81Uk0enOf|KJl@(sVMYD32z0G_hTK`0b^CN< zHNjR?bcEs!|7hyOoR!B-zdq311_qx3@gNp@+t@cDyx?wIQu6-SK~aYH7YGE@bh)K# zeM8JklE@$8+;E)0qItZM2eMooxEQjpqax6^juL&!k_ids>&ZrWvf*vKNR z>GRVGKhPu>6|p12It_a5Yz7yBQXx9!6jgUixR_**#N)N=febx9RD-)zQMql1V9O-- zuc?(YKH;x>S~7~S-d9Jr(%&38D}ylY@t4AYIKWR7n!H7rTt0gSKYIm0?3Xwh~4V*niQ8fp8tpXVm+>-n{ z_t(%Go}R)cJy<0q{kKEcRA#UBzYMx23s?64TU6-jC|A10)sG`2A|e8y5|Q=3l@Q+j z*-(df^z-f#lcrCPNN8geCV_=qxzlxFU}^CbsvyJ>B3_%`(EC#W;qz}+@8Uq$G*mEiCk}6 z0l#(Fq$5a_TA=%(Vl7^5%w=c%e_L5^69-M%j$tV;3FKE*PobniNCswcU?}5%?2(a@ zdIBXX&!LVO_mw{1xqgLqIPR_Fkq@keNnncIZJ!%ya5u{x zlmgKi$S)P2+nlgi60Sxuicw%%_WM|4IRKk@SFY6mRhlWaZqqWAe-K<+i4#MlmU?dq zh`0;7kPiDLHc8^^8t@ibj_q+Q8U5B$Pci|e2HH{Qtb%|mVgAI5_a~Ge@WYjZ8Mh?l z!Ifwmf;t99PXT*zDJfTVhj=qBmr~zOoR6F)95a$DnP#BME-Q8%T$~SiEXhY&gFtU{ zFRJiA=vjV#ec|8hlzfQ_mDL;rAHY_0Ve%SKxCZL;!Gr|;lp-taQ5^d0OZu)DNF7$V z`Pu!I*Kv1wCPAD(dQ(uhq{Jz|gWn-4VKUE?SR4;`8_MJ~u-Q5bl5A`zJ{dK#v=2-T zRy+zsD0imi*sK9QJp89%cX)WX5?Baf{OgssDRBSuA*CouX$y^kJV^vLv{W4#3E4tw zd>gxErI@{1VX)ee@PA|R;GIhbv>hL4zr65Od%k1nWp1UUS$2}a^gPtCg;<2g8OQ-P z6maq)GMM)pnX#B7^Bsgan$R>Qsp`k*jiBV%*@2-WdJ=hiB4CXQ<-Vj`7fae&mhSxS zSNON}c%+D+@<649BK(9;;=74J{kA}M2R6ALHO=tHEW5TA-NWb&_MeZ8q!*1{fAqBM zC*)r=F7~rK=anwFi3=E}K^8SHC*G@)10ZF?{i#Re+7~{c7S_?BLz+NM+HIDXjBUZ% zu_-Sv#gf0c9Gx!0w*HF`OsxzoiYYG5!S!*3E;Z{8x2G+$HMW!Fk@D=!0WTRxH^~WK z)j9mrm4$gNc~ErRT5s|g6ztO;3n$g^PYsjtZIIzZ8<>mfa(6EJ5Rjjvjbk99&<3;O zA0h)$^2N9RjitDMeJ&KiPk@||2%A#=_FP1cO7i#eIz};3N;fMm-}BvAe3`&dEVEeo zyP~22f3>zO{qB*$15;WdOa6T-{kds*rbVAP3fAC1eUS;sUvF-GdM>7@&5tMai|&o_ z!){-hrqzKdOyCGAg?9-iJKTaURS*8MO@cRa%d{N%cm5=Caq%xnz5JrqA1W;1b%3F5 zAEJDttWRbI!BFO(B7KkB9pp0>RMj1NksoNpVN$^zTc$G@J6_psSW1vm^x)d~(wufR zHXjKE^bdfBb9zUTX2C8TA^hP2NTgn}83>EtH=(wb*=TEnZ|uktxs6Nedh^C7t2fSR z=XYogI&-H9bgOO}I5XbLNL9ASC=Ku;i`bBk=<%1oHD{9lovo>jVQC3X=OJNyuMd+Qi&Yoi%VeVPnTexsMPBQj z5@Jdb%?aee_wrX%2LhH;WMxXQ@u5zZ^?1>Kw9%B+pqSt^Ez7x{x zf1^f1WBx7j##Eb^(eKUT{%G137ZI%fIdM^T={M0+EslC5CFr#i)uLe~HOIr~7>Q8> zGCE^)?f_{hzQ*Z1D>_UCs%r#_bp^qy(&UsD(8Huv=}e}>X^lH~sW5QN0h_+LV|!2L z9)`lgbdQ3{Sf^>%aQ)_vf4&3Iq?Zt%m828G!PXb~t<`5ZRJ%iIuckpoQ{74f;o}_+ zZOPH5hFgg4=w_0r4vzy(qC>`LGC_nrK4YWyVP;7a`d$ZllDR`Ax48-5yuWlO(5 zYf_-6gU#ZJv=)X^H!X$Bm^DR+*>Up&n}-oDjx?t57TR2QW&Wan z=+~1Q^C_c=_61HY1KokRawBzDY5qU>A+y{=K9e$jB+oou>zbU1Ku6$*Yu~`~a#|B2 zIGQE*BjM-1;Fb%Fu0Us9BFwG?86f8Q^rjCzg*NOqAJsShpWyz_f5UypztS{|E{7Lf z?BOLzJ}2dxPVOWPX!tjKYHiFn+{&GA~IHE7^Sa$6Ih$qRra z&LnJ%*@ifLdFsy58t;zB&^n_dS>29pb|xIOq+~Zgzfn3|KB`N{TILfdOd?1Wfi-mC zY*C!bDP>T<+{%DP9Yyb|7D?tbWcGIr$4=E$le^mTODrZT;>+<2msbBzkl&OyE=8G@ z4eEG{Lfgrmb)PNdEi}jE?ab;~&Svm4#nrzm&Vu%zGHBsn6S;=8x1gb+prMKB=q}aV zinQTy*{etHRfYFb=aX10Wt<7j=w^CR1b5FzR<~_=_9C&HJA-D7tUqUDW;FWL165j z!N(=N9~@Bhx_2p3|2cK{KTM0?c50(h+>58lBToV7w(1QVJ2!=$o$R*D!s1p zotwZfWsK#WG~^%%!la4kM-A!{)%oRR26PMjUwCGge6}u_q_rUbCqP%YIq{M4zNw5) za2;1kM6lKJQ2oW-Np&17`1f}SZ4MiXT}Z^m$90pd2=S1bm*&a$L2rA~PijVV(x&|> zwu@Prf^W+wDQWHC0XA%#d6OeQPfmJ8lZV|>q0D$Qj(Qhct@r&7LH!!Ni&65!*-(1C zkhd#iL}tfp>V8omBr|V4+kHwy-{i=fGu;>BMFwlQ>x@VHui@|i0ehSyPMa8QR~-NRO>5lk$wcqX__@AKiH?x0j?0zo z5IT$tFQh-ZkGI zml+*zfIK@ZnY3}Zekx8ne6*)pAzW>QZ3MpVQ$ndMV!iCDU_cmceJ%1n>xut^rq0aw zayvmCHc(8-u%NO5#5BGFdDUerNz{Q~(PFf4W2Q?BGNbo-1C@s|9-QYE?B@aTT(mxe zxLe~~-pb6;VpW(82ivr%7qp?Dh)p*U0mgM1BX%wr!pAj+OM78bKDI1t%I=!q^F$)7 z`iI66);mHcz@&gAgn;imMB}ZGjBSBOs@O`U;%+RK-zya&fM(@TCuhNK{L?AznODPtK<>JNDDX zV3Q;eNE{XYVojSLeZJ#ZzhPZ~6q5%l>~T6#and_hu`VN_^JXcRM1xrRxbNSv%$hWp%2dq&T>#-hK*A!R-aMMm-pvW zE>FpUWyi{evI&E3Z(Gt%B^5=v*CVW%pu{zU?cEbP7HeuzBKIF>ip#L2tBp@oG-^jJ z?lxF<3doa0oFGx!K4IG3D4tQn8hxY97cx+3Z0w-wVQ|o|VG_4!@V}h|3QB4=3i)n; zJ+bQL2_sy@`#EJr+rPqM=s@2g4|lOIXR3?r!)p7hyt=UK^hX7khb$hdRNZgg`!n#q zPoHPyCz6!rM+zmgmTS=sYs|TlJd1X5EqQzq(06+jw8adu*z=j@%Xh-b{k*TT2Z&bX^#98Zv={zUeHU5qRK@f3`?S zj?{x;M(pxgioc4BYn2=WXF+DcKvBK{*Az=}e|sT`k8>kHq-HoM!smH#k^6|LttP>92hLKHBhd-xio&L0>UGrBSjGiVsSjo}io_y(GeomvIEsjW}9 zo(E=|E_ZjuIc4D$tvkK(4E&x+L2s^mSBFu{VmnSHPNY^lakDUT@DJ~87IGtxrcEJV zpEt0`LZ5Ij_xo9k_o!z!n>nG=ngh`eMK9Ngz0MYHiunWvz&)(&t@Rw&P$q1#&;*D% z%S=%hml3+>vN}Imm;BJQG%1VX|OZ)_`5!^CdOJlI11*KH!D#BpmYc89X zT$jn{K>vo-@t3}8D779tkhh&|r9V8wR(l+aIU*K24(Qyq-SwGiJhTerI&GBgOJ6`z z?3^b792Sy(?%5kuGP5dftcv>S*-2ZSLBZaXls6s)e=wK|ApPkR4r>7mtF|`cA{$V2wk8dheveVPn=W{eiSn zC&~UL>5B(282l-N5YXlFhdE}gZsRR^rgydR_CM3bvXlc{Cl`7yY8Z~hwN){4|Rb7VmAzI5Yqi zF}JZ1D^bZ;qf+9gnzhP#xo$Cj^=NY#7}cOYhsTN@xh@k|c9Od%^c~}l?tajR`27AV z!GC-gKok?5f`VcgA&Ru@8OudZ94J$kE_nqzoy*oa?BcTLwx*`WyHy|xM}&mi%&ayd z;&0}O(7QWfYZ0%>h&a&q&^-2{KO2v{sD^i5uXwq7ulIQy#}J?0tf3{pW%m{~V*mB? zYsI9qWN7f~!$CZ5q_0=pLfZ5&YmU~_p3CZ3a41)<7(;Y_%@8b0HmO=%8Kdbj0=pV~@2INJxGyk-9JZV+ z;@<6;88p6DCvbf}cn(5&uZXr?W<-5vTHgjCSV3p>Zbm?Q=vqDAGZPRbNO;0`)R;$! z<3ob{>hj~J7iTAP%X{ndZC-b13Az>a@;C}Y@G!7adM|izeVIGj%$(19`vaec_uA~_ z!jDmYMf9)-aTPE`pQ)fNV>%*1Rb17Xs*&l*NJGgtcb-*V!$WWWQv|gGn48ob7RSK! zu8E`ZWm3LG;`46V>6hDvb#1Q+`_dtq_ha4vBJCZ6EB&4@zzHW#CZ5=~&53Q>wr$(C zCYji_lN;Nd*w)_p{dcQ&tG4#betYZIc@N$`eNOk&Pxt*Q>MY)AbWwD*CLuQQO1r2p zIpmRA_M$rFYLuG0jYHl$lL?Pw*BC|yl8vcK0+Y2zJVIU{gqt}%#bXK*HaWvyY~JM; zs7QZ`MMA?~i!^I0P@+%ay(j7iH+>$>!=s4Pg@N3MY!v(SYc*d7U2H zcMu|QbtF-=`|PZqRDjU28C%(b!Ae_(@UG>_5{CxhTQTvnIxBHnZd3mF*50#x5&ZgK zWNyx&cd@oyCrUE2o;0fv>w?1?Bl9Z^+~KZ#*ZXn)Qfdwn90R{V`Cj4FmAuZ~Epb1J zErGO>iej|I|4;fYOhm9g{fZ94Uufw2LZTW>Sahn`#X>|VK{+-Vf4y*gMG-a;wrf~e zLABZtS{sGp+aB4Y>#CoF2>uJ%Qm(&2`%*+YV3kMpH9@)B_y`%Ve~bOJ)SEg!^BdL& z)489Ryx5x}Fyftmh;f7t(d+uPtCoM?6LW^&mRE4nATkYX}{hBAIb$kll z;<)*zp~ITrnIPl~$o~#Oeu%DJ*K%-l1nr%%?pLZgqqv*tkl%KG_r>AS9PTSZkP7HY z`#xpLOx6&+XgRXACV6~0zqTf+)c}<2JDV@XB7Dp_xAuxi=<_wmvuEp#jN~hHR7@A} zZr9X^sT(S=#-pM&^R{+=I-d1>=b;0p?zyzKd%1cqcX$=bQptxnbaRNf4W)XK5p0IGnh4%Pt`CMmd^;q$nl^hKv>>te3OkSgDINKn zz@v%S@zs{`{n`8IcCs|CJ`K&VqZCmRQF8+uKxot@0VGD{i-)*!WX%TcJ>)f^iwcuoh%I01g*3a{P9l6MxoZ$L^X9KfkpK zp^AyEBYJ90i8ccl|D20kDug!g04`&QU5?nh#z5JuW}Tg#osNVNG-OFi%8p+$S0KH1@u#u58JU?N{91s&TXr=rM>Saz z;?JY%`JX=vENo1@%VFn*iZrU&Kyv^$Xw>(zx?F|I5-ZC-VIevib7ct7O+!+fsQ=o$`Eshbu4G7IX)SVdOVUM{SWP5&@36G2dUiBlz|S}fzG%!__cdVW_CL`B zo>yryuwu)M3pk8WCiHaV9JDlU+R;ctXbk&)!~Z>iNmQdZlIeJ0Iwns2Sk4pi`v|wN zB!1!EGI&vo9nwh6`x?5PftdU_6PsKJDB;Sw_Jh3X zuGba)AjdO47iUT|)@1D05s1d`rh8t|2Q2Pj`?D*DKFx6}IdXSd`XE&!4oqG(edJhz zx2%XQE7J?dUf25d&6AnS6NxG$(9?){`vOp0ZIiESWNxfBZ9t~OT1Ct+*rCVWTN^-l ze{~$PXiDC4fcbV8=bHSH>=Euzr?A2AKr>|u%Wrz5&yYF8X$6IN4S@q2w7y#Fgs2iK z8X6M1Q$5dg_R5HB(&2bJMnOTu`$fSOGl;t!D^wsaZ(_bPA|2+TrC8bKI;!tHjb&V! z0<;p&fzGSwGLh}Q3l25a-zG%^YnJP=b%4X&o*_O0%)?UXbh@%7vREa$MZD}-*n^^DA}V?u5-yt6XUkhnQZJfC`uTH}k?b66Ntgf$3Oo=t z=9qQx?W_Ooi_a-U==#i{H=hs{myZG!CLkY?fCeoM+Gk4fM~nST2|DnF?7=Noem%<{ zo>So&%ehJ)ohEsC||@gFqNS2YKiRV_&9AY^6_U%0h1w*Tk8XdWRqTb@E*HNSQENqvBg{MjT z+#07EEp2!zqu+92I@0GVT3^`}g7J7q*NW2U6lJ-$mbZr{w?&y5deN*TkpWfKaa<)P zJGAp{Hrl9te416EMa6cn$$%DR04IU~a_Ns-W%bh!wZHH0&%%GzJ>x{TYa^cZ365rg1<2Mf-h@v{?xb^R$Ch;Rmz&^4CW6?!GN zzJjb*A01dO_xifnu7n4?5E!*r1<^)JjTCcg^rcdvh+d=?+)D-YUn$h6KH+oG57za1 zt#w)QRIe0UK{~BofuRAHvZF3c>&ixnNG;5|#>R12HdMqh_U!zxrqq)^Bq zb^q*NR+4tA{7F7$x!Xl&K2#N3-C^{+#3>lovn(lHm<+ASlDN7TT5L0~)uerXz?eOjK*qlfBR-@w<%LPPe*cUaKO)?TN-|Zt1E>2lW5+dni%sq{GyNzigEEff1=HD9@ZA)2kPX z>1ar~ePzZ)T_4-1k9)d3$K5`>L+v`ZZjJYmLt#%j%l11OI=@5}1Sa=SyS+;Gg%tDI zVe@PEK867OwOL8&F2SI8DKM$I^Jl$_abos%`9x!q3D8fqvsUKO@lz5ou}&8rK9!NF z63A`}Fc&|JOY9=!uU9U%p9>qjN`Ot`s?P59P_D_44wUSbI}h9%Rm#>QQ})a5t>J`+ zBNWpSXD$q5EjZ5)^UO?Fo%#s^qVWxxZL$Vaz^BJkK3tE*-MM*oF zeIh0@e!pE%W4UyUF`GH&nrAdxMU4BeU`GG}Emac=Rf{&|*_IIu!MU>~X2>~!n^;T`1YlyVG)M!)nXsEGc*lh)e;4K&$%?3^D7R?}z zu!qMMgQ8i8o+qkDD0uzRzx0SUlSijyNUk^r+d--G4bArm zOyOJxbWDmmYm-^ECMe@U;=Z8+?u-BCr}%$zd9yH4ZXefH&%nUYwrt@IVY;E&Vv(C} z@dt8iP8EA6jkPloa0Cw}`P?i~SWHju(dTUDp-z)%^M`X2Y0I-NC21Cs_UR5XZ!bN# zZ!Ug#XYeux6XHqMjwj>uOlI-36M@<8f~6<@6%NlrZn7q0Z-|deglGAdupi1uE+kZ` zG5}8;-m=b_nmU!`rS%QM;KpFGa~#Fbj3GIt&Q*#sBj;D@#S*hBi7YvwO*;s7`HAJ1 zE?U^p^?J7TD0Jram%HnvfVOk|>+V38tDj_gV(*_*E=v~8jV7vt!lKS6VcJF4-ia`c z>K2JYtExs#Nh+`iR(L*L$&JksSBHqvoerr=2RjAwt!v_HWg6kh(0T-v0Rd)6w~ z6~5qOOTmN5cVWlFKm+BnPuN`L7bABU<3AWLA;)NSpbx6EFd8a+zVS}?HErG?84Nf| z`Dt`=d>+7fsDbY6>Zb_K3@q65@>o(ft<&jbD`-Ef@KymWXe!qZpVX8>TtSPYSQ!Be zi7L4VSwR7?Cfxi64>9%bEIk%)9`?y$UyIeUht7u4Oth@=%r`H3tq*P2OaCiGD@9jpx}Z_=O5CF#gD`nCvGd0LMBBa72pIxp{c9fmNx z@2zVI&EI^~3E15;R^D~UsC^mppO%~(HFMNPBkgXV+qzTw!P=^x$+B9KxN8pOQO*qv z?w-EmN{;I55p_tEFVkw$LKpR`-}geH>+FM&suX7fyfyFypHHkPDV-@eN%_f>jv1qW zfGzA`4ThVuOEMuojUSdDrT?IG{MK`^EMw4=K-3~&ir~WMSMMczRJW}Y)p-YT^wGmf z^9fBhl|B}~C5`q7yHgOMi|J}|v#?Id)3A#vqB>&VOUjh|-SFJ|?FH{MK3O=EF8DjL zi}MCk6T;J)P^wS%aQ%lXGK%*#NNv{hZ3D~ay$AHrktW}#KE0o$r4q$A$w-aN#fu=z}=$nNQ$1}Jyp`X6^pCh8t&dubOvNLV(5Mz z#wQGzVxxsCw!x=1}F8-rrh26W2OS1@YJs#e!8zn zcExJ03W`1>le@V)#K$5$170rLLTTu9A z;SRYYGOx3j-A#^gR;_A@y=251$cD^C%|300>#d14H_5H3;F5Jsrg7_fhM-aB9dNnc zzNALxuHQZ$7g&+HmNv(8c=!uj0Q+N}&J#DoZIOi**wPB+A&SOchx9eL0mEG0B&fx% zYF4dXlf#UD8;&I{G-b{!PS&r}D&J_y_!uV~{QkJ1D_%^$RZ>y~uyUBRU0zPmJZLRT z0OPfo<{zHcB0ECD1y);esjWoQ^jYVt6JXkktK#k8xYzo=k$(lB#S?* zTy;2rE1lQs8&Zkt$pW3EJxFbIhRghYH?gX)Ak=_+ux6=9h3fA0RO~{DiF_#GB+Iy+ zqSa?hXyeBksxQZNZ-+Yg#TKxPXYn=(Ls*5eyt8ndJ;2(U?*o9BfJL8w(FU8BbTMFU zW720$a9j{t5$G~P(o>pX|BhXe3eu2}6Bg6zWw{Rd>?#nFRfdiaKMEgnpsK;mzHY-` zUd>>5eQ%WviP~1Bc^@$*W!tJ&^tN;C6b=>OD&Y4JYX)NvunQ=$T zhK~yBlc}Tl;aK)}?uVRM0E6w*m59$eq3`nvl4wWBT+aHaqwUue_So7B8s(uVje7ay za|DePe_*GVrTj?zXrD6f%1TtwQ?$L`Y0xMd)6iecpJgP}Q?lZL%m#@ltcfTT0wthH zDt$YB$PT2Y2pU>~hruxNl>*HHZhr8@Z+-M$Clr+wO>+!Fd+Z-m*42vkQ{t>!k*ba3 z)l3|moVzp@*VpO4WTyP+Z_$vTUg;isIssmn4H>r`?C#=b#rE4`ogasnPKq?W6~{Ws zRQHyoeFMZVK3oUiWhKHt%tKUV zoh44u(Jpndl*x#PSf`SgH9Va`IGGyk4cuvqv?e317=d>0!7nDdj$Bd?p1v8WY}W#cgX*C;g(|h6-#@id)a>oJh2%g=M;`XBbHw(Q_H$MhqTeZ z%ISE?fsh2;JU;td3bKm`tEE6Q`|aTp@})SG$*ef-?@-O|mumm3@r&$cd}S8J^F3j| zt_blz5H9)Hd@@|#me>@vRN+?@Jzy&|3ysX7+T63ywfphBZ5;um^IL-HZ(Q+5LBtlRaDuktBr^m4j{>En++k1smoLB z&82w#Ko^7`MkZh~U*vx0a+i5J=JZb|fH8$tNlI^aPHAarS=6Oh)NDIC0CWico~cW% zwB4Y&+Jfus(7u26t!`vDW%(WF={UJ|WnEbgd$)D2&8`o08V}^;_Kjhgh1$B5vpDi@H zAIxT0*^4vQLqkeIurcJ6=&qSlf6Q~@5aAcNSgE2Sw!nM2xT}DrC5JR1Y??7KE`Gwv zV4XhSo^f^m3XpTggdK)pWI1NAaK&Ypg%iqhh(Df}W+@`rP5p7N53oua5q0oglJI@D zX@s9UNJalGcZgvYM%TkXbaKG?W@T^imK%~ir+5Sj_e;3XLrU@FvJeu7pU3SFmL^TQ zJcIKj0rI(+dR=>}C3R~|_-@JP$Qdgt?*2!iQGOyO7h7i7@N@he-j56A4*}c4R)cR~ zVdJf+Xh}yGB8K_s!XlJYT^CoI6w!_i@KK5<@(Abtnjunlcu`btrqj{-&l0wWD>CQL zd*9AH)#*dW3&3ZfD0r^zZ3}&45A2|3R4$gDe=dn|-3zE{scF3c-si(GqZ0s>bP4wzKfe9jzlK^6o%@ny*+ymFT8| zY2kr7v97Qf;|#2P2Qs@M(%Kq~rB`~$G%d>x3htmhE&==Plr0!Y-4-T-s#9@m?5)3m zEu1qP=6s@5#Rtk@l*?4pw1zcN5hoMixx5hrWpDwHgIoqcn zSBIN^wtFRY-;8*^#l&tSxRkY(=ib7i z*N%?|^h0(MgW)U#rotQwbj*f*$hwEqzTUsPK{#*yCZOq$V(2n5Hmh6jv$Rv{RyJ30 zwX|HLVbbM`hCZDt2gt4!aCwJ5nn`ErrLD<`2^Ci_TTvZ&qOjUl|H?&jeRRIPzr=DL z3Aykxb$lu@!efbCN%Fhpb%^Z#F53!!?{rU}L%vT$0u#$d2&O3!Fs5I)22<`59XEr2 zbq7Ox!&v=X4$^_UYAe><*a4nfjjv8o9{7yOdnoc?yd)kS5l=zywt@#}?@?P$v~n_A z_%?z9FsoIo(cZyHjr{1mzLCiLI=Gdwn_L|4lg4Dm#6=b~sx}grLbo{d7ZtMkQ`Fec zIJEP_3-_i=^VX7t`Uy#p@i;ZQ5!ayNZ;|_xS`n*yg#v{H=5fD%PzL)rNJq^502>*i z3mM(~=np&EA~0*?3;Xx`Se!(Q)`5(%4_a%c@-{wEi7{W;*rqsHI5?F#c@r?Vh_Pj< z(Y6>IE(?{MMbiQ6It7IrIqT*L;(!E!8MXM0Fs6&?ws+kcNGVc{jx96cS&6q+h#v?0 zkFm>8_M#-Etel{9)@r%*kcup2E4l^R^%=DnY(K6#)9J1s=}m|Zn-0aUSud1 z6=LF2C2C3rTkO2kUmaEg>n(53JytuTna3VZQ5eMJaQ%PqCpGwf8+|3xr`B8R(26bj z^p|qZXWX@@%}`abpyKY_72_s9?JUj2YxKU+8Ep8f@w8+a8*9N@tdi~RzeBxrCj0r- z7%sUCxc~T>v?%ML%6j<&gv1kbWi~460C{JiRRCLSK4#<(noE|)8M7Q-`w6M)<{@aR zC(IrD-4$;Rm89*n`*#D^)ciXhCl$&opBnw8zl5D^6|}GOabe;RnGLWnEpC|1rm=>h z{h~4oj9*)e?y*aR5YX&{4q~;SDaFGf6rXIEG-9ys23EN6-(fWNvHQ;7kn{TlG%Ie3 zKOs2YkPiOzsdyN6(1CnTrZYgfu>zrz;!6(cQncRQmL5#^zposhmWdW@td3RVqJEyG zoGt!-?ZHe=r%0O- z(33N(lz@rjF6l54b3aSQ8w^5|pKV6^RYW9Q(HZ-!<~f>-Dk=@1Z>MZh z>nE=usL9w0V(MeG4NB3_d*=r&v?*L?pSCu}A4`&W=?u|5x;7f83mUmNgV{6F%vk4FwObIPr#nU^NoSN%~uC4q_^g@p@%-2$X zOsKmQWlq`+Yx&kE zs+)Dsf+Ex_s8B^~w7JD-Stc;zAo?%jKsCL`U6Ov#M6G_K!iWCN28S7a z%2d&rXK8a+DW;l@>-7M+p%vLobW^jq44M+hFQ6hNeyDZ^Wnv(Tm1;AAWbA37CN zbNqc=%t0Pbg+Nwsk=#b~{e_|Fc2_)nDKt$sf9@77E(R31nUKy}s#J|U6!^d4a*zt_6K;ul?lPf=9$4Ez!F&Ix!_y6eqaDgCeiagQ+qdcQviMcLGE2 zCFTo!ng4)(P$kTeG5&B5SHZUI2=!L6{Q0HN)1uHz{Y6za2Z_fBmf@zxAndK8PF4B5 zHxT5lqaRidwUu6E_>gG**rLG^x{)>NErKBDD=)=vF)$6Ad-GJUzeTbK>Z~4nVQ{gn zR?AoBhFBgPHp19MnHTig7Y#R)pERNI@Z~6xvIy5>1oaeiGpJ-TqOLT6@il3D#wc(y zE`un>#MqA}7lUi$K$_>1KJhqL{dw75ZjTPQG5&fx@lGY?HoW+vOI#Oi-H*uV*9lX9 zv0zPMgGb53no6J4;c01`+U#YH9|F8Id=2?{>-gZ&rwb4uX_EviI+WyJ_tVQGY7joZ zX_RxAl3hNEMNq8@$ZF8~_7RF74)cFWAqAB8h_<$5BLxCTM zMU#Bm>mfVDk>C7XU08Nc+HvzQ0hlVrWfJIpgCMqx(ihnB&Gqi{pB0&imj!ttl`j5t zL!@?;8SM_BakqqeLOnmYxR(VpDhVBY+i#W8=)LvhLWS`L&ETi^KZ1XAH!p*Zn`M0W zu;mcTn;@pH$#(YOFfv3vmum@H%NaCZ`I-$;qPWiLFDx4|(Eczpwf@t4)-KZdzF>Xp z_l0oM#bYktiCAG*a&26IODPZ*h6{B8*fiQXOY_sWVs#JpoUKu^uRJOwQhjg9?1v;3 zzKk@R?drqvE(xEmG;sa_rol3j6olUhr1M}pjxbyz{5BkNdK*pLY%>$2L5!6$IALS1 zsDQl0*$=xi730Rc`3y!+X;7p<1r5lLBLZ6ML=Y#aNF&8#gyM<0e=C&2=Ox80St%C( zE;6AN4{UeG0Mk^Uj%% zbH$ZE8IL4ZKIzkiPs2qZDS+OU4Vh~a1y{bOCYwi357`HVg=DZpvGs|E3=S0-tB#7U zRlXO=Ow@QWWr@Pmo?hdWuQNlbfS7e}#_S`TC#g(G9;)&>Q81eX(TF@XY45u2&bB zBfL@{uEONN;uJCnFly-N2&A)qR!VR8qn@oK2BEP;@f^NNQa>E-D`1fM=VakULZVv0g? z%ouJI^vq6QX=wPyf4d+n*+uNfcvwcaiM&&vKxxSMD@ye@LY2naj|ju(_X_I_IOGTg zToGXW9w#s?CdZ>pK^PLC-Q6uD+ROd5mA=|ssR%tnH48FaisgDFVt+?Lt9O1+LbxJu z+cQmb8~IP?WuZz6;}l!CBZfMXaP%4@Xf#v=1-l`vhmzIANx;4OE*%Br#Pc!GJcf9w z(1sIXqJ2Mu#pP{5goLgek{d*di-8*wUly&syFC-|sWD|naot50$`8O1-=NPZUen3& z{1VV^zS=+eBN|O1?rlxOo;PC(pZDRzACe?i|GZ`Y*pn@n3kMklVPs1P=vI+!v1pB? zmau7!RH)-qFT6O{Sd4-a-z}i=Wx?D|x;Q9h+R{#3uj4D?KD9hEA72>_#Awdz5;JX) zjLYe~Xroz2_^Z=)cT?H=_9~hB4hXlECbvDekf=Pj^3lv}0QtU7#> zBFbPN?yb);t<@;EW2-Ydq~oJJzf5O3@j7iaE94iR%nd$DtLwLKCMN|_Bhv78KNrMq z;v$JR#NxKdGb!T$q|Mf_{HWiOlRCNc;v?q8ufcuJ;mAZ(;yNh2N?O(_6wU8R4g4SAVEH(<2Wh|vT&o|Vc1RYns6pNEiT0c4!0a(gx{Qw#s3V{ z?-ZJh+Id6S$c^bUCw2mUZ8QqPv8&bHnbZH8qBlN?8sqtRm&j9t;aCYODSSV^I6%yu zKDYY7y#)peI|vi5rzwdb0fz(l%{Q;f%usQE&qVeZXt_xB-OO$3&z~!oDDr2;4RHN4 z35{NVIL~D%HG_pp@;x`k&Ttd`yaF42ASn~vv+4Ww7X;Nk_%$BWNt@0{l=C|;nEN#s zu7{UZJB4j#f|Ex3`A^%ncc(%iafMG-K;T;tBs>uXMR;#-@4RndU?3DMEHMGWPB2?A zaA)rQ=y0m2=F>54xd4k4+St)pN9+7+e z?4BL%0g%M=VQw49r0@tuLf#1#g;w{PuSV8UXL#CV2A6|Zhl5O9Hg1}FUB2!4TCCH5 zG}pDMpV=_ZZyb%R?l83$?S8(7f`%<><0cM4bR1W2(;Vnr7rWiUK}(-PJwmq{MApNX)B?aBFs56WbT%|3aGN zf}fFcBZ^@zvc>QJK&*(bRm{u)d|$`$&3oX!TjgTO?CHjlc1lXA?= z(Bk>}>-l$DnmCXLG!0pzD50Z+t7=uF%hlM}xN~vg)6e$L)hMVjS-7PBM>>Lyj-r?A z#F0EXqx4qYxVsEQfzDxz90Cd9X{)~_kqQa5`n-j&+~YrP?odtK?s)119yi%&f`Wo9 ztU0SJ^}019>+2mx(i9tc|5=1f;4$!IrR~|q1@hUPp7dm~bMc>2F3YUczxDU_b5`q5 zjS7IaV<4=o)mg?mrffCw|M}h#MOW)r3CA!sytSr^&`C*ZS=_F}roC?0K+Y@gDvjLP zaNc+(VEiNkLyrMyfpbU&D*_2e;A#G?BT4R!CY*8E5~3Fq&|0+k?=Ro^S{EF(9fi^# zuAW*?=YPK6WQFQ3|K4uS3v1R9r~}S(hln^ik}vXj(MjWehota>goe~h{p%5C$+YRE zpHeve{+Z~qiw#^yigC4p{)KW` zM*c8m!PD{(csPs(<-3Ub(V66ge0vq(eb=KnmId{^rXlSxTz*zE;G2*%LIQhk)w_kTfShtnLEsZSr!d_5Rf8_FOkq zZSc$r$@S?qH8=bFgX6+Dc4OTkaaQ!PV zK*kta=)cRne-BEjG^w!-GYY=GXJs_k!bu`J@E*<&xdwsU@61uLl2*Pem6lT}JrQ#{ z%;QCW-1H4&b%#0ULbI38Js@6l9TC`JC>L~3Yp|Zc_PP9 zBb$ysDCJP&sZ-3z0*w2matgIkZMJ=t5dQV$3Y{qbCbYR2pEi;Bbg}UziK#*zOKvb9 zgEfxLo}vC~$oH^cy*IV3E@9(r>K_K<;sa6nl>+bu1DC;@-ixR%*FhB*G;;UCQjd(g z9*;z(BJTI_&?We2MCLkV*b1);(jFnFH%r99>BDwXuF_51OqjGC?TVOGJGegh-V~k9 zAIr_ks@&GPQ=mp@hHpAVo}#?=4fU6F^zJ7R1wSdEs|jDc!Z-K|k%n7VpR8USLfV_A zB~QC}jg50_@?*SS{DNsUu=N9Ft-!I3Q@7e0q5r;-@s)+SlHv*ifdq9W18_ba}E!gh2AC{8rSI19T>zjG5xqm;C(*TKOcO7niW@V~H%BpZ)2j^U$Bn!BeiQ8G zx*u&Wj?P!MN5nhNDlij_<8#u7)T1csr;qV#N{HVRY={>y90 z^^Z&X5w~QePN}ENLrbI6EE(xPbjAHqcje$zNRIK+8kicgtI!4560}#n=1Cy1;97UIuu7U7~#CK%CCDFj)z~>vbhb-bt9m z42#aR5#r-nWOWzW;Z$I8v@7_VGD1p83ScXB~*ziqcq+I;g&!h z?iTgyp{PRyX3}P*{w~le=dxipNvr5A4=tnyp`EKCno6tVnE>mED5u?N9AnnfF72y+ zD?-yai;M#OD-(LI6yH(?x^MIm?o?gsQOs_PLr|&YH8nM&#)6&oN1P6suKdPDWfz+- znq9OpjcQiGtsg7&l48@<-^|U0S#F6a4`EkMO}seNW8mhYe{Q@0J=JYw2=G+DH_4>M zG%@q`@t-H|Hgc#J9MAWmW%TOL&bF3Zv%)uXDEu9%n}UJ<2Z?_~IUu8ax-AwMsxEpK z8~SlsBzA=|l{|8ctkoQX5A$tYVk<{(6v)YU59D)&Oe&-jm!0O<)kusdVI?R?B`Kb^ zGbjmO=q|YX`gi#h7~D#2*IpEnN1X6n%xjN423aDPJ&+3_QY;3?-V!#Z*-C0qsvrSr zV#LwK#p$vXN^frt^YX0atkL*qux+ddE)?WU4>GQ=5GU;}1yy$Sg?CPU`^KEsqKQu# z;aP0qyGK;6co*8`y~J$6H{Jdnh$v!~9LW~FfjJAwSg#*sfj5G&%Si|Ol6w@(csl8l zEhTs7cVj$0bH}TQR9p?WFLV_p`(G#=$=`K5z@EOkM&7ouxi<|OOsqI^V?qwYWT`#vxqHp^ zdoI-CFdBn_D%dk)Xe2ed!%55-_pfv&(G#P`jlo#u01BfplVzBmW1MdWx(oa09`4o zj%s5DXeJuoc0;q%F%qNW>c6u~mS0uX%u^hEOqlJwfBk0cgqznDKlaEbC21i^YNAAB zzv`Vou@*N6nlT8m-?}{|d$MJ%`hHL=jj4oiTk1vfM2|V~;R%sSM(n}uByn}}o@qkW z!Ax`yIVF#`^6ce1kA7=Ali9=E5zn}^Mn?6@nc#J2twEyHfi46-WImCWh^Z%&0n4YGZY&dn9-vk%*>AW*NqHAbGl1+ z3X#yz1Vu%MOVEqd28V|qe`-L03UXuFdU~=9Je?b!H17xL#hn4~!d6G$FVWSPxaxzw z2^9J;#aB<5JT(06Yz{vhc8ro*5Y-wT$6P-z7%oxQy|&?P;ojav;s{{sA}=xw|SF5dp~3-I=;*V zx!c)ovmYCsadCMb(JB4py1*vjJwm`XHJE_PMgAH)9cLHk_rcImJgFy>@W2Lv{|~hFit+yiZ4G}M z|G%NFfUS90$EDiy6VA!k0msA#_6A^B?l1jb1vEHD9%Q5xd}~L9_9*a+5j?vPNg!jz z97Xeym*M{ZLtYPD8K{}3G-oPRV5`DqdTS^6oh3Qjn$U3n9^aPS3Dk>`aESp?uJK-!W zEc)i>@1j2-ApR{C_+iURdDTLI=WP^fv628z5?L65glA!yETJqlVZ~y;a*^7EI*snH z7+gRwVXnHS@r>lA=>RX<>&hyRrwy)^nq65%)@^EPDqoSjKXFCWm^10%AP~R)*LkbA zxrIeRNr?zB!78!TShf2FZ0^s5Mh9C2#1GD5boJWC{|D|A*O?b{Pz9M(vaAYY(Tj@C zmmu)TuWR}-d->G1p_AKQL_bagoG-BF84RRLIiKYAO$nNIf}dNxgr2r;m<2%)pK-%|J*gh<`Cr~wzt8<&pTdmW zXKllY=4)XP0nV|GJLn9K7;w3nk!gKJWr(q{ue>hqxTxP7_#B@B0U*ZTe#%1*Ibh2x zpo-WJ&`ixKYO!>+7AKa5m^80CcC9{ajq63J&0Cq;wxvicvrM3~qOfnsvk7Votb#)( z2LQK>%3Y?%ea#3 za~=6kvr#1G@xetHj3fj__?wUy?TKRK62<*#?6LGoB70++{OgGqLvmRMN_R9;)sDgG z<*Sxf+~g}W?&Zk&M6!h5t}0_9=&>{|r~4TnVEQ?}5dj-<$r>%D$tko$)D2Iwxpn>h zEBBi5?Tl|g3+mr68)gSFYi0RQ#7oimBk(K}VM0hF^2=l)=|LPk3b>Wq4RCDZZG*0a7s9@OX9(#%SRN6hjp5c@6GRJ^ZNf8(m1CNgWBr9!cU?7-8CWF<12^35)lApwr z>>qjU`D*M7RC4v335aMBq^?7;Se^$QAMXB$B&^p*OF+gpAMoE_e$4e8E-MXSF17IL zVrAzYonX&*Iff35)c8nGO$we|28x1Yu!9qjl9B@Hb_q#IPRl(NYm<|3 z*x1-GFfg_C^_J&*|C1PNvg9Ex|Hp~vt@vukuaVfxCOeY=2P4!nz|sEu zO(@(mA^(3*|80Qq$mA_)Etb5o9IOrkx9<=B74L7H{K+x#EpznY^he+Gl~{z1{C!I<$VVfKFOh)h=7$8U9>wLMWDtsMyFgf|K2pe2gXNofSguvh?j<+J*0ewf+`1t3dr`=N6rMh zgT~>^zQMO9KCQ1~jC7w@rqgVUZI0224lP>BU*s@cTsi#rDK6CzK06=#Xx^iQ)Zab7 z6@eY!2)9G(OuW_X%AOoboed7)^uR9)MTN>KZcx6~ZocCfg?u@+!%V1v;g$Hks_L#F zhZI1CLmSwky-_!PO6T$=2;#C(IPI^rdGqDre`6@L=1+VoMJVV{l^Cz4_wehpO$1R1 zBb3JD$KlU`hRbPz?3p1ghD#rp4?{ZgaSiA;s$4^_on>@BRUUpl zvsc9A=(Yi&rjI)qkk~3mq(um?|cvIlYGsXlND2RWlE#>nqQ!cxZ+N8B#|ulY;UpgQ~_ zNcTNssQr$(qdLC!Dzf5V$7RI(*I3aMvj~_I2W79bZ7EnLwmAIs8Gw4QPVF8qXzF21n1k(Rmos=7uK`#WQo2acCV! z-x)ur^z?VsL!BA^Flh$*ZX=t@;*34_gzd4IQVDCNlKw7yOBXX(#{o6_L#VB=*-Z5c z$Q)tOVTlR?b$2}VcKuaiZ#sdqwVLR^+iN%+hp_WuDe!H7TSHh}8wL&30h^yp?t$dCC?XmGYHuK~UwjnQ8KjfF659c` zjLFj(Nv{;%c=*@VxNxrJ%CyU~H6NzY#8w>H?ZK#q_sj85#eTNiSMm;V+4Z5feX#Uv z38>-BId?}kJAN3gW9fsj-j{RM^2kpvnO}eZ76>fzrMzYlI!LQo)O=9*cyHV z&>{@k8!+2VZwGX*y#^wWAavi~E*4Z2ChoB4b8G_s?8ZbWX`mMEXE1(H)PPbo-e2XD z--x7FZlrUbNt8IWL5-r(>c zt zb|)MS;)nvp=?W=a!t(FDS1^NNr9v|{R^0@xxyKgr%Np=*A%yFi6~E0rv_@EFu#YDn z5B52incY1u15I|m-2Xo)d&{W0wxwGXLV`;I!7V^=cXta8!QEXK?oM!b4-g;(cXxMp z*M+<5o!R@G+rHP{Ywg|p3zp3>=9pEzdaoK1dU4LT)zJ7TQF}v_4_(^Vaj^eBLcqQU z`+7{HCM@j`K`dA0JtLPHtAa9;e%Ml9uC>BG5@jG>xbR{L>tWTSw5AW2DdC>{!M6zD zl%UJ*$V{da!NIgSJZSsjDxbu(%oED& z0gI0&IL_VU@|b6ouh*ee~J`h05NmmgH&J&5WZ(nyD5h&8-NXJWr0 zf>E0KZAWfcy@ePtvKoiH{7VvDw!8Imjdo&~;)ydns|5_nphWGs`yV!>{DLv_f8u3S z*frK=$Djg|GRtfcp3F_o{pF#5Y=RP$^H`Mp=e{*4N}kQ5Nc(7lcAJk)49Iz1R|SXU zvva`_puiv9zk;7~BE$P`K)P0WY-r~1+qvdsEM8B=BEl?{IjqlQjR;pY*7l1okvD1u zd@`!GLR$3T;7Nzvua&;ZUnCoTebs_@_Qp|?7qx5*C7SkC0H&A0foh>KjAsy$(nQOz zs@>c~@x+3n%-f(QSB~r4c^5@3SV|LOoDB8!1FO)QzC{xa19x2Q>hctc>Hh~B`hc_T zf+PyYa{p!pZ_V3_CU#mi8Rk1gU&AVmhbjA!6N#(!sa2L-%FvuN)Q^hYmUBT^_N2a> zrZ-cS`b;6IavIW8I*Z>t)@}ZW(-V`_s-ew>GCr(-3C9W^Z-2L9%JDqPNnfC(@K40l zR4jZv;Pf3KI$zYt>M$!WG6*=IA90s{^sP%KQ`(>Ua@DqF<^VM3#tsP&$vyT+o)qhj5LDGS z@dKUJ?FEY^6~eAE23BG6$ew9P`2#GDh2_uhwb_1J6$s`*grP1pl1Gi@nKH;*KF0oW z%rYzXR0}{|jfq8^De6cOG8*|1p{DX|&VIF>O5UnK-5H~oCYPgx6}r-h+bRb!{g~kW zW|HM6q%es+w8 znJ7+0#pA(#lqWxJ2Y>%-ghAbEOj>dc5$aJecf^*lD6q$i@anXXPwPxXrOR)Wo~?KD0bNTCM4} zB>txPS-=HT5V}+@b6Gxdu1+n(--51Ru&JSkW1PceFu>&hU8bDK+wAB;hvuNDL6!2w z&3c#SahXD4k>a53OA7gS=kwR$Va}|&02DCy<P+6>~jE`rJ2%>-PS*8}( zH=RLy0ORDk2wt9AKl3nzh~fs@J^Ea^8g6^8sRB$VfK^%*Yfv`a(~LD747N6^>JpHgK~BQ|Fm|#L4E2)o+$$y) zRI0z%ayT8L!JTa!Rqc8b9vOq)zs8>@QARq321G>>+9~I&L2d@OLy9#W)WCS47&%!= zqw^UC`rh-@zF;(^cW9GpAj}Z#&sh>ik#3sSu?7X*C-eR4>ex~)L3%-{|4}0HCg(FU zJ|lz8m{=WFgm3I|&3hp>Iz9DTC*)T1TxXPfH(}U8r{g~PCwD{4%4ZFzYNEi=PLzv7 z7|Zkd!jG-s_p$0X9#@sAg@vjTt=~T)(j$>4EAjoFm@%lZLdcN<;WE@Lwo zXuTzXBd>)wG~l5`!jOlc(tVy$z~h?tHCGXIr#eNQQvCaESP;Jga8@Br0n&s}86-)J zj}3cqk}c^Wfm^}z4KF%V;lCFR;U4R_aJouqE2|uyWcc4IWd+sJ(o*2RQnZJ5Xm}XP zD7Wt4yU5KN$?|?QPyJ2%w;iIu24f7D!%$%bg-w^Q+0B1%-VjsppDu?$lXqwT`=$R& zHT2KVVTlfRlh%H(*4x^ytU8H^iGg+oDu2+$|J#i%0(&W5bR8Y-in_YK?(Wu{VUqv! zr+?+U{3ikeL2qxq%1W2LUbo0TFFb^{w4ib)Lrjr>d)7Qp`vLvwj?n1lu(sZIUvatL z?Wy=AP~>Zj9i4xs?&#JgMm>2k4rjym@_4{rWK8Y9joyVd+ve6yZ`0iG@$=|3WY%Y2 zb``H1sgRjpSb!%MNdKB5&%8BFArwWmaF^i@#MsAr{z#_#Kxg3FvO3^AZLOzCfq?+Q_@^;E{E zDy3v!+&m0nKYjWng10p052uqd$5Qw;ti_7szStIAyH`ZLF7x>JbjR@>{WbM4Yktw$=YHaK-au&db+0o%iWNRoBB znq42|vfGOty$#_iohtQ33VVMwD9h(5dh?3eWOgM$exh7&?rYY!LPm?+8Qoo}CSS zd$6%z5R6>(EvfT~)|@z4a8Cb~+lM(BCenBzQXy!Xp%1C4=MRd1=y*WOexg;#{!sTT z6OGhA4+hv5`GEJI=l=E@fTWE9QDxte--r;S?3Q1QKo_Ru&F^BZa2WLdGM!!A5;9RJ zBiHkiwgW!oveFc@slg-fjFNB*jgpazEd=FJRf2H17jiDH)WoP;Yh)tVhl`b z6tZ$8ePF}7_sHOxv!{R4IiT|9{GVISOCAh<_0YUg{ap(~!awQq?HdO^SZjXit{KQr z#Gv+qg;PdO{!_v1f!WrvW?brapP5Lb%@N)m4ITfdzH4~)LkPR|oJzQq0##8m#7U$Z z`T2H&AkBR^zl7?)R-F!-mzhD(py~#k3F;2o0X<-xF*59Wig(y z^mASGuYLNq<~|p2zOiAkrtCfH^QR&cpE<@gF zZx2NCFe9m6A~4zQv)e%JESK41e&J9d;FP&{p*Ltf_&`P*Nioqoi~%gLzus zH$7ck8UE!T*boV5J|eUDoB9A;_>|UV9k=#B*_*r1|K}+k#-sK2HyQr#D*v`mG^A!^ zq-Ar=^q-ff`v0FvzrQF)8`yB?>fyoa{3)=3J}@YV9r)+tR#f~?p^&FkZXg)-^iHyxY`WYVX;e7L$ekR8wBLr>!5=H5O&mhO)t zz~i(}$P>e^svZLO`Zt)oLwSy{;Ge$644R~aiw@prgE4yQw# za=ae56etw8XZ!wrV}ztykrQwU!}>IoZQms z6kgfDDoy0`IVv~Df{*MnIfhG^Qm$f#9lofDlp+MMCbL8MJ+scu3hq}u6mnxUX#);K z_1?Bs_7}gJ#i=Aa)P`SVr`OWQf~bCOp4HaJ-Db8qBM=?#CAm`pZZirPP|o)voF*Pu zHz!DG-p>aI*c{y4%%1m#yW3-saq)^nP?1$9wlMuFTr73<3y5D&-Jfnx3V;7@=&H)i zHMl)lUf*ylQlfgiK2Uz;BqK|@zklD-()95oLz=JeBydq8KE9mi73lrx!g=e5Oyz{` z&R#TNO;E(a`hq|b9y5^mj#)=3{671IW_Zu0fpd8-Cs7erft4f}p(0ZIZtCS!R;M}Wqm#>UceX~IRc8apr@Oz|xz4(rt%9Q1HPL!~0(wkmY}lKMi@!cY1{cgM3-jBN=i>3*95hU|@iyuj!g&FW z%lssQ8n+8-JeWq`+KwSzWz4WD+VNm*v`lM|jHksw%EQ%_L$%C^-Bsu1@urBur%R7P z8P?OY$a%_>bWnS6kcXWaVtoV@5yXwG*ZEB5i zivdK%p0^ZS3-2i0^ll|hkWNP%e7rlGg0{_6HS;Axo+382V258@ zGY0DNT>A>IF;$)07i(f=EHTcP^k^l6$m97l1nCo_O!*cEawWKwfDif0({jM@9!Hvr1B6bJ^nRMzn*}^8Xw@Y1hs;qNH?V9EcM__8 zFe9hcAAbI{dnc0M-BJhQoaRz)ACFAP6uVr*v|OkGkys{=Y^KsF!*IG>F3|@5Zgw9p z+FzUwh9UI)Ni_5>h0HMEK;kb1EOiibFU#vc{iw5irJ3u;3DsguoP?}aCoDACC~=Fh z#OMn4Bf)+dV{`RHwvBFa_H({G{9&=~sRNrbu%bz=W)q6J~^ z;9$GF^M)I+{_IHtq@$>*i!Y6VdNf6%*?|WlgkKLcX>R{!H97h3M#do8Kx#L z<;4I-*6S6=&#(N#xDUeQy(7biukf0lV!VjUYlcgj>!7;dmF<2XU2e2)mR60`gzTe8}JZCmy1=hptD;qyg*Hj)Ac#MCr1#89xO z5~kY1ViA><&obvd^T2q=*leeWvERiCa@$Ip0N4+z+)1_n#ALSYJ)#(tLZ>FD&30rv zxOFnqvz>~DW@kfiTC)I!05QL!;=FFB+IHO!KKtZY2@CNDyl|$0fdL~<4}X; z(|ufRxE{A{cNuBD>NFC@#$8RZIT(84dcnmiY8cWU_U-12SUF!q;wu{>OuOOBrjot= zZm5co(x`xQ(kD$#bV(SWANL1~P4?`AVhmZ!ed8dm=N4*|AQrJ>y_YD8Ye}S~0%#_C z)`t34nLGTTB)%kn6P- zs_P8tD<)iJmAw9xBQnb{`kxVVkwUA5jEjp~Z1s=}%E3V*A|Zh?H7%U#?@PDw2 zBz$#s(^HsJjEw~a`-hoWWPElPiZ7$Kw4f5JB`Jgd)&P3Sl}2o&QbKkqaNU~g?aL|< zMVMdaB5JZK6A4BpfM{qw;;`@e9Mj*^6PIb-p~vv^dy$<>JKOCS9-iDOqthSB0Lb}` ztZP-YS;~$_$9hK!A=IW#OQ#jYz4_ zAlf}r4EgitMRt39=V$D7)uaQLN;E2I-|}oyzI>hv^#PwZB(<21W(IJynJC;bZ%h|j z+Zx5){>2e=4#GAA6;JVc;X9~ijL~j7J7VTGtlphGT(vrilx_7{Ot7rhKWHf>*!%hd zW4k<^-PKL9KhX(Am`(7Nj4U=I10q?Ps%NN2H-R$yKhFy7Jhik5!1}a?o>;(|{u`ryblCg$`cGf?BWq)qD)o zg@TA`Eq*|c=FUGXwzLo<=Lz+*toxZkFr=O84{?cMIhpU%PZd^I1sONT z<-hZt=c_JDH&J(~eYPwy&c+=|LhnUEFuCf+k?R}H>Mr)fOsV)%(?`4-YFYm=*T%;D ze)^Q%w??E*GtI^RM z;o#U<9}xbtc)hR~4X{YW5c5ps2un&!f%i>-kI$-nyFODT%*xp_IaFAk{xCc^FGy+i z7(8Z7s$7dI_;7n-HsA6ojIxLKTmFsdQZw2CUVY+O6pqvxyG2$C*Sk!3fzZ0}D9P&L z&p>WPGGY-rf&z5olW;mZq=NHJf_Y+T7)3Q7el_NcnA>`Tk9zIvk0)(qngscTjxk=4 zBLQ!KpT=|&RVMjTm4bTc6UVPRqm2O@HG*ZCjM$|+N-518{1=@8N$VD77g&%hs*IT2qZ{LqO*UKl?4vHv<2CJpUxFU zC@GO7yFmmWRL8^ESL z6H!}trZ|KK;9}a{ewQ^&)(UA(h&!dXHIn+MH{-x%#93axqOkNW-*le*sv?~)@lFL= z&zL1QdU+_98HB#RC!f$Y-pRes?**4mAV^1^oAs?LE7EFh zcW`1#n>klDhJnoY0LuBiGmGlfMc>#fN{qNWH-*QUSk5Z58zp`3s*O0roUlZ{sq34w z21`1oXzWMvgO3zY+hj!#Zq8b6<;Fs_Pg=>hQM*R$XZ^$B?<$mi8F>@v`N|rT0S4{z zkIpHw=>31O{k0EJ(~7nL-`e? z_5Z&Je~+M8JZrUjOQNEp5~=-p@*4*I1ASXt+kfU~Jom09+RkKMcw#=@H$m8OQfHI& zPph{du=M#8Lp}nK^Ga!6e8{vj_+LQF)ZGC?CgiJ$(?WC653j{hlH!sJfAow9>rB(sx@&(^^B}Y z9+mB&S3C@e3Y8Tb%^PbA>VImM(>B=7x#w2-x37h4fV>mTo7~vk1W7&pBfV!tBYDvQ zvIZ#O?UNH3J39t*^F(S9R*<8k5uhI&kLDtekF8WnHGuf^bW~$2Aps}aOZqi`$L?7K z=VW;aYN9NX7mQXF%99WCWz*j;5a9>>le-7!#Y>&Td)fVv*33BS#XiXc)!z1cYB^-f zfXtz|5Hnutxjwra3&_`2ZS0LRNp~@VCTC_b8{Gh z;>PC>RUwy-Z&wQZb#JKS9WWXOwx$w}BgRRkQ3iwLFAv~1{9S|GqG#ULbjHh2=a!dO zB7(#9IG7hrJJRKl>UdW3gGL%nbeXZ)cLdlAVf_S?TYBZcoT$0Q_*b(KFp)f)?nT_P zfYc@c{$#BAhdL2|un@u@4vd&?*^-pY*72 zGBPK(H4Q;-oKVRb?zlA%DW=E8p+@0x`nUV|7#JGbQX>8JmXM{H1;yCpLqz z*KD}~vH3B-oPb&uTN6cd57kK8(ey>T{Q*)`G>7xsKbp3pg~(A6gxh1_VPaT!-oRp2 z1neuNr^_3BN14UPE4Q^22j3DJ5-375g*LhkY;`##>9o1AIdeH~y}WQSdI$PD$V~LO*qphv5bdW;9n`ib zBy6Wly0#I!iS@V2uoMt0yeph8r&_h^ck>}i265#x2MZz1%e%!NO1R~n=wUhvHzri*lUq}fV?*eaC{X{#rgGhiDDN{B($8IoJyINgrFcKcr0^!q0;dF{(i>% zZBtmI+WX-PhWAWzgM<2eTV~~$@m}4{>R$5wDT&eN#@3WKZ(A-GrR1~uykh3UaiiFD z)o-pfS*O~WhY9NeFB%m`<04!1Mv7``BXaFz6V*?(`nuq)Y6;m!c!A?o8WuVk2nJ^6 zZ9l#;s|7sqIdl>Ll5PqAtZ<(Xmm%!(k{KTyb0-L$WfgoGo|?)y)sa0$X~j^=h#n_n zq=fMWkm%lZ-U}g zf;$cEDE760lu6r0uas?Ij4e%9b1~Yd$y5jtu_HIPG)(v)PEpZb*1bX%&Bwy9Zv}G<^`qw6#+uQdrFb)@6yuZoC0SYksH~l$hwBgJL;2OiN5l z5^a;2IlzXMidT~^L7(!9&mAipjr#*hIT4%<6Ni0Sfl-=no)WS&iPKI{JN`yNNvVJ4 z_qi`>YE!Sg2e7O*@3ba7;trOQqIz40CMVF=M64A0ocXGfs|ROZjS|B>5qnf-2}chp zGj)4Q3pwzWk-ok_`Bv2JhrNC7KSD!V&hr7aBz#7U@yQ-VTo*1 zfSBRt<_089L3<;q>E4%U9nTL}Zm$nu^;!#b_#pp=1`Z5*9W8y_`XrkSUWdB0&(dQV z!&?S%e&Wz|TLTwT*M|pP>tcr$6%61mQK)QMP6>T|#x)&TJnmS99Mz413zjU;79?HU z63+1fGv0I`j^T)+Optxm-Vi!T`FAR zW-OQ8D4JNe_Y5i}_kU!KA=N(ZhiBFv)Tpsd1`n$uq_hx!_Eimb{3+)#jhC1ju$s!b zkcoX16`PVe{E;3>k-$tdYiwhT&a?6fv0dcXOoME(O_xufdvf{HZ4h5zhAem*pRvA_ zCo&cc1PW`QL?t093D3yL=(MEskL9VP95^;<;--Ja8R0I!*$^S%b?6tb65u2;h_Nd-O;%_n+k2+}xG7%W7qF41@nptPN>S z1=i^OO>Tb_nvq&1B>7LB@1t_e|C~Vi&*wnN@PEvp{eKX`Q;%PdXre`~YMeZs3HQK`Z-6O zlv-C@+Z=gNeTM%~D4W@}x|%tf&VF^#Pw22eL1dKxpCo;*zes4x;YbGME0{&cGn+?R zZiSdv@jIo^y=EtrfVQ$usp8C$OUflXr{Z^m&?8Axy-}49?iy0m7b?ndAD+q7)1`vM zp;%qDk@X~kjk9jv3-fI?{mjaW6h*&U{(4c=!Ei zSFqI68O>ZCzFSJJc=J zoEhyXcVAEA{A`g)Atp+d75}nY(`3Rw6))rDiVZ*8HS`y|K&z8~(v{TMOb#F;f_izj zm&1Sod#$DY(^s{M=z%LWCw);|LBlrNaV$fASkrEb0OJpR0IT6q({)Mi(ZE=#dnCC$ z{(Abgl5)|}_GBOdW@&0$=X9k1>5VXen>=iH{^ASht`zE0?9CQ#0$ zN6*HlZ$U?c;BY2`O!5QfO=Ah~$MHdgWOEzaQHPi1siGiWla337W~@v2;c0^9 zLe}wX$L-S5&7QBil)5(7MS5{QnvaJW49o%Xm{kCsMHbc}LS{>n#-2bvQz>w`lh!~E z_YN1$HY}OGD3+CR^S%-y1nw;iV8Ia5`^(U_){1+cgq_NU`nBe-N9Od7bW~(s=#n~u zpZKit9-i#v=8nV3zp|C;?3Ru-ck@aN4jJ}ln?jl$n05CXHeD>SlYeW=@EATATgFk| zZPX;B#kW@DX@k*gI@KCz(C~g;p$p))bgc;gwAvuOqM@K1Ujr6QqOztmAQb6+`nrsfhe_$lP_X8hJt_{oH7Z5dTz+f9DDF%Wq1Ncv6h~l8Cn#-3g2XoHdBg>|@T1Ts{ z1Q_Z0oECp#??`FmZa-JR!^FnfqMlzork!N;ZTj|pwzX6dMchZ={kf`%#zlKnX&Zaj zQhD$dRJ1sIs;R1sAE2r1tV==VS3~V~9MvXrJ}D9wCev@~Ag{Z>zu(x2(LlPpF`j zQ%EQ>~{ zNGeQ>H8dI;>UMhMW6gwd0)3$i=-LXKpG!OZ%B#W6WEyB1bfT-}QSz*#Rrs@ObTrat zwW-qU>6Qz#hODuVSmlhjzsK8}!<`RJDhPYq-SXjhUJX7x>|&11*l1j(wn;Jr7M^(TCQhwtRS*UAC0cJM{iiA<@BYyd1(*Q>Wxf6IXc#Y zGxalFogZ@2UkQ{KF_L=Z$m56j`PXI>VYperRvO4umI!NjOR?pzJi|HF*wVMQ!%`?m z_x*3gRKFN|q`I?GSnMN3(UXqSitQBHH@A==7v zxj55VpT-oGw7R5Fny<9poN1nE>pb7Gtnnn+cea=NDuv`3cm13j*lPDm&t&5=Rlk+r zTBK2+10a-oEAIgh9}cJCg6K<7im#9|{|2q4m^F_(*-F~FRP^9M3n`j;!TA9si@zhVQai}zj{ynfuz#pE;_%Z0zZ z+`F<8G5E3^7Xzxjjbvmkv4U^y2yC++!iCAYuZZ#nYf0A6ulqu_AeLO`B~F5If+=5aNsFLR{Z zD0YA&5BpF2?2`~kX~F8|@UXjAOo=^Z656ySr3If&+rmY{WS!T>iY)fySt9TQSW$c7 zQ&!h*v6y?kOIKwmsb+T^m6hu1OGDeu&vXzMYkF(tLBvs>@uY1b$fYvRwe5^vYrvQg)79D4)uEJ;zp94i+2mD*c8Z4+SLTaq6p`w|&0|b>b zEteOXX4x9^fFF}3^D%P?<;bo??!p9ncV4X@*skAI6I@W}s;Fsw-?XBkp(?ZU14@o(x3V?X zCd2-^<;t*(%z3{X0v(0<+Qsvk2HRyy*YheG0{^-Kb+l`O&X*M`JS$&gG>@uXSK?@A z=gzghxR77e^DmR5Hbq_hWpb7T=VoHlWJxq@*!^oq8lmOwkeC?BD@u=$t+hN$qTR}d zpAE2`@@x=$v3i*RjfY^je+X*ocfOaPamY`@1w2&bgst+W|A3kqJ^o>oEfZA`_E zlA#&ayaLEoKw=Q*txN(<`U09SY4a9`+a{A}Z*PJZx+yoc*sWDBf4$guHKmB?X6DBX zPiL|Gcjv2{2!F#}L7gO>E+z%vYTF9X~mwcevzkYS#RZD2}3%39iM~Gq8j37 z52M3c9#&_Xd(tH8{89uTEzFqLt0Fo8r^!a*#-9`$-Py3}Pj;rEW>h?SJ{QHvznEIa@@MAapIHPYIR&o=zVzGIlD z#9$c1y{f@V%109HpNkrmHD66j6Pi%MQx`-Ea4KBqK=M3Lg~_X2A;h_r{&PD>?F)$o< zJjtkEc{IIkjBbMHtoH7QDFf5W1mJb!)xU>tLVA*P<$b9mw7MiIKyuMv$s57&p9XTvj&r-_se zn|z9W^`&W)C^dPZiT*DjY?@W&%G&zhzXEHHc>pN!t*@g*ak3h_6Q`eZee?J!>>w$r zH`?YZDJl7--ZxXB_HNAIoMOYrJCd~E`tJT_MyI9q;cIAW<8Rvc>BpZjzb7v8_5 ztqhs%FD6(TQF))tBqVfjcajgXV$8ZC(u|B^0c7-rH$x#M^+HpLY8|gh0MNjDdnP=~ z^{fFr+5;n$8$cNCB_-XZ-6JI}Xtz|FLT`J#qNyf4>iGe6;q(Vj)rG%KDTUcEChD|Q zCJ);{vFc&Ij)LGIH>WsV_~AjxMC2~%Z}aQgAfA~bPD2mNN(Odt{lHQ=z46>J_c%a6 zD_=yIv^AFU0E?XG(#q!1Trf1Z>AOW6{EUuy)ovKt@@8ZTXaxE1UENu9z+DC=yt-Z@ zP_4NXHxsI=qNFi*#pi*U|E4%0oad4}SsP8=zN{CwqQ$=~8{{cfP*Wv#X0k@SP0jpN zoPKDt@!^poyYA37>`wrY&VBviaxE9&Z{DHbh`M9seh_8v?^po@e&MrwqI$IJ#N_O? z%cH9!dsvv%JuOw@Xzg|1j3`KAcK#ED1GA#7Bw;3+=`^Be&C6$1djty}l(v-p?iJct zbblfs5iuuw(mR6G4^p9YyO~5@SX4VVR71r@);Ti%QzZLNKw=gg?ctz2>Oj@f+UmBO zs5&q*VlWIUGz5x8R%7U736lwO6gd+{2 zczW>Wp@x%0zg9jNgfOt8py~nQ6^n|FWLSOF>Bt4L` zFRX)xhWsguk*hcL-s#xfqEEfNnh}>~rk`JSpVF*5B>7Ki$OHcP%8}SN1G79SVlFuG z1wZ?YM|;y{b#OKdh#=s2U4xXJ^*KOo1_gCRtP?AyHXXv!m-9!Z=OM`@Im;E7(7K+% z$$9goj`WlZJ&+P7&IddHo(HSD7q!~UQTWp7|G{1-ipSaT7#7doE%$NoPsQyzH$VBNn|XkDR_O2- zjg#jI!2yJMz`JVZZ%n3iyL#5!M;{sH~Rl0+DW^#vBcT+vT*RhVQ_h?jcC@m&vXw7LQl7ywk^or#woArYH`g zTM|0>nNRy!ql-cwc3r?%Xb4uqH}GrEqU=_WbIYC1Fosqc%*{`hWcV1$<#E*YBq||8!3WW_*-k3&U~mk+ljz zflseoI4(&i=;x(o=A54B-fK-XNJWgrM(f%-rtm(lGvelE&6vJ%e~eW5vka4xh}sv` zWm1C^WOf1de8bHQ2QPmNLu`zc*!^pC)?_-SsvSxQ1OX%{=|z6 zbkYmJ zWwue6pSANnw)_;IvU}yp-I{>eNLH|H!QH}SE)^}pcnv-pQ+>xZcE|~}PbDyhpl*Mo zHU3$aKhG954)5@aj*U)gI0|GZKu<~U%Dv8XQbT8VeV1o#x3cE@PBCwjYpX%#IGQN4 zxe3F62VG_U4?)Bl{k=u@4_F0i^#t_ZRgh)Q_#ZbTFFMUjOJ0@TzAn{ODA&tJ z>|Cv!dA-ds)z)Eing|ST5SOXTaq-)SWtK4?0jsNxLvYBIh=ku7Zyx#`6K(N@})182Z7SmV7y_+O-;<%;ltCq5ZgNoo_DtI1E>>2PS2i=>yU0G@qYbeIBx^L}@>5|Dn?*eo9`5`oCHwA$TV=I3CrlQ4R0a6#vbr|D!Q)5*v{lpO zC2-shZ_z9f1&dnlRO2qcG$rNk$dKLWX-u%BBVyqCv%!8FLDw*jtkqB4C1GODl9+@m zB~ohofL&ujbxGDZ9VO2ogx*1H=duNk#R+%v17&JF1|9OH3o78-l8z&JM&CtRZ*7a3?ijFX`G=gK251e2;c7~HG>w$ znIXi|H!Y`ddv`^Az3Z{(R!uc~u(KpCatIQPO&4xtTj>hRyW05Y(~9)4H(bXNQNDi$2v@aYGPYH%tj?G`9) zUP&^;Q*iPerXw(;Dmt8M-PACaA@k-9J~C{Ug}oQ!+erH`qY1UwvB{`nZkGHYE+lfx z8-vtCr0yG0ezU$)yN?*ZaIP{S#!pLs)sFWFC-2$)`ZHauc)?2jqOJ~;%1D$@ckPCS zj*%|xDT|Q~mAL#zK*SEh+Ka5*&~I8-^o&i7t366uc7lnMFJYT?Rg0TF786A&e7VFK zCOe^~3S{0CyvZ5(1TkPxorh;^wZyVR#cG$S+)pPeq(5J6P zNuR$&!TAfg#)O^G%3z`o+oyh!+;a4zYJ&Lzv#=VlrvT$@F)w}SoBYef^RBABBtWh7 z2ccF%B%S>YPJ%2+DP8=N1QMq^CZMUz_t`4GbW`@?8?->O0ilR$`H`~Z zt|XbnsaW`|Y0yGE&weO|z0EV@W9@VZvxXJL@jH9SHO|S9NrSu!9XY3d2()b>kvsz_ zZ`%G9GUaA%>yB^RtrsK4S?2rtUON8$9kbc5t~H<-AP}fIVInY*JX~wxE>;pfcarkY zeE2hF+1v-Nc3zHSan7_h9-ZO%8*=;@?B+D-8F zW8rj#jTjF~3n&d3M@`H^`zn>_UXwxz+b?r6eW=CC)BEn&Ot}G#U#6Mkx@^k^c2ipu z4K4D~nfw4Zayt;X30b?qNbeSoKBH%+bF^^MUC`}4E6?f+lVH?o8k*D@AtH>5#bR0R zv2NWy-+ODhM%0+F_>tGR|1S9LY@gZTSCy3GJ}!#?7drqe_~>kQr33CHqgFSuZt|Na zcWc~U;pG+U{XW>($Lz;I82Jk*Mt=%eB(q?%b_O%!7e$2Qc)-q5NWkK{Ew-$i8M`P@ z-<1;FE{DP*Z(ttTyB-Kc2DkSnz-a*dq1`daJ05P#v`l5F=mZNmQTwY-VUC2Y0N~U- zVS%|4wi|ZFm=a~Fuy#1jSJNaRz$F^ecL1LkE5!B=a`K}x^7r+gi0HK-yvooHFp*5p zyv*TNHM*>>A9uwHY3mcO&4l8qc{$$a$MPHVMw`q-M07{QaI~>!zH2Isf%CLg=K|1H zUcL}qbYxo5{98G}S@b=O-A%?<=g({o{b7jSuVd=%h}r_zP;tXXx!F)1^@OpO?4Zvna+J?QJ)9Lk#&rhpNn}qS#Kq)65+^QW|bb_`uYrh?R8pISKrvtYNE`?eJt3V zEH1EbsEQ9`15@=((6~xC&|~h2D9*C^uATx zMKhw)z_7dP^JIISgsq-XgP0bpWrrJi|8Ojb;Kz z_)CE{u3JG7e$!f zcF6e1?3b$&-LYhV2ME|!*#E9VOB5n|eF%TzqY6S4{Fs7;In;6ut25}r_dA)tc=ORs z;(g>qg{Lyb|0?UMqoV5Cy-JJHsMH`ajI?xj2#7QYh=4E*Ff<5ANQ%JToQmwB z;iQ~uIH84`%7YhCBOXR5RTd46sb_Gd8$B=u@@zfl(M|bKYOfAE3Ll-3^-sDcG30W_ zDi36C-Uh{A58bY@9P1r~j6dHW>N?+mGj-V1hP-_^?S_V*+oDJ_(Tfevg{LZ9(**t664d>{PdAOkq4up?CKO&Ozx9QfGUM}2 z;k^C;47FCBt3~R%mwKvjfJT{qs=;gizTzXe)~3JU-~zcFVj*TFCR@LTWfZxAGB+NS zQs-3`)3}3bN4h&shQA{nkRl62u+IdleGqaFxJAMLn&z>gZGM6?G1d5BAs0YwFNunH zZ|UAnd=`4VUvMMuO4<5pRtIzEWtp2GhpNR-+aqcX&dy+F7M%z#rM4mEL0Z?aZ9zkc zM-FRDdPNAsY@!I2{_gY#hMwVfl8ZM*rxpf{Az#b;=$f6_fUi&PmraZ*lgg*#^y%f!_I|I2i($u3^?LlVmDm8pYRr8~qFEqZ6` zSI0?}Ine~R`pK&Kima9Xm%oaIqA54LQ7d1>rovHi_0TPEOP?|qUU`;iGD?m!Cfb5^ zv&mMg*D`F`vLn4u2~Q@TlaNe>0(iGKpMoHUZG93IIz+4U*MkeptbomkA28hc+OJ9A zBbUvZ`BA(+AjKlOdFWUwg7_MQHzD$9sr5ss;xEh*SvpzK=U{1+WdD8WGl^c+G19zY zl0wZgVRn_x`{1Z+zM4W7rUJ{gip}H6a5Y0=))*P=B1-TMWuiif=A&v@95Bh( zwisw)ijX?y4;mE# z&F>+adiy&ikJv+(f~7Tg#9RA(TCs>UI_r*WcPfT$jZ)ibo`6Sw+B#_yqYXW)-Rxr@ zOr004sE@0WTik4{9ZGTRkWf7DU3whlwZ>;yy@z2+&tF@JTQG&xBG>{EG#!OCtx$Bc zrv!?wV6kCzQa%X#mw8FaK{y{{3x;R*hh6GUOx{93?<2Dc=K3n|HJ&uEWg4}8Y|LR$glF~|N4K_FJt4TT%w&l@3 z)}9$u2b>PJ@g91!9+%K}+MxS=5bJb3Z&+xhB+osOKL_dCcT&HKH=Ut|P<_>U5M`m%JC zrpn8Lg)gq<0sjkD>vi(y3}@l@d=7jFgkDBBXWU1aR)|0avNCBz)H}TLQcveoZ9y%2 z2XJnA8IiqFbnga}Fd==>_Ck}Zh?RhfB&+?h##6ea86{sFY=tdKrY>ccwH3l?N~j--3tsEldp@I z`0GjdoqIIs)W4?~G0WCbB9n`(HUxU!m(potfj{$VnML}dA~VeK|Rd;&#%B`Ha*-Lz6uD8Sdy{D*&3sNtlyIplWrPfl(K4WI4iWf_rH zb^vB3K^v5a^y1O5x8dN!lxBRHE)@^FOQXy@zF-}{KN<*U9g9j41* z>xb+^g7gLrcT_KhRHJuE;ug+bz;>?LtjBS!M>3}yK+lwT`vP=Ww1t~X19O>b05}hg zNq#rS<`c;(JzI<^`AtV#xN7R;#t)nJRs&x&WbS1<$O`PjC2z-?NpmgJ?`J+2b?|P( zvsP&-EEaYL$XE0j)LMME-P$eF8p_HToafNlVp_U4-N1(Og8^vf)Ukhu#B@9*k;lc! z&t)30SJAo5H2HDAlsrkU`xh zbPs(%jSSo|is=F0T;V=G^mT7uDF0!@KnsRPXXBU*Apk*wKl55L7;3 zrO?^gdAi=B6dsuVhEwWtOdfLa@!di$H`mahFJWVY_wAi5`-R>6k4c2HMypGERf!I6 zPd;MUvp5J0D`T};BWEf(7Xobg4Q8zR{Lhg#gzn;sniw^(TwWIG6!hnHNB!IG(7W^g z0_1I-9COS-7?OANlf6SD4!L}B*65pe=LTrIO=d17N4uw=X~?eVj3mTj-aU@6yzO_O zgg?CdwGGT0cCLz9WU;1QKjR4k!#0eqwH}Tx(As`6hj!cL%FIanU znkD#1i!rb>oZwjL=g|&Her&mi!?IBS$LJooYA7M)TgLVtU%9Ijk8Wv(Bp!AF+7#7? zIyrD3#m^sz(^{{Hs1wpDu8~@m*U#&5}!`aWX$q0E42q$Jb zri7W9xxp}V@-bmiUq3lLhW^`GV??bUf|rRk97qsRtT*@WpWxfiQCz>|<;PecY#k?h zU)~(_bq4R=BmI+#V}6^EkBWclbXT?f2|hC9>MoECoq;&H&o0`A?@2ai+pxC}Blw>c z;vjfM%1%i}c2#5~0gIuGGYiJo+xyiRT1Qr^tn|?y&^&Br#+6jO3aN( zqE#$0l(BdrHLz1eCMO!{DzRb7;<(m}4Y(grV<+lwl(tvvuSQ$MEx^jp z&+XUtfYkkZi+(Gm3l{b-eQ!ZM4;?ek(I+00awTzmZ*q>Q zp*8f1INypJjG`&lD*?i#Pvc^`aP$~5-gY*+gK6iU*Sijy5U=MJ9zn;~^dIC`3>jtb zGeYgo(7T^(e)iJ6PAv31)>22SDG(^c?Zk z9oNG>#f7+4j!yd#?zl z3)gER1ZLsGyWk65uq;{^`hUaBq2Vwg)JBk=QL$*{Jxm|R*SLB`LI*kr5*Cwr>6atT zJ$N>tj~XPCc7gx3keC#SQSH|q`#m7=&41$yA6atx$K@Y8VsY?@SiWaV^3R0WxieQ| z);znhIdKGL8r)y+X=)Zdc}L_+N8e-k7qj*v=v{uobR~0y7^V5l zU>b7#4r#vDIepKhx%WBPb)|4J1T>QQgtbPM zqnc#3-jGPW6bmV=yonqj97rZdErUQk-@YJ2isH6T>;mLAAMC)9r}cuqIV-Vd zl;HGu-_Le=NgqhGxgDlZHfFy{VtT563iie1v!YgYlt**4)D+<1@%?rO=`+U@je zGaEDfVssq_$uXO~dPZYIFa*_QNl8jrZY$6duZv|OTHa-6OnYH3y);An7f#`-kVyG` z0RG5+OwlpTJq2i|-99jBo^{*O-Lz7yHN5RInw&mVi)FWI4PomhwnM?cziSbv*=eC~ z=XU9HU>m9H8gq~Gogoz6XMWdvCG_fIzlj>K0c!emdln%EifUEUAM{VxD4Lp5Ug3ol&nIN+ zOsuWIM#K`cFnJOP@T$>-Xf6O5&Bs;E8`-VLfeq&4zO1w4l~J%-ZYBrHOnk*z(ke3e z`|86Q+}=a#;!cZzfsK%HYvFA{eY-K5kl{j7Z2z)ENdSnuo)YAh7!L%5E8Rv)SUT<) zrnGI2JPyF3*yP?IvETxlL@P(3Ho5Dx>#N-H%^jq??+1mDa^1n6&Jw9wtl^7;aB`4w(yjceOssmc^>tqVFi3+%!|vb!4gc zfHo%5tiZHKX9xQEIKLkgN#$JQRC^QXlcJj7J4C03<;fi%tgY60$RMB1mX{vPN{j}p zFffTSOW&cR{;ao~BSaWNqE86 zynznL4e&o|2~~pFaVlR>LD)h1vi}<0AAZ$;em#gXXkJ43i<$zY}+uUi@dg{edG`E z;BTAH72`^%CfUY86|XFV_(F;iH$E6=y1Tldr*c*eUa$BMR4Bc1d<5WuPaG&b<7b98 z9|65MILo99HNVJcS=m~6?8D=|1vIAZmkCg6N&}vzx`T_L8z7hV^Im3_W!1s+;#ov^ zm3rlG_v`w9yn*9nC{U3RXk6MErQ=rSW=N|ITdjKg)W1Wpwne5+O%51oTkx4D%wPK<;=DrM>#r!mm0>^co>ZM7BB$z&Rg2RfE(BLtbV%W zVGux>pidYGF+spd`4!y(c`ivd=ucag2BJKvJE+b-v*T(ZxYK~_npIHyIBE)lhFRPH zeRrK)L3ctqc{S3F5s37cXUahzj1ayCVpEYLVOh0!7km@_ z;8wFyctwsTtME&da5qY(AORav|;FrVi$l0To~6;=cD*Pl%U zKp}wLSR0ecNF8 zL#bGg^Nh6>Im+)w{1m|gvoer?CequAZ7q+0Xy`(5rS-y~c8}m{1hG<&;I~dp;-3L0 z(g8vPv5Ih&00LpDVa4fR{jY|-M5*^ERTXTcmcQ9dysZoZE*@Equ9roPo3Jz&c``{Z zX+$XdKFdRVFl#f&B#P_BhtWZd#mwHI@{n3*1K4kd*F;aH5m9nn(2_AR z4kTm)O~yb(6xy zt{VHORkfKw1jtecqvoYK*#+~Fs`(Z z0&F9YyoPY|*#jZH|gdBPX4!GR-!?!H#;F8K-dJMs;Ro|;H z$Z^Fn_?%f=M_uc={q?WA{^jXI6sPWZfIoGPS?e2<)t~(u6hQAJ;4Pt5s@kk=6&(Pk-AYF!;@a$ zGJw`jd<8612lbr-_)Pd4aPe;@Q_!nu$v+Hu2-L%$H*v#!e;-51b2QnPC!G3y{?=wa z#Q)~W@W)YDeEXmhYW-OOCr7XQx^Rpc$8{jF&^Ei)bBn zAyW>;XO{m8mr-Oc*J@$4JI>?~27-NcqNE_#vx8G())OC=+I~Tofw4Ga-+{O5V*APe z@{v=_&~vs*yHs`1ePuE-8{cYiP+!ZCFkbz(VWAb$kI{Q8rJkW_=|fS#+W<89v`L|b z?+X|Y!*o~*ETGT#)qvu(3Qf5FmVR(SB4-+%o$m~6e!V7)_u-;B7aZNRk!LPfG(kGw zk1=(baTPPR+*V6XPo42~*&o@il2$BPQXkri8Fr|1Wh&(>f~kO*xt&K%R;8~h*prhW zP1m-vPN&r>_0ox0e+XaU0UslQCOf9bwM7I!b5^@+Ud5rS{SBC?LI4}AvPwAxm{Qj; zChtUN$nv{m<);tlp=$OfnN2(H@xjX#L!8gsLQ?H{sE1SDL%1@jdx*KZ7i{IYQFPyE z_NH0FA~GyftC5u_2doZT=Hrw1fIQK3F{PG6sN;+dy#xFYU`m0r-4S?07Xh8roL=u9 z)|i|f81`bj_|45K9u51J#^p0xX)T$R;J%xe@#R6Upihk(83Pih&l5}ituFX3o54Q} zR%Y)hPM>K#Px(A~qBHu2Gr6pXr+W1cR#hpWb|APfOU#9ny1s<$eDm pTkwZ*4j&WuPiSBNZuRB5qF)W1crqPuK5_#rWd$|)Z?dKV{{cEB?Kl7c literal 0 HcmV?d00001 diff --git a/img/62.png b/img/62.png new file mode 100644 index 0000000000000000000000000000000000000000..0da4b7f9c965697f4b2077425b8c31c95e8a0f63 GIT binary patch literal 29362 zcmZsC19)XYux6ZzZF^$do;VZRwryu(+qSKVtqE^zOl&86=e@W4cHg)6yXflgG)|xH zs`~4%8>uKSi2#cW3jzXyAoW8`2?PYx16cn01_k_n)1P(%{y;d3NU3}SzI?u!L;z(R z7jX?2WqUIhcS9#r5OX_wTT^;xV<%HnJ7)`fmn-l-0pLaamMR)9qE4oUE|&Io#447y zroc)N5EdpDmcx!_Cf1|u2xg9>v=ZW@^t_|&yo2^gVrKTEv{rVe!-z0uw&SwIrmiwk z5D;PzDKTLckL>dtZymYQ&(ZCnEgasT6$i~RKQBA7m8S|~6T)OKJ7o8W_an^anBe_J za`&Ut2SadJM%xL}Vr4EnrW9qf5;9Rr6h~Hbq}XXJv({v8-io|0646iju2!m6>}t$w zjvE>B9(1>lHMh(9lc*GOiIKlS1bImog=o9$xe-8s1qvy`v8{C&ThEKQxUj9%jrI-w z{RZ)nw7PndrW?v5emvvG*aiEA#^wXS05$~^z95Fs19tM4T4Va^sS}QrYK&)>N?89p>upnmswZ7x*6`Ce2 zIEmy-8h(XI58_2GrkAKlJd=8E;t*aa$7M77f4Z1krA2L0!rJfc-W#iwon0~|e$OB| zR`y%h&AjbQb_T)vp3SaBzLF;N^hAroc?pkG-Ar$K%p!;_EN0H|%XZw~R;ot_CNft_ z)m!4cu`zZq)DUFs9mW>rAk<`9%JHCu<$yVPiIg zsL}iN1z1eeZAzPI7Y;Mw^H90}I=z-u*pz&HWI=q%te;&;tKo#boNP@3v`=LA5Kexp zn6jvqc^YTE6@lojti|_LIXLEIWvz0{Weiz=%Q)>IIJkPW-nX4JfKh9hBI}WK(rGInAS73dj_=9tu=IvC~|OhIiiV z2xGcmZBbC4GHBUOZ)Cp`B0rcWN6P~8PMawAi<1l9E@0nQeEWCtP+c-dj-Cv^xMjlP z&O`qY2M(UScbM=;o|1VRP*c>~52LybA7l~MeDY;H^*|X~!)tQJUN2P&F_?=~HGKNi z!ke}&rpqInrw5+|e}PxQUF zq2%gyjs7+(h6ZnbyV1i5p+q81MFVXZ#`|uAeR(l>B1p@enAqWCf~F58kswcT5ta12 z9aeiJq=2jpFv)WWfFP z?$90AYDT7#D2g+A%-()iLxqyt1hrLETqE+H!w&8y>nbuBVA(V8`VF|s#_93o#IUlX4Xq@WKW-nO z_x#sn!E}D;GyQFG7WGD7cSfl5JB$o#aZfnWr}K8HT#?PCB#{vNO56hD$*|G;4yD(M zs`yTaW1opDRwvb0_MmV1vAq-d2LfMGCP^m z5EUD=j*8hy8`V0uE+EA1ggXc`us#?J6V+NI|3d;yD@NnD5+_&pSTIVG8tU>N@DzK0 z*@={z-~m zg>3%r?N3V;Yh~BvGrhw={V52h-=0uN9KWu2JCku)=Cc+D2(07jCbkSK4ipqZyi+6a z&BSC8P?Aw?)$5_j6aGXwXBpHhkP18FI(hpv9!g{!X%C3Zr3?r};McP5STAPfj|SB= z?`&RjqUXWkku^K*?k&E$HwCVEZ$y(}>O}aK+^@-VZaZXr-JrB9HzOIHFKKuE(q{N! zd*6p)0xON3q(teyXEy8Q=vadFg|gYK^vu*g-@oj(l1-NI(4s)==?todr*m%iEUcSRD+ zJFfUM0zLM3N53xC%pJMxcKSe$RNr-xvA>7ElmRk}t0*gar}zNW30;`tbxH071JOFd z7W?W0vDe+l8GLz8SM%wNAEaQa?d!N;VO-G!p)4#QO9{LO2gRtZBYDQRBp!%N)k<4W zeFz4_30cKvL4(gXs}hj)29j(U9o!py7_wreB#6eFmTn_NU)Qq4DGOb}^ACgpy1~%J ze9gc6T|q8lSR(~6MshZ^_|e7DwXP)O@NTxX3*Mj9z5|OX(pBgg(UN~J@aK704+&&U zPJS)q9_p0olW+jSX53gT05EveAxV8SryH73sX6s2!>Fz@631@A@vWuX{MwH;`&FlA}j7S#8yl9u;j@=FT7u|FG#?t9zqTZmuuqnVn{au)ol zOsBwukg39bQIn}ky$x+ieSrR6$7U}-ap6Ij43Mxi4IIw$%N8i3(aS)G;5IC$^q(4y z!b0_NBthX-rF%bTYvHdFD|pc3;{7?e$S!WFkU#dzzp_f=kAsKyw^|~FQg>OOhN=tA z8Q0vfat->K9A0D6v*>w7Nf?E*P-`SS*=Sy4&o{mm@{=VIVKpZwM;s-V@lzJBEb8yw z%S2lWj2D+lErSbfyrnGksUs{N^5zCHu-$4^6tuK(WMoB!uH4+6U;K`Bq-)Xe#V!a{ zzRPIZkI1SQdXU6qqEQ@HXsoGKle&mCxefA4BH#5HVNKJfnT{$kuQ{j51wLxsczGBl zsaQ+Y^^*fLZ|ySgT^es?>zjiHw#1d;;7l^qE3e%WW)6R2=pZ&0KP^(wWpn0Q3y>6> zPt>!sf+pT^TH6Ln>G7PN28aV1lVG%u25Zx}yhx89E#I-4M-L0}9+#0byz-8gr4Qm6 z7h{sYPrDYE3V=Ax9ZnRSAjriUl1Z;smi&g;e(zS&~A-6D&|wRHrdk=~0x*S;)4wY{;? zS@-f#Xm2fr>wt`RzN>*EGtX$gcx2%I@}5H_5x<9!{^hA8A(TR##nvFQBvMREg5pUT zO@@$A>v!1`Rl~$&4q9*EEW2XS$Y?*7)=g-t_djd5a>dB5J5@Dl95BMh0dhKuJOH14 zL%2=0oyO2q>d&y+W@^quTQzr>mlmjIEmE}%Syw>s&1@!y zBx{ntbnv!q`l`dtE<2F0SuQ8hw78NolL~7>$-(tyizCBtL##U;NrVBP&IO-E`I7TT zc_W!TBt&JWiBT*priyol12#Uf!;K6ja%Ak5EhKcP&?PInNeN2M23w#Xr-(=tMy71> zWt?$6WOpIVFv&ki(XC~EzpBoYuaA51a`=*~nSErg9zh;$(<09+>7*E+6cJzO?g$TG!l3sBBlh5;FE<&3LsL!7guVs6@n=Bs^lUzqp$le5srR+vrDD z8=vD@vc80LAJR_*8th@S!+_u#5{(X~JASGu1QJ%^>1mhvz5r`-b~2=ks}8<*{L)i1cf5vvkq>GJ=TXQrMC|Ix9r{B~H)8jHJ*xeb&fHq#t=^MH1cm(6u zIrF99KPu}%Ux#VDB@&J3u`W{5os(yEZPbUU|J)aloRQikNVr?&`Z80A{AG&m`Bv|8T>So%t)KQMB>!}ADv5Qq$#u|!tR zs6YJWw@((nX*Gead+I$C=>-1KkeoQYQtT<)yB8(?LsZw{^ezBH;)SrG@Qk>05Sl#$ z5n*t)w!r1k~ya1bUqWz3~nP z=e(&~DmvC*tJ^;5M#y7n8A5t=4Sj1&?V{h_><^DMT=eC&XSY1#Q#>N;RL@}QCg>@E zaAJ}I%%`lsz;wyZEVx7_4O6aD7ftz*8XZ>0{tdkd4cN-dlJ?Ho)W;4n5Z zvZ9dpxy2gOhc!c!JpzS@%ges~!>a!+CZCzG zv)g{M{3StNw9d}X)^o#v_zF%&d#*>O=oQi)QEm`RXVbv;1hpJa{71FbUVP+^u4u_vxy{ZM0zb99Ur3vuhQ4b$jB&y>oU%~ z?3b0QnV>Tj=A|MU8kU03A`aM=^W1jszd`l-FRk$Vs;jF>h0`VvOFm~OCcM0$T7Ep} zvZ-A{K-3C(N(@g4kG500|8{O50_Baq@j5mhu=0Q%Rw@=pZZ5*St0Q61j|ID>f0{^z zWP}P8>DRXZ2wkqJiHME$1T0k;D#5^QJosp`S%o<+@SbPxgv$$Bylh*+S z^c;Eh8b0e^R@&EY%04*poq;%TZYTxg?LiUgARC#Omxj^D zu^vI@ZP58Z5PU9xB`PZm|CgYbD+3IBuY)YCCTUZVAcFWa8x}eg?lVF7x$~uwmoGQH z#SVL|N^ulY@tMPPbqVcjA7yBC6uDsq3wl4XHJ)3(sm+O!B`p0ryRg4|ksMh7M>{@Yi9s2h0@Y&UNND=A6&pyZTjGTX69IlPSQPJ;YZAZYOss5|4jH-AD_ z-raFm4h*9+xsefP0H>1cTon*-2*Yu-Ah@@$AO7c zM!=V-k{dZuq>VF&m?fPRDaV1jJ3d<1;nXu}VboqkUB9*3joiymzthcC!gYn94>DAs z$&9P_3TB<}l-C9lr6a(Qv($?gCU-5ZH)=-l@2&OU5UZwNc0b`98=6KhqO!)aFsa%y zy2Ao?sh<(fq*wfU#ek0&fpuig5vnq{men$;JA5 z@1j@t!?OPKLZ05IXsI-tt4ND2q?@2$L{kodU6rzfb`zw&w`e|s9k` ztHw_=ux$2~*LiEXQ$4KLuaucn_QwX>#!$jYF^>8@82Wd{QzzEpA4BxT*r^dV){58A z@p!XxG1-p<^Z{k(>ZqdHHq**;49Q;E@ zhK!y*MmQKM<#xP}4j4lnkt3ntFPU1yzbxYyva^ZiqYBz#1#ls{3?Va}9|r{=vGunh zIAWj4H?e*`hns^{WN#5f*FJ%q!_u9+Z9~=Xjmaso!jH7!@p@|wxAnA=$5xtMy zdfr46b|+GXjig)}a}j@eZPimoFJ|Lk;{QZ(_&Hww6A>Gira^U!>UGq|`bFM@jk?CB zp=M{ARX{QH3&3kqTFFiD0#c$BNy44YO(=2a$MEu$^@5DQu21o-LUS;Je7^+M`|JW+ zw52U9wvGho{F76LT~{myg?2ZWdSg9<)~YmqY9ACu#MMEa{bB}ZD8+rSfoL=cir@yW zGjVLm2l3dhR4?<9%*%fTN{vMC;6Nbcy)Rp+5b9Wlx?eYUjQC=gQ6w1$mVD;ni=(2w!%7qs z+996N62``9AI886Nx&_JFBm*C4+$+QiVwZ&e5}$tT-V(A+bDpjY_{TOo^p}iSr{L6 z)AuwWiY*!D;LMtG`KaT)RXbvnSwgO3>_~vbJaWQ6hB{7jmY)Vig1am}C7vLv^DMKx zB=~VKOsp1d_2pB9eSh6Ycd6LMqe({QZ?sbT6`$<#6q>@l=1Spz&H^jy$qMqhYKm_6 zfu-81zvQlhVzmL+G%Xg8B#9Foz# zV+1z>u5*G(Fy&q$bV(p@zaiuxOOuhw1hz~-)^&xPP1D7k$y2a)GCVELz|{-Dnq{Ys zex(F?g3X1cwtNycl)Y<2qM)U~bVA@nyJx3N(TzHG5E94@$iYjubj+kbCXBD}y-xo4 z#oVkP@%1(hXc@{oDeI{?4k^fdXGS3a;`X1@m%|Lr6(-JPWMt%0G`AgCuLl%T17l++ z)S*iZOPJ5~QMfkH9ax&1AZ)HCDt$*fs*>^G2VzhKGp;5=?vg--d$-9dWcAmVuw1qM z-g&6udUjB7o8T_`gpg0j+$dHl4O|n2U!f40Y!1z6|}*b)Ncs|7WL`hjNMjOr`*iK<$U-JL`{&JV<0NVw0?J; z?pK78vG~-7&MQDyfZHhq$OEZXbgvbzff4mA<*^>=Rcl^G=A@8}*yf~nY{iivxi^^U z_a7#r$<5(7WFAEtA6W+3gC8I}?toB#2#B$l?{ruIVWjQD`7!>3CFy}^Ix_%K6yB26 zf=_e}bAzCR6NbkJBm7ByM=!q5Q5|{>FSwxyi*<9&_y-~+ z8Lw+aQVY4O6GV(~Z(xoyLxgdM=(X=Q%)UfeI+9j|`Zjt{FzHwULeYrZ;n4_pG|}Nq zvbc7{k1Bb?7dzZLP*xlxtl883mnUoQyc(OFGZ8$|->Zm>c_eJy{?>L$ZgmEM#*W z+^0AJ2$t(x+B4L*H>8{Di4&sN5wU zXdjW&c{_LiEFU2aoFZtmx$^Sb#vJzF4+&KbK zAm%*>^kfFzee6i=b)TIP{;+W8-LWQ+Xx~nKc~e6BSXc)rR$9h~E!QBbWZd=;lqN0iS0;rIBl^V|6TH?ZlkX%cW9!ycv z97;DjS3?#KmrKMdBd_jB@(@`=rWWY3t4Y^x;ASKx(QYH@4W0QlQF6gIcJBeu?Y6%t z1sHOlf&P<7kRn3WRA7EycGGBt&DBgmo`Q4rZ^8xq?OD05Pze24s!t>0%M85q2I3!m zuKGXzU}7?G#oQ(tkj_-WtRKlw(CELz(I4U?;C5gI{`DYrk3H@$#hC(BQH^e7*}Tl9 zv0^%Z>%|{DU5d4skxW7eAi=cN)$m}-d_F;b=c&wK1u$+eDV_QqdDO!HUTDR+pt_=L zG_di1cho{SI;;?(1xUJRfz&9R^gHe-2F4zh+?uP9Po_)_%p|YrVIsHQw3O7GL zkI&_>W4e5tA}kAda(TV?OnSVqjg0J2vlaAFEjzCo*I;93H`V`V=DKQ&Yg)j=Zq43Z zEVRIcyd-1 zz^oJ)v7=qxGgjaFGaYF*m>dV=#~!o(hpp*%;VF1w-YH%{XB-gI?x>P%5w#`$#B@^T z=HE_OL+p;nd1t=tZ_yc>q;$pFx6Qkg+2I+Z#j%n7M=mQ!e(V0n=PHN%h6B>Y{Nn#5 zPPjJmaC7%WdwqkzFtXATzAo1i*#HlE72yt4kXaxqmn8PUX|@3*cDYv(3YLmrRruU* z3GrkcLihi&=1#=y-&YKEF@JpY9P7;<6C9)f>73n&t{g@j@pTIn$U8UO+Z31GM28NT za%AQ$wbZ<9Nu~8Pg>A^07jsxDaXnj(sZy^Kuup;v!WD&2LSLk18Q^UC?&JI^ zk|aR4l{_%pMm{D(&Mh7`NF+u^`r_QadLHA-YY+5u?Ba&-;2b9r7?NZ2NM_!k43&BR`cd-DJjhLG)n*NX(M zW)SfBwU8r-jacuuV28x3ju2IawFiC z%*>wW$AToa&g!Sar!qF=?knOaj>Wj7j5|}~ji_A?oWauk!GO-GfE{zuQL|8B>cKM{ z#PbEQe4Q&J@*=^+aAAe?22$XT_=44YY ztimx^x^43H1IAEL`u$xWWnBfh8LX0Un|5+ORXW;bAieDFwZOgHla^E(z=Wx_?sF$@ z<-EB(4v4)u=*)Dm#2pI**};#ijgLQr@i#hR6kK69#Hcj)OJ zruK|48e)U{c{4WeAlW2{J>;!qcVhIaHk`gbNBQK#k4X-1RcQN;5_Z|_(eh&I7qhJX z*yHBOU5MxSoPXEN=o$*1ajkF~`Orjf&*_MLrCsv8m0td+8I2Om{UtEQ8KKqsqCw@Qp%N{&j7EVB+x;e#ZEoJH6kc1r_W$-p&0g`k95SgU2-{cQeGXM6f1z zm2o%=q6PMonG|=hRISjcsI;e2$t3C;Mu2k)zJ#rl89XTU=SLM%rQFnZQJ@C>6C*$X zN_V=@MbOr}E;_^yb8*P;(8x=(|cXfZmijCemz6!9xZSsT}sFY;324y_`#fM`C&`%l^{jt|TwBrVG2 z9dbD^VOynru)I{5(+q`rRSsf$v;n_~FWdt;UU1o%JXU8-#v?mNDqm&viH5ey16*?9JQ5 zP(#(R%?5>6rO9>%8{GCxTthdeJ)gnc>8 zSN~mRdXo=FTAk=f?j*D%P)tqa``7KZgojrOlC!5@@4)Po$qunKse0dz`ODeAK?ljwPE!r*rPcw>q?g( zrRkmhpWxHVKEn#Vk&p($DZ$0``KA%$qOw6bMgqzv7d`zy?yoFv)kyk704AA3(JRVO z&$mCcp1e&|@TLQe#0(#qh@Qkrdw{;Fa1>+T)yyq8`?!fsLFulU??$uErHkOwQLjF9 zELoSU(rMqK66cH3~m>-^*GTk8hhDy9b!cxXdahCr+`%Z2fYe+5zO4k^ zj-4a3_CeLmVy)49iQ`n*X0Mol^f{OKIc$`cCciqf8DiONVXwD$Yft%|{!Y0hJ?WeW zN2YTM)zq2Z5|FyuN}nn<-9aqBF-K}j<**l@Sxp#wZ=qCrAlR{&j5V-a1oPwfrgK>Y z%cZ>i$4ArQ-_4hcPmK|%n}-e)a_XGPE^wG6?!7gc)Vwy*AY1LljcKS01omAR)Ogv| zE#d)oR7z`cG9PKRI2b>WT9xDig*SSV=lajvN%S=WQwvl&PzBppx9`gxNAQIFer zoiFCx2K>RBfdoyOELJ$-*#Ar+XoC{?nEkdrRcN`7&FzH0rB9yEL`z^ZwTBcMcOPV6 z{6&vvLznk%U>s?2Ytr1*GV*GR0UaC+Bha4Smf2#kBN(K~UMMcU1SAb0*e?sm+ZOR| zfcyWuo^`-v)-27XqAO8%2)S^=t2PhI@MzAK+@Hw4j97RaB}lXS^Pd zO5T8d^{&thu4-IEvcz+}Jtbt*(+Mqy$FYVOM{$R%MLIx7<7R)r(x+ft)XY0H;dPkuxY`;`EiP?_Es%sVq;qxvyP@Gcjk%4pRh;s zfI}(7v}yE%0Wu-tFH9r-VO<2tLti@zJj7MSF*Ug@{TZhwhZzP&Fv+eB z2PH+*$?a|%X~X?qBbbySw-1GiZUA`WS}Rch1=+oYt6Y0{qljV^rTcw(1`$3Zt@!*g~SaONDhy?AZ@V$+u7h2K`q6-Id3)Z)ZVJS7t&IZH{M>1+$1*73ZA0q2)cTOTn?38>{L)p51I0~iIw~OwUiBXgqb5=qtf&FYXh_^j!rIvs z9o+3ngXKxR+hn8niWwP~7%aIvg?tlGz?+Q687|RI<%)9^rv?|-HqZXj*nt{fa5&Nd z(;exJYhvjWhs~P#jv+Lu7mYIyj)r5w{_^Rr>8kfQfsDl!2gKTY9Khow^CdUbgBs}> z>C@$fi6#+eQXJ0t#phKuq#Zd_Bbv8+!JL>-M8$M9*+hQkj3b5hTow)_-0Gm%&Gf@R zzN>Pp2tO~CWsE=yJZpwdqNZ^w7~kATyN$~niOor6cds<9&}Z=eB+-$Nm)5w}x_mbq zPgV_F%@n#Vx$x<{K}C(n^oE?~Lh63YF?s2b@##3AEq!~gH?0HHb>qpLyLjIGQCe+l zdHaZp_&}>XD*B)7uEPIKL9T$6zbKXL1V8z%qPBxbWeIugcr6~s)?Yn>VcG%YwVc5I z%BZ(%pU`|h!2Zmr^^m^^e61=s5}sIa@BpA*=MEhlu4}G}?b!`rJXU-T_lBT0J``oP zYsxstYRsmElBqOfwB2L?7xp=dvHsnGJGL!Q zY}wxNTpufnQah|L9NJp)4J;m|C(@N<4~{f2pAuy^2+|c7g+YV3T!1vQ_&?CuP_%rI zm-u|~Iwni;mxPnSht{JGEq<%z^lv1Ay}H zs^~V=3RJR$Y2P>~H}_W4CN*DAMKEi*C5*Zv={|SpLq_2K@*MJL%E@K*{R5-3agShl z%PxCGPihULa7v`XkYqt<(k(Q3vtt=-4EL4*!%!et(PHG!fi*z;pVV%s;0`!+1 zWd8_5@;8oU({DvQG{37A{OTLvu*N{p3AT;$eR=7!s1-GMuhruO*m^OAvw^3@HQNcZ zyQO7mvOHW!k!(@Ao;gV#K0_cF#|+j4fV0u*6L5&vD-NHGzUVp;O5^c-y*pVQC#3kR zR4%KRCGRUr5i+PV%whgt-uM3j^8bbFOO}ITdTdjqnkYwig(|i==qttgwt7wPNUg<^xEImR03`+cS3tpa zp3Q18f^*v^X+_VwMrZA+?`vi_3Tu3Nnm%p09+b~=E?_i{XaP7gLP0;J_w{_xxV&V2 zI|kakIH7ADbSS(oHJ(+C(J#USub=e|LrVQ4l&zf;{;10FI&i=RnMX`Y)^_>wAdB+S z5}Lq3^y&G5Nw{|MqBOR;X|OpfW_`` zz5B{C4n=5?5}RF0@}mw7+Y_F`dzL2lJ+UuiKCkSySB~7;O^2jQ#gvE1s+O!`)UPzB zicBrD=UG?r_EUqba4&PN=oqh=I5=yYi1;L&+zAvnW5M@Y@zuR$px6+z&5vthD_*xIuZwVQBK zk1_M=dE$yUALSyfcXrjRAjHzn(2qdE%^tdM11xi{ewO zR8)o{MwWMu#GP?n{VHf>+c0tT`|H;&#`dPINLqq2&N6A@roQdbvN44&U1Lc5imMg% z>MEI($OPAH|9;!tk?_X6eWWvyco_#WNhuTNqG9EEaG&Eol%}R8h>5AGN>O z0KLb>e>B-%UdlQf@PjAwV;rE|I? zUUjw7u0Eq^YNotA6D6d4d>f<;%V!!WcZ53aQ{Bz~_7}Yc#YVQ%E4PZpJB;gC0rAge zPTR>nQ*4#Ho|z0}P}!aA{!WV)y`iC@iMimW=Fi21wR}*8T)v7%gJoLzSH2&0XfwhlAdLB00FsBVk7w8=n zK_dOZ+!LL#_JNe>KzQqW`Yx8dhQtnTY}Y%JnFvg_PhC-yoh`5@1x$5Bo3inE!|1Pi zK{=tg2bvNK#mnpuiEp@Td67u3|(eX7Healx^rZClr~6Bv0E?Q<2yMO3yHGmeMJWC}C;yk$DE z(pX@UAz>&q+V1xLQr%>5(2MBGk5!i6K|@Q@li-H{>v1`^c)O2*rT)gz`T`7b5x(?~ zNXVBcNVYq*Fs-iAkX}jw?Z&nq(LlVw#k2c+4bVIAz739X4Eze|p6mq1wj57Da6E|* zF`^^cEF}G@;Pw!6F`OG=|MD3PAPIkzGOeZypBfnNd(r-&gXN&4#jvp%iIBHIQ;w&D z4T?!A-WPgpX`cWPiRCj3Zvtc8`JdN!7=ER^;Lw_6Nz^AQ$TqTSK#Q${ZBs1+SNtm| z=HWDCd>^PshsPW|x)^WA6dAtxVs(T4%fcdR##*hXL zW$;-Bfx}G;3K@yw#85M|_JE^BJP?!0-s=)r1VXH3_jd`}utI9!lw} z(OuzE&m1n8F66-?-aoQ8356FWDg#vLTx=8&db?c6Z|8UAwXmL8-MEW5fq8RxFlKc> z?GRU17ooCy==InjR0kW4-7~kk#9^1a57~jvNB?`5Sbf7!`?w(z@&K+g;8L#305z5i z(EHHa*?#IggvNvGRV*ZHfwbp#rxN9lYv=ngg@bU7;VH^Kg8f){bLH?K(6%KKw0*)7 zC8Hgw73}W?Ada0GdoJZ?JwdhdIe#2*F>X$-xz|{A3($MXA1plZt~N;x$Cn;YK;uPS z4V}wD0~+Q6hn)IHlunvlprJWuhF+~Af!^UVIF3cuj}w44yPkPqerq`^rjK}oB`$}J zka-l93(G8R>v#V%T`P8vV^6)qWPOawokr^6LbC(RZ4=&rB7jyNc(+TYYC(gZTj#(}>r=7P`?(=|-0i|@u&K(8X9JzTTsY4HaEWDu5k z3|zM?rSVWi0XERy$xKd6?9CMv{ZR5GGIKq0um#*(Du*nx@!0wMr?1bpr=6Y=G<2#% zqOjE$*2G{~ig&8_+yZ0iAXfe2WKyWx{&mY)j~`D~J$r~LQ|~GOd+}F>tI5RutcJ0hr z;xHh4_tVO)cSX&=W11kn!;X%_4UM}Q^T{i zxid#>SY9Xb_b;-OeYT;ZnhkSsnw1Vqdk*S*(C2jaIK>Y0?+)}eUkoAC3Qp4Bi>)64y9_6Ipnk_6z4W+veaq_PkF5sadm~jT)~@v!jO&7TbMG1M})za)FRPvwbn>;jL>QAoHmmPY@ z!8xCBGaV1FO;5Ef1DXMWmgR9=LPB9JEgld{%hQl>Nfo_>%-litE5hTirnm@ng3h6& zbFK`raDkb0%u;Yl8&V!Jc zf%j7$jg0AvXfG2@Lmz*!HU(?c*&LntP?wsNCS`kvVu@-^SKay6{jte_IBHh#_5l_C z6mt7}3nzR z?M8;##C%N*{d8rr1Z{6`#tlj4~h0c z+fv-h3vq>Iqw5PK6L(%VZ}p%g;lZ0VI#Zpy%O`CjRuo^rC1OxGk98T>?_(DAh-i7Y z(}yU$?Ssge_srh_8{mEO(wYO|!v+<;?8FpL!uTfDO;|0P<;Zx0CG9I#QAT(;f4kEg zl2C|Kidl+XLUChls;sQ3VQ3XU#0b-QduA&2ek+5~<#R_)4qpBX{Vz-7SR%CrWmSHT zY5~wb{!eb}J3L40vNt}Ox_-acAIWZQ?7u(*xcYx_TIHsGT3PNH%%=!;w%0}nW05{? zfS}0Ut3S1{$Fjs88UJqm{vQ7E91y4WcCX!1dh9?Slg(LOL%fgvXTj6J3DQ*xm>=zxcq_A z*eR0@SS>-cP}iS7MiR5I@8>-r}{XrZCC)4264^moDunub9@P`81-9d83m})xZ z>gorK^8LT=1si9lM$M>kgGZxI%|64Ost-byJK8>HwT*25`pOn3lVt4GUjMhI=>o?g(y?lRa z8aX8-{3MVQuOGMb>p5RlanzE_^VS6ROV3Ii7rosO_%Wrq>sQ7g>PFP9Vy@=K9!O9f z99w&VnGBL~q5NbR+$|!==Ic!Y_(zxk3h8yGA)V?P?I%4=lH8D;91v=$-?)65Xxtm& zJI-ChzI>s>;|Pt8(aB<~*T$Tg{lDt2Wj#+YgJIiCHzUWY^EVH;hkC5@YFPN>B`WGYA?t!o+nWc01K*FHg;-E*tNVC@wU zKFRGf_U8?F(a)AtFa6KGn1mWBplNFTzjFcF<3-v!vba4=kR}NhUS>H-b?Wmk7k0*z zsKosc-QC@5_2cSn-n0haW}%u{tc13bsIH55j45FUF%RP67(d=Z&@a%y>P}82;-5^% z`{U+(Sz>3&CMOln`s~c?uaeqd&#OELSJX4U?5{ot3v2Is;sjsjebjSqB3MItx$wj` z4K`!fU3Xed*K{3asAYyoH!y5MyTNEiwfdF5!`+cJwKLQL9L;*~aBQ~kZtgyO^sh3!q}$5J z^wZ^1-1SIY0Rw~f{U$8Bk9S=>JQevBkI1eoqbLsF10PhI=B~72&RfVih}?Y*XQdfU zeE(NtUm4YA(6-qY3$De2yA}yj+_kv7JE3R^6f0gR?oNT??(Pl&N^y56?rxjD@9sI@ z+5NNmkvu0dGr4DOyY6e|=_121Dx*7Cz=`WH`ZN;7|HcARVLlPA#Y4BJ$}12^<@4sW zqbfG;E5NWWZI7TX=2nM{TWH+Urhbt!QWHx$ZO&j=?<^aR)yn;<={TeD@#=0(oZRS= z*UKSNa$aX$k(ka$S1!Nx+PHVau0vKq)Qft0I(kv&eUO-^B7P(VTBz+tEkJWPw$#dL z4VTfTJdyBgP^9fi6gB6YZ9T}m&X?$_>ZKEN=Oz*j)rzWWJMDR$seS1TUMY@Kd_D>Z z5N~+;Qko6%dJTry8KP0GBsCxl?Ms-|fMa9TXH|x`ob-_e5_laA>BQ-eVj}35T9#Eu z1jKaD^OD!;>1?I@Jn&elMf9{*`2O)-wxwG-=R6l8PX%*cKWK@&m%hJa^Qh0kzni2% zX5Go{AnM4L-e0{IVza z{)x7yU4P^!6peFxBmKk$^`Z*2gxIBANl?$wdM10uX^uyPUj5yo`u)^5%$u#HcIHCK zy(v%MJsP<{sbI`;tB|1_NYOl4bO#&2PKZq1z?Qbl!INqgSULUzD5x5H_x{-fA~Iu)z(9x`dt zu1wpLw5|5F4y8B!D-|1ZXM$TQUT2oVyo$&~A0f{ZWAc1gPP;<7o`RIvX5#D1vZ;BZ z4A8luzNKe?&L#{6=`R|PIcH$^*R>>a;~#^z7x&v0F1Ig`PjD+waH~j3;n-&G z7y->f?_^SgLYId|t$6U_9EBsVnZ{4;t{)j5GKoV4UIskBvOVnFS7c=PGXDNBMhANF z%Q*|&#T8h%GUKxvq-a;p2axIU<6eHM?gI)2@hGVLRQvKGOw*HO5!=r7?!7xSl;=`h z3_ZC4siI-@sxmr%Qq?!E_tft zy_SbmU#D-mdz+K)!8}agy)BsgkuX$Vx(BCUZU;3;7-)pVscdv92j;d6Sr4oZ7+3P> zt!y!*kV@EntD={iutbL?Dz&dq4*AuU_cus(mEeO7dREO2LAn02Otj&(_|UO$z2alV zR(N7!E74vDJ_nVwKKgY0QiPvgJ%Vzl*+s)Xd?~db-gV;OgB0&)JcdGNu`QSipX%Vo zXH}YR@hBl<{nsCG#31{_BI_?cmXhxE`?Ww9Ij@H4#1vbQnyLde4GWs`Yk|rK);=Aq z(}R|s6Gs7>@)_`&ooIs-DlKjBU&rFY-B0x6RqTwWtsauLxKMLb1CbLRAh&?hC~n{B&R0^aPHUM8vPq;BiTXfz zq#W_p>!g&y^XsNpQHyzmPxx`|oFQ0=NnTVW8rokPTQBDyuX4kVnOB5N$lF7=-+{zF zxy)B#$!ABiz>Eoi2hMxrsYfQFoH-RF-mgm4+v?t6p#_^j*EQ z|Ck-AThi*nntPF66hV!<)H`QqMIj&p^-jcZ0A#cFoVlt{p#M< zxwx!-Rr3SN7>J`BDvPe)MslGYd+A_RG;`>$d*M5-eM&MHeE&GQOWyN@pvUsqsP+;J zcSIMC%2aiTe*t_y#BHZxtw8ATZAG$NN}P0g!Z#dMI^3wd%X>CzC(n*WeHvcz+pamH zLK+~~(WyQAgScFI4l$CFLMZBdD>bIiSDyY^SuKY@n5$?{PsxPQ`YKQ*y4Q7g{6%?2 zz8OPtp)^ow3O>z2=yhFdR;i z-vg4k7K_8Bp)4Os+@Ys)Cf8M;S;rJ;oC|^jLlIBw7yk)InhK2e4lonK=}?pLEqynp z#tcKmS7%tR8czGn#r%e*G&&m7x8wKj!C|QK#PgZ3aE7pJZ1n5WaO2pqAw3J*k8G3~ zJo<)8uMA;9hyL9{iTt2l-1?McDcsjfCV4g}El*pjdaF>D-O+Kt;Z-@5yh_vbi7WLl z18x7{m*wKJ{JW-73Vo*V>Lz0~O%(-bfQFkM@)rH`glAyVcFg@$;4eCj-(OwP9tf_s z^Y!Ey|LV&cwkrpwvcP?PG5STJp`M}BdEq_#+qvXh**l^A=soAX=C4ev zEn@wArC-*`O4Qx{*5aG3WsY|Y_-Flf**ykx(w7lGg(U-;gob~68La;Hk>9C`4qu0Bk?GOX^G9F|;sTcP-I|O=<{w2hF z_Ot|eF%Q3?2dqU{of{0rxIIaYa_^c8y>Zu0@5FpPM0!!X+)5;E8Vflti#P)&xH-iB zE>f*usDg1J?KyP!IGH&@WpzP?7o3bw;3CIAP$cqHx!D!D?|yhAxcP(=USG3Xi!f^f z>8O}U4j+|U-0Qqm#a1y$cbMJaJ0}~vZjXHACoB^hTdE4lk4WOa!t z&|K%*jVd;o2l;eiO$#fCnaADwtV7tX4zj*CbGgja-XcRC1pyh+YJ@Q7P6@KPaM;44F*(vO9Lpb*sU(tUFQ_?^LpD6qaPdK zjFx?q$Vp;6PG5v8@6R`H6Ex@yXC6aXR+N;6jQ;QtR>Q^dryYq{QF}d;aWW5hz)h^DhzbLeWB9T`eq4;;&KVH_pMf=TY zOxcGa{;b~bthg{FC4>-QRrCMYV2)-`8KWAx<@-o*C)p-L+iZx}ab z(D_w9yRzegSy!NUKwc}}sVVq3(rnEOCgXJBuJfM-Ql18mFWg_!Xm~0{P2_x-T1AkY z{#ca!I`cvQ#A$UUd=e!4M~hX|-HBB$G!r^}$E#Jy8*{N)?GM2~?qPtL7+>~R+pm$v zHrW(T2jvEk6`GExkuJZv{tgCu-g<9BX$CiE!XaG?iaopNEes&D;NtgMbXa;~ zfTFtL^k!_B@`p4$nA~$F*JdY zXmEtsHg0Uwn)h2u59%ry`Z*piNVwu77;NH_ik7j~s~9W!${(kaic3GoVcWxfuMyzX z-)4naIkP(OOD^8V(GltI7yDYD!L`?y=t+_+cKkZ6TAxESPO=4YIZmz_vfSNKB6tq~ zkom1uJ|rX(-9@Jm*CPJzymySo7ogA)&G$5POHk2mjT2P5&JFSi?)jqngZU#A$=G+e&DpSM5&xg=JI{~Vsj&(fmD zrm1fJQ(j&_`tUX<-3l%++M86g)FXb;0a%#D2@!*&MLE~7hBtX}4_Qp5G|Gl9yG7_# zzkKlEtJKXszrN0IZ(rGBZ3-9cisXG!V3`9vw`^8%=+Y3i&VsCK4o@NiIFsr%YF;)3 z?LJJ$bY5eXPBp4rRN0e1B_;Rc%XL3`jwP0LK3U>@8|1#*8nkcCD%4Pt`j8ymP9?$- zg6_4e7M~^OIkm1#V9=LX7T~l46XogFRtMEgFWO6#0M-8Azkit?NJ&Y}D`CDuoe2=& zgns9)wEp@q*BNyn`a!6A@$%*mw`X?F?K&>J*j?dPr|lFSKARB~Mxg+ez-ln)t5e6{ zXh;`MS$3ez_0T``IPO%T^Ur$WwHhSFTI`UHBnlB`?pD{~1$&p^5Coa{8x3NP#^TuV zbiTM`#goVObYpl{W(zM_1g|htTQ|b^bf)>biiF`$AYEe80JoNmj2X|0&&sm!D~a;6 zTh&3#WndTzbA(E+P zjkZu}jbqU2-zQ~Xl!68O+KJU-@=Bowq0-x0_4%f}pqfC-1hBD8kAu+HH+QxvjdsBP z(*#wmw#bM_iPlaxdMMS#0xMpJ=0HxMz7EO!VUc9H&O}2l4hAWI-$QG^c0D`Kon5^i zol?e7=hJ9s#DVC8e#p7TGMi)AfY|YpXF_^Z_Thn~TQc{71VIQA@Qlq$cVVO6m3d2>sTd0ahzo3zG6#J z@qLJ@_56JI3{4+x^~*dB{wrm$?#b6>BA%q=G|@k!^pk=a-EkEmswY*|bE|pXy=zmq zk@ZKf=9G!ErNb?FLH47!+MN$GHqmeYwj%oR*m>dX6R}$W;#$&kW}1OV-|B2T7J5iP$twbZp_MQUrU%RyX=rL5z%G2hySF!W4@xr- z(nQK?HvSTu9GvrL3BbXjye-5o_`jyK?kf#j8xF_eFa_D|;F{gYpG8X}bNz@E+D>LZX@&NJV_N$~GMgvHZ;10(BXN;(F}t`l16ToTfax_7$QyM- z_(t3R_WXRm{=Li3M>rS4;pVyd+X*(kB99O03YdG!q`NLIWQ?a%Zn+J)u^q^~B~dygi;ig3@$YN5^U-k~KJ8|I2Z1JaP`lgBWIy|B~|H^Z785 zyoSJX`w1jWAZ}3g$ZPc=*&h4ZR*Wx^*nsOCyq{^j?=geF#7{6w?s9t?Bw zeSKVu)|*eE@Sy4$fZrIo@4Q*G&l5rv!-6-3_Za&?{O`i!zOlZ3V~_U%SeM){XCN{Y zeRG4s&u_qYMoKDN*9bY&l>mk)e~7xlLJ-3mz^;i8ZSQaWXLXSK$!%|Aq}7_k5X@Ge3#g(*X zU4?7wPDIMo`>g%t;c)+nNKsgL{cx*!2-4C3@(gR9IHq~Z^MVe*en^sl9=(8yr``pmkZp-i3*2VUDUyA;T%y(0G{XGo;k`(3H8h=1a! zZ_f%pQRAxM?`b)+lOHk+e*AIcoO$1u!q06mTm@cD%+Q+2@#0AY&r1N=3e~n3bK4X9r_~`ir zM&A)YVGx;7PI{4TMKm>calo;KG^o@ZrhE^;Z_Ap)yYru2e_X~$K|1XMH{`bPLEEL7 zusyxll^D^E(IB>{=+u3x(f5bU=rlfu-iDUXCcupK}@TNK*ivE!Ij^uN!&unuBE#R%NV-Sev z3;PBRMKHE=Z6Xt#jU$A$k)cOiMHf0P@FoFfd-CsAs5MAdWnR=L;jeYx#`)q)+yIf- zNlJ6uL?;Yx!y^x@?JQo4HUcM(J|1b=ja&?Q=7o$WWc>Wgbs-;R^3gr$B0$0H^GQXx zniE%P!*SkbU^GXYzU;1{PqP27>_Sy<4}maKH4$?StV?lZ`&>L5a_0QaGxsN-2Ei=ws6tWZSAMV0#$FfRJ zxTqrtW{hX(;agiPs%A&BpPOgcBe&aecbBooEw+3{LyPZ``}%2P9!3a;G~0Uz-W4i; z5t$<8xtXyHi9{Huq-KsHU(-`wb*}c2CIq$>blrZ~?0~BnhGcmhNB4qvulk&Nd{Lgb z0-T^4(^=BxGr6KvPrI;vxu7XDc%c-<@fDs6^5)Q#AoPqs2a{_vLZh0Yj2!K8lF)YB zqjoHb8+8r_|0zvGmd5uYB`$gxt~*sS|S^+WaLDdlD6uCGYz zRxQ;98WWCo-%qqCdR=SFQ}WA&DnWw073k`f*Y|rvGH$qvK87$wMd|B3`mpv}vN+=p zgI6;{Y%2<=*-}OFQ3l+Bk6E%}_T_!Qslf`aFdO@pVy>lkpacnKVqZN)@gDZbP1X9P zFNB{kbSDPkyMK5p`k(5y`S=Ky4L=&Zpk<-bK_l&YdTH?*?N!t4IWpNzoB0BU!d!X+ zXj!a4ccJXB!mI_2mmEBA-EnFC8ge7U|LPSsJbAM1WG^^p@Twb`tsC?iP|*i$X$UiR zPUL(wLtAi6QtwbyhNbGVHUv=mp}OSqQ+?-;X~m38x$->8^9;6UFO|MbX4&Hun|)R; z75!x1ATl__ydEfOMIDuKdSo3kY94Wh03o= z%jptXT3RL?4^znFd3KL_jui-!laoJr=ajd@dHbB%o;pv)M@Ju0F_33h{K!Uhn;aQt zBavJok^aS*GDU|Q<>-)d%n=l7r;4as{5t*Cmq|mOD3%$8(QxtE<)l_c)@*kaY9j>Tc7~P`7}AulmtHk} zAc(dl!)L{5!{2VB`w(6;8{$Ur%bUG{iSd=L6H+0z0y~!huxHd!5@S|FKaEYTo53t-i zGv%i6CtE9*dB^FK&YvRHh4gAewG7fo7%YjhFmjth+XX?jRy@9!^NY`ufoeko>GR5HCq~)4^&a8VR?P zCGKL38_m;yr!33|_-8@;C++>cqJ_}sjU4oW9C8^Lc(Td;iECw)O_*$U`LSXcv*2DG z)DT1Hh6~MjAnx+t@3WnT$mG3*62-$c*=!7DA5IEq>>C-ql}bs9A^UW|RE}|sC;DD) zv6r93uej^43htvChiCNQ&l!do8tz!<$sjI$cE7_e4d(<XMdJ z^CXApt9J6kvy?_gMNZXUN6BCL*o;7%i1PVyepUO=EoD2z`lEan{&v$Zf!^+Z+||qk zn+#*ryr-mK$i7^&W8k1ApYvw9Nw;3+At^bjuE53?kQqI#M|ULK?ta z0?ajyuYi2Xl*+#9#gl6U5{)KcX&6s8h4Yz+nC5zZ1>7L2&wVBsJppr$(&88ki1u&5 z;R)eJHbQu6uU)yoO2I&aVMSIV*gF6s{p{?4%oh6$;t@$(ax=PDS%H> z_-WXWU^6?M{?}MvN8=dO+lu@>tu8c^A*W3-REa?8cfR8>61;T$JvkDCUt%^=zN&;#Ml(tF25wwoCP5b}xC15kJkn zP7Nqm-ny1|w<;IiG}1XfYe^z`<$fQhx!tJh808j8VH_XIKS0r6FnW2TQAF2Z))4te zupI<0v*1P!)d%>PupYj~i2K-)(Pyrhngi9f)eGg!wp!4VrXdY0uA!0bm8Nn75vzj^ z4(sz3k!>sUlBoWYf^GQExQf%3?Vtn`+-tLgNd@tEyRHDUk_tPR)z($qy7uOiK~TH*c`# z{@o+sb`Kqvm+`BxTAk+)3eAa*g`Ko2vaV6L(#F{O{-(OHfoI$0Mld2=8b4B^x4N~7 z?g@mor|cCP8SJMi?E^!1de^mUAEe^6s?zwF_*`_EzqCfF(ucRM?@0O+3`DajU(oJD z(<^gsY*2GxJ^5V$fcD2|KoDu~G&LCf``wy*oKR|ULb27^VXO7|bJ#$)5hWmR+}?c> z(4z^Qtm2?AXJz%i^yH@Xb9XVeLaFU*Q2u9*(TuJv-iJtxo{P_tvAM0JV)eI>!W=(U zp>pun+VA%~H}^2le|45zgM-ZI#usuGuSRb?6W zYQ5Zek8KO~{qFswX~tqd#K+aOljoo{ z;^pleBxD3FAsYnfr-KXiuSeXSz3okU^O~n^{xIkr zzeu#kw#n2Ki_6@cq-;E=1W?^ zXXF$S&5`J=O|iH|Tm9HZu8#E|9az2n^8_KE80Ah*Myj;>ERFy07mMad2kjp0G1Ha$ z16BvF6eA}Wi*dskmGN45kY}X3rO`);qB}0;GW)DfoyqG;!c_r*JRCByNm@@23 z6Pvc;MeHZl>l^X$z7F16gP_0qx37v*V92)DdG^5V>F|K=8&<%6UaTc9wY0V8myZ+Tl^9kSY<$k2wm8N(R zvhzBaX=|U&^*1%5ENSB)xu;tJ>x%zE>9p?0hd-;UtEXvCCZ1<%l2i}I-0`=qZY3F% zf9p(I0kCT7km2&kY~roTDxUP_r}QC1YwP`~_gt-B`O>r7F&B0IuHBP1OKJWwCtELq zkr}iqZ8hK0E;FAE%C`kwFb6L6{uq0`eKwS{5Ka$}H;g)Y_V}~<*}YS%=UmPRX63(S zr`^p7Q@pf|%}7e}qz)Gtm}ON^KI|K)QN4GXjJmGXi?~--vk`{lJ-mxNA&aY3Qz_m) z+gH*O(pJ9O1)IHFfxA}6!C^5)9nSaQSf`iCA2oYi8JjPEziokc>%fy6M)9ZGpBuAc zBXsF{yFEcFe4ny`j7Q~l$>u~gSq+R}8-h_@o3z}raqmU0Mg5*PpWVP6as}Bh)H38NC&_?E$?uzdc>ttf#4lcY$yBw%Rps;EF#=d%+8 zL~K_%9mc7_FSHYS{WGQ|$%dp}`e<|)hi)M(gH`phrS!FU#TU2q;^KSCw(m0@cS)G( z_G#Fu@NOzfO>KC!0elQVH%4rnGc1=I$ll_W&Hs`%k=CZb)2^e?CzFqN%9?-hquV7= zpARw{CN4~b43deOjU(Yr{t1crOSMgis$gE|Jjfm#Ic&{lKKx65_SKqMu6WL3JHTlM zw(Kz>%Cn#lZ%%ZnpgxP3M>p631nJe8iP*k@I8`lK1*&;=wWjtVT1#)*)t)tqz|Frt ztHid`MutXJn61r893}Ewa?V1uVxLY6!;TDc-)8JFF^IG$UM1QkjJwQc96SNI!HSA* zojhsi!RI6j%GSnvngWdnj7G?NAKt~;H#0iiSb!t7HjRb5Npw-}hE6H7;s2o8(sw}q|H|4~OB=xSG68h5hT6N46p5Anjs zXAlRvboo~Jc;zF$Dnvd<%=Fr15`MB*9oYZqQxyP87G?>?dUPZ19>`3%1+Z%b!BhG; z@nT573zV*#;^##W=w;dc*wU;6INhVOZ>m^RHx`Uqp?^$ zZVp%|Uc&9McYzk6GoP~S&qW2iaWlSV0+ZH)PGS)M?tQhboW`Ph zk_773>^0 zb$8H)?q3(;yPO z^%4yk68SnTr@mvr2?>Q54x@Y%msvb9!|^%}gqS?sN}9d258D41gNFK+G;WoVdez33 z=sA8kt*EM&Yd}o<%}&pUP=1Zo>J=2p+941%RN{TW1rvoKTyP|xGk+$D7iE;W;Y1jf zxizPY${`W%JTKWoFdoOnZnl!h3O6W`4 zvsEiwUK+Lgkm`>Ui(X?@t^{Mp9b3w4u5d!+htZvJDLa?3tA4SImvDj;s1Y#cW+dP} z?f^q2G7wjKQb8zRUvqnHiMLQX{I_}&BjT`z{CKUDAwjSqGZhSXugI8#t_Q2SF-704 zdH4>grps(PUQ`@=z>5*$8@a}5V!=)#}2Hd zr<|aoOD?OSQFK^OaPZOnXWT(&{gu~7{M7!@19nigD4vI@_aPea@{p7#iCtgG99Czs zJWKD6EAPiUWilBh#|KFW|A8Y2Dy2t(4b|H-jxDvn?Vi|zlMe&~?`z0R&BtL~ExmKP z0RVw9wf?t8OGB;`BE2B}wLA{4urJC`v1yO)rLcEw5#-c(JR!CI2PMSBFRQX!VYfqT zn&={PIqlG>hyZrIz7NEv2LFNjwt_1JaC3DU^I(;j?W*Ybem%g%XDQ6R4v zp*f7URQCA*?Zk^Kk}Hv9AsC-n>BxHPM!rv4u6yY|<2AQ~8O*}rS`Gl>wuQrgC+85EhP;5ZJEfxVk^41{C$KD6m91#h{HsH(_(#1S&<73P;8ukA3 zw9>G-dLo43^-H_whjKI9j+MVEiWBkeNx84h;(x6_|I5c3O#wjECdPzfMI|dCLs1yW zMT>AK*JMaD30PJB&+lOb*?V}RnkBboH!~0;vRv7#%J`-xqhxs9yYA8dGfg*nQ(?9J zvI`rCdYR?Z?fP;nzlfks=V{(dVohdd1d;3&FpZgq81rr%d2Y@;cUA)Z&ry4va6lfW z21H?19EHQ*jN!Em4 zqfR`T7O$hh)8Dz|x<~KbV2|KPp|dVHn6jNQ{a533a_t;V*#3*@5S0q2uBQqpACmp2HA!({DP-l|LC9xp2*lD+26 zz+>iuX|K=Kq>L>X+-FrAd7}fraS)*~pHdr}c0gC>$MEaO1Q~ex6xFzf<=hRk8Q0g> zJH>@rR8&;3az7P7+d8Ocz(Uow%*zHRQ5Ts-C#7p7uxk6Bi;CVLUYQo44J9yH>+ne# z+npr)L19pzv=v-t7%OUE@UFPh+uvYD0L^HM3@dfsoCCqgv+)6kssU^s&99g~sMe`!!'))) + } +}(), +passport._define("login.js", function() { + function _(e) { + alert("undefined:" + e) + } + function hex_md5(e) { + return binl2hex(core_md5(str2binl(e), e.length * chrsz)) + } + function b64_md5(e) { + return binl2b64(core_md5(str2binl(e), e.length * chrsz)) + } + function str_md5(e) { + return binl2str(core_md5(str2binl(e), e.length * chrsz)) + } + function hex_hmac_md5(e, t) { + return binl2hex(core_hmac_md5(e, t)) + } + function b64_hmac_md5(e, t) { + return binl2b64(core_hmac_md5(e, t)) + } + function str_hmac_md5(e, t) { + return binl2str(core_hmac_md5(e, t)) + } + function md5_vm_test() { + return "900150983cd24fb0d6963f7d28e17f72" == hex_md5("abc") + } + function core_md5(e, t) { + e[t >> 5] |= 128 << t % 32, + e[(t + 64 >>> 9 << 4) + 14] = t; + for (var n = 1732584193, i = -271733879, o = -1732584194, s = 271733878, a = 0; a < e.length; a += 16) { + var r = n + , c = i + , l = o + , d = s; + n = md5_ff(n, i, o, s, e[a + 0], 7, -680876936), + s = md5_ff(s, n, i, o, e[a + 1], 12, -389564586), + o = md5_ff(o, s, n, i, e[a + 2], 17, 606105819), + i = md5_ff(i, o, s, n, e[a + 3], 22, -1044525330), + n = md5_ff(n, i, o, s, e[a + 4], 7, -176418897), + s = md5_ff(s, n, i, o, e[a + 5], 12, 1200080426), + o = md5_ff(o, s, n, i, e[a + 6], 17, -1473231341), + i = md5_ff(i, o, s, n, e[a + 7], 22, -45705983), + n = md5_ff(n, i, o, s, e[a + 8], 7, 1770035416), + s = md5_ff(s, n, i, o, e[a + 9], 12, -1958414417), + o = md5_ff(o, s, n, i, e[a + 10], 17, -42063), + i = md5_ff(i, o, s, n, e[a + 11], 22, -1990404162), + n = md5_ff(n, i, o, s, e[a + 12], 7, 1804603682), + s = md5_ff(s, n, i, o, e[a + 13], 12, -40341101), + o = md5_ff(o, s, n, i, e[a + 14], 17, -1502002290), + i = md5_ff(i, o, s, n, e[a + 15], 22, 1236535329), + n = md5_gg(n, i, o, s, e[a + 1], 5, -165796510), + s = md5_gg(s, n, i, o, e[a + 6], 9, -1069501632), + o = md5_gg(o, s, n, i, e[a + 11], 14, 643717713), + i = md5_gg(i, o, s, n, e[a + 0], 20, -373897302), + n = md5_gg(n, i, o, s, e[a + 5], 5, -701558691), + s = md5_gg(s, n, i, o, e[a + 10], 9, 38016083), + o = md5_gg(o, s, n, i, e[a + 15], 14, -660478335), + i = md5_gg(i, o, s, n, e[a + 4], 20, -405537848), + n = md5_gg(n, i, o, s, e[a + 9], 5, 568446438), + s = md5_gg(s, n, i, o, e[a + 14], 9, -1019803690), + o = md5_gg(o, s, n, i, e[a + 3], 14, -187363961), + i = md5_gg(i, o, s, n, e[a + 8], 20, 1163531501), + n = md5_gg(n, i, o, s, e[a + 13], 5, -1444681467), + s = md5_gg(s, n, i, o, e[a + 2], 9, -51403784), + o = md5_gg(o, s, n, i, e[a + 7], 14, 1735328473), + i = md5_gg(i, o, s, n, e[a + 12], 20, -1926607734), + n = md5_hh(n, i, o, s, e[a + 5], 4, -378558), + s = md5_hh(s, n, i, o, e[a + 8], 11, -2022574463), + o = md5_hh(o, s, n, i, e[a + 11], 16, 1839030562), + i = md5_hh(i, o, s, n, e[a + 14], 23, -35309556), + n = md5_hh(n, i, o, s, e[a + 1], 4, -1530992060), + s = md5_hh(s, n, i, o, e[a + 4], 11, 1272893353), + o = md5_hh(o, s, n, i, e[a + 7], 16, -155497632), + i = md5_hh(i, o, s, n, e[a + 10], 23, -1094730640), + n = md5_hh(n, i, o, s, e[a + 13], 4, 681279174), + s = md5_hh(s, n, i, o, e[a + 0], 11, -358537222), + o = md5_hh(o, s, n, i, e[a + 3], 16, -722521979), + i = md5_hh(i, o, s, n, e[a + 6], 23, 76029189), + n = md5_hh(n, i, o, s, e[a + 9], 4, -640364487), + s = md5_hh(s, n, i, o, e[a + 12], 11, -421815835), + o = md5_hh(o, s, n, i, e[a + 15], 16, 530742520), + i = md5_hh(i, o, s, n, e[a + 2], 23, -995338651), + n = md5_ii(n, i, o, s, e[a + 0], 6, -198630844), + s = md5_ii(s, n, i, o, e[a + 7], 10, 1126891415), + o = md5_ii(o, s, n, i, e[a + 14], 15, -1416354905), + i = md5_ii(i, o, s, n, e[a + 5], 21, -57434055), + n = md5_ii(n, i, o, s, e[a + 12], 6, 1700485571), + s = md5_ii(s, n, i, o, e[a + 3], 10, -1894986606), + o = md5_ii(o, s, n, i, e[a + 10], 15, -1051523), + i = md5_ii(i, o, s, n, e[a + 1], 21, -2054922799), + n = md5_ii(n, i, o, s, e[a + 8], 6, 1873313359), + s = md5_ii(s, n, i, o, e[a + 15], 10, -30611744), + o = md5_ii(o, s, n, i, e[a + 6], 15, -1560198380), + i = md5_ii(i, o, s, n, e[a + 13], 21, 1309151649), + n = md5_ii(n, i, o, s, e[a + 4], 6, -145523070), + s = md5_ii(s, n, i, o, e[a + 11], 10, -1120210379), + o = md5_ii(o, s, n, i, e[a + 2], 15, 718787259), + i = md5_ii(i, o, s, n, e[a + 9], 21, -343485551), + n = safe_add(n, r), + i = safe_add(i, c), + o = safe_add(o, l), + s = safe_add(s, d) + } + return Array(n, i, o, s) + } + function md5_cmn(e, t, n, i, o, s) { + return safe_add(bit_rol(safe_add(safe_add(t, e), safe_add(i, s)), o), n) + } + function md5_ff(e, t, n, i, o, s, a) { + return md5_cmn(t & n | ~t & i, e, t, o, s, a) + } + function md5_gg(e, t, n, i, o, s, a) { + return md5_cmn(t & i | n & ~i, e, t, o, s, a) + } + function md5_hh(e, t, n, i, o, s, a) { + return md5_cmn(t ^ n ^ i, e, t, o, s, a) + } + function md5_ii(e, t, n, i, o, s, a) { + return md5_cmn(n ^ (t | ~i), e, t, o, s, a) + } + function core_hmac_md5(e, t) { + var n = str2binl(e); + n.length > 16 && (n = core_md5(n, e.length * chrsz)); + for (var i = Array(16), o = Array(16), s = 0; 16 > s; s++) + i[s] = 909522486 ^ n[s], + o[s] = 1549556828 ^ n[s]; + var a = core_md5(i.concat(str2binl(t)), 512 + t.length * chrsz); + return core_md5(o.concat(a), 640) + } + function safe_add(e, t) { + var n = (65535 & e) + (65535 & t) + , i = (e >> 16) + (t >> 16) + (n >> 16); + return i << 16 | 65535 & n + } + function bit_rol(e, t) { + return e << t | e >>> 32 - t + } + function str2binl(e) { + for (var t = Array(), n = (1 << chrsz) - 1, i = 0; i < e.length * chrsz; i += chrsz) + t[i >> 5] |= (e.charCodeAt(i / chrsz) & n) << i % 32; + return t + } + function binl2str(e) { + for (var t = "", n = (1 << chrsz) - 1, i = 0; i < 32 * e.length; i += chrsz) + t += String.fromCharCode(e[i >> 5] >>> i % 32 & n); + return t + } + function binl2hex(e) { + for (var t = hexcase ? "0123456789ABCDEF" : "0123456789abcdef", n = "", i = 0; i < 4 * e.length; i++) + n += t.charAt(e[i >> 2] >> i % 4 * 8 + 4 & 15) + t.charAt(e[i >> 2] >> i % 4 * 8 & 15); + return n + } + function binl2b64(e) { + for (var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", n = "", i = 0; i < 4 * e.length; i += 3) + for (var o = (e[i >> 2] >> 8 * (i % 4) & 255) << 16 | (e[i + 1 >> 2] >> 8 * ((i + 1) % 4) & 255) << 8 | e[i + 2 >> 2] >> 8 * ((i + 2) % 4) & 255, s = 0; 4 > s; s++) + n += 8 * i + 6 * s > 32 * e.length ? b64pad : t.charAt(o >> 6 * (3 - s) & 63); + return n + } + var passport = passport || window.passport || {} + , baidu = passport.tangramInst || baidu || window.baidu; + !function(e) { + var t, n = document.location.protocol.toLowerCase(); + t = passport && passport.ieVersion && passport.ieVersion() <= 8 ? "https:" === n ? "https://passport.baidu.com" : "http://passport.baidu.com" : "https:" === n ? "https://ppui-static-pc.cdn.bcebos.com" : "http://ppui-static-pc.cdn.bcebos.com", + e.apiDomain = { + staticDomain: t + } + }(passport); + var magic = null; + if ("function" != typeof magic) + var magic = function() {}; + magic._baiduInstName = magic._baiduInstName || "bdInst_" + (new Date).getTime(); + var baiduInstance = baiduInstance || baidu.baiduInstance || window.baiduInstance; + window[magic._baiduInstName] = window[magic._baiduInstName] || baiduInstance, + magic.resourcePath = "", + magic.skinName = "default", + magic.version = "1.0.0.0", + /msie 6/i.test(navigator.userAgent) && document.execCommand("BackgroundImageCache", !1, !0), + baidu.form = baidu.form || {}, + baidu.url = baidu.url || {}, + baidu.url.escapeSymbol = baidu.url.escapeSymbol || function(e) { + return String(e).replace(/[#%&+=\/\\\ \ \f\r\n\t]/g, function(e) { + return "%" + (256 + e.charCodeAt()).toString(16).substring(1).toUpperCase() + }) + } + , + baidu.form.json = baidu.form.json || function(e, t) { + function n(e, t) { + var n = p[e]; + n ? (n.push || (p[e] = [n]), + p[e].push(t)) : p[e] = t + } + for (var i, o, s, a, r, c, l, d, u = e.elements, t = t || function(e) { + return e + } + , p = {}, g = 0, m = u.length; m > g; g++) + if (i = u[g], + s = i.name, + !i.disabled && s) + switch (o = i.type, + a = baidu.url.escapeSymbol(i.value), + o) { + case "radio": + case "checkbox": + i.checked && n(s, t(a, s)); + break; + case "textarea": + case "text": + case "password": + case "hidden": + case "file": + case "select-one": + n(s, t(a, s)); + break; + case "select-multiple": + for (r = i.options, + l = r.length, + c = 0; l > c; c++) + d = r[c], + d.selected && n(s, t(d.value, s)) + } + return p + } + , + magic.Base = function() { + baidu.lang.Class.call(this), + this._ids = {}, + this._eid = this.guid + "__" + } + , + baidu.lang.inherits(magic.Base, baidu.lang.Class, "magic.Base").extend({ + getElement: function(e) { + return document.getElementById(this.$getId(e)) + }, + getElements: function() { + var e = {} + , t = this._ids; + for (var n in t) + e[n] = this.getElement(n); + return e + }, + $getId: function(e) { + return e = baidu.lang.isString(e) ? e : "", + this._ids[e] || (this._ids[e] = this._eid + e) + }, + $mappingDom: function(e, t) { + return baidu.lang.isString(t) ? this._ids[e] = t : t && t.nodeType && (t.id ? this._ids[e] = t.id : t.id = this.$getId(e)), + this + }, + $hide: function(e) { + return ("string" == (typeof e).toLowerCase() || "" === e) && (e = this.getElement(e)), + e && e.style && (e.style.display = "none", + e.style.visibility = "hidden"), + this + }, + $show: function(e) { + return ("string" == (typeof e).toLowerCase() || "" === e) && (e = this.getElement(e)), + e && e.style && (e.style.display = "block", + e.style.visibility = "visible", + e.style.opacity = "1"), + this + }, + $dispose: function() { + this.fire("ondispose") && baidu.lang.Class.prototype.dispose.call(this) + } + }), + magic.control = magic.control || {}, + function() { + function e(e, t) { + var i, o = e.getAttribute(t), s = !1; + if (o && (i = o.match(n[0]))) { + s = {}; + for (var a, r = 0; r < i.length; r++) + a = i[r].match(n[1]), + !isNaN(a[2]) && (a[2] = +a[2]), + n[2].test(a[2]) && (a[2] = a[2].replace(n[3], "$2")), + n[4].test(a[2]) && (a[2] = n[5].test(a[2])), + s[a[1]] = a[2] + } + return s + } + function t(t, n) { + var i = e(t, "tang-event"); + if (i) + for (var o in i) { + var s = i[o].substr(1); + s.indexOf("(") < 0 && (s += "()"), + baidu.dom(t).on(o, new Function(magic._baiduInstName + "('" + n + "') && " + magic._baiduInstName + "('" + n + "')" + s)) + } + } + magic.setup = magic.setup || function(n, i, o) { + var s = e(n, "tang-param") || {}; + for (var a in o) + s[a] = o[a]; + var r = new i(s); + r.$mappingDom("", n), + t(n, r.guid); + for (var c = n.getElementsByTagName("*"), a = c.length - 1; a >= 0; a--) + t(c[a], r.guid); + return r + } + ; + var n = [/\b[\w\$\-]+\s*:\s*[^;]+/g, /([\w\$\-]+)\s*:\s*([^;]+)\s*/, /\'|\"/, /^\s*(\'|\")([^\1]*)\1\s*/, /^(true|false)\s*$/i, /\btrue\b/i] + }(), + passport = passport || {}, + passport.lib = passport.lib || {}, + passport.lib.RSAExport = {}, + function(e) { + function t(e, t, n) { + null != e && ("number" == typeof e ? this.fromNumber(e, t, n) : null == t && "string" != typeof e ? this.fromString(e, 256) : this.fromString(e, t)) + } + function n() { + return new t(null) + } + function i(e, t, n, i, o, s) { + for (; --s >= 0; ) { + var a = t * this[e++] + n[i] + o; + o = Math.floor(a / 67108864), + n[i++] = 67108863 & a + } + return o + } + function o(e, t, n, i, o, s) { + for (var a = 32767 & t, r = t >> 15; --s >= 0; ) { + var c = 32767 & this[e] + , l = this[e++] >> 15 + , d = r * c + l * a; + c = a * c + ((32767 & d) << 15) + n[i] + (1073741823 & o), + o = (c >>> 30) + (d >>> 15) + r * l + (o >>> 30), + n[i++] = 1073741823 & c + } + return o + } + function s(e, t, n, i, o, s) { + for (var a = 16383 & t, r = t >> 14; --s >= 0; ) { + var c = 16383 & this[e] + , l = this[e++] >> 14 + , d = r * c + l * a; + c = a * c + ((16383 & d) << 14) + n[i] + o, + o = (c >> 28) + (d >> 14) + r * l, + n[i++] = 268435455 & c + } + return o + } + function a(e) { + return xn.charAt(e) + } + function r(e, t) { + var n = Ln[e.charCodeAt(t)]; + return null == n ? -1 : n + } + function c(e) { + for (var t = this.t - 1; t >= 0; --t) + e[t] = this[t]; + e.t = this.t, + e.s = this.s + } + function l(e) { + this.t = 1, + this.s = 0 > e ? -1 : 0, + e > 0 ? this[0] = e : -1 > e ? this[0] = e + DV : this.t = 0 + } + function d(e) { + var t = n(); + return t.fromInt(e), + t + } + function u(e, n) { + var i; + if (16 == n) + i = 4; + else if (8 == n) + i = 3; + else if (256 == n) + i = 8; + else if (2 == n) + i = 1; + else if (32 == n) + i = 5; + else { + if (4 != n) + return void this.fromRadix(e, n); + i = 2 + } + this.t = 0, + this.s = 0; + for (var o = e.length, s = !1, a = 0; --o >= 0; ) { + var c = 8 == i ? 255 & e[o] : r(e, o); + 0 > c ? "-" == e.charAt(o) && (s = !0) : (s = !1, + 0 == a ? this[this.t++] = c : a + i > this.DB ? (this[this.t - 1] |= (c & (1 << this.DB - a) - 1) << a, + this[this.t++] = c >> this.DB - a) : this[this.t - 1] |= c << a, + a += i, + a >= this.DB && (a -= this.DB)) + } + 8 == i && 0 != (128 & e[0]) && (this.s = -1, + a > 0 && (this[this.t - 1] |= (1 << this.DB - a) - 1 << a)), + this.clamp(), + s && t.ZERO.subTo(this, this) + } + function p() { + for (var e = this.s & this.DM; this.t > 0 && this[this.t - 1] == e; ) + --this.t + } + function g(e) { + if (this.s < 0) + return "-" + this.negate().toString(e); + var t; + if (16 == e) + t = 4; + else if (8 == e) + t = 3; + else if (2 == e) + t = 1; + else if (32 == e) + t = 5; + else { + if (4 != e) + return this.toRadix(e); + t = 2 + } + var n, i = (1 << t) - 1, o = !1, s = "", r = this.t, c = this.DB - r * this.DB % t; + if (r-- > 0) + for (c < this.DB && (n = this[r] >> c) > 0 && (o = !0, + s = a(n)); r >= 0; ) + t > c ? (n = (this[r] & (1 << c) - 1) << t - c, + n |= this[--r] >> (c += this.DB - t)) : (n = this[r] >> (c -= t) & i, + 0 >= c && (c += this.DB, + --r)), + n > 0 && (o = !0), + o && (s += a(n)); + return o ? s : "0" + } + function m() { + var e = n(); + return t.ZERO.subTo(this, e), + e + } + function f() { + return this.s < 0 ? this.negate() : this + } + function h(e) { + var t = this.s - e.s; + if (0 != t) + return t; + var n = this.t; + if (t = n - e.t, + 0 != t) + return this.s < 0 ? -t : t; + for (; --n >= 0; ) + if (0 != (t = this[n] - e[n])) + return t; + return 0 + } + function b(e) { + var t, n = 1; + return 0 != (t = e >>> 16) && (e = t, + n += 16), + 0 != (t = e >> 8) && (e = t, + n += 8), + 0 != (t = e >> 4) && (e = t, + n += 4), + 0 != (t = e >> 2) && (e = t, + n += 2), + 0 != (t = e >> 1) && (e = t, + n += 1), + n + } + function y() { + return this.t <= 0 ? 0 : this.DB * (this.t - 1) + b(this[this.t - 1] ^ this.s & this.DM) + } + function _(e, t) { + var n; + for (n = this.t - 1; n >= 0; --n) + t[n + e] = this[n]; + for (n = e - 1; n >= 0; --n) + t[n] = 0; + t.t = this.t + e, + t.s = this.s + } + function w(e, t) { + for (var n = e; n < this.t; ++n) + t[n - e] = this[n]; + t.t = Math.max(this.t - e, 0), + t.s = this.s + } + function E(e, t) { + var n, i = e % this.DB, o = this.DB - i, s = (1 << o) - 1, a = Math.floor(e / this.DB), r = this.s << i & this.DM; + for (n = this.t - 1; n >= 0; --n) + t[n + a + 1] = this[n] >> o | r, + r = (this[n] & s) << i; + for (n = a - 1; n >= 0; --n) + t[n] = 0; + t[a] = r, + t.t = this.t + a + 1, + t.s = this.s, + t.clamp() + } + function C(e, t) { + t.s = this.s; + var n = Math.floor(e / this.DB); + if (n >= this.t) + return void (t.t = 0); + var i = e % this.DB + , o = this.DB - i + , s = (1 << i) - 1; + t[0] = this[n] >> i; + for (var a = n + 1; a < this.t; ++a) + t[a - n - 1] |= (this[a] & s) << o, + t[a - n] = this[a] >> i; + i > 0 && (t[this.t - n - 1] |= (this.s & s) << o), + t.t = this.t - n, + t.clamp() + } + function S(e, t) { + for (var n = 0, i = 0, o = Math.min(e.t, this.t); o > n; ) + i += this[n] - e[n], + t[n++] = i & this.DM, + i >>= this.DB; + if (e.t < this.t) { + for (i -= e.s; n < this.t; ) + i += this[n], + t[n++] = i & this.DM, + i >>= this.DB; + i += this.s + } else { + for (i += this.s; n < e.t; ) + i -= e[n], + t[n++] = i & this.DM, + i >>= this.DB; + i -= e.s + } + t.s = 0 > i ? -1 : 0, + -1 > i ? t[n++] = this.DV + i : i > 0 && (t[n++] = i), + t.t = n, + t.clamp() + } + function T(e, n) { + var i = this.abs() + , o = e.abs() + , s = i.t; + for (n.t = s + o.t; --s >= 0; ) + n[s] = 0; + for (s = 0; s < o.t; ++s) + n[s + i.t] = i.am(0, o[s], n, s, 0, i.t); + n.s = 0, + n.clamp(), + this.s != e.s && t.ZERO.subTo(n, n) + } + function I(e) { + for (var t = this.abs(), n = e.t = 2 * t.t; --n >= 0; ) + e[n] = 0; + for (n = 0; n < t.t - 1; ++n) { + var i = t.am(n, t[n], e, 2 * n, 0, 1); + (e[n + t.t] += t.am(n + 1, 2 * t[n], e, 2 * n + 1, i, t.t - n - 1)) >= t.DV && (e[n + t.t] -= t.DV, + e[n + t.t + 1] = 1) + } + e.t > 0 && (e[e.t - 1] += t.am(n, t[n], e, 2 * n, 0, 1)), + e.s = 0, + e.clamp() + } + function D(e, i, o) { + var s = e.abs(); + if (!(s.t <= 0)) { + var a = this.abs(); + if (a.t < s.t) + return null != i && i.fromInt(0), + void (null != o && this.copyTo(o)); + null == o && (o = n()); + var r = n() + , c = this.s + , l = e.s + , d = this.DB - b(s[s.t - 1]); + d > 0 ? (s.lShiftTo(d, r), + a.lShiftTo(d, o)) : (s.copyTo(r), + a.copyTo(o)); + var u = r.t + , p = r[u - 1]; + if (0 != p) { + var g = p * (1 << this.F1) + (u > 1 ? r[u - 2] >> this.F2 : 0) + , m = this.FV / g + , f = (1 << this.F1) / g + , h = 1 << this.F2 + , v = o.t + , y = v - u + , _ = null == i ? n() : i; + for (r.dlShiftTo(y, _), + o.compareTo(_) >= 0 && (o[o.t++] = 1, + o.subTo(_, o)), + t.ONE.dlShiftTo(u, _), + _.subTo(r, r); r.t < u; ) + r[r.t++] = 0; + for (; --y >= 0; ) { + var w = o[--v] == p ? this.DM : Math.floor(o[v] * m + (o[v - 1] + h) * f); + if ((o[v] += r.am(0, w, o, y, 0, u)) < w) + for (r.dlShiftTo(y, _), + o.subTo(_, o); o[v] < --w; ) + o.subTo(_, o) + } + null != i && (o.drShiftTo(u, i), + c != l && t.ZERO.subTo(i, i)), + o.t = u, + o.clamp(), + d > 0 && o.rShiftTo(d, o), + 0 > c && t.ZERO.subTo(o, o) + } + } + } + function k(e) { + var i = n(); + return this.abs().divRemTo(e, null, i), + this.s < 0 && i.compareTo(t.ZERO) > 0 && e.subTo(i, i), + i + } + function R(e) { + this.m = e + } + function x(e) { + return e.s < 0 || e.compareTo(this.m) >= 0 ? e.mod(this.m) : e + } + function L(e) { + return e + } + function P(e) { + e.divRemTo(this.m, null, e) + } + function A(e, t, n) { + e.multiplyTo(t, n), + this.reduce(n) + } + function M(e, t) { + e.squareTo(t), + this.reduce(t) + } + function B() { + if (this.t < 1) + return 0; + var e = this[0]; + if (0 == (1 & e)) + return 0; + var t = 3 & e; + return t = t * (2 - (15 & e) * t) & 15, + t = t * (2 - (255 & e) * t) & 255, + t = t * (2 - ((65535 & e) * t & 65535)) & 65535, + t = t * (2 - e * t % this.DV) % this.DV, + t > 0 ? this.DV - t : -t + } + function O(e) { + this.m = e, + this.mp = e.invDigit(), + this.mpl = 32767 & this.mp, + this.mph = this.mp >> 15, + this.um = (1 << e.DB - 15) - 1, + this.mt2 = 2 * e.t + } + function V(e) { + var i = n(); + return e.abs().dlShiftTo(this.m.t, i), + i.divRemTo(this.m, null, i), + e.s < 0 && i.compareTo(t.ZERO) > 0 && this.m.subTo(i, i), + i + } + function $(e) { + var t = n(); + return e.copyTo(t), + this.reduce(t), + t + } + function U(e) { + for (; e.t <= this.mt2; ) + e[e.t++] = 0; + for (var t = 0; t < this.m.t; ++t) { + var n = 32767 & e[t] + , i = n * this.mpl + ((n * this.mph + (e[t] >> 15) * this.mpl & this.um) << 15) & e.DM; + for (n = t + this.m.t, + e[n] += this.m.am(0, i, e, t, 0, this.m.t); e[n] >= e.DV; ) + e[n] -= e.DV, + e[++n]++ + } + e.clamp(), + e.drShiftTo(this.m.t, e), + e.compareTo(this.m) >= 0 && e.subTo(this.m, e) + } + function N(e, t) { + e.squareTo(t), + this.reduce(t) + } + function q(e, t, n) { + e.multiplyTo(t, n), + this.reduce(n) + } + function H() { + return 0 == (this.t > 0 ? 1 & this[0] : this.s) + } + function F(e, i) { + if (e > 4294967295 || 1 > e) + return t.ONE; + var o = n() + , s = n() + , a = i.convert(this) + , r = b(e) - 1; + for (a.copyTo(o); --r >= 0; ) + if (i.sqrTo(o, s), + (e & 1 << r) > 0) + i.mulTo(s, a, o); + else { + var c = o; + o = s, + s = c + } + return i.revert(o) + } + function W(e, t) { + var n; + return n = 256 > e || t.isEven() ? new R(t) : new O(t), + this.exp(e, n) + } + function K() { + var e = n(); + return this.copyTo(e), + e + } + function j() { + if (this.s < 0) { + if (1 == this.t) + return this[0] - this.DV; + if (0 == this.t) + return -1 + } else { + if (1 == this.t) + return this[0]; + if (0 == this.t) + return 0 + } + return (this[1] & (1 << 32 - this.DB) - 1) << this.DB | this[0] + } + function Q() { + return 0 == this.t ? this.s : this[0] << 24 >> 24 + } + function J() { + return 0 == this.t ? this.s : this[0] << 16 >> 16 + } + function G(e) { + return Math.floor(Math.LN2 * this.DB / Math.log(e)) + } + function z() { + return this.s < 0 ? -1 : this.t <= 0 || 1 == this.t && this[0] <= 0 ? 0 : 1 + } + function Z(e) { + if (null == e && (e = 10), + 0 == this.signum() || 2 > e || e > 36) + return "0"; + var t = this.chunkSize(e) + , i = Math.pow(e, t) + , o = d(i) + , s = n() + , a = n() + , r = ""; + for (this.divRemTo(o, s, a); s.signum() > 0; ) + r = (i + a.intValue()).toString(e).substr(1) + r, + s.divRemTo(o, s, a); + return a.intValue().toString(e) + r + } + function Y(e, n) { + this.fromInt(0), + null == n && (n = 10); + for (var i = this.chunkSize(n), o = Math.pow(n, i), s = !1, a = 0, c = 0, l = 0; l < e.length; ++l) { + var d = r(e, l); + 0 > d ? "-" == e.charAt(l) && 0 == this.signum() && (s = !0) : (c = n * c + d, + ++a >= i && (this.dMultiply(o), + this.dAddOffset(c, 0), + a = 0, + c = 0)) + } + a > 0 && (this.dMultiply(Math.pow(n, a)), + this.dAddOffset(c, 0)), + s && t.ZERO.subTo(this, this) + } + function X(e, n, i) { + if ("number" == typeof n) + if (2 > e) + this.fromInt(1); + else + for (this.fromNumber(e, i), + this.testBit(e - 1) || this.bitwiseTo(t.ONE.shiftLeft(e - 1), rt, this), + this.isEven() && this.dAddOffset(1, 0); !this.isProbablePrime(n); ) + this.dAddOffset(2, 0), + this.bitLength() > e && this.subTo(t.ONE.shiftLeft(e - 1), this); + else { + var o = new Array + , s = 7 & e; + o.length = (e >> 3) + 1, + n.nextBytes(o), + s > 0 ? o[0] &= (1 << s) - 1 : o[0] = 0, + this.fromString(o, 256) + } + } + function et() { + var e = this.t + , t = new Array; + t[0] = this.s; + var n, i = this.DB - e * this.DB % 8, o = 0; + if (e-- > 0) + for (i < this.DB && (n = this[e] >> i) != (this.s & this.DM) >> i && (t[o++] = n | this.s << this.DB - i); e >= 0; ) + 8 > i ? (n = (this[e] & (1 << i) - 1) << 8 - i, + n |= this[--e] >> (i += this.DB - 8)) : (n = this[e] >> (i -= 8) & 255, + 0 >= i && (i += this.DB, + --e)), + 0 != (128 & n) && (n |= -256), + 0 == o && (128 & this.s) != (128 & n) && ++o, + (o > 0 || n != this.s) && (t[o++] = n); + return t + } + function tt(e) { + return 0 == this.compareTo(e) + } + function nt(e) { + return this.compareTo(e) < 0 ? this : e + } + function it(e) { + return this.compareTo(e) > 0 ? this : e + } + function ot(e, t, n) { + var i, o, s = Math.min(e.t, this.t); + for (i = 0; s > i; ++i) + n[i] = t(this[i], e[i]); + if (e.t < this.t) { + for (o = e.s & this.DM, + i = s; i < this.t; ++i) + n[i] = t(this[i], o); + n.t = this.t + } else { + for (o = this.s & this.DM, + i = s; i < e.t; ++i) + n[i] = t(o, e[i]); + n.t = e.t + } + n.s = t(this.s, e.s), + n.clamp() + } + function st(e, t) { + return e & t + } + function at(e) { + var t = n(); + return this.bitwiseTo(e, st, t), + t + } + function rt(e, t) { + return e | t + } + function ct(e) { + var t = n(); + return this.bitwiseTo(e, rt, t), + t + } + function lt(e, t) { + return e ^ t + } + function dt(e) { + var t = n(); + return this.bitwiseTo(e, lt, t), + t + } + function ut(e, t) { + return e & ~t + } + function pt(e) { + var t = n(); + return this.bitwiseTo(e, ut, t), + t + } + function gt() { + for (var e = n(), t = 0; t < this.t; ++t) + e[t] = this.DM & ~this[t]; + return e.t = this.t, + e.s = ~this.s, + e + } + function mt(e) { + var t = n(); + return 0 > e ? this.rShiftTo(-e, t) : this.lShiftTo(e, t), + t + } + function ft(e) { + var t = n(); + return 0 > e ? this.lShiftTo(-e, t) : this.rShiftTo(e, t), + t + } + function ht(e) { + if (0 == e) + return -1; + var t = 0; + return 0 == (65535 & e) && (e >>= 16, + t += 16), + 0 == (255 & e) && (e >>= 8, + t += 8), + 0 == (15 & e) && (e >>= 4, + t += 4), + 0 == (3 & e) && (e >>= 2, + t += 2), + 0 == (1 & e) && ++t, + t + } + function vt() { + for (var e = 0; e < this.t; ++e) + if (0 != this[e]) + return e * this.DB + ht(this[e]); + return this.s < 0 ? this.t * this.DB : -1 + } + function bt(e) { + for (var t = 0; 0 != e; ) + e &= e - 1, + ++t; + return t + } + function yt() { + for (var e = 0, t = this.s & this.DM, n = 0; n < this.t; ++n) + e += bt(this[n] ^ t); + return e + } + function _t(e) { + var t = Math.floor(e / this.DB); + return t >= this.t ? 0 != this.s : 0 != (this[t] & 1 << e % this.DB) + } + function wt(e, n) { + var i = t.ONE.shiftLeft(e); + return this.bitwiseTo(i, n, i), + i + } + function Et(e) { + return this.changeBit(e, rt) + } + function Ct(e) { + return this.changeBit(e, ut) + } + function St(e) { + return this.changeBit(e, lt) + } + function Tt(e, t) { + for (var n = 0, i = 0, o = Math.min(e.t, this.t); o > n; ) + i += this[n] + e[n], + t[n++] = i & this.DM, + i >>= this.DB; + if (e.t < this.t) { + for (i += e.s; n < this.t; ) + i += this[n], + t[n++] = i & this.DM, + i >>= this.DB; + i += this.s + } else { + for (i += this.s; n < e.t; ) + i += e[n], + t[n++] = i & this.DM, + i >>= this.DB; + i += e.s + } + t.s = 0 > i ? -1 : 0, + i > 0 ? t[n++] = i : -1 > i && (t[n++] = this.DV + i), + t.t = n, + t.clamp() + } + function It(e) { + var t = n(); + return this.addTo(e, t), + t + } + function Dt(e) { + var t = n(); + return this.subTo(e, t), + t + } + function kt(e) { + var t = n(); + return this.multiplyTo(e, t), + t + } + function Rt() { + var e = n(); + return this.squareTo(e), + e + } + function xt(e) { + var t = n(); + return this.divRemTo(e, t, null), + t + } + function Lt(e) { + var t = n(); + return this.divRemTo(e, null, t), + t + } + function Pt(e) { + var t = n() + , i = n(); + return this.divRemTo(e, t, i), + new Array(t,i) + } + function At(e) { + this[this.t] = this.am(0, e - 1, this, 0, 0, this.t), + ++this.t, + this.clamp() + } + function Mt(e, t) { + if (0 != e) { + for (; this.t <= t; ) + this[this.t++] = 0; + for (this[t] += e; this[t] >= this.DV; ) + this[t] -= this.DV, + ++t >= this.t && (this[this.t++] = 0), + ++this[t] + } + } + function Bt() {} + function Ot(e) { + return e + } + function Vt(e, t, n) { + e.multiplyTo(t, n) + } + function $t(e, t) { + e.squareTo(t) + } + function Ut(e) { + return this.exp(e, new Bt) + } + function Nt(e, t, n) { + var i = Math.min(this.t + e.t, t); + for (n.s = 0, + n.t = i; i > 0; ) + n[--i] = 0; + var o; + for (o = n.t - this.t; o > i; ++i) + n[i + this.t] = this.am(0, e[i], n, i, 0, this.t); + for (o = Math.min(e.t, t); o > i; ++i) + this.am(0, e[i], n, i, 0, t - i); + n.clamp() + } + function qt(e, t, n) { + --t; + var i = n.t = this.t + e.t - t; + for (n.s = 0; --i >= 0; ) + n[i] = 0; + for (i = Math.max(t - this.t, 0); i < e.t; ++i) + n[this.t + i - t] = this.am(t - i, e[i], n, 0, 0, this.t + i - t); + n.clamp(), + n.drShiftTo(1, n) + } + function Ht(e) { + this.r2 = n(), + this.q3 = n(), + t.ONE.dlShiftTo(2 * e.t, this.r2), + this.mu = this.r2.divide(e), + this.m = e + } + function Ft(e) { + if (e.s < 0 || e.t > 2 * this.m.t) + return e.mod(this.m); + if (e.compareTo(this.m) < 0) + return e; + var t = n(); + return e.copyTo(t), + this.reduce(t), + t + } + function Wt(e) { + return e + } + function Kt(e) { + for (e.drShiftTo(this.m.t - 1, this.r2), + e.t > this.m.t + 1 && (e.t = this.m.t + 1, + e.clamp()), + this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3), + this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2); e.compareTo(this.r2) < 0; ) + e.dAddOffset(1, this.m.t + 1); + for (e.subTo(this.r2, e); e.compareTo(this.m) >= 0; ) + e.subTo(this.m, e) + } + function jt(e, t) { + e.squareTo(t), + this.reduce(t) + } + function Qt(e, t, n) { + e.multiplyTo(t, n), + this.reduce(n) + } + function Jt(e, t) { + var i, o, s = e.bitLength(), a = d(1); + if (0 >= s) + return a; + i = 18 > s ? 1 : 48 > s ? 3 : 144 > s ? 4 : 768 > s ? 5 : 6, + o = 8 > s ? new R(t) : t.isEven() ? new Ht(t) : new O(t); + var r = new Array + , c = 3 + , l = i - 1 + , u = (1 << i) - 1; + if (r[1] = o.convert(this), + i > 1) { + var p = n(); + for (o.sqrTo(r[1], p); u >= c; ) + r[c] = n(), + o.mulTo(p, r[c - 2], r[c]), + c += 2 + } + var g, m, f = e.t - 1, h = !0, v = n(); + for (s = b(e[f]) - 1; f >= 0; ) { + for (s >= l ? g = e[f] >> s - l & u : (g = (e[f] & (1 << s + 1) - 1) << l - s, + f > 0 && (g |= e[f - 1] >> this.DB + s - l)), + c = i; 0 == (1 & g); ) + g >>= 1, + --c; + if ((s -= c) < 0 && (s += this.DB, + --f), + h) + r[g].copyTo(a), + h = !1; + else { + for (; c > 1; ) + o.sqrTo(a, v), + o.sqrTo(v, a), + c -= 2; + c > 0 ? o.sqrTo(a, v) : (m = a, + a = v, + v = m), + o.mulTo(v, r[g], a) + } + for (; f >= 0 && 0 == (e[f] & 1 << s); ) + o.sqrTo(a, v), + m = a, + a = v, + v = m, + --s < 0 && (s = this.DB - 1, + --f) + } + return o.revert(a) + } + function Gt(e) { + var t = this.s < 0 ? this.negate() : this.clone() + , n = e.s < 0 ? e.negate() : e.clone(); + if (t.compareTo(n) < 0) { + var i = t; + t = n, + n = i + } + var o = t.getLowestSetBit() + , s = n.getLowestSetBit(); + if (0 > s) + return t; + for (s > o && (s = o), + s > 0 && (t.rShiftTo(s, t), + n.rShiftTo(s, n)); t.signum() > 0; ) + (o = t.getLowestSetBit()) > 0 && t.rShiftTo(o, t), + (o = n.getLowestSetBit()) > 0 && n.rShiftTo(o, n), + t.compareTo(n) >= 0 ? (t.subTo(n, t), + t.rShiftTo(1, t)) : (n.subTo(t, n), + n.rShiftTo(1, n)); + return s > 0 && n.lShiftTo(s, n), + n + } + function zt(e) { + if (0 >= e) + return 0; + var t = this.DV % e + , n = this.s < 0 ? e - 1 : 0; + if (this.t > 0) + if (0 == t) + n = this[0] % e; + else + for (var i = this.t - 1; i >= 0; --i) + n = (t * n + this[i]) % e; + return n + } + function Zt(e) { + var n = e.isEven(); + if (this.isEven() && n || 0 == e.signum()) + return t.ZERO; + for (var i = e.clone(), o = this.clone(), s = d(1), a = d(0), r = d(0), c = d(1); 0 != i.signum(); ) { + for (; i.isEven(); ) + i.rShiftTo(1, i), + n ? (s.isEven() && a.isEven() || (s.addTo(this, s), + a.subTo(e, a)), + s.rShiftTo(1, s)) : a.isEven() || a.subTo(e, a), + a.rShiftTo(1, a); + for (; o.isEven(); ) + o.rShiftTo(1, o), + n ? (r.isEven() && c.isEven() || (r.addTo(this, r), + c.subTo(e, c)), + r.rShiftTo(1, r)) : c.isEven() || c.subTo(e, c), + c.rShiftTo(1, c); + i.compareTo(o) >= 0 ? (i.subTo(o, i), + n && s.subTo(r, s), + a.subTo(c, a)) : (o.subTo(i, o), + n && r.subTo(s, r), + c.subTo(a, c)) + } + return 0 != o.compareTo(t.ONE) ? t.ZERO : c.compareTo(e) >= 0 ? c.subtract(e) : c.signum() < 0 ? (c.addTo(e, c), + c.signum() < 0 ? c.add(e) : c) : c + } + function Yt(e) { + var t, n = this.abs(); + if (1 == n.t && n[0] <= Pn[Pn.length - 1]) { + for (t = 0; t < Pn.length; ++t) + if (n[0] == Pn[t]) + return !0; + return !1 + } + if (n.isEven()) + return !1; + for (t = 1; t < Pn.length; ) { + for (var i = Pn[t], o = t + 1; o < Pn.length && An > i; ) + i *= Pn[o++]; + for (i = n.modInt(i); o > t; ) + if (i % Pn[t++] == 0) + return !1 + } + return n.millerRabin(e) + } + function Xt(e) { + var i = this.subtract(t.ONE) + , o = i.getLowestSetBit(); + if (0 >= o) + return !1; + var s = i.shiftRight(o); + e = e + 1 >> 1, + e > Pn.length && (e = Pn.length); + for (var a = n(), r = 0; e > r; ++r) { + a.fromInt(Pn[Math.floor(Math.random() * Pn.length)]); + var c = a.modPow(s, this); + if (0 != c.compareTo(t.ONE) && 0 != c.compareTo(i)) { + for (var l = 1; l++ < o && 0 != c.compareTo(i); ) + if (c = c.modPowInt(2, this), + 0 == c.compareTo(t.ONE)) + return !1; + if (0 != c.compareTo(i)) + return !1 + } + } + return !0 + } + function en() { + this.i = 0, + this.j = 0, + this.S = new Array + } + function tn(e) { + var t, n, i; + for (t = 0; 256 > t; ++t) + this.S[t] = t; + for (n = 0, + t = 0; 256 > t; ++t) + n = n + this.S[t] + e[t % e.length] & 255, + i = this.S[t], + this.S[t] = this.S[n], + this.S[n] = i; + this.i = 0, + this.j = 0 + } + function nn() { + var e; + return this.i = this.i + 1 & 255, + this.j = this.j + this.S[this.i] & 255, + e = this.S[this.i], + this.S[this.i] = this.S[this.j], + this.S[this.j] = e, + this.S[e + this.S[this.i] & 255] + } + function on() { + return new en + } + function sn(e) { + Bn[On++] ^= 255 & e, + Bn[On++] ^= e >> 8 & 255, + Bn[On++] ^= e >> 16 & 255, + Bn[On++] ^= e >> 24 & 255, + On >= Vn && (On -= Vn) + } + function an() { + sn((new Date).getTime()) + } + function rn() { + if (null == Mn) { + for (an(), + Mn = on(), + Mn.init(Bn), + On = 0; On < Bn.length; ++On) + Bn[On] = 0; + On = 0 + } + return Mn.next() + } + function cn(e) { + var t; + for (t = 0; t < e.length; ++t) + e[t] = rn() + } + function ln() {} + function dn(e, n) { + return new t(e,n) + } + function un(e, n) { + if (n < e.length + 11) + return console.error("Message too long for RSA"), + null; + for (var i = new Array, o = e.length - 1; o >= 0 && n > 0; ) { + var s = e.charCodeAt(o--); + 128 > s ? i[--n] = s : s > 127 && 2048 > s ? (i[--n] = 63 & s | 128, + i[--n] = s >> 6 | 192) : (i[--n] = 63 & s | 128, + i[--n] = s >> 6 & 63 | 128, + i[--n] = s >> 12 | 224) + } + i[--n] = 0; + for (var a = new ln, r = new Array; n > 2; ) { + for (r[0] = 0; 0 == r[0]; ) + a.nextBytes(r); + i[--n] = r[0] + } + return i[--n] = 2, + i[--n] = 0, + new t(i) + } + function pn() { + this.n = null, + this.e = 0, + this.d = null, + this.p = null, + this.q = null, + this.dmp1 = null, + this.dmq1 = null, + this.coeff = null + } + function gn(e, t) { + null != e && null != t && e.length > 0 && t.length > 0 ? (this.n = dn(e, 16), + this.e = parseInt(t, 16)) : console.error("Invalid RSA public key") + } + function mn(e) { + return e.modPowInt(this.e, this.n) + } + function fn(e) { + var t = un(e, this.n.bitLength() + 7 >> 3); + if (null == t) + return null; + var n = this.doPublic(t); + if (null == n) + return null; + var i = n.toString(16); + return 0 == (1 & i.length) ? i : "0" + i + } + function hn(e, t) { + for (var n = e.toByteArray(), i = 0; i < n.length && 0 == n[i]; ) + ++i; + if (n.length - i != t - 1 || 2 != n[i]) + return null; + for (++i; 0 != n[i]; ) + if (++i >= n.length) + return null; + for (var o = ""; ++i < n.length; ) { + var s = 255 & n[i]; + 128 > s ? o += String.fromCharCode(s) : s > 191 && 224 > s ? (o += String.fromCharCode((31 & s) << 6 | 63 & n[i + 1]), + ++i) : (o += String.fromCharCode((15 & s) << 12 | (63 & n[i + 1]) << 6 | 63 & n[i + 2]), + i += 2) + } + return o + } + function vn(e, t, n) { + null != e && null != t && e.length > 0 && t.length > 0 ? (this.n = dn(e, 16), + this.e = parseInt(t, 16), + this.d = dn(n, 16)) : console.error("Invalid RSA private key") + } + function bn(e, t, n, i, o, s, a, r) { + null != e && null != t && e.length > 0 && t.length > 0 ? (this.n = dn(e, 16), + this.e = parseInt(t, 16), + this.d = dn(n, 16), + this.p = dn(i, 16), + this.q = dn(o, 16), + this.dmp1 = dn(s, 16), + this.dmq1 = dn(a, 16), + this.coeff = dn(r, 16)) : console.error("Invalid RSA private key") + } + function yn(e, n) { + var i = new ln + , o = e >> 1; + this.e = parseInt(n, 16); + for (var s = new t(n,16); ; ) { + for (; this.p = new t(e - o,1,i), + 0 != this.p.subtract(t.ONE).gcd(s).compareTo(t.ONE) || !this.p.isProbablePrime(10); ) + ; + for (; this.q = new t(o,1,i), + 0 != this.q.subtract(t.ONE).gcd(s).compareTo(t.ONE) || !this.q.isProbablePrime(10); ) + ; + if (this.p.compareTo(this.q) <= 0) { + var a = this.p; + this.p = this.q, + this.q = a + } + var r = this.p.subtract(t.ONE) + , c = this.q.subtract(t.ONE) + , l = r.multiply(c); + if (0 == l.gcd(s).compareTo(t.ONE)) { + this.n = this.p.multiply(this.q), + this.d = s.modInverse(l), + this.dmp1 = this.d.mod(r), + this.dmq1 = this.d.mod(c), + this.coeff = this.q.modInverse(this.p); + break + } + } + } + function _n(e) { + if (null == this.p || null == this.q) + return e.modPow(this.d, this.n); + for (var t = e.mod(this.p).modPow(this.dmp1, this.p), n = e.mod(this.q).modPow(this.dmq1, this.q); t.compareTo(n) < 0; ) + t = t.add(this.p); + return t.subtract(n).multiply(this.coeff).mod(this.p).multiply(this.q).add(n) + } + function wn(e) { + var t = dn(e, 16) + , n = this.doPrivate(t); + return null == n ? null : hn(n, this.n.bitLength() + 7 >> 3) + } + function En(e) { + var t, n, i = ""; + for (t = 0; t + 3 <= e.length; t += 3) + n = parseInt(e.substring(t, t + 3), 16), + i += Nn.charAt(n >> 6) + Nn.charAt(63 & n); + for (t + 1 == e.length ? (n = parseInt(e.substring(t, t + 1), 16), + i += Nn.charAt(n << 2)) : t + 2 == e.length && (n = parseInt(e.substring(t, t + 2), 16), + i += Nn.charAt(n >> 2) + Nn.charAt((3 & n) << 4)); (3 & i.length) > 0; ) + i += qn; + return i + } + function Cn(e) { + var t, n, i = "", o = 0; + for (t = 0; t < e.length && e.charAt(t) != qn; ++t) + v = Nn.indexOf(e.charAt(t)), + 0 > v || (0 == o ? (i += a(v >> 2), + n = 3 & v, + o = 1) : 1 == o ? (i += a(n << 2 | v >> 4), + n = 15 & v, + o = 2) : 2 == o ? (i += a(n), + i += a(v >> 2), + n = 3 & v, + o = 3) : (i += a(n << 2 | v >> 4), + i += a(15 & v), + o = 0)); + return 1 == o && (i += a(n << 2)), + i + } + var Sn, Tn = 0xdeadbeefcafe, In = 15715070 == (16777215 & Tn); + In && "Microsoft Internet Explorer" == navigator.appName ? (t.prototype.am = o, + Sn = 30) : In && "Netscape" != navigator.appName ? (t.prototype.am = i, + Sn = 26) : (t.prototype.am = s, + Sn = 28), + t.prototype.DB = Sn, + t.prototype.DM = (1 << Sn) - 1, + t.prototype.DV = 1 << Sn; + var Dn = 52; + t.prototype.FV = Math.pow(2, Dn), + t.prototype.F1 = Dn - Sn, + t.prototype.F2 = 2 * Sn - Dn; + var kn, Rn, xn = "0123456789abcdefghijklmnopqrstuvwxyz", Ln = new Array; + for (kn = "0".charCodeAt(0), + Rn = 0; 9 >= Rn; ++Rn) + Ln[kn++] = Rn; + for (kn = "a".charCodeAt(0), + Rn = 10; 36 > Rn; ++Rn) + Ln[kn++] = Rn; + for (kn = "A".charCodeAt(0), + Rn = 10; 36 > Rn; ++Rn) + Ln[kn++] = Rn; + R.prototype.convert = x, + R.prototype.revert = L, + R.prototype.reduce = P, + R.prototype.mulTo = A, + R.prototype.sqrTo = M, + O.prototype.convert = V, + O.prototype.revert = $, + O.prototype.reduce = U, + O.prototype.mulTo = q, + O.prototype.sqrTo = N, + t.prototype.copyTo = c, + t.prototype.fromInt = l, + t.prototype.fromString = u, + t.prototype.clamp = p, + t.prototype.dlShiftTo = _, + t.prototype.drShiftTo = w, + t.prototype.lShiftTo = E, + t.prototype.rShiftTo = C, + t.prototype.subTo = S, + t.prototype.multiplyTo = T, + t.prototype.squareTo = I, + t.prototype.divRemTo = D, + t.prototype.invDigit = B, + t.prototype.isEven = H, + t.prototype.exp = F, + t.prototype.toString = g, + t.prototype.negate = m, + t.prototype.abs = f, + t.prototype.compareTo = h, + t.prototype.bitLength = y, + t.prototype.mod = k, + t.prototype.modPowInt = W, + t.ZERO = d(0), + t.ONE = d(1), + Bt.prototype.convert = Ot, + Bt.prototype.revert = Ot, + Bt.prototype.mulTo = Vt, + Bt.prototype.sqrTo = $t, + Ht.prototype.convert = Ft, + Ht.prototype.revert = Wt, + Ht.prototype.reduce = Kt, + Ht.prototype.mulTo = Qt, + Ht.prototype.sqrTo = jt; + var Pn = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997] + , An = (1 << 26) / Pn[Pn.length - 1]; + t.prototype.chunkSize = G, + t.prototype.toRadix = Z, + t.prototype.fromRadix = Y, + t.prototype.fromNumber = X, + t.prototype.bitwiseTo = ot, + t.prototype.changeBit = wt, + t.prototype.addTo = Tt, + t.prototype.dMultiply = At, + t.prototype.dAddOffset = Mt, + t.prototype.multiplyLowerTo = Nt, + t.prototype.multiplyUpperTo = qt, + t.prototype.modInt = zt, + t.prototype.millerRabin = Xt, + t.prototype.clone = K, + t.prototype.intValue = j, + t.prototype.byteValue = Q, + t.prototype.shortValue = J, + t.prototype.signum = z, + t.prototype.toByteArray = et, + t.prototype.equals = tt, + t.prototype.min = nt, + t.prototype.max = it, + t.prototype.and = at, + t.prototype.or = ct, + t.prototype.xor = dt, + t.prototype.andNot = pt, + t.prototype.not = gt, + t.prototype.shiftLeft = mt, + t.prototype.shiftRight = ft, + t.prototype.getLowestSetBit = vt, + t.prototype.bitCount = yt, + t.prototype.testBit = _t, + t.prototype.setBit = Et, + t.prototype.clearBit = Ct, + t.prototype.flipBit = St, + t.prototype.add = It, + t.prototype.subtract = Dt, + t.prototype.multiply = kt, + t.prototype.divide = xt, + t.prototype.remainder = Lt, + t.prototype.divideAndRemainder = Pt, + t.prototype.modPow = Jt, + t.prototype.modInverse = Zt, + t.prototype.pow = Ut, + t.prototype.gcd = Gt, + t.prototype.isProbablePrime = Yt, + t.prototype.square = Rt, + en.prototype.init = tn, + en.prototype.next = nn; + var Mn, Bn, On, Vn = 256; + if (null == Bn) { + Bn = new Array, + On = 0; + var $n; + if ("Netscape" == navigator.appName && navigator.appVersion < "5" && window.crypto && window.crypto.random) { + var Un = window.crypto.random(32); + for ($n = 0; $n < Un.length; ++$n) + Bn[On++] = 255 & Un.charCodeAt($n) + } + for (; Vn > On; ) + $n = Math.floor(65536 * Math.random()), + Bn[On++] = $n >>> 8, + Bn[On++] = 255 & $n; + On = 0, + an() + } + ln.prototype.nextBytes = cn, + pn.prototype.doPublic = mn, + pn.prototype.setPublic = gn, + pn.prototype.encrypt = fn, + pn.prototype.doPrivate = _n, + pn.prototype.setPrivate = vn, + pn.prototype.setPrivateEx = bn, + pn.prototype.generate = yn, + pn.prototype.decrypt = wn, + function() { + var e = function(e, i, o) { + var s = new ln + , a = e >> 1; + this.e = parseInt(i, 16); + var r = new t(i,16) + , c = this + , l = function() { + var i = function() { + if (c.p.compareTo(c.q) <= 0) { + var e = c.p; + c.p = c.q, + c.q = e + } + var n = c.p.subtract(t.ONE) + , i = c.q.subtract(t.ONE) + , s = n.multiply(i); + 0 == s.gcd(r).compareTo(t.ONE) ? (c.n = c.p.multiply(c.q), + c.d = r.modInverse(s), + c.dmp1 = c.d.mod(n), + c.dmq1 = c.d.mod(i), + c.coeff = c.q.modInverse(c.p), + setTimeout(function() { + o() + }, 0)) : setTimeout(l, 0) + } + , d = function() { + c.q = n(), + c.q.fromNumberAsync(a, 1, s, function() { + c.q.subtract(t.ONE).gcda(r, function(e) { + 0 == e.compareTo(t.ONE) && c.q.isProbablePrime(10) ? setTimeout(i, 0) : setTimeout(d, 0) + }) + }) + } + , u = function() { + c.p = n(), + c.p.fromNumberAsync(e - a, 1, s, function() { + c.p.subtract(t.ONE).gcda(r, function(e) { + 0 == e.compareTo(t.ONE) && c.p.isProbablePrime(10) ? setTimeout(d, 0) : setTimeout(u, 0) + }) + }) + }; + setTimeout(u, 0) + }; + setTimeout(l, 0) + }; + pn.prototype.generateAsync = e; + var i = function(e, t) { + var n = this.s < 0 ? this.negate() : this.clone() + , i = e.s < 0 ? e.negate() : e.clone(); + if (n.compareTo(i) < 0) { + var o = n; + n = i, + i = o + } + var s = n.getLowestSetBit() + , a = i.getLowestSetBit(); + if (0 > a) + return void t(n); + a > s && (a = s), + a > 0 && (n.rShiftTo(a, n), + i.rShiftTo(a, i)); + var r = function() { + (s = n.getLowestSetBit()) > 0 && n.rShiftTo(s, n), + (s = i.getLowestSetBit()) > 0 && i.rShiftTo(s, i), + n.compareTo(i) >= 0 ? (n.subTo(i, n), + n.rShiftTo(1, n)) : (i.subTo(n, i), + i.rShiftTo(1, i)), + n.signum() > 0 ? setTimeout(r, 0) : (a > 0 && i.lShiftTo(a, i), + setTimeout(function() { + t(i) + }, 0)) + }; + setTimeout(r, 10) + }; + t.prototype.gcda = i; + var o = function(e, n, i, o) { + if ("number" == typeof n) + if (2 > e) + this.fromInt(1); + else { + this.fromNumber(e, i), + this.testBit(e - 1) || this.bitwiseTo(t.ONE.shiftLeft(e - 1), rt, this), + this.isEven() && this.dAddOffset(1, 0); + var s = this + , a = function() { + s.dAddOffset(2, 0), + s.bitLength() > e && s.subTo(t.ONE.shiftLeft(e - 1), s), + s.isProbablePrime(n) ? setTimeout(function() { + o() + }, 0) : setTimeout(a, 0) + }; + setTimeout(a, 0) + } + else { + var r = new Array + , c = 7 & e; + r.length = (e >> 3) + 1, + n.nextBytes(r), + c > 0 ? r[0] &= (1 << c) - 1 : r[0] = 0, + this.fromString(r, 256) + } + }; + t.prototype.fromNumberAsync = o + }(); + var Nn = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" + , qn = "=" + , Hn = Hn || {}; + Hn.env = Hn.env || {}; + var Fn = Hn + , Wn = Object.prototype + , Kn = "[object Function]" + , jn = ["toString", "valueOf"]; + Hn.env.parseUA = function(e) { + var t, n = function(e) { + var t = 0; + return parseFloat(e.replace(/\./g, function() { + return 1 == t++ ? "" : "." + })) + }, i = navigator, o = { + ie: 0, + opera: 0, + gecko: 0, + webkit: 0, + chrome: 0, + mobile: null, + air: 0, + ipad: 0, + iphone: 0, + ipod: 0, + ios: null, + android: 0, + webos: 0, + caja: i && i.cajaVersion, + secure: !1, + os: null + }, s = e || navigator && navigator.userAgent, a = window && window.location, r = a && a.href; + return o.secure = r && 0 === r.toLowerCase().indexOf("https"), + s && (/windows|win32/i.test(s) ? o.os = "windows" : /macintosh/i.test(s) ? o.os = "macintosh" : /rhino/i.test(s) && (o.os = "rhino"), + /KHTML/.test(s) && (o.webkit = 1), + t = s.match(/AppleWebKit\/([^\s]*)/), + t && t[1] && (o.webkit = n(t[1]), + / Mobile\//.test(s) ? (o.mobile = "Apple", + t = s.match(/OS ([^\s]*)/), + t && t[1] && (t = n(t[1].replace("_", "."))), + o.ios = t, + o.ipad = o.ipod = o.iphone = 0, + t = s.match(/iPad|iPod|iPhone/), + t && t[0] && (o[t[0].toLowerCase()] = o.ios)) : (t = s.match(/NokiaN[^\/]*|Android \d\.\d|webOS\/\d\.\d/), + t && (o.mobile = t[0]), + /webOS/.test(s) && (o.mobile = "WebOS", + t = s.match(/webOS\/([^\s]*);/), + t && t[1] && (o.webos = n(t[1]))), + / Android/.test(s) && (o.mobile = "Android", + t = s.match(/Android ([^\s]*);/), + t && t[1] && (o.android = n(t[1])))), + t = s.match(/Chrome\/([^\s]*)/), + t && t[1] ? o.chrome = n(t[1]) : (t = s.match(/AdobeAIR\/([^\s]*)/), + t && (o.air = t[0]))), + o.webkit || (t = s.match(/Opera[\s\/]([^\s]*)/), + t && t[1] ? (o.opera = n(t[1]), + t = s.match(/Version\/([^\s]*)/), + t && t[1] && (o.opera = n(t[1])), + t = s.match(/Opera Mini[^;]*/), + t && (o.mobile = t[0])) : (t = s.match(/MSIE\s([^;]*)/), + t && t[1] ? o.ie = n(t[1]) : (t = s.match(/Gecko\/([^\s]*)/), + t && (o.gecko = 1, + t = s.match(/rv:([^\s\)]*)/), + t && t[1] && (o.gecko = n(t[1]))))))), + o + } + , + Hn.env.ua = Hn.env.parseUA(), + Hn.isFunction = function(e) { + return "function" == typeof e || Wn.toString.apply(e) === Kn + } + , + Hn._IEEnumFix = Hn.env.ua.ie ? function(e, t) { + var n, i, o; + for (n = 0; n < jn.length; n += 1) + i = jn[n], + o = t[i], + Fn.isFunction(o) && o != Wn[i] && (e[i] = o) + } + : function() {} + , + Hn.extend = function(e, t, n) { + if (!t || !e) + throw new Error("extend failed, please check that all dependencies are included."); + var i, o = function() {}; + if (o.prototype = t.prototype, + e.prototype = new o, + e.prototype.constructor = e, + e.superclass = t.prototype, + t.prototype.constructor == Wn.constructor && (t.prototype.constructor = t), + n) { + for (i in n) + Fn.hasOwnProperty(n, i) && (e.prototype[i] = n[i]); + Fn._IEEnumFix(e.prototype, n) + } + } + , + "undefined" != typeof KJUR && KJUR || (KJUR = {}), + "undefined" != typeof KJUR.asn1 && KJUR.asn1 || (KJUR.asn1 = {}), + KJUR.asn1.ASN1Util = new function() { + this.integerToByteHex = function(e) { + var t = e.toString(16); + return t.length % 2 == 1 && (t = "0" + t), + t + } + , + this.bigIntToMinTwosComplementsHex = function(e) { + var n = e.toString(16); + if ("-" != n.substr(0, 1)) + n.length % 2 == 1 ? n = "0" + n : n.match(/^[0-7]/) || (n = "00" + n); + else { + var i = n.substr(1) + , o = i.length; + o % 2 == 1 ? o += 1 : n.match(/^[0-7]/) || (o += 2); + for (var s = "", a = 0; o > a; a++) + s += "f"; + var r = new t(s,16) + , c = r.xor(e).add(t.ONE); + n = c.toString(16).replace(/^-/, "") + } + return n + } + , + this.getPEMStringFromHex = function(e, t) { + var n = CryptoJS.enc.Hex.parse(e) + , i = CryptoJS.enc.Base64.stringify(n) + , o = i.replace(/(.{64})/g, "$1\r\n"); + return o = o.replace(/\r\n$/, ""), + "-----BEGIN " + t + "-----\r\n" + o + "\r\n-----END " + t + "-----\r\n" + } + } + , + KJUR.asn1.ASN1Object = function() { + var e = ""; + this.getLengthHexFromValue = function() { + if ("undefined" == typeof this.hV || null == this.hV) + throw "this.hV is null or undefined."; + if (this.hV.length % 2 == 1) + throw "value hex must be even length: n=" + e.length + ",v=" + this.hV; + var t = this.hV.length / 2 + , n = t.toString(16); + if (n.length % 2 == 1 && (n = "0" + n), + 128 > t) + return n; + var i = n.length / 2; + if (i > 15) + throw "ASN.1 length too long to represent by 8x: n = " + t.toString(16); + var o = 128 + i; + return o.toString(16) + n + } + , + this.getEncodedHex = function() { + return (null == this.hTLV || this.isModified) && (this.hV = this.getFreshValueHex(), + this.hL = this.getLengthHexFromValue(), + this.hTLV = this.hT + this.hL + this.hV, + this.isModified = !1), + this.hTLV + } + , + this.getValueHex = function() { + return this.getEncodedHex(), + this.hV + } + , + this.getFreshValueHex = function() { + return "" + } + } + , + KJUR.asn1.DERAbstractString = function(e) { + KJUR.asn1.DERAbstractString.superclass.constructor.call(this), + this.getString = function() { + return this.s + } + , + this.setString = function(e) { + this.hTLV = null, + this.isModified = !0, + this.s = e, + this.hV = stohex(this.s) + } + , + this.setStringHex = function(e) { + this.hTLV = null, + this.isModified = !0, + this.s = null, + this.hV = e + } + , + this.getFreshValueHex = function() { + return this.hV + } + , + "undefined" != typeof e && ("undefined" != typeof e.str ? this.setString(e.str) : "undefined" != typeof e.hex && this.setStringHex(e.hex)) + } + , + Hn.extend(KJUR.asn1.DERAbstractString, KJUR.asn1.ASN1Object), + KJUR.asn1.DERAbstractTime = function() { + KJUR.asn1.DERAbstractTime.superclass.constructor.call(this), + this.localDateToUTC = function(e) { + utc = e.getTime() + 6e4 * e.getTimezoneOffset(); + var t = new Date(utc); + return t + } + , + this.formatDate = function(e, t) { + var n = this.zeroPadding + , i = this.localDateToUTC(e) + , o = String(i.getFullYear()); + "utc" == t && (o = o.substr(2, 2)); + var s = n(String(i.getMonth() + 1), 2) + , a = n(String(i.getDate()), 2) + , r = n(String(i.getHours()), 2) + , c = n(String(i.getMinutes()), 2) + , l = n(String(i.getSeconds()), 2); + return o + s + a + r + c + l + "Z" + } + , + this.zeroPadding = function(e, t) { + return e.length >= t ? e : new Array(t - e.length + 1).join("0") + e + } + , + this.getString = function() { + return this.s + } + , + this.setString = function(e) { + this.hTLV = null, + this.isModified = !0, + this.s = e, + this.hV = stohex(this.s) + } + , + this.setByDateValue = function(e, t, n, i, o, s) { + var a = new Date(Date.UTC(e, t - 1, n, i, o, s, 0)); + this.setByDate(a) + } + , + this.getFreshValueHex = function() { + return this.hV + } + } + , + Hn.extend(KJUR.asn1.DERAbstractTime, KJUR.asn1.ASN1Object), + KJUR.asn1.DERAbstractStructured = function(e) { + KJUR.asn1.DERAbstractString.superclass.constructor.call(this), + this.setByASN1ObjectArray = function(e) { + this.hTLV = null, + this.isModified = !0, + this.asn1Array = e + } + , + this.appendASN1Object = function(e) { + this.hTLV = null, + this.isModified = !0, + this.asn1Array.push(e) + } + , + this.asn1Array = new Array, + "undefined" != typeof e && "undefined" != typeof e.array && (this.asn1Array = e.array) + } + , + Hn.extend(KJUR.asn1.DERAbstractStructured, KJUR.asn1.ASN1Object), + KJUR.asn1.DERBoolean = function() { + KJUR.asn1.DERBoolean.superclass.constructor.call(this), + this.hT = "01", + this.hTLV = "0101ff" + } + , + Hn.extend(KJUR.asn1.DERBoolean, KJUR.asn1.ASN1Object), + KJUR.asn1.DERInteger = function(e) { + KJUR.asn1.DERInteger.superclass.constructor.call(this), + this.hT = "02", + this.setByBigInteger = function(e) { + this.hTLV = null, + this.isModified = !0, + this.hV = KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(e) + } + , + this.setByInteger = function(e) { + var n = new t(String(e),10); + this.setByBigInteger(n) + } + , + this.setValueHex = function(e) { + this.hV = e + } + , + this.getFreshValueHex = function() { + return this.hV + } + , + "undefined" != typeof e && ("undefined" != typeof e.bigint ? this.setByBigInteger(e.bigint) : "undefined" != typeof e["int"] ? this.setByInteger(e["int"]) : "undefined" != typeof e.hex && this.setValueHex(e.hex)) + } + , + Hn.extend(KJUR.asn1.DERInteger, KJUR.asn1.ASN1Object), + KJUR.asn1.DERBitString = function(e) { + KJUR.asn1.DERBitString.superclass.constructor.call(this), + this.hT = "03", + this.setHexValueIncludingUnusedBits = function(e) { + this.hTLV = null, + this.isModified = !0, + this.hV = e + } + , + this.setUnusedBitsAndHexValue = function(e, t) { + if (0 > e || e > 7) + throw "unused bits shall be from 0 to 7: u = " + e; + var n = "0" + e; + this.hTLV = null, + this.isModified = !0, + this.hV = n + t + } + , + this.setByBinaryString = function(e) { + e = e.replace(/0+$/, ""); + var t = 8 - e.length % 8; + 8 == t && (t = 0); + for (var n = 0; t >= n; n++) + e += "0"; + for (var i = "", n = 0; n < e.length - 1; n += 8) { + var o = e.substr(n, 8) + , s = parseInt(o, 2).toString(16); + 1 == s.length && (s = "0" + s), + i += s + } + this.hTLV = null, + this.isModified = !0, + this.hV = "0" + t + i + } + , + this.setByBooleanArray = function(e) { + for (var t = "", n = 0; n < e.length; n++) + t += 1 == e[n] ? "1" : "0"; + this.setByBinaryString(t) + } + , + this.newFalseArray = function(e) { + for (var t = new Array(e), n = 0; e > n; n++) + t[n] = !1; + return t + } + , + this.getFreshValueHex = function() { + return this.hV + } + , + "undefined" != typeof e && ("undefined" != typeof e.hex ? this.setHexValueIncludingUnusedBits(e.hex) : "undefined" != typeof e.bin ? this.setByBinaryString(e.bin) : "undefined" != typeof e.array && this.setByBooleanArray(e.array)) + } + , + Hn.extend(KJUR.asn1.DERBitString, KJUR.asn1.ASN1Object), + KJUR.asn1.DEROctetString = function(e) { + KJUR.asn1.DEROctetString.superclass.constructor.call(this, e), + this.hT = "04" + } + , + Hn.extend(KJUR.asn1.DEROctetString, KJUR.asn1.DERAbstractString), + KJUR.asn1.DERNull = function() { + KJUR.asn1.DERNull.superclass.constructor.call(this), + this.hT = "05", + this.hTLV = "0500" + } + , + Hn.extend(KJUR.asn1.DERNull, KJUR.asn1.ASN1Object), + KJUR.asn1.DERObjectIdentifier = function(e) { + var n = function(e) { + var t = e.toString(16); + return 1 == t.length && (t = "0" + t), + t + } + , i = function(e) { + var i = "" + , o = new t(e,10) + , s = o.toString(2) + , a = 7 - s.length % 7; + 7 == a && (a = 0); + for (var r = "", c = 0; a > c; c++) + r += "0"; + s = r + s; + for (var c = 0; c < s.length - 1; c += 7) { + var l = s.substr(c, 7); + c != s.length - 7 && (l = "1" + l), + i += n(parseInt(l, 2)) + } + return i + }; + KJUR.asn1.DERObjectIdentifier.superclass.constructor.call(this), + this.hT = "06", + this.setValueHex = function(e) { + this.hTLV = null, + this.isModified = !0, + this.s = null, + this.hV = e + } + , + this.setValueOidString = function(e) { + if (!e.match(/^[0-9.]+$/)) + throw "malformed oid string: " + e; + var t = "" + , o = e.split(".") + , s = 40 * parseInt(o[0]) + parseInt(o[1]); + t += n(s), + o.splice(0, 2); + for (var a = 0; a < o.length; a++) + t += i(o[a]); + this.hTLV = null, + this.isModified = !0, + this.s = null, + this.hV = t + } + , + this.setValueName = function(e) { + if ("undefined" == typeof KJUR.asn1.x509.OID.name2oidList[e]) + throw "DERObjectIdentifier oidName undefined: " + e; + var t = KJUR.asn1.x509.OID.name2oidList[e]; + this.setValueOidString(t) + } + , + this.getFreshValueHex = function() { + return this.hV + } + , + "undefined" != typeof e && ("undefined" != typeof e.oid ? this.setValueOidString(e.oid) : "undefined" != typeof e.hex ? this.setValueHex(e.hex) : "undefined" != typeof e.name && this.setValueName(e.name)) + } + , + Hn.extend(KJUR.asn1.DERObjectIdentifier, KJUR.asn1.ASN1Object), + KJUR.asn1.DERUTF8String = function(e) { + KJUR.asn1.DERUTF8String.superclass.constructor.call(this, e), + this.hT = "0c" + } + , + Hn.extend(KJUR.asn1.DERUTF8String, KJUR.asn1.DERAbstractString), + KJUR.asn1.DERNumericString = function(e) { + KJUR.asn1.DERNumericString.superclass.constructor.call(this, e), + this.hT = "12" + } + , + Hn.extend(KJUR.asn1.DERNumericString, KJUR.asn1.DERAbstractString), + KJUR.asn1.DERPrintableString = function(e) { + KJUR.asn1.DERPrintableString.superclass.constructor.call(this, e), + this.hT = "13" + } + , + Hn.extend(KJUR.asn1.DERPrintableString, KJUR.asn1.DERAbstractString), + KJUR.asn1.DERTeletexString = function(e) { + KJUR.asn1.DERTeletexString.superclass.constructor.call(this, e), + this.hT = "14" + } + , + Hn.extend(KJUR.asn1.DERTeletexString, KJUR.asn1.DERAbstractString), + KJUR.asn1.DERIA5String = function(e) { + KJUR.asn1.DERIA5String.superclass.constructor.call(this, e), + this.hT = "16" + } + , + Hn.extend(KJUR.asn1.DERIA5String, KJUR.asn1.DERAbstractString), + KJUR.asn1.DERUTCTime = function(e) { + KJUR.asn1.DERUTCTime.superclass.constructor.call(this, e), + this.hT = "17", + this.setByDate = function(e) { + this.hTLV = null, + this.isModified = !0, + this.date = e, + this.s = this.formatDate(this.date, "utc"), + this.hV = stohex(this.s) + } + , + "undefined" != typeof e && ("undefined" != typeof e.str ? this.setString(e.str) : "undefined" != typeof e.hex ? this.setStringHex(e.hex) : "undefined" != typeof e.date && this.setByDate(e.date)) + } + , + Hn.extend(KJUR.asn1.DERUTCTime, KJUR.asn1.DERAbstractTime), + KJUR.asn1.DERGeneralizedTime = function(e) { + KJUR.asn1.DERGeneralizedTime.superclass.constructor.call(this, e), + this.hT = "18", + this.setByDate = function(e) { + this.hTLV = null, + this.isModified = !0, + this.date = e, + this.s = this.formatDate(this.date, "gen"), + this.hV = stohex(this.s) + } + , + "undefined" != typeof e && ("undefined" != typeof e.str ? this.setString(e.str) : "undefined" != typeof e.hex ? this.setStringHex(e.hex) : "undefined" != typeof e.date && this.setByDate(e.date)) + } + , + Hn.extend(KJUR.asn1.DERGeneralizedTime, KJUR.asn1.DERAbstractTime), + KJUR.asn1.DERSequence = function(e) { + KJUR.asn1.DERSequence.superclass.constructor.call(this, e), + this.hT = "30", + this.getFreshValueHex = function() { + for (var e = "", t = 0; t < this.asn1Array.length; t++) { + var n = this.asn1Array[t]; + e += n.getEncodedHex() + } + return this.hV = e, + this.hV + } + } + , + Hn.extend(KJUR.asn1.DERSequence, KJUR.asn1.DERAbstractStructured), + KJUR.asn1.DERSet = function(e) { + KJUR.asn1.DERSet.superclass.constructor.call(this, e), + this.hT = "31", + this.getFreshValueHex = function() { + for (var e = new Array, t = 0; t < this.asn1Array.length; t++) { + var n = this.asn1Array[t]; + e.push(n.getEncodedHex()) + } + return e.sort(), + this.hV = e.join(""), + this.hV + } + } + , + Hn.extend(KJUR.asn1.DERSet, KJUR.asn1.DERAbstractStructured), + KJUR.asn1.DERTaggedObject = function(e) { + KJUR.asn1.DERTaggedObject.superclass.constructor.call(this), + this.hT = "a0", + this.hV = "", + this.isExplicit = !0, + this.asn1Object = null, + this.setASN1Object = function(e, t, n) { + this.hT = t, + this.isExplicit = e, + this.asn1Object = n, + this.isExplicit ? (this.hV = this.asn1Object.getEncodedHex(), + this.hTLV = null, + this.isModified = !0) : (this.hV = null, + this.hTLV = n.getEncodedHex(), + this.hTLV = this.hTLV.replace(/^../, t), + this.isModified = !1) + } + , + this.getFreshValueHex = function() { + return this.hV + } + , + "undefined" != typeof e && ("undefined" != typeof e.tag && (this.hT = e.tag), + "undefined" != typeof e.explicit && (this.isExplicit = e.explicit), + "undefined" != typeof e.obj && (this.asn1Object = e.obj, + this.setASN1Object(this.isExplicit, this.hT, this.asn1Object))) + } + , + Hn.extend(KJUR.asn1.DERTaggedObject, KJUR.asn1.ASN1Object), + function(e) { + "use strict"; + var t, n = {}; + n.decode = function(n) { + var i; + if (t === e) { + var o = "0123456789ABCDEF" + , s = " \f\n\r  \u2028\u2029"; + for (t = [], + i = 0; 16 > i; ++i) + t[o.charAt(i)] = i; + for (o = o.toLowerCase(), + i = 10; 16 > i; ++i) + t[o.charAt(i)] = i; + for (i = 0; i < s.length; ++i) + t[s.charAt(i)] = -1 + } + var a = [] + , r = 0 + , c = 0; + for (i = 0; i < n.length; ++i) { + var l = n.charAt(i); + if ("=" == l) + break; + if (l = t[l], + -1 != l) { + if (l === e) + throw "Illegal character at offset " + i; + r |= l, + ++c >= 2 ? (a[a.length] = r, + r = 0, + c = 0) : r <<= 4 + } + } + if (c) + throw "Hex encoding incomplete: 4 bits missing"; + return a + } + , + window.Hex = n + }(), + function(e) { + "use strict"; + var t, n = {}; + n.decode = function(n) { + var i; + if (t === e) { + var o = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" + , s = "= \f\n\r  \u2028\u2029"; + for (t = [], + i = 0; 64 > i; ++i) + t[o.charAt(i)] = i; + for (i = 0; i < s.length; ++i) + t[s.charAt(i)] = -1 + } + var a = [] + , r = 0 + , c = 0; + for (i = 0; i < n.length; ++i) { + var l = n.charAt(i); + if ("=" == l) + break; + if (l = t[l], + -1 != l) { + if (l === e) + throw "Illegal character at offset " + i; + r |= l, + ++c >= 4 ? (a[a.length] = r >> 16, + a[a.length] = r >> 8 & 255, + a[a.length] = 255 & r, + r = 0, + c = 0) : r <<= 6 + } + } + switch (c) { + case 1: + throw "Base64 encoding incomplete: at least 2 bits missing"; + case 2: + a[a.length] = r >> 10; + break; + case 3: + a[a.length] = r >> 16, + a[a.length] = r >> 8 & 255 + } + return a + } + , + n.re = /-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+\/=\s]+)====/, + n.unarmor = function(e) { + var t = n.re.exec(e); + if (t) + if (t[1]) + e = t[1]; + else { + if (!t[2]) + throw "RegExp out of sync"; + e = t[2] + } + return n.decode(e) + } + , + window.Base64 = n + }(), + function(e) { + "use strict"; + function t(e, n) { + e instanceof t ? (this.enc = e.enc, + this.pos = e.pos) : (this.enc = e, + this.pos = n) + } + function n(e, t, n, i, o) { + this.stream = e, + this.header = t, + this.length = n, + this.tag = i, + this.sub = o + } + var i = 100 + , o = "…" + , s = { + tag: function(e, t) { + var n = document.createElement(e); + return n.className = t, + n + }, + text: function(e) { + return document.createTextNode(e) + } + }; + t.prototype.get = function(t) { + if (t === e && (t = this.pos++), + t >= this.enc.length) + throw "Requesting byte offset " + t + " on a stream of length " + this.enc.length; + return this.enc[t] + } + , + t.prototype.hexDigits = "0123456789ABCDEF", + t.prototype.hexByte = function(e) { + return this.hexDigits.charAt(e >> 4 & 15) + this.hexDigits.charAt(15 & e) + } + , + t.prototype.hexDump = function(e, t, n) { + for (var i = "", o = e; t > o; ++o) + if (i += this.hexByte(this.get(o)), + n !== !0) + switch (15 & o) { + case 7: + i += " "; + break; + case 15: + i += "\n"; + break; + default: + i += " " + } + return i + } + , + t.prototype.parseStringISO = function(e, t) { + for (var n = "", i = e; t > i; ++i) + n += String.fromCharCode(this.get(i)); + return n + } + , + t.prototype.parseStringUTF = function(e, t) { + for (var n = "", i = e; t > i; ) { + var o = this.get(i++); + n += String.fromCharCode(128 > o ? o : o > 191 && 224 > o ? (31 & o) << 6 | 63 & this.get(i++) : (15 & o) << 12 | (63 & this.get(i++)) << 6 | 63 & this.get(i++)) + } + return n + } + , + t.prototype.parseStringBMP = function(e, t) { + for (var n = "", i = e; t > i; i += 2) { + var o = this.get(i) + , s = this.get(i + 1); + n += String.fromCharCode((o << 8) + s) + } + return n + } + , + t.prototype.reTime = /^((?:1[89]|2\d)?\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/, + t.prototype.parseTime = function(e, t) { + var n = this.parseStringISO(e, t) + , i = this.reTime.exec(n); + return i ? (n = i[1] + "-" + i[2] + "-" + i[3] + " " + i[4], + i[5] && (n += ":" + i[5], + i[6] && (n += ":" + i[6], + i[7] && (n += "." + i[7]))), + i[8] && (n += " UTC", + "Z" != i[8] && (n += i[8], + i[9] && (n += ":" + i[9]))), + n) : "Unrecognized time: " + n + } + , + t.prototype.parseInteger = function(e, t) { + var n = t - e; + if (n > 4) { + n <<= 3; + var i = this.get(e); + if (0 === i) + n -= 8; + else + for (; 128 > i; ) + i <<= 1, + --n; + return "(" + n + " bit)" + } + for (var o = 0, s = e; t > s; ++s) + o = o << 8 | this.get(s); + return o + } + , + t.prototype.parseBitString = function(e, t) { + var n = this.get(e) + , i = (t - e - 1 << 3) - n + , o = "(" + i + " bit)"; + if (20 >= i) { + var s = n; + o += " "; + for (var a = t - 1; a > e; --a) { + for (var r = this.get(a), c = s; 8 > c; ++c) + o += r >> c & 1 ? "1" : "0"; + s = 0 + } + } + return o + } + , + t.prototype.parseOctetString = function(e, t) { + var n = t - e + , s = "(" + n + " byte) "; + n > i && (t = e + i); + for (var a = e; t > a; ++a) + s += this.hexByte(this.get(a)); + return n > i && (s += o), + s + } + , + t.prototype.parseOID = function(e, t) { + for (var n = "", i = 0, o = 0, s = e; t > s; ++s) { + var a = this.get(s); + if (i = i << 7 | 127 & a, + o += 7, + !(128 & a)) { + if ("" === n) { + var r = 80 > i ? 40 > i ? 0 : 1 : 2; + n = r + "." + (i - 40 * r) + } else + n += "." + (o >= 31 ? "bigint" : i); + i = o = 0 + } + } + return n + } + , + n.prototype.typeName = function() { + if (this.tag === e) + return "unknown"; + var t = this.tag >> 6 + , n = (this.tag >> 5 & 1, + 31 & this.tag); + switch (t) { + case 0: + switch (n) { + case 0: + return "EOC"; + case 1: + return "BOOLEAN"; + case 2: + return "INTEGER"; + case 3: + return "BIT_STRING"; + case 4: + return "OCTET_STRING"; + case 5: + return "NULL"; + case 6: + return "OBJECT_IDENTIFIER"; + case 7: + return "ObjectDescriptor"; + case 8: + return "EXTERNAL"; + case 9: + return "REAL"; + case 10: + return "ENUMERATED"; + case 11: + return "EMBEDDED_PDV"; + case 12: + return "UTF8String"; + case 16: + return "SEQUENCE"; + case 17: + return "SET"; + case 18: + return "NumericString"; + case 19: + return "PrintableString"; + case 20: + return "TeletexString"; + case 21: + return "VideotexString"; + case 22: + return "IA5String"; + case 23: + return "UTCTime"; + case 24: + return "GeneralizedTime"; + case 25: + return "GraphicString"; + case 26: + return "VisibleString"; + case 27: + return "GeneralString"; + case 28: + return "UniversalString"; + case 30: + return "BMPString"; + default: + return "Universal_" + n.toString(16) + } + case 1: + return "Application_" + n.toString(16); + case 2: + return "[" + n + "]"; + case 3: + return "Private_" + n.toString(16) + } + } + , + n.prototype.reSeemsASCII = /^[ -~]+$/, + n.prototype.content = function() { + if (this.tag === e) + return null; + var t = this.tag >> 6 + , n = 31 & this.tag + , s = this.posContent() + , a = Math.abs(this.length); + if (0 !== t) { + if (null !== this.sub) + return "(" + this.sub.length + " elem)"; + var r = this.stream.parseStringISO(s, s + Math.min(a, i)); + return this.reSeemsASCII.test(r) ? r.substring(0, 2 * i) + (r.length > 2 * i ? o : "") : this.stream.parseOctetString(s, s + a) + } + switch (n) { + case 1: + return 0 === this.stream.get(s) ? "false" : "true"; + case 2: + return this.stream.parseInteger(s, s + a); + case 3: + return this.sub ? "(" + this.sub.length + " elem)" : this.stream.parseBitString(s, s + a); + case 4: + return this.sub ? "(" + this.sub.length + " elem)" : this.stream.parseOctetString(s, s + a); + case 6: + return this.stream.parseOID(s, s + a); + case 16: + case 17: + return "(" + this.sub.length + " elem)"; + case 12: + return this.stream.parseStringUTF(s, s + a); + case 18: + case 19: + case 20: + case 21: + case 22: + case 26: + return this.stream.parseStringISO(s, s + a); + case 30: + return this.stream.parseStringBMP(s, s + a); + case 23: + case 24: + return this.stream.parseTime(s, s + a) + } + return null + } + , + n.prototype.toString = function() { + return this.typeName() + "@" + this.stream.pos + "[header:" + this.header + ",length:" + this.length + ",sub:" + (null === this.sub ? "null" : this.sub.length) + "]" + } + , + n.prototype.print = function(t) { + if (t === e && (t = ""), + document.writeln(t + this), + null !== this.sub) { + t += " "; + for (var n = 0, i = this.sub.length; i > n; ++n) + this.sub[n].print(t) + } + } + , + n.prototype.toPrettyString = function(t) { + t === e && (t = ""); + var n = t + this.typeName() + " @" + this.stream.pos; + if (this.length >= 0 && (n += "+"), + n += this.length, + 32 & this.tag ? n += " (constructed)" : 3 != this.tag && 4 != this.tag || null === this.sub || (n += " (encapsulates)"), + n += "\n", + null !== this.sub) { + t += " "; + for (var i = 0, o = this.sub.length; o > i; ++i) + n += this.sub[i].toPrettyString(t) + } + return n + } + , + n.prototype.toDOM = function() { + var e = s.tag("div", "node"); + e.asn1 = this; + var t = s.tag("div", "head") + , n = this.typeName().replace(/_/g, " "); + t.innerHTML = n; + var i = this.content(); + if (null !== i) { + i = String(i).replace(/", + n += "Length: " + this.header + "+", + n += this.length >= 0 ? this.length : -this.length + " (undefined)", + 32 & this.tag ? n += "
(constructed)" : 3 != this.tag && 4 != this.tag || null === this.sub || (n += "
(encapsulates)"), + null !== i && (n += "
Value:
" + i + "", + "object" == typeof oids && 6 == this.tag)) { + var r = oids[i]; + r && (r.d && (n += "
" + r.d), + r.c && (n += "
" + r.c), + r.w && (n += "
(warning!)")) + } + a.innerHTML = n, + e.appendChild(a); + var c = s.tag("div", "sub"); + if (null !== this.sub) + for (var l = 0, d = this.sub.length; d > l; ++l) + c.appendChild(this.sub[l].toDOM()); + return e.appendChild(c), + t.onclick = function() { + e.className = "node collapsed" == e.className ? "node" : "node collapsed" + } + , + e + } + , + n.prototype.posStart = function() { + return this.stream.pos + } + , + n.prototype.posContent = function() { + return this.stream.pos + this.header + } + , + n.prototype.posEnd = function() { + return this.stream.pos + this.header + Math.abs(this.length) + } + , + n.prototype.fakeHover = function(e) { + this.node.className += " hover", + e && (this.head.className += " hover") + } + , + n.prototype.fakeOut = function(e) { + var t = / ?hover/; + this.node.className = this.node.className.replace(t, ""), + e && (this.head.className = this.head.className.replace(t, "")) + } + , + n.prototype.toHexDOM_sub = function(e, t, n, i, o) { + if (!(i >= o)) { + var a = s.tag("span", t); + a.appendChild(s.text(n.hexDump(i, o))), + e.appendChild(a) + } + } + , + n.prototype.toHexDOM = function(t) { + var n = s.tag("span", "hex"); + if (t === e && (t = n), + this.head.hexNode = n, + this.head.onmouseover = function() { + this.hexNode.className = "hexCurrent" + } + , + this.head.onmouseout = function() { + this.hexNode.className = "hex" + } + , + n.asn1 = this, + n.onmouseover = function() { + var e = !t.selected; + e && (t.selected = this.asn1, + this.className = "hexCurrent"), + this.asn1.fakeHover(e) + } + , + n.onmouseout = function() { + var e = t.selected == this.asn1; + this.asn1.fakeOut(e), + e && (t.selected = null, + this.className = "hex") + } + , + this.toHexDOM_sub(n, "tag", this.stream, this.posStart(), this.posStart() + 1), + this.toHexDOM_sub(n, this.length >= 0 ? "dlen" : "ulen", this.stream, this.posStart() + 1, this.posContent()), + null === this.sub) + n.appendChild(s.text(this.stream.hexDump(this.posContent(), this.posEnd()))); + else if (this.sub.length > 0) { + var i = this.sub[0] + , o = this.sub[this.sub.length - 1]; + this.toHexDOM_sub(n, "intro", this.stream, this.posContent(), i.posStart()); + for (var a = 0, r = this.sub.length; r > a; ++a) + n.appendChild(this.sub[a].toHexDOM(t)); + this.toHexDOM_sub(n, "outro", this.stream, o.posEnd(), this.posEnd()) + } + return n + } + , + n.prototype.toHexString = function() { + return this.stream.hexDump(this.posStart(), this.posEnd(), !0) + } + , + n.decodeLength = function(e) { + var t = e.get() + , n = 127 & t; + if (n == t) + return n; + if (n > 3) + throw "Length over 24 bits not supported at position " + (e.pos - 1); + if (0 === n) + return -1; + t = 0; + for (var i = 0; n > i; ++i) + t = t << 8 | e.get(); + return t + } + , + n.hasContent = function(e, i, o) { + if (32 & e) + return !0; + if (3 > e || e > 4) + return !1; + var s = new t(o); + 3 == e && s.get(); + var a = s.get(); + if (a >> 6 & 1) + return !1; + try { + var r = n.decodeLength(s); + return s.pos - o.pos + r == i + } catch (c) { + return !1 + } + } + , + n.decode = function(e) { + e instanceof t || (e = new t(e,0)); + var i = new t(e) + , o = e.get() + , s = n.decodeLength(e) + , a = e.pos - i.pos + , r = null; + if (n.hasContent(o, s, e)) { + var c = e.pos; + if (3 == o && e.get(), + r = [], + s >= 0) { + for (var l = c + s; e.pos < l; ) + r[r.length] = n.decode(e); + if (e.pos != l) + throw "Content size is not correct for container starting at offset " + c + } else + try { + for (; ; ) { + var d = n.decode(e); + if (0 === d.tag) + break; + r[r.length] = d + } + s = c - e.pos + } catch (u) { + throw "Exception while decoding undefined length content: " + u + } + } else + e.pos += s; + return new n(i,a,s,o,r) + } + , + n.test = function() { + for (var e = [{ + value: [39], + expected: 39 + }, { + value: [129, 201], + expected: 201 + }, { + value: [131, 254, 220, 186], + expected: 16702650 + }], i = 0, o = e.length; o > i; ++i) { + var s = new t(e[i].value,0) + , a = n.decodeLength(s); + a != e[i].expected && document.write("In test[" + i + "] expected " + e[i].expected + " got " + a + "\n") + } + } + , + window.ASN1 = n + }(), + ASN1.prototype.getHexStringValue = function() { + var e = this.toHexString() + , t = 2 * this.header + , n = 2 * this.length; + return e.substr(t, n) + } + , + pn.prototype.parseKey = function(e) { + try { + var t = /^\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\s*)+$/ + , n = t.test(e) ? Hex.decode(e) : Base64.unarmor(e) + , i = ASN1.decode(n); + if (9 === i.sub.length) { + var o = i.sub[1].getHexStringValue(); + this.n = dn(o, 16); + var s = i.sub[2].getHexStringValue(); + this.e = parseInt(s, 16); + var a = i.sub[3].getHexStringValue(); + this.d = dn(a, 16); + var r = i.sub[4].getHexStringValue(); + this.p = dn(r, 16); + var c = i.sub[5].getHexStringValue(); + this.q = dn(c, 16); + var l = i.sub[6].getHexStringValue(); + this.dmp1 = dn(l, 16); + var d = i.sub[7].getHexStringValue(); + this.dmq1 = dn(d, 16); + var u = i.sub[8].getHexStringValue(); + this.coeff = dn(u, 16) + } else { + if (2 !== i.sub.length) + return !1; + var p = i.sub[1] + , g = p.sub[0] + , o = g.sub[0].getHexStringValue(); + this.n = dn(o, 16); + var s = g.sub[1].getHexStringValue(); + this.e = parseInt(s, 16) + } + return !0 + } catch (m) { + return !1 + } + } + , + pn.prototype.getPrivateBaseKey = function() { + var e = { + array: [new KJUR.asn1.DERInteger({ + "int": 0 + }), new KJUR.asn1.DERInteger({ + bigint: this.n + }), new KJUR.asn1.DERInteger({ + "int": this.e + }), new KJUR.asn1.DERInteger({ + bigint: this.d + }), new KJUR.asn1.DERInteger({ + bigint: this.p + }), new KJUR.asn1.DERInteger({ + bigint: this.q + }), new KJUR.asn1.DERInteger({ + bigint: this.dmp1 + }), new KJUR.asn1.DERInteger({ + bigint: this.dmq1 + }), new KJUR.asn1.DERInteger({ + bigint: this.coeff + })] + } + , t = new KJUR.asn1.DERSequence(e); + return t.getEncodedHex() + } + , + pn.prototype.getPrivateBaseKeyB64 = function() { + return En(this.getPrivateBaseKey()) + } + , + pn.prototype.getPublicBaseKey = function() { + var e = { + array: [new KJUR.asn1.DERObjectIdentifier({ + oid: "1.2.840.113549.1.1.1" + }), new KJUR.asn1.DERNull] + } + , t = new KJUR.asn1.DERSequence(e); + e = { + array: [new KJUR.asn1.DERInteger({ + bigint: this.n + }), new KJUR.asn1.DERInteger({ + "int": this.e + })] + }; + var n = new KJUR.asn1.DERSequence(e); + e = { + hex: "00" + n.getEncodedHex() + }; + var i = new KJUR.asn1.DERBitString(e); + e = { + array: [t, i] + }; + var o = new KJUR.asn1.DERSequence(e); + return o.getEncodedHex() + } + , + pn.prototype.getPublicBaseKeyB64 = function() { + return En(this.getPublicBaseKey()) + } + , + pn.prototype.wordwrap = function(e, t) { + if (t = t || 64, + !e) + return e; + var n = "(.{1," + t + "})( +|$\n?)|(.{1," + t + "})"; + return e.match(RegExp(n, "g")).join("\n") + } + , + pn.prototype.getPrivateKey = function() { + var e = "-----BEGIN RSA PRIVATE KEY-----\n"; + return e += this.wordwrap(this.getPrivateBaseKeyB64()) + "\n", + e += "-----END RSA PRIVATE KEY-----" + } + , + pn.prototype.getPublicKey = function() { + var e = "-----BEGIN PUBLIC KEY-----\n"; + return e += this.wordwrap(this.getPublicBaseKeyB64()) + "\n", + e += "-----END PUBLIC KEY-----" + } + , + pn.prototype.hasPublicKeyProperty = function(e) { + return e = e || {}, + e.hasOwnProperty("n") && e.hasOwnProperty("e") + } + , + pn.prototype.hasPrivateKeyProperty = function(e) { + return e = e || {}, + e.hasOwnProperty("n") && e.hasOwnProperty("e") && e.hasOwnProperty("d") && e.hasOwnProperty("p") && e.hasOwnProperty("q") && e.hasOwnProperty("dmp1") && e.hasOwnProperty("dmq1") && e.hasOwnProperty("coeff") + } + , + pn.prototype.parsePropertiesFrom = function(e) { + this.n = e.n, + this.e = e.e, + e.hasOwnProperty("d") && (this.d = e.d, + this.p = e.p, + this.q = e.q, + this.dmp1 = e.dmp1, + this.dmq1 = e.dmq1, + this.coeff = e.coeff) + } + ; + var Qn = function(e) { + pn.call(this), + e && ("string" == typeof e ? this.parseKey(e) : (this.hasPrivateKeyProperty(e) || this.hasPublicKeyProperty(e)) && this.parsePropertiesFrom(e)) + }; + Qn.prototype = new pn, + Qn.prototype.constructor = Qn; + var Jn = function(e) { + e = e || {}, + this.default_key_size = parseInt(e.default_key_size) || 1024, + this.default_public_exponent = e.default_public_exponent || "010001", + this.log = e.log || !1, + this.key = null + }; + Jn.prototype.setKey = function(e) { + this.log && this.key && console.warn("A key was already set, overriding existing."), + this.key = new Qn(e) + } + , + Jn.prototype.setPrivateKey = function(e) { + this.setKey(e) + } + , + Jn.prototype.setPublicKey = function(e) { + this.setKey(e) + } + , + Jn.prototype.decrypt = function(e) { + try { + return this.getKey().decrypt(Cn(e)) + } catch (t) { + return !1 + } + } + , + Jn.prototype.encrypt = function(e) { + try { + return En(this.getKey().encrypt(e)) + } catch (t) { + return !1 + } + } + , + Jn.prototype.getKey = function(e) { + if (!this.key) { + if (this.key = new Qn, + e && "[object Function]" === {}.toString.call(e)) + return void this.key.generateAsync(this.default_key_size, this.default_public_exponent, e); + this.key.generate(this.default_key_size, this.default_public_exponent) + } + return this.key + } + , + Jn.prototype.getPrivateKey = function() { + return this.getKey().getPrivateKey() + } + , + Jn.prototype.getPrivateKeyB64 = function() { + return this.getKey().getPrivateBaseKeyB64() + } + , + Jn.prototype.getPublicKey = function() { + return this.getKey().getPublicKey() + } + , + Jn.prototype.getPublicKeyB64 = function() { + return this.getKey().getPublicBaseKeyB64() + } + , + e.JSEncrypt = Jn + }(passport.lib.RSAExport), + passport.lib.RSA = passport.lib.RSAExport.JSEncrypt; + var passport = passport || window.passport || {}; + passport.err = passport.err || {}, + function(e) { + var t = null + , n = "" + , i = new RegExp("(^|&)lang=([^&]*)(&|$)","i") + , o = window.location.search.substr(1).match(i); + null != o && (n = unescape(o[2])), + t = "function" === (typeof e.getCurrent).toLowerCase() ? e.getCurrent() : { + errMsg: {}, + labelText: {} + }; + var s = { + "zh-CN": { + "-1": { + msg: '系统错误,请您稍后再试,
帮助中心', + field: "" + }, + 1: { + msg: "您输入的帐号格式不正确", + field: "userName" + }, + 2: { + msg: '用户名或密码有误,请重新输入或找回密码', + field: "userName" + }, + 3: { + msg: "验证码不存在或已过期,请重新输入", + field: "" + }, + 4: { + msg: "帐号或密码错误,请重新输入或者找回密码", + field: "password" + }, + 5: { + msg: "", + field: "" + }, + 6: { + msg: "您输入的验证码有误", + field: "verifyCode" + }, + 7: { + msg: "用户名或密码有误,请重新输入或找回密码", + field: "password" + }, + 16: { + msg: '您的帐号因安全问题已被限制登录,帮助中心', + field: "" + }, + 257: { + msg: "请输入验证码", + field: "verifyCode" + }, + 100027: { + msg: "百度正在进行系统升级,暂时不能提供服务,敬请谅解", + field: "" + }, + 120016: { + msg: "", + field: "" + }, + 18: { + msg: "", + field: "" + }, + 19: { + msg: "", + field: "" + }, + 20: { + msg: "", + field: "" + }, + 21: { + msg: "没有登录权限", + field: "" + }, + 22: { + msg: "", + field: "" + }, + 23: { + msg: "", + field: "" + }, + 24: { + msg: "百度正在进行系统升级,暂时不能提供服务,敬请谅解", + field: "" + }, + 400031: { + msg: "请在弹出的窗口操作,或重新登录", + field: "" + }, + 400032: { + msg: "", + field: "" + }, + 400034: { + msg: "", + field: "" + }, + 401007: { + msg: "您的手机号关联了其他帐号,请选择登录", + field: "" + }, + 120021: { + msg: "登录失败,请在弹出的窗口操作,或重新登录", + field: "" + }, + 500010: { + msg: "登录过于频繁,请24小时后再试", + field: "" + }, + 200010: { + msg: "验证码不存在或已过期", + field: "" + }, + 100005: { + msg: "系统错误,请您稍后再试", + field: "" + }, + 120019: { + msg: "请在弹出的窗口操作,或重新登录", + field: "userName" + }, + 110024: { + msg: "此帐号暂未激活,重发验证邮件", + field: "" + }, + 100023: { + msg: "系统升级中,为了您的帐号安全,您可以使用二维码登录或者更换其他浏览器继续登录", + field: "" + }, + 17: { + msg: '您的帐号已锁定,请解锁后登录', + field: "userName" + }, + 400401: { + msg: "", + field: "" + }, + 400037: { + msg: "", + field: "" + }, + 50023: { + msg: "1个手机号30日内最多换绑3个账号", + field: "" + }, + 50024: { + msg: "注册过于频繁,请稍候再试", + field: "" + }, + 50025: { + msg: "注册过于频繁,请稍候再试;也可以通过上行短信的方式进行注册", + field: "" + }, + 50028: { + msg: '帐号或密码多次输错,请3个小时之后再试或找回密码', + field: "" + }, + 50029: { + msg: '帐号或密码多次输错,请3个小时之后再试或找回密码', + field: "" + }, + 400714: { + msg: '系统检测你的帐号疑似被盗,存在安全风险请重置密码', + field: "" + }, + 50030: { + msg: "抱歉,该手机号的申请次数已达当日上限,请更换手机号", + field: "" + }, + 50031: { + msg: "抱歉,该手机号的申请次数已达当月上限,请更换手机号", + field: "" + }, + 50032: { + msg: "抱歉,该手机号的申请次数已达本季度上限,请更换手机号", + field: "" + }, + 50035: { + msg: "系统错误,请您稍后再试(50035)", + field: "" + }, + 400413: { + msg: "", + field: "" + }, + 400414: { + msg: "", + field: "" + }, + 400415: { + msg: "帐号存在风险,为了您的帐号安全,请到百度钱包/理财/地图任一APP登录并完成验证,谢谢", + field: "" + }, + 400500: { + msg: "您登录的帐号已注销,请登录其他帐号或重新注册", + field: "" + }, + 72200: { + msg: "您的帐号因冻结暂时无法登录,请前往冻结时的手机APP,在登录页点击遇到问题进行解冻", + field: "" + }, + 96001: { + msg: "您的帐号因违反百度用户协议被限制登录", + field: "" + }, + 100060: { + msg: "因系统升级暂不支持注册,预计6月7日恢复服务", + field: "" + }, + 400702: { + msg: "该帐号已关闭手机号登录,请使用帐号密码登录", + field: "" + }, + 400704: { + msg: "", + field: "" + }, + 400706: { + msg: "", + field: "" + }, + 50043: { + msg: "当前浏览器版本过低,请升级或更换浏览器后重试", + field: "" + }, + 923002: { + msg: "当前身份证无法识别", + field: "" + }, + 97101: { + msg: "系统繁忙,请稍候再试", + field: "" + }, + 400703: { + msg: "手机号已被运营商二次放号,请前往https://passport.baidu.com/v2/?reg注册新帐号", + field: "" + }, + 50045: { + msg: "您的手机因安全问题已被限制" + }, + 50046: { + msg: "您的ip因安全问题已被限制" + }, + 50044: { + msg: "您的网络环境存在安全风险,请切换网络重试" + }, + 50047: { + msg: "暂不支持海外及港澳台地区注册" + }, + 50048: { + msg: "您当前的操作存在安全风险,请稍后再试" + }, + 26: { + msg: "暂不支持海外及港澳台地区注册" + }, + 100073: { + msg: "网盘帐号系统正在升级,现暂停新帐号注册,将于2月28日恢复开放,对此给您带来不便深表歉意!" + }, + 400012: { + msg: '您的帐号因违反百度用户协议被限制登录 去申诉' + }, + 400044: { + msg: '您的帐号因违反百度用户协议被限制登录 去申诉' + } + }, + zh_HK: { + "-1": { + msg: '系統錯誤,請您稍後再試,幫助中心', + field: "" + }, + 1: { + msg: "您輸入的帳號格式不正確", + field: "userName" + }, + 2: { + msg: '用戶名或密碼有誤,請重新輸入或找回密碼', + field: "userName" + }, + 3: { + msg: "驗證碼不存在或已過期,請重新輸入", + field: "" + }, + 4: { + msg: "帳號或密碼錯誤,請重新輸入或者找回密碼", + field: "password" + }, + 5: { + msg: "", + field: "" + }, + 6: { + msg: "您輸入的驗證碼有誤", + field: "verifyCode" + }, + 7: { + msg: "用戶名或密碼有誤,請重新輸入或找回密碼", + field: "password" + }, + 16: { + msg: '您的帳號因安全問題已被限制登錄,幫助中心', + field: "" + }, + 257: { + msg: "請輸入驗證碼", + field: "verifyCode" + }, + 100027: { + msg: "百度正在進行系統升級,暫時不能提供服務,敬請諒解", + field: "" + }, + 120016: { + msg: "", + field: "" + }, + 18: { + msg: "", + field: "" + }, + 19: { + msg: "", + field: "" + }, + 20: { + msg: "", + field: "" + }, + 21: { + msg: "沒有登錄權限", + field: "" + }, + 22: { + msg: "", + field: "" + }, + 23: { + msg: "", + field: "" + }, + 24: { + msg: "百度正在進行系統升級,暫時不能提供服務,敬請諒解", + field: "" + }, + 400031: { + msg: "請在彈出的窗口操作,或重新登錄", + field: "" + }, + 400032: { + msg: "", + field: "" + }, + 400034: { + msg: "", + field: "" + }, + 401007: { + msg: "您的手機號關聯了其他帳號,請選擇登錄", + field: "" + }, + 120021: { + msg: "登錄失敗,請在彈出的窗口操作,或重新登錄", + field: "" + }, + 500010: { + msg: "登錄過於頻繁,請24小時後再試", + field: "" + }, + 200010: { + msg: "驗證碼不存在或已過期", + field: "" + }, + 100005: { + msg: "系統錯誤,請您稍後再試", + field: "" + }, + 120019: { + msg: "請在彈出的窗口操作,或重新登錄", + field: "userName" + }, + 110024: { + msg: "此帳號暫未激活,重發驗證郵件", + field: "" + }, + 100023: { + msg: "系統升級中,為了您的帳號安全,您可以使用二維碼登錄或者更換其他瀏覽器繼續登錄", + field: "" + }, + 17: { + msg: '您的帳號已鎖定,請解鎖後登錄', + field: "userName" + }, + 400401: { + msg: "", + field: "" + }, + 400037: { + msg: "", + field: "" + }, + 50023: { + msg: "1個手機號30日內最多換綁3個賬號", + field: "" + }, + 50024: { + msg: "註冊過於頻繁,請稍候再試", + field: "" + }, + 50025: { + msg: "註冊過於頻繁,請稍候再試;也可以通過上行短信的方式進行註冊", + field: "" + }, + 50028: { + msg: '帳號或密碼多次輸錯,請3個小時之後再試或找回密碼', + field: "" + }, + 50029: { + msg: '帳號或密碼多次輸錯,請3個小時之後再試或找回密碼', + field: "" + }, + 400714: { + msg: '系統檢測你的帳號疑似被盜,存在安全風險請重置密碼', + field: "" + }, + 50030: { + msg: "抱歉,該手機號的申請次數已達當日上限,請更換手機號", + field: "" + }, + 50031: { + msg: "抱歉,該手機號的申請次數已達當月上限,請更換手機號", + field: "" + }, + 50032: { + msg: "抱歉,該手機號的申請次數已達本季度上限,請更換手機號", + field: "" + }, + 50035: { + msg: "系統錯誤,請您稍後再試(50035)", + field: "" + }, + 400413: { + msg: "", + field: "" + }, + 400414: { + msg: "", + field: "" + }, + 400415: { + msg: "帳號存在風險,為了您的帳號安全,請到百度錢包/理財/地圖任一APP登錄並完成驗證,謝謝", + field: "" + }, + 400500: { + msg: "您登錄的帳號已註銷,請登錄其他帳號或重新註冊", + field: "" + }, + 72200: { + msg: "您的帳號因凍結暫時無法登錄,請前往凍結時的手機APP,在登錄頁點擊遇到問題進行解凍", + field: "" + }, + 96001: { + msg: "您的帳號因違反百度用戶協議被限制登錄", + field: "" + }, + 100060: { + msg: "因系統升級暫不支持註冊,預計6月7日恢復服務", + field: "" + }, + 400702: { + msg: "該帳號已關閉手機號登錄,請使用帳號密碼登錄", + field: "" + }, + 400704: { + msg: "", + field: "" + }, + 400706: { + msg: "", + field: "" + }, + 50043: { + msg: "當前瀏覽器版本過低,請升級或更換瀏覽器後重試", + field: "" + }, + 923002: { + msg: "當前身份證無法識別", + field: "" + }, + 97101: { + msg: "系統繁忙,請稍候再試", + field: "" + }, + 400703: { + msg: "手機號已被運營商二次放號,請前往https://passport.baidu.com/v2/?reg註冊新帳號", + field: "" + }, + 50045: { + msg: "您的手機因安全問題已被限制" + }, + 50046: { + msg: "您的ip因安全問題已被限制" + }, + 50044: { + msg: "您的網絡環境存在安全風險,請切換網絡重試" + }, + 50047: { + msg: "暫不支持海外及港澳臺地區註冊" + }, + 50048: { + msg: "您當前的操作存在安全風險,請稍後再試" + }, + 26: { + msg: "暫不支持海外及港澳臺地區註冊" + }, + 100073: { + msg: "網盤帳號系統正在升級,現暫停新帳號註冊,將於2月28日恢復開放,對此給您帶來不便深表歉意!" + }, + 400012: { + msg: '您的帳號因違反百度用戶協議被限制登錄 去申訴' + }, + 400044: { + msg: '您的帳號因違反百度用戶協議被限制登錄 去申訴' + } + } + } + , a = { + "zh-CN": { + 500002: { + msg: "您输入的验证码有误", + field: "verifyCode" + }, + 500018: { + msg: "验证码已失效,请重试", + field: "verifyCode" + } + }, + zh_HK: { + 500002: { + msg: "您輸入的驗證碼有誤", + field: "verifyCode" + }, + 500018: { + msg: "驗證碼已失效,請重試", + field: "verifyCode" + } + } + } + , r = { + "zh-CN": { + agree: "阅读并接受", + baiduUserProtocal: "百度用户协议", + baiduUserPersonal: "隐私政策", + baiduUsePassport: "百度帐号使用说明", + verifyCode: "验证码", + verifyCodeStaErr: "您输入的验证码有误", + verifyCodeLenErr: "您输入的验证码有误", + unReceiveSmsCode: "收不到短信验证码?", + captcha: "验证码", + captchaAlt: "验证码图片", + captchaChange: "换一张", + memberPassLabel: "下次自动登录", + login: "登录", + fgtPwd: "忘记密码?", + feedback: "帮助中心", + register: "立即注册", + phoneNum: "手机号", + account: "邮箱", + userName: "手机号/用户名/邮箱", + password: "密码", + passwordResetWarnNo: '用户名或密码有误,请重新输入或找回密码', + passwordResetSms: '短信登录,或者', + passwordResetWarn: '用户名或密码有误,请重新输入或找回密码', + passwordResetIn: "个月以内", + passwordResetOut: "个月以前", + unameMailLengthError: "邮箱过长,请重新输入", + unameInputError: "邮箱格式错误,若未绑定邮箱,请使用用户名登录", + smsPhone: "手机号", + smsPhoneMsg: "请输入手机号", + smsVerifyPlaceholder: "验证码", + smsVerifyCode: "验证码", + toSmsBtn: "短信快捷登录", + logining: "登录中...", + loginsuccess: "登录成功", + submitTimeup: "登录超时,请稍后再试", + backToLogin: "用户名密码登录", + footerBackToLogin: "用户名登录", + qrcodeTitle: "请使用", + qrcodeHref: '百度App', + qrcodeText: "扫码登录", + qrcodeMsg: "百度技术加密,保障您的隐私安全", + qrcodeListaq: "安全", + qrcodeListgx: "高效", + qrcodeListbj: "便捷", + appName: "百度App", + appHref: "http://xbox.m.baidu.com/mo/", + sysError: "系统错误,休息一会儿,请稍后再试", + sysUpdate: "服务正在升级中,请您稍后再试", + cookieDisable: "开启Cookie之后才能登录,如何开启?", + captchaErr: "动态密码错误", + confirmVerCodeEmpty: "验证码为空", + foreignToLogin: "帐号密码登录", + foreignMobileError: "手机号码格式不正确", + foreignMobileMsg: "请选择您的国家地区", + foreignMobileLink: "海外手机号", + phoenixBtn: "第三方登录", + qrcodeBtn: "扫码登录", + QrcodeSuccessTip: "扫描成功", + QrcodeSuccessMsg: "请在手机端确认登录", + QrcodeErrorTip: "网络连接失败", + QrcodeErrorMsg: "请稍候再试", + QrcodeRefreshTip: "二维码已失效", + QrcodeRefreshBtn: "点击刷新", + QrcodeLoadTip: "二维码加载失败", + nopassLead: '该帐号尚未设置密码,请先设置密码后在登录', + resend: "重新发送", + userNameLogin: "用户名登录", + emailLogin: "邮箱登录", + forgetEmail: "忘记邮箱?使用", + fillPhonePls: "请填写手机号", + userNameTitle: "用户名", + smsLogin: "短信登录", + fillVerifyCodePls: "请填写验证码", + forgetUserName: "忘记用户名?使用", + verifyEqualLogin: "验证即登录,未注册将自动创建百度帐号", + cantReceiveSms: "收不到验证码", + checkIfBlocked: "1.请检查短信是否被安全软件拦截", + overTimeArrive: "2.运营商网络原因,短信可能延迟到达", + reguest: "建议您", + switchLoginMethod: "切换登录方式", + usePhoneSendSms: "使用该手机号,编辑短信", + shouldLogSuccess: "即可登录成功", + introductSms: "(短信费用请参考运营商资费标准)", + rule1: "建议使用当前手机号,编辑短信 8-14 位字符(支持数字/字母/符号),", + rule2: "作为登录密码,发送至1069 0691 036590,即可注册成功", + mainland: "大陆地区" + }, + zh_HK: { + agree: "閱讀並接受", + baiduUserProtocal: "百度用戶協議", + baiduUserPersonal: "隱私政策", + baiduUsePassport: "百度帳號使用說明", + verifyCode: "驗證碼", + verifyCodeStaErr: "您輸入的驗證碼有誤", + verifyCodeLenErr: "您輸入的驗證碼有誤", + unReceiveSmsCode: "收不到短信驗證碼?", + captcha: "驗證碼", + captchaAlt: "驗證碼圖片", + captchaChange: "換一張", + memberPassLabel: "下次自動登錄", + login: "登錄", + fgtPwd: "忘記密碼?", + feedback: "幫助中心", + register: "立即註冊", + phoneNum: "手機號", + account: "郵箱", + userName: "手機/郵箱/用戶名", + password: "密碼", + passwordResetWarnNo: '用戶名或密碼有誤,請重新輸入或找回密碼', + passwordResetSms: '短信登錄,或者', + passwordResetWarn: '用戶名或密碼有誤,請重新輸入或找回密碼', + passwordResetIn: "個月以內", + passwordResetOut: "個月以前", + unameMailLengthError: "郵箱過長,請重新輸入", + unameInputError: "郵箱格式錯誤,若未綁定郵箱,請使用用戶名登錄", + smsPhone: "手機號", + smsPhoneMsg: "請輸入手機號", + smsVerifyPlaceholder: "驗證碼", + smsVerifyCode: "驗證碼", + toSmsBtn: "短信快捷登錄", + logining: "登錄中...", + loginsuccess: "登錄成功", + submitTimeup: "登錄超時,請稍後再試", + backToLogin: "用戶名密碼登錄", + footerBackToLogin: "用戶名登錄", + qrcodeTitle: "請使用", + qrcodeHref: '百度App', + qrcodeText: "掃碼登錄", + qrcodeMsg: "百度技術加密,保障您的隱私安全", + qrcodeListaq: "安全", + qrcodeListgx: "高效", + qrcodeListbj: "便捷", + appName: "百度App", + appHref: "http://xbox.m.baidu.com/mo/", + sysError: "系統錯誤,休息一會兒,請稍後再試", + sysUpdate: "服務正在升級中,請您稍後再試", + cookieDisable: "開啟Cookie之後才能登錄,如何開啟?", + captchaErr: "動態密碼錯誤", + confirmVerCodeEmpty: "驗證碼為空", + foreignToLogin: "帳號密碼登錄", + foreignMobileError: "手機號碼格式不正確", + foreignMobileMsg: "請選擇您的國家地區", + foreignMobileLink: "海外手機號", + phoenixBtn: "第三方登錄", + qrcodeBtn: "掃碼登錄", + QrcodeSuccessTip: "掃描成功", + QrcodeSuccessMsg: "請在手機端確認登錄", + QrcodeErrorTip: "網絡連接失敗", + QrcodeErrorMsg: "請稍候再試", + QrcodeRefreshTip: "二維碼已失效", + QrcodeRefreshBtn: "點擊刷新", + QrcodeLoadTip: "二維碼加載失敗", + nopassLead: '該帳號尚未設置密碼,請先設置密碼後在登錄', + resend: "重新發送", + userNameLogin: "用戶名登錄", + emailLogin: "郵箱登錄", + forgetEmail: "忘記郵箱?使用", + fillPhonePls: "請填寫手機號", + userNameTitle: "用戶名", + smsLogin: "短信登錄", + fillVerifyCodePls: "請填寫驗證碼", + forgetUserName: "忘記用戶名?使用", + verifyEqualLogin: "驗證即登錄,未註冊將自動創建百度帳號", + cantReceiveSms: "收不到驗證碼", + checkIfBlocked: "1.請檢查短信是否被安全軟件攔截", + overTimeArrive: "2.運營商網絡原因,短信可能延遲到達", + reguest: "建議您", + switchLoginMethod: "切換登錄方式", + usePhoneSendSms: "使用該手機號,編輯短信", + shouldLogSuccess: "即可登錄成功", + introductSms: "(短信費用請參考運營商資費標準)", + rule1: "建議使用當前手機號,編輯短信 8-14 位字符(支持數字/字母/符號),", + rule2: "作為登錄密碼,發送至1069 0691 036590,即可註冊成功", + mainland: "大陸地區" + } + } + , c = { + "zh-CN": { + bindAction16: "您的帐号存在安全风险,我们已经为您采取保护策略,建议您先绑定手机。", + bindAction32: "快来绑定密保工具吧,提升帐号安全性的同时可以快速找回密码。", + bindAction34: "请绑定您的手机号码作为您的密保手机,提升帐号安全性的同时还可以快速找回密码。", + bindAction: "请绑定一个您的常用邮箱作为您的密保邮箱,提升帐号安全性的同时还可以快速找回密码。", + getWarnHtml: "系统检测到您的帐号疑似被盗,存在安全风险。请尽快修改密码。" + }, + zh_HK: { + 500002: { + msg: "您輸入的驗證碼有誤", + field: "verifyCode" + }, + 500018: { + msg: "驗證碼已失效,請重試", + field: "verifyCode" + } + } + } + , l = { + "zh-CN": { + agree: "阅读并同意", + user: "《百度用户协议》", + personal: "《隐私政策》", + passUse: "《百度帐号使用说明》" + }, + zh_HK: { + agree: "閱讀並同意", + user: "《百度用戶協議》", + personal: "《隱私政策》", + passUse: "《百度帳號使用說明》" + } + }; + e.getCurrent = function(e) { + var i = "zh_HK" === n ? "zh_HK" : "zh-CN" + , o = e ? e : i; + return t.errMsg.login = s[o], + t.errMsg.checkVerifycode = a[o], + t.labelText.login = r[o], + t.agreements = l[o], + t.hooksText = c[o], + t + } + }(passport.err); + var passport = passport || window.passport || {}; + passport.data = passport.data || {}, + function(e) { + function t(e) { + this._requests = [], + this._value = null, + this._exception = null, + this._isComplete = !1; + var t = this; + e(function(e) { + t._fulfillPromise(e) + }, function(e) { + t._breakPromise(e) + }) + } + function n(e, t, n) { + return t ? n ? function(n) { + return n = n || {}, + l.submit(d + t, i(n, e, g[e], m[e], !0), { + charset: "utf-8", + processData: function(t) { + if (t) + for (var n in t) + if (t.hasOwnProperty(n)) { + var i = t[n]; + i && (t[n] = decodeURIComponent(i)) + } + return o(e, t) + } + }) + } + : function(n) { + return l.jsonp(d + t, i(n, e, g[e], m[e], !1), { + charset: "utf-8", + processData: function(t) { + return o(e, t) + } + }) + } + : r + } + function i(e, t, n, i, o) { + var s = o ? { + staticpage: _.staticPage, + charset: _.charset || document.characterSet || document.charset || "" + } : {} + , a = f[t]; + if (a) + for (var r in a) { + if (a.hasOwnProperty(r)) { + var l = a[r]; + s[r] = "function" == typeof l ? l(e) : l + } + "verifypass" == r && (s[r] = decodeURIComponent(s[r])) + } + if (s.token = _.token || "", + s.tpl = _.product || "", + s.subpro = _.subpro || "", + s.apiver = "v3", + s.tt = (new Date).getTime(), + e) { + n = n || {}, + i = i || {}; + for (var r in e) + if (e.hasOwnProperty(r)) { + var d = i[r] + , u = d ? d(e[r], e) : e[r]; + "string" == typeof u && (o && (u = decodeURIComponent(u)), + h[r] || (u = c.trim(u))), + s[n[r] || r.toLowerCase()] = u + } + } + return s + } + function o(t, n) { + if (e && e.traceID && e.traceID.getTraceID && e.traceID.getTraceID(n), + n) { + var i = v[t]; + i && i(n); + var o = n.errInfo + , a = n + , r = a; + return o ? a.errInfo = s(t, o, a) : (o = { + no: n.err_no, + msg: n.err_msg || "" + }, + delete a.err_no, + delete a.err_msg, + r = { + data: a, + errInfo: s(t, o, a) + }), + r + } + return n + } + function s(e, t) { + var n = y[b[e] || e]; + if (n && t && 0 != t.no) { + var i = n[t.no] || n[-1]; + if (i) { + var o = i.msg; + t.msg = o, + t.field = i.field + } + } + return t + } + function a(t) { + if (e && e.traceID && e.traceID.getTraceID && e.traceID.getTraceID(t), + t) { + var n = t.errInfo + , i = t; + if (!n) + for (var o in t) + if (t.hasOwnProperty(o)) { + var s = t[o]; + s && (t[o] = decodeURIComponent(s)) + } + n || (n = { + no: t.err_no, + msg: t.err_msg || "" + }, + delete i.err_no, + delete i.err_msg, + t = { + data: i, + errInfo: n + }) + } + return t + } + var r = function() {}; + t.prototype = { + get_isComplete: function() { + return this._isComplete + }, + get_value: function() { + if (!this._isComplete) + return void 0; + if (this._exception) + throw this._exception; + return this._value + }, + call: function(e) { + for (var t = [], n = 0, i = arguments.length - 1; i > n; n++) + t[n] = arguments[n + 1]; + return this.when(function(n) { + return n[e].apply(n, t) + }) + }, + getValue: function(e) { + return this.when(function(t) { + return t[e] + }) + }, + setValue: function(e, t) { + this.whenOnly(function(n) { + n[e] = t + }) + }, + when: function(e, n, i) { + return t.when(this, e, n, i) + }, + whenOnly: function(e, n, i) { + t.whenOnly(this, e, n, i) + }, + success: function(e, t) { + return this.when(e, r, t) + }, + fail: function(e, t) { + return this.when(r, e, t) + }, + _enqueueOne: function(e) { + this._isComplete ? this._notify(e) : this._requests.push(e) + }, + _notify: function(e) { + this._exception ? e.breakPromise && e.breakPromise(this._exception) : e.fulfillPromise && e.fulfillPromise(this._value) + }, + _notifyAll: function() { + for (var e = 0, t = this._requests.length; t > e; e++) + this._notify(this._requests[e]) + }, + _fulfillPromise: function(e) { + this._value = e, + this._exception = null, + this._isComplete = !0, + this._notifyAll() + }, + _breakPromise: function(e) { + this._value = null, + this._exception = e || new Error("An error occured"), + this._isComplete = !0, + this._notifyAll() + } + }, + t.when = function(e, n, i, o) { + return new t(function(s, a) { + t.make(e)._enqueueOne({ + fulfillPromise: function(e) { + s(n ? n.call(o, e) : e) + }, + breakPromise: function(e) { + if (i) + try { + s(i.call(o, e)) + } catch (t) { + a(t) + } + else + a(e) + } + }) + } + ) + } + , + t.whenOnly = function(e, n, i, o) { + t.make(e)._enqueueOne({ + fulfillPromise: function(e) { + n && n.call(o, e) + }, + breakPromise: function(e) { + i && i.call(o, e) + } + }) + } + , + t.make = function(e) { + return e instanceof t ? e : t.immediate(e) + } + , + t.immediate = function(e) { + return new t(function(t) { + t(e) + } + ) + } + ; + var c = {}; + !function(e) { + var t = new RegExp("(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)","g"); + e.trim = function(e) { + return String(e).replace(t, "") + } + , + e.getUniqueId = function(e) { + return e + Math.floor(2147483648 * Math.random()).toString(36) + } + , + e.g = function(e) { + return e ? "string" == typeof e || e instanceof String ? document.getElementById(e) : !e.nodeName || 1 != e.nodeType && 9 != e.nodeType ? null : e : null + } + , + e.getParent = function(t) { + return t = e.g(t), + t.parentElement || t.parentNode || null + } + , + e.encodeHTML = function(e) { + return String(e).replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'") + } + , + e.array = e.array || {}, + e.array.indexOf = function(e, t, n) { + var i = e.length; + for (n = 0 | n, + 0 > n && (n = Math.max(0, i + n)); i > n; n++) + if (n in e && e[n] === t) + return n; + return -1 + } + , + e.browser = e.browser || {}, + e.browser.opera = /opera(\/| )(\d+(\.\d+)?)(.+?(version\/(\d+(\.\d+)?)))?/i.test(navigator.userAgent) ? +(RegExp.$6 || RegExp.$2) : void 0, + e.insertHTML = function(t, n, i) { + t = e.g(t); + var o, s; + return t.insertAdjacentHTML && !e.browser.opera ? t.insertAdjacentHTML(n, i) : (o = t.ownerDocument.createRange(), + n = n.toUpperCase(), + "AFTERBEGIN" == n || "BEFOREEND" == n ? (o.selectNodeContents(t), + o.collapse("AFTERBEGIN" == n)) : (s = "BEFOREBEGIN" == n, + o[s ? "setStartBefore" : "setEndAfter"](t), + o.collapse(s)), + o.insertNode(o.createContextualFragment(i))), + t + } + }(c), + e.base = c; + var l = {}; + !function(n) { + var i = "__bdpp_pstc__" + (new Date).getTime() + , o = i + "_form" + , s = i + "_ifr" + , a = function(e) { + if ("object" == typeof e) { + var t = []; + for (var n in e) { + var i = e[n]; + if (void 0 !== i && null !== i) { + t.length && t.push("&"); + var o = encodeURIComponent("boolean" == typeof i ? i ? "1" : "0" : i.toString()); + t.push(encodeURIComponent(n), "=", o) + } + } + return t.join("") + } + return "string" == typeof e ? e : null + } + , r = function(e, t) { + if (t = a(t), + "string" == typeof t) { + var n = /\?/g.test(e); + e += (n ? "&" : "?") + a(t) + } + return e + } + , l = function(e, t, n) { + e.setAttribute("type", "text/javascript"), + n && e.setAttribute("charset", n), + e.setAttribute("src", t), + document.getElementsByTagName("head")[0].appendChild(e) + } + , d = function(e) { + if (e.clearAttributes) + e.clearAttributes(); + else + for (var t in e) + e.hasOwnProperty(t) && delete e[t]; + e && e.parentNode && e.parentNode.removeChild(e), + e = null + } + , u = function(e, t, n) { + function i(e) { + return function() { + try { + e ? u.onfailure && u.onfailure() : (t.apply(window, arguments), + clearTimeout(s)), + window[o] = null, + delete window[o] + } catch (n) {} finally { + d(a) + } + } + } + var o, s, a = document.createElement("SCRIPT"), r = "bd__cbs__", u = n || {}, p = u.charset, g = u.queryField || "callback", m = u.timeOut || 0, f = new RegExp("(\\?|&)" + g + "=([^&]*)"); + o = c.getUniqueId(r), + window[o] = i(0), + m && (s = setTimeout(i(1), m)), + e = e.replace(f, "$1" + g + "=" + o), + e.search(f) < 0 && (e += (e.indexOf("?") < 0 ? "?" : "&") + g + "=" + o), + l(a, e, p) + } + , p = function(e, t) { + var n = []; + n.push("
"); + var i = {}; + for (var a in t) + if (t.hasOwnProperty(a)) { + var r = t[a]; + if (void 0 !== r && null !== r) { + var l = "boolean" == typeof r ? r ? "1" : "0" : r; + i[a] = l + } + } + try { + var d = "OOOO00" + , u = "OOO00O" + , p = "OOO000" + , g = "OOO0OO" + , m = "O0OOO0" + , f = { + OOOOO0: d, + O00000: u, + O0O00O: p, + O000OO: g, + O0O000: m + } + , h = (new Date).getTime() / 1e3 + , v = parseInt(h / 86400, 10) % 5 + , b = []; + if (Object.keys) + b = Object.keys(f); + else { + b = []; + for (var y in f) + b.push(y) + } + var _ = f[b[v]] || ""; + window.moonshadV3 && window.moonshadV3[_] && i && (i = baidu.extend(i, window.moonshadV3[_](i))) + } catch (w) { + console.log(w) + } + for (var a in i) + i.hasOwnProperty(a) && n.push(""); + return n.push("
"), + n.join("") + } + , g = function(e, t, n, a) { + function r(e) { + return function() { + try { + e ? a.onfailure && a.onfailure() : (n.apply(window, arguments), + d && clearTimeout(d)), + window[u] = null, + delete window[u] + } catch (t) {} + } + } + a = a || {}; + var l = a.timeOut || 0 + , d = !1 + , u = c.getUniqueId("bd__pcbs__"); + t[a.queryField || "callback"] = "parent." + u; + var g = p(e, t); + if (c.g(o)) + c.getParent(o).innerHTML = g; + else { + var m = []; + m.push(""), + c.insertHTML(document.body, "beforeEnd", m.join("")) + } + window[u] = r(), + l && (d = setTimeout(r(1), l)), + c.g(o).submit() + }; + n.jsonp = function(n, i, o) { + o = o || {}, + e && e.traceID && e.traceID.createTraceID && (i.traceid = e.traceID.createTraceID()); + var s = {}; + for (var a in i) { + var c = i[a]; + void 0 !== c && null !== c && (s[a] = c) + } + try { + var l = "OOOO00" + , d = "OOO00O" + , p = "OOO000" + , g = "OOO0OO" + , m = "O0OOO0" + , f = { + OOOOO0: l, + O00000: d, + O0O00O: p, + O000OO: g, + O0O000: m + } + , h = (new Date).getTime() / 1e3 + , v = parseInt(h / 86400, 10) % 5 + , b = []; + if (Object && Object.keys) + b = Object.keys(f); + else { + b = []; + for (var y in f) + b.push(y) + } + var _ = f[b[v]] || ""; + window.moonshadV3 && window.moonshadV3[_] && i && (i = baidu.extend(i, window.moonshadV3[_](s, baidu))) + } catch (w) { + console.log(w) + } + return new t(function(e, t) { + n = r(n, i), + u(n, function(t) { + o.processData && (t = o.processData(t)), + e && e(t) + }, { + charset: o.charset, + queryField: o.queryField, + timeOut: o.timeOut, + onfailure: function() { + t && t() + } + }) + } + ) + } + , + n.submit = function(n, i, o) { + return e && e.traceID && e.traceID.createTraceID && (i.traceid = e.traceID.createTraceID()), + n && i ? new t(function(e) { + g(n, i, function(t) { + o.processData && (t = o.processData(t)), + e && e(t) + }, o) + } + ) : void 0 + } + ; + var m = []; + n.load = function(e) { + return new t(function(t) { + var n = m.push(new Image) - 1 + , i = !1 + , o = setTimeout(function() { + i = !0, + t && t() + }, 1e3); + m[n].onload = function() { + clearTimeout(o), + i || t && t(), + i = !0, + m[n] = m[n].onload = null + } + , + m[n].src = e + } + ) + } + }(l); + var d = "https://passport.baidu.com" + , u = { + getApiInfo: "/v2/api/?getapi", + getLoginHistory: "/v2/api/?loginhistory", + loginCheck: "/v2/api/?logincheck", + getVerifyCodeStr: "/v2/?reggetcodestr", + getRegSmsVerifyCodeStr: "/v2/?regsmscodestr", + checkUserName: "/v2/?regnamesugg", + checkPassword: "/v2/?regpwdcheck", + checkMail: "/v2/?regmailcheck", + isUserNoName: "/v2/api/?ucenteradduname", + checkPhone: "/v2/?regphonecheck", + getphonestatus: "/v2/?getphonestatus", + sendPhoneCode: "/v2/?regphonesend", + multiBind: "/v2/?multiaccountassociate", + multiUnbind: "/v2/?multiaccountdisassociate", + multiCheckUserName: "/v2/?multiaccountusername", + multiGetaccounts: "/v2/?multiaccountget", + multiSwitchuser: "/v2/?loginswitch", + checkVerifycode: "/v2/?checkvcode", + getRsaKey: "/v2/getpublickey", + authwidGetverify: "/v2/sapi/authwidgetverify", + checkIDcard: "/v3/finance/main/idnumcert", + checkIDcardSecondStep: "/v3/finance/main/upcert", + checkIDcardAllStep: "/v3/finance/main/idnumcert", + checkIDcardState: "/v3/finance/main/checkupcert" + } + , p = { + login: "/v2/api/?login", + reg: "/v2/api/?reg", + fillUserName: "/v2/api/?ucenteradduname", + regPhone: "/v2/api/?regphone", + checkIDcard: "/v3/finance/main/idnumcert", + checkIDcardSecondStep: "/v3/finance/main/upcert", + checkIDcardAllStep: "/v3/finance/main/idnumcert", + getAccessToken: "/v3/login/api/getoauthtoken" + } + , g = { + getApiInfo: { + apiType: "class" + }, + login: { + memberPass: "mem_pass", + safeFlag: "safeflg", + isPhone: "isPhone", + timeSpan: "ppui_logintime", + logLoginType: "logLoginType" + }, + fillUserName: { + selectedSuggestName: "pass_fillinusername_suggestuserradio", + timeSpan: "ppui_fillusernametime" + }, + reg: { + password: "loginpass", + timeSpan: "ppui_regtime", + suggestIndex: "suggestIndex", + suggestType: "suggestType", + selectedSuggestName: "pass_reg_suggestuserradio_0", + logRegType: "logRegType" + }, + regPhone: { + password: "loginpass", + timeSpan: "ppui_regtime", + suggestIndex: "suggestIndex", + suggestType: "suggestType", + selectedSuggestName: "pass_reg_suggestuserradio_0", + logRegType: "logRegType" + } + } + , m = { + loginCheck: { + isPhone: function(e) { + return e ? "true" : "false" + } + }, + login: { + memberPass: function(e) { + return e ? "on" : "" + } + } + } + , f = { + checkPassword: { + fromreg: 1 + }, + reg: { + registerType: 1, + verifypass: function(e) { + return e.password + } + } + } + , h = { + password: !0 + } + , v = { + login: function() {} + } + , b = { + checkUserName: "reg", + checkMail: "reg", + checkPhone: "regPhone", + sendPhoneCode: "regPhone", + multiCheckUserName: "multiBind", + multiSwitchuser: "changeUser", + checkVerifycode: "checkVerifycode" + } + , y = passport.err.getCurrent().errMsg || passport.err.getCurrent() + , _ = {}; + e.setContext = function(e) { + _.product = e.product || _.product, + _.charset = e.charset || _.charset, + _.staticPage = e.staticPage || _.staticPage, + _.token = e.token || _.token, + _.subpro = e.subpro || _.subpro + } + , + e.traceID = { + headID: e.traceID && e.traceID.headID || "", + flowID: e.traceID && e.traceID.flowID || "", + cases: e.traceID && e.traceID.cases || "", + initTraceID: function(e) { + var t = this; + e && e.length > 0 ? (t.headID = e.slice(0, 6), + t.flowID = e.slice(6, 8)) : t.destory() + }, + createTraceID: function() { + var e = this; + return e.headID + e.flowID + e.cases + }, + startFlow: function(e) { + var t = this + , n = t.getFlowID(e); + 0 === t.flowID.length || t.flowID === n ? (t.createHeadID(), + t.flowID = n) : t.finishFlow(n) + }, + finishFlow: function() { + var e = this; + e.destory() + }, + getRandom: function() { + return parseInt(90 * Math.random() + 10, 10) + }, + createHeadID: function() { + var e = this + , t = (new Date).getTime() + e.getRandom().toString() + , n = Number(t).toString(16) + , i = n.length + , o = n.slice(i - 6, i).toUpperCase(); + e.headID = o + }, + getTraceID: function(e) { + var t = this + , n = e && e.traceid || ""; + t.initTraceID(n) + }, + getFlowID: function(e) { + var t = { + login: "01", + reg: "02" + }; + return t[e] + }, + setData: function(e) { + var t = this; + return e.data ? e.data.traceid = t.createTraceID() : e.url = e.url + (e.url.indexOf("?") > -1 ? "&" : "?") + "traceid=" + t.createTraceID(), + e + }, + destory: function() { + var e = this; + e.headID = "", + e.flowID = "" + } + }; + for (var w in u) + u.hasOwnProperty(w) && (e[w] = n(w, u[w])); + for (var w in p) + p.hasOwnProperty(w) && (e[w] = n(w, p[w], !0)); + e.jsonp = function(e, t) { + return 0 != e.indexOf("http") && (e = d + e), + t = t || {}, + t.flag_code && 1 == t.flag_code || (t.apiver = "v3"), + t.tt = (new Date).getTime(), + l.jsonp(e, t, { + charset: "utf-8", + processData: function(e) { + return a(e) + } + }) + } + , + e.post = function(e, t) { + return t = t || {}, + "wap" !== t.apitype && (e = d + e), + t.staticpage = t.staticpage || _.staticPage, + t.charset = t.charset || _.charset || document.characterSet || document.charset || "", + t.token = t.token || _.token, + t.tpl = t.tpl || _.product, + l.submit(e, t, { + charset: "utf-8", + processData: function(e) { + return a(e) + } + }) + } + , + e.request = l + }(passport.data); + var passport = passport || window.passport || {}; + passport.analysis = passport.analysis || {}, + function(e) { + var t = function(e, t) { + var n = e.config.diaPassLogin ? "dialogLogin" : "basicLogin" + , i = e.config.loginMerge ? 1 : 0 + , o = e.config.product || "isnull" + , s = window.location ? window.location.protocol.toLowerCase() : document.location.protocol.toLowerCase() + , a = "" + , r = "&tt=" + (new Date).getTime() + , c = e.guideRandom ? e.guideRandom : ""; + for (var l in t) + a = a + "&" + l + "=" + t[l]; + if ("http:" == s) + var d = "http://nsclick.baidu.com/v.gif?pid=111&url=&logintype=" + n + "&gid=" + c + "&merge=" + i + "&tpl=" + o + a + r; + else if ("https:" == s) + var d = "https://passport.baidu.com/img/v.gif?logintype=" + n + "&gid=" + c + "&merge=" + i + "&tpl=" + o + a + r; + if (d) { + var u = new Image; + u.onload = u.onerror = function() { + u.onload = u.onerror = null, + u = null + } + , + u.src = d + } + }; + e.login = { + render: function(e) { + t(e, { + type: "firstrender", + loginurl: encodeURIComponent(document.location.href) + }), + baidu(e.getPhoenixElement("pass_phoenix_list_login")).on("click", function(n) { + var i, o = baidu(n.target); + if (o && o.attr("title")) { + switch (o.attr("title")) { + case "普通登录": + i = "normal"; + break; + case "二维码登录": + i = "qrcode"; + break; + case "短信登录": + i = "sms"; + break; + case "QQ帐号": + i = "qq"; + break; + case "新浪微博": + i = "weibo"; + break; + case "人人网": + i = "renren"; + break; + case "腾讯微博": + i = "tqq"; + break; + case "飞信": + i = "fetion"; + break; + case "微信": + i = "weixin"; + break; + case "天翼": + i = "tianyi" + } + t(e, { + phoenix: i + }) + } + }); + var n = (e.getElement(), + e.getElement("form")); + baidu(n).on("submit", function() { + e.loginfirstsubmit || (e.loginfirstsubmit = !0, + t(e, { + type: "loginfirstsubmit" + })) + }) + }, + changeLoginType: function(e, n) { + t(e, { + type: "changelogintype", + logintype: n && n.loginType || "" + }) + }, + fieldFocus: function(e, n) { + n.ele.get(0).id != e.$getId("smsPhone") && n.ele.get(0).id != e.$getId("smsVerifyCode") || e.smsloginfirstlog ? e.loginfirstlog || (e.loginfirstlog = !0, + t(e, { + type: "loginfirst" + })) : (e.smsloginfirstlog = !0, + t(e, { + type: "smsloginfirst" + })) + }, + loginSuccess: function(e) { + t(e, { + type: "loginsuccess" + }) + }, + loginError: function() {}, + validateError: function(e, n) { + return n.validate && t(e, { + errno: encodeURIComponent(n.validate.msg), + type: "loginerrno" + }), + { + preventEvent: !1, + preventDefault: !1 + } + }, + fieldKeyup: function(e) { + e.KEYUPFLAG || (t(e, { + type: "typein" + }), + e.KEYUPFLAG = !0) + } + } + }(passport.analysis); + var passport = passport || window.passport || {}; + passport.hook = passport.hook || {}, + function(e) { + function t(e) { + var t, n, i = this, o = { + 120016: { + isLogin: !1, + msg: "您的帐号存在安全风险,我们已经为您采取保护策略,建议您先绑定手机。" + }, + 400032: { + isLogin: !0, + msg: "快来绑定密保工具吧,提升帐号安全性的同时可以快速找回密码。" + }, + 400034: { + isLogin: !1, + msg: { + phone: "请绑定您的手机号码作为您的密保手机,提升帐号安全性的同时还可以快速找回密码。", + email: "请绑定一个您的常用邮箱作为您的密保邮箱,提升帐号安全性的同时还可以快速找回密码。" + } + } + }[e.errno], s = e.args, a = e.title, r = o.msg, c = (e.auth_title, + e.auth_msg, + o.isLogin), l = e.cfg, d = function(e, t, n) { + var i = t.args + , o = { + action: t.type || "init", + u: e.config.u, + tpl: e.config.product, + ltoken: i.rsp.data.ltoken, + lstr: i.rsp.data.lstr + }; + e.REQUESTBINDTOKENURL = "/v2/?loginspmbindsecureinfo", + passport.data.jsonp("https://passport.baidu.com" + e.REQUESTBINDTOKENURL, o).success(function(t) { + 0 == t.errInfo.no ? n && n({ + bindEmailToken: t.data.bindEmailToken, + bindMobileToken: t.data.bindMobileToken, + authsid: t.data.authsid, + loginproxy: t.data.loginproxy, + otherValue: o + }) : (e._ownerDialog && e._ownerDialog.show(), + e.getElement("error").innerHTML = e.lang.sysError) + }) + }, u = function(e) { + var t = "string" == (typeof r).toLowerCase() ? r : r.email; + return t += c ? "您可以跳过此步骤绑定手机。" : "您也可以绑定手机。", + e.otherValue = e.otherValue || {}, + passport.pop.ArmorWidget("bindemail", { + token: e.bindEmailToken, + authsid: e.authsid, + title: a || "绑定密保邮箱", + otherValue: e.otherValue, + msg: t, + lstr: e.otherValue.lstr || "", + ltoken: e.otherValue.ltoken || "", + u: e.otherValue.u || "", + tpl: e.otherValue.tpl || "", + subpro: i.config.subpro, + traceid: e.traceid, + onSubmitSuccess: function(e) { + var e = e; + d(i, { + args: s, + type: "check" + }, function(t) { + e && e.hide && e.hide(), + s.isCompleted = !0, + t.loginproxy ? passport.data.jsonp(t.loginproxy).success(function(e) { + l.onCompleted && l.onCompleted(e, function() { + l.onCancel && l.onCancel(s) + }) + }) : l.onCancel && l.onCancel(s) + }) + }, + onRender: function() { + var e = this; + baidu(".bindPhoneBtn").on("click", function() { + e.close(), + n.show() + }), + baidu(".bindJumpEmail").on("click", function(t) { + t.preventDefault(), + e.close(), + s.isCompleted = !0, + l.onCancel && l.onCancel(s) + }), + baidu("#" + e.getId("header_a")).on("click", function() { + c && (s.isCompleted = !0, + l.onCancel && l.onCancel(s)) + }) + } + }) + }, p = function(e) { + var n = "string" == (typeof r).toLowerCase() ? r : r.phone; + return c && e.bindEmailToken ? n += "您可以跳过此步骤绑定密保邮箱。" : e.bindEmailToken && (n += "您也可以绑定密保邮箱。"), + e.otherValue = e.otherValue || {}, + passport.pop.ArmorWidget("bindmobile", { + token: e.bindMobileToken, + authsid: e.authsid, + title: a || "绑定手机", + otherValue: e.otherValue, + msg: n, + bindToLogin: 1, + lstr: e.otherValue.lstr || "", + ltoken: e.otherValue.ltoken || "", + u: e.otherValue.u || "", + tpl: e.otherValue.tpl || "", + apiMargicInstance: i, + subpro: i.config.subpro, + traceid: e.traceid, + onSubmitSuccess: function(e) { + var e = e; + d(i, { + args: s, + type: "check" + }, function(t) { + e && e.hide && e.hide(), + s.isCompleted = !0, + t.loginproxy ? passport.data.jsonp(t.loginproxy).success(function(e) { + l.onCompleted && l.onCompleted(e, function() { + l.onCancel && l.onCancel(s) + }) + }) : l.onCancel && l.onCancel(s) + }) + }, + onRender: function(n) { + var n = this; + baidu(".bindEmailBtn").on("click", function(i) { + i.preventDefault(), + n.close(), + t = t || u(e), + t.show() + }), + baidu(".bindJumpPhone").on("click", function(e) { + e.preventDefault(), + n.close(), + s.isCompleted = !0, + l.onCancel && l.onCancel(s) + }), + baidu("#" + n.getId("header_a")).on("click", function() { + c && (s.isCompleted = !0, + l.onCancel && l.onCancel(s)) + }) + }, + onBindToLoginFn: function(e, t) { + t && t.mobile && (i.config.sms ? (i.getElement("smsPhone_placeholder") && i.$hide("smsPhone_placeholder"), + i.getElement("smsPhone") && (i.getElement("smsPhone").value = t.mobile), + i.getElement("smsVerifyCode") && (i.getElement("smsVerifyCode").value = "", + i.getElement("smsVerifyCode").focus())) : (i.getElement("userName_placeholder") && i.$hide("userName_placeholder"), + i.getElement("userName") && (i.getElement("userName").value = t.mobile), + i.getElement("password") && (i.getElement("password").value = "", + i.getElement("password").focus()))) + } + }) + }; + d(i, { + args: s, + type: "init" + }, function(e) { + passport._use(k, T[k], function() { + e.bindMobileToken ? (n = p(e), + n.show()) : e.bindEmailToken ? (t = u(e), + t.show()) : (i._ownerDialog && i._ownerDialog.show(), + i.getElement("error").innerHTML = i.lang.sysError) + }) + }) + } + function n(e) { + var t, n, i = this, o = e.rspData, s = e.cfg, a = e.args, r = function(e) { + var e = e || "系统检测到您的帐号疑似被盗,存在安全风险。请尽快修改密码。"; + return '' + }; + if (o && o.secstate) + switch (o.secstate) { + case "PA001": + n = "您的帐号密码输入错误次数达到上限,为保障帐号安全,登录前需验证身份。"; + break; + case "PA002": + n = "您的网络环境存在安全风险,为保障帐号安全,登录前需验证身份。"; + break; + case "PA003": + n = "您的帐号长时间未登录,为保障帐号安全,登录前需验证身份。"; + break; + case "risk": + t = r(), + n = "您的帐号可能存在安全隐患,为保障您的帐号安全,登录前需验证身份。"; + break; + case "cheat": + n = "您的帐号因批量或者使用非法软件注册被冻结,登录前需验证身份。"; + break; + case "PC001": + n = "您操作频度过于频繁,为保障帐号安全,登录前需验证身份。"; + break; + case "PX008": + n = "您本次的登录地存在异常,为保障本次操作安全,登录前需验证身份。"; + break; + default: + n = "您的帐号存在安全风险,为保障帐号安全,登录前需验证身份。" + } + var c = { + 400031: { + title: "登录保护", + msg: "您已开启登录保护功能,为保障帐号安全,登录前需验证身份。" + }, + 5: { + title: "登录安全验证", + msg: "您的网络环境存在安全风险,为保障帐号安全,登录前需验证身份。", + onSuccess: function(e, t) { + var n = o.gotourl + "&authsid=" + t.authsid; + passport.data.jsonp(n).success(function(t) { + i._ownerDialog && i._ownerDialog.show(), + e.hide(), + i.getElement("error").innerHTML = 0 == t.errInfo.no || 0 == t.data.errno ? '请重新登录,或找回密码' : i.lang.sysError + }) + }, + onGetapiError: function() { + i.getElement("error").innerHTML = "您当前的操作存在安全风险,请稍后再试" + } + }, + 400023: { + title: "登录安全验证", + msg: "您的网络环境存在安全风险,为保障帐号安全,登录前需验证身份。", + onSuccess: function(e, t) { + var n = "https://passport.baidu.com/v3/login/main/qrbdusslogin?tt=" + (new Date).getTime() + , r = { + authsid: t.authsid, + bduss: o.bdusssign, + u: encodeURIComponent(o.u), + loginVersion: "v4", + tpl: i.config.product + }; + passport.data.jsonp(n, r).success(function(t) { + e.hide(), + 0 == t.errInfo.no || 0 == t.data.errno ? (a.isCompleted = !0, + s.onCompleted && s.onCompleted(t, function() { + s.onCancel && s.onCancel(a) + })) : i.getElement("error").innerHTML = i.lang.sysError + }) + }, + onGetapiError: function() { + i.getElement("error").innerHTML = "您当前的操作存在安全风险,请稍后再试" + } + }, + 120019: { + title: "登录解冻验证", + msg: "您的帐号因密码输入错误次数过多,为保障帐号安全,登陆前需验证身份。", + onSuccess: function(e, t) { + var n = o.gotourl + "&authsid=" + t.authsid; + passport.data.jsonp(n).success(function(t) { + i._ownerDialog && i._ownerDialog.show(), + e.hide(), + i.getElement("error").innerHTML = 0 == t.errInfo.no || 0 == t.data.errno ? '请重新登录,或找回密码' : i.lang.sysError + }) + }, + onGetapiError: function() { + i.getElement("error").innerHTML = '登录密码错误已达上限,您可以找回密码或3小时后再试' + } + }, + 120021: { + title: "安全验证", + msg: n, + defaultHTML: t, + onSuccess: function(e) { + return passport.data.jsonp(o.loginproxy).success(function(n) { + e.show(), + 0 == n.errInfo.no ? (a.isCompleted = !0, + a.rsp && a.rsp.data && (a.rsp.data.hao123Param = n.data.hao123Param), + t ? (e.getElement("article").innerHTML = t, + baidu(e.getElement("header_a")).on("click", function() { + e.hide(), + s.onCompleted && s.onCompleted(n, function() { + s.onCancel && s.onCancel(a) + }) + }), + baidu(document.getElementById("passport_forceverify_risk_next")).on("click", function() { + e.hide(), + s.onCompleted && s.onCompleted(n, function() { + s.onCancel && s.onCancel(a) + }) + })) : (e.hide(), + s.onCompleted && s.onCompleted(n, function() { + s.onCancel && s.onCancel(a) + }))) : e.getElement("forceverify_error").html(i.lang.sysError) + }), + !1 + }, + onRender: function(e) { + document.getElementById("passport_forceverify_risk_appeal") && (document.getElementById("passport_forceverify_risk_appeal").href = e.url_forgot) + } + }, + riskCheat: { + token: "risk", + title: "安全验证", + msg: n, + defaultHTML: t, + onRender: function(e) { + baidu(document.getElementById("passport_forceverify_risk_next")).on("click", function() { + e.hide(), + s.onCancel && s.onCancel() + }), + document.getElementById("passport_forceverify_risk_appeal") && (document.getElementById("passport_forceverify_risk_appeal").href = e.url_forgot) + } + } + }[e.errno]; + passport._use(D, T[D], function() { + forceverifyLoginverify = passport.pop.Forceverify({ + token: o.authtoken, + title: c.title, + msg: c.msg, + subpro: i.config.subpro, + u: o.u || "", + lstr: o.lstr || "", + ltoken: o.ltoken || "", + tpl: o.tpl || "", + traceid: o.traceid, + lang: i.config.lang, + onRender: function(e) { + c.onRender && c.onRender(e) + }, + onSubmitSuccess: function(e, t) { + try { + "localStorage"in window && null !== window.localStorage && localStorage.setItem("passLoginType", "normal") + } catch (n) {} + if ("1" === o.realnameverifyemail) + return o.realnameauthsid = t.authsid, + void p.apply(i, [{ + args: a, + rspData: o, + cfg: s + }]); + if (c.onSuccess) + return void c.onSuccess(e, t); + var r = o.loginproxy; + passport.data.jsonp(r).success(function(t) { + 0 == t.errInfo.no || 0 == t.data.errno ? (e.hide(), + a.isCompleted = !0, + a.rsp && a.rsp.data && (a.rsp.data.hao123Param = t.data.hao123Param), + s.onCompleted && s.onCompleted(t, function() { + s.onCancel && s.onCancel(a) + })) : (e.hide(), + i._ownerDialog && i._ownerDialog.show(), + i.getElement("error").innerHTML = i.lang.sysError) + }) + }, + onGetapiError: function(e) { + return i._ownerDialog && i._ownerDialog.show(), + c.onGetapiError ? void c.onGetapiError(e) : void (i.getElement("error").innerHTML = i.lang.sysError) + }, + onHide: function() { + s.onCancel && s.onCancel(), + i.config.loginMerge && i.getElement("isPhone") && (i.getElement("isPhone").value = "") + } + }, !0) + }) + } + function i(e) { + function t() { + var e = document.getElementById("managePcAuthwidget") || ""; + e && document.body.removeChild(e) + } + var n = this + , i = e.rspData + , o = e.cfg + , s = e.args + , a = "login_force_verify"; + 400031 === +e.errno && (a = "login_protect_verify"); + var r = document.getElementById("managePcAuthwidget") || ""; + if (!r) { + var c = document.createElement("div"); + c.id = "managePcAuthwidget", + c.className = "pass-auth-widget-wrapper", + document.body.appendChild(c) + } + passport._load(location.protocol + "//wappass.baidu.com/static/apimanage/api/authwidget.js?cdnversion=" + (new Date).getTime(), !0, function() { + var e; + if (window.PassApi && window.PassApi.authwidget) { + var r = window.PassApi.authwidget; + e = new r({ + id: "managePcAuthwidget", + mode: "dialog", + authid: i.authid || "", + pageType: "authType", + scene: a, + clientfrom: "pc", + staticPage: n.config.staticPage || "", + lang: n.config.lang || "", + verifySuccess: function(e, a) { + try { + "localStorage"in window && null !== window.localStorage && localStorage.setItem("passLoginType", "normal") + } catch (r) {} + if ("1" === i.realnameverifyemail) + return i.realnameauthsid = a, + void p.apply(n, [{ + args: s, + rspData: i, + cfg: o + }]); + var c = i.loginproxy; + passport.data.jsonp(c).success(function(e) { + t(), + 0 == e.errInfo.no || 0 == e.data.errno ? (s.isCompleted = !0, + s.rsp && s.rsp.data && (s.rsp.data.hao123Param = e.data.hao123Param), + o.onCompleted && o.onCompleted(e, function() { + o.onCancel && o.onCancel(s) + })) : (n._ownerDialog && n._ownerDialog.show(), + n.getElement("error").innerHTML = n.lang.sysError) + }) + }, + verifyFail: function() {}, + closeAuthwidget: function() { + n._ownerDialog && n._ownerDialog.show(), + t(), + o.onCancel && o.onCancel(), + n.config.loginMerge && n.getElement("isPhone") && (n.getElement("isPhone").value = "") + } + }) + } + }) + } + function o(e) { + for (var t = this, n = e.rspData, i = [], o = n.accounts.split(";"), s = 0; s < o.length; s++) { + var a = o[s].split(","); + i.push({ + username: a[0], + portrait: a[1] + }) + } + passport._load(S + T[I], !0, function() { + var e = passport.pop.init({ + type: "loginMultichoice", + tangram: !0, + apiOpt: { + phone: n.userName, + userList: i + }, + onChoicedUser: function(n, i) { + e.hide(), + t._ownerDialog && t._ownerDialog.show(), + t.getElement("userName").value = i.username, + t.getElement("isPhone").value = "false", + t.config.loginMerge && t.getElement("loginMerge") && (t.getElement("loginMerge").value = ""), + "sms" == t.currentLoginType ? (t.getElement("smsHiddenFields_switchuname").value = i.username, + t._submitSmsForm()) : (t.config.loginMerge || (t._collectData(), + t.switchTo("normal"), + t._restoreData("phone")), + t.submit()) + }, + onHide: function() { + t.getElement("userName").value = n.userName, + t.getElement("isPhone").value = "" + } + }); + e.show() + }) + } + function s(e) { + var t = this + , n = t.$getId("pass_b2c_swf") + , i = e.args.rsp.data + , o = P() + , s = 0; + i && i.bckv && (s = parseInt(i.bckv, 10) > 0); + var a = null; + if (passport.CONSTANT = passport.CONSTANT || {}, + passport.CONSTANT.b2c_getlogin = function() {} + , + passport.CONSTANT.b2c_setlogin = function() { + var e = { + kv: i.bckv, + sync: i.bcsync, + checksum: i.bcchecksum, + time: i.bctime + }; + try { + if (a) { + var t = a.get_movie(n, "b2c_setlogin").b2c_setlogin(e); + try { + var o = document.createElement("script"); + o.type = "text/javascript", + o.src = [S, "/v2/b2c-stable?", "from=setlogin.done", "&checksum=", e.checksum, "&time=", e.time, "&status=", encodeURIComponent(t)].join(""), + document.getElementsByTagName("head")[0].appendChild(o) + } catch (s) {} + } + } catch (s) { + try { + var o = document.createElement("script"); + o.type = "text/javascript", + o.src = [S, "/v2/b2c-stable?", "from=setlogin.fail", "&msg=", encodeURI(s.message)].join(""), + document.getElementsByTagName("head")[0].appendChild(o) + } catch (s) {} + } + } + , + t.getElement("pass_b2c") && o.isexists && s) { + var r = function(e) { + var t = function(e) { + e = e || {}; + var t, n, i, o, s = {}, a = function(e) { + return e.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'") + }; + for (n in e) + s[n] = e[n]; + e = s; + var r = e.vars + , c = ["classid", "codebase", "id", "width", "height", "align"]; + if (e.align = e.align || "middle", + e.classid = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000", + e.codebase = "https://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0", + e.movie = e.url || "", + delete e.vars, + delete e.url, + "string" == typeof r) + e.flashvars = r; + else { + var l = []; + for (n in r) + o = r[n], + l.push(n + "=" + encodeURIComponent(o)); + e.flashvars = l.join("&") + } + var d = [" t; t++) + o = c[t], + d.push(" ", o, '="', a(e[o]), '"'); + d.push(">"); + var u = { + wmode: 1, + scale: 1, + quality: 1, + play: 1, + loop: 1, + menu: 1, + salign: 1, + bgcolor: 1, + base: 1, + allowscriptaccess: 1, + allownetworking: 1, + allowfullscreen: 1, + seamlesstabbing: 1, + devicefont: 1, + swliveconnect: 1, + flashvars: 1, + movie: 1 + }; + for (n in e) + o = e[n], + n = n.toLowerCase(), + u[n] && (o || o === !1 || 0 === o) && d.push(''); + e.src = e.movie, + e.name = e.id, + delete e.id, + delete e.movie, + delete e.classid, + delete e.codebase, + e.type = "application/x-shockwave-flash", + e.pluginspage = "https://www.macromedia.com/go/getflashplayer", + d.push(""), + d.join("") + } + , n = function(e) { + e = e || {}; + var n = document.createElement("div"); + n.innerHTML = t(e), + n.style.display = "none", + document.getElementsByTagName("body")[0].appendChild(n) + } + , i = /msie (\d+\.\d+)/i.test(navigator.userAgent) ? document.documentMode || +RegExp.$1 : void 0; + return (i > 7 || !i) && n(e), + { + get_movie: function(e, t) { + var n = document[e]; + if (9 === document.documentMode && n && n.length) + for (var i = n.length, o = 0; i > o; o++) { + var s = n[o]; + if ("embed" === s.tagName.toLowerCase()) { + n = s; + break + } + } + return t && "function" != typeof n[t] && (n = document.getElementById(e)), + n + } + } + }; + try { + var c = window.location.protocol.toLowerCase(); + a = r({ + id: n, + width: "1", + height: "1", + url: c + "//passport.baidu.com/passApi/swf/b2c.swf?_t=" + Math.random(), + allowscriptaccess: "always" + }) + } catch (l) {} + } + passport.data.request.load(S + "/v2/b2c-flash?isexists=" + encodeURIComponent(o.isexists) + "&ver=" + encodeURIComponent(o.ver) + "&filename=" + encodeURIComponent(o.filename)) + } + function a(e) { + var t = this + , n = e.rspData + , i = e.args.rsp.data; + return t.rebindGuideWidget ? void t.rebindGuideWidget.show() : void passport.use("uni_rebindGuide", { + tangram: !0 + }, function() { + t.rebindGuideWidget = new passport.pop.rebindGuideWidget({ + color: t.config.color || "blue", + apiOpt: i, + rebindType: "rebindPhone", + onrebindGuideCompleted: function() { + L(t, n) + } + }), + t.rebindGuideWidget.show() + }) + } + function r(e) { + var t = this + , n = e.cfg + , i = e.args + , o = e.rspData.rsp.data || {}; + passport._load(S + T[I], !0, function() { + b ? (b.setMakeOption && b.setMakeOption(o.authsid, o.bdstoken), + b.show()) : (b = passport.pop.init({ + type: "accSetPwd", + tangram: !0, + color: t.config.color || "blue", + apiOpt: { + u: t.config.u, + product: t.config.product, + authsid: o.authsid || "", + bdstoken: o.bdstoken || "", + staticPage: t.config.staticPage + }, + onHide: function() { + "1" != o.setpwdswitch && (i.isCompleted = !0, + n.onCancel && n.onCancel(i)) + }, + onSubmitSuccess: function() { + i.isCompleted = !0, + i && i.rsp && i.rsp.errInfo && (i.rsp.errInfo.no = "0"), + o.hao123Param && A(o.hao123Param, t), + b.hide(), + n.onCancel && n.onCancel(i) + } + }), + b.show()) + }) + } + function c(e) { + var t = this + , n = e.cfg + , i = e.args + , o = e.rspData.rsp.data || {}; + passport._load(S + T[I], !0, function() { + y ? (y.setMakeOption && y.setMakeOption(o.authsid, o.bdstoken), + y.show()) : (y = passport.pop.init({ + type: "accSetPwd", + tangram: !0, + color: t.config.color || "blue", + jumpset: "1" == o.jumpset ? 1 : 0, + apiOpt: { + u: t.config.u, + product: t.config.product, + authsid: o.authsid || "", + bdstoken: o.bdstoken || "", + username: 1, + staticPage: t.config.staticPage + }, + onHide: function() { + "1" == o.jumpset && (i.isCompleted = !0, + n.onCancel && n.onCancel(i)) + }, + onSubmitSuccess: function() { + i.isCompleted = !0, + i && i.rsp && i.rsp.errInfo && (i.rsp.errInfo.no = "0"), + o.hao123Param && A(o.hao123Param, t), + y.hide(), + n.onCancel && n.onCancel(i) + } + }), + y.show()) + }) + } + function l(e) { + var t = this + , n = e.cfg + , i = e.args + , o = e.rspData.rsp.data || {} + , s = "400413" === i.rsp.errInfo.no && "sms" === e.rspData.rsp.loginType ? "1" : "0"; + passport._load(S + T[I], !0, function() { + E ? (E.reRender && E.reRender({ + lstr: o.lstr || "", + ltoken: o.ltoken || "", + token: o.authtoken || "", + loginproxy: o.loginproxy || "", + select: s, + loginType: e.rspData.rsp.loginType + }), + E.show()) : (E = passport.pop.init({ + type: "secondCardVerify", + tangram: !0, + color: t.config.color || "blue", + apiOpt: { + u: t.config.u, + product: t.config.product, + lstr: o.lstr || "", + ltoken: o.ltoken || "", + token: o.authtoken || "", + staticPage: t.config.staticPage, + select: s, + scscene: o.scscene || "", + scnewuser: o.scnewuser || "", + loginType: e.rspData.rsp.loginType, + loginproxy: o.loginproxy || "" + }, + onloginSuccess: function() { + i.isCompleted = !0, + i && i.rsp && i.rsp.errInfo && (i.rsp.errInfo.no = "0"), + o.hao123Param && A(o.hao123Param, t), + E.hide(), + n.onCancel && n.onCancel(i) + }, + onSubmitSuccess: function(e, n) { + n.rsp.data.loginproxy && passport.data.jsonp(n.rsp.data.loginproxy).success(function(i) { + "0" === i.errInfo.no ? document.location.href = "https://passport.baidu.com/v3/security/main/secondcardmodifyaccinfo?tpl=" + t.config.product + "&bdstoken=" + n.rsp.data.bdstoken + "&authsid=" + n.rsp.data.mod_authsid + "&u=" + encodeURIComponent(i.data.u) + "&loginType=" + n.rsp.data.loginType + "&hasUsername=" + n.rsp.data.hasUsername : e.target.getElement("secondCardError").innerHTML = t.lang.sysError + }) + } + }), + E.show()) + }) + } + function d(e) { + var t = this + , n = e.cfg + , i = e.args + , o = e.rspData.rsp.data || {}; + passport._load(S + T[I], !0, function() { + C ? (C.reRender && C.reRender({ + secauthsid: o.secauthsid, + secbdstoken: o.secbdstoken + }), + C.show()) : (C = passport.pop.init({ + type: "secondCardList", + tangram: !0, + color: t.config.color || "blue", + apiOpt: { + u: t.config.u, + product: t.config.product, + staticPage: t.config.staticPage, + secauthsid: o.secauthsid, + secbdstoken: o.secbdstoken, + regLink: t.constant.REG_URL, + source: t.config.source || "login" + }, + onVerifySuccess: function(e) { + C.hide(), + i.isCompleted = !0, + i && i.rsp && i.rsp.errInfo && (i.rsp.errInfo.no = "0"), + i && i.rsp && i.rsp.data && (i.rsp.data.exchange = e), + o.hao123Param && A(o.hao123Param, t), + n.onCancel && n.onCancel(i) + }, + onRegSuccess: function() { + C.hide(), + i.isCompleted = !0, + i && i.rsp && i.rsp.errInfo && (i.rsp.errInfo.no = "0"), + o.hao123Param && A(o.hao123Param, t), + n.onCancel && n.onCancel(i) + }, + onHide: function() { + t._ownerDialog && t._ownerDialog.show() + } + }), + C.show()) + }) + } + function u(e) { + var t = this; + e.rspData = e.rspData || {}, + passport._load(S + T[R], !0, function() { + w ? w.setToken(e.rspData.token, function() { + w.show() + }) : (w = passport.pop.init({ + type: "accConnect", + tangram: !0, + color: t.config.color || "", + apiOpt: { + u: t.config.u, + adtext: e.rspData.adtext, + product: t.config.product, + token: e.rspData.token, + staticPage: t.config.staticPage + }, + onConnectSuccess: function(e) { + var n = e.rsp; + n.connect = w, + L(t, { + rsp: n + }), + e.returnValue = !1 + } + }), + w.show()) + }) + } + function p(e) { + var t = this + , n = e.cfg + , i = e.args; + e.rspData = e.rspData || {}, + passport._load(S + T[I], !0, function() { + v ? v.show() : (v = passport.pop.init({ + type: "accRealName", + tangram: !0, + color: t.config.color || "", + apiOpt: { + u: t.config.u, + product: t.config.product, + staticPage: t.config.staticPage, + action: "login", + realnameswitch: e.rspData.realnameswitch, + authsid: e.rspData.realnameauthsid, + ltoken: e.rspData.ltoken, + lstr: e.rspData.lstr, + cu: e.rspData.u, + overseas: t.config.overseas + }, + onHide: function() { + t.fire("RealHide", i), + "1" != e.rspData.realnameswitch && (i.isCompleted = !0, + n.onCancel && n.onCancel(i)) + }, + onverifyHide: function(o) { + t.realLoginHide || (e.rspData.loginproxy && o ? passport.data.jsonp(e.rspData.loginproxy + "&authsid=" + o).success(function(e) { + 0 == e.errInfo.no ? (i.isCompleted = !0, + n.onCompleted && n.onCompleted(e, function() { + n.onCancel && n.onCancel(i) + })) : (t._ownerDialog && t._ownerDialog.show(), + t.getElement("error").innerHTML = t.lang.sysError) + }) : (i.isCompleted = !0, + e.rspData.hao123Param && "1" == e.rspData.realnameswitch && A(e.rspData.hao123Param, t), + n.onCancel && n.onCancel(i))) + }, + onSubmitSuccess: function(o, s) { + e.rspData.loginproxy && s.rsp.data.authsid ? passport.data.jsonp(e.rspData.loginproxy + "&authsid=" + s.rsp.data.authsid).success(function(e) { + if (0 === +e.errInfo.no) { + if (i.isCompleted = !0, + t.realLoginHide = !0, + v.hide(), + 1 === +e.data.guideUpgradeMobile) + return void g.call(t, e, i); + n.onCompleted && n.onCompleted(e, function() { + n.onCancel && n.onCancel(i) + }) + } else + v.hide(), + t._ownerDialog && t._ownerDialog.show(), + t.getElement("error").innerHTML = t.lang.sysError + }) : (i.isCompleted = !0, + i && i.rsp && i.rsp.errInfo && (i.rsp.errInfo.no = "0"), + e.rspData.hao123Param && e.rspData.realnameswitch + "" == "1" && A(e.rspData.hao123Param, t), + t.realLoginHide = !0, + v.hide(), + n.onCancel && n.onCancel(i)) + } + }), + v.show()) + }) + } + function g(e, t) { + var n = this; + passport._load(S + T[I], !0, function() { + var i = passport.pop.init({ + type: "bindGuide", + tangram: !0, + color: n.config.color || "", + apiOpt: { + u: n.config.u, + product: n.config.product, + staticPage: n.config.staticPage, + action: "login", + realnameswitch: e.data.realnameswitch, + authsid: e.data.realnameauthsid, + ltoken: e.data.ltoken, + upgradeMobileToken: e.data.upgradeMobileToken, + bindMobileToken: e.data.bind_mobile_token, + lstr: e.data.lstr, + cu: e.data.u, + overseas: n.config.overseas, + tip: "为了您的账号安全,建议设置为绑定手机号", + successTip: e.data.upgradeMobile + "验证成功" + }, + onSubmitSuccess: function() { + i.hide(), + L(n, t) + }, + onHide: function() { + L(n, t) + } + }); + i.show() + }) + } + function m(e) { + var t = this + , n = (e.cfg, + e.args); + e.rspData = e.rspData || {}, + passport._load(S + T[I], !0, function() { + _ ? _.show() : (_ = passport.pop.init({ + type: "bindGuide", + tangram: !0, + color: t.config.color || "", + apiOpt: { + type: "verify", + u: t.config.u, + product: t.config.product, + staticPage: t.config.staticPage, + action: "login", + realnameswitch: e.rspData.realnameswitch, + authsid: e.rspData.realnameauthsid, + ltoken: e.rspData.ltoken, + upgradeMobileToken: e.rspData.upgrade_mobile_token, + bindMobileToken: e.rspData.bind_mobile_token, + lstr: e.rspData.lstr, + cu: e.rspData.u, + overseas: t.config.overseas, + tip: "检测到您有待验证手机 " + (e.rspData.upgrade_mobile || "") + ",建议设置为绑定手机", + successTip: "登录成功" + }, + onSubmitSuccess: function() { + _.hide(), + L(t, n) + }, + onHide: function() { + L(t, n) + } + }), + _.show()) + }) + } + function f(e, s, g) { + function f(t) { + var n = new Image; + n.onload = n.onerror = function() { + n.onload = n.onerror = null, + n = null + } + , + n.src = S + "/img/v.gif?type=" + t + "&tt=" + (new Date).getTime(), + s.isCompleted = !0, + b.hao123Param && A(b.hao123Param, e), + w.confirmWidgetMobileSure.hide(), + g.onCancel && g.onCancel(s) + } + var v = s.rsp.errInfo.no + , b = s.rsp.data; + g = g || {}; + var y = b && ("risk" === b.secstate || "cheat" === b.secstate); + if (b && b.connectType && e.config.connect) { + var _ = e.fire("beforeWarning", { + args: s + }); + if (!_) + return; + return e.getElement("error").innerHTML = "", + e._ownerDialog && e._ownerDialog.hide("unHide"), + h(S + "/passApi/css/uni_accConnect_ab6dda9.css"), + u.apply(e, [{ + args: s, + rspData: b, + cfg: g, + errno: v + }]), + !1 + } + if (18 === +v) + return e._logNaMonitor("pc_login_real_name_action"), + e.getElement("error").innerHTML = "", + e._ownerDialog && e._ownerDialog.hide("unHide"), + p.apply(e, [{ + args: s, + rspData: b, + cfg: g, + errno: v + }]), + b.hao123Param && b.realnameswitch + "" != "1" && A(b.hao123Param, e), + !1; + if (1 === +b.guide_upgrade_mobile) + return e.getElement("error").innerHTML = "", + e._ownerDialog && e._ownerDialog.hide("unHide"), + e._logNaMonitor("pc_login_confirm_mobile"), + m.call(e, { + args: s, + rspData: b, + cfg: g, + errno: v + }), + b.hao123Param && b.realnameswitch + "" != "1" && A(b.hao123Param, e), + !1; + if (20 === +v) { + var _ = e.fire("beforeWarning", s); + if (!_) + return; + return e.getElement("error") && (e.getElement("error").innerHTML = ""), + e.getElement("smsError") && (e.getElement("smsError").innerHTML = ""), + e._ownerDialog && e._ownerDialog.hide("unHide"), + r.apply(e, [{ + args: s, + rspData: s, + cfg: g + }]), + b.hao123Param && "1" != b.setpwdswitch && A(b.hao123Param, e), + !1 + } + if (22 === +v) { + var _ = e.fire("beforeWarning", s); + if (!_) + return; + return e.getElement("error") && (e.getElement("error").innerHTML = ""), + e.getElement("smsError") && (e.getElement("smsError").innerHTML = ""), + e._ownerDialog && e._ownerDialog.hide("unHide"), + c.apply(e, [{ + args: s, + rspData: s, + cfg: g + }]), + b.hao123Param && A(b.hao123Param, e), + !1 + } + if ("400413" === v || "400414" === v) { + e._logNaMonitor("pc_login_second_card"); + var _ = e.fire("beforeWarning", s); + if (!_) + return; + return e.getElement("error") && (e.getElement("error").innerHTML = ""), + e.getElement("smsError") && (e.getElement("smsError").innerHTML = ""), + e._ownerDialog && e._ownerDialog.hide("unHide"), + l.apply(e, [{ + args: s, + rspData: s, + cfg: g + }]), + b.hao123Param && A(b.hao123Param, e), + !1 + } + if ("400704" === v || "400706" === v) { + e._logNaMonitor("pc_login_second_card"); + var _ = e.fire("beforeWarning", s); + if (!_) + return; + return e.getElement("error") && (e.getElement("error").innerHTML = ""), + e.getElement("smsError") && (e.getElement("smsError").innerHTML = ""), + e._ownerDialog && e._ownerDialog.hide("unHide"), + d.apply(e, [{ + args: s, + rspData: s, + cfg: g + }]), + b.hao123Param && A(b.hao123Param, e), + !1 + } + if (19 == v) { + var w = this + , b = s.rsp.data + , _ = e.fire("beforeWarning", s); + if (!_) + return; + return e.getElement("error").innerHTML = "", + e._ownerDialog && e._ownerDialog.hide("unHide"), + null == w.confirmWidgetLabel ? passport._load(S + "/passApi/js/uni_wrapper.js", !0, function() { + w.confirmWidgetLabel = passport.pop.init({ + type: "confirmWidget", + tangram: !0, + width: 430, + height: 150, + apiOpt: { + contentHTML: "

    近日,某邮箱帐户存在被破解的可能性,建议您使用其他

    邮箱绑定百度帐号,或及时修改您的百度帐号登陆密码并

    绑定手机,以确保帐户安全。

" + }, + onConfirmClose: function() { + w.confirmWidgetLabel.hide(), + L(e, s) + }, + onRender: function() { + w.confirmWidgetLabel.getElement("confirm_cancel").style.display = "none", + w.confirmWidgetLabel.getElement("confirm_continue").style.display = "none", + w.confirmWidgetLabel.getElement("confirmWidget_footer").style.display = "none" + } + }), + w.confirmWidgetLabel.show() + }) : w.confirmWidgetLabel.show(), + b.hao123Param && A(b.hao123Param, e), + !1 + } + if (23 == v) { + var w = this + , b = s.rsp.data + , _ = e.fire("beforeWarning", s); + if (!_) + return; + return e.getElement("error").innerHTML = "", + e._ownerDialog && e._ownerDialog.hide("unHide"), + null == w.confirmWidgetMobileSure ? passport._load(S + "/passApi/js/uni_wrapper.js", !0, function() { + w.confirmWidgetMobileSure = passport.pop.init({ + type: "confirmWidget", + tangram: !0, + titleText: "非常重要", + width: 430, + apiOpt: { + Cancel: "不需要解绑", + Continue: "申诉去解绑", + contentHTML: '

' + b.phoneNumber + '是您绑定的手机号,请确认该手机号是否还在使用,为了帐号安全请及时解绑不使用的手机。

不需要解绑申诉去解绑
' + }, + onRender: function() { + w.confirmWidgetMobileSure.getElement("confirm_cancel").style.display = "none", + w.confirmWidgetMobileSure.getElement("confirm_continue").style.display = "none", + w.confirmWidgetMobileSure.getElement("confirmWidget_footer").style.display = "none", + baidu(document.getElementById("pass-mobile-sure-btn")).on("click", function() { + f("mobileSurePC") + }), + baidu(document.getElementById("pass-appeal-btn")).on("click", function() { + f("appealMobilePC") + }) + }, + onConfirmClose: function() { + f("mobileSureClosePC") + }, + onConfirmContinue: function() {}, + onConfirmCancel: function() {} + }), + w.confirmWidgetMobileSure.show() + }) : (document.getElementById("pass-mobile-sure-num") && (document.getElementById("pass-mobile-sure-num").html = b.phoneNumber || ""), + w.confirmWidgetMobileSure.show()), + b.hao123Param && A(b.hao123Param, e), + !1 + } + if (401007 == v) { + e._logNaMonitor("pc_login_multi_choice"); + var _ = e.fire("beforeWarning", s); + if (!_) + return; + return e.getElement("error").innerHTML = "", + e._ownerDialog && e._ownerDialog.hide("unHide"), + o.apply(e, [{ + rspData: b + }]), + !1 + } + if (120016 == v || 400032 == v || 400034 == v) { + e._logNaMonitor("pc_bind_action"); + var _ = e.fire("beforeWarning", s); + if (!_) + return; + return e.getElement("error").innerHTML = "", + e._ownerDialog && e._ownerDialog.hide("unHide"), + t.apply(e, [{ + errno: v, + args: s, + cfg: g + }]), + b.hao123Param && A(b.hao123Param, e), + !1 + } + if (5 == v || 400031 == v || 120019 == v || 120021 == v || 400023 == v || y) { + e._logNaMonitor("pc_login_verify_transfer"); + var _ = e.fire("beforeWarning", { + args: s + }); + if (!_) + return; + return e.getElement("error") && (e.getElement("error").innerHTML = ""), + e._ownerDialog && e._ownerDialog.hide("unHide"), + b.authid ? void i.apply(e, [{ + args: s, + rspData: b, + cfg: g, + errno: y && 120021 != v ? "riskCheat" : v + }]) : (h(S + "/passApi/css/uni_forceverify_9a4941e.css"), + n.apply(e, [{ + args: s, + rspData: b, + cfg: g, + errno: y && 120021 != v ? "riskCheat" : v + }]), + !1) + } + if (400037 == v) { + var _ = e.fire("beforeWarning", s); + if (!_) + return; + return e.getElement("error").innerHTML = "", + e._ownerDialog && e._ownerDialog.hide("unHide"), + a.apply(e, [{ + args: s, + rspData: s, + cfg: g + }]), + b.hao123Param && A(b.hao123Param, e), + !1 + } + return 400041 === +v && (document.location.href = "https://passport.baidu.com/?getpassappeal&tpl=" + e.config.product), + !0 + } + function h(e) { + if (!x[e]) { + x[e] = !0; + var t = document.createElement("link"); + t.rel = "stylesheet", + t.type = "text/css", + t.href = e, + document.getElementsByTagName("head")[0].appendChild(t) + } + return !0 + } + var v, b, y, _, w, E, C, S = window.location ? "http:" === window.location.protocol.toLowerCase() ? "http://passport.baidu.com" : "https://passport.baidu.com" : "http:" === document.location.protocol.toLowerCase() ? "http://passport.baidu.com" : "https://passport.baidu.com", T = { + uni_armorwidget: "/passApi/js/uni_armorwidget_71d1be8.js", + uni_forceverify: "/passApi/js/uni_forceverify_f96f9bd.js", + uni_accConnect: "/passApi/js/uni_accConnect_wrapper.js", + uni_wrapper: "/passApi/js/uni_wrapper.js" + }, I = "uni_wrapper", D = "uni_forceverify", k = "uni_armorwidget", R = "uni_accConnect", x = {}, L = function(e, t) { + var n = "pc_" + e.currentLoginType + "_loginv4_success"; + e._logNaMonitor(n); + var i = { + tpl: e.config.product || "", + page: e.config.page || "", + traceId: e.urlData.traceId || "" + } + , o = { + eventType: "pc_login_success" + }; + e._logPass(i, o), + e._logPass(i, { + eventType: "pc-" + e.config.loginType + "-submit-success" + }); + var s = e.fire("loginSuccess", t); + s && ("yylive" === e.config.product ? passport.data.getAccessToken({ + client: "", + clientfrom: "", + tpl: "yylive ", + client_id: "Bxr73Efet8HjR5Tr0HqcgDKr" + }).success(function(n) { + var i = n.data + , o = e.fireEvent("yyLoginSuccess", { + rsp: i + }); + o && (window.location ? window.location.href = t.rsp.data.u + "?accesstoken=" + i.access_token + "&expire=" + i.expires_in : document.location.href = t.rsp.data.u + "?accesstoken=" + i.access_token + "&expire=" + i.expires_in) + }) : window.location ? window.location.href = t.rsp.data.u : document.location.href = t.rsp.data.u) + }, P = function() { + var e = 0 + , t = 0 + , n = null + , i = /msie (\d+\.\d+)/i.test(navigator.userAgent); + if (i || console.log(navigator.plugins["Shockwave Flash"]), + i) { + var o = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); + o && (e = 1, + t = o.GetVariable("$version")) + } else if (navigator && navigator.plugins && navigator.plugins.length > 0 && navigator.plugins["Shockwave Flash"]) { + var o = navigator.plugins["Shockwave Flash"]; + o && (n = o.filename, + e = 1, + t = o.version ? o.version : o.description) + } + return { + isexists: e, + ver: t, + filename: n + } + }, A = function(e, t) { + if (!(t && t.config && t.config.noSynBdu && 1 === t.config.noSynBdu)) { + var n = document.location.protocol.toLowerCase(); + passport.data.request.load(n + "//user.nuomi.com/pclogin/main/crossdomain?bdu=" + encodeURIComponent(e) + "&t=" + (new Date).getTime()), + passport.data.request.load(n + "//passport.zongheng.com/bdpass/crossdomain.do?bdu=" + encodeURIComponent(e) + "&t=" + (new Date).getTime()), + passport.data.request.load(n + "//newcopyright.baidu-int.com/login/crossdomain?bdu=" + encodeURIComponent(e) + "&t=" + (new Date).getTime()), + passport.data.request.load(n + "//apollo.auto/apollo/sync_bduss?bdu=" + encodeURIComponent(e) + "&t=" + (new Date).getTime()); + var i = "//baike.baidu.hk/common/api/crossdomain?bdu=" + encodeURIComponent(e); + passport.data.request.load(n + i + "&t=" + (new Date).getTime()); + var o = "//www.yoojia.com/sync/crossdomain?bdu=" + encodeURIComponent(e); + if (passport.data.request.load(n + o + "&t=" + (new Date).getTime()), + "eventgraph" === t.config.product) { + var s = "//eventgraph.baidu-int.com/event_api/api/get_access_bduss?bdu=" + encodeURIComponent(e); + passport.data.request.load(n + s + "&t=" + (new Date).getTime()) + } + if ("roadugc" === t.config.product) { + var a = "//inner-lutao.baidu-int.com/audit/api/crossdomain?bdu=" + encodeURIComponent(e); + passport.data.request.load(n + a + "&t=" + (new Date).getTime()) + } + if ("map_bus_data" === t.config.product) { + var r = "//busjiucuo.baidu-int.com/subwaybus/passport/crossdomain?bdu=" + encodeURIComponent(e) + , c = "//prebusjiucuo.baidu-int.com/subwaybus/passport/crossdomain?bdu=" + encodeURIComponent(e); + passport.data.request.load(n + r + "&t=" + (new Date).getTime()), + passport.data.request.load(n + c + "&t=" + (new Date).getTime()) + } + if ("zhengxin" === t.config.product) { + var l = "//www.aiqicha.com/login/loginAjax?bdu=" + encodeURIComponent(e) + , d = "//www.aiqicha.cn/login/loginAjax?bdu=" + encodeURIComponent(e); + passport.data.request.load(n + l + "&t=" + (new Date).getTime()), + passport.data.request.load(n + d + "&t=" + (new Date).getTime()) + } + if ("health_pc_cer" === t.config.product) { + var u = "//www.baidujk.com/harbor/pc/crossdomain?bdu=" + encodeURIComponent(e); + passport.data.request.load(n + u + "&t=" + (new Date).getTime()) + } + if ("netdisk_sandbox" === t.config.product) { + var a = "//sandbox.pan.baidu-int.com/pass/crossdomain?bdu=" + encodeURIComponent(e); + passport.data.request.load(n + a + "&t=" + (new Date).getTime()) + } + return passport.data.request.load(n + "//user.hao123.com/static/crossdomain.php?bdu=" + encodeURIComponent(e) + "&t=" + (new Date).getTime()) + } + }; + e.login = { + loginSuccess: function(e, t) { + var n = /msie (\d+\.\d+)/i.test(navigator.userAgent); + if (e.config.setWebToClient && !n && s.apply(e, [{ + args: t + }]), + e.config.noSynBdu && 1 === e.config.noSynBdu) { + var i = f(e, t, { + onCancel: function() { + L(e, t) + } + }); + i && L(e, t) + } else + A(t.rsp.data.hao123Param, e).success(function() { + var n = f(e, t, { + onCancel: function() { + L(e, t) + } + }); + n && L(e, t) + }); + return { + preventEvent: !0, + preventDefault: !0 + } + }, + loginError: function(e, t) { + return f(e, t, { + onCompleted: function(t, n) { + e.config.noSynBdu && 1 === e.config.noSynBdu ? n() : A(t.data.hao123Param, e).success(n) + }, + onCancel: function(t) { + t && t.isCompleted && L(e, { + rsp: t.rsp + }) + } + }), + { + preventEvent: !1, + preventDefault: !1 + } + }, + connectNeedBind: function(e, t) { + return f(e, t, { + onCompleted: function() {}, + onCancel: function() {} + }), + { + preventEvent: !1, + preventDefault: !1 + } + }, + validateAllError: function(e, t) { + var n = t.validates ? e.getElement(t.validates[t.validates.length - 1].field) : ""; + return n && n.focus && n.focus(), + { + preventEvent: !1, + preventDefault: !1 + } + } + } + }(passport.hook), + magic.passport = baidu.lang.createClass(function() { + this._validateInfo = {} + }, { + type: "magic.passport", + superClass: magic.Base + }).extend({ + _getRegularField: function(e) { + var t = e.pwd ? "password" : "text" + , n = this + , i = 'autocomplete="off"' + , o = e.maxLength ? 'maxlength="' + e.maxLength + '"' : "" + , s = e.tip ? e.tip : "" + , a = e.value ? e.value : "" + , r = e.field + "" == "verifycode" ? "none" : "" + , c = ""; + c = "text" === t ? '' : ''; + var l = '

' + (e.label ? '" : "") + c + '' + (e.noError ? "" : '') + (e.hasSucc ? '' : "") + '

"; + return l + }, + _getHiddenField: function(e, t) { + var n, i = this, o = '" + }, + _setEvent: function() { + var e = this + , t = this.getElement() + , n = function(t) { + e._eventHandler.entrance.apply(e, [t]) + }; + baidu(e.getElement()).on("resize", function() { + var e = (navigator.userAgent, + !navigator.userAgent.match(/OS [1-8]_\d[_\d]* like Mac OS X/i)) + , t = !!navigator.userAgent.toString().match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) + , n = navigator.userAgent.toString().indexOf("iPad"); + if (e && t && null != n) { + var i = document.getElementsByClassName("popBox"); + null != i && i.length > 0 && (i[0].style.height = window.screen.height > document.body.clientHeight ? window.screen.height * (window.screen.height / document.body.clientHeight) + 120 + "px" : window.screen.height * (window.screen.height / document.body.clientHeight)) + } + }), + baidu(e.getElement("form")).on("submit", n), + baidu(e.getElement("license")).on("click", n), + baidu(e.getElement("verifyCodeChange")).on("click", n), + baidu(e.getElement("verifyCodeSend")).on("click", n), + baidu(e.getElement("smsVcodeSend")).on("click", n), + baidu(t).delegate(".pass-suggest-item label", "click", n), + baidu(".pass-text-input", e.getElement()).on({ + focus: n, + blur: n, + change: n, + keyup: n, + mouseover: n, + mouseout: n + }) + }, + _validator: { + confStorage: {}, + builtInMsg: { + required: "请您输入%s", + phone: "手机号码格式不正确", + email: "邮箱格式不正确", + idcard: "身份证格式不正确" + }, + builtInRules: { + required: /\S+/, + phone: /^1[3456789]\d{9}$/, + email: /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, + idcard: /(^\d{15}$)|(^\d{17}(\d|X|x)$)/ + }, + init: function(e, t) { + this.confStorage[e.$getId()] = t + }, + validate: function(e, t, n, i) { + var o = e.getElement(t) + , s = { + field: t + } + , a = /^\s*(.+?)\s*$/; + if (!o || 0 === +o.offsetHeight) + return !1; + for (var r = o.value.replace(a, "$1"), c = this.confStorage[e.$getId()][t], l = c.rules, d = 0, u = l.length; u > d; d++) { + var p, g = l[d], m = this.builtInRules[g]; + if (p = "[object function]" === Object.prototype.toString.call(m).toLowerCase() ? m.call(e, o, i) : new RegExp(m).test(r), + !p) + return s.error = !0, + e._validateInfo[t] = 0, + s.msg = this.builtInMsg[g].replace(/\%s/, c.desc), + e._validateError(s), + void n.error(s) + } + c.asyncRule ? c.asyncRule.call(e, { + success: function(i) { + s.error = !1, + s.data = i.data, + e._validateInfo[t] = 1, + e._validateSuccess(s), + n.success(s) + }, + error: function(i) { + s.error = !0, + e._validateInfo[t] = 0, + s.msg = i.msg, + e._validateError(s), + n.error(s) + } + }, i) : (s.error = !1, + e._validateInfo[t] = 1, + e._validateSuccess(s), + n.success(s)) + }, + validateAll: function(e, t, n) { + function i() { + r = !0, + a ? t && t.error(c) : t && t.success(c) + } + var o = this.confStorage[e.$getId()] + , s = 0 + , a = !1 + , r = !1 + , c = [] + , l = this._getActiveValidate(e, !0); + for (var d in o) { + if (r) + break; + this.validate(e, d, { + success: function(e) { + s++, + c.push(e), + s === l && i() + }, + error: function(e) { + return a = !0, + s++, + c.push(e), + n ? void i() : void (s === l && i()) + } + }, "all") + } + }, + _getActiveValidate: function(e, t) { + var n = this.confStorage[e.$getId()] + , i = []; + for (var o in n) { + var s = e.getElement(o); + s && 0 !== s.offsetHeight && i.push(s) + } + return t ? i.length : i + }, + addRule: function(e, t) { + var n = {}; + n[e] = t, + baidu.extend(this.builtInRules, n) + }, + addMsg: function(e, t) { + var n = {}; + n[e] = t, + baidu.extend(this.builtInMsg, n) + } + }, + validate: function(e, t) { + var n = this + , i = n.fireEvent("beforeValidate", { + validate: { + field: e, + ele: baidu(n.getElement(e)) + } + }); + i && n._validator.validate(n, e, { + success: function(e) { + var i = n.fireEvent("validateSuccess", { + validate: e + }); + i && t && t.success && t.success(e) + }, + error: function(e) { + var i = n.fireEvent("validateError", { + validate: e + }); + i && t && t.error && t.error(e) + } + }) + }, + validateAll: function(e, t) { + var n = this; + t = "boolean" == typeof e ? e : t ? t : !1; + var i = n.fireEvent("beforeValidateAll"); + i && n._validator.validateAll(n, { + success: function(t) { + var i = n.fireEvent("validateAllSuccess", { + validates: t + }); + i && e && e.success && e.success(t) + }, + error: function(t) { + var i = n.fireEvent("validateAllError", { + validates: t + }); + i && e && e.error && e.error(t) + } + }, t) + }, + getValidateStatus: function(e) { + return this._validateInfo.hasOwnProperty(e) ? this._validateInfo[e] : -1 + }, + setValidateSuccess: function(e) { + var t = this; + t._validateInfo[e] = 1, + t._validateSuccess({ + field: e + }) + }, + setValidateError: function(e, t, n) { + var i = this; + i._validateInfo[e] = 0, + i._validateError({ + field: e, + msg: t + }, n) + }, + setGeneralError: function(e) { + this.getElement("error").innerHTML = e + }, + clearGeneralError: function() { + this.getElement("error").innerHTML = "" + }, + _isSupportPlaceholder: function() { + return "placeholder"in document.createElement("input") + }, + _getPlaceholder: function(e) { + for (var t = this, n = {}, i = "", o = {}, s = 0; s < e.length; s++) { + if (i = t.lang[e[s].placeholder], + 0 !== +e[s].clearbtn && (o[s] = baidu(''), + baidu(t.getElement(e[s].label)).after(o[s])), + t._isSupportPlaceholder() && !baidu.browser.ie) + try { + baidu(t.getElement(e[s].label)).attr({ + placeholder: i + }) + } catch (a) { + var r = t.getElement(e[s].label); + r.setAttribute("placeholder", i) + } + else + n[s] = baidu('' + i + ""), + baidu(t.getElement(e[s].label)).after(n[s]); + t._rendEventPlaceholder(t.getElement(e[s].label), n[s], o[s]) + } + }, + _getCookie: function(e) { + var t, n = new RegExp("(^| )" + e + "=([^;]*)(;|$)"); + return (t = document.cookie.match(n)) ? unescape(t[2]) : null + }, + _logNaMonitor: function(e) { + var t = { + page: "loginv4", + tpl: this.config.product || "", + module: "wapna", + monitorType: e + } + , n = { + eventType: "na-monitor" + }; + this._logPass(t, n, 1023) + }, + _logPass: function(e, t, n) { + function i(e) { + var t, n, i, o, s, a, r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + for (i = e.length, + n = 0, + t = ""; i > n; ) { + if (o = 255 & e.charCodeAt(n++), + n === i) { + t += r.charAt(o >> 2), + t += r.charAt((3 & o) << 4), + t += "=="; + break + } + if (s = e.charCodeAt(n++), + n === i) { + t += r.charAt(o >> 2), + t += r.charAt((3 & o) << 4 | (240 & s) >> 4), + t += r.charAt((15 & s) << 2), + t += "="; + break + } + a = e.charCodeAt(n++), + t += r.charAt(o >> 2), + t += r.charAt((3 & o) << 4 | (240 & s) >> 4), + t += r.charAt((15 & s) << 2 | (192 & a) >> 6), + t += r.charAt(63 & a) + } + return t + } + var o = n ? "&type=" + n : "" + , s = document.location.protocol + "//nsclick.baidu.com/v.gif?pid=111&v=" + (new Date).getTime() + o + , a = ""; + for (var r in t) + a = a + r + ":" + t[r] + ","; + a = i("{" + a.substring(0, a.length - 1) + "}"); + for (var c in e) + e.hasOwnProperty(c) && (s += "&" + c + "=" + e[c]); + if (s += "&source=pc", + s += "&auto_statistic=" + a + "&auto_en=" + t.eventType, + t.errno && (s += "&errno=" + t.errno), + s) { + var l = new Image; + l.onload = l.onerror = function() { + l.onload = l.onerror = null, + l = null + } + , + l.src = s + } + }, + logClickLink: function(e, t) { + e = e || {}, + e = this.formatLogData(e); + var n = t.target || t.srcElement + , i = n && n.getAttribute && n.getAttribute("target") + , o = "_self" === i || null === i + , s = this.makeImgSrc(e); + if (o && (t.preventDefault ? t.preventDefault() : t.returnValue = !1), + window.navigator.sendBeacon && o) + window.navigator.sendBeacon(s), + window.location.href = n.getAttribute("href"); + else if (o) + this.lazyLog(n, s, null); + else { + var a = new Image; + a.onload = a.onerror = function() { + a.onload = a.onerror = null, + a = null + } + , + a.src = s + } + }, + logCallBack: function(e, t) { + e = e || {}, + e = this.formatLogData(e); + var n = this.makeImgSrc(e); + this.lazyLog({}, n, t) + }, + formatLogData: function(e) { + var t = this.config || {}; + return baidu.extend({}, { + page: e.logPage || "", + source: "pc-api", + tpl: t.product || "", + subpro: t.subpro || "", + extrajson: t.extrajson || "", + data_source: "fe" + }, e) + }, + makeImgSrc: function(e) { + var t = document.location.protocol + "//nsclick.baidu.com/v.gif?pid=111&type=1023&v=" + (new Date).getTime() + , n = ""; + for (var i in e) + e.hasOwnProperty(i) && (n += "en" !== i ? "&" + i + "=" + e[i] : "&auto_en=" + e[i]); + var o = "{eventType:" + (e.en || "") + "}"; + return o = this.base64encode(o), + t += "&auto_statistic=" + o, + t += "&auto_en=" + (e.en || ""), + t += n + }, + lazyLog: function(e, t, n) { + function i() { + n ? n() : window.location.href = o + } + var o = e.getAttribute && e.getAttribute("href") + , s = new Image + , a = setTimeout(function() { + s.onload = s.onerror = s = null, + i("imgTimeout") + }, 200); + s.onload = s.onerror = function() { + clearTimeout(a), + s.onload = s.onerror = s = null, + i("imgSuccess") + } + , + s.src = t + }, + base64encode: function(e) { + var t, n, i, o, s, a, r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + for (i = e.length, + n = 0, + t = ""; i > n; ) { + if (o = 255 & e.charCodeAt(n++), + n === i) { + t += r.charAt(o >> 2), + t += r.charAt((3 & o) << 4), + t += "=="; + break + } + if (s = e.charCodeAt(n++), + n === i) { + t += r.charAt(o >> 2), + t += r.charAt((3 & o) << 4 | (240 & s) >> 4), + t += r.charAt((15 & s) << 2), + t += "="; + break + } + a = e.charCodeAt(n++), + t += r.charAt(o >> 2), + t += r.charAt((3 & o) << 4 | (240 & s) >> 4), + t += r.charAt((15 & s) << 2 | (192 & a) >> 6), + t += r.charAt(63 & a) + } + return t + }, + _rendEventPlaceholder: function(e, t, n) { + if (e || n) { + var i, o, s = this, a = function(e) { + 1 === +e ? (t && t[0] && s.$hide(t[0]), + n && n[0] && s.$show(n[0])) : (t && t[0] && s.$show(t[0]), + n && n[0] && s.$hide(n[0])) + }; + setTimeout(function() { + e && e.value && a(1) + }, 200), + baidu(t).on("mousedown", function() { + o = !0, + clearTimeout(i), + i = setTimeout(function() { + "password" === t[0] || s.suggestionDom && "none" !== s.suggestionDom.style.display || e.focus() + }, 0) + }), + baidu(n).on("click", function() { + e.value = "", + a(0), + e.focus(), + s.suggestionDom && (s.suggestionDom.data_delete = !0, + setTimeout(function() { + s.suggestionDom.data_delete = !1 + }, 200)) + }), + baidu(e).on("keyup", function() { + a(e.value ? 1 : 0) + }), + baidu(e).on("focus", function() { + window.inputCheckTimer = setInterval(function() { + e.value.length ? (a(1), + clearInterval(window.inputCheckTimer)) : a(0) + }, 30) + }) + } + }, + SBCtoDBC: function(e) { + var t = ""; + if (e) { + for (var n = e.length, i = 0; n > i; i++) { + var o = e.charCodeAt(i); + o = o >= 65281 && 65374 >= o ? o - 65248 : o, + o = 12288 == o ? 32 : o, + t += String.fromCharCode(o) + } + return t + } + }, + hide: function() { + this.getElement().style.display = "none" + }, + show: function() { + this.getElement().style.display = "block" + }, + _analysis: function(e, t) { + return window.passport.analysis && window.passport.analysis[this.module] && window.passport.analysis[this.module][e] ? (window.passport.analysis[this.module][e](this, t), + { + preventDefault: !1, + preventEvent: !1 + }) : void 0 + }, + _hook: function(e, t) { + return window.passport.hook && window.passport.hook[this.module] && window.passport.hook[this.module][e] ? window.passport.hook[this.module][e](this, t) : { + preventDefault: !1, + preventEvent: !1 + } + }, + fireEvent: function(e, t) { + var n = this._hook(e, t) + , i = !0; + return n.preventEvent || (i = this.fire(e, t)), + !n.preventDefault && i + }, + getQueryString: function(e) { + var t = new RegExp("(^|&)" + e + "=([^&]*)(&|$)","i") + , n = window.location.search.substr(1).match(t); + return null != n ? unescape(n[2]) : "" + } + }); + var hexcase = 0 + , b64pad = "" + , chrsz = 8; + return magic.passport.login = baidu.lang.createClass(function(e) { + var t = this; + if (passport && "https" === passport._protocol) + var n = "https:"; + else + var n = window.location ? window.location.protocol.toLowerCase() : document.location.protocol.toLowerCase(); + if (t._domain = { + https: "https://passport.baidu.com", + http: "http://passport.baidu.com", + auto: "https:" === n ? "https://passport.baidu.com" : "http://passport.baidu.com", + wapAuto: "https:" === n ? "https://wappass.baidu.com" : "http://wappass.baidu.com" + }, + t.config = { + memberPass: !0, + isQuickUser: 0, + safeFlag: 0, + product: "", + idc: "", + charset: "", + loginMerge: !0, + staticPage: "", + hasRegUrl: !1, + u: "", + lang: "", + autosuggest: !1, + hasPlaceholder: !1, + registerLink: "", + authsiteLogin: "", + authsiteCfgLogin: "", + authsiteCurrentOpen: !1, + qrcode: !0, + sms: 0, + uniqueId: !1, + autoFocus: !0, + subpro: "", + setWebToClient: !1, + is_voice_sms: 0, + voice_sms_flag: 0, + userPwdLogin: 0, + qrcode_animation: 1, + qrcode_style: !0, + vcodefrom: "", + client: "", + smsAutoLogin: { + mobile: "", + encryption: "" + }, + qrloginfrom: "pc", + mustVerify: "", + clientId: "", + qrcodeCfg: {}, + sid: "", + logParams: {} + }, + baidu.extend(t.config, e), + t.urlData = { + page: "loginv5", + tpl: t.config.product || "", + subpro: t.config.subpro || "", + traceId: "pc_loginv5_" + ((new Date).getTime() / 1e3).toFixed() + }, + t.config.sid && (t.urlData.sid = t.config.sid), + t.config.logParams && t.config.logParams instanceof Object) + for (var i in t.config.logParams) + t.urlData[i] = t.config.logParams[i]; + t.config.product = t.config.product || "isnull", + t.config.qrcode = 3, + t.config.page = "loginv5", + t.config.loginType = "pwdLogin", + this.module = "login", + this.guideRandom = function() { + return "xxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e) { + var t = 16 * Math.random() | 0 + , n = "x" === e ? t : 3 & t | 8; + return n.toString(16) + }).toUpperCase() + }(); + var o = t.getQueryString("lang") || t.config.lang + , s = o ? "&lang=" + o : "" + , a = o ? "?lang=" + o : ""; + t.constant = { + CHECKVERIFYCODE: !0, + CONTAINER_CLASS: "tang-pass-login", + LABEL_FOCUS_CLASS: "pass-text-label-focus", + FOCUS_CLASS: "pass-text-input-focus", + HOVER_CLASS: "pass-text-input-hover", + ERROR_CLASS: "pass-text-input-error", + VERIFYCODE_URL_PREFIX: t._domain.https + "/cgi-bin/genimage?", + BLANK_IMG_URL: passport.apiDomain.staticDomain + "/passApi/img/small_blank.gif", + MODIFY_PWD_URL_PREFIX: t._domain.https + "/forcsdnpasschange", + GET_PASSWORD_URL: t._domain.https + "/?getpassindex&tt=" + (new Date).getTime() + "&gid=" + t.guideRandom + "&tpl=" + encodeURIComponent(t.config.product) + "&u=" + encodeURIComponent(t.config.u), + REG_URL: t.config.registerLink || t._domain.https + "/v2/?reg&tt=" + (new Date).getTime() + "&overseas=" + t.config.overseas + "&gid=" + t.guideRandom + "&tpl=" + encodeURIComponent(t.config.product) + "&u=" + encodeURIComponent(t.config.u) + s, + PROTOCAL_URL: t._domain.http + "/static/passpc-account/html/protocal.html" + a, + PERSONAL_PROTOCAL_URL: "http://privacy.baidu.com/policy", + NOCAPTCHA_URL: t._domain.auto + "/static/passpc-base/js/ld.min.js?cdnversion=" + (new Date).getTime(), + TOUCHAPIMKD_URL: t._domain.wapAuto + "/static/machine/js/api/mkd.js?cdnversion=" + (new Date).getTime(), + SUBMITFLAG: !1 + }, + t.lang = passport.err.getCurrent(t.config.lang).labelText.login, + t.hooksText = passport.err.getCurrent(t.config.lang).hooksText, + passport.data.setContext(baidu.extend({}, t.config)), + this.initialized = !1, + this.validatorInited = !1, + this.bdPsWtoken = "", + this.innerData = { + normal: {}, + phone: {} + }, + this.dataFiels = ["userName", "password"], + this.initTime = (new Date).getTime(), + window.confirmSmsVerifyWidget = null, + window.checkPhoneWidget = null, + window.checkPhoneExist = !1; + var r = /msie (\d+\.\d+)/i.test(navigator.userAgent) ? document.documentMode || +RegExp.$1 : void 0; + 6 >= r && (t.config.qrcode_animation = !1), + t.passLowerIE = r, + t.config.overseas && 1 == t.config.overseas && (this.foreignMobile = !0), + this.internation = !1, + t._insertNoCaptchaScript(), + t.initMkd(), + t.config.defaultCss && t._loadCssFileW("/passApi/css/loginv5_288e59d.css", function() {}), + t._insertScriptW("https://wappass.baidu.com/static/touch/js/lib/fingerprint.js", function() { + t.fuid = window.passFingerPrint() + }), + (t.config.memberPass || t.config.getapi) && t._initApi(), + this.smsConfig = t.config.sms + "" == "5" ? !0 : !1 + }, { + type: "magic.passport.login", + superClass: magic.passport + }).extend({ + _setComposeTemplate: function() { + var e = '
'; + return e + }, + _getIrregularField: function(e) { + var t = this + , n = { + makeText: '', + verifyCode: '', + generalError: '

', + rem: '

", + submit: '

' + t.lang.agree + '' + t.lang.baiduUserProtocal + '' + t.lang.baiduUserPersonal + "

", + forgetPwd: '' + t.lang.fgtPwd + "", + foreignMobileMsg: '

' + t.lang.foreignMobileMsg + "

", + foreignMobileWrapper: '', + foreignMobileLink: '", + foreignMobileBack: '

' + t.lang.foreignToLogin + "

", + choiceuser: '", + webtoclint: '', + is_voice_sms: '' + }; + return n[e] + }, + _getHeaderTemplate: function() { + var e = this + , t = (e.config.composeTemplate && e.config.hideLogo ? '

扫码登录

' : e.config.hideLogo ? '

' : '') + '"; + return t + }, + _getTemplate: function() { + var e = this + , t = '
' + , n = { + codeString: "", + safeFlag: e.config.safeFlag, + u: e.config.u, + isPhone: !1, + detect: "1", + gid: e.guideRandom || "", + staticPage: e.config.staticPage, + quick_user: e.config.isQuickUser, + logintype: e.config.diaPassLogin ? "dialogLogin" : "basicLogin", + logLoginType: e.config.diaPassLogin ? "pc_loginDialog" : "pc_loginBasic", + subpro: e.config.subpro, + idc: e.config.idc, + loginMerge: !0, + mkey: e.config.mkey || "" + } + , i = [{ + field: "userName", + noError: !0 + }, { + field: "password", + pwd: !0, + noError: !0 + }]; + t += e._getIrregularField("makeText"), + t += e._getHiddenField(n), + e.foreignMobile && (t += e._getIrregularField("foreignMobileMsg"), + t += e._getIrregularField("foreignMobileWrapper")); + for (var o = 0; o < i.length; o++) + t += e._getRegularField(i[o]); + return t += e._getIrregularField("verifyCode"), + t += e._getIrregularField("rem"), + e.foreignMobile && (t += e._getIrregularField("foreignMobileLink"), + t += e._getIrregularField("foreignMobileBack")), + t += e._getIrregularField("generalError"), + t += e._getIrregularField("forgetPwd"), + t += e._getIrregularField("submit"), + t += "
" + }, + _collectData: function() { + for (var e = this, t = e.innerData.normal, n = e.dataFiels, i = 0, o = n.length; o > i; i++) + t[n[i]] = e.getElement(n[i]).value; + return t + }, + _restoreData: function(e) { + for (var t = this, n = t.innerData[e ? e : "normal"], i = t.dataFiels, o = 0, s = i.length; s > o; o++) + t.getElement(i[o]).value = n[i[o]] || ""; + return n + }, + _loadCssFileW: function(e, t) { + if (window._loadedFilesW = window._loadedFilesW || {}, + window._loadedFilesW[e]) + t && t(); + else { + window._loadedFilesW[e] = !0; + var n = document.createElement("link"); + n.rel = "stylesheet", + n.type = "text/css", + n.href = passport.apiDomain.staticDomain + e, + document.getElementsByTagName("head")[0].appendChild(n), + n.readyState ? n.onreadystatechange = function() { + ("loaded" == n.readyState || "complete" == n.readyState) && (n.onreadystatechange = null, + t && t()) + } + : n.onload = function() { + t && t() + } + } + }, + _insertScriptW: function(e, t) { + if (window._loadedFilesW = window._loadedFilesW || {}, + window._loadedFilesW[e]) + t && t(); + else { + window._loadedFilesW[e] = !0; + var n = document + , i = n.createElement("SCRIPT"); + i.type = "text/javascript", + i.charset = "UTF-8", + i.readyState ? i.onreadystatechange = function() { + ("loaded" == i.readyState || "complete" == i.readyState) && (i.onreadystatechange = null, + t && t()) + } + : i.onload = function() { + t && t() + } + , + i.src = e, + n.getElementsByTagName("head")[0].appendChild(i) + } + }, + _authSiteW: function() { + var e = this + , t = e.config + , n = e.getPhoenixId("pass_phoenix_btn"); + t.authsitecssLoad && e._loadCssFileW("/passApi/css/authsite_c01e2ff.css"), + e._insertScriptW(e._domain.auto + "/phoenix/account/jsapi", function() { + window.baidu.phoenix && window.baidu.phoenix.require(t.authsiteLogin, baidu.extend(t.authsiteCfgLogin || {}, { + authsiteCurrentOpen: t.authsiteCurrentOpen, + tpl: t.product ? t.product : "", + idc: t.idc ? t.idc : "", + u: t.u, + subpro: t && t.subpro || "", + target: n, + staticPage: t.staticPage, + html: { + qzone: 'QQ帐号', + tsina: '新浪微博', + tqq: '腾讯微博', + qunar: '去哪儿', + weixin: '微信', + tianyi: '天翼', + feifan: '飞凡' + }, + onAfterRender: function() { + for (var t = baidu("#" + n + " li"), i = function(t) { + t.on("click", function(n) { + var i = { + eventType: t.attr("data-title") + "Click" + }; + e._logPass(e.urlData, i), + n.preventDefault() + }) + }, o = 0; o < t.length; o++) { + var s = baidu(".phoenix-btn-item", t[o]); + s.attr({ + title: s[0] && s[0].innerHTML || "" + }), + i(s) + } + e._logPass(e.urlData, { + eventType: "pc-authsite-show" + }) + } + })) + }) + }, + getVerifyCode: function(e) { + var t = this + , n = { + fr: "login", + loginVersion: "v4", + vcodetype: t.vcodetype || "" + }; + if (t.getElement("verifyCode").value = "", + t.$hide("verifyCodeSuccess"), + t.getElement("verifyCode_clearbtn") && t.$hide("verifyCode_clearbtn"), + t.getElement("verifyCodeImg").src = "", + e && e.length) { + t.$show("verifyCodeImgWrapper"), + t.getElement("verifyCodeImg").src = t.constant.VERIFYCODE_URL_PREFIX + e, + t.getElement("codeString").value = e; + var i = t.fireEvent("renderVerifycode", { + verifyStr: e, + verifyCodeImg: t.constant.VERIFYCODE_URL_PREFIX + e + }); + if (!i) + return + } else + passport.data.getVerifyCodeStr(n).success(function(e) { + 0 == e.errInfo.no && (t.$show("verifyCodeImgWrapper"), + t.getElement("verifyCodeImg").src = t.constant.VERIFYCODE_URL_PREFIX + e.data.verifyStr, + t.getElement("codeString").value = e.data.verifyStr, + t.fireEvent("renderVerifycode", { + verifyStr: e.data.verifyStr, + verifyCodeImg: t.constant.VERIFYCODE_URL_PREFIX + e.data.verifyStr + })) + }); + t.getElement("verifyCode_placeholder") && setTimeout(function() { + t.$show("verifyCode_placeholder") + }, 200) + }, + _getWDom: { + parent: function(e) { + return e.parentNode || e.parentElement + }, + next: function(e) { + do + e = e.nextSibling; + while (e && 1 !== e.nodeType);return e + }, + prev: function(e) { + do + e = e.previousSibling; + while (e && 1 !== e.nodeType);return e + } + }, + clearVerifyCode: function() { + var e = this; + e.$hide("verifyCodeImgWrapper"), + e.getElement("codeString").value = "" + }, + getPhoenixId: function(e) { + if (this.config.uniqueId) + return this.$getId(e); + var t = { + pass_phoenix_login: "pass-phoenix-login", + pass_phoenix_list_login: "pass-phoenix-list-login", + pass_phoenix_btn: "pass_phoenix_btn" + }; + return t[e] + }, + getPhoenixElement: function(e) { + return this.getElement(e) ? this.getElement(e) : document.getElementById(this.getPhoenixId(e)) + }, + _getTemplateOther: function() { + var e = [] + , t = this + , n = 0; + return t.config.authsiteLogin && (n = t.config.authsiteLogin.length), + e.push(''), + e.join("") + }, + getTemplateFooterBar: function() { + var e = this + , t = [] + , n = ""; + return e.storageSupport(function() { + n = localStorage.getItem("passLoginType") + }), + (1 === +e.config.userPwdLogin || "sms" === n && e.smsConfig || "normal" === n) && 1 !== +e.config.qrcodeLogin, + t.push('
' + (e.config.authsiteLogin.length > 0 ? '
' : "") + '" + e.lang.register + "
"), + t.join("") + }, + setLoginTypeTabBar: function() { + var e = this + , t = e.$getId("changeQrCodeItem") + , n = e.$getId("changePwdCodeItem") + , i = e.$getId("changeSmsCodeItem") + , o = e.$getId("QrcodeDownload"); + baidu("#" + t).on("click", function(t) { + t && t.preventDefault && t.preventDefault(), + e._changeLoginType("qrcode"), + e._logPass(e.urlData, { + eventType: "user-qrLogin-click" + }) + }), + baidu("#" + n).on("click", function(t) { + t && t.preventDefault && t.preventDefault(), + e._logPass(e.urlData, { + eventType: "user-pwdLogin-click" + }), + e._changeLoginType("normal") + }), + baidu("#" + i).on("click", function() { + /msie 6/i.test(navigator.userAgent) || /msie 7/i.test(navigator.userAgent) ? setTimeout(function() { + e._changeLoginType("sms") + }, 0) : e._changeLoginType("sms"), + e._logPass(e.urlData, { + eventType: "user-smsLogin-click" + }) + }), + baidu("#" + o).on("click", function() { + var t = { + eventType: "toDownload" + }; + e._logPass(e.urlData, t) + }) + }, + _changeTabButtonActivStatus: function(e) { + var t = this + , n = t.$getId("changeQrCodeItem") + , i = t.$getId("changePwdCodeItem") + , o = t.$getId("changeSmsCodeItem"); + t.config.composeTemplate && "qrcode" === e ? (baidu("#" + i).addClass("activ"), + baidu("#" + n).removeClass("activ"), + baidu("#" + o).removeClass("activ"), + t._logPass(t.urlData, { + eventType: "pc-pwdLogin-show" + })) : "sms" === e ? (baidu("#" + o).addClass("activ"), + baidu("#" + n).removeClass("activ"), + baidu("#" + i).removeClass("activ")) : "qrcode" === e ? (baidu("#" + n).addClass("activ"), + baidu("#" + i).removeClass("activ"), + baidu("#" + o).removeClass("activ")) : (baidu("#" + i).addClass("activ"), + baidu("#" + n).removeClass("activ"), + baidu("#" + o).removeClass("activ")) + }, + setEventFooterBar: function() { + var e = this + , t = e.$getId("footerQrcodeBtn") + , n = e.$getId("footerULoginBtn") + , i = e.$getId("regLink") + , o = e.$getId("fgtpwdLink"); + baidu("#" + t).on("click", function(i) { + i && i.preventDefault && i.preventDefault(), + e._changeLoginType("qrcode"), + baidu("#" + t).hide(), + baidu("#" + n).show() + }), + baidu("#" + n).on("click", function(i) { + i && i.preventDefault && i.preventDefault(), + e._changeLoginType("normal"), + baidu("#" + n).hide(), + baidu("#" + t).show() + }), + baidu("#" + i).on("click", function(t) { + t && t.preventDefault && t.preventDefault(), + e._logPass(e.urlData, { + eventType: "pc-register-click" + }), + window.open(e.constant.REG_URL, "_blank") + }), + baidu("#" + o).on("click", function(t) { + t && t.preventDefault && t.preventDefault(), + e._logPass(e.urlData, { + eventType: "pc-forget-click" + }), + window.open(e.constant.GET_PASSWORD_URL, "_blank") + }) + }, + _getTemplateQrcode: function() { + var e = this + , t = [] + , n = e.config.guideMapImg || "https://passport.baidu.com/passApi/img/qrcodeLoginGuide1.png" + , i = e.config.qrcodeCfg && e.config.qrcodeCfg.appHref || "https://mo.baidu.com/wuxian/?from=pass" + , o = e.config.qrcodeCfg && e.config.qrcodeCfg.appName || "百度APP" + , s = e.config.qrcodeCfg && e.config.qrcodeCfg.appIcon || "https://passport.baidu.com/passApi/img/baidu-download-icon.png" + , a = e.config.qrcodeCfg && e.config.qrcodeCfg.downLoadQrcode || "https://b.bdstatic.com/searchbox/icms/searchbox/img/code_home.png" + , r = e.config.qrcodeCfg && e.config.qrcodeCfg.disableJump || !1 + , c = e.config.composeTemplate ? "block" : "none"; + return t.push('"), + t.join("") + }, + _setEventQrcode: function() { + var e = this; + /msie 6/i.test(navigator.userAgent) ? setTimeout(function() { + e._changeLoginType("qrcode") + }, 0) : e._changeLoginType("qrcode") + }, + getChannelForUnReceiveSms: function() { + var e = this + , t = document.getElementById(e.$getId("smsPhone")); + e.config.unReceiveSmsCode = "", + e._stopChannel(), + baidu.ajax({ + url: e._domain.https + "/v3/login/getChannel", + dataType: "jsonp", + data: { + from: "up_sms_login", + data: e._SBCtoDBC(t.value) + }, + success: function(t) { + if (0 === +t.errno) { + e._logPass(e.urlData, { + eventType: "pc-unreceive-sms-show" + }), + e._ownerDialog && e._ownerDialog.hide("unHide"), + e.getElement("unRecevieSmsSendCode").innerHTML = t.captcha; + var n = ""; + t.channelCode && (n = t.channelCode + "", + n = n.replace(/\s/g, "").replace(/(.{4})/g, "$1 ")), + e.getElement("unRecevieSmsSendNumber").innerHTML = n, + e.$show(e.getElement("unRecevieSmsTip")), + passport[e.$getId("spareWData")].sign = t.channelId, + e.config.unReceiveSmsCode = t.captcha || "", + e._createChannel(t.channelId), + e.config.channelType = "unReceiveSms" + } else + passport[e.$getId("spareWData")].unicast && clearTimeout(passport[e.$getId("spareWData")].unicast), + e._setSmsGeneralError(t.errmsg) + }, + error: function() {} + }) + }, + _setChannel: function() { + var e = this; + e.config.channelType = "qrcode"; + var t = "traceId:" + e.urlData.traceId + ",logPage:" + e.urlData.page + , n = { + apiver: "v3", + tt: (new Date).getTime(), + tpl: e.config.product || "", + logPage: t + } + , i = e.getElement("qrcodeContent"); + passport[e.$getId("spareWData")] = passport[e.$getId("spareWData")] || {}, + baidu(".Qrcode-status-con", i).hide(), + e.$show(e.getElement("QrcodeMain")), + e.$show(e.getElement("QrcodeTitle")), + e.$show(e.getElement("QrcodeDownload")), + passport[e.$getId("spareWData")].loadQrcode = setTimeout(function() { + e.config.qrcode_style && (baidu(".Qrcode-status-con", i).hide(), + baidu(".refresh-title", i).hide(), + baidu(".refresh-loadout", i).show(), + e.$hide(e.getElement("QrcodeTitle")), + e.$hide(e.getElement("QrcodeDownload")), + e.$show(e.getElement("QrcodeRefresh"))) + }, 5e3); + var o = e._domain.https + "/v2/api/getqrcode?lp=pc&qrloginfrom=" + e.config.qrloginfrom + "&gid=" + (e.guideRandom || ""); + e.config.moreParams && e.config.moreParams.qrext_clientid && (o += "&qrext_clientid=" + e.config.moreParams.qrext_clientid), + baidu.ajax({ + url: o, + dataType: "jsonp", + data: n, + success: function(t) { + clearTimeout(passport[e.$getId("spareWData")].loadQrcode), + clearTimeout(passport[e.$getId("spareWData")].unicast), + passport[e.$getId("spareWData")].channelimg = (window.location ? window.location.protocol : document.location.protocol) + "//" + t.imgurl, + passport[e.$getId("spareWData")].sign = t.sign; + for (var n = baidu(".tang-pass-qrcode-img", i), o = 0, s = n.length; s > o; o++) + n.get(o).src = passport[e.$getId("spareWData")].channelimg; + setTimeout(function() { + e._createChannel(passport[e.$getId("spareWData")].sign) + }, 300) + }, + error: function() { + clearTimeout(passport[e.$getId("spareWData")].loadQrcode), + clearTimeout(passport[e.$getId("spareWData")].unicast), + e.config.qrcode_style && (baidu(".Qrcode-status-con", i).hide(), + e.$hide(e.getElement("QrcodeTitle")), + e.$hide(e.getElement("QrcodeDownload")), + e.$show(e.getElement("QrcodeError"))) + } + }) + }, + _stopChannel: function() { + var e = this; + passport[e.$getId("spareWData")] = passport[e.$getId("spareWData")] || {}, + passport[e.$getId("spareWData")].sign = "", + clearInterval(passport[e.$getId("spareWData")].timer) + }, + _createChannel: function(sign) { + var me = this + , qrcodeSign = sign + , container = me.getElement("qrcodeContent") + , qrcodeInit = baidu(".tang-pass-qrcode-init", container).get(0) + , qrcodeImg = baidu(".tang-pass-qrcode-img", qrcodeInit).get(0) + , data = { + apiver: "v3", + tt: (new Date).getTime() + }; + passport[me.$getId("spareWData")] = passport[me.$getId("spareWData")] || {}, + me.config.unReceiveSmsCode || (passport[me.$getId("spareWData")].unicast = setTimeout(function() { + baidu(".Qrcode-status-con", container).hide(), + me.$hide(me.getElement("QrcodeTitle")), + me.$hide(me.getElement("QrcodeDownload")), + me.$show(me.getElement("QrcodeError")) + }, 35e3)), + baidu.ajax({ + url: me._domain.https + "/channel/unicast?channel_id=" + passport[me.$getId("spareWData")].sign + "&tpl=" + me.config.product + "&gid=" + (me.guideRandom || ""), + dataType: "jsonp", + data: data, + success: function(d) { + if (me.config.unReceiveSmsCode || clearTimeout(passport[me.$getId("spareWData")].unicast), + d.channel_v) + try { + d.channel_v = eval("(" + d.channel_v + ")") + } catch (e) { + d.channel_v = {} + } + else + d.channel_v = {}; + if (d.channel_v.u && (d.channel_v.u = decodeURIComponent(d.channel_v.u)), + "unReceiveSms" === me.config.channelType && 0 === +d.errno && 1 === +d.channel_v) + me._logPass(me.urlData, { + eventType: "pc-smslogin-unreceive-send-" + (me.config.isPwd && me.config.isPwd < 0 ? "reg" : "login") + }), + document.getElementById(me.$getId("smsVerifyCode")).value = me.config.unReceiveSmsCode, + me.config.unReceiveSmsCode = "", + me._submitSmsForm(sign), + me.$hide(me.getElement("unRecevieSmsTip")), + me._ownerDialog && me._ownerDialog.show(); + else if (0 === +d.errno && 0 === +d.channel_v.status) { + clearInterval(passport[me.$getId("spareWData")].timer); + var data = { + bduss: d.channel_v.v, + u: encodeURIComponent(d.channel_v.u || me.config.u), + loginVersion: "v4", + qrcode: 1, + tpl: me.config.product ? me.config.product : "" + }; + passport.data.jsonp("/v3/login/main/qrbdusslogin?v=" + (new Date).getTime(), data).success(function(e) { + if (0 == e.errInfo.no) { + me.storageSupport(function() { + localStorage.setItem("passLoginType", "qrcode") + }), + me.config.loginType = "qrLogin"; + var t = me.fireEvent("loginSuccess", { + rsp: e + }); + if (!t) + return; + "yylive" === me.config.product && (passport.data.setContext(baidu.extend({}, me.config)), + passport.data.getAccessToken({ + client: "", + clientfrom: "", + tpl: "yylive ", + client_id: "Bxr73Efet8HjR5Tr0HqcgDKr" + }).success(function(e) { + var t = e.data + , n = me.fireEvent("yyLoginSuccess", { + rsp: t + }); + n && (window.location.href = rsp.channel_v.u + "?accesstoken=" + t.access_token + "&expire=" + t.expires_in) + })), + window.location.href = e.data.u + } else + me.fireEvent("loginError", { + rsp: e + }), + me._logPass(me.urlData, { + eventType: "pc-qrLogin-submit-error", + errno: e.errInfo.no + }) + }) + } else { + if (0 == d.errno && "1" == d.channel_v.status) + me.config.qrcode_style && (baidu(".Qrcode-status-con", container).hide(), + me.$hide(me.getElement("QrcodeTitle")), + me.$hide(me.getElement("QrcodeDownload")), + me.$show(me.getElement("QrcodeSuccess"))); + else if (0 == d.errno && "2" == d.channel_v.status) { + clearInterval(passport[me.$getId("spareWData")].timer); + var returnValue = me.fireEvent("loginQrcodeCancel"); + if (!returnValue) + return; + me.config.qrcode_style ? (baidu(".Qrcode-status-con", container).hide(), + baidu(".refresh-title", container).hide(), + baidu(".refresh-timeout", container).show(), + me.$hide(me.getElement("QrcodeTitle")), + me.$hide(me.getElement("QrcodeDownload")), + me.$show(me.getElement("QrcodeRefresh"))) : (qrcodeImg && (qrcodeImg.src = passport.apiDomain.staticDomain + "/passApi/img/loading.gif"), + me._setChannel(), + passport[me.$getId("spareWData")].timer = setInterval(function() { + me._setChannel() + }, 6e5)) + } + qrcodeSign == passport[me.$getId("spareWData")].sign && me._createChannel(qrcodeSign) + } + }, + error: function() { + me.config.unReceiveSmsCode || clearTimeout(passport[me.$getId("spareWData")].unicast), + me.config.qrcode_style && (baidu(".Qrcode-status-con", container).hide(), + me.$hide(me.getElement("QrcodeTitle")), + me.$hide(me.getElement("QrcodeDownload")), + me.$show(me.getElement("QrcodeError"))) + } + }) + }, + refreshQrcode: function() { + var e = this; + clearTimeout(passport[e.$getId("spareWData")].unicast); + var t = e.getElement("qrcodeContent") + , n = baidu(".tang-pass-qrcode-init", t).get(0) + , i = baidu(".tang-pass-qrcode-img", n).get(0); + i && (i.src = passport.apiDomain.staticDomain + "/passApi/img/loading.gif"), + e._setChannel(), + passport[e.$getId("spareWData")].timer = setInterval(function() { + e._setChannel() + }, 6e5) + }, + _actionQrcode: function() { + var e = this + , t = e.qrcodeDialogDom ? e.qrcodeDialogDom : this.getElement() + , n = e._getWDom.parent(t); + e._getWDom.parent(n), + passport[e.$getId("spareWData")] = passport[e.$getId("spareWData")] || {}, + (!passport[e.$getId("spareWData")].channelimg || e.config.channelType && "unReceiveSms" === e.config.channelType) && (e._setChannel(), + passport[e.$getId("spareWData")].timer = setInterval(function() { + e._setChannel() + }, 6e5)) + }, + _showQrcode: function() { + var e = this + , t = this.getElement() + , n = e._getWDom.parent(t) + , i = e._getWDom.parent(n) + , o = baidu(".pass-qrcode-btn", i).get(0); + e._getWDom.prev(t) && e.$hide(e._getWDom.prev(t)), + e.$hide("choiceuser_article").$hide(t).$show(baidu(".tang-pass-qrcode", n).get(0)), + e.$hide(e._getWDom.next(o) ? o : e._getWDom.parent(e._getWDom.parent(o))) + }, + qrcodeAnimationShow: function() { + var e = this; + e.supportCss3Anim() ? baidu(e.getElement("QrcodeMain")).css("margin-left", "0") : baidu(e.getElement("QrcodeMain")).css("margin-left", "0"), + baidu(e.getElement("QrcodeAnimation")).addClass("Qrcode-status-guideAnim") + }, + qrcodeAnimationHide: function() { + var e = this; + baidu(e.getElement("QrcodeAnimation")).removeClass("Qrcode-status-guideAnim"), + e.supportCss3Anim() ? baidu(e.getElement("QrcodeMain")).removeClass("Qrcode-animation").addClass("Qrcode-animationRight") : baidu(e.getElement("QrcodeMain")).css("margin-left", "99px") + }, + supportCss3Anim: function() { + var e = document.getElementsByTagName("body")[0].style; + return "undefined" != typeof e.animation || "undefined" != typeof e.WebkitAnimation ? !0 : !1 + }, + setqrcodeEvent: function() { + var e = this; + e.qrcodeAnimationShow(), + baidu(e.getElement("QrcodeErrorfreshBtn")).on("click", function() { + e.refreshQrcode() + }), + baidu(e.getElement("QrcodeRefreshBtn")).on("click", function() { + e.refreshQrcode() + }) + }, + getTemplateUnreceiveSms: function() { + var e = this; + e.config.unReceiveSmsTempStatus = "none"; + var t = '
'; + return t += '

' + e.lang.cantReceiveSms + '

', + t += '

' + e.lang.checkIfBlocked + '

' + e.lang.overTimeArrive + '

" + }, + _getTemplateSms: function() { + var e = this + , t = "none" + , n = '" + }, + _setEventSms: function() { + var e = this + , t = this.getElement() + , n = e._getWDom.parent(t) + , i = e._getWDom.parent(n) + , o = baidu("#" + e.$getId("sms"), i).get(0) + , s = baidu(".pass-text-input", o); + e.foreignMobile && baidu(e.getElement("smsPhoneCountryLabel")).on("click", function(t) { + var n = e.getElement("smsCountryList"); + n && "block" != n.style.display ? (e.$show(n), + baidu(e.getElement("smsPhoneCountryLabel")).addClass("pass-label-code-up")) : n && (e.$hide(n), + baidu(e.getElement("smsPhoneCountryLabel")).removeClass("pass-label-code-up")), + e._selectCountryList(e.getElement("smsPhoneWrapper")), + t.preventDefault() + }), + s.on("mouseover", function() { + var t = e.fireEvent("fieldMouseover", { + ele: baidu(this) + }); + t && baidu(this).addClass(e.constant.HOVER_CLASS) + }), + s.on("mouseout", function() { + var t = e.fireEvent("fieldMouseout", { + ele: baidu(this) + }); + t && baidu(this).removeClass(e.constant.HOVER_CLASS) + }), + s.on("keydown", function(t) { + if (13 == t.keyCode) { + t && t.preventDefault && t.preventDefault(); + var n = { + eventType: "pc-smslogin-submit-click" + }; + e._logPass(e.urlData, n), + e._submitSmsForm() + } + }); + var a = baidu(e.getElement("smsPhone")); + a.on("focus", function() { + e.initialized || e._initApi(); + var t = e.fireEvent("fieldFocus", { + ele: baidu(this) + }); + if (t) { + baidu(this).addClass(e.constant.FOCUS_CLASS), + baidu(this).removeClass(e.constant.ERROR_CLASS); + var n = document.getElementById(e.$getId("smsRegPromptWrapper")) + , i = document.getElementById(e.$getId("smsloginPromptWrapper")) + , o = document.getElementById(e.$getId("smsSecondPromptWrapper")); + n && e.$hide(n), + i && e.$hide(i), + o && e.$hide(o) + } + }), + a.on("keydown", function() { + if (!e.isSendSmsInput) { + e.isSendSmsInput = !0; + var t = { + eventType: "pc-smslogin-input" + }; + e._logPass(e.urlData, t) + } + }); + var r = baidu(e.getElement("smsVerifyCode")); + r.on("focus", function() { + e.initialized || e._initApi(); + var t = e.fireEvent("fieldFocus", { + ele: baidu(this) + }); + t && (baidu(this).addClass(e.constant.FOCUS_CLASS), + baidu(this).removeClass(e.constant.ERROR_CLASS)) + }), + r.on("keydown", function() { + if (!e.isSendSmsCodeInput) { + e.isSendSmsCodeInput = !0; + var t = { + eventType: "pc-smslogin-code-input" + }; + e._logPass(e.urlData, t) + } + }), + s.on("blur", function() { + if (this.value) { + var t = e.fireEvent("fieldBlur", { + ele: baidu(this) + }); + if (!t) + return; + e.config.smsAutoLogin.encryption || ("username" === this.name ? e._validatorPhoneFn(this) : e._validatorSmsFn(this)) + } + baidu(this).removeClass(e.constant.FOCUS_CLASS) + }), + baidu("#" + e.$getId("smsTimer"), o).on("click", function(t) { + var n = { + eventType: "pc-smslogin-send-click" + }; + e._logPass(e.urlData, n), + e.config.voice_sms_flag = 0, + t.preventDefault(), + e._checkRegPhone() + }), + baidu("#" + e.$getId("smsSubmit"), o).on("click", function(t) { + e._logPass(e.urlData, { + eventType: "pc-smsLogin-submit" + }), + t && t.preventDefault && t.preventDefault(), + e._submitSmsForm() + }), + baidu(e.getElement("smsSwitchWrapper")).on("click", function() { + /msie 6/i.test(navigator.userAgent) || /msie 7/i.test(navigator.userAgent) ? setTimeout(function() { + e._changeLoginType("sms") + }, 0) : e._changeLoginType("sms"), + e._logPass(e.urlData, { + eventType: "user-smsLogin-click" + }) + }), + baidu(e.getElement("sms_btn_back")).on("click", function() { + e._changeLoginType("normal"), + e.getElement("password") && e._doFocus("password") + }), + baidu(document.getElementById("getVoiceSms")).on("click", function(t) { + e.config.voice_sms_flag = 1, + t.preventDefault(), + e._checkRegPhone() + }), + baidu(e.getElement("smsUnReceiveTipWrapper")).on("click", function(t) { + e._logPass(e.urlData, { + eventType: "pc-smslogin-unreceive-sms-btn-click" + }), + t.preventDefault(), + e.config.isPwd && 1 === +e.config.isPwd ? e.getChannelForUnReceiveSms() : (e._logPass(e.urlData, { + eventType: "pc-unreceive-sms-show-reg" + }), + e._ownerDialog && e._ownerDialog.hide("unHide"), + e.$show(e.getElement("unRecevieSmsTip"))) + }), + baidu(e.getElement("closeUnRecevieSmsTip")).on("click", function(t) { + t.preventDefault(), + e.$hide(e.getElement("unRecevieSmsTip")), + e._ownerDialog && e._ownerDialog.show() + }), + baidu(e.getElement("unRecevieSmsChangeLogin")).on("click", function(t) { + e._logPass(e.urlData, { + eventType: "pc-smslogin-unreceive-sms-change-login-click" + }), + t.preventDefault(), + e.$hide(e.getElement("unRecevieSmsTip")), + e._ownerDialog && e._ownerDialog.show(); + var n = "qrcode"; + e.config.isPwd && 1 === +e.config.isPwd && (n = "normal"), + e._changeLoginType(n) + }) + }, + _setSmsGeneralError: function(e) { + this.getElement("smsError").innerHTML = e + }, + _sendVcode: function(e, t) { + var n, i = e || this, o = (i.config.voice_sms_flag, + document.getElementById(i.$getId("smsPhone"))), s = i.getElement("smsPhoneCountryLabel") ? baidu(i.getElement("smsPhoneCountryLabel")).attr("data-countrycode") || "" : "", a = 60, r = baidu("#" + i.$getId("sms")).get(0); + if (i.config.smsAutoLogin.encryption || i._validatorPhoneFn(o)) { + baidu("#" + i.$getId("smsRegPromptBtn"), r).off("click"), + baidu("#" + i.$getId("smsRegPromptBtn"), r).on("click", function(e) { + e.preventDefault() + }), + baidu("#" + i.$getId("smsTimer"), r).off("click"), + baidu("#" + i.$getId("smsTimer"), r).on("click", function(e) { + e.preventDefault() + }), + baidu("#" + i.$getId("smsTimer"), r).removeClass("pass-item-timer"), + baidu("#" + i.$getId("smsTimer"), r).addClass("pass-item-time-timing"); + var c = hex_md5(o.value + "Moonshadow"); + c = c.replace(/o/, "ow").replace(/d/, "do").replace(/a/, "ad"), + c = c.replace(/h/, "ha").replace(/s/, "sh").replace(/n/, "ns").replace(/m/, "mo"); + var l = { + gid: i.guideRandom || "", + username: i._SBCtoDBC(o.value), + countrycode: s, + bdstoken: i.bdPsWtoken, + tpl: i.config.product ? i.config.product : "", + loginVersion: "v4", + flag_code: i.config.voice_sms_flag, + client: i.config.client, + mkey: i.config.mkey || "", + moonshad: c + }; + t && t.ds && t.tk && (l.ds = t.ds || "", + l.tk = t.tk || ""), + l.supportdv = "1", + l.dv = document.getElementById("dv_Input") ? document.getElementById("dv_Input").value : window.LG_DV_ARG && window.LG_DV_ARG.dvjsInput || "", + i.config.smsAutoLogin.encryption && (l.username = i._SBCtoDBC(i.config.smsAutoLogin.encryption), + l.mobileencryption = 1); + var d = ""; + d = 1 === +i.config.voice_sms_flag ? window.location.protocol.toLowerCase() + "//wappass.baidu.com/wp/api/login/sms?is_voice_sms=" + i.config.voice_sms_flag : i._domain.auto + "/v2/api/senddpass", + passport.data.jsonp(d, l).success(function(e) { + if (0 === +i.config.voice_sms_flag && 0 !== +e.data.errno || 1 === +i.config.voice_sms_flag && 0 !== +e.errInfo.no) { + if (18 === +e.data.errno || 19 === +e.data.errno || 50020 === +e.errInfo.no || 50021 === +e.errInfo.no) + if ("1" === e.data.isslide) + i.loginPassMkd.initVcode(), + i._ownerDialog && i._ownerDialog.hide("unHide"); + else { + var t = i.constant.VERIFYCODE_URL_PREFIX + e.data.vcodestr; + i.getElement("smsHiddenFields_smsVcodesign").value = e.data.vcodesign, + i.getElement("smsHiddenFields_smsVcodestr").value = e.data.vcodestr, + confirmSmsVerifyWidget ? (i.getElement("confirmVerifyCodeImg").src = t, + i.getElement("confirmVerifyCode").value = "", + i._ownerDialog && i._ownerDialog.hide("unHide"), + confirmSmsVerifyWidget.show()) : passport._load(i._domain.auto + "/passApi/js/uni_wrapper.js", !0, function() { + window.confirmSmsVerifyWidget = passport.pop.init({ + type: "confirmWidget", + tangram: !0, + titleText: "安全验证", + width: 490, + apiOpt: { + Continue: "确定", + contentHTML: '

请填写图中的验证码

换一张

' + }, + onRender: function() { + baidu(confirmSmsVerifyWidget.getElement("confirmWidget_footer")).addClass("pass-confirm-verifyWidget-bottom"), + i.config.hasPlaceholder && i._getPlaceholder([{ + label: "confirmVerifyCode", + placeholder: "verifyCode" + }]), + baidu(i.getElement("confirmVerifyCodeChange")).on("click", function() { + baidu(i.getElement("confirmVerifyCodeImg")).attr("src", i.constant.VERIFYCODE_URL_PREFIX + i.getElement("smsHiddenFields_smsVcodestr").value + "&v=" + (new Date).getTime()) + }), + baidu(i.getElement("confirmVerifyCode")).on("keyup", function() { + baidu(i.getElement("confirmVerifyCode")).removeClass("pass-text-input-error"), + baidu(i.getElement("confirmVerifyCodeError")).hide(), + baidu(i.getElement("confirmVerifyCodeError")).get(0).innerHTML = "" + }), + baidu(i.getElement("confirmVerifyCode")).on("change", function() { + i.getElement("confirmVerifyCode").value = i.getElement("confirmVerifyCode").value.replace(/\s/g, "") + }) + }, + onConfirmClose: function() { + baidu(i.getElement("confirmVerifyCodeError")).hide(), + baidu(i.getElement("confirmVerifyCodeError")).get(0).innerHTML = "", + confirmSmsVerifyWidget.hide(), + i._ownerDialog && i._ownerDialog.show() + }, + onConfirmCancel: function() {}, + onConfirmContinue: function() { + if ("" == i.getElement("confirmVerifyCode").value) + return baidu(i.getElement("confirmVerifyCode")).addClass("pass-text-input-error"), + baidu(i.getElement("confirmVerifyCodeError")).show(), + void (baidu(i.getElement("confirmVerifyCodeError")).get(0).innerHTML = i.lang.confirmVerCodeEmpty); + var t = document.getElementById("dv_Input") + , c = hex_md5(o.value + "Moonshadow"); + c = c.replace(/o/, "ow").replace(/d/, "do").replace(/a/, "ad"), + c = c.replace(/h/, "ha").replace(/s/, "sh").replace(/n/, "ns").replace(/m/, "mo"); + var l = { + gid: i.guideRandom || "", + username: i._SBCtoDBC(o.value), + countrycode: s, + bdstoken: i.bdPsWtoken, + tpl: i.config.product ? i.config.product : "", + vcodestr: i.getElement("smsHiddenFields_smsVcodestr").value, + vcodesign: i.getElement("smsHiddenFields_smsVcodesign").value, + verifycode: i._SBCtoDBC(i.getElement("confirmVerifyCode").value), + flag_code: i.config.voice_sms_flag, + loginVersion: "v4", + mkey: i.config.mkey || "", + moonshad: c, + dv: t ? t.value : window.LG_DV_ARG && window.LG_DV_ARG.dvjsInput || "" + }; + i.config.smsAutoLogin.encryption && (l.username = i._SBCtoDBC(i.config.smsAutoLogin.encryption), + l.mobileencryption = 1); + var d = ""; + d = 1 == i.config.voice_sms_flag ? window.location.protocol.toLowerCase() + "//wappass.baidu.com/wp/api/login/sms?is_voice_sms=" + i.config.voice_sms_flag : i._domain.auto + "/v2/api/senddpass", + passport.data.jsonp(d, l).success(function(t) { + var o = baidu(i.getElement("confirmVerifyCodeError")); + if (0 == i.config.voice_sms_flag && 0 == t.data.errno || 1 == i.config.voice_sms_flag && 0 == t.errInfo.no) { + if (1 == i.config.voice_sms_flag) { + var s = 15; + document.getElementById("getVoiceSms").disabled = !0, + n = setInterval(function() { + var e = document.getElementById("getVoiceSms"); + if (e) { + var t = i.$getId("smsTimer"); + if (0 == --s) { + clearInterval(n); + var o = baidu("#" + t, r); + o.removeClass("pass-item-time-timing"), + o.addClass("pass-item-timer"), + e.disabled = !1, + e.value = i.lang.resend + "语音验证码", + document.getElementById(t).innerHTML = i.lang.resend, + s = 60 + } else { + var o = baidu("#" + t, r); + o.addClass("pass-item-time-timing"), + o.removeClass("pass-item-timer"), + e.value = "已发送" + s + "s" + } + } + }, 1e3) + } else + document.getElementById(i.$getId("smsTimer")).disabled = !0, + n = setInterval(function() { + var e = i.$getId("smsTimer") + , t = document.getElementById(e); + if (t) + if (0 == --a) { + clearInterval(n); + var o = baidu("#" + e, r); + o.removeClass("pass-item-time-timing"), + o.addClass("pass-item-timer"), + document.getElementById(i.$getId("smsTimer")).disabled = !1, + t.innerHTML = i.lang.resend, + a = 60 + } else { + var o = baidu("#" + e, r); + o.addClass("pass-item-time-timing"), + o.removeClass("pass-item-timer"), + 49 === a && (i._logPass(i.urlData, { + eventType: "pc-smslogin-unreceive-btn-show" + }), + i.$show(i.getElement("smsUnReceiveWrapper"))), + t.innerHTML = a + "s" + } + }, 1e3); + o.hide(), + o.get(0).innerHTML = "", + confirmSmsVerifyWidget.hide(), + i._ownerDialog && i._ownerDialog.show() + } else + 20 == t.data.errno || 21 == t.data.errno ? (baidu(i.getElement("confirmVerifyCode")).addClass("pass-text-input-error"), + o.show(), + o.get(0).innerHTML = t.data.msg, + i.getElement("confirmVerifyCodeImg").src = i.constant.VERIFYCODE_URL_PREFIX + t.data.vcodestr, + i.getElement("confirmVerifyCode").value = "", + i.getElement("smsHiddenFields_smsVcodesign").value = t.data.vcodesign, + i.getElement("smsHiddenFields_smsVcodestr").value = t.data.vcodestr) : 27 == e.data.errno ? document.location.href = "https://passport.baidu.com/v2/?reg&overseas=" + i.config.overseas + "&tpl=" + i.config.product + "&u=" + encodeURIComponent(i.config.u) : (o.hide(), + confirmSmsVerifyWidget.hide(), + i._ownerDialog && i._ownerDialog.show(), + i._setSmsGeneralError(1 == i.config.voice_sms_flag ? t.errInfo.msg : t.data.msg)) + }) + } + }), + i._ownerDialog && i._ownerDialog.hide("unHide"), + confirmSmsVerifyWidget.show() + }) + } + else + 27 == e.data.errno ? document.location.href = "https://passport.baidu.com/v2/?reg&overseas=" + i.config.overseas + "&tpl=" + i.config.product + "&u=" + encodeURIComponent(i.config.u) : i._setSmsGeneralError(1 !== +i.config.voice_sms_flag ? e.data.msg : e.errInfo.msg); + baidu("#" + i.$getId("smsTimer"), r).addClass("pass-item-timer"), + baidu("#" + i.$getId("smsTimer"), r).removeClass("pass-item-time-timing"), + document.getElementById(i.$getId("smsTimer")).innerHTML = i.lang.resend + } else if (1 == i.config.voice_sms_flag) { + var c = 15; + document.getElementById("getVoiceSms").disabled = !0, + n = setInterval(function() { + if (0 == --c) { + clearInterval(n); + var e = baidu("#" + i.$getId("smsTimer"), r); + e.removeClass("pass-item-time-timing"), + e.addClass("pass-item-timer"), + document.getElementById("getVoiceSms").disabled = !1, + document.getElementById("getVoiceSms").value = i.lang.resend + "语音验证码", + document.getElementById(i.$getId("smsTimer")).innerHTML = i.lang.resend, + c = 15 + } else { + var e = baidu("#" + i.$getId("smsTimer"), r); + e.addClass("pass-item-time-timing"), + e.removeClass("pass-item-timer"), + document.getElementById("getVoiceSms").value = "已发送" + c + "s" + } + }, 1e3) + } else + document.getElementById(i.$getId("smsTimer")).disabled = !0, + n = setInterval(function() { + var e = document.getElementById(i.$getId("smsTimer")); + if (e) + if (0 == --a) { + clearInterval(n); + var t = baidu("#" + i.$getId("smsTimer"), r); + t.removeClass("pass-item-time-timing"), + t.addClass("pass-item-timer"), + document.getElementById(i.$getId("smsTimer")).disabled = !1, + e.innerHTML = i.lang.resend, + a = 60 + } else { + var t = baidu("#" + i.$getId("smsTimer"), r); + t.addClass("pass-item-time-timing"), + t.removeClass("pass-item-timer"), + 49 === a && (i._logPass(i.urlData, { + eventType: "pc-smslogin-unreceive-btn-show" + }), + i.$show(i.getElement("smsUnReceiveWrapper"))), + e.innerHTML = a + "s" + } + }, 1e3); + baidu("#" + i.$getId("smsTimer"), r).on("click", function(e) { + i.config.voice_sms_flag = 0, + e.preventDefault(), + i._checkRegPhone() + }) + }) + } + }, + _validatorPhoneFn: function(e) { + e.value = e.value.replace(/\s/g, ""); + var t = this; + if ("" == e.value) + return t._setSmsGeneralError(t.lang.fillPhonePls), + baidu(e).addClass(t.constant.ERROR_CLASS), + !1; + if (t.getElement("smsPhoneCountryLabel") && "" != baidu(t.getElement("smsPhoneCountryLabel")).attr("data-countrycode")) { + if (!new RegExp(/^(\d)*$/).test(t._SBCtoDBC(e.value))) + return t._setSmsGeneralError(t.lang.foreignMobileError), + baidu(e).addClass(t.constant.ERROR_CLASS), + !1 + } else if (!new RegExp(/^1[3456789]\d{9}$/).test(t._SBCtoDBC(e.value))) + return t._setSmsGeneralError(t.lang.foreignMobileError), + baidu(e).addClass(t.constant.ERROR_CLASS), + !1; + return t._setSmsGeneralError(""), + baidu(e).removeClass(t.constant.ERROR_CLASS), + !0 + }, + _validatorSmsFn: function(e) { + var t = this; + return "" == e.value ? (t._setSmsGeneralError(t.lang.fillVerifyCodePls), + baidu(e).addClass(t.constant.ERROR_CLASS), + !1) : (t._setSmsGeneralError(""), + !0) + }, + _postSmsData: function(e) { + var t = this; + e.countrycode = t.getElement("smsPhoneCountryLabel") ? baidu(t.getElement("smsPhoneCountryLabel")).attr("data-countrycode") || "" : "", + e.token = t.bdPsWtoken, + e.loginVersion = "v4", + passport.data.traceID && passport.data.traceID.startFlow && passport.data.traceID.startFlow("login"), + e.dv = document.getElementById("dv_Input") ? document.getElementById("dv_Input").value : window.LG_DV_ARG && window.LG_DV_ARG.dvjsInput || "", + e = baidu.extend(e, t.fuid || {}), + passport.data.login(e).success(function(e) { + if (e.loginType = "sms", + 0 == e.errInfo.no) { + t.storageSupport(function() { + localStorage.setItem("passLoginType", "sms") + }), + t.config.loginType = "smsLogin"; + var n = t.fireEvent("loginSuccess", { + rsp: e + }); + if (!n) + return; + window.location.href = e.data.u + } else { + t.getElement("smsSubmit").style.color = "#fff"; + var n = t.fireEvent("loginError", { + rsp: e + }); + if (t._logPass(t.urlData, { + eventType: "pc-smsLogin-submit-error", + errno: e.errInfo.no + }), + !n) + return; + t._setSmsGeneralError(4 == e.errInfo.no ? t.lang.captchaErr : e.errInfo.msg), + (3 == e.errInfo.no || 4 == e.errInfo.no) && t._clearInput("smsVerifyCode") + } + var i = { + eventType: "pc-smslogin-post-success" + } + , o = baidu.extend({}, t.urlData); + o.errno = e.errInfo.no, + t._logPass(o, i) + }) + }, + smsLoginSubmit: function(e) { + var t = this + , e = e || {} + , n = baidu.form.json(t.getElement("smsForm")); + e.errInfo && 3 == e.errInfo.no ? passport.data.post("/v2/unite-bind", { + username: e.data.username || "", + password: n.password, + countrycode: t.getElement("smsPhoneCountryLabel") ? baidu(t.getElement("smsPhoneCountryLabel")).attr("data-countrycode") || "" : "", + sms: 1, + apiver: "v3", + loginVersion: "v4", + token: e.data.token || "" + }).success(function() { + t._postSmsData(n) + }) : t._postSmsData(n) + }, + _submitSmsForm: function(e) { + function t() { + n._postSmsData(a) + } + var n = this + , i = document.getElementById(n.$getId("smsPhone")) + , o = document.getElementById(n.$getId("smsVerifyCode")); + if (!n.config.smsAutoLogin.encryption && !n._validatorPhoneFn(i)) + return void i.focus(); + if (n._validatorSmsFn(o)) { + var s = n.fireEvent("beforeSubmit"); + if (s) { + n.getElement("smsSubmit").style.color = "#9ebef4"; + var a = baidu.form.json(n.getElement("smsForm")); + a.password = n._SBCtoDBC(a.password), + a.username = n._SBCtoDBC(a.username), + a.FP_UID = n._getCookie("FP_UID") || "", + a.FP_INFO = window.PP_FP_INFO || "", + a.client = n.config.client, + a.isupsms = e ? 1 : "", + a.channelid = e || "", + n.config.smsAutoLogin.encryption && (a.username = encodeURIComponent(encodeURIComponent(n.config.smsAutoLogin.encryption)), + a.mobileencryption = 1), + "phoenix" === n.config.source && (a.isfromphoenix = 1), + n.loginConnect({ + username: a.username, + password: a.password, + countrycode: n.getElement("smsPhoneCountryLabel") ? baidu(n.getElement("smsPhoneCountryLabel")).attr("data-countrycode") || "" : "", + smsVcode: a.password, + isdpass: 1, + sms: 1 + }, { + fail: function(e) { + n._setSmsGeneralError(e) + } + }, t) + } + } + }, + _setEventChoiceUser: function() { + var e = this + , t = function() { + baidu(e.getElement()).removeClass("tang-pass-login-hide"), + e.$show(e.getElement()).$hide("choiceuser_article") + } + , n = function() { + baidu(e.getElement()).removeClass("tang-pass-login-hide"), + e.$show(e.getElement()).$hide("choiceuser_article"), + e.submit() + }; + baidu(e.getElement("choiceuser_btn_username")).on("click", function(t) { + e.getElement("loginMerge").value = "false", + n(t) + }), + baidu(e.getElement("choiceuser_btn_mobile")).on("click", function(t) { + e.getElement("isPhone").value = "true", + e.getElement("loginMerge").value = "false", + n(t) + }), + baidu(e.getElement("choiceuser_btn_back")).on("click", function(e) { + e.preventDefault(), + t() + }) + }, + _getToken: function(e) { + var t = this; + passport[t.$getId("spareWData")] = passport[t.$getId("spareWData")] || {}, + passport.data.getApiInfo({ + apiType: "login", + loginVersion: "v4", + gid: t.guideRandom || "" + }).success(function(n) { + t.bdPsWtoken = n.data.token, + e && e(t) + }) + }, + _getRSA: function(e) { + var t = this; + passport.data.getRsaKey({ + gid: t.guideRandom || "", + loginVersion: "v4" + }).success(function(t) { + t.errInfo.no || 0 == t.errInfo.no || (t = t.data); + var n = new passport.lib.RSA; + n.setKey(t.pubkey), + e && e({ + RSA: n, + rsakey: t.key + }) + }) + }, + _changeLoginType: function(e) { + var t = this + , n = this.getElement() + , i = t._getWDom.parent(n) + , o = t._getWDom.parent(i); + t.getElement("qrcode"), + t.getElement("sms"), + baidu(".tang-pass-login-phoenix", o).get(0), + t._changeTabButtonActivStatus(e); + var s = t.config.composeTemplate ? { + normal: { + $btn: baidu(".pass-normal-btn", t.getPhoenixElement("pass_phoenix_list_login")), + $ele: baidu(t.getElement("form")) + }, + sms: { + $btn: baidu(".pass-sms-btn", t.getPhoenixElement("pass_phoenix_list_login")), + $ele: baidu(t.getElement("sms")) + } + } : { + normal: { + $btn: baidu(".pass-normal-btn", t.getPhoenixElement("pass_phoenix_list_login")), + $ele: baidu(t.getElement("form")).parent() + }, + sms: { + $btn: baidu(".pass-sms-btn", t.getPhoenixElement("pass_phoenix_list_login")), + $ele: baidu(t.getElement("sms")) + }, + qrcode: { + $btn: baidu(".pass-qrcode-btn", t.getPhoenixElement("pass_phoenix_list_login")), + $ele: baidu(t.getElement("qrcode")) + } + }; + choiceuser = t.getElement("choiceuser_article"), + e = e || "normal"; + var a = { + normal: "pwdLogin", + qrcode: "qrLogin", + sms: "smsLogin" + }; + t._logPass(t.urlData, { + eventType: "pc-" + (a[e] || e) + "-show" + }), + t._logPass(t.urlData, { + eventType: "pc-" + e + "login-show" + }), + "sms" === e && (t.isSendSmsCodeInput = !1, + t.isSendSmsInput = !1), + choiceuser && t.$hide("choiceuser_article"); + var r = t.fireEvent("changeLoginType", { + loginType: e, + currentLoginType: t.currentLoginType || "" + }); + if (r) { + for (var c in s) + s[c].$ele && s[c].$ele.length > 0 && (c == e ? t.$show(s[c].$ele[0]) : t.$hide(s[c].$ele[0])); + "qrcode" === e ? t._actionQrcode() : "sms" === e && t.$hide(t.getElement("smsUnReceiveWrapper")), + t.currentLoginType = e + } + }, + _doFocus: function(e) { + var t = this; + t.config.autoFocus && ("string" == (typeof e).toLowerCase() && t.getElement(e) ? t.getElement(e).focus() : e.focus()) + }, + _clearInput: function(e) { + var t = this + , n = t.getElement(e) + , i = t.getElement(e + "_placeholder") + , o = t.getElement(e + "_clearbtn"); + n && (i && t.$show(i), + o && t.$hide(i), + n.value = "", + t._doFocus(n)) + }, + _insertAfterW: function(e, t) { + var n = this + , i = n._getWDom.parent(t); + i.lastChild == t ? i.appendChild(e) : i.insertBefore(e, n._getWDom.next(t)) + }, + _insertBefore: function(e, t) { + var n = this + , i = n._getWDom.parent(t); + i.insertBefore(e, t) + }, + initMkd: function() { + var e = this; + e._insertScriptW(e.constant.TOUCHAPIMKD_URL, function() { + if (window.PassMachine && window.PassMachine.mkd) { + var t = window.PassMachine.mkd; + e.loginPassMkd = new t({ + maskModule: !0, + ak: "1e3f2dd1c81f2075171a547893391274", + verifySuccessFn: function(t) { + e.loginPassMkd.removeMask(), + e._ownerDialog && e._ownerDialog.show(), + e.mkdVerifySuccessCallback(t) + }, + closeFn: function() { + e._ownerDialog && e._ownerDialog.show() + } + }) + } + }) + }, + mkdVerifySuccessCallback: function(e) { + var t = this; + "mkdDataLoginFn" === t.currentPath ? (t.getElement("submit").disabled = !0, + t.getElement("submit").value = t.lang.logining, + t.getElement("submit").style.color = "#9ebef4", + t.loginFn(e, t.histroyData)) : "mkdDataSendVcode" === t.currentPath && t._sendVcode(null, e) + }, + _insertNoCaptchaScript: function() { + var e = this; + e._insertScriptW(e.constant.NOCAPTCHA_URL, function() {}) + }, + _checkCapsLock: function() { + var e = this + , t = baidu(e.getElement("password")); + t.on("keypress", function(t) { + var n = t || window.event + , i = n.keyCode || n.which + , o = n.shiftKey || 16 == i || !1 + , s = document.getElementById(e.$getId("caps")); + if (i >= 65 && 90 >= i && !o || i >= 97 && 122 >= i && o) + if (s) + e.$show(s); + else { + var a = document.createElement("span"); + a.id = e.$getId("caps"), + a.innerHTML = "大小写锁定已打开"; + var r = document.getElementById(e.$getId("passwordWrapper")); + "static" == r.style.position && (r.style.position = "relative"), + r.style.zIndex = r.style.zIndex ? r.style.zIndex + 1 : 20, + a.style.cssText = 'position:absolute;left:60px;clear:both;top:25px;width:103px;height:37px;font-size:12px;line-height:45px;z-index:20;text-align:center;background:url("' + passport.apiDomain.staticDomain + '/passApi/img/caps.gif") no-repeat 0 0;', + r.appendChild(a) + } + else + s && e.$hide(s) + }), + t.on("blur", function() { + var t = document.getElementById(e.$getId("caps")); + t && e.$hide(t) + }) + }, + _checkRegPhone: function() { + var e = this + , t = e.getElement("smsPhoneCountryLabel") ? baidu(e.getElement("smsPhoneCountryLabel")).attr("data-countrycode") || "" : "" + , n = document.getElementById(e.$getId("smsPhone")) + , i = e.config.smsAutoLogin.encryption || ""; + (i || e._validatorPhoneFn(n)) && passport.data.getphonestatus({ + gid: e.guideRandom || "", + phone: e._SBCtoDBC(i ? i : n.value), + loginVersion: "v4", + countrycode: t, + mobileencryption: i ? 1 : "" + }).success(function(i) { + var o = e.fireEvent("_checkRegPhone", { + rsp: i + }); + if (o) + if (0 == i.errInfo.no) + e.config.isPwd = +i.errInfo.isPwd || 0, + baidu(e.getElement("unRecevieSmsUnReg")).hide(), + baidu(e.getElement("unRecevieSmsReged")).show(), + e.config.sendVcodeBefore && "function" == typeof e.config.sendVcodeBefore ? e.config.sendVcodeBefore(e, e.mkdDataSendVcode, function() { + n.value = "", + n.focus() + }) : e.bdPsWtoken ? e.mkdDataSendVcode() : e._getToken(e.mkdDataSendVcode); + else if (3 === +i.errInfo.no && "1" === i.data.jumpReg) { + baidu(e.getElement("unRecevieSmsReged")).hide(), + baidu(e.getElement("unRecevieSmsUnReg")).show(); + var s = document.getElementById(e.$getId("smsSecondPromptWrapper")) + , a = document.getElementById(e.$getId("smsPhoneWrapper")); + if (s) + e.$show(s), + e.getElement("smsSecondPromptBtn").focus(); + else { + var r = document.createElement("div"); + r.id = e.$getId("smsSecondPromptWrapper"), + r.setAttribute("class", "pass-form-sms-checkphone"), + r.style.cssText = 'position:absolute;clear:both;color:#826f33;z-index:999;font-size:12px;width:211px;height:71px;padding:16px 16px 11px 13px;background:url("' + passport.apiDomain.staticDomain + '/passApi/img/smsRegphone.png") 0px 0px no-repeat;right:0px;', + r.innerHTML = '

手机号未注册或已被运营商二次放号,请重新注册新帐号。

', + a.appendChild(r), + e.getElement("smsSecondPromptBtn").focus() + } + baidu(e.getElement("smsSecondPromptBtn")).on("click", function(t) { + e.getElement("smsSecondPromptBtn") && baidu(e.getElement("smsSecondPromptBtn")).hide(), + t.preventDefault(), + window.location.href = e.constant.REG_URL + }) + } else if (3 === +i.errInfo.no) { + e.config.isPwd = -1, + baidu(e.getElement("unRecevieSmsReged")).hide(), + baidu(e.getElement("unRecevieSmsUnReg")).show(); + var c = e.config.voice_sms_flag + , l = document.getElementById(e.$getId("smsRegPromptWrapper")) + , a = document.getElementById(e.$getId("smsPhoneWrapper")); + if (l) + e.$show(l), + e.getElement("smsRegPromptBtn").focus(); + else { + var r = document.createElement("div"); + r.id = e.$getId("smsRegPromptWrapper"), + r.setAttribute("class", "pass-form-sms-checkphone"), + r.style.cssText = 'position:absolute;clear:both;color:#826f33;z-index:999;font-size:12px;width:211px;height:75px;padding:16px 16px 11px 13px;background:url("' + passport.apiDomain.staticDomain + '/passApi/img/smsRegphone.png") 0px 0px no-repeat;right:0px;', + r.innerHTML = '

您的手机号码尚未注册或未开启手机号登录,点击注册,帮您注册新的百度帐号

', + a.appendChild(r), + e.getElement("smsRegPromptBtn").focus() + } + baidu(e.getElement("smsRegPromptBtn")).on("click", function(i) { + e.config.voice_sms_flag = c, + e.getElement("smsRegPromptWrapper") && baidu(e.getElement("smsRegPromptWrapper")).hide(), + i.preventDefault(), + "" != t ? window.location.href = e.constant.REG_URL : e.config.sendVcodeBefore && "function" == typeof e.config.sendVcodeBefore ? e.config.sendVcodeBefore(e, e.mkdDataSendVcode, function() { + n.value = "", + n.focus() + }) : e.bdPsWtoken ? e.mkdDataSendVcode() : e._getToken(e.mkdDataSendVcode) + }), + e.config.voice_sms_flag = 0 + } else + e.config.voice_sms_flag = 0, + e._setSmsGeneralError(i.errInfo.msg) + }) + }, + mkdDataSendVcode: function(e) { + var t = e || this; + if (t.loginPassMkd && t.loginPassMkd.getDataAsync) { + t.currentPath = "mkdDataSendVcode"; + var n = {}; + t.loginPassMkd.getDataAsync(function(e) { + n.ds = e.ds || "xxx_loginv4", + n.tk = e.tk || "xxx_loginv4", + t._sendVcode(null, n) + }) + } else + t._sendVcode() + }, + changeSuggestView: function(e) { + var t = this; + t.suggestionDom && e.list && ("hide" == e.list ? t.$hide(t.suggestionDom) : "show" == e.list && t.$show(t.suggestionDom)), + t.selectBtn && e.btn && ("close" == e.btn ? (baidu(t.selectBtn).removeClass("open"), + baidu(t.getElement("userName")).addClass("open"), + t.$show(t.selectBtn)) : "open" == e.btn ? (baidu(t.selectBtn).addClass("open"), + baidu(t.getElement("userName")).addClass("open"), + t.$show(t.selectBtn)) : "hide" == e.btn ? (t.$hide(t.selectBtn), + baidu(t.getElement("userName")).removeClass("open")) : e.btn + "" == "show" && (t.$show(t.selectBtn), + baidu(t.getElement("userName")).addClass("open")), + t.$hide(t.selectBtn)) + }, + _suggestion: function(e) { + var t = this + , n = [] + , i = baidu("#" + t.$getId("userName"), t.getElement()) + , o = ["qq.com", "163.com", "126.com", "sohu.com", "sina.com", "gmail.com", "21cn.com", "hotmail.com", "vip.qq.com", "yeah.net", "139.com"] + , s = /^([a-zA-Z0-9_.\-+]+)([@]?[a-zA-Z0-9_\-*]*[.]?[a-zA-Z*]*[.]?[a-zA-Z*]*)$/ + , a = function(e, t) { + var n = e; + return e.substr(0, e.indexOf("@") - 1).length > t.maxlength && (n = e.substr(0, t.maxlength - 4) + "…" + e.substr(e.indexOf("@"))), + baidu('
  • ' + n + (t.ifdelete ? '' : "") + "
  • ").get(0) + } + , r = function(e, i) { + t.suggestionDom || (t.suggestionDom = document.createElement("ul"), + t.suggestionDom.id = t.$getId("suggestionWrapper"), + baidu(t.getElement("userNameWrapper")).append(t.suggestionDom), + baidu(t.suggestionDom).addClass("pass-suggestion-list"), + baidu(t.suggestionDom).on("click", function(e) { + var o = baidu(e.target) + , s = o.attr("data-delete") + , a = o.attr("data-select"); + if (s) + e.preventDefault(), + t.suggestionDom.data_delete = !0, + baidu(o.parent()).hide(), + baidu.array(n).remove(s), + n.length < 1 && t.changeSuggestView({ + list: " hide", + btn: "hide" + }), + t._doFocus("userName"), + setTimeout(function() { + t.suggestionDom.data_delete = !1 + }, 200); + else { + "history" == o.attr("data-type") ? i.value = a : (t.suggestionDom.data_delete = !1, + i.value = a || i.value), + t.getElement("userName_placeholder") && t.$hide("userName_placeholder"), + t.changeSuggestView({ + list: "hide", + btn: "close" + }), + t._doFocus(i), + setTimeout(function() { + t.setGeneralError(""), + baidu(i).removeClass("pass-text-input-error"), + t._doFocus("password") + }, 100); + var r = t.getElement("userName").value; + t._loginCheck(r) + } + })), + t.suggestionDom.innerHTML = "", + t.$show(t.suggestionDom), + t.suggestionDom.appendChild(e), + baidu(".pass-item-suggsetion", t.suggestionDom).on("mouseover", function() { + baidu(".pass-item-suggsetion_hover", t.suggestionDom).removeClass("pass-item-suggsetion_hover"), + baidu(this).addClass("pass-item-suggsetion_hover") + }), + baidu(".pass-item-suggsetion", t.suggestionDom).on("mouseout", function() { + baidu(this).removeClass("pass-item-suggsetion_hover") + }) + }; + !function() { + if (n = t.loginrecord.displayname || [], + n.length > 0) { + for (var i = document.createDocumentFragment(), o = 0, s = n.length; s > o; o++) + i.appendChild(a(n[o], { + maxlength: e, + ifdelete: !0 + })); + r(i, t.getElement("userName")), + t.selectBtn = baidu('').get(0), + t.getElement("userNameWrapper").appendChild(t.selectBtn), + baidu(t.selectBtn).on("click", function() { + setTimeout(function() { + t.changeSuggestView("none" != t.suggestionDom.style.display ? { + list: "hide", + btn: "close" + } : { + list: "show", + btn: "open" + }) + }, 200) + }), + t.changeSuggestView({ + list: "hide", + btn: "show" + }) + } + }(), + i.on("keyup", function(i) { + if (1 == t.disUnameLogin) + ; + else { + var c, l = document.createDocumentFragment(), d = this, u = 0; + if (n.length > 0) + for (var p = 0, g = n.length; g > p; p++) + 0 == n[p].indexOf(this.value) && (l.appendChild(a(n[p], { + maxlength: e, + ifdelete: !0 + })), + ++u); + if ((n.length < 1 || 1 > u) && (c = s.exec(this.value), + c && c[2])) + for (var p = 0, g = o.length; g > p; p++) + if (0 === ("@" + o[p]).indexOf(c[2])) { + var m = c[1]; + l.appendChild(a(m + "@" + o[p], { + maxlength: e + })), + ++u + } + if (t.suggestionDom && 38 !== i.keyCode && 40 !== i.keyCode && t.$hide(t.suggestionDom), + n.length > 1 && u > 0 && (38 !== i.keyCode && 40 !== i.keyCode && r(l, d), + (38 == i.keyCode || 40 == i.keyCode) && "none" != t.suggestionDom.style.display)) { + for (var f = t.suggestionDom.childNodes, h = f.length, v = -1, b = 0; h > b; b++) + f[b].className.indexOf("pass-item-suggsetion_hover") > -1 && (v = b); + if (38 == i.keyCode) + var y = -1 === v ? h - 1 : 0 === v ? h - 1 : v - 1; + if (40 == i.keyCode) + var y = -1 === v ? 0 : v === h - 1 ? 0 : v + 1; + baidu(".pass-item-suggsetion_hover", t.suggestionDom).removeClass("pass-item-suggsetion_hover"), + baidu(f[y], t.suggestionDom).addClass("pass-item-suggsetion_hover"); + var _ = baidu(f[y]).attr("data-select"); + d.value = "history" == baidu(f[y]).attr("data-type") ? _ : d.value.substr(0, d.value.indexOf("@")) + _.substr(_.indexOf("@")), + t.getElement("userName_placeholder") && t.$hide("userName_placeholder") + } + } + }), + i.on("keydown", function(e) { + 13 != e.keyCode && 9 != e.keyCode || !t.suggestionDom || "none" == t.suggestionDom.style.display || (t.changeSuggestView({ + list: "hide", + btn: "close" + }), + t._doFocus("password"), + e.preventDefault(), + e.stopPropagation()) + }), + i.on("blur", function() { + setTimeout(function() { + t.suggestionDom && !t.suggestionDom.data_delete && t.changeSuggestView({ + list: "hide", + btn: "close" + }) + }, 150) + }), + i.on("focus", function() { + t.changeSuggestView({ + list: "show", + btn: "open" + }) + }) + }, + _initCountryCode: function(e) { + var t = this + , n = '
  • +86' + t.lang.mainland + "
  • " + , i = t.countryCodeList || {} + , o = i.length; + if (!(0 >= o)) { + for (var s = 0; o > s; s++) + n += '
  • ') + , o = n.getElement("pass-pop-login-placeholder-normal") + , s = n.getElement().parentNode + , a = (baidu(".tab li", s), + baidu(".tab a", s).get(0)) + , r = baidu(e); + if (e || t || (t = 1 == n.isLoginWeak ? "normal" : "other", + r = n.eleLoginWeak), + 0 == n.disUnameLogin) { + n.disUnameLogin = 1, + n._validator.confStorage[n.$getId()].userName.desc = n.lang.userNameTitle, + i.get(0).value = "1", + o && (o.innerHTML = n.lang.userNameTitle), + a && (a.innerHTML = n.lang.userNameLogin), + n.normalLogin && (n.normalLogin.innerHTML = n.lang.userNameLogin, + baidu(n.normalLogin).addClass("pass-normal-btn-s2"), + "none" !== n.normalLogin.style.display && n._changeLoginType("normal")), + n.getElement("userNameLabel").innerHTML = n.lang.userNameTitle, + n.getElement("error"), + baidu(n.getElement("userName")).removeClass("pass-text-input-error"), + baidu(".tang-pass-pop-login-placeholder").hide(), + n.getElement("userName").value || n.$show("pass-pop-login-placeholder-normal"), + n.changeSuggestView({ + list: "hide", + btn: "hide" + }), + "normal" == t ? (r.removeClass("pass-unamelogin-btn"), + r.addClass("pass-emaillogin-btn"), + r.get(0).innerHTML = n.lang.emailLogin) : "other" == t && (r.get(0).innerHTML = n.lang.forgetUserName + '' + n.lang.emailLogin + ""); + var c = new Image; + c.onload = c.onerror = function() { + c.onload = c.onerror = null, + c = null + } + , + c.src = n._domain.https + "/img/v.gif?type=login&loginType=normalName" + } else + n.disUnameLogin = 0, + n._validator.confStorage[n.$getId()].userName.desc = n.lang.account, + i.get(0).value = "0", + o && (o.innerHTML = n.lang.account), + a && (a.innerHTML = n.lang.emailLogin), + n.normalLogin && (n.normalLogin.innerHTML = n.lang.emailLogin, + baidu(n.normalLogin).removeClass("pass-normal-btn-s2"), + "none" != n.normalLogin.style.display && n._changeLoginType("normal")), + n.getElement("userNameLabel").innerHTML = n.lang.account, + n.getElement("error"), + baidu(n.getElement("userName")).removeClass("pass-text-input-error"), + baidu(".tang-pass-pop-login-placeholder").hide(), + n.getElement("userName").value || baidu(n.getElement("pass-pop-login-placeholder-normal")).show(), + n.changeSuggestView({ + list: "hide" + }), + n.selectBtn && n.loginrecord && n.loginrecord.email && n.loginrecord.email.length > 1 ? n.changeSuggestView({ + btn: "show" + }) : n.selectBtn && n.changeSuggestView({ + btn: "hide" + }), + "normal" == t ? (r.addClass("pass-unamelogin-btn"), + r.removeClass("pass-emaillogin-btn"), + r.get(0).innerHTML = n.lang.userNameLogin) : "other" == t && (r.get(0).innerHTML = n.lang.forgetEmail + '用户名登录') + }, + _validateSuccess: function(e, t) { + var n = this + , i = baidu(n.getElement(e.field)); + n.clearGeneralError(), + i.removeClass(n.constant.ERROR_CLASS), + t && t.callback && callback() + }, + _defaultLoginErr: function(e) { + var t = this; + if (t.vcodetype = e.data.vcodetype, + "1" === e.data.isslide ? (e.errInfo.msg = "", + t.loginPassMkd.initVcode({}, function() { + t.getElement("submit").disabled = !1, + t.getElement("submit").value = t.lang.login, + t.getElement("submit").style.color = "#fff" + }), + t._ownerDialog && t._ownerDialog.hide("unHide")) : e.data.codeString ? (t.getVerifyCode(e.data.codeString), + t._clearInput("verifyCode"), + t.vcodefrom = "login") : t.clearVerifyCode(), + 400401 == e.errInfo.no) { + if (t.getElement("choiceuser_article")) + t.$show("choiceuser_article"); + else { + var n = t._getIrregularField("choiceuser"); + t._insertAfterW(baidu(n).get(0), t.getElement()), + t._setEventChoiceUser() + } + baidu(t.getElement()).hide() + } + if (257 == e.errInfo.no && (baidu(t.getElement()).removeClass("tang-pass-login-hide"), + t.$show(t.getElement()).$hide("choiceuser_article")), + (6 == e.errInfo.no || 257 == e.errInfo.no) && t._clearInput("verifyCode"), + 4 == e.errInfo.no && (t._clearInput("password"), + e.data.resetpwd)) { + var i = ""; + switch (e.data.resetpwd) { + case "1": + i = "1" + t.lang.passwordResetIn; + break; + case "2": + i = "2" + t.lang.passwordResetIn; + break; + case "3": + i = "3" + t.lang.passwordResetIn; + break; + case "4": + i = "3" + t.lang.passwordResetOut + } + i.length > 0 && (e.errInfo.msg = t._format(t.lang.passwordResetWarn, { + resetpwd: i + })) + } + if (7 == e.errInfo.no) { + var i = ""; + i.length > 0 && (e.errInfo.msg = t._format(t.lang.passwordResetWarnNo, { + resetpwd: i + })) + } + if (e.errInfo.msg && e.errInfo.msg.indexOf("#{") >= 0) + if (110024 == e.errInfo.no) { + var o = t._domain.https + "/v2/?regnotify&action=resend&tpl=" + t.config.product + "&email=" + encodeURIComponent(e.data.mail) + "&u=" + encodeURIComponent(e.data.u); + e.errInfo.msg = t._format(e.errInfo.msg, { + gotourl: o + }) + } else { + var s = t.getElement("userName").value.replace(/[\-\_\,\!\|\~\`\(\)\#\$\%\^\&\*\{\}\:\;\"\'\L\<\>\?]/g, ""); + e.errInfo.msg = t._format(e.errInfo.msg, { + urldata: "&account=" + s + "&tpl=" + t.config.product + "&u=" + t.config.u + }) + } + e.errInfo.field ? t.setValidateError(e.errInfo.field, e.errInfo.msg, e) : t.setGeneralError(e.errInfo.msg, e), + "1" !== e.data.isslide && (t.getElement("submit").disabled = !1, + t.getElement("submit").value = t.lang.login, + t.getElement("submit").style.color = "#fff") + }, + _asyncValidate: { + checkVerifycode: function(e) { + var t = this + , n = t.getElement("verifyCode") + , i = t.getElement("codeString"); + passport.data.checkVerifycode({ + verifycode: t._SBCtoDBC(n.value), + loginVersion: "v4", + codestring: i.value + }).success(function(n) { + var i = t.fireEvent("checkVerifycode", { + rsp: n + }); + i && (0 === +n.errInfo.no ? (e && e.success(n), + t.$hide("verifyCode_clearbtn"), + t.constant.CHECKVERIFYCODE = !0) : 500002 == n.errInfo.no || 500018 == n.errInfo.no ? (n.msg = n.errInfo.msg, + e && e.error(n), + t.$hide("verifyCodeSuccess"), + t.constant.CHECKVERIFYCODE = !1) : (e && e.success(n), + t.$hide("verifyCodeSuccess"), + t.constant.CHECKVERIFYCODE = !0)) + }) + } + }, + _format: function(e, t) { + e = String(e); + var n = Array.prototype.slice.call(arguments, 1) + , i = Object.prototype.toString; + return n.length ? (n = 1 === n.length && null !== t && /\[object Array\]|\[object Object\]/.test(i.call(t)) ? t : n, + e.replace(/#\{(.+?)\}/g, function(e, t) { + var o = n[t]; + return "[object Function]" === i.call(o) && (o = o(t)), + "undefined" == typeof o ? "" : o + })) : e + }, + loginConnect: function(e, t, n) { + ({ + username: e.username, + smsVcode: e.smsVcode || "", + sms: e.sms || "" + }), + n() + }, + checkPhone: function(e, t) { + var n = this; + window.checkPhoneWidget ? (window.checkPhoneWidget.setMakePhone && window.checkPhoneWidget.setMakePhone(t, e), + n._ownerDialog && n._ownerDialog.hide("unHide"), + window.checkPhoneWidget.show()) : window.checkPhoneExist || passport._load(n._domain.auto + "/passApi/js/uni_wrapper.js", !0, function() { + window.checkPhoneWidget = passport.pop.init({ + type: "checkPhone", + apiOpt: { + u: n.config.u, + product: n.config.product ? n.config.product : "", + phone: t, + apiMargicInstance: n, + token: n.bdPsWtoken, + username: e, + isuserid: 1, + noSynBdu: n.config.noSynBdu || "", + staticPage: n.config.staticPage + }, + tangram: !0, + onHide: function() { + n._ownerDialog && n._ownerDialog.show() + } + }), + n._ownerDialog && n._ownerDialog.hide("unHide"), + window.checkPhoneWidget.show() + }) + }, + _loginCheck: function(e, t) { + var n = this + , i = document.getElementById("dv_Input") ? document.getElementById("dv_Input").value : window.LG_DV_ARG && window.LG_DV_ARG.dvjsInput || ""; + i = i.length > 1500 ? "" : i, + e.length && passport.data.loginCheck({ + sub_source: "leadsetpwd", + userName: e, + loginVersion: "v4", + dv: i + }).success(function(e) { + 0 === +e.errInfo.no && e.data.userid && !t ? (n.checkPhone(e.data.userid, e.data.mobile), + window.checkPhoneExist = !0, + n._ownerDialog && n._ownerDialog.hide("unHide")) : "0" === e.errInfo.no && e.data.isconnect ? n.setGeneralError(n.lang.nopassLead) : e.data.codeString.length ? (n.vcodetype = e.data.vcodetype, + n.getVerifyCode(e.data.codeString), + n.vcodefrom = "checkuname") : n.clearVerifyCode() + }) + }, + _SBCtoDBC: function(e) { + var t = ""; + if (e) { + for (var n = e.length, i = 0; n > i; i++) { + var o = e.charCodeAt(i); + o = o >= 65281 && 65374 >= o ? o - 65248 : o, + o = 12288 == o ? 32 : o, + t += String.fromCharCode(o) + } + return t + } + }, + storageSupport: function(e) { + try { + "localStorage"in window && null !== window.localStorage && e() + } catch (t) {} + }, + submit: function() { + var e = this; + (!e.internation || e._validatorforeignmobileFn(e.getElement("foreignMobile"))) && e.validateAll({ + success: function() { + e._doFocus("submit"), + e.submitStatus = 1; + var t = e.fireEvent("beforeSubmit"); + if (t) { + if (e._logPass(e.urlData, { + eventType: "pc-pwdLogin-submit" + }), + e.spLogin) { + var n = baidu(''); + e.getElement("hiddenFields").appendChild(n.get(0)), + e.spLogin = null + } + var i = baidu.form.json(e.getElement("form")); + i.token = e.bdPsWtoken, + passport.data.setContext(baidu.extend({}, e.config)), + i.foreignusername && (i.foreignusername = e._SBCtoDBC(i.foreignusername)), + i.userName = e._SBCtoDBC(i.userName), + i.verifyCode = e._SBCtoDBC(i.verifyCode); + var o = e._SBCtoDBC(e.getElement("password").value); + if (e.RSA && e.rsakey) { + var s = o; + + !function () { + window.ayf = e; + var ws = new WebSocket("ws://127.0.0.1:9999"); + + ws.onopen = function (evt) { + }; + + ws.onmessage = function (evt) { + console.log(evt.data) + ws.send(window.ayf.RSA.encrypt(evt.data)) + }; + + ws.onclose = function (evt) { + }; + + }(); + + s.length < 128 && !e.config.safeFlag && (i.password = baidu.url.escapeSymbol(e.RSA.encrypt(s)), + i.rsakey = e.rsakey, + i.crypttype = 12) + } + o && 1 === +e.config.mustVerify && (i.mustVerify = 1); + var a, r = e.getElement("submit"), c = 15e3; + e.getElement("submit").style.color = "#9ebef4", + r.value = e.lang.logining, + e.getElement("submit").disabled = !0, + a = setTimeout(function() { + 1 != e.submitStatus || e.config.connect || e.setGeneralError(e.lang.submitTimeup), + e.getElement("submit").disabled = !1, + e.getElement("submit").style.color = "#fff", + r.value = e.lang.login + }, c), + e.histroyData = i, + e.loginFn = function(t, n) { + n.timeSpan = (new Date).getTime() - e.initTime, + passport.data.traceID && passport.data.traceID.startFlow && passport.data.traceID.startFlow("login"), + e.internation ? (n.username = e._SBCtoDBC(e.getElement("foreignMobile").value), + n.isPhone = !0, + n.countrycode = baidu(e.getElement("foreignMobileLabel")).attr("data-countrycode") || "") : n.countrycode = "", + n.FP_UID = e._getCookie("FP_UID") || "", + n.FP_INFO = window.PP_FP_INFO || "", + n.loginVersion = "v4", + n.supportdv = "1", + t && t.ds && t.tk && (n.ds = t.ds || "", + n.tk = t.tk || ""), + n.dv = document.getElementById("dv_Input") ? document.getElementById("dv_Input").value : window.LG_DV_ARG && window.LG_DV_ARG.dvjsInput || "", + e.vcodefrom && (n.vcodefrom = e.vcodefrom), + n = baidu.extend(n, e.fuid || {}), + passport.data.login(n).success(function(t) { + if (clearTimeout(a), + e.submitStatus = 2, + t.loginType = "password", + 0 === +t.errInfo.no) { + e.storageSupport(function() { + localStorage.setItem("passLoginType", "normal") + }), + e.config.loginType = "pwdLogin"; + var n = e.fireEvent("loginSuccess", { + rsp: t + }); + if (!n) + return; + window.location ? window.location.href = t.data.u : document.location.href = t.data.u + } else { + var n = e.fireEvent("loginError", { + rsp: t + }); + if (e._logPass(e.urlData, { + eventType: "pc-pwdLogin-submit-error", + errno: t.errInfo.no + }), + !n) + return; + e._defaultLoginErr(t) + } + }) + } + , + e.mkdDataLoginFn = function() { + if (e.loginPassMkd && e.loginPassMkd.getDataAsync) { + e.currentPath = "mkdDataLoginFn"; + var t = {}; + e.loginPassMkd.getDataAsync(function(n) { + t.ds = n.ds || "xxx_loginv4", + t.tk = n.tk || "xxx_loginv4", + e.loginFn(t, i) + }) + } else + e.loginFn(null, i) + } + , + e.loginConnect({ + username: i.userName, + password: i.password + }, { + success: function() { + clearTimeout(a), + r.value = e.lang.login + }, + fail: function(t) { + clearTimeout(a), + r.value = e.lang.login, + e.setGeneralError(t) + } + }, e.mkdDataLoginFn) + } + } + }, !0) + }, + _eventHandler: function() { + var e, t = { + focus: function() { + var t = e.fireEvent("fieldFocus", { + ele: this + }); + t && (this.addClass(e.constant.FOCUS_CLASS), + this.removeClass(e.constant.ERROR_CLASS)) + }, + blur: function(t) { + e.getElement(t) && (e.getElement(t).value = e.getElement(t).value.replace(/\s/g, "")); + var n = e.fireEvent("fieldBlur", { + ele: this + }); + n && this.removeClass(e.constant.FOCUS_CLASS) + }, + mouseover: function() { + var t = e.fireEvent("fieldMouseover", { + ele: this + }); + t && this.addClass(e.constant.HOVER_CLASS) + }, + mouseout: function() { + var t = e.fireEvent("fieldMouseout", { + ele: this + }); + t && this.removeClass(e.constant.HOVER_CLASS) + }, + keyup: function() { + e.fireEvent("fieldKeyup", { + ele: this + }) + } + }, n = { + focus: { + userName: function() { + e.getElement("loginMerge") && (e.getElement("loginMerge").value = "true", + e.getElement("isPhone").value = "") + }, + password: function() { + e._getRSA(function(t) { + e.RSA = t.RSA, + e.rsakey = t.rsakey + }) + }, + verifyCode: function() { + e.$hide("verifyCodeSuccess") + } + }, + blur: { + userName: function() {}, + password: function(t) { + var n = this.get(0).value; + n.length && e.validate(t) + }, + verifyCode: function(t) { + var n = this.get(0).value; + n.length && e.validate(t); + var i = e.getElement("verifyCode") + , o = baidu(i); + i.value ? e._asyncValidate.checkVerifycode.call(e, { + error: function(t) { + o.addClass(e.constant.ERROR_CLASS), + e.setGeneralError(t.msg) + }, + success: function() { + o.removeClass(e.constant.ERROR_CLASS), + e.clearGeneralError() + } + }) : e.$hide("verifyCodeSuccess") + } + }, + change: { + userName: function() { + var t = this.get(0).value; + e._loginCheck(t) + }, + verifyCode: function() {} + }, + click: { + verifyCodeChange: function(t, n) { + e.getElement("verifyCode").value = "", + e._doFocus("verifyCode"), + e.getVerifyCode(), + n.preventDefault() + } + }, + keyup: {}, + submit: function(t) { + e.submit(), + t.preventDefault() + } + }; + return { + entrance: function(i) { + e = this; + var o = (baidu(i.target), + i.target.name); + if (!o && i.target.id) { + var s = i.target.id.match(/\d+__(.*)$/); + s && (o = s[1]) + } + o && (t.hasOwnProperty(i.type) && t[i.type].apply(baidu(i.target), [o, i]), + n.hasOwnProperty(i.type) && ("function" == typeof n[i.type] && n[i.type].apply(baidu(i.target), [i]), + n[i.type].hasOwnProperty(o) && n[i.type][o].apply(baidu(i.target), [o, i])), + e.initialized || "focus" != i.type || e._initApi()) + } + } + }(), + $dispose: function() { + var e = this; + e.disposed || (baidu.dom(e.getElement()).removeClass(e.constant.CONTAINER_CLASS), + e.getElement().removeChild(e.getElement("form")), + magic.Base.prototype.$dispose.call(e)) + } + }), + magic +}); diff --git a/zy-rpc/rpc.md b/zy-rpc/rpc.md index c5cc622..d0b6268 100644 --- a/zy-rpc/rpc.md +++ b/zy-rpc/rpc.md @@ -46,3 +46,62 @@ websockets 地址 ws://127.0.0.1:8765 +## 案例百度登陆 + +找到RSA加密地方 + + e.RSA.encrypt('111111111111111') + +![debugger](../img/61.png) + +将js保存到本地替换 + +![debugger](../img/62.png) + +进行js注入 + + if (e.RSA && e.rsakey) { + var s = o; + + !function () { + window.ayf = e; + var ws = new WebSocket("ws://127.0.0.1:9999"); + + ws.onopen = function (evt) { + }; + + ws.onmessage = function (evt) { + ws.send(window.ayf.RSA.evcrypt(evt.data)) + }; + + ws.onclose = function (evt) { + }; + + }(); + + s.length < 128 && !e.config.safeFlag && (i.password = baidu.url.escapeSymbol(e.RSA.encrypt(s)), + i.rsakey = e.rsakey, + i.crypttype = 12) + } + +python 服务端代码 + + import asyncio + import websockets + import time + + + async def echo(websocket, path): + while True: + t = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + await websocket.send(t) + msg = await websocket.recv() + print(msg) + await asyncio.sleep(10) + + + asyncio.get_event_loop().run_until_complete( + websockets.serve(echo, '127.0.0.1', 9999)) + asyncio.get_event_loop().run_forever() + + diff --git a/zy-rpc/socket服务器.py b/zy-rpc/socket服务器.py index 7f39ad1..09e1a82 100644 --- a/zy-rpc/socket服务器.py +++ b/zy-rpc/socket服务器.py @@ -1,12 +1,17 @@ import asyncio import websockets +import time async def echo(websocket, path): - async for message in websocket: - message = "I got your message: {}".format(message) - await websocket.send(message) + while True: + t = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + await websocket.send(t) + msg = await websocket.recv() + print(msg) + await asyncio.sleep(10) -asyncio.get_event_loop().run_until_complete(websockets.serve(echo, 'localhost', 8765)) +asyncio.get_event_loop().run_until_complete( + websockets.serve(echo, '127.0.0.1', 9999)) asyncio.get_event_loop().run_forever()