<!DOCTYPE html>
<html>
<!--STATUS OK-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="百度帐号是登录所有百度系产品的通行证，登录后还可以在帐户管理页管理/修改您的个人信息，包括修改密码、绑定手机、身份认证等">
<title>登录百度帐号</title>
<script type="text/javascript">
        window.pageStartTime = Date.now();
        </script>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="viewport" content="width=240, user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, viewport-fit=cover">
<meta name="format-detection" content="telephone=no, email=no" />
<style type="text/css">body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{margin:0;padding:0}html{color:#111;-webkit-text-size-adjust:none}body,button,input,select,textarea,pre{font-size:1.6rem;font-family:PingFang SC,Helvetica,sans-serif}input[type=password]{font-family:Helvetica,sans-serif}h1,h2,h3,h4,h5,h6{font-size:100%}h3,h4,h5,h6{font-weight:400}ul,ol{list-style:none}a{text-decoration:none;color:#3c76ff;-webkit-touch-callout:none}a:hover{cursor:pointer}fieldset,img{border:0}table{border-collapse:collapse;border-spacing:0}textarea{resize:vertical}html,body{width:100%;height:100%;min-height:430px;position:relative}body{-webkit-touch-callout:none;-webkit-text-size-adjust:none;-webkit-user-select:none;-webkit-highlight:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:focus{outline:0}.left{float:left}.right{float:right}.tright{text-align:right}.tcenter{text-align:center}.hide{display:none}.inlineBlock{display:inline-block;zoom:1}.inline{display:inline}button{cursor:pointer}.block,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary{display:block}.clearfix:after{content:'\20';display:block;height:0;clear:both;overflow:hidden;visibility:hidden}.clearfix{zoom:1}.clear{clear:both}.wordwrap{word-break:break-all;word-wrap:break-word}input[type=submit],input[type=button]{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-appearance:none}.gray{color:#999}.black0{color:#002A00}.f12{font-size:1.2rem}.f14{font-size:1.4rem}.fb{font-weight:700}.m-t05{margin-top:.5rem}.m-t10{margin-top:1rem}.m-t20{margin-top:2rem}.m-t40{margin-top:4rem}.m-t50{margin-top:5rem}.m-t25{margin-top:2.5rem}.m-b10{margin-bottom:1rem}.m-b15{margin-bottom:1.5rem}.link-font{color:#666;cursor:pointer;font-size:1.4rem;height:3rem}.p-t25{padding-top:2.5rem}.p-t15{padding-top:1.5rem}.p-t50{padding-top:5rem}.p-l5{padding-left:.5rem}.orange{color:#ff812d}.p-b20{padding-bottom:2rem;margin-bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-bottom)}.m-t180{margin-top:18rem}.p-b40{padding-bottom:4rem}.pass-header{background:#fff;border-bottom:1px solid #d6d6d6;height:4.4rem;width:100%;padding:0;display:block;text-align:center;z-index:100;position:relative}.pass-header-title{text-align:center;width:100%;height:4.4rem;display:block;font-size:2rem;line-height:4.4rem}.pass-header-links{margin:.6rem 0;border:1px solid #fff;background:#fff;font-size:1.6rem;line-height:3rem;text-align:center;width:5rem;color:#666;display:block;position:absolute;right:1.4rem;top:0;cursor:pointer;-webkit-border-radius:2px;border:1px solid #ccc}.pass-header-back{background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAApCAYAAAAvUenwAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowRTYwMTYyRkVBMTZFNDExOTczNkJERkUyMDY2QTY5NSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDMDAyNDIwMDE2RUMxMUU0OTNFRTlCRTlEQkY5RkEzOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDMDAyNDFGRjE2RUMxMUU0OTNFRTlCRTlEQkY5RkEzOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjBFNjAxNjJGRUExNkU0MTE5NzM2QkRGRTIwNjZBNjk1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBFNjAxNjJGRUExNkU0MTE5NzM2QkRGRTIwNjZBNjk1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+k2fgIgAAAc1JREFUeNq0lz8sA2EYxq+XxmAwsJiYGIiNTSIiGBAiLGyGMwhDO2BikXQQBhJ6kxiIf5MYDBQTk9gsNpOlEZImkobnTd5PvjT9c9d7+ia/9L636fNr+9333V0snU47UcrzvP9j3/fjeDkGb+ivSM91SGWFT4FljFM0QUG4qTqKoET4Nv6iBENQNjyqoGJ4FEGg8GoFgcOrEYQKDysIHR5GUCx8CyQqfdCNEJ4M8s3cWoZXEkQOLyeghJcS0MKLCajhhQJ6uC2oSbgR1CzcCI4Kwi9Y4UaQAb9WbwyMMwV7YAF8WdfSczDLEjgq6QCv1qQfyl0JSyD1DvrAs/XePus0NfUBBsCjjmNgE6yxBFJZMAhurd66imIMgdQ3GAVXVi+pc+UyBFI5MAlOrN68Tn6cIZD60dP1wOrJ+MzcGjIumXkwB3as3gS4BPUMgaMrfQmkrN4QuMa9aQNDYGpVMdULbiBpYgkc/RWL1v7VDe4haWYJpHZ1XvI67gQPkLSyBI6eWTN6pkm1qaSdJZA61bWS03GL/l1dLIE8BMpqH9HVLyVzcQdJD+0ZDZKM7l9ZbTWCDepTJiSyA/frjvwEpqkClbzo2hjG8af0/gQYAHkain5LZUqyAAAAAElFTkSuQmCC') no-repeat 15px 13px;-webkit-background-size:1.2rem 2rem;padding:1.3rem 0 1.3rem 3.3rem;width:3.6rem;height:1.8rem;position:absolute;left:0;top:0;cursor:pointer;color:#fff}.mod-button-back.active{}#agreement-headerWrapper,#personal_agreement-headerWrapper{position:fixed;top:0}.error_area{color:#E85352;font-size:1.2rem;min-height:2.5rem;line-height:2.5rem;clear:both}.error_redtip{color:red;height:2rem;line-height:2rem;visibility:hidden}.mod-info{color:#cac9c9;-webkit-box-flex:1;visibility:visible;text-align:center}.error_div .t-a-l{text-align:left}.mod-ok,.mod-page-ok{background:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/icon_ok.png) no-repeat 0 5px;-webkit-background-size:14px 14px}.mod-page-ok{margin-top:14px;background-position:0 2px;-webkit-background-size:20px 20px;padding-left:25px}.pass-mod-toastWrapper{background:rgba(0,0,0,.7);text-align:center;min-height:3.4rem;line-height:3.4rem;color:#fff;width:50%;position:absolute;left:25%;top:50%;margin-top:-6rem;-webkit-border-radius:2px;z-index:101;padding:.8rem;display:none}.pass-form-item{display:-webkit-box;width:100%;background:#fff}.pass-form-item-v{width:100%;float:left;height:5rem;display:-webkit-box}.pass-form-verify-wrapper p.pass-form-item-v{margin:1rem 0 0}.pass-form-input-wrapper{display:-webkit-box;-webkit-box-sizing:border-box;border-radius:2px;-webkit-border-radius:2px;-webkit-box-flex:1;height:5rem;line-height:4.8rem;padding:0 1.4rem;background:#fff;margin-left:1px}.pass-form-input-wrapper-forvcode{display:-webkit-box;-webkit-box-sizing:border-box;float:left;width:66%;border-radius:2px;-webkit-border-radius:2px;-webkit-box-flex:1;height:5rem;line-height:4.8rem;padding:0 1.4rem;background:#fff;z-index:10}.pass-form-verify-wrapper span.pass-form-input-wrapper-forvcode{margin-right:1rem}.pass-form-code{line-height:4rem}input[type=text],input[type=password],input[type=number],input[type=email],input[type=tel],textarea{border:0;display:block;-webkit-box-flex:1;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0);line-height:2rem;font-size:1.6rem;height:2rem;padding-top:1.5rem;padding-bottom:1.3rem;color:#333;line-height:2rem;z-index:10;position:relative;margin-top:1px}.normandy-mod-content input.pass-text-input{color:#121C32;margin-top:0;line-height:1.8rem;padding-top:2.4rem;padding-bottom:1.4rem;caret-color:#000}textarea{padding-bottom:0}.pass-text-label{display:inline-block}.pass-text-label{font-size:1.6rem;width:5rem;margin-right:.5rem}.pass-text-label-long{width:6.5rem}.pass-overseas-wrapper{width:60px;display:inline-block;border-right:1px solid #efefef;margin-right:10px;margin-top:1rem}.pass-label-code{position:relative;z-index:14;text-align:right;width:50px;margin-right:4px;margin-left:-1.5rem;float:left;height:3rem;line-height:3rem}.pass-overseas-down{width:.6rem;height:.6rem;display:block;margin-top:1rem;margin-right:11px;border-right:1px solid #333;border-bottom:1px solid #333;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-moz-transform:rotate(45deg);transform:rotate(45deg);float:left}.pass-input-aide{width:22px;height:19px;display:block;cursor:pointer;margin-top:1.5rem}.pass-input-pwdToggle{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAAXNSR0IArs4c6QAABAJJREFUWAntVVtsTEEYnplzdrunKihVStASVaJBtg/UujwgIZSwjdJIX5EG8STxsG9IvDTCs1Sp9IhbH0h4oKIpaWRttVUqRLRIrVZ62e5lZsy/p3OcXZu2pBUP5yS7889//c43//wHIfuxGbAZsBmwGbAZsBmwGbAZ+G8Y4JzjysrKtH8NCGpCbWtdc3Po0KmZw7F+N6aMX79+8QHGmFsdJ0sGQPv3H93CFYJd6tTm6uozQailwF9Fhc81FP6+HSOejjBK128/iLQFnsUdwD6Zz6s3wWWCgzyEuBZjkUVF7h3v/P5HsTgwEFauXosRY9kAAnM+u8hd3OX3Nw1PJqgDBw7PENXWiRoE6igo7VVNzdnPIMcVIBQszmzDjPSBLNArQ2Hq8fp8TmM/8f8+kTvG1fVQC7JD7fz8ae2ykglMODLGpjQyRmKGkWbgN9+L6+rq4oEyYCJWyNna8U2AohlGPkxVFT8FDDK/CQwUun7uh1Phz6UR8dgc/VbDRu8EgoNcdTcbPKJv4m1j1MK0pMQzaNYVQgIwMESJ6rI6QAJ+5/EmuCBW/d/IXu8JDd9+splgNjcxnjn1u0+XWHUJwIBiTGmB1QFkwvjsUKhnW0XFkTnJtvHuy8uPz8VqdBviNEvGcKR0SxnqWtsmsX/ScpZiThcYziREkbOdIGpQjpEjSlHu8pVF01cVuvtbWprHdWMFS5nLC4vcjMcKRaM7IDfMSAUR/949G/xtrz/mGXruaH3bFZZjyhywgPbGrYadCDENgrnieKHXVHXAm0ZoTFxplnBDMUNBQnCXqmo9mpYxkJODIhDX3Y2c/f29U5nKszhl8xBnmaCXD2ZKWNNo4+XLl76Azlt+LB/T6BrDTkL79myoLy0tpSZjLtfCdMrDgh08RRxeyLvb06TrOg8Emga2bin+MDTAXOJTMF0WgEEs9tmURfOGI4PLeoKDK+AHMkcs15iJPP6SZgzCNM3hulddXdUrdb7TJ/tM1jDre/e250sg0Bg1GZOOZWXHsglhjqtXL3ySOlgT38xqGV3mAqXxeTPmlTwJa9TBg5XzxZiK1tZWfZX634BJg3X97ZiJ8hIRHkIUZyGOM8XNFTfWaAGIE0z2EoKCjJBvKxbP6mrt7M1NdVzWGsmymqxItYerLIqPHIs45hJPB/SB8H0v/UvLjpRJWa+9dN+UhSBerFP0b4EBnmkjo6FD+qRaE8ZFKgdgyzpCuKK0j4BK5Z5SB/4QJ43Jo0HqreuYwOrrn7tEzw4YQYKtXcWd1gTjlY04Eor7i3zxvKMEj3mUV66ch0/FQ3kp/pQtWRviRJM3M+aI1l771eTSnryOCUwGWG+M1P3pmnzTR4sf8yhHC7Zt/xMDPwHC9rXZOH7hHgAAAABJRU5ErkJggg==) no-repeat 50% 50%;-webkit-background-size:18px 18px;z-index:12;position:relative;margin-left:20px}.pass-input-pwdToggle-show{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAAXNSR0IArs4c6QAABSVJREFUWAntWF1MXEUUnpl7lwW2ERSQWlutishvFygaChIwaUz0oTGQRcDW8NQH47ZNNPF1n0xM1LRL4gNPpD9bZJPG+Gia+lMhdaMW6HZZShOLFWOhVNCyYXfvzDhnYC53l13K9sFsUm7CnTnnfHPOd2fPPXMuCG1f2zvwiO4AfpjnHh4e1i5c+G4XJfqThBpFnJB8hHjOqi8cw4xFmKYvaMyY6+ho/7Orq4tmGicjYkeOfOiIx1cqKWJ7MUa2rQTjHMU1RG7ZbLmTZ858uryVNYDZEjGPx6OHwwu1FPFyjBnZqnMrjnPCNIRvVFQUXRP+DKst1fyBxHp6Pig2eLRZEHJYHXCu/aNjclvT8Hx+fuHSwYNVUbBfvBiyRyKLBZTyEoOzPRjTxxLXkWUd20fPn//srlWfPN+UWG/vsRdjiO4nnK/jsDafn0ODg4Nf/JXsLJXc1/fezkhMq0Gclig7w1gkpPaLz+edVrrkcT1gkuXtw24np7RKqVdzJefnoaGTt5Quk7G7+8ReimKN1tzEmhb68mz/eCo/Wipld7e7nnNaadowuZer513y+T6fN3UZToLBK4v769tmqNw5nieXc15SW9NkCwYDG3Z/AzHXO26xS7TGjIvxbFV5yQ9e78cyh0z9Q0wmJkbjrs43Z+bvRQrFcpl7HPPiKmcTC10LJDx0wk/pevf4Mzgeb1ExCdf+qKjwjng8mCmddXSJeoa+HikjnD2LDF4gbTpeYpjMoEMtN/1p6pfHw0k4fKyFYbpb+eM224j/9KnflWwSc7k+KiBk+XXxVuvSKJKcv9X6bTrnR4968peW7rYJPDz9hktUlcWCguLvBwY8kQ1GoYCHwl9dfk29FAJvMOb4xu//ZAnwsiZBJSc5y80mKaTdLy1Cl9ORAqebkQLHQBgwcldBkXSBb4iBRCwwQWzgAFxAljdi37mPM7ZHAgTCkatfGhjwpq3S1fZd5SIPn1N4pOtXq8uLR0uKHZNzi7EVxFCpqAgYYZ6LpmejoYmfFgCbfAUCAfpyY/NczOAvSDznuZPTt/H1icAdva/vROH9WLxSlXMdo/HBwZOLyU6sMuQUVwpdG/OfPTXlVzJCU67DxwVv1gAqmX9Ct25OnEGsnp73x8VhWg8Wylil4DRDlqNGg1lARV75fP1pnZguVaILRXXZ47+Z+rVJgs6CTcYpWcYUsUEGLpKTMmbbSBx2/Vc4IiQxUfx6e90vPZCkKAkKc/3m3zLXlAxjgs6CtWKscxlz7cgCLsBJGxu7slLrbNKQqMIAZhyXvtLYPAt662LrvMp5QMecPSV1ItGr6w4YXR1v/Nve3q6V7HaWIYPWyWQWAE70cLrkh/WQ41GDtSg80bTJc6e9MzLnOw+1BjEhMuGhrYlEaavb7bbLwKluonhCnQIT4DGNN4Sm5jrhD+aqNZIYgU3lAnQQA2KZeMEBuIBNEoMOk8Uco8LRWp9Ed9xZQK2b1SAonoocOEq+wAaYzWohxBDv4Q5YC7GBg+p2zcoPxqw8koAYXHCIY0adq5K4rx7io1vpOs01m0ygGw7dmG8WOf20gnGijfvP9YeUDGPCjikDtD3igK1QMhJtj13L/TGTnt1ca5nAN0OUrryKOHtCqUWjEB4a6r+qZDVuaHvAAP1RTd36myrerTyDxp/fV9MSgb5KLc5khEYxzlbaMOIyp2CtbBR9/WOp/KTcMQXMytZakcvKjxFFLis/3xQ5GLPug9dKDub/x78IkmNuy9s78MjswH8L1cCvWdLPCAAAAABJRU5ErkJggg==) no-repeat 50% 50%;-webkit-background-size:18px 18px;z-index:12;position:relative;margin-left:20px}.pass-input-clearValue{width:20px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAJ1BMVEUAAABMaXFFRUXz8/MAAAAAAAAAAAAAAAAAAADx8fEAAAAAAAD///+VXwL6AAAADHRSTlMzAEHYHS8CKQfREQq/Q1+sAAAAsUlEQVR42pXU6w6DIAyG4W/aE+j9X++SynB1mnbvLxOeRCMUvAr9j6STMsBKXR6QEWPGZDdICJdIrsgUP6lFtDFu4u0b2WmishOJ4iGViQiP0QcZvNYWzJbW4NlANNC+LtOs+0B0IOG54Co+sjjqQFgKBuiOCFFFA3KkiCoaqCNGVNGAHQFRRQNUUf666ofnv6D+M/NtyTe4flTyQ5cf3/og5COVD2c+5vULo371JJXRG1ESBwk5JTX6AAAAAElFTkSuQmCC) no-repeat center center;-webkit-background-size:18px 18px;cursor:pointer;z-index:12;position:relative}.pass-form-vcodeImg{float:right;display:inline-block;position:relative;width:10rem;height:5rem}.pass-verifyCode-img{display:block;float:left;-webkit-box-sizing:border-box;-webkit-border-radius:2px;margin-left:1px;position:relative;z-index:15;height:4.8rem;width:9.8rem;top:1px}.pass-form-item-content{height:14rem}.pass-text-area{height:12rem;resize:none;font-size:1.6rem}.pass-form-item-realname{border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;margin-bottom:0;float:left;border-bottom:0;padding-top:1px}.pass-form-item-code{border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;margin-bottom:0;float:left;border-bottom:0}.pass-form-item-accpassword{border-top:0;border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;float:left}.pass-form-item-smsvc,.pass-form-item-smsVcode{width:64%;float:left}.pass-form-item-password,.pass-form-item-idcard{border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;float:left}.pass-form-input-wrapper{float:left}.pass-form-VerifyButton,.sms_verify-noVerifyButton{-webkit-box-sizing:border-box;display:box;background-color:#fff;border:0;line-height:4.8rem;width:98%;font-size:1.4rem;position:relative;z-index:12;left:1%;top:2%;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;-ms-border-radius:2px}.pass-form-VerifyButton:disabled{border:0;background:#fff;color:#d6d6d6;opacity:1}p.verify-button{position:relative;height:5rem;width:33%;float:right;background:#fff}p.verify-button:before{content:" ";-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;width:200%;height:200%;position:absolute;z-index:1;-webkit-transform:scale(0.5,.5);-ms-transform:scale(0.5,.5);-moz-transform:scale(0.5,.5);transform:scale(0.5,.5);-webkit-transform-origin:0 0;-ms-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;border:1px solid #ccc;-webkit-border-radius:2px;border-radius:2px}.pass-form-item-univc{width:100%}.agree-link{text-decoration:underline;color:#999;display:inline-block}input[type=text]::-webkit-input-placeholder,input[type=password]::-webkit-input-placeholder,input[type=number]::-webkit-input-placeholder,input[type=email]::-webkit-input-placeholder,input[type=tel]::-webkit-input-placeholder{font-size:1.6rem;-webkit-appearance:none;color:#CCC}input.pass-button-vcode{z-index:10;top:0;float:right;margin-right:.5rem;width:40%}p.pass-form-input-wrapper{position:relative}p.pass-form-item.pass-form-input-wrapper:before,span.pass-form-input-wrapper-forvcode:before,span.pass-form-vcodeImg:before{content:"";-webkit-box-sizing:border-box;display:block;width:200%;height:200%;position:absolute;left:0;top:0;z-index:1;-webkit-transform:scale(0.5);-webkit-transform-origin:0 0;border:1px solid #ccc;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;-ms-border-radius:2px}.border-lighter:before{content:"";-webkit-box-sizing:border-box;display:block;width:200%;height:200%;position:absolute;left:0;top:0;z-index:1;-webkit-transform:scale(0.5);-webkit-transform-origin:0 0}p.pass-form-item.pass-form-input-wrapper.pass-form-item-username,p.pass-form-item.pass-form-input-wrapper.pass-form-item-code{margin-bottom:0}p.pass-form-item.pass-form-input-wrapper.pass-form-item-username:before,p.pass-form-item.pass-form-input-wrapper.pass-form-item-code:before{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;border-bottom:0}p.pass-form-item.pass-form-input-wrapper.pass-form-item-password:before{-webkit-border-top-right-radius:0;border-top-right-radius:0;-webkit-border-top-left-radius:0;border-top-left-radius:0}p.pass-form-item.pass-form-input-wrapper.pass-form-item-password-other:before{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px}span.pass-form-input-wrapper-forvcode{position:relative;-webkit-box-flex:1}p.pass-form-item.pass-form-input-wrapper.pass-form-item-content:before{-webkit-border-top-right-radius:0;border-top-right-radius:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;border-bottom:0}p.pass-form-item.pass-form-item-error:before,span.pass-form-item-error:before,span.pass-form-item-error:before{-webkit-transition:all .3s;border:1px solid red!important}@-webkit-keyframes progressError{0%{border:1px solid #fc4343}100%{border:1px solid #fc4343}}.pass-form-item-submit{float:left;border:0;background:0 0;margin:0 0 1.5rem}.pass-button-full{color:#fff;font-size:1.8rem;width:100%;line-height:4.8rem;height:4.8rem;background:#5291FF;border:1px solid #5291FF;-webkit-box-sizing:border-box;border-radius:2px;-webkit-border-radius:2px;cursor:pointer;display:block;text-align:center;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.pass-button-full-disabled{border:1px solid #5291FF;background:#5291FF;color:#90b6ff;-webkit-border-radius:2px;border-radius:2px}.normandy-mod-content .pass-button-full{-webkit-border-radius:10rem;border-radius:10rem;line-height:5rem;height:5rem;background:#397BE6;border:0}.normandy-mod-content .pass-button-full-disabled{-webkit-border-radius:10rem;border-radius:10rem;color:#fff;background:#DCDFE6}.normandy-mod-content .pass-button-full-active{opacity:.8}.normandy-mod-content .pass-button-full.bdred{background:#E73E32;color:#FFEEC1}.normandy-mod-content .pass-button-full-disabled.bdred{background:#E73E32;color:#f1957c}.pass-button-full-active{border:1px solid #3c76ff;background:#3c76ff;border-radius:2px;-webkit-border-radius:2px}.pass-button-auto{z-index:12;position:relative;display:block;font-size:1.8rem;color:#666;height:4.4rem;line-height:4.4rem;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0);border:1px solid #ddd;background:#f1f1f1;padding:0 2rem;cursor:pointer;width:13.6rem;margin:.5rem .5rem .5rem 0}.pass-button-sub-full{background:#fff;border:1px solid #d6d6d6;color:#3c76ff}.pass-button-auto-active{background:#eee}.pass-button-disabled{color:#ccc}.pass-button-sub-default{width:100%;line-height:4.3rem;text-align:center;-webkit-box-sizing:border-box;background:#fff;border:1px solid #ddd;margin-top:2.5rem;-webkit-border-radius:2px;cursor:pointer;color:#666}.pass-button-sub-active{border:1px solid #ddd;background:#ddd}.mod-btn-colwrapper a{display:inline-block;width:12rem;padding:0;border:0}.mod-btn-colwrapper a.pass-button-auto{background:#dfdfdf;margin-left:1.4rem}.pass-button-minor{font-size:1.6rem;width:auto;line-height:4.4rem;background:#e1e1e1;border-color:#d5d5d5;color:#666;-webkit-box-sizing:border-box;cursor:pointer;display:block;text-align:center;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-border-radius:2px}.other-log{border:0;background:0 0;position:relative;color:#3c76ff;cursor:pointer;font-size:1.4rem;line-height:1.4rem;height:2rem;line-height:2rem}.pass-button-other{color:#3c76ff;font-size:1.8rem;width:100%;line-height:4.4rem;height:4.4rem;background:#fff;-webkit-box-sizing:border-box;border-radius:2px;-webkit-border-radius:2px;display:block;text-align:center;border:0;position:relative;z-index:3}.pass-button-other:before{border:1px solid #3c76ff}.mod-vcode{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1010;background:#000;opacity:.7}.mod-vcode-body{width:30.5rem;position:absolute;left:50%;top:50%;margin-left:-15.25rem;margin-top:-15.25rem;z-index:1012;overflow-y:auto;-webkit-border-radius:2px;-webkit-transform-style:preserve-3d}.mod-vcode-content{background:#fff;padding:4rem 1.6rem 2.3rem;text-align:center}.vcode-content-btn{height:4.4rem;line-height:4.4rem}.mod-page-verifyImg{text-align:center;margin:2rem 0 .6rem}.vcodeInputWrapper{display:inline-block;position:relative}.mod-page-verifyImg img{height:4.6rem;width:11rem;border:1px solid #e0e0e0}.small-tip{font-size:1.2rem;color:#adadad;line-height:1.4rem}.vcode-close{background:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/vcode_close.png) no-repeat center center;width:3rem;height:3rem;-webkit-background-size:1.4rem 1.4rem;background-size:1.4rem 1.4rem;position:absolute;top:.7rem;right:.7rem}.keyboardInputEle_focus{color:#fff;border-bottom:1px solid #3C76FF}.vcode_error_redtip{height:1.2rem;line-height:1.4rem;font-size:1.2rem;margin-top:.8rem;color:#E65757}.mod-vcode-content .mod-page-tipInfo-gray{font-size:2rem;color:#102233;line-height:2.4rem}.vcodeInputWrapper .vcodeInput{width:15rem;font-family:PingFangSC-Regular;font-size:2rem;color:#333;letter-spacing:0;line-height:2rem;padding-top:1.4rem;padding-bottom:.4rem;text-align:center}.vcodeInputWrapper .vcodeInput-hr{background:#bec2cc;width:15rem;height:1px;border:0;display:block}.vcodeInputWrapper .vcodeInput-hr-error{background:#E65757}.vcodeInputWrapper .vcodeInput-clearValue{width:1.4rem;height:1.4rem;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAJ1BMVEUAAABMaXFFRUXz8/MAAAAAAAAAAAAAAAAAAADx8fEAAAAAAAD///+VXwL6AAAADHRSTlMzAEHYHS8CKQfREQq/Q1+sAAAAsUlEQVR42pXU6w6DIAyG4W/aE+j9X++SynB1mnbvLxOeRCMUvAr9j6STMsBKXR6QEWPGZDdICJdIrsgUP6lFtDFu4u0b2WmishOJ4iGViQiP0QcZvNYWzJbW4NlANNC+LtOs+0B0IOG54Co+sjjqQFgKBuiOCFFFA3KkiCoaqCNGVNGAHQFRRQNUUf666ofnv6D+M/NtyTe4flTyQ5cf3/og5COVD2c+5vULo371JJXRG1ESBwk5JTX6AAAAAElFTkSuQmCC) no-repeat center center;-webkit-background-size:1.4rem 1.4rem;cursor:pointer;z-index:12;position:absolute;right:0;top:1.8rem}.mod-vcode .pass-form-item-submit{margin:0}.vcode-submit{width:24.5rem;margin:3rem auto 0;-webkit-border-radius:5rem}.mod-vcode-content .pass-form-item-submit{margin:1rem 0 0}.vcodeInputWrapper .vcodeInput_9300:focus{top:100rem}.vcodeInput_ios:focus{visibility:hidden}.keyboardInputEle{width:4rem;height:4rem;display:block;float:left;margin-right:1rem;text-align:center;line-height:4rem;border:0;border-bottom:1px solid #aaa;-webkit-border-radius:0;border-radius:0;font-size:1.8rem}.keyboardCursor,.keyboardCursor2{color:#3c76ff;font-size:2.2rem;font-weight:lighter;-webkit-animation:blink 1s infinite;-moz-animation:blink 1s infinite;animation:blink 1s infinite;border-bottom:1px solid #3C76FF}.keyboardCursor2:before{content:"|";position:relative;height:4rem;line-height:4rem;display:block;width:4rem;text-align:center}@-moz-keyframes blink{0%,100%{color:#fff}50%{color:#3c76ff}}@keyframes blink{0%,100%{color:#fff}50%{color:#3c76ff}}@-webkit-keyframes blink{0%,100%{color:#fff}50%{color:#3c76ff}}.keyboarddone{border-bottom:1px solid #3C76FF}.keyboarderror{border-bottom:1px solid #E85352}.vcode-slide-faceboder{position:relative;width:9rem;height:6.5rem;-webkit-background-size:100% 100%;background-size:100% 100%;-webkit-border-radius:2.6rem;border-radius:2.6rem;margin:4.4rem auto 4.5rem;overflow:hidden;border:0}.vcode-slide-faceboder img{position:relative;z-index:998;width:100%;height:100%;border:0}.vcode-slide-expression{position:absolute;left:1.35rem;-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);top:50%;margin-top:-2.25rem;width:62.7rem;height:4.5rem;background:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/expression.png) no-repeat;-webkit-background-size:100% 100%;background-size:100% 100%}.vcode-transition{-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.vcode-slide-control{position:relative;height:5rem;margin:0 .65rem}.vcode-slide-bottom{position:absolute;left:0;top:0;background:#F7F7F7;border:1px solid #DDD;-webkit-border-radius:10rem;border-radius:10rem;width:100%;height:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.vcode-slide-bottom p{position:absolute;font-family:PingFangSC-Regular;font-size:1.8rem;color:#B2B2B2;letter-spacing:-.87px;text-align:center;width:15rem;height:2.5rem;top:50%;left:50%;margin-top:-1.35rem;margin-left:-7.5rem}.vcode-slide-cover{position:absolute;left:0;top:0;background:#4b96ea;width:5rem;height:100%;-webkit-border-radius:10rem;border-radius:10rem}.vcode-slide-cover-error{background:#EC3F3F}.vcode-slide-cover p{position:absolute;font-family:PingFangSC-Regular;font-size:1.8rem;color:#fff;letter-spacing:-.87px;text-align:center;width:15rem;height:2.5rem;top:130%;left:50%;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);opacity:0}.vcode-slide-button{position:absolute;-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);top:0;width:5rem;height:100%;-webkit-border-radius:10rem;border-radius:10rem;border:1px solid #DDD;background:#F7F7F7;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.vcode-slide-button p{position:absolute;width:.9rem;height:1.8rem;top:50%;left:50%;margin-top:-.9rem;margin-left:-.45rem;background:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/arrowblur.png) no-repeat;-webkit-background-size:100% 100%;background-size:100% 100%}.vcode-slide-loading{display:none;position:absolute;width:5rem;height:2.5rem;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/slideloading.gif) no-repeat;-webkit-background-size:100% 100%;background-size:100% 100%}.vcode-slide-button-focus{background:#4b96ea;border:1px solid #4b96ea}.vcode-slide-button-error{background:#EC3F3F;border:1px solid #EC3F3F}.vcode-slide-button-focus p{background:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/arrowfocus.png) no-repeat;-webkit-background-size:100% 100%;background-size:100% 100%}.vcode-slide-footer{padding-top:4rem;font-family:PingFangSC-Regular;font-size:1.2rem;color:#B7BCC1;line-height:1.6rem}@-webkit-keyframes horizontal{0%{-webkit-transform:translate(0px,0);transform:translate(0px,0)}10%,30%,50%,70%,90%{-webkit-transform:translate(-1px,0);transform:translate(-1px,0)}20%,40%,60%,80%{-webkit-transform:translate(1px,0);transform:translate(1px,0)}100%{-webkit-transform:translate(0px,0);transform:translate(0px,0)}}@-moz-keyframes horizontal{0%{-moz-transform:translate(0px,0);transform:translate(0px,0)}10%,30%,50%,70%,90%{-moz-transform:translate(-1px,0);transform:translate(-1px,0)}20%,40%,60%,80%{-moz-transform:translate(1px,0);transform:translate(1px,0)}100%{-moz-transform:translate(0px,0);transform:translate(0px,0)}}@keyframes horizontal{0%{-webkit-transform:translate(0px,0);-moz-transform:translate(0px,0);transform:translate(0px,0)}10%,30%,50%,70%,90%{-webkit-transform:translate(-1px,0);-moz-transform:translate(-1px,0);transform:translate(-1px,0)}20%,40%,60%,80%{-webkit-transform:translate(1px,0);-moz-transform:translate(1px,0);transform:translate(1px,0)}100%{-webkit-transform:translate(0px,0);-moz-transform:translate(0px,0);transform:translate(0px,0)}}.vcode-slidefaceboder-horizontal{-webkit-animation:horizontal .6s .2s ease both;-moz-animation:horizontal .6s .2s ease both;animation:horizontal .6s .2s ease both}.zindex1{z-index:99}.zindex2{z-index:98}.zindex3{z-index:97}.normandy-history-con{position:relative;padding-top:4rem}.normandy-img{position:relative}.normandy-img .normandy-active{position:absolute}.normandy-img .normandy-del{position:absolute}.normandy-history-con li{list-style-type:none;position:absolute;-webkit-transition:-webkit-transform .5s;transition:-webkit-transform .5s;-moz-transition:transform .5s,-moz-transform .5s;transition:transform .5s;transition:transform .5s,-webkit-transform .5s,-moz-transform .5s;text-align:center}.normandy-history-con img{height:4rem;width:4rem;-webkit-border-radius:100%;border-radius:100%;background-image:url(data:image/jpeg;base64,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);-webkit-background-size:100% 100%;background-size:100% 100%;background-position:center top}.normandy-history-con li.normandy-head0 img{height:6.6rem;width:6.6rem;-webkit-border-radius:3.3rem;border-radius:3.3rem;-webkit-background-size:100% 100%;background-size:100% 100%;background-position:center top}.normandy-history-con span{font-size:1rem;color:#B2B7C2;line-height:1.5rem;height:1.5rem;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;width:6.9rem;padding-top:.8rem}.normandy-history-con li.normandy-head0 span{width:9.8rem;padding-top:1.2rem;font-size:1.4rem;color:#121C32}.normandy-history-con li.normandy-head0{left:0}.normandy-history-con li.normandy-head1{opacity:.3;margin-top:2rem;-webkit-transform:translateX(13rem);-moz-transform:translateX(13rem);-ms-transform:translateX(13rem);transform:translateX(13rem)}.normandy-history-con li.normandy-head2{opacity:.3;margin-top:2rem;-webkit-transform:translateX(23rem);-moz-transform:translateX(23rem);-ms-transform:translateX(23rem);transform:translateX(23rem)}.normandy-history-del{display:none;position:absolute;right:1rem;top:-.3rem;width:1.5rem;height:1.5rem;-webkit-background-size:100% 100%;background-size:100% 100%;background-position:center top;background-image:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/historydel.png)}.normandy-history-con li.normandy-head0 .normandy-history-del{top:.1rem;right:1rem;width:2rem;height:2rem}.normandy-history-active{display:none;position:absolute;right:1.2rem;bottom:.1rem;width:1rem;height:1rem;-webkit-background-size:100% 100%;background-size:100% 100%;background-position:center top;background-image:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/historyActive.png)}.normandy-history-con li.normandy-head0 .normandy-history-active{bottom:.1rem;width:2rem;height:2rem;display:block}.normandy-history-con li.historycenter{-webkit-transition:left .5s,-webkit-transform .5s;transition:left .5s,-webkit-transform .5s;-moz-transition:left .5s,transform .5s,-moz-transform .5s;transition:left .5s,transform .5s;transition:left .5s,transform .5s,-webkit-transform .5s,-moz-transform .5s;left:50%;-webkit-transform:translate(-50%);-moz-transform:translate(-50%);-ms-transform:translate(-50%);transform:translate(-50%)}.history_login .pass-form-verify-wrapper{-webkit-transition:margin-top .5s;-moz-transition:margin-top .5s;transition:margin-top .5s;margin-top:9.8rem}.history_smslogin .pass-form-verify-wrapper{margin-top:14.4rem}#face_login-errorWrapper{margin-top:18.8rem}.normandy-mod-content{}.mod-dialog{position:absolute;top:0;left:0;width:100%;height:100%;z-index:101;background:#000;opacity:.3}.mod-dialog-body{width:80%;position:absolute;left:50%;z-index:102;overflow-y:auto;-webkit-border-radius:2px;-webkit-transform-style:preserve-3d}.mod-dialog-content{background:#fff;padding:2.1rem 1.6rem 1.6rem}.page-dialog-content{line-height:2.8rem;font-size:1.6rem;text-align:left;padding-bottom:3.5rem}.dialog-title{font-size:20px;text-align:center;padding-bottom:3.2rem}.page-dialog-title{text-align:center;font-size:2rem;color:#333;margin-bottom:3rem;line-height:2rem}.pass-dialog-orangecolor{color:#ff5400}.dialog-content-btn{height:4.4rem;line-height:4.4rem}.dialog-content-btn input{background:0 0;border:0;display:inline-block;color:#333;text-align:center;height:100%;width:47%;-webkit-border-radius:2px;border-radius:2px}.dialog-content-btn input.pass-dialog-btnleft{float:left;background:#fff;border:1px solid #ccc}.dialog-content-btn input.pass-dialog-btnright{float:right;background:#3c76ff;color:#fff;border:1px solid #3c76ff}.dialog-content-btn input.pass-dialog-btnleft.blue{background:#3c76ff;color:#fff;border:1px solid #3c76ff}.dialog-content-btn input.pass-dialog-btnright.white{color:#333;background:#fff;border:1px solid #ccc}.dialog-content-btn input.pass-dialog-btnwhite{background:#fff;border:0;color:#000;height:4.2rem;width:100%;display:inline-block;text-align:center;padding-top:.2rem}.dialog-content-btn input.pass-dialog-btncenter{background:#3c76ff;color:#fff;border:1px solid #3c76ff;height:4.2rem;width:100%;display:inline-block;text-align:center}.dialog-content-btn input.pass-dialog-btncenter-disabled{background:#DCDFE6;border:1px solid #DCDFE6}.pass-fast-dialog{padding-bottom:3.5rem}a.dialog-banner-mainbtn{background:#3c76ff;color:#fff;border:1px solid #3c76ff;height:4.2rem;width:100%;display:inline-block;text-align:center}.dialogNoPassword p{text-align:center}.dialogNoPassword input{font-size:1.6rem}.footer{margin:2rem 0 1rem;text-align:center}.register-content .border-none{border:0}.fastlogin-bordertext{position:absolute;left:50%;margin-left:-2rem;font-size:1.2rem;color:#bcbcbc;top:-.7rem;z-index:10;width:4rem;background:#f5f5f5}.fastlogin-layer-login{display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;display:-webkit-box;display:box;-webkit-box-pack:center;box-pack:center;-webkit-justify-content:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center}.fastlogin-item{padding-top:1.5rem}.fastlogin-item a{display:block;width:3rem;height:3rem;-webkit-background-size:2.9rem 2.9rem;background-size:2.9rem 2.9rem;margin-right:2.5rem;color:transparent}.fastlogin-item.fastlogin-big a{width:4.8rem;height:4.8rem;-webkit-background-size:4.7rem 4.7rem;background-size:4.7rem 4.7rem;margin-right:5.5rem}.fastlogin-item:last-child a,.fastlogin-item.fastlogin-big:last-child a{margin-right:0}.li-img-tweixin_sso{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAulBMVEUAAADX19fX19fc3Nw1wSDX19fW1tbY2NjY2Njf39/X19fX19fX19fX19fY2NjZ2dk8xyU8yyk1wSDW1tbY2NjX19fY2NjY2NjX19fZ2dk1wSA2wSA3wiJL1DA1wSA1wSA1wSE1wSA1wSA2wSA4wyM2wSA2wSDW1tbW1tbW1tbX19c1wSDX19fW1tbY2Ng2wSHY2Ng1wiA3wiHa2trb29s2wiA3wSE4xSM2wiE2wiE2wiE2wyI1wCDX19eDmsXKAAAAPHRSTlMA+O0b+uHVbFoP0cetqEITFQ7anY5jT0s6NLZxNQfCy5Xw6aEn4Y7n28G6rKCWgoB1VUwpCoc/HWljRVkDLAkYAAAEfklEQVRo3qzV13biMBAG4F8S7jY2HUJLwNkUUgklYTXv/1qb45C1D5ZlU76ruRpbMyMNqnEG9kvguQZnjBuuF7zYAweX4vTaLn1jpvfoPz35j57J6Jvb7jkXyN55YETms1UXyBB169kkYg8dB+foBYx4yxZQEnaLEwt6OJVtEvO70Or6jEwbp+jc091biFLh2x3dd3CsvkuGtUIlK8sgt49jhC3iFo5gcWqFqKzLKRA4igiId1FRm4w6jlY3qI0qhEd+iBOEPnkCpQacWTiRxfig9KCM93GyPmd1aNnM+MAZPgxma/OTKXAWYZKtq48Z4kyhWVylATMEziYMNoCS4PwDF/DBuYCKx/q4iD7z1PfXwoVYqjvdJR8X41MXB0JuOLgYx+CH49iiOi6oTq2DvlAArUa8GcURKguojyyXi+Lcy+tmTSZuJusdKhHcRUaneIJGiyR56na9rTZJHaTujaL0VzKv9qeBcsZ9GttFB3itSaWbJUpZmVfPvFtBYTuRhdYos7ozsdejN2X+W6mxQJk36uFHwELkRU2pNUeJkAVIOMxH3niaNvUmE6WGKOEzZz+jXVV/5a9JhM991MAwM0wx9Lr7SX3gyIvT+dkAaB5EiSlK8IefCrWQl5n/JYCffu+SKLWDXiupUU+1paPMBWiOoj/ZKHUFPTuZozYJ5AxliZvbWU3KLbREsnhcE3lTTeqr4SgaJ8eMG9AzXcChZ+TVpFptsQEau9f51bQ5WVwPR9B6JgcD1TsUFaRfbzH+nNSy51nstO/RALZqlY2kyiRGtJ7JQ80vzWKz8aLq8VL1+0PgfSZVpnFhl18QMORtFPnf0ZgnkfrjaiyAZyIvzqdYojGRxV6hZHpwPVSZoqEmv2ZBeC6MR+heivTOzqXeOxQeDXAfCu8HBYrSvs//Xstfs8+v5v84Qp7PwZ6gMJ4dLJfx7e+sInOYERBrN9AT+0eLGeRGCMNQNIscIMkyEAjQzmYWqLOYgeL7n6tCorIrfdmRqnkXiGIn/v9bHiC5kaR3B13c5KSKsl0+wANwiVyUYzmJpqQoxG77U8wOlkg2WfItBV6O788lieZnDwWIm3w+U0wl4rL01MCEnun50TDlLu7+RS1E8NF4VCh3WLmtKh9gVPCwU57S4o62G4Bhx+NaucLQ1oMZjWsWHEX5fQjUwIAER0omrtCcPXVuIJsOSSaLPrjAlQXK83A7mfgARJ9tCzaP+fdhxJksFmRb2HihFqcHnK+Y6YWM12UdIaUvTnC39ABaRza/JnEkjQrNL9v3/55QsX2XAcQmZiKM35QAwhHKZp90xccRikOgzat6AoxqCJQx1iasKBz2MMbiIG4TjprHNKcxr4/LVVQcxO1Vgk3ZTvWeirJK0JchNqWbyUdlGWKtc2zK/kTrHHshZWMvpN6/UuOl4E+zdm4DAADCMJCWiv23RWzAZykZI+ewt0WdgvCtSR+z9LWMn+P0vU8DBU0sNBLRzEVDXY8a3RbzokYFLD1wrw5Yr8hdLRqYZQ+q4UYvPVGPZ875TwJ0jrZtBTDtOQAAAABJRU5ErkJggg==) no-repeat}.li-img-tsina_sso,.li-img-tsina{background:url(data:image/png;base64,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) no-repeat}.li-img-qzone,.li-img-qq_sso{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAtFBMVEUAAADB5f/X19fX19fX19fe3t7X19fY2NjY2NjX19fX19fc3NxGpeXX19dGpeXX19fW1tbY2NjY2NjX19fY2NjX19fZ2dna2trZ2dlHpudQre5HpeVIp+dHpeVHpebW1tbW1tbW1tbW1tbX19fX19dGpeXW1tbY2NhHpubY2NjW1tbY2NjX19fa2trf399GpeVHpeZLq+pGpeVLqelHpeVGpeZIquZGpeVHpeZIpuZGpOTX19e+AMOpAAAAOnRSTlMABNT57Q7hWk2tnhn2893GqY5vakE6NB4TRg7rNKRv59vJwbqllpaCf3VkY0YpCMZmF9IesIgnul1RnBebHwAAA7JJREFUaN601ely2jAUBeCj1RsGm8XQkIQ1ECCQTLY2uu//Xk3SNiUlXIFxv/EPz1gjee6RrnAYUwTzrCGtVkpb2cjmQWFQFRPmkl6lsjGJ4jiaNGRKr2QeGpzMLMeKSM5a7QRbknZrJonUeGlwijBTpOMgwZeSINakshAliUCSikLBjgkjRTIQZaZfDWmwMPAyiwENVwJH6kiyrQ0OsmlZkh0coxeTbgocTDQ1xb0jstU0TXCUZEr60LRFTraNo7Ut5QIH6I4oMijBRDTqwqvQqomSmkoX8LhJdQeldXR6A1ag7BonWFsVsPOT7OIkXUkBUx8lezhRT6q9VSpS28XJujYt9nzReo0KrLXu4gtipDqoREeNBHbl1ERFmpRjR0gRKhNRuBO+tgaVMVb38FlMbVSoTfE/udAUlZpSB1uE1Al8Hi4v6jXXv716EfBKtNwetfLvoJdb96F29QCfJq3wQQytAOv83n12dQaesEOx1eNa/OBrt6N+Dl5rq+vJwQYMceG+UPsG1mYg/56xhW/+MissPk5bpgwYT26P2jM4RmV/XiI2X7fXLVjR7x9fUsgV6N7tdwlOSEu8GWuB/e4co3YGhtDjXxWKwbh3nDtw4vcahRT4EiibQvBe/JwStkKsmgAjoRyAlGBcON45OFIChmZgfHe8F3BmZFDwfajueJeeflQgYK8y0Xe8J8/FFmDOZvzDefQ9Kc+RpWA8Oh++46UZGtIfQfkQZOPtYfSdzzU4DQk7+Z8LTCx0xGbsVT8DI9LgWt1zzfk98u3uZ7NWjMMgDANJ5yh7QmBD6gYpAqT8/2GVUYeCxF0KsorVsWqKiX2+O8sBEAp4tPAAlKI2F4VNKEXgJQeby6JDLxlc02cuDDuCayofUmQ8WlBox61izsWxgFZx3Ox8Lg4Hmp20a1JkPCxo1wI4lw+oAeAIZKqlSCDzGPTHFbBYLTQOdYvHA40tLufeMMTxXq4pGFvA4DVkl1iinHytDmDwQqNjNBQ0vRTMCEZHPvymF0QbNvzy8b0KDvw+Hd85AfHgCWyXCAGhFMp0pMQ8pFCcBHa0S0REAimNNZajDaCxgIiXg1qDiPheSuCo5pr9SxihlMDFkNZ+J/xpqrhsKNRMxBAu54ShcZ8/P4RKIk5LvR7XTxHLOeWCVEjBbBOQkmGClLakpi4Kasua2sKsurSsLY5ry/vaBoW2xaJtEmnbXNpG3f+txmtm6T3s3tOG9Z0s9xNLA/dbe/hhcePOqyf6yzPX13/e+L6eSfmd6+IAAAAASUVORK5CYII=) no-repeat}.li-img-tqq{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAn1BMVEUAAADX19fE6/fX19fX19fW1tbY2NjY2NjY2NjY2Njd3d3X19fX19fX19fX19fY2Njc3Nzc3Nw6y+43yOs3yOs4yu03yOs3yOvX19fW1tbY2NjX19fa2to3yOs9zfA4yOs3yOs4yOw5yew4yOs5yu43yOw3yOs+1PXW1tY3yOvX19fW1tbY2NjY2Ng4yOw4yuza2to3yOw5yes4yOs3x+r+1LUmAAAANHRSTlMA/gXv49VsWk03EtHHrahDGQ0hwKk+9Ni+nY5jHuMW65Z5X7QraYwO282gloJ1VDQpgkmda1aT/gAABF9JREFUaN6s0UeuwzAMBNAZU7KKVZyd2wE+UgDf/3Q/yyDFVW8tzFAktrk4c0+hUUKKakK6G3dBKRc7NHwSHbp4vcYuaOFTM9hLgfSxI6lvdW7xos31TZPsxnMdNpHSmxZftaYXMlkcVBlNRlstvrGR1KY6Ej/+UT08VvmH4t+4u8I1VHW1cZZasXHYw/eU1/j1CmHvsZkVpha7tIlit44zUGXslhWHTZ+eAqPHAT4yTFjlhDUOqikOK7KIw2FOJGORoZpxwqxolvP1hFMmvdSQqT1O8pr59wbVhNMm9euKk8iMAmaRr3NWgQ5FOIYKnwbWKKTmgA+WEcVEWrzxojyK8Ure03pmFJTZv98loahEhxfVP6FV2pwgFAPDA4ZaqOPBZR2oyKF4lEH8/7+tj0NfpgzLftPnJNnNJtHWZ/e/8Oo08J9+tG2O8fx90G3upP2sgzbFz5Mhfcw7ac+KOxuCEOLD8z9Kb4awcVYxrRkCj756Py3yY564QZ/iIDAFtvVMTKDu4rkP8dar7jKWMaZgqhm7E0AnzzYjDpH48stoQwB37eNtKTRjRRs/H3e9FSpAHD5f1l/DJfHbiu/RGKdtS0zAhbEePPoB7OkP8ccQbYYE/b0anBrqoAxXBjlOmTeSyUEbhB72Cu1oElVrH5qCJ18bQGGnrTsiFiTgx5gfeLY68b+11fQEywAFKWS16yYZ+4y7sOoOj23SJHIZQIksmtEIyz6XQCPTbltwhRKU3DUDUsErABa5yiYs0B6KuELJEJ7P3aaliPbRgix0yrhHRaQSBPSCHJMKHTaLbqDHQsbyVEMVVNWB/AXq8o2WOsEEmTI9Q8W6jG6PviTHxAkqzKDECUyHbAe8c4kEu5kRAYk4HJuMELxzw3i+SpCMOE4gNEhHu1rWd3gZUhFgS7rCNqUvnbQLeG/eapy6+9LHd09qNvCg0UX7I85cdhWGYSAa8QtJYdVXWtFdJOD+/7ddiwBupXC8svCqaqWkeXhmPOYJymcH0hNWuynGqTsuMQacgLdoO8uwb0i4bE28zgG3qB4yEv6p8ppmRNhj3bgFPGS+pjLyE+2+kGOW17cQ+JpKouEMWf6wtOl9lXX18hkTjaDiAHNrk5L/ijwgVCjYMe1cW8JIswTATuEaFtA4yjIq8xBcV8LByA1lty67jEbCIcpUwOwPIw1Fhpd46FugTCB9hZu5bsoY0/RYXoAxaoYB6atswVwb6kr2MakeItlCwktpIKnMrnGZeXgVXiQdFW7udar7nJYY0zUfAZqlI4vf+t9nPEwUvyrfiXNSgGD5bhcggwXIXIDYJVQxONEooewi8FZJk4OLQC5jFwGcQMFlrF2I90QpZiFuWwknOGPbSkAzROU5mhJshth2TseXiO0cb0PK21JzNwW9bU1vY9bdWvY2x73tfe8GhXeLxbtJ5N3m8m7U/b7V+D/KJksHx3Qv2RPWg2nKnYxFA4Nv2QMJCzcG89IT2i+eoXz5DwCy95LAOnqoxwAAAABJRU5ErkJggg==) no-repeat}.li-img-qr_app_login{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAMAAABEH1h2AAAAwFBMVEUAAACYmJiYmJiZmZm+vr6Xl5e/v7+9vb29vb29vb29vb2+vr6YmJi+vr6+vr7CwsLDw8P///+YmJi8vLyXl5e+vr69vb3MzMyYmJi9vb29vb29vb2bm5vAwMC8vLy9vb28vLy9vb28vLy9vb29vb29vb29vb2/v7+ZmZmZmZm/v7/Dw8OYmJiZmZmYmJiXl5eYmJiXl5e9vb28vLy9vb2ampq9vb2YmJiYmJiYmJiXl5eXl5eYmJiZmZmXl5eZmZkRPPILAAAAPnRSTlMAgOT4O9ZH7ePSnnRsX04bCAJw++aJhwvyk3nOIBHm3MvJt6WAbVFAOCooItnbdO1LyMC/SUjVmopjqZ2Vju7SEMQAAAKbSURBVEjHpZdpd6IwFIZfgbKKaFkUpe5al7bW7p3l8v//1QwuGU2CwvB8Muf4nBAS3tyLXFpr3Z11uzNXX7dQjqYejnxzbMdRFNtj0x+FerOwfG8br1Pt5P9Nbfpq2PdF3Na8ZzkeBDzH6s2vrkKzhg3k0Bha2kX5bmIyWUbDnNwhl9UgbOMi7XCwQg5vhouruMYbpDh9DQXQ+g4kdH0PhfA+YsncH20UpO0L8+t9D4Xx+tz6V4aGEmjG6my/By5K4Q5O938SoiThBAzNbJfV2yZbbctqoDQNq4U98yH+g+Ece3rc5LV/LLE8GZ1P3zukg8XZdALohHPf2ueH7fB6mtKOlBQobJByumPvksjwBJ1uMgJ1p6v7EfG6Z2R5pr+A1+kGGfWDfouMB17Hqw4gmsp0hShhekKqItGnIYCRJtPVtPPO9PdOqkp0bQS0/KZMpw4tmL74O5LoTb+FtQmZnjwvTta+eE8kOsw19LFEV24zvg7676eMQNTHOlxb1FN1z37f2UjQbRezWKIfoQABMQQ9nqEb8fqSlCObT3xu2IiWOCfqMr0cTJ/FF2YPPvFzE2Rs8bWhpfjwrn1p7RsEuxERHqSvTh9fefOUZtAPkm2c/Ngo9YwvlekZ0mPDDq146m4POhHThUOLkZZ35g+6etPpSHVtxD5Y2Rd31OvPcn0a5sbFo0oJ0xNSM2ghxgULKzFtmA4GH1byqKTHDDrqd9vtL3w/BAkflfKgTo+wtRNhKwY1uyYu5nz9OfuhcHqjxy6pi7fME/BdWyCp1bhLquIVWe2CrlYeVCxOKpdG1QszhuMXLws/HAjEvaJFqd+tXhKL6MUKcr16O1C9GaneClVvxORt4AvfBr6wNrBQExqdN6FRThNasQX+AwgWdZdofh1XAAAAAElFTkSuQmCC) no-repeat}.li-img-device_login{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAMAAABEH1h2AAAAvVBMVEUAAAC4uLisrKyZmZmbm5u9vb29vb29vb2+vr6+vr6/v7+9vb3CwsKYmJiYmJiYmJiYmJjJycmYmJi+vr69vb29vb25ubm9vb2+vr6YmJi8vLy9vb29vb28vLy9vb29vb28vLy9vb28vLy9vb29vb29vb29vb2+vr6/v7/AwMC/v7/Dw8OYmJiampqYmJiYmJiXl5e9vb28vLyXl5eYmJi9vb29vb2YmJiYmJi9vb2YmJiYmJiZmZmXl5e8vLz2HM7+AAAAPXRSTlMACAQoEtLlnl9OSDwb5MiQeQv5iYeTEHl1bvju6+HczsvJt6VybVFGQDgoIkMcU/PcwL+liIB/YUvYtaw5ANOjygAAAkFJREFUSMell2lzqjAUht+k7KItF3Df11qXultvG///z7qRcjtQggJ5PmQyjs+QhMPJOUiFLixjUqtNDGtBkQ8ycwfNzlD3Pc/Xh53mwJ2RzPKr3tqdSpH/k9Jp19Jfs7h02lPrNhLYdbU3fbiLkto3kYLZV0t35epI43I6pjaqIpW3ruvgLo7bfUMKVtvAQ4y2BSFjbY4MzLUxBNSuNjJhX3zBsy8OMuJcE8+3NBuZsTXr15m358jBvB07/2rXQC6MbvT9j1zkxB1FIlVz8uqO9hO/VDWRG1Ol4WzaRwH603DSM4voZi/MDioKoX7nD71eTK/rt5G07GK63SJ8nG1RkN2MD96xqH5y+TCI5S9FIUBVUb5jkiqKQoMxmBBFieXFAUCbBBHK7BmoMPYe/HpgjD3hiQWc8cL+IAJpUiw6EOlsDc7mro7OAtZQpG/YHuBeOdTXhBCa0IcWDF2kfwarP7C/of4BTkLXDUx8kd54Z+vb2s+hfl6tVsmn+xPUPKG+Z5/4YpVlZO+rhO7V0vQPvvoDe3mkpy2eltl6w1bLu3v3JylH18AzP7YKlo+OzhqK9S/G+PhfX/OocwQvLiVsGrcZWyG6970obHjQivUDX3u6Hgbt70+GEhodQMhtCKC3n+KfjOQHK5kuJJOVXKqUTNRy14TkJSV5Rcpd0LLlgXxxIl8ayRdmnPE1e1l4EZSlvpq1KL3W5UpiuYJcrh2Qb0bkWyH5Riy9Ddwe423gccvbwBxNqBdvQr2UJlSyBf4HshNRox/DyWYAAAAASUVORK5CYII=) no-repeat}.li-img-nuomi_login{background:url(data:image/png;base64,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) no-repeat}.li-img-voice_login{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAMAAABEH1h2AAAA/1BMVEUAAACZmZmZmZmampq9vb29vb29vb3R0dGZmZm+vr6ZmZm9vb2+vr6goKC8vLy9vb2/v7/BwcHDw8PFxcW9vb29vb2bm5uampq9vb2bm5u+vr6/v7+/v7++vr69vb29vb29vb29vb2bm5uamprDw8OZmZm9vb2+vr6bm5u8vLy9vb2ZmZm9vb29vb29vb29vb29vb2ampq9vb2+vr6+vr6goKC8vLyYmJi9vb29vb28vLy9vb29vb29vb2/v7+ampqbm5vCwsKampq9vb2ZmZmbm5ubm5ucnJyampqZmZmampq9vb2bm5uampqampqbm5uZmZmampqZmZmampqZmZmsMcHzAAAAVHRSTlMA8fWACOvjBPdF+4BSEcx5NBoVEu9xLfifYEsxLQzGtK6RZ1se5pVbHPXp3t3Y0MGocmVhPxPDvoc7/b+jjV45NSO1ak5GJiD+18e8pZWRbdKnelZN0wLTAAADS0lEQVRIx52XCXeiMBDHJxEQQUERFW+tR73qva22VWvv7bnHfP/PsqCtz5UE0X/fy/OR+TGZIZNMgavgMjNK6PrdPFSFA5XPzLrNTtEqq5O6dSU1C+o46BsOXZuvelTYeltoUhDLUT9s8PRMSxju50u1cxXa7/msxzU6PTvPecJGqePpYSQmBP5sVlIF8H6/pcV4c2ExDHulS5wUqlIWfCgjnrIeTy4N8KWcOGT47grgU7HLsCtuyQDfioq5nZyL3nF7OzOkMBwktbAdakmFA1W629qpHU7aHk8CJ4/MmapY3VTJGWenBihRCA0w5xKlTSn02PRPRJnISH+xJoXWd/Y5zk9oigwWA1TwhLl7+1+Ra0w6QhGduBu2/wjLvbgunusEE18QWln9qFCyYBlYKy5vGpy1k+TqR5JQ5urH3VUFvXLSjjTyHQU7+S1n9TOdh6d+rHGZg/fn9qBFj8WHFkCwKRyLR+3glx3GYR34u4s3bp/cl0nTzlzRjaeRPuzg7Wd020lVGFmsdZP0VuZTNl5DBq5lIVFm4pWd715DxW3XG4POKPVPWR7ADaHpdSiU3ABF6rYrZkCfuB9XCH5AhKDy5DhHJJF8CmtM/K7uftyQHeM0Khh4CBCFpp0X/nbbnU9hboFbbST3ABcUFaIgvjilTyqM1OUgdMXA0wRreYABJfbfwDl2sMboD0QDqhKrltvPcluwo6gMKg0nDOdLuhQ37aGZZ/BPiLLy8LW5PijKbwyjacGJn3lU3VBE0g6k7z9vaQrJS5B1WjpZVyfA5NsEUSGE2iN9Z9FQDNvDuMBpcv7UVixJ3SbZBmbcGcUlcLR4VxDvf/AuuvX5XubfUEmCF/x7arSu+s5ReNxZu6Or02PwWXnTyx2Bx83YZuuPODYNxDfOVLm+1ewYPD4pcFrAVhw2qltwmILacLtENP0wvH/9f68lZQ6hdU3Y7bWyhzRWMVe3fRnzS0/NKOPG4rW0bkdRfkN9fEudk9T9X6zPb+iNQqnqTWcL1wJ/VlA9/9uIl1tD8FS11NIFDjwz6/H93X5ftMbumMMls+zv08YS3VZ/GM1v3E4TRbM3ioNvxeZWtylpvWLxXBPNQj3MZ/l5yI4zmWnO8DD5B0zwWnMFdY1SAAAAAElFTkSuQmCC) no-repeat}.li-img-huawei_login{background:url(data:image/png;base64,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) no-repeat}.li-img-feifan{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAsVBMVEUAAADX19fX19f29vbX19fX19fX19fY2NgAjtUAjtXX19fX19fX19fY2Njc3Nzb29vX19cAj9fX19fY2NjY2NjX19fX19fY2NjY2NjX19fZ2dna2trh4eEAjtYApvsAjdUAjtUAjtUAjtUAj9bZ2dkAjtUAk9gAlt0Aj9gAjtUAjtUAjtUAjtUAj9bW1tbW1tbY2NjY2NgAjtba2toAkdgAjtYAnOIAjtUAjtYAjdTX19fhoWO8AAAAOXRSTlMA+qsE1uzhWpbk88eeQxkO0Du+jm9qY09LOjQeEHcE2IvtrVYT8x0PL7+zpp9J6JaCdV8pKIIJyGk8kZE5AAAEUUlEQVRo3qzNt66DQBSE4dksbQBEXqCkdhDdef8Huy7taxsT9mtHmh/b5IO5cVdoxZjSheM3M+RIJe+rgh6sdCX3npdOWnooqj5BJG9LRiSvTcjwJAvNVRKxsj3X6Dkj5U2GjzLjFTHe4yBhJDHeCawQHWckjThy30q63Cf8NN0vJNvdiViQbgQ2EY2mImKP2ZOtBTYTtSU/Y7NOEc+wS8ZJddhGVKQDdguaKoENRkd8wgETJzfip0GxGgfVTA34IVgVcVhUNmCVYXrBCYtmZvWf5IhTRkkrhcDkjJNmyQK+GKwecdqo7fBlUWpBAotSIz4QjkUkEZkTeFdRjURqqvCmI45kOHX4Z1Z6QjKTVjNeeQpIKJDHi0gcSXGKeCL+WK333gRhKArgR4oO1CA12WaW8RCi04F7EOZ2+f4fbLbgK+uda+YvJhj/6NHLsSUcBgAvTxIJK8EwFDi6+71BH0SUWTfpDgfCHQjwItopYEcMXHGyx93C7KmWeUqKB0u3J7ue+yKMq6cJ7fkrWBIvLjqz5h0Gq4SOVrD23szQcnqPpu/v09EnTi3TdSkByNSrtuA89hxok90bg5KI+QX5gnbWdaZnJ8FxepOuo/f4aUlnFtVxfTq3AeO+a+q0L4zd1/ysmJOSHZIXdM7npiT603ZCYxj4pHhbINZZJTqqtSmkvjOyXhNRBcZYz2hmPqVJSWIoMlFrdtZE81hfSLaT/OCfIWb6oAnYgAiteBNJdDz1sb5QDaBQOYxAHzyhCz7AVN9os5/UEsC2qsFyQ2DSvPIBz2CVOuCC12aCB2YfIi0HY6m69XV5P3rADXOUdWVMnrOsKMqy9M613S08L43yJ/AH2w3emoAJ+LN5xd/lNzhDMAEWvBhmQwcjF0ZzspFyNRqp1/8D2P/CKMRgepWADEbTAfrOVQJ8GDl99MYw8skOt919E2c2OwoCQRDukDWB9bLzAIwshL9RLgaBff8X28MOziL5EjB27JMaQxGaqa6q1gc4RJoA0QGavBvgG5v8dXwJwAlf0+PHSwBaPGjR5/MAt7q7kwVRBZDdNgAr4vzHicgO6fq0AaAXO/+tIbrGgZNvOb7xfP0RBw6OzOmHqzzH4/KHHkcmDv2Bm9DWImLcv+t3OPRZtkiBr7ztXJ5WYvL5SRmWLSy8RGKifvM3j41Uk0uSMa2FhRdLRxGbw5l19x4XXriwdETxywi3esFBYyPC4jfId7KX6zKL5iS+vyjfvQGh6pIVbdpz+FJm/vmTAQkWimpIk0eFUs4370J7yUIFE8hlTXGd0jZ4qaYoOtNUwwYTuLaxXI5pmW3s2ohzXVH/sBHHKIEBsl1RAoUhHFhkdk8YAnEOVHO5pP2+OEc7kNKO1NRDQe1YUzuYVY+WtcNx7Xhfe0GhvWLRXhJpr7m0F3XvXzX+jrLJ0sEx3Uv2hPVgmnInY9HA4Fv2QMLCjcG89IQmi2cIL/9hIWX5DwDxxHRbWuJ7sQAAAABJRU5ErkJggg==) no-repeat}.li-img-meizu_sso{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAjVBMVEUAAAAApeHX19fX19f29vYApuHX19fX19fb29ve3t4AtujY2NjY2NjX19fX19fX19fX19fY2NjY2NgAp+IAq+YApeIAp+HX19fY2NjX19fX19fY2NjY2NgAp+MApeEAp+IApeIAqOMAqOTZ2dkApuIApeHW1tbY2Nja2toApuEAp+QApuEApuEApeDX19e4gPZeAAAALXRSTlMAZvfVBK/s4xsOC1o3x62onnFCMRydY76OamNPS0DnTHdSOBNb8ZaCKbwlzokphfAyAAADSElEQVRo3rTS2VarMBiG4a9JzNAwa2V0q7va1iH//V+eOYBKq7TUwrM4YIV/8RIA45jAbuOQK8mYVDyMtzYwmIppipA8xsM8SpIoDzkjLyyaCSKmyhkR35SZRo/Oyg33zby6rtHEjGRiNX6lbSKJxQ3+SFhOLKrFyZk6YsStwOVExUmlBmeZVBGvLk4EnFQpMIoofSLAJdYJsVRgNJEyStYYrZYUa1xExyRrjCMKUhkulikqBEbQIUUGf2AiCjXOCiRL8Ucpk8HZjZ6YGfV0GU6yTO1whZ1iFidY4hpX0ZzsqffD17jSmg+/pYApjatpxYKBK1LuMIGdlBq/EKEvTyJgocBPBaWYSEoFfqgpwmQiqnFkLZXBZIySaxxKKMOEMkpwIKAYk4opQI/gTGNSmnGBbxWlmFhKVX8DSmBiQvW2YKnE5Eqy6LQbmHwLaDWUYgYpNd0vxQxmYFjcnUSYRdQ+eEU1ZlG3f2ouBWYhZA7PsAQzSZgB0JDFTCw1AArSmImmAgDnmA0PAUMbzGZDBgGVmE1JASxlmE1GFtv+NxaPiwOP4mjxBXhfLO6A+8Xe8xJisbhF68EPdTRtETN8e3NHVkeL/4B75x6A14OhpXNPaK380B6LEXLsvTv3euN9OPd24/m7LNvF1qoLrLoVP/M5HOAh/LF369w9vEfn/sN7cu6uXex0gc6ncx/L4UDIofKDwHM/sGgDz0MBsXLuZonhQK4go/OBl2VHHASW/vOsBE4EIgmWnA30vPQDdx/tfYcDCftq1gxaGAZhKKxzuwxkh8puG6O0h7L6///enCDNijhq+ai5tNVCQE1M3ns7HHTP+P3HQf0SPUY/xpfyElVv8hCCIgVXcZONLTrIH9M49XZKOJjT+2V1TK0pO8gHWhj0Uxoc1Hn5Z/KrQLudyg7yqcJ5YfN3XYS9ZKr4SXZOayefndbXfLILU4v1McUlu/dKJjs8XeMXDn9lKote+njZghdeeOlIF794+Y43IHQLhTeBdBuLN+I4lECDITicQwNSNKSGg4I0rEkDszi0TIPjNLxPExQ0xUKTRDTNRRN1x1ON+8jSNujeasK6Jcq9QjTQnuxhg3CjZelJEs+YnHjGVIhnAPnPB5DOfF7ZVT85AAAAAElFTkSuQmCC) no-repeat}.li-img-chuanke{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAMAAABEH1h2AAAAt1BMVEUAAADp6em+vr6+vr6ampq9vb29vb29vb29vb2+vr6+vr69vb3CwsK+vr69vb25ubm9vb29vb29vb28vLy8vLy9vb29vb29vb28vLy9vb28vLy9vb29vb2/v7/AwMC/v7/Dw8Ozs7PR0dGZmZm9vb2ampqZmZmZmZm8vLyampqampq9vb29vb2ampqampqampqdnZ2ampqZmZmampqbm5uampqampqdnZ2ampqZmZmZmZmZmZm8vLyQXjBPAAAAO3RSTlMAAk9HwAjt5cp0XzwbiYcRk3nR+OHczsC3paCbbUA4KCINC/XUyJ3g0rWkgH+ulYwo6djUdE9EGhiHMpDXbCgAAAIpSURBVEjHpZfrdqowEIWHhHAHAe9KVRSLVj29nV7O0fd/rhZoXdhOQjD7Fz/4VrIyOzszwJW2oE4SRYlDFxq0E6O+1e2NJmEQhJNRr2v5lEnDN1NjuHdr/zN3PzSmNzKsRgax7cEveXY8IFoT7W4sAhwRa+MK4c7YJCAQMccd4Gre95cg1NLvz4EjajjQKMeggMo2ZyChmWkDoujkgZS8LETWzlKQVHr6tT41PZCWZ9IfZ27MoIVmxvyi3n0HWsnp1+s/9qGl/HHNqeayLb40z/7VMgKtRTba+SrAFTpfrQG5BieDr3SI4SrFVX5MMQ8/6KvDd23eDo//UsSn0zKJDMxv6+PxeF99vuef338R7xmssOsQEB0/pVeWei6+18g/w8K6wU6Ip8U+0NVh7xcFcEU400v6D5qLFoDWZQJc25b0LRqxrKvBogd8XLs705h6C6AjAX4rpGFEwZnw8XsxDRMHkpCLrxpoCBOIAh5e6Y5PQxA14utUiIs3L+bDROLodMY/OmHhvsq+ZfzCiW2zrXi+bcSmZdWFOfBM23RlOs/88rlW84V9y7lXbu9LxMXDY8m/YHFRhZUQh/9l/Z+wsOJGZV7b8GvB50hU8oP6JV/p77XYfXpFglrtmVB8pBSfSLUHWrk9UG9O1Fsj9cYMwD7Jt4UZ4tMwlm1KT5FaS6zWkCuPA+rDCC43E41Cmas2iMmOgbvLMXCHjIF8MRpcDqEBZwhVHIE/ANC6Tp2hu4zRAAAAAElFTkSuQmCC) no-repeat}#pageWrapper{width:100%;height:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#question{background-color:#FAFBFC}[data-role]{-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.wrapper{width:100%;height:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;display:none}.mod-content{padding:0 15px;-webkit-box-sizing:border-box}.mod-content-code{padding-right:0;-webkit-box-sizing:border-box}.pass-form-wrapper{margin-top:2.5rem}.pass-form-item-username{position:relative}.mod-page-tipInfo{font-size:1.5rem;color:#333;line-height:2.1rem;padding:4rem 0 0}.mod-page-downInfo{padding-top:1rem;clear:both}.mod-page-tipInfo-gray{color:#333;text-align:center;font-size:1.8rem}.mod-page-tipUsername{text-align:center;font-size:2.4rem;font-weight:400;padding-top:1.5rem}.pass-mod-loadingWrap,.pass-mod-reSendToast{background:rgba(0,0,0,.7);text-align:center;min-height:3.4rem;line-height:3.4rem;color:#fff;width:50%;position:absolute;left:25%;top:50%;margin-top:-1.7re,;-webkit-border-radius:2px;z-index:151;padding:.8rem;display:none}@-webkit-keyframes rotate{0%,100%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@-moz-keyframes rotate{0%,100%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{0%,100%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);transform:rotate(360deg)}}.pass-mod-loadingImg{background-color:#fff;-webkit-border-radius:100%;border-radius:100%;margin:2px;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;border:2px solid #fff;border-bottom-color:transparent;height:20px;width:20px;margin-right:10px;background:transparent!important;display:inline-block;vertical-align:middle;-webkit-animation:rotate .75s linear infinite;-moz-animation:rotate .75s linear infinite;animation:rotate .75s linear infinite}.pass-mod-Mask{background:rgba(0,0,0,.5);position:absolute;top:0;left:0;display:none;width:100%;height:100%;z-index:100;opacity:0;-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s}.canshare-account-list{margin-top:1.6rem}.loading-img{background:url(data:image/gif;base64,R0lGODlhPAA8AIQAAKyqrNTW1MTCxOzu7LS2tOTi5MzOzPz6/LSytNze3MzKzPT29Ly+vOzq7KyurNza3MTGxPTy9Ly6vOTm5NTS1Pz+/P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJDQAWACwAAAAAPAA8AAAF/qAljmRpmofhOMZxvnAsv5UA3IBQzXzPDzjcwEeMLRqDnakRvE2K0FIBAWC5ShFH0LGIegdaXOCUCAMSsEHi6jUlmgwlqTIwGJKvhQRgaJObOl41AA9+KARBT20HXYYmAwwOBAlyjpZzlZeam5ydhgcTE5meUQOIABKNpFEVDEEQqy8HEAJDJxFUOASxJwU3fScHpzcMvCYLBASKvWEOtsYkBxExFQ0GAc/Q2tvc3d7f4OHi4ycDEBIt5Me5ABCj3RUJ6C5vQargC7lo9Tj33wth0AjD4W5chQkCAiiJYICBQnUQI0qcSLGixYsiFkxowEZihD05/BlbYEBBthIGeYKg4QbhhoSOJFrioNDtFJcX/AAs01bPwDsLFQIk27ktwkmMSJMqhRIhAcdPC362aRDGZxtTDgJpsnHjpheuZzaB9Qpl0I2VlyZU/bkgwINpLyYQcMAApqMGASjJAknA7ogFEaSumpCIIpiuR8lVeIDAgd6KFfz6CQEAIfkECQ0AFgAsAAAAADwAPAAABf6gJY5kaZpVwTBJdb5wLMMBYAOUO+/8vBA3gGPRK8YqkcMrggg6BqdDIzHQGWERBoLwsI4OwBtBWVoIbI7c9QUOTk4NB/pdqhiCgML6NMArXgsJCUQmBxJ4EHsmfUEGawsMeI6KJBVnaFBrNW6UZQYEDHRrBwZyDgmdqTALVaqur7CxJguEsqkHAg4OCl62a3c3Ab4wFQ8UZCiHNwLDS3KoLxCNzVECBBEwA00A19QnFb2zgrXe5ebn6Onq6+zt7lcHAQYFyO+VlwAB4eoHD62MNsa8q6BACBGAQvahqyBtiAWGwRSiO5CgwYhABlrY28ixo8ePIEOKlIEkgkR3B3oU6FKzsMADciUSBLGIbhMEhZtsQDtXkFs9EnHQYEM3QY4wGBMEQMiUrsLPkVCjSqWE5ClHQw4I0NxzAAIBCrEo3JBglUfOraqA+VSkVpSqoPlgUExQ1kKWXSfXDAgwQSFEAAzqOl0XQY4Qph3bcIPJMQIECGg/gosVAgAh+QQJDQAWACwAAAAAPAA8AAAF/qAljmRpmlVkUEN1vnAsw5MD3MWs73vF3DeCi0eMVYamgwQIQCxOqcGzKDsoJILJC8JkIEcVCqKZo8K4N0fkFPkBCINTgqk2nw42YOBVmUy+YAJMAHt2JXhMhUUVaEAJhiYUQARTVBN0lZAiFQEQBnF2FQkEDgygmqhQC4Cpra6vsLFEAxQGf3wBCAgPsjEFeQAUrBZzQFq9JgsEg6ckjQAGyCYDwDePkYnSJQtjTMfbbhCZ2mFd4yMLA7fa2wEEBOLsdger8vb3+Pn6+/z6fQ8t+sEoB8BBGYEWKjSYcqDLsHwBAEg4YAHRDS8ILTyQSJGgg28CD0yo1CdBs4wog1OqXMmypcuXMA48zFjhAQEGDfYtOEeiwSSK+JQhAFliY5o1+ArciPaCWpCZvQ4YEIC0qSeeMLNq3cr1ENCWFRQ4kHCyyIEHEIiiUnoRqgy2AL6mgovRDlysdhYwcPBx4IABcg9BIKDIVQUpMSJCc7vvwLImeAUKAlCX5YIAFCJ3JRICACH5BAkNABYALAAAAAA8ADwAAAX+oCWOZGmeR1IsZ+u+8BsRAIAMca7vRl1Du6DQxPABCK7DojKEVRIQCusUMBpOlYIEwYg0XQ8f43BaKH7T0sDhI5C/Jppv0qosli2KEUCHl+Q1fUN6RoJ+Iglib0NrbUyHJBMGCWlNEwwEEJWQnJ2en6ChonAHBQleLhMCEDijLQNyDgUtDWwADqiuJBUCRgibIlU+CbolCwh7DScFhcW7gLetJQcQDg4Gj86IRhDZJRUREd7aTwwMAcDaORXj6u7v8PHy8/SQCw0Dj+ANi/RPNAggHKjwwBqDdO8G7DFwAFmNAPUsEPLh4IAtABDrTazhoEIANgQQumuwB0iFAROG+s3zaOtgRCwRJuR7SbOmzZs4c+rU0WCVtHfsXiyQQ6BdsQMCJOQy0eiWyFERahBrcaAIgG7wPEp5cSBAAqM7w4odS7ZsiwQSBB5aMAEsnKg1rsBZIOEqKIU1FPiJwIYBqArVCCw1ccethQkUBnOqcEBliQkIEMzSaVXCTkJyc6ZI4NjslxAAIfkECQ0AFgAsAAAAADwAPAAABf6gJY5kaZ5VNFRn677wewgAICxxru9PXQe7oNBk8AEgw2RpECgcWgljojWASAxP5WniqGFRAYcjwDJFCD6k1kSrOSKtymFRNkV973UJgocn7z44eiMNXQAGdUILaDVqgyMRCROJQxEGDAFZj5ucnZ6foKE7KQOaJwMGmaItC20SA1QINQyUqxZFPrQnPW5+tiMSRg6CJRN4tasMRgTEJAcBBAQNv8WGAEAudNQmDQYQE6bb4uPk5ebn6OnUKaZzyOUNDAgEDywDEggQ4eULsj4JFfjUmJIO0KwKbQA8UGcQAAMLDRA4YNDM3AJr10QsWKHOQoUCBMQg6njiwABtJH9TqlzJsqW5AwfeqXvG4EpFEhECqBqHq4aAfR6VHRnXzwiACSeKAiAwrpBRgiUC1qBAlJEPWCgmYB1ncCTLbhAAuhxLtqyoBgrq6ZnzqYIhqEkQKvR04N+aA8EMfIIG4SaJCjJFDEgAdFBMGQoU+CXJC+7KQg62sqywYLHZNSEAACH5BAkNABYALAAAAAA8ADwAAAX+oCWOZGme1XFUZ+u+8FsFDhKwca7rE+ADk51waHr8AA+isjRINHCmxnHQWgQUCeiy1ED4kqgEg5E9HQQ/8LYE+UkOroqWe0SsTYYfY76T/hx3JQsEAAhBSwcMPwmBJRUDfENWBoeNlpeYmZqbnEMqMAcFE5GdFhUUDg4KcGaKAAalJ0Y/sCcNDj4OrLEjbT8EkRG4AMC8JHl6pAVjVMYjEV4ADs0tcs4lEQEB1Nfd3t/g4eLj5Jsr5VUKBAKHCxAED7vhBxJ/ERYUP9zgfrQWyAAakOtxBFYECQ4MkLp2gJA+ESnQWRjAwAGBMhJJVFiwMKPHjyBDihzZqMIEBRB/CsgrEWqUtwRHbrRQ8KVbwyMOFqBwCKHbgmgPTwTwUckYPZw6qyTtdmtRSCvbSEpFtzHCSokHKCCwWLTRgQlLlQy1h4kmgas6bh6hgEkRgrBCBh15hWkAhQJbKtA80pVXhQcyT0Rw9arjph4OBFaZsM3wpgUSJMD1eGDy1DshAAAh+QQJDQAWACwAAAAAPAA8AAAF/qAljmRpntVxnGzrvm/1IERSwXiuDw4AOBGdcGgq+HwNorJ0GKxYC4KP8TQdEo/BsnVgOAhaViQQWLAOCp8juTU9jpAtD942JejLSM8Xr5O6X2FKFQZqgn4iFQs3bQcTCUGIkpOUlZaXmJcVEWaZLQkSBA+MJhVpAAmeJw1HqGJ7EqomhXhWUgB9siNvRwYtAwoGnboiXT4Ew8Q5CxMTycrQ0dLT1NXW19jQBwECBpEHFBAT2KZHEit3AAjP0hGtrukO7NEL76kHEAwFpNT4R8jZSixQQADCoYAIEypcyLChQ2gDAlAYwM/EgirKJiBQU6CFRgnzMlUQ0OocC1rjeJQduKUm5AABECrKgtCKgcxrEW6BYVihWciHQKWlaFgBFAIBkSYpwkjEyD+mdd7EXFKBwbuOk9JIuGmhQgMKE2Uaa5Vq0oIEB0fIOOKgbIkAreQp09NqnRUIPdpCm/AOQMoSFQY4i9Zgj6GEY6dwrbYArwMDi4mEAAAh+QQJDQAWACwAAAAAPAA8AAAF/qAljmRpnlZVoWzrvucAKRFs3/BCAIC04sCgaODgORbC5Kiy+J0OEh7EWTpMEjXlqaJAMJCoxeMBPgV4iIHWNOEBAsrDjmdYlxpueBKat5cCDhAHWhM7X36IVQNUiY2Oj5CRkpMwB4yUIzIQDS1naZglEUUADmpPcwqgJA9ubygVAjwPqiNtbgUsCwEJl5QHBg6BvbQsFRGLxMnKy8zNzs/Q0ZMVBRQJgykD19AVZ1IrEQgAdc8H4m41ogCpzwvnPGoVDQHYzhUUbgzD9gkQAfvSAgocSLCgwYOUFhQoUOYVwEgR5hAwFUPClGQKWkFgwQpAQ1Cx3PgIQ+HBw0f4fdyQE3gAgpSPARfAREgzyIEBM6MlQOAAAYV6QSZAkGAA6JoGo2QlIeLmop+MrfQJgeqG4hqXrQgYFbEgAUMUWKsiKtBq3IkJoz6ZIOuGwEkbFQzkg6kj6qUDAQg4YGDVToUrE3oxdXMkTIS3jdS1zcksbis9Ais8IMCAV6IQACH5BAkNABYALAAAAAA8ADwAAAX+oCWOZGmeaKqurLpQwdHOdFtJAADVfE8uiBzBR6xVFLmAa1AppgISgwx1mDBTBYRD0HSWIjnApHjA5Qre0iI8JlYY7HSpAHl0iQ2Cw3CX+0UVU3+DhIWGh4iJin4LBgoDKhECCn2LFgcEOQ4RKUhiliQDDmEJWA4EC6AjB0E5DS6CqhYTDAQJlbIrgbm8vb6/wMHCw8RyFQMJDXcLysMFowABTZgAD8IHcDkIMmXV19kADlPMuL0J0NLFI8cPE+Xq8PHy8/SHgbHqEQoEEg/4iwcGNPgnAlsYAAZkGQQgIJWJAgfDObT04KASEwEiblLlKYeCEw0iEiB46BypExV7DBxsA6pCgFPpUCYwYABSvZs4UVRY8E5YAwkICBToySKCAQi3/gBZSSRCpiR/Mh7c4aNiGAdEa0gNQ9XEgQYDSG4NR7JHA2g5SpkY8JTBxFBou8oxuQfXQo8oaRGQQmjBgCsmloYh8K5CVkPUwjCIl+Aqy2IVJtC06ScEACH5BAkNABYALAAAAAA8ADwAAAX+oCWOZGmeaKqurHokRdXO9AwBQFDvfCnhgp5wl3AQJq6FbIiKGJCpymKhakgcBiaKAUBQhzdcRGu6EQ5MAw7wJY8Ok7ZwAZEk3Pi8fs/v+/+AgYIHBQloKQcGD0uCIxVcAAyMJg84co0RDjgOYygDEhCTjQcEOGcqFaKNFgMCAgOrsbKztLW2t7i5FhUNE526JQsCmggJqrSEAzIKaziwuBGlDouazTq4FGsIFdVr17fZpgfMzc+3CwQODnfCmuvHs3ARSxUDccD4+fr7/Pqp/RYOBHA1Ad6fChHmoahADsedWBUMqDNwqMSAZgAIGOQzoRmUEg0wOti4p5K3E5l3mkGQNaCaA3MlipiC2aiBAAgfUSYwBrCnz5806BB4xeQFhQZ6DvzAgeDXDmFrCuTpaE0IVVN5CmCksHDBAXha1xDIg27NyxN0AGCpSKKsQz0DGBgpeKJhDhQLDEDgqUcKvAql1qzcJ6BZln0DEJi6hG9Bgnt5QgAAIfkECQ0AFgAsAAAAADwAPAAABf6gJY5kaZ5oqq6sWi1LK89zAyADre/lAwAJnlC3gCgOrspQdUhEVkrVQkB4LFEGgCQqDPwAyGsPAOHyEj+HWWx5rXeHgCHHrtvv+Lx+n68UFHN8QxVZaQWCKA0DbyI2XwAEYYgjhQqMaI8OdJNtCGmSJBOPAA4xnCIQPwyMBwyPBqcjCwEUpicLBgQECYyxKRXAvsLDxMXGx8glLxGgySMVFAgOEg3OBwNhPl+lyAsMDgQ5EqNBx9pkFa6P5cbnZZhptsVF008VAQ4ODJvHL6BuzgIKHEiwoEGDfgDxi3VAngkvaRZOmiBBQgBGCwg8guDrgKcf1UxE+PhDgq8BDne+sCPR6pWvCuNISRQxQCOAVcIWUAj0a8DMg0CDCk0RR4ABhzoOTCjw5E6qkkhlEIpoJ0LKL4d4WP3Csc5WlSgqHDjQCyVXOxUEfCEQFRqCKowqKPgSsg4uAhB+wgMwAUWTAD8FPf0BiyDEHysDelPVC9m1RXdCAAAh+QQJDQAWACwAAAAAPAA8AAAF/qAljmRpnmiqrux6HG0sywshLXOeVk0ywaiJAzDQGUkVwxDAwJ0Oj0flSC0ArlfF1FgpGCLUkwF7JQB1kaEgbBqTCVtdDWBglwbLayC8mMTtIgUOgwZ/gIcVA06HjI2Oj4ADUYuQVAlLCEWVKQuUJQsIZAyGm4FXDygNZAAOnqUWAmUoaW+kpQFXdSdJZAmvJhUTPykHCRAQfr/Ky8zNzs/Q0dJPC7bTIhUJEggCmtcVB1uqWHDXBwYITRYKq97R4wAUFm5Y7tATWHsDomfRFQEEIMAIxiCgq2tIECpcyLChw4cQU0h6cPBXOBUTQgEgAKZZAwYMJqCoEAuLrmUVfAhcQXDwgEosEJqBqoeCHRZfzSBcGYViAYQhhZwFS2BtRLWISJMqndHFwIN+Rg4MKHrkAUyoMzI6uMGogsYr9mQcYGCyax4ixIq6xKKgEa6dWC1kExDSmlVWYcNkgxCgYoMlDvLKnZBA8K1eD/FhEemwAoVBAahKA3eUUQgAOw==) no-repeat 50% 50%}.loading{-webkit-background-size:30px 30px;width:100%;height:30px;margin-top:14px;text-align:center}.loading1{background-position:50% 20px;-webkit-background-size:60px 60px;padding-top:100px}.canshare-account-list li{height:8.2rem;padding:2rem 1.6rem;margin-bottom:1.2rem;width:100%;-webkit-box-sizing:border-box;display:-webkit-box;-webkit-animation-duration:1s;-webkit-animation-name:fadeInDown;position:relative;background:#fff;-webkit-box-shadow:0 3px 16px 0 rgba(0,0,0,.05);box-shadow:0 3px 16px 0 rgba(0,0,0,.05);-webkit-border-radius:4px;border-radius:4px}.ajax-loading{-webkit-background-size:1.2rem 1.2rem;width:1.5rem;display:none}.canshare-account-list li.canshare-account-active{background:#e7e7e7}.user-avatar{display:block;-webkit-border-radius:4rem;border-radius:4rem;width:4rem;height:4rem;padding:3px;margin-right:12px;overflow:hidden}.user-avatar img{-webkit-border-radius:4rem;border-radius:4rem;width:4rem;height:4rem}.normandy-other-login{border:1px solid #EAEAEA;-webkit-border-radius:3.7rem;border-radius:3.7rem;height:3rem;background:#fff;font-size:1.3rem;color:#363638;line-height:1.3rem;padding:.9rem 1.2rem;margin-top:4rem}.normandy-canshare-title{font-size:1.4rem;color:#666;line-height:1.4rem;padding:4rem 2.9rem 0}.canshare-account-list span:nth-child(2){-webkit-box-flex:1;display:block;white-space:nowrap;text-overflow:ellipsis;font-size:13px;color:#999}.canshare-account-list li:last-child{border-bottom:0}span.canshare-account-displayname{color:#333;float:left;font-size:1.6rem;line-height:1.6rem;margin-top:.1rem}.canshare-account-tip{height:25px;display:inline-block}.canshare-account-tip img{display:none;padding-left:10px;padding-top:4px}.mod-btn-wrapper input:nth-child(2){margin-top:10px}.mod-intro-tit{font-size:14px;color:#666;margin-top:10px}.mod-intro-info{font-size:14px;color:#999;line-height:20px;margin-top:10px}.mod-send-tip{margin-top:1rem;color:#999;font-size:1.4rem}.fast-reg-tip{margin-top:65px}.fast-reg-tippaymsg{color:#969696;font-size:14px;margin:6px 6px 12px 0}.fast-reg-tip li{margin-top:10px}.fast-regSuccess-tip{line-height:24px;margin:10px 0 25px}.prompt-css{margin-top:10px;font-size:14px}.account_login{color:#1b66c7;float:right;font-size:14px;line-height:35px}.pass-form-item-code,.overseas_login_header{display:none}.text-input-code{padding-left:2.3rem}.mod-agreement-info{word-break:break-all;line-height:2.4rem;font-family:PingFang SC,Helvetica,sans-serif;padding-top:4rem}.mod-agreement-info h5{margin:1.5rem 0}.register-content{min-height:12rem;text-align:center;visibility:hidden;display:-webkit-box;display:box;box-orient:horizontal;box-align:end;box-pack:center;-webkit-box-orient:horizontal;-webkit-box-align:end;-webkit-box-pack:center;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;-moz-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-justify-content:center;-webkit-align-items:flex-end;overflow:hidden}.other-text-reg{font-size:1.2rem;color:#999;z-index:0}.img-item .item-icon{width:14px;height:14px;display:inline-block;line-height:14px;padding-top:30px;text-align:center;background-color:transparent;padding-right:15px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.item-shoubai{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAfCAMAAADDR10IAAAAjVBMVEUAAAAwbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf/r1LKAAAAALnRSTlMADt368NLGtgvnzasjFAgF9IF3TEDr4Z+Uj25RRSu6pJpqWBjZwHtjUx+IhjSwTBwNhAAAAXBJREFUKM9lkumWgjAMRj+sssgmiKgsOo46rpP3f7xJUvDY8f5pmgtNmlOMJEH95WmUHfEPryaiQKJ2RUHqypKECugMr2dX+iq3yGoNlo6MNBfjSsrGkRPN7VFY+eXIQHM/+LHyAstx7T88fEvKJHalKLQuPPFmnuGXl4K3WvwKS0PCHXmzacH0u+msxfFQSMNnlSs4JCsZSY4pKaEj97a9UWaSu7VV+HbrGfzXsWnMwfQAICfF4DLMDd7JpsqXXADyve8Ba7KYClhoNAFQHTrA3t6WuCFwZ9gZ3gw/z8M+kh+Pg1vKQfDIsgvDtrlmg7sYsnK0KiwbolNRlizjmJvcnclP39w+B8ASkLt7XDAZ6hHVGR6T2Ztk643PZ4OOh+NIKjHM6o7Dh/RFpvqwEjNIM8oawpQbTNCXDSdT9N3TyrnKtZSvtFv71q3cquwNiZ4zPPaJIIknlG+2HxQYSIp9vN42VYr8ttz60SIKlpL/Aw9YRuh9rZgdAAAAAElFTkSuQmCC) no-repeat 50% 50%;-webkit-background-size:14px 15px}.item-tieba{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAAdVBMVEUAAAAwbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf8wbf/LFGklAAAAJnRSTlMALdJb8A5EHndL+syZu6qkN+HuyCcK5pSHgGfz6NO9cmxlVTYUAYSstRUAAAC2SURBVCjPzdDJDoIwEIDhkSJU0C7s4L7N+z+iMzVptNSD8eJ/aJv5QkMK95NFXwMAS9pzeHbElxYB2hjqtVZKaaDjOXN59IEbuT7hrqoaeLuW693IL8EP/T0KOdI+SG4KMUH0pd/ifsMlcRTArX7HlhYTw7osc4M84lOAXE+ogJvjoiAsTBRNh1xn5njR/N1IS6FEyzhknESsADkJgjR8vpIx5YuudoYCtrW8AddOh7SB0pMV8AADADyRZvtGZQAAAABJRU5ErkJggg==) no-repeat 50% 50%;-webkit-background-size:14px 14px}.item-yun{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAbCAMAAAAu7K2VAAABdFBMVEUAAAA0dvw2bfw0dvwyfPoyfvc2bPwvcO4vcO41cPw1cfwyf/w1cPwycfcze/w0dPwyfPUyffYzffw0efwubOwzfPw1cvwxefMzePjIQjg5b/Y0hPo1cvw1cfw2bPwzfvw1cvwxePMzfvw0hPoyg/wze/w0dfwzgvkye/Q0dfwye/Qzffw1b/w0hPozfvw2bPwtZucyhPw1c/w0efxVZtI1cvw0hPoyg/wwdPM0dfw1c/w2bPw1cvw1c/w1ePu7RUYzeftaccdKbOAxfvjSQCzFRD2zS1QwdPA0ZN8wdPDSQCw2bPw2bPxoabcwdPAwdPAyhPwyhPw1c/wzfvwxdvGVTG+zRk5hW65SY8svbu2nT2U2bfw1b/wygPw1cvwzfvw0ePw0dfwyg/vSQCw2bfwvcO4yffYye/Uze/wzf/cxePQwdvIwdPAye/lPbtjFRT07eO8uYuR6VZG1SVAtZuhDZ9RVatB8X5eQUXmdVnHDRkDQQC70GNcVAAAAXHRSTlMAA/byPPDSuIqCfG5cWlM3NiYK7cm/tm4d/v369/Lq6Ojo5+HXz83JsrGtpaWjmoaEeW5hU0pKREAxLh8aFAH9+fHo3NvQxsLCwLOysayjoJmWkoZwXV1ZVFM3LbwkyeMAAAGjSURBVCjPlZBVVwJRFIUPw4CSIlJ2d7dI2N2dSAwI0mH75z2HewdYC3zwe5i797f2w70DlXgXxntbW3vHF7zwB42DIc5gI9TEpHopoTJBDRyq5wpUDqhmKEqM2O0jxTBU4yJxpNtE0dRNufo69gQisrxE+bJqcpJMJvfksoPluGpSF4lE6uVSj6XuvxOFOH269pF/s8jCEklEN86mRYUsFvtCROHn85aJu3iI0bfIhM7H+JKklRsShpSvhI6EkZfstyRJhd2pKQtbcIwA5h4/0jlxtC0R+dxryk9YLyY66ewxg47OUTMAXDXjpDlXXKQMKMyjFHVgjcVi/ezm1zjJZGPI6hJ7aT9mKzQFAoFZYGxKmXQAaVrmYpYKkBK52WcLpRM4IlVQBoNBIzdb6SCibAAZI1UYwO8wE/fvfFFiGPsAaJ6QGeqedYrtuDDYzj1kZkhowN1Gp00/r+2i0IILJ55d2nm9jUSbG0D7WEHLHADoK42WHj9W7gItwNFeNmMKoI1GCDPU/H88qLkQNLQgXJNqIdxxqJc7KAwHHWFBPemi8gvfwZrL/V/n2wAAAABJRU5ErkJggg==) no-repeat 50% 50%;-webkit-background-size:17px 14px}.item-map{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAoCAMAAAA45HFkAAABd1BMVEUAAAD1TkH5hn38wLz2Vkn4gHf7pJ78uLT8vbnzNSb0RDb0Rzr0Oyz1Rjn1UkX1UUT1UET3bWP3dmz3c2n5kov6m5T7qaP7sq35jITzMCLzLBzzKhv0SDv1VEf1UUX1UUT0Sz71WE30SDz1VEj1Sz72YVX1Sj71VEn2ZFn2WEz2Ylf3a1/2Ylf2b2T2ZFr3bWL4gHj3b2X2Ylb4gHb2XlP2Z1z5jYb5iYH4hn33cWf7qqX6npf5lY77ta/7q6X8t7L6pJ30Qzb0RDb////0Rjn0QTP0PzL0OizzNynzMSLzLR7zJxfyJRX0MyXzKRryIhL0Rzr0PC7yIxPzNSfyKxz0OSvzLyDyHg73amD5npj5kov/+/v+5eP91dL5l5D3eW/2XVH1Sz7xCgD//v7+6un+4d/92NX7qqT6nZb4ioP4h373dWv1V0v1UUXyFwr+9fT+7ev929n929j7vrr7vrn7sKr6opz4hHv3cGb2YlfxEADwAADvAAANfL5uAAAAQXRSTlMA3XEdzmE7Gg367uvi3dnHu6+bkmNiQjg3+Pj19Ork5OLc19PQz8y+uLGuqKainpmUiYaBfXdrY1hHRkU+MCkTBEHgNf4AAAIcSURBVDjLdZIHe5swEIYvdhI7afbu3nvvPaQTYmPAeNTbzmh29+6P7xmw6yb2Cw8Hep8PoRPQZeXB1UtTF2buPYWDjAyrWU2qkq5DD9/0mlfTga1wzhljnGv65PN/anTMoHE6Iit0Y6GjlvO64CyECnmhZRYjlTyad2NFkKKk5iyFbspx40wHStpjaVIjZjQoFF0VXS+c2+RO6zycRhG7TaWT5lyVr2FUjwfyjfKm33WMOwm4a7SfhAxaLr4rWIHren7WJWtcgcsaVdc2ivUa1jLfdzx1b/unRkFvCIa8divsL0hs+/jB8X9Qvj3/ETjl0Sutr7heLGHJx0+GWcS3GXJ8vJ1j2Sau7v0RWPNxI3acUW46x5i+i+Wg0MCShVXLinPyDNyg5anae9z53cSSieuZViNy2WEY0an7Vh1xo4KbrSquVdfwW4GmC+YhrajUXqv+EVcrW/v8M2K5smXSZ9orALcCwQSzbEUqzNUNKaWiUFvy5wEgpeXolsucqkrBFSphdV4AkShwIuwhndFmicx1CLnmd/emu0PnIGbGassoGSp9Ig0dJo1Qxq8W2WNJ6JI8bgsWw0XOXIIeXuazgvFIec4T+I9nZk5E/4bMJOAAC6aM1mHNwyHm/HZQBMPQh3Gbgp6e7OcWTcqZd6AvJzQutVR/N+cI4yL0Z9RWjEcwgJN5JTXIzRbOwiDu788OdIlfNwe65YnH0MNfzWOzs64Gx8IAAAAASUVORK5CYII=) no-repeat 50% 50%;-webkit-background-size:13px 20px}.item-waimai{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAeCAMAAADn2eWTAAAAclBMVEUAAAD/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEz/LEyWrCWWAAAAJXRSTlMAw+9LtIfSeDz5XTIcEAvr4tXKt6aQbzcFA0QlGLqun353Uy0Gl7BG3QAAAK5JREFUKM/lz0kWwiAQRdEfYlRC+r6zt/a/RU9EIAqswDerf0cFpkLHpp5dwWo0TFaDVDhQeKQIFGBHsuCPdRFpJhKI2ak6l45Ga1sTo6WtscaEa+VKy6fSlrTmpGoGibFezghIFyQrRmaI0JIpXHVv7jsmv/IUY+HVBkDnVQFgKD16wZrgTi1S/aCt7AF8mFua99D1xY9WMzalLd9o3g34brlVUqtTnMFR9l5HmF5+40kC6aqtOwAAAABJRU5ErkJggg==) no-repeat 50% 50%;-webkit-background-size:15px 15px}.item-nuomi{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAeCAMAAAAIG46tAAAAjVBMVEUAAADvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHLvQHL1rlf2AAAALnRSTlMA3SzM8IhqeFbD4mYx+JY7A3Cg9LqqJFEXErOlkIt/YRsJSzYP7dKvm4N1QtQhF2XLpQAAAX5JREFUKM91k4tugkAQRe9KER9QEOShohTrs7b3/z+vd4qkaNOTkN3kMDPL3QBjUSf4lxeOYFRTN2ACrLahyYMfAw2HTNWSS5NzLVitPTFj5hklMKEzuWWOO2Or6YgZmczpY+yJvlKkeCMrSY9jTPkEkojvkkfuJb252NB1C4EZyxe+kyNJf5XOf2bGebg3uTt9qXK9TEyGOvRCcseF5DCElAuEBwSSSZyMIodaWZAz585tUsEqg64SbYKMPQUUQ9qo7RrxJoSIgyCIWAdBiTsr30RH9ZNtobri0z0wBjz7zjjLWpR85AwNvUnayHZx9cWSkS27IERLjtRWOeFOrgN19NkqJyAsJyJjOjFuCUIykTyxwZ6PXHDjEZJLfihURseIUS9df9k5tyYtPF+bVxs9s5hN1kxN4le+Sl55Nrnj+q/UczE5pvckU8mcvkmNfpIbycbFJt9O279yeNlzkx+8ounaOhguqmyJ+anE6i/9BSN769JFqL1RHDCgSL4BhU47dLtijlIAAAAASUVORK5CYII=) no-repeat 50% 50%;-webkit-background-size:14px 15px}.item-purse{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAeCAMAAAAFBf7qAAAAhFBMVEUAAAD1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTL1PTLHUw/gAAAAK3RSTlMA/AmlBeTbhzjsvRfx58v4sJNQQzs1JRH10n5qY1hILh/W1cW2jnZfKqCbz/BkcAAAASdJREFUKM9tkut6gjAMhkMRaBGnyBk56XS69f7vbyQppWO+P+Dr87VJmgbEtRfgUkSNDi4kY13H0TN7TdMo+/auNPFEK9Pv+ATkR2/xGp8j7nztckgHJ3l3sEY87OAP4mYMCRv2H2QEPfxzQnJOFUDbHFSYChuNz3yhvB5J3yq2IlpdgMkTKj9HPXmoI7DcaWs5qweK0C2ZEiSzoDt1XE/Gnse59/irASkDE9enrsDIzWSHc/J2DTl+U1yjYzxS/CYPADhrIrHJQFIjbIZErqdK6t7yOKqAJYAHgna82FMjINRTZS4YAsEXL7QprSPhg6XiFot5Jxcd22EjhysbzKx8V1hByKuaY8frKFkhbas3eGdYcMeN772SB84RfzNv8qQw0zFsBTC/ojA+33fBVWMAAAAASUVORK5CYII=) no-repeat 50% 50%;-webkit-background-size:13px 15px}.pass-user-userlist{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAP1BMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACzJYIvAAAAFXRSTlMAZmFNDAM5XVlAHBcSU0hFNDAsIQblJJu8AAAAY0lEQVQ4y83TOxKAIAwEUDco+P/f/6yW2yXOWkha3jCBbJq6KqXbBwtS54K2fyHWQBRsfhtzwRAIi8RkyF/FaNgDARy+uIDTFxkm3sAetFfwH7RzzkKbJvMgJoqZFFPNvfilHgy/AoabbxK1AAAAAElFTkSuQmCC) no-repeat 50% 50%;background-size:16px 16px;-webkit-background-size:16px 16px;width:16px;height:16px;display:block;cursor:pointer;margin-top:13px;margin-left:5px}.user-text{color:#999;font-size:1.2rem;line-height:1.2rem;display:block;margin-top:.1rem}.mod-page-downInfo{font-size:1.4rem;color:#999}.mod-page-tipInfo-black{font-size:1.5rem;line-height:2.2rem;margin:4rem 0 0}.mod-voice-sms{float:left;margin-bottom:5px;margin-top:15px}.sms_verify-voice-verify{border:0;background:#f6f6f6;font-size:14px;color:#000}.mod-voice-sms .voice_sms_disabled{color:#666}.mod-unametip{position:absolute;font-size:14px;padding:0 5px;right:0;top:50px;z-index:14;background:#000;color:#fff;opacity:.7;-webkit-border-radius:2px;border-radius:2px;line-height:44px;display:none}.mod-unametip:before{display:inline-block;width:0;height:0;overflow:hidden;line-height:0;font-size:0;vertical-align:center;border-bottom:8px solid #000;border-top:0 none;border-left:8px dashed transparent;border-right:8px dashed transparent;content:"";left:50%;position:absolute;top:-7px;margin-left:-6px}.success-img{height:5.7rem;width:100%;background:url(/static/touch/img/bindsuccess.png) no-repeat center 5.5rem;-webkit-background-size:5.7rem 5.7rem;background-size:5.7rem 5.7rem;padding:5.5rem 0 1.7rem}.mod-page-bind-tipInfo{text-align:center;font-size:1.8rem;padding-bottom:1.5rem}.mod-page-bind-tipInfo1{text-align:center;font-size:1.5rem;line-height:2.2rem}#face_login{background:#fff}.face-login-link{display:none}#face_login .face-main{padding-top:6.8rem}.biometry-loadingImg{margin:0 auto;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;height:30px;width:30px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAABwlBMVEUAAABFmf83ff84ef82fv81ef85if1Glf9Hh/81e/81fP81e/81ev82e/85gv81e/81ev83fv8zef8wc/82e/83ff82e/81ev81ef80ev81ff81fP80ef82ev87jvo+lfc1e/80ef81ef80eP9BmfxDjP88e/86jfk1e/81e/8/m/E1e/82e/81e/81e/81e/81e/82e/81ev81ev81ff82fP82ev83fP87iPw0ev8zdv89jfw7iP43gf02fP89mPQ4h/s1e/86jfg9lvQ2e/82e/82e/84hPw2ev85hfw7jvg0ef89lvY2ev85iPo7kfc8k/U9lvQ6j/g4gf4+mfM4hvs3f/45hvs1e/81fP89lvQ2e/82f/49l/Q7i/k9l/U1e/81ef82ef83gP44h/s3gP46jfc+m/I4gP46jvc4h/s5h/o9lPQ+m/I2fv47jvc6ivk7kPc8lPU2e/85h/s7jvg1e/88jfk5h/o9k/c4hP0+mPQ4g/s+mvM9lPU8k/Y9l/Q1e/83f/05ivg4hvs2ff47kvY8lfQ5iPo4g/s7j/Y8l/M9mvI3gfw6jvc2e/83gvw8k/U9mfM6jfg5ivk6jvb58zq3AAAAgnRSTlMABkUKQCcgCwLshWZbGhXGrxgRDt/XwJB+bWBWUE5IPzc0MCMXDwX49fHw59rSzbqyoZ6MgXl2cT48LSoc+vn57OLZxb22qqCUcnBTRfz7+u3t397excO1qKSgl4qIeXVyaEr28Ozs7OTk39LSysjHw8OzpqagmYuGenlw/uS4pqaaTXcqIgAAAztJREFUSMe8z0trwkAUhuFJYqpRE+P9GkgiiuIticagbYWC2oC4Koiii9pS6KobwX0DWecvdzKBXmBqdRZ99w/nOwAfxYYqpf1+H4svaIUVIuDs0rTV70cHheFjMVaKlysSHVL5+lmUHRrv2zzC1iceyUqV+ZOOo/ODbmzz+W/4CWJFHbP8aS6YM01cb4yjnd8NCiaavfCxrKhs9YpPn3henk17mjjf6IYNd39huFodQ5xMpX59PZ5I5Hr+ad1ATw9j8XK5vJCC1fCwkEoz+NtUtNNN5Ka9mX/6WJCqaYBiBFaWFXQY2joWp+bZThdpTbQlHvyISbKsf5ihsJYSM22o/eFrCfdYjYeH8RbYrbtA52JhgC3CwNEAV5FrBXqq4inieEs3mxzna5EHJ8KOTnKTBtI6Ay7u4C2hbnK58OU25MGWjUbmClzeygv0iMCGXA8VBQRprutzrkZghQnEkFuAIMtFZSgSvAqwSWKZSYCvSTAd2DYgyXQcB+IdEb53UDQRfgvwDRF+QPYZEPWC8CsZvkU4+4/4o5M6W00YiAIwfCzF3BX6AvEmEugTBLQoelEUcatWENQbUdzqguLWDQzGGBW3vm9n5sQiNuqk/234MsNwZhoPtPL/tv2+oJXheUmzeWA+hlPwumR57VjvgtWAJ8S2hiSCOAsjxLbGM4e4ADfMrp/t4NR2uyU4AsLjmuXht54tyycAvCAe8eOhwXAQAEKU6nrVwWsdKcOgfEwfwEdCSSFePDZYPglIGZ3ld/NZdwJxB2iKjg34cM7AXMBKI44qPNbl05gNAnbLrKr6ndetM6FpGi5s1tX1N5VUE65Zoa6xjC84dF9UsYxwxX5oWEKC30TVrOa8uOf6xsQiHBUy8cyvXDir+GaDunDyfKOdzaIDtzV152JTE2dPZy6NluQPOyxmMhyfTgmmOvjn+12aWGxfzXtO7tEwSaipg5LFv58Odj+ZTAJ90Qssb6QfmM/n04POWt+gEFqCMbkSCFTk1TehFGMFOJNYPMa73W5FQ4w6LsLZ7rtoz+FPCS6ltKww6rYLrqVkolY41iGUIynckg8YdawdloA7Qcz3msmSLJeSzV4+IoBlP9U0juew9EKrAAAAAElFTkSuQmCC) no-repeat 0 0;-webkit-background-size:30px 30px;background-size:30px 30px;display:block;vertical-align:middle;-webkit-animation:rotate .75s linear infinite;-moz-animation:rotate .75s linear infinite;animation:rotate .75s linear infinite}@-webkit-keyframes rotate{0%,100%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes rotate{0%,100%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);transform:rotate(360deg)}}.biometry-loadingMask{top:0;left:0;width:100%;height:100%;position:fixed;background:#fff;z-index:1020;display:none}.biometry-loading{font-size:24px;padding-top:15rem;padding-bottom:2rem;color:#367cff;text-align:center}.personal_agreement-info{line-height:2.4rem;font-size:1.4rem;padding-top:4rem}.personal_agreement-info ul{list-style:none;padding-left:2rem;margin-bottom:.5rem}.personal_agreement-info strong{line-height:5rem}.personal_agreement-info div>p{margin:1rem 0}.mod-tipinfo-title1{font-size:1.8rem;font-weight:300}.mod-tipinfo-title3{font-size:2.4rem;line-height:3rem}.form-label{font-size:1.3rem;color:#666}.mod-tipinfo-subtitle1{font-size:1.4rem;margin-top:.8rem;font-weight:200}.form-input-value{font-size:1.6rem;color:#333;display:-webkit-box;border-bottom:1px solid #eee}.pass-form-item-sep{background:#eee;height:1px;border:0;display:block;margin-top:-1px}.form-input-value input{padding-bottom:.6rem;padding-top:.8rem}.pass-norm-item-sep-focus{background:#3c76ff;-webkit-animation:processFocus .3s ease-in}.pass-form-item-sep-blur{background:#3c76ff;-webkit-animation:processBlur .3s linear}.pass-form-item-sep-error{background:#e65757}@-webkit-keyframes processFocus{0%{width:0}100%{width:100%}}@-webkit-keyframes processBlur{0%{width:0}100%{width:100%}}.form-input-value .text-grey,.form-input-value .text-grey:disabled{color:#333;opacity:1}.pass-input-clearValue-new{height:20px;float:right}.other-baidu-reg{margin-bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-bottom)}.agreement-contentWrapper{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.personal_agreement-contentWrapper{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}div.mod-dialog-content-faceLoginNotice{padding:2.1rem 0 0;background:#fafdff}.pass-faceLoginNotice-dialog{text-align:center}.pass-faceLoginNotice-icon{background:url(https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/faceLoginNotice.png) no-repeat center center;-webkit-background-size:12.2rem 9.8rem;background-size:12.2rem 9.8rem;height:9.8rem;margin:2.3rem}.pass-faceLoginNotice-title{margin-top:.1rem;color:#333;font-size:1.9rem;line-height:2.4rem}.pass-faceLoginNotice-msg{margin-top:.7rem;color:#666;font-size:1.4rem;padding:0 2.1rem 2.2rem}.pass-faceLoginNotice-ul{background:#fff}.pass-faceLoginNotice-ul li{height:5.2rem;line-height:5.2rem;color:#333;font-size:1.6rem;position:relative}.pass-faceLoginNotice-ul li:before{content:"";-webkit-box-sizing:border-box;display:block;width:200%;height:200%;position:absolute;left:0;top:0;z-index:1;-webkit-transform:scale(0.5);-webkit-transform-origin:0 0;border-top:1px solid #eee;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px}li.pass-faceLoginNotice-main{color:#5291ff}.normandy-mod-content{padding:0 2.9rem;-webkit-box-sizing:border-box}.pass-normandy-form-input-wrapper{display:-webkit-box;-webkit-box-sizing:border-box;-webkit-box-flex:1;background:#fff;padding-top:2.4rem;width:100%;position:relative}.pass-normandy-item{width:100%}.pass-normandy-title{position:absolute;z-index:98;font-size:1.2rem;color:#B2B7C2;line-height:1.8rem;display:none}.pass-normandy-label{position:absolute;z-index:97;font-size:1.6rem;color:#ddd;line-height:1.8rem;margin-top:1.4rem}.pass-form-verify-wrapper{margin-top:4.8rem}.pass-normandy-form-item-sep{background:#ddd;height:1px;border:0;display:block;z-index:2;position:relative}.pass-normandy-item-sep-focus{background:#121C32;-webkit-animation:processFocus .3s ease-in}.flexdiv{width:100%;height:100%}.pass-normandy-item-code{display:none}.pass-normandy-code-left{margin-right:1.8rem;border-bottom:1px solid #ddd}.normandy-sub-font{font-size:1.2rem;color:#333;line-height:1.4rem;height:1.4rem}.normandy-text-label-code{line-height:4rem;height:4rem;display:inline-block;width:5.5rem;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKAgMAAADJO5Z1AAAACVBMVEUAAABoaGhmZmbrODhJAAAAAnRSTlMAgJsrThgAAAA0SURBVAjXDckxAQAgDMTAsKCAqWqwQ9VUBAtVSX64IU929yP0MrUYuiHNEGY8SofZHXALPozFEG5vWPX4AAAAAElFTkSuQmCC) no-repeat center right;-webkit-background-size:1rem .5rem;background-size:1rem .5rem}.pass-normandy-code-right{-webkit-box-flex:1}.pass-normandy-code-p{-webkit-box-flex:1;display:-webkit-box}.pass-normandy-form-code input.pass-text-input{padding-top:2.6rem;padding-bottom:.8rem}.pass-normandy-form-code .pass-normandy-title{font-size:1.2rem;color:#333;line-height:1.4rem;height:1.4rem}.pass-normandy-form-code .pass-normandy-label{margin-top:2.6rem;display:block}.pass-normandy-item-username .pass-input-clearValue{margin-top:1rem}.pass-normandy-form-code .pass-input-clearValue{margin-top:1.5rem}.pass-normandy-item-password .pass-input-clearValue{margin-top:1rem}.pass-normandy-item-mobilenum .pass-input-clearValue{margin-top:1rem}.pass-normandy-item-password .pass-input-aide{margin-top:2.3rem}#setunamepwd .pass-input-aide{margin-top:1.2rem}#setunamepwd .pass-input-aide-focus{margin-top:2.5rem}.normandy-img-div{padding:4.9rem 2.9rem 0}.normandy-img-title{float:left}.normandy-title-div{padding:1.24rem 2.9rem 0}.normandy-title-content{font-size:2.7rem;color:#121C32;line-height:3rem}.normandy-img-logo{float:left;background:url(data:image/png;base64,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) no-repeat;-webkit-background-size:100% 100%;background-size:100% 100%;width:8rem;height:2.6rem}.normandy-bottom-link{cursor:pointer;font-size:1.4rem;color:#333;line-height:1.6rem;padding-bottom:2rem;padding-top:.3rem}.normandy-spilit-line{height:1rem;color:#333;display:inline-block;padding:0 1rem}.normandy-more-qa-cancle{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.layer-account{display:none;position:fixed;width:100%;z-index:10000;left:0;bottom:0;-moz-transition:all .3s;transition:all .3s;-webkit-transition:all .3s;-webkit-transform:translateY(27.5rem);-ms-transform:translateY(27.5rem);-moz-transform:translateY(27.5rem);transform:translateY(27.5rem)}.layer-account >a{font-size:1.8rem;color:#102233;background-color:#fff;cursor:pointer;border-bottom:1px solid #eee;display:block;text-align:center;height:5.5rem;line-height:5.5rem}.layermenu-out{bottom:0;-webkit-transform:translateY(0);-ms-transform:translateY(0);-moz-transform:translateY(0);transform:translateY(0)}#login-facelogin,#sms_login-facelogin,#overseasLink{display:none}#smsloginlink,#loginlink{display:none}.normandy-agree{padding-top:2rem;text-align:center;font-size:1.2rem;color:#5D667A}.normandy-agree .agree-link{color:#5D667A}#reg_verify .mod-content,#sms_verify .mod-content{padding:2rem 3rem 0}#reg_verify .sms-smsLayerCon,#sms_verify .sms-smsLayerCon{padding-top:3.2rem}#reg_verify .sms-pasteVerify,#sms_verify .sms-pasteVerify{height:5rem;line-height:5rem;margin:0 auto 1.5rem}#reg_verify .sms-pasteVerify-show,#sms_verify .sms-pasteVerify-show{position:relative;width:13.3rem;text-align:center;color:#fff;background:#333;-webkit-border-radius:4px;border-radius:4px}#reg_verify .sms-pasteVerify-show span,#sms_verify .sms-pasteVerify-show span{content:"";width:0;height:0;position:absolute;left:5.8rem;bottom:-1.4rem;border-top:.8rem solid #333;border-right:.8rem solid rgba(0,0,0,0);border-bottom:.8rem solid rgba(0,0,0,0);border-left:.8rem solid rgba(0,0,0,0)}#sms_verify .sms-tipTitle1,#reg_verify .sms-tipTitle1{font-size:2.7rem;color:#333;line-height:2.7rem}#sms_verify .sms-tipTitle2,#reg_verify .sms-tipTitle2{font-size:1.4rem;color:#999;margin-top:1rem}#sms_verify .sms-pass-layout-error,#reg_verify .sms-pass-layout-error{font-size:1.2rem;color:#E65757;letter-spacing:0;line-height:1.3rem;min-height:1.3rem;padding-top:.6rem}#sms_verify .keyboardInputWrapper:after,#reg_verify .keyboardInputWrapper:after{content:"\20";display:block;height:0;clear:both;overflow:hidden;visibility:hidden}#sms_verify .keyboardInputWrapper,#reg_verify .keyboardInputWrapper{margin:0 auto;display:-webkit-flex;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-pack:justify;-moz-box-pack:justify;-ms-flex-pack:justify}#sms_verify .keyboardInputEle,#reg_verify .keyboardInputEle{float:none}#sms_verify .pass-layout-input,#reg_verify .pass-layout-input{border:0;background:0 0;font-size:1.4rem;color:#999;line-height:2rem;margin-top:.5rem}#sms_verify .pass-layout-link-msg,#reg_verify .pass-layout-link-msg{display:inline-block;font-size:1.4rem;color:#3C76FF}#sms_verify .pass-layout-noVerifycode,#reg_verify .pass-layout-noVerifycode{display:none;margin-left:2rem}.sms-pass-layout-sendText{padding-bottom:1rem}@media screen and (orientation:landscape){.normandy-img-div{display:none}#sms_verify .sms-smsLayerCon,#reg_verify .sms-smsLayerCon{padding-top:0}#sms_verify .keyboardWrapper,#reg_verify .keyboardWrapper{padding-top:3rem}#sms_verify .mod-content,#reg_verify .mod-content{padding-top:0}.normandy-bottom-link{padding-bottom:1rem}.normandy-bottom-link span{font-size:1.8rem;padding:1rem}.pass-input-clearValue{width:4rem}.pass-input-pwdToggle{margin-left:0}.pass-input-aide{padding:.7rem}.pass-normandy-item-password .pass-input-aide{margin-top:1.3rem}}.canshare-ai-logos .canshare-ai-logos-block p{width:5.7rem;padding:1rem 0;line-height:1.2rem}.p-t10{padding-top:1rem}#reg-div .pass-form-verify-wrapper{margin-top:3.1rem}#reg-div .pass-form-item-submit{margin:2.5rem 0 1.6rem}#reg-agree{vertical-align:middle;margin-top:-2px}#reg-registerWrapper{visibility:visible;position:absolute;bottom:0;left:50%;margin-left:-10rem}@media screen and (max-height:500px){#reg-registerWrapper{position:relative;left:0;margin-left:0}}.set-bottom-link{color:#E73E32;font-size:1.3rem;text-align:center}.keyboardInput{border-bottom:1px solid #eee;height:3.5rem;line-height:3.5rem;font-size:1.8rem}.keyboardInput:after{color:#3c76ff;font-size:2.2rem;-moz-animation:blink 1s infinite;animation:blink 1s infinite;-webkit-animation:blink 1s infinite;content:'|'}.keyboardInputWrapper{margin:0 auto;display:inline-block}.keyboardInputWrapper:after{content:'\20';display:block;height:0;clear:both;overflow:hidden;visibility:hidden}.keyboardInputEle{width:4rem;height:4rem;display:block;float:left;margin-right:1rem;text-align:center;line-height:4rem;border:0;border-bottom:1px solid #aaa;-webkit-border-radius:0;border-radius:0;font-size:1.8rem}.keyboardCursor,.keyboardCursor2{color:#3c76ff;font-size:2.2rem;font-weight:lighter;-moz-animation:blink 1s infinite;animation:blink 1s infinite;-webkit-animation:blink 1s infinite;border-bottom:1px solid #3C76FF}.keyboardCursorBlueLine{border-bottom:1px solid #3C76FF}.keyboardInputWrapper.androidPaste .keyboardInputEle{border:1px solid #EBEBED}.keyboardInputWrapper.androidPaste .keyboardCursor2,.keyboardInputWrapper.androidPaste .keyboardCursorBlueLine{border:1px solid #333}.keyboardInputWrapper.androidPaste .keyboardLongPress{background:#f9f9f9;border:1px solid #333}.keyboardCursor2:before{content:'|';position:relative;height:4rem;line-height:4rem;display:block;width:4rem;text-align:center}@-moz-keyframes blink{0%,100%{color:#fff}50%{color:#3c76ff}}@keyframes blink{0%,100%{color:#fff}50%{color:#3c76ff}}@-webkit-keyframes blink{0%,100%{color:#fff}50%{color:#3c76ff}}.keyboarddone{border-bottom:1px solid #3C76FF}.keyboarderror{border-bottom:1px solid #E85352}.keyboardWrapper{width:100%;position:absolute;bottom:0;bottom:constant(safe-area-inset-bottom);bottom:env(safe-area-inset-bottom)}.keyboard-row{width:100%;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-moz-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.keyboard-row span{text-align:center;display:block;width:33%;-webkit-box-flex:1;-moz-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;border:1px solid #eee;border-width:1px 1px 0 0;margin-right:-1px;height:5.4rem;line-height:5.4rem;font-size:2.8rem}.keyboard-row span:last-child{border-right:0}.keyboard-gray-bg{background:#e5e7eb}.keyboard-span:active{background:#efefef}.keyboard-hightlight-bg{background:#efefef}.keyboard-delete{background:#e5e7eb}.keyboard-delete img{height:100%}.keyboard-delete-hightlight{background:#fff}.keyboard-placeholder{position:absolute;color:#d6d6d6;font-size:1.8rem;font-weight:300}.keyboar-relative #sms_verify .keyboardWrapper{position:relative}.canshare-ai-block{padding:1rem}.canshare-ai-top{background:url(data:image/jpeg;base64,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);-webkit-background-size:100% 100%;background-size:100% 100%;text-align:center;padding:5.5rem 4.7rem 4.8rem}.canshare-ai-tip{line-height:5rem;font-size:1.8rem;color:#fff}.canshare-clienttip{padding:1rem 4.7rem;font-weight:500}.canshare-ul{padding-left:4.7rem;padding-bottom:1rem}.canshare-ul li{color:#666;font-size:1.2rem;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMBAMAAACkW0HUAAAAElBMVEXZ2dn////h4eHw8PDj4+P8/PyPUMZYAAAAM0lEQVQI12MQFFZgMhRkEHVgYGAJZBBhAAJHBgMQxcygAKKYGFAAVBCqBKoBrJ0pEGoYAJxUA7eadnHyAAAAAElFTkSuQmCC) left center no-repeat;-webkit-background-size:.5rem .5rem;background-size:.5rem .5rem;padding-left:1rem}.canshare-ai-logos{width:19rem;margin:0 auto}.canshare-ai-logos img{display:block;width:5.7rem;height:5.7rem;-webkit-border-radius:5px;border-radius:5px}#canshareAi-div .normandy-agree{padding:0 0 4rem 3.5rem}.canshare-ai-logos-block{float:left}.canshare-ai-logos-block p{line-height:2.4rem;color:#fff;font-size:1rem}.logos-middle1{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0BAMAAAA3VgbYAAAAG1BMVEUAAAD////////////////////////////////rTT7CAAAACXRSTlMAmF9WLglFhEdCtF7pAAAAuklEQVQ4y33UMQ6CQBBG4YmRAwwaazyCjbXewM7aeAYPYLy4wZi84sFPATvsfgSWmanheanysT3f6t7j0tSxX/Xunjyz6T7UqWdm1Lu69syMev87w0A9/S9GI1chBkKMhBgKMTYiECLyOkItIzbihhDMCCYEA5mBxEBiIDGQGEhMSFP5gUZmfvn8yXmjvL3xpxiZOQGMzJxsKUVDYqdyCEWUSi8UbChzIRjILDSi1L4eq00vtcrhs9Zgv/76JqNkQNSIAAAAAElFTkSuQmCC) center center no-repeat;width:7.4rem;height:5.7rem;-webkit-background-size:1.3rem 1.3rem;background-size:1.3rem 1.3rem}.logos-middle2{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAA0CAMAAADsb9tqAAAAPFBMVEUAAAD////////////////////////////////////////////////////////////////////////////YSWgTAAAAFHRSTlMAsgyMRSNppaNBpGeZfGtmOgQCer1uvncAAACFSURBVEjH7da7DoAgDIXhFquA98v7v6umrAz2kBiHfiPJSf4JoIpTFsL0HfNOgLDyYz7ITCKrDLSqZF2GgYstgK1dj7YK2jqZW8fG1tHcOnExWFtzQlrVpcMoZMcwn75Czjnyu+mHU3+HK62psTWaW7fv/wwZalXHzI81EGDXVswiZ+X0BgHpBc8jryAzAAAAAElFTkSuQmCC) center center no-repeat;width:7.4rem;height:5.7rem;-webkit-background-size:1.3rem 1.3rem;background-size:1.3rem 1.3rem}.logos-baidu{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAAByCAMAAABXwR5xAAABAlBMVEUAAAD///////////////////////////////////////////////////////////////////////////////8pMuE0PeOGjO76+v86QuSCiO4sNeJNVefT1fl+hO0vOOL8/P/s7f1la+oqM+L4+P719v7h4vu3uvVtc+tFTeVDS+Xm5/ygpPKYnfEyOuPp6vzLzfidofJ4fe3c3fvS0/m/wve7vvaQlfBpb+tdZOlASOXv8P3W1/qtsPSNkvBiaepXX+g9RuXz8/7GyfjCxfdLUuZIT+bj5PxyeOxmbOpQWOeytfWorPPy8v3P0fmlqfOSl/CHje+Ahe5/hO2VmfCKj+8LUdLQAAAAFHRSTlMAHfNr2ve2m4lOMiQa07y4q3RkEJvyYokAAAVzSURBVGjevNbpVtpQFIZhRKtt7dz9xUCQgEAZlXlWBBEUcCi23v+tdIUjIckWjOkxz0+mlxP2ZiWwtP/9y06Q3kxwZ3d7K2Cz/418sPfJkvzxjnwR/GAm35NvtgPCNvlInPRjjHwUXPymX8lXe8YxyWdbfgwQH6PP5LPdQOAd+Wwn8JP8Fgxske9e01TTR7mTSPSU1pHfrI4gRFXi3qQ5PMFSP0UO+XKrFb6T3awqWJnEyEptajC0q1KbsSmsCmQRN5/TGzKb97BR4mTKZ2HSZvKasQ7smrR0MYKFXpPWrMOhY/6iGdjkkrKaFTiVSDiDw7GsZhZrPvo2BAclKafZBdOihSaYtJzmIZip2MwQmIyc5hBMhwwNcGM5zTQYhQwH4DQ5zUswAzK0365ZAxMhQwScIqdZBDMhQwdcW06Tfzb+Pu0t15TUvIbTJRmm4A7lNPnghlQytMCMyGszNQtnKr07Evjuz9f+Dd14bdYHWBjXSTiGjX61bonGqsfmHKaKKg6afXZOYgM41MlbswCLcxEt6VjpJ4mdXwiTt2YtAasKLcxWj2bjtKRGwL6gl2b7+akYDiBMurRylcXKRCVvzSHbi6fGbXmkQTmqk00xgydKIUZC97RRulJf0eT731tdyi5xtYOpltD7x0VaSN1EYNCvS26bKR3gfwDu/RrBlLlw16yDu3tFMgSLbN5V8xFcgdzhAzhNuWmeg+uRWzM4PLhpjsH98XJMQau6aCrgKuRS3s17eVMHFyXB081a0tu1DZNTsXRZKxIzBzf0NkNlsmlEx2ITwlWyy4Arv9z8Da5uK0awkrEvYB/c/OVmDUyiSKZ4GzYnM7IYgXt4uUm5TXeP1dzG5c15bN5vuMWpKeAe/7+pdmA3Nqe928FzyhuHvueiSSUNVonSupnmr+h7mVt+dbUCLZWxRqdLQgtc2lWTzv4Vb67bicJQGH2JHBvFFhVBBAG1XltR8TJqqx1b3/9dppK1QEikJMxq9l8vewEHki+cuPFjZBPXjwr3mGQMSnY+JzIaGhmtP734Or/BfRx0LwO/5M8Odqvn+APG2gkbjTzhVi4dmXI7aTqQSZnM7CuQQvXEne8aZPMnrKN6AEnOSNg5UoAJNbn/SJ7dfYEsGCmrNdzUV1/M4q2F5TeFCHWMhZ2+klpHeAAW+1CKug/t8PvWxRbPvGcAlpMtJax2xqpAzsZ9yOuEPpEWzfanKeR3gon/g3P3BjxOODQLO0cl4HPC8rWgcw7A64StXcTZNOPh5TJ6nF15jpz1k97EAyCU6yHhWQkexZ04GqJVJ446kTOxslu+DQFuS9SJDwAE6xkhHidoZ0HnhQqRuZyEic7hpKOHMkP8TphifqddSq5gotf5S/mbfU4nfPE7K1HF6onJdCOvEza8zrqazGQnC3id1Rqnc5x6YeQAtxNGnM44BJD7ZCngNPmcBkSQtT1XwKnqXM4hRITjRBMEnDDI56TTg0f+TMTZ4nJ20mtgCxFnT/Q4/eipxHJ6SobzLHo991HiYjmRX7rvdETr1iXV1+xrKaeHyAfGlR3L+c7lRMHtGyOCfex8MyJO6ihE65YdwpQNe1wpGT84XcznHN7+tst0QtvIdi5QbifdkKD0MMsJrnPKch55nHTc3Pp6yklQJ5UECsSoK14nbkMCdfF0QxV+5sI/N+lqUAi3zu9EfjHpX6H57REKUBGcx68tuIumQAbaWDiv6OcA0gSLT//DvtYk9mYtxwyAZrspksvwZm4uq23LaleXk/7YX9OVMesdErelcmjVEIdTlN2wM7+YDfNp3lvTtyXt/HVk9E7K6BGV0Qsro+dXRm+zhB5uGb3qEnryJew9kLDHQtZeEhl7Zv4BVVJIj8ZsqxIAAAAASUVORK5CYII=) left center no-repeat;-webkit-background-size:5.7rem 5.7rem;background-size:5.7rem 5.7rem;width:5.7rem;height:5.7rem}.canshare-app{height:13.1rem}.appdiaplay{display:none}.appagree a{color:#5D667A}.p-t1{padding-top:1rem}.checkbox{float:left;width:2rem;height:2rem;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYAQMAAADaua+7AAAABlBMVEX///+Xl5f99WcxAAAAFElEQVQI12P4//8/QwMDIy0wyGwAPncRES1HywsAAAAASUVORK5CYII=) no-repeat center;-webkit-background-size:1.2rem 1.2rem;background-size:1.2rem 1.2rem}.checkbox.active{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAe1BMVEWcnJyXl5f////7+/svLy/19fWgoKCcnJxRUVFISEg2NjYnJyfr6+vd3d22trawsLCOjo5fX19AQEAyMjLa2tq+vr5ycnI6Ojr39/fm5ubW1tbV1dXPz8/Nzc3AwMCbm5uIiIh+fn53d3dsbGxra2tiYmJDQ0M+Pj4jIyNcQj86AAAAAnRSTlPy5hlwCUoAAAChSURBVCjPpZJXDsMgEESJGTDFHZf03u5/whDFllOWj8j7g/RGsDvDshmjyuNYcKJEzFhElr/EKc7/E5aCFqQ9kj1yY9te4FKOfNuhTPqnanvPB76uoJKhuTijql881dDpONVCo5w/eaJQbd7HbQz2/hAluubTR+FMFvETTP5lkF+gVgWc/HGeXm9Ku4KIJAPsgcwqa3fBEKcJwa8NLkNwfR5PNgjL6Gjm1AAAAABJRU5ErkJggg==) no-repeat center;-webkit-background-size:1.2rem 1.2rem;background-size:1.2rem 1.2rem}.appagree{float:left;line-height:2rem;height:2rem}.canshare-ai-tipdown,.canshare-ai-tipconfig{color:#fff;font-size:1.3rem;padding-top:2rem;text-align:left;line-height:1.8rem}.canshare-ai-tipconfig{display:none}
</style><link href="" type=text/css rel=stylesheet id=product-skin>
<script type="text/javascript">
        var CssEndTime = + new Date();
        </script>
</head>
<body>
<div id="pageWrapper" class="page-wrapper"></div>
<script type="text/javascript">
        var apiDomain = location.protocol+"//"+location.host;
        var publicData = {
            'vcodestr': '{{$ppVcodestr|sp_escape_js}}',
            'action': '{{$ppRequestInfo.action|default:"login"|sp_escape_js}}',
            'u': '{{$ppRequestInfo.u|sp_escape_js}}',
            'tpl': '{{$ppRequestInfo.tpl|default:"pp"|sp_escape_js}}',
            'tn': '{{$ppRequestInfo.tn|sp_escape_js}}',
            'pu': '{{$ppRequestInfo.pu|sp_escape_js}}',
            'ssid': '{{$ppRequestInfo.ssid|sp_escape_js}}',
            'from': '{{$ppRequestInfo.from|sp_escape_js}}',
            'bd_page_type': '{{$ppRequestInfo.bd_page_type|sp_escape_js}}',
            'uid': '{{$ppRequestInfo.uid|sp_escape_js}}',
            'type': '{{$ppRequestInfo.type|sp_escape_js}}',
            'regtype': '{{$ppRegtype|sp_escape_js}}',
            'adapter': '{{$ppPageInfo.adapter|sp_escape_js}}',
            'skin': '{{$ppPageInfo.skin|sp_escape_js}}',
            'regist_mode': '{{$ppRequestInfo.regist_mode|sp_escape_js}}',
            'login_share_strategy': '{{$ppRequestInfo.login_share_strategy|sp_escape_js}}',
            'bdcm': '{{$ppRequestInfo.bdcm|sp_escape_js}}',
            'token': '{{$ppBdToken|sp_escape_js}}',
            'client': '{{$ppRequestInfo.client|sp_escape_js}}',
            'clientfrom': '{{$ppRequestInfo.clientfrom|sp_escape_js}}'
        };
        var windowHeight = document.documentElement.clientHeight || document.body.clientHeight;
        var cdnDomain = "https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3";
        window._hmt = window._hmt || [];
        var currClientWidth;
        var fontValue;
        var originWidth;
        originWidth = 375;
        __resize();
        window.addEventListener('resize', __resize, false);

        function __resize() {
            currClientWidth = document.documentElement.clientWidth;
            if (currClientWidth < 320) {
                currClientWidth = 320;
            }
            if (currClientWidth > 400) {
                currClientWidth = 400;
            }
            fontValue = ((62.5 * currClientWidth) / originWidth).toFixed(2);
            document.documentElement.style.fontSize = (fontValue * 0.16) + 'px';
        }

        window.px2rem = function (px) {
            return px / (16 * fontValue / 100);
        };
        </script>
<script type="text/javascript">function BarrettMu(t){this.modulus=biCopy(t),this.k=biHighIndex(this.modulus)+1;var e=new BigInt;e.digits[2*this.k]=1,this.mu=biDivide(e,this.modulus),this.bkplus1=new BigInt,this.bkplus1.digits[this.k+1]=1,this.modulo=BarrettMu_modulo,this.multiplyMod=BarrettMu_multiplyMod,this.powMod=BarrettMu_powMod}function BarrettMu_modulo(t){var e=biDivideByRadixPower(t,this.k-1),i=biMultiply(e,this.mu),n=biDivideByRadixPower(i,this.k+1),a=biModuloByRadixPower(t,this.k+1),o=biMultiply(n,this.modulus),s=biModuloByRadixPower(o,this.k+1),r=biSubtract(a,s);r.isNeg&&(r=biAdd(r,this.bkplus1));for(var l=biCompare(r,this.modulus)>=0;l;)r=biSubtract(r,this.modulus),l=biCompare(r,this.modulus)>=0;return r}function BarrettMu_multiplyMod(t,e){var i=biMultiply(t,e);return this.modulo(i)}function BarrettMu_powMod(t,e){var i=new BigInt;i.digits[0]=1;for(var n=t,a=e;0!=(1&a.digits[0])&&(i=this.multiplyMod(i,n)),a=biShiftRight(a,1),0!=a.digits[0]||0!=biHighIndex(a);)n=this.multiplyMod(n,n);return i}function setMaxDigits(t){maxDigits=t,ZERO_ARRAY=new Array(maxDigits);for(var e=0;e<ZERO_ARRAY.length;e++)ZERO_ARRAY[e]=0;bigZero=new BigInt,bigOne=new BigInt,bigOne.digits[0]=1}function BigInt(t){this.digits="boolean"==typeof t&&1==t?null:ZERO_ARRAY.slice(0),this.isNeg=!1}function biFromDecimal(t){for(var e,i="-"==t.charAt(0),n=i?1:0;n<t.length&&"0"==t.charAt(n);)++n;if(n==t.length)e=new BigInt;else{var a=t.length-n,o=a%dpl10;for(0==o&&(o=dpl10),e=biFromNumber(Number(t.substr(n,o))),n+=o;n<t.length;)e=biAdd(biMultiply(e,lr10),biFromNumber(Number(t.substr(n,dpl10)))),n+=dpl10;e.isNeg=i}return e}function biCopy(t){var e=new BigInt(!0);return e.digits=t.digits.slice(0),e.isNeg=t.isNeg,e}function biFromNumber(t){var e=new BigInt;e.isNeg=0>t,t=Math.abs(t);for(var i=0;t>0;)e.digits[i++]=t&maxDigitVal,t>>=biRadixBits;return e}function reverseStr(t){for(var e="",i=t.length-1;i>-1;--i)e+=t.charAt(i);return e}function biToString(t,e){var i=new BigInt;i.digits[0]=e;for(var n=biDivideModulo(t,i),a=hexatrigesimalToChar[n[1].digits[0]];1==biCompare(n[0],bigZero);)n=biDivideModulo(n[0],i),digit=n[1].digits[0],a+=hexatrigesimalToChar[n[1].digits[0]];return(t.isNeg?"-":"")+reverseStr(a)}function biToDecimal(t){var e=new BigInt;e.digits[0]=10;for(var i=biDivideModulo(t,e),n=String(i[1].digits[0]);1==biCompare(i[0],bigZero);)i=biDivideModulo(i[0],e),n+=String(i[1].digits[0]);return(t.isNeg?"-":"")+reverseStr(n)}function digitToHex(t){var e=15,n="";for(i=0;4>i;++i)n+=hexToChar[t&e],t>>>=4;return reverseStr(n)}function biToHex(t){for(var e="",i=(biHighIndex(t),biHighIndex(t));i>-1;--i)e+=digitToHex(t.digits[i]);return e}function charToHex(t){var e,i=48,n=i+9,a=97,o=a+25,s=65,r=90;return e=t>=i&&n>=t?t-i:t>=s&&r>=t?10+t-s:t>=a&&o>=t?10+t-a:0}function hexToDigit(t){for(var e=0,i=Math.min(t.length,4),n=0;i>n;++n)e<<=4,e|=charToHex(t.charCodeAt(n));return e}function biFromHex(t){for(var e=new BigInt,i=t.length,n=i,a=0;n>0;n-=4,++a)e.digits[a]=hexToDigit(t.substr(Math.max(n-4,0),Math.min(n,4)));return e}function biFromString(t,e){var i="-"==t.charAt(0),n=i?1:0,a=new BigInt,o=new BigInt;o.digits[0]=1;for(var s=t.length-1;s>=n;s--){var r=t.charCodeAt(s),l=charToHex(r),c=biMultiplyDigit(o,l);a=biAdd(a,c),o=biMultiplyDigit(o,e)}return a.isNeg=i,a}function biDump(t){return(t.isNeg?"-":"")+t.digits.join(" ")}function biAdd(t,e){var i;if(t.isNeg!=e.isNeg)e.isNeg=!e.isNeg,i=biSubtract(t,e),e.isNeg=!e.isNeg;else{i=new BigInt;for(var n,a=0,o=0;o<t.digits.length;++o)n=t.digits[o]+e.digits[o]+a,i.digits[o]=65535&n,a=Number(n>=biRadix);i.isNeg=t.isNeg}return i}function biSubtract(t,e){var i;if(t.isNeg!=e.isNeg)e.isNeg=!e.isNeg,i=biAdd(t,e),e.isNeg=!e.isNeg;else{i=new BigInt;var n,a;a=0;for(var o=0;o<t.digits.length;++o)n=t.digits[o]-e.digits[o]+a,i.digits[o]=65535&n,i.digits[o]<0&&(i.digits[o]+=biRadix),a=0-Number(0>n);if(-1==a){a=0;for(var o=0;o<t.digits.length;++o)n=0-i.digits[o]+a,i.digits[o]=65535&n,i.digits[o]<0&&(i.digits[o]+=biRadix),a=0-Number(0>n);i.isNeg=!t.isNeg}else i.isNeg=t.isNeg}return i}function biHighIndex(t){for(var e=t.digits.length-1;e>0&&0==t.digits[e];)--e;return e}function biNumBits(t){var e,i=biHighIndex(t),n=t.digits[i],a=(i+1)*bitsPerDigit;for(e=a;e>a-bitsPerDigit&&0==(32768&n);--e)n<<=1;return e}function biMultiply(t,e){for(var i,n,a,o=new BigInt,s=biHighIndex(t),r=biHighIndex(e),l=0;r>=l;++l){for(i=0,a=l,j=0;s>=j;++j,++a)n=o.digits[a]+t.digits[j]*e.digits[l]+i,o.digits[a]=n&maxDigitVal,i=n>>>biRadixBits;o.digits[l+s+1]=i}return o.isNeg=t.isNeg!=e.isNeg,o}function biMultiplyDigit(t,e){var i,n,a;result=new BigInt,i=biHighIndex(t),n=0;for(var o=0;i>=o;++o)a=result.digits[o]+t.digits[o]*e+n,result.digits[o]=a&maxDigitVal,n=a>>>biRadixBits;return result.digits[1+i]=n,result}function arrayCopy(t,e,i,n,a){for(var o=Math.min(e+a,t.length),s=e,r=n;o>s;++s,++r)i[r]=t[s]}function biShiftLeft(t,e){var i=Math.floor(e/bitsPerDigit),n=new BigInt;arrayCopy(t.digits,0,n.digits,i,n.digits.length-i);for(var a=e%bitsPerDigit,o=bitsPerDigit-a,s=n.digits.length-1,r=s-1;s>0;--s,--r)n.digits[s]=n.digits[s]<<a&maxDigitVal|(n.digits[r]&highBitMasks[a])>>>o;return n.digits[0]=n.digits[s]<<a&maxDigitVal,n.isNeg=t.isNeg,n}function biShiftRight(t,e){var i=Math.floor(e/bitsPerDigit),n=new BigInt;arrayCopy(t.digits,i,n.digits,0,t.digits.length-i);for(var a=e%bitsPerDigit,o=bitsPerDigit-a,s=0,r=s+1;s<n.digits.length-1;++s,++r)n.digits[s]=n.digits[s]>>>a|(n.digits[r]&lowBitMasks[a])<<o;return n.digits[n.digits.length-1]>>>=a,n.isNeg=t.isNeg,n}function biMultiplyByRadixPower(t,e){var i=new BigInt;return arrayCopy(t.digits,0,i.digits,e,i.digits.length-e),i}function biDivideByRadixPower(t,e){var i=new BigInt;return arrayCopy(t.digits,e,i.digits,0,i.digits.length-e),i}function biModuloByRadixPower(t,e){var i=new BigInt;return arrayCopy(t.digits,0,i.digits,0,e),i}function biCompare(t,e){if(t.isNeg!=e.isNeg)return 1-2*Number(t.isNeg);for(var i=t.digits.length-1;i>=0;--i)if(t.digits[i]!=e.digits[i])return t.isNeg?1-2*Number(t.digits[i]>e.digits[i]):1-2*Number(t.digits[i]<e.digits[i]);return 0}function biDivideModulo(t,e){var i,n,a=biNumBits(t),o=biNumBits(e),s=e.isNeg;if(o>a)return t.isNeg?(i=biCopy(bigOne),i.isNeg=!e.isNeg,t.isNeg=!1,e.isNeg=!1,n=biSubtract(e,t),t.isNeg=!0,e.isNeg=s):(i=new BigInt,n=biCopy(t)),new Array(i,n);i=new BigInt,n=t;for(var r=Math.ceil(o/bitsPerDigit)-1,l=0;e.digits[r]<biHalfRadix;)e=biShiftLeft(e,1),++l,++o,r=Math.ceil(o/bitsPerDigit)-1;n=biShiftLeft(n,l),a+=l;for(var c=Math.ceil(a/bitsPerDigit)-1,u=biMultiplyByRadixPower(e,c-r);-1!=biCompare(n,u);)++i.digits[c-r],n=biSubtract(n,u);for(var d=c;d>r;--d){var p=d>=n.digits.length?0:n.digits[d],f=d-1>=n.digits.length?0:n.digits[d-1],h=d-2>=n.digits.length?0:n.digits[d-2],m=r>=e.digits.length?0:e.digits[r],g=r-1>=e.digits.length?0:e.digits[r-1];i.digits[d-r-1]=p==m?maxDigitVal:Math.floor((p*biRadix+f)/m);for(var v=i.digits[d-r-1]*(m*biRadix+g),b=p*biRadixSquared+(f*biRadix+h);v>b;)--i.digits[d-r-1],v=i.digits[d-r-1]*(m*biRadix|g),b=p*biRadix*biRadix+(f*biRadix+h);u=biMultiplyByRadixPower(e,d-r-1),n=biSubtract(n,biMultiplyDigit(u,i.digits[d-r-1])),n.isNeg&&(n=biAdd(n,u),--i.digits[d-r-1])}return n=biShiftRight(n,l),i.isNeg=t.isNeg!=s,t.isNeg&&(i=s?biAdd(i,bigOne):biSubtract(i,bigOne),e=biShiftRight(e,l),n=biSubtract(e,n)),0==n.digits[0]&&0==biHighIndex(n)&&(n.isNeg=!1),new Array(i,n)}function biDivide(t,e){return biDivideModulo(t,e)[0]}function biModulo(t,e){return biDivideModulo(t,e)[1]}function biMultiplyMod(t,e,i){return biModulo(biMultiply(t,e),i)}function biPow(t,e){for(var i=bigOne,n=t;0!=(1&e)&&(i=biMultiply(i,n)),e>>=1,0!=e;)n=biMultiply(n,n);return i}function biPowMod(t,e,i){for(var n=bigOne,a=t,o=e;0!=(1&o.digits[0])&&(n=biMultiplyMod(n,a,i)),o=biShiftRight(o,1),0!=o.digits[0]||0!=biHighIndex(o);)a=biMultiplyMod(a,a,i);return n}function RSAKeyPair(t,e,i){this.e=biFromHex(t),this.d=biFromHex(e),this.m=biFromHex(i),this.chunkSize=2*biHighIndex(this.m),this.radix=16,this.barrett=new BarrettMu(this.m)}function twoDigit(t){return(10>t?"0":"")+String(t)}function encryptedString(t,e){for(var i=new Array,n=e.length,a=0;n>a;)i[a]=e.charCodeAt(a),a++;for(;i.length%t.chunkSize!=0;)i[a++]=0;var o,s,r,l=i.length,c="";for(a=0;l>a;a+=t.chunkSize){for(r=new BigInt,o=0,s=a;s<a+t.chunkSize;++o)r.digits[o]=i[s++],r.digits[o]+=i[s++]<<8;var u=t.barrett.powMod(r,t.e),d=16==t.radix?biToHex(u):biToString(u,t.radix);c+=d+" "}return c.substring(0,c.length-1)}function decryptedString(t,e){var i,n,a,o=e.split(" "),s="";for(i=0;i<o.length;++i){var r;for(r=16==t.radix?biFromHex(o[i]):biFromString(o[i],t.radix),a=t.barrett.powMod(r,t.d),n=0;n<=biHighIndex(a);++n)s+=String.fromCharCode(255&a.digits[n],a.digits[n]>>8)}return 0==s.charCodeAt(s.length-1)&&(s=s.substring(0,s.length-1)),s}var importScript=window.importScript;!function(t){String.prototype.trim===t&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),Array.prototype.reduce===t&&(Array.prototype.reduce=function(e){if(void 0===this||null===this)throw new TypeError;var i,n=Object(this),a=n.length>>>0,o=0;if("function"!=typeof e)throw new TypeError;if(0==a&&1==arguments.length)throw new TypeError;if(arguments.length>=2)i=arguments[1];else for(;;){if(o in n){i=n[o++];break}if(++o>=a)throw new TypeError}for(;a>o;)o in n&&(i=e.call(t,i,n[o],o,n)),o++;return i})}();var Zepto=function(){function t(t){return null==t?String(t):J[Q.call(t)]||"object"}function e(e){return"function"==t(e)}function i(t){return null!=t&&t==t.window}function n(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function a(e){return"object"==t(e)}function o(t){return a(t)&&!i(t)&&t.__proto__==Object.prototype}function s(t){return t instanceof Array}function r(t){return"number"==typeof t.length}function l(t){return I.call(t,function(t){return null!=t})}function c(t){return t.length>0?C.fn.concat.apply([],t):t}function u(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function d(t){return t in B?B[t]:B[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function p(t,e){return"number"!=typeof e||M[u(t)]?e:e+"px"}function f(t){var e,i;return N[t]||(e=P.createElement(t),P.body.appendChild(e),i=E(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==i&&(i="block"),N[t]=i),N[t]}function h(t){return"children"in t?A.call(t.children):C.map(t.childNodes,function(t){return 1==t.nodeType?t:void 0})}function m(t,e,i){for(D in e)i&&(o(e[D])||s(e[D]))?(o(e[D])&&!o(t[D])&&(t[D]={}),s(e[D])&&!s(t[D])&&(t[D]=[]),m(t[D],e[D],i)):e[D]!==x&&(t[D]=e[D])}function g(t,e){return e===x?C(t):C(t).filter(e)}function v(t,i,n,a){return e(i)?i.call(t,n,a):i}function b(t,e,i){null==i?t.removeAttribute(e):t.setAttribute(e,i)}function y(t,e){var i=t.className,n=i&&i.baseVal!==x;return e===x?n?i.baseVal:i:void(n?i.baseVal=e:t.className=e)}function w(t){var e;try{return t?"true"==t||("false"==t?!1:"null"==t?null:isNaN(e=Number(t))?/^[\[\{]/.test(t)?C.parseJSON(t):t:e):t}catch(i){return t}}function _(t,e){e(t);for(var i in t.childNodes)_(t.childNodes[i],e)}var x,D,C,k,T,j,S=[],A=S.slice,I=S.filter,P=window.document,N={},B={},E=P.defaultView.getComputedStyle,M={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},R=/^\s*<(\w+|!)[^>]*>/,q=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,O=/^(?:body|html)$/i,V=["val","css","html","text","data","width","height","offset"],F=["after","prepend","before","append"],L=P.createElement("table"),H=P.createElement("tr"),$={tr:P.createElement("tbody"),tbody:L,thead:L,tfoot:L,td:H,th:H,"*":P.createElement("div")},z=/complete|loaded|interactive/,W=/^\.([\w-]+)$/,Z=/^#([\w-]*)$/,U=/^[\w-]+$/,J={},Q=J.toString,X={},Y=P.createElement("div");return X.matches=function(t,e){if(!t||1!==t.nodeType)return!1;var i=t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(i)return i.call(t,e);var n,a=t.parentNode,o=!a;return o&&(a=Y).appendChild(t),n=~X.qsa(a,e).indexOf(t),o&&Y.removeChild(t),n},T=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},j=function(t){return I.call(t,function(e,i){return t.indexOf(e)==i})},X.fragment=function(t,e,i){t.replace&&(t=t.replace(q,"<$1></$2>")),e===x&&(e=R.test(t)&&RegExp.$1),e in $||(e="*");var n,a,s=$[e];return s.innerHTML=""+t,a=C.each(A.call(s.childNodes),function(){s.removeChild(this)}),o(i)&&(n=C(a),C.each(i,function(t,e){V.indexOf(t)>-1?n[t](e):n.attr(t,e)})),a},X.Z=function(t,e){return t=t||[],t.__proto__=C.fn,t.selector=e||"",t},X.isZ=function(t){return t instanceof X.Z},X.init=function(t,i){if(t){if(e(t))return C(P).ready(t);if(X.isZ(t))return t;var n;if(s(t))n=l(t);else if(a(t))n=[o(t)?C.extend({},t):t],t=null;else if(R.test(t))n=X.fragment(t.trim(),RegExp.$1,i),t=null;else{if(i!==x)return C(i).find(t);n=X.qsa(P,t)}return X.Z(n,t)}return X.Z()},C=function(t,e){return X.init(t,e)},C.extend=function(t){var e,i=A.call(arguments,1);return"boolean"==typeof t&&(e=t,t=i.shift()),i.forEach(function(i){m(t,i,e)}),t},X.qsa=function(t,e){var i;return n(t)&&Z.test(e)?(i=t.getElementById(RegExp.$1))?[i]:[]:1!==t.nodeType&&9!==t.nodeType?[]:A.call(W.test(e)?t.getElementsByClassName(RegExp.$1):U.test(e)?t.getElementsByTagName(e):t.querySelectorAll(e))},C.contains=function(t,e){return t!==e&&t.contains(e)},C.type=t,C.isFunction=e,C.isWindow=i,C.isArray=s,C.isPlainObject=o,C.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},C.inArray=function(t,e,i){return S.indexOf.call(e,t,i)},C.camelCase=T,C.trim=function(t){return t.trim()},C.uuid=0,C.support={},C.expr={},C.map=function(t,e){var i,n,a,o=[];if(r(t))for(n=0;n<t.length;n++)i=e(t[n],n),null!=i&&o.push(i);else for(a in t)i=e(t[a],a),null!=i&&o.push(i);return c(o)},C.each=function(t,e){var i,n;if(r(t)){for(i=0;i<t.length;i++)if(e.call(t[i],i,t[i])===!1)return t}else for(n in t)if(e.call(t[n],n,t[n])===!1)return t;return t},C.grep=function(t,e){return I.call(t,e)},window.JSON&&(C.parseJSON=JSON.parse),C.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(t,e){J["[object "+e+"]"]=e.toLowerCase()}),C.fn={forEach:S.forEach,reduce:S.reduce,push:S.push,sort:S.sort,indexOf:S.indexOf,concat:S.concat,map:function(t){return C(C.map(this,function(e,i){return t.call(e,i,e)}))},slice:function(){return C(A.apply(this,arguments))},ready:function(t){return z.test(P.readyState)?t(C):P.addEventListener("DOMContentLoaded",function(){t(C)},!1),this},get:function(t){return t===x?A.call(this):this[t>=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return S.every.call(this,function(e,i){return t.call(e,i,e)!==!1}),this},filter:function(t){return e(t)?this.not(this.not(t)):C(I.call(this,function(e){return X.matches(e,t)}))},add:function(t,e){return C(j(this.concat(C(t,e))))},is:function(t){return this.length>0&&X.matches(this[0],t)},not:function(t){var i=[];if(e(t)&&t.call!==x)this.each(function(e){t.call(this,e)||i.push(this)});else{var n="string"==typeof t?this.filter(t):r(t)&&e(t.item)?A.call(t):C(t);this.forEach(function(t){n.indexOf(t)<0&&i.push(t)})}return C(i)},has:function(t){return this.filter(function(){return a(t)?C.contains(this,t):C(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!a(t)?t:C(t)},last:function(){var t=this[this.length-1];return t&&!a(t)?t:C(t)},find:function(t){var e,i=this;return e="object"==typeof t?C(t).filter(function(){var t=this;return S.some.call(i,function(e){return C.contains(e,t)})}):1==this.length?C(X.qsa(this[0],t)):this.map(function(){return X.qsa(this,t)})},closest:function(t,e){var i=this[0],a=!1;for("object"==typeof t&&(a=C(t));i&&!(a?a.indexOf(i)>=0:X.matches(i,t));)i=i!==e&&!n(i)&&i.parentNode;return C(i)},parents:function(t){for(var e=[],i=this;i.length>0;)i=C.map(i,function(t){return(t=t.parentNode)&&!n(t)&&e.indexOf(t)<0?(e.push(t),t):void 0});return g(e,t)},parent:function(t){return g(j(this.pluck("parentNode")),t)},children:function(t){return g(this.map(function(){return h(this)}),t)},contents:function(){return this.map(function(){return A.call(this.childNodes)})},siblings:function(t){return g(this.map(function(t,e){return I.call(h(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return C.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=null),"none"==E(this,"").getPropertyValue("display")&&(this.style.display=f(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var i=e(t);if(this[0]&&!i)var n=C(t).get(0),a=n.parentNode||this.length>1;return this.each(function(e){C(this).wrapAll(i?t.call(this,e):a?n.cloneNode(!0):n)})},wrapAll:function(t){if(this[0]){C(this[0]).before(t=C(t));for(var e;(e=t.children()).length;)t=e.first();C(t).append(this)}return this},wrapInner:function(t){var i=e(t);return this.each(function(e){var n=C(this),a=n.contents(),o=i?t.call(this,e):t;a.length?a.wrapAll(o):n.append(o)})},unwrap:function(){return this.parent().each(function(){C(this).replaceWith(C(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(t){return this.each(function(){var e=C(this);(t===x?"none"==e.css("display"):t)?e.show():e.hide()})},prev:function(t){return C(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return C(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return t===x?this.length>0?this[0].innerHTML:null:this.each(function(e){var i=this.innerHTML;C(this).empty().append(v(this,t,e,i))})},text:function(t){return t===x?this.length>0?this[0].textContent:null:this.each(function(){this.textContent=t})},attr:function(t,e){var i;return"string"==typeof t&&e===x?0==this.length||1!==this[0].nodeType?x:"value"==t&&"INPUT"==this[0].nodeName?this.val():!(i=this[0].getAttribute(t))&&t in this[0]?this[0][t]:i:this.each(function(i){if(1===this.nodeType)if(a(t))for(D in t)b(this,D,t[D]);else b(this,t,v(this,e,i,this.getAttribute(t)))})},removeAttr:function(t){return this.each(function(){1===this.nodeType&&b(this,t)})},prop:function(t,e){return e===x?this[0]&&this[0][t]:this.each(function(i){this[t]=v(this,e,i,this[t])})},data:function(t,e){var i=this.attr("data-"+u(t),e);return null!==i?w(i):x},val:function(t){return t===x?this[0]&&(this[0].multiple?C(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value):this.each(function(e){this.value=v(this,t,e,this.value)})},offset:function(t){if(t)return this.each(function(e){var i=C(this),n=v(this,t,e,i.offset()),a=i.offsetParent().offset(),o={top:n.top-a.top,left:n.left-a.left};"static"==i.css("position")&&(o.position="relative"),i.css(o)});if(0==this.length)return null;var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(e,i){if(arguments.length<2&&"string"==typeof e)return this[0]&&(this[0].style[T(e)]||E(this[0],"").getPropertyValue(e));var n="";if("string"==t(e))i||0===i?n=u(e)+":"+p(e,i):this.each(function(){this.style.removeProperty(u(e))});else for(D in e)e[D]||0===e[D]?n+=u(D)+":"+p(D,e[D])+";":this.each(function(){this.style.removeProperty(u(D))});return this.each(function(){this.style.cssText+=";"+n})},index:function(t){return t?this.indexOf(C(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return S.some.call(this,function(t){return this.test(y(t))},d(t))},addClass:function(t){return this.each(function(e){k=[];var i=y(this),n=v(this,t,e,i);n.split(/\s+/g).forEach(function(t){C(this).hasClass(t)||k.push(t)},this),k.length&&y(this,i+(i?" ":"")+k.join(" "))})},removeClass:function(t){return this.each(function(e){return t===x?y(this,""):(k=y(this),v(this,t,e,k).split(/\s+/g).forEach(function(t){k=k.replace(d(t)," ")}),void y(this,k.trim()))})},toggleClass:function(t,e){return this.each(function(i){var n=C(this),a=v(this,t,i,y(this));a.split(/\s+/g).forEach(function(t){(e===x?!n.hasClass(t):e)?n.addClass(t):n.removeClass(t)})})},scrollTop:function(){return this.length?"scrollTop"in this[0]?this[0].scrollTop:this[0].scrollY:void 0},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),i=this.offset(),n=O.test(e[0].nodeName)?{top:0,left:0}:e.offset();return i.top-=parseFloat(C(t).css("margin-top"))||0,i.left-=parseFloat(C(t).css("margin-left"))||0,n.top+=parseFloat(C(e[0]).css("border-top-width"))||0,n.left+=parseFloat(C(e[0]).css("border-left-width"))||0,{top:i.top-n.top,left:i.left-n.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||P.body;t&&!O.test(t.nodeName)&&"static"==C(t).css("position");)t=t.offsetParent;return t})}},C.fn.detach=C.fn.remove,["width","height"].forEach(function(t){C.fn[t]=function(e){var a,o=this[0],s=t.replace(/./,function(t){return t[0].toUpperCase()});return e===x?i(o)?o["inner"+s]:n(o)?o.documentElement["offset"+s]:(a=this.offset())&&a[t]:this.each(function(i){o=C(this),o.css(t,v(this,e,i,o[t]()))})}}),F.forEach(function(e,i){var n=i%2;C.fn[e]=function(){var e,a,o=C.map(arguments,function(i){return e=t(i),"object"==e||"array"==e||null==i?i:X.fragment(i)}),s=this.length>1;return o.length<1?this:this.each(function(t,e){a=n?e:e.parentNode,e=0==i?e.nextSibling:1==i?e.firstChild:2==i?e:null,o.forEach(function(t){if(s)t=t.cloneNode(!0);else if(!a)return C(t).remove();_(a.insertBefore(t,e),function(t){null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src||window.eval.call(window,t.innerHTML)})})})},C.fn[n?e+"To":"insert"+(i?"Before":"After")]=function(t){return C(t)[e](this),this}}),X.Z.prototype=C.fn,X.uniq=j,X.deserializeValue=w,C.zepto=X,C}();window.Zepto=Zepto,"$"in window||(window.$=Zepto),function(t){function e(t){var e=this.os={},i=this.browser={},n=t.match(/WebKit\/([\d.]+)/),a=t.match(/(Android)\s+([\d.]+)/),o=t.match(/(iPad).*OS\s([\d_]+)/),s=!o&&t.match(/(iPhone\sOS)\s([\d_]+)/),r=t.match(/(webOS|hpwOS)[\s\/]([\d.]+)/),l=r&&t.match(/TouchPad/),c=t.match(/Kindle\/([\d.]+)/),u=t.match(/Silk\/([\d._]+)/),d=t.match(/(BlackBerry).*Version\/([\d.]+)/),p=t.match(/(BB10).*Version\/([\d.]+)/),f=t.match(/(RIM\sTablet\sOS)\s([\d.]+)/),h=t.match(/PlayBook/),m=t.match(/Chrome\/([\d.]+)/)||t.match(/CriOS\/([\d.]+)/),g=t.match(/Firefox\/([\d.]+)/);(i.webkit=!!n)&&(i.version=n[1]),a&&(e.android=!0,e.version=a[2]),s&&(e.ios=e.iphone=!0,e.version=s[2].replace(/_/g,".")),o&&(e.ios=e.ipad=!0,e.version=o[2].replace(/_/g,".")),r&&(e.webos=!0,e.version=r[2]),l&&(e.touchpad=!0),d&&(e.blackberry=!0,e.version=d[2]),p&&(e.bb10=!0,e.version=p[2]),f&&(e.rimtabletos=!0,e.version=f[2]),h&&(i.playbook=!0),c&&(e.kindle=!0,e.version=c[1]),u&&(i.silk=!0,i.version=u[1]),!u&&e.android&&t.match(/Kindle Fire/)&&(i.silk=!0),m&&(i.chrome=!0,i.version=m[1]),g&&(i.firefox=!0,i.version=g[1]),e.tablet=!!(o||h||a&&!t.match(/Mobile/)||g&&t.match(/Tablet/)),e.phone=!(e.tablet||!(a||s||r||d||p||m&&t.match(/Android/)||m&&t.match(/CriOS\/([\d.]+)/)||g&&t.match(/Mobile/)))}e.call(t,navigator.userAgent),t.__detect=e}(Zepto),function(t){function e(t){return t._zid||(t._zid=f++)}function i(t,i,o,s){if(i=n(i),i.ns)var r=a(i.ns);return(p[e(t)]||[]).filter(function(t){return!(!t||i.e&&t.e!=i.e||i.ns&&!r.test(t.ns)||o&&e(t.fn)!==e(o)||s&&t.sel!=s)})}function n(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function a(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function o(e,i,n){"string"!=t.type(e)?t.each(e,n):e.split(/\s/).forEach(function(t){n(t,i)})}function s(t,e){return t.del&&("focus"==t.e||"blur"==t.e)||!!e}function r(t){return m[t]||t}function l(i,a,l,c,u,d){var f=e(i),h=p[f]||(p[f]=[]);o(a,l,function(e,a){var o=n(e);o.fn=a,o.sel=c,o.e in m&&(a=function(e){var i=e.relatedTarget;return!i||i!==this&&!t.contains(this,i)?o.fn.apply(this,arguments):void 0}),o.del=u&&u(a,e);var l=o.del||a;o.proxy=function(t){var e=l.apply(i,[t].concat(t.data));return e===!1&&(t.preventDefault(),t.stopPropagation()),e},o.i=h.length,h.push(o),i.addEventListener(r(o.e),o.proxy,s(o,d))})}function c(t,n,a,l,c){var u=e(t);o(n||"",a,function(e,n){i(t,e,n,l).forEach(function(e){delete p[u][e.i],t.removeEventListener(r(e.e),e.proxy,s(e,c))})})}function u(e){var i,n={originalEvent:e};for(i in e)b.test(i)||void 0===e[i]||(n[i]=e[i]);return t.each(y,function(t,i){n[t]=function(){return this[i]=g,e[t].apply(e,arguments)},n[i]=v}),n}function d(t){if(!("defaultPrevented"in t)){t.defaultPrevented=!1;var e=t.preventDefault;t.preventDefault=function(){this.defaultPrevented=!0,e.call(this)}}}var p=(t.zepto.qsa,{}),f=1,h={},m={mouseenter:"mouseover",mouseleave:"mouseout"};h.click=h.mousedown=h.mouseup=h.mousemove="MouseEvents",t.event={add:l,remove:c},t.proxy=function(i,n){if(t.isFunction(i)){var a=function(){return i.apply(n,arguments)};return a._zid=e(i),a}if("string"==typeof n)return t.proxy(i[n],i);throw new TypeError("expected function")},t.fn.bind=function(t,e){return this.each(function(){l(this,t,e)})},t.fn.unbind=function(t,e){return this.each(function(){c(this,t,e)})},t.fn.one=function(t,e){return this.each(function(i,n){l(this,t,e,null,function(t,e){return function(){var i=t.apply(n,arguments);return c(n,e,t),i}})})};var g=function(){return!0},v=function(){return!1},b=/^([A-Z]|layer[XY]$)/,y={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};t.fn.delegate=function(e,i,n){return this.each(function(a,o){l(o,i,n,e,function(i){return function(n){var a,s=t(n.target).closest(e,o).get(0);return s?(a=t.extend(u(n),{currentTarget:s,liveFired:o}),i.apply(s,[a].concat([].slice.call(arguments,1)))):void 0}})})},t.fn.undelegate=function(t,e,i){return this.each(function(){c(this,e,i,t)})},t.fn.live=function(e,i){return t(document.body).delegate(this.selector,e,i),this},t.fn.die=function(e,i){return t(document.body).undelegate(this.selector,e,i),this},t.fn.on=function(e,i,n){return!i||t.isFunction(i)?this.bind(e,i||n):this.delegate(i,e,n)},t.fn.off=function(e,i,n){return!i||t.isFunction(i)?this.unbind(e,i||n):this.undelegate(i,e,n)},t.fn.trigger=function(e,i){return("string"==typeof e||t.isPlainObject(e))&&(e=t.Event(e)),d(e),e.data=i,this.each(function(){"dispatchEvent"in this&&this.dispatchEvent(e)})},t.fn.triggerHandler=function(e,n){var a,o;return this.each(function(s,r){a=u("string"==typeof e?t.Event(e):e),a.data=n,a.target=r,t.each(i(r,e.type||e),function(t,e){return o=e.proxy(a),a.isImmediatePropagationStopped()?!1:void 0})}),o},"focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(e){t.fn[e]=function(t){return t?this.bind(e,t):this.trigger(e)}}),["focus","blur"].forEach(function(e){t.fn[e]=function(t){return t?this.bind(e,t):this.each(function(){try{this[e]()}catch(t){}}),this}}),t.Event=function(t,e){"string"!=typeof t&&(e=t,t=e.type);var i=document.createEvent(h[t]||"Events"),n=!0;if(e)for(var a in e)"bubbles"==a?n=!!e[a]:i[a]=e[a];return i.initEvent(t,n,!0,null,null,null,null,null,null,null,null,null,null,null,null),i.isDefaultPrevented=function(){return this.defaultPrevented},i}}(Zepto),function(t){function e(e,i,n){var a=t.Event(i);return t(e).trigger(a,n),!a.defaultPrevented}function n(t,i,n,a){return t.global?e(i||y,n,a):void 0}function a(e){e.global&&0===t.active++&&n(e,null,"ajaxStart")}function o(e){e.global&&!--t.active&&n(e,null,"ajaxStop")}function s(t,e){var i=e.context;return e.beforeSend.call(i,t,e)===!1||n(e,i,"ajaxBeforeSend",[t,e])===!1?!1:void n(e,i,"ajaxSend",[t,e])}function r(t,e,i){var a=i.context,o="success";i.success.call(a,t,o,e),n(i,a,"ajaxSuccess",[e,i,t]),c(o,e,i),window.Pass&&window.Pass.traceID&&window.Pass.traceID.getTraceID&&window.Pass.traceID.getTraceID(e,t)}function l(t,e,i,a){var o=a.context;a.error.call(o,i,e,t),n(a,o,"ajaxError",[i,a,t]),c(e,i,a)}function c(t,e,i){var a=i.context;i.complete.call(a,e,t),n(i,a,"ajaxComplete",[e,i]),o(i)}function u(){}function d(t){return t&&(t=t.split(";",2)[0]),t&&(t==C?"html":t==D?"json":_.test(t)?"script":x.test(t)&&"xml")||"text"}function p(t,e){return(t+"&"+e).replace(/[&?]{1,2}/,"?")}function f(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()||(e.url=p(e.url,e.data))}function h(e,i,n,a){var o=!t.isFunction(i);return{url:e,data:o?i:void 0,success:o?t.isFunction(n)?n:void 0:i,dataType:o?a||n:n}}function m(e,i,n,a){var o,s=t.isArray(i);t.each(i,function(i,r){o=t.type(r),a&&(i=n?a:a+"["+(s?"":i)+"]"),!a&&s?e.add(r.name,r.value):"array"==o||!n&&"object"==o?m(e,r,n,i):e.add(i,r)})}var g,v,b=0,y=window.document,w=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,_=/^(?:text|application)\/javascript/i,x=/^(?:text|application)\/xml/i,D="application/json",C="text/html",k=/^\s*$/;t.active=0,t.ajaxJSONP=function(e){if(!("type"in e))return t.ajax(e);var i,n="jsonp"+ ++b,a=y.createElement("script"),o=function(){clearTimeout(i),t(a).remove(),delete window[n]},c=function(t){o(),t&&"timeout"!=t||(window[n]=u),l(null,t||"abort",d,e)},d={abort:c};return s(d,e)===!1?(c("abort"),!1):(window[n]=function(t){o(),r(t,d,e)},a.onerror=function(){c("error")},a.src=e.url.replace(/=\?/,"="+n),t("head").append(a),e.timeout>0&&(i=setTimeout(function(){c("timeout")},e.timeout)),d)},t.ajaxSettings={type:"GET",beforeSend:u,success:u,error:u,complete:u,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript",json:D,xml:"application/xml, text/xml",html:C,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0},t.ajax=function(e){window.Pass&&window.Pass.traceID&&window.Pass.traceID.createTraceID&&window.Pass.traceID.setData&&window.Pass.traceID.setData(e);var n=t.extend({},e||{});for(g in t.ajaxSettings)void 0===n[g]&&(n[g]=t.ajaxSettings[g]);a(n),urlProtcol=null,urlDomain=null,crosstest=/^([\w-]+:)?\/\/([^\/]+)/.test(n.url),urlProtcol=RegExp.$1,urlDomain=RegExp.$2;var o="wappass.baidu.com";"http:"==urlProtcol&&urlDomain==o&&(n.url=n.url.replace(/^http:/,"https:")),n.crossDomain||(n.crossDomain=crosstest&&urlDomain!=window.location.host),n.url||(n.url=window.location.toString()),f(n),n.cache===!1&&(n.url=p(n.url,"_="+Date.now()));var c=n.dataType,h=/=\?/.test(n.url);if("jsonp"==c||h)return h||(n.url=p(n.url,"callback=?")),t.ajaxJSONP(n);var m,b=n.accepts[c],y={},w=urlProtcol?urlProtcol:window.location.protocol,_=n.xhr();urlDomain==o&&"http:"==window.location.protocol&&(n.crossDomain=!0),n.crossDomain||(y["X-Requested-With"]="XMLHttpRequest"),b&&(y.Accept=b,b.indexOf(",")>-1&&(b=b.split(",",2)[0]),_.overrideMimeType&&_.overrideMimeType(b)),(n.contentType||n.contentType!==!1&&n.data&&"GET"!=n.type.toUpperCase())&&(y["Content-Type"]=n.contentType||"application/x-www-form-urlencoded"),n.headers=t.extend(y,n.headers||{}),_.onreadystatechange=function(){if(4==_.readyState){_.onreadystatechange=u,clearTimeout(m);var e,i=!1;if(_.status>=200&&_.status<300||304==_.status||0==_.status&&"file:"==w){c=c||d(_.getResponseHeader("content-type")),e=_.responseText;try{"script"==c?(1,eval)(e):"xml"==c?e=_.responseXML:"json"==c&&(e=k.test(e)?null:t.parseJSON(e))}catch(a){i=a}i?l(i,"parsererror",_,n):r(e,_,n)}else l(null,_.status?"error":"abort",_,n)}};var x="async"in n?n.async:!0;if(_.open(n.type,n.url,x),n.xhrFields)for(i in n.xhrFields)_[i]=n.xhrFields[i];urlDomain==o&&(_.withCredentials=!0);for(v in n.headers)_.setRequestHeader(v,n.headers[v]);return s(_,n)===!1?(_.abort(),!1):(n.timeout>0&&(m=setTimeout(function(){_.onreadystatechange=u,_.abort(),l(null,"timeout",_,n)
},n.timeout)),_.send(n.data?n.data:null),_)},t.get=function(){return t.ajax(h.apply(null,arguments))},t.post=function(){var e=h.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=h.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,i,n){if(!this.length)return this;var a,o=this,s=e.split(/\s/),r=h(e,i,n),l=r.success;return s.length>1&&(r.url=s[0],a=s[1]),r.success=function(e){o.html(a?t("<div>").html(e.replace(w,"")).find(a):e),l&&l.apply(o,arguments)},t.ajax(r),this};var T=encodeURIComponent;t.param=function(t,e){var i=[];return i.add=function(t,e){this.push(T(t)+"="+T(e))},m(i,t,e),i.join("&").replace(/%20/g,"+")}}(Zepto),function(t){t.fn.serializeArray=function(){var e,i=[];return t(Array.prototype.slice.call(this.get(0).elements)).each(function(){e=t(this);var n=e.attr("type");"fieldset"!=this.nodeName.toLowerCase()&&!this.disabled&&"submit"!=n&&"reset"!=n&&"button"!=n&&("radio"!=n&&"checkbox"!=n||this.checked)&&i.push({name:e.attr("name"),value:e.val()})}),i},t.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},t.fn.submit=function(e){if(e)this.bind("submit",e);else if(this.length){var i=t.Event("submit");this.eq(0).trigger(i),i.defaultPrevented||this.get(0).submit()}return this}}(Zepto),function(t,e){function i(t){return n(t.replace(/([a-z])([A-Z])/,"$1-$2"))}function n(t){return t.toLowerCase()}function a(t){return o?o+t:n(t)}var o,s,r,l,c,u,d,p,f="",h={Webkit:"webkit",Moz:"",O:"o",ms:"MS"},m=window.document,g=m.createElement("div"),v=/^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i,b={};t.each(h,function(t,i){return g.style[t+"TransitionProperty"]!==e?(f="-"+n(t)+"-",o=i,!1):void 0}),s=f+"transform",b[r=f+"transition-property"]=b[l=f+"transition-duration"]=b[c=f+"transition-timing-function"]=b[u=f+"animation-name"]=b[d=f+"animation-duration"]=b[p=f+"animation-timing-function"]="",t.fx={off:o===e&&g.style.transitionProperty===e,speeds:{_default:400,fast:200,slow:600},cssPrefix:f,transitionEnd:a("TransitionEnd"),animationEnd:a("AnimationEnd")},t.fn.animate=function(e,i,n,a){return t.isPlainObject(i)&&(n=i.easing,a=i.complete,i=i.duration),i&&(i=("number"==typeof i?i:t.fx.speeds[i]||t.fx.speeds._default)/1e3),this.anim(e,i,n,a)},t.fn.anim=function(n,a,o,f){var h,m,g,y={},w="",_=this,x=t.fx.transitionEnd;if(a===e&&(a=.4),t.fx.off&&(a=0),"string"==typeof n)y[u]=n,y[d]=a+"s",y[p]=o||"linear",x=t.fx.animationEnd;else{m=[];for(h in n)v.test(h)?w+=h+"("+n[h]+") ":(y[h]=n[h],m.push(i(h)));w&&(y[s]=w,m.push(s)),a>0&&"object"==typeof n&&(y[r]=m.join(", "),y[l]=a+"s",y[c]=o||"linear")}return g=function(e){if("undefined"!=typeof e){if(e.target!==e.currentTarget)return;t(e.target).unbind(x,g)}t(this).css(b),f&&f.call(this)},a>0&&this.bind(x,g),this.size()&&this.get(0).clientLeft,this.css(y),0>=a&&setTimeout(function(){_.each(function(){g.call(this)})},0),this},g=null}(Zepto),function(t){function e(t){return"tagName"in t?t:t.parentNode}function i(t,e,i,n){var a=Math.abs(t-e),o=Math.abs(i-n);return a>=o?t-e>0?"Left":"Right":i-n>0?"Up":"Down"}function n(){c=null,u.last&&(u.el.trigger("longTap"),u={})}function a(){c&&clearTimeout(c),c=null}function o(){s&&clearTimeout(s),r&&clearTimeout(r),l&&clearTimeout(l),c&&clearTimeout(c),s=r=l=c=null,u={}}var s,r,l,c,u={},d=750;t(document).ready(function(){var p,f,h=0,m=0;t(document.body).bind("touchstart",function(i){p=Date.now(),f=p-(u.last||p),u.el=t(e(i.touches[0].target)),s&&clearTimeout(s),u.x1=i.touches[0].pageX,u.y1=i.touches[0].pageY,f>0&&250>=f&&(u.isDoubleTap=!0),u.last=p,c=setTimeout(n,d)}).bind("touchmove",function(t){a(),u.x2=t.touches[0].pageX,u.y2=t.touches[0].pageY,Math.abs(u.x1-u.x2)>10&&t.preventDefault(),h+=Math.abs(u.x1-u.x2),m+=Math.abs(u.y1-u.y2)}).bind("touchend",function(){a(),u.x2&&Math.abs(u.x1-u.x2)>30||u.y2&&Math.abs(u.y1-u.y2)>30?l=setTimeout(function(){u.el.trigger("swipe"),u.el.trigger("swipe"+i(u.x1,u.x2,u.y1,u.y2)),u={}},0):"last"in u&&(30>h&&30>m?r=setTimeout(function(){var e=t.Event("tap");e.cancelTouch=o,u.el.trigger(e),u.isDoubleTap?(u.el.trigger("doubleTap"),u={}):s=setTimeout(function(){s=null,u.el.trigger("singleTap"),u={}},250)},0):u={}),h=m=0}).bind("touchcancel",o),t(window).bind("scroll",o)}),["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap","singleTap","longTap"].forEach(function(e){t.fn[e]=function(t){return this.bind(e,t)}})}(Zepto),function(t){function e(e){return e=t(e),!(!e.width()&&!e.height())&&"none"!==e.css("display")}function i(t,e){t=t.replace(/=#\]/g,'="#"]');var i,n,a=r.exec(t);if(a&&a[2]in s&&(i=s[a[2]],n=a[3],t=a[1],n)){var o=Number(n);n=isNaN(o)?n.replace(/^["']|["']$/g,""):o}return e(t,i,n)}var n=t.zepto,a=n.qsa,o=n.matches,s=t.expr[":"]={visible:function(){return e(this)?this:void 0},hidden:function(){return e(this)?void 0:this},selected:function(){return this.selected?this:void 0},checked:function(){return this.checked?this:void 0},parent:function(){return this.parentNode},first:function(t){return 0===t?this:void 0},last:function(t,e){return t===e.length-1?this:void 0},eq:function(t,e,i){return t===i?this:void 0},contains:function(e,i,n){return t(this).text().indexOf(n)>-1?this:void 0},has:function(t,e,i){return n.qsa(this,i).length?this:void 0}},r=new RegExp("(.*):(\\w+)(?:\\(([^)]+)\\))?$\\s*"),l=/^\s*>/,c="Zepto"+ +new Date;n.qsa=function(e,o){return i(o,function(i,s,r){try{var u;!i&&s?i="*":l.test(i)&&(u=t(e).addClass(c),i="."+c+" "+i);var d=a(e,i)}catch(p){throw console.error("error performing selector: %o",o),p}finally{u&&u.removeClass(c)}return s?n.uniq(t.map(d,function(t,e){return s.call(t,e,d,r)})):d})},n.matches=function(t,e){return i(e,function(e,i,n){return!(e&&!o(t,e)||i&&i.call(t,null,n)!==t)})}}(Zepto),function(t){t.fn.formJson=function(e,i){function n(t,e){var i=c[t];i?(i.push||(c[t]=[i]),c[t].push(e)):c[t]=e}for(var a,o,s,r,e=e||t(this).get(0),l=e.elements,i=i||function(t){return t},c={},u=0,d=l.length;d>u;u++)if(a=l[u],s=a.name,!a.disabled&&s)switch(o=a.type,r=a.value,o){case"radio":case"checkbox":if(!a.checked)break;case"textarea":case"text":case"tel":case"email":case"password":case"hidden":case"file":n(s,i(r,s))}return c}}(Zepto),function(t,e){function i(i,n,a,o,s){"function"!=typeof n||s||(s=n,n=e);var r={opacity:a};return o&&(r.scale=o,i.css(t.fx.cssPrefix+"transform-origin","0 0")),i.animate(r,n,null,s)}function n(e,n,a,o){return i(e,n,0,a,function(){s.call(t(this)),o&&o.call(this)})}var a=window.document,o=(a.documentElement,t.fn.show),s=t.fn.hide,r=t.fn.toggle;t.fn.show=function(t,n){return o.call(this),t===e?t=0:this.css("opacity",0),i(this,t,1,"1,1",n)},t.fn.hide=function(t,i){return t===e?s.call(this):n(this,t,"0,0",i)},t.fn.toggle=function(i,n){return i===e||"boolean"==typeof i?r.call(this,i):this.each(function(){var e=t(this);e["none"==e.css("display")?"show":"hide"](i,n)})},t.fn.fadeTo=function(t,e,n){return i(this,t,e,null,n)},t.fn.fadeIn=function(t,e){var i=this.css("opacity");return i>0?this.css("opacity",0):i=1,o.call(this).fadeTo(t,i,e)},t.fn.fadeOut=function(t,e){return n(this,t,null,e)},t.fn.fadeToggle=function(e,i){return this.each(function(){var n=t(this);n[0==n.css("opacity")||"none"==n.css("display")?"fadeIn":"fadeOut"](e,i)})},t.fn.longPress=function(t){for(var i=e,n=this,a=0;a<n.length;a++)n[a].addEventListener("touchstart",function(){i=setTimeout(t,800)},!1),n[a].addEventListener("touchend",function(){clearTimeout(i)},!1)}}(Zepto),function(t){t.fn.getQueryString=function(t){for(var e=location.href.substring(location.href.indexOf("?")+1).split("&"),i={},n=0,a=e.length;a>n;n++){var o=e[n].split("=");i[o[0]]=o[1]}return i[t]?i[t]:""}}(Zepto),function(t){t.extend(t.fn,{cookie:function(e,i,n){var a,o,s,r;return arguments.length>1&&"[object Object]"!==String(i)?(n=t.extend({},n),(null===i||void 0===i)&&(n.expires=-1),"number"==typeof n.expires&&(a=24*n.expires*60*60*1e3,o=n.expires=new Date,o.setTime(o.getTime()+a)),i=String(i),document.cookie=[encodeURIComponent(e),"=",n.raw?i:encodeURIComponent(i),n.expires?"; expires="+n.expires.toUTCString():"",n.path?"; path="+n.path:"",n.domain?"; domain="+n.domain:"",n.secure?"; secure":""].join("")):(n=i||{},r=n.raw?function(t){return t}:decodeURIComponent,(s=new RegExp("(?:^|; )"+encodeURIComponent(e)+"=([^;]*)").exec(document.cookie))?r(s[1]):null)}})}(Zepto),!function(t){"use strict";function e(t){(e=Array.prototype.indexOf?function(t){return o.indexOf(t)>-1}:function(t){var e=t+s;return o.join(s).indexOf(e)>-1})(t)}function i(t,i){var a,t,o,s=t.split("/"),r=s.length;for(a=0,o=n;r>a;a++,o=o[t]){if(t=s[a],0==a&&e(t))throw t+"is reservedWord";o[t]||a===r-1||(o[t]={}),a===r-1&&(o[t]=i)}}var n,e,a={},o=["require","define"],s="arr"+ +new Date;n=t.Pass={},n.define=function(t,e){if(!t)throw"base/namespace Pass.define first param must be passed in";return a[t]||(e?(a[t]=e,i(t,a[t])):(a[t]={},i(t,a[t]))),a[t]},n.require=function(t){if(!t||!a[t])throw"base/namespace Pass.require cant get target obj";return a[t]},t.Pass=n}(this),!function(t,e){"use strict";var i={login:"/static/appsapi/js/app_show_webapp_login.js",login_again:"/static/appsapi/js/app_show_webapp_login_again.js",sms_login:"/static/appsapi/js/app_show_webapp_sms_login.js",sms_verify:"/static/appsapi/js/app_show_webapp_sms_verify.js",face_login:"/static/appsapi/js/app_show_webapp_face_login.js",bind:"/static/appsapi/js/app_show_webapp_bind.js",bind_verify:"/static/appsapi/js/app_show_webapp_bind_verify.js",bindResult:"/static/appsapi/js/app_show_webapp_bind_result.js",forcedBind:"/static/appsapi/js/app_show_webapp_forced_bind.js",forcedBind_verify:"/static/appsapi/js/app_show_webapp_forced_bind_verify.js",realName:"/static/appsapi/js/app_show_webapp_real_name.js",realName_verify:"/static/appsapi/js/app_show_webapp_real_name_verify.js",verify:"/static/appsapi/js/app_show_webapp_verify.js",reg:"/static/appsapi/js/app_show_webapp_reg.js",reg_verify:"/static/appsapi/js/app_show_webapp_reg_verify.js",canshare_accounts:"/static/appsapi/js/app_show_webapp_canshare_accounts.js",authPwd:"/static/appsapi/js/app_show_webapp_auth_pwd.js",agreement:"/static/appsapi/js/app_show_webapp_agreement.js",personal_agreement:"/static/appsapi/js/app_show_webapp_personal_agreement.js",getpass:"/static/appsapi/js/app_show_webapp_getpass.js",getpassbyphone:"/static/appsapi/js/app_show_webapp_getpassbyphone.js",getpassbyemail:"/static/appsapi/js/app_show_webapp_getpassbyemail.js",getpassbyemail_result:"/static/appsapi/js/app_show_webapp_getpassbyemail_result.js",fastReg:"/static/appsapi/js/app_show_webapp_fast_reg.js",upstreamReg:"/static/appsapi/js/app_show_webapp_upstream_reg.js",setpwd:"/static/appsapi/js/app_show_webapp_setpwd.js",fastRegSuccess:"/static/appsapi/js/app_show_webapp_fast_reg_success.js",fastRegVerify:"/static/appsapi/js/app_show_webapp_fast_reg_verify.js",feedback:"/static/appsapi/js/app_show_webapp_feedback.js",codelist:"/static/appsapi/js/app_show_webapp_codelist.js",idcardverify:"/static/appsapi/js/app_show_webapp_idcardverify.js",uniqueVerifyCode:"/static/appsapi/js/app_show_webapp_unique_verify_code.js",setunamepwd:"/static/appsapi/js/app_show_webapp_setuname_pwd.js",secondCardVerify:"/static/appsapi/js/app_show_webapp_secondCard_verify.js",secondCardResult:"/static/appsapi/js/app_show_webapp_secondCard_result.js",smsSecondcard:"/static/appsapi/js/app_show_webapp_sms_secondcard.js",fullName:"/static/appsapi/js/app_show_webapp_fullName.js",question:"/static/appsapi/js/app_show_webapp_question.js",canshareAi:"/static/appsapi/js/app_show_webapp_canshare_ai.js"},n={realName:"/static/appsapi/css/realname.css",secondCardResult:"/static/appsapi/css/second_card.css",secondCardVerify:"/static/appsapi/css/second_card.css",fullName:"/static/appsapi/css/second_card.css",smsSecondcard:"/static/appsapi/css/second_card.css",login_again:"/static/appsapi/css/login_again.css",question:"/static/appsapi/css/question.css",idcardverify:"/static/appsapi/css/idcard.css",codelist:"/static/appsapi/css/codelist.css",feedback:"/static/appsapi/css/feedback.css",uniqueVerifyCode:"/static/appsapi/css/show/uniqueVerifyCode.css",upstreamReg:"/static/appsapi/css/show/upstreamReg.css",setunamepwd:"/static/appsapi/css/show/setunamepwd.css"};e._modulePool=e._modulePool||{},e._moduleList=e._moduleList||[],e._moduleCurrent="",e._define=e._define||function(t,i){e._modulePool[t]=i&&i()},e._getModule=e._getModule||function(t){return e._modulePool[t]};var a=function(t,e){for(var i=e.length;i>0;i--)return t===e[i-1]?i-1:-1},o=function(t,e){for(var i=0;i<e.length;i++)if(t===e[i])return i;return-1};e.removeLast=function(){var t=a(e._moduleCurrent,e._moduleList);e._moduleList.splice(t-1,1)},e.switchView=function(i,n){setTimeout(function(){e.logAll&&e.logAll.logBfb&&(i=i||"pagename",e.logAll.logBfb({en:"appsapi-"+i}))},100),t("input").blur();var s;if("back"===i){if(s=a(e._moduleCurrent,e._moduleList),e._modulePool[e._moduleCurrent].backSign)return e._modulePool[e._moduleCurrent].back&&e._modulePool[e._moduleCurrent].back(),i=e._moduleList[s],void e.animate(i);i=s>0?e._moduleList[s-1]:"",e._modulePool[i]&&e._modulePool[i].backNeedFn&&e._modulePool[i].backFn&&e._modulePool[i].backFn();var r=t(".mod-dialog-body");if(r.length>0&&"block"===r.css("display"))return;e._moduleList.length>0&&e._moduleList.splice(s,1),e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-back-"+e._moduleCurrent+(void 0===e._modulePool[e._moduleCurrent].history?"":e._modulePool[e._moduleCurrent].history?"_history":"_noHistory"),ev:[i,"show"]})}else-1===t.inArray(i,e._moduleList)?e._moduleList.push(i):(s=o(i,e._moduleList),e._moduleList.splice(s,1),e._moduleList.push(i));e.animate(i),n&&"init"===n&&(window.Jsdoing3=+new Date),""!==i&&(e._moduleCurrent=i,e.client.deviceTitle(e._getModule(i).lang.title),t("title").html(e._getModule(i).lang.title),e.client.ischeckNativeMethod("sapi_action_update_navigator",function(){var t=["login","sms_login","face_login","canshare_accounts"],n=t.indexOf(i)>-1?1:2;"ios"===publicData.client&&e.client.deviceClass("sapi_action_update_navigator",{state:n},function(){},function(){},"iframe")},function(){}))},e._getScript=e._getScript||function(t,a,o){function s(){var i=e._getModule(t);if(!i)throw new Error("load "+t+"module script error.");o&&"init"===o&&(window.Jsdoing2=+new Date,window.cache=!1),a&&a(i)}function r(t){var e=document,i=e.createElement("SCRIPT");i.type="text/javascript",i.charset="UTF-8",i.readyState?i.onreadystatechange=function(){("loaded"===i.readyState||"complete"===i.readyState)&&(i.onreadystatechange=null,s())}:i.onload=function(){s()},i.src=cdnDomain+t,e.getElementsByTagName("head")[0].appendChild(i)}var l=e._getModule(t);l?(o&&"init"===o&&(window.Jsdoing2=+new Date,window.cache=!0),a&&a(l)):n[t]?e.load.loadCssFileW(cdnDomain+n[t],function(){r(i[t])}):r(i[t])}}($,window.Pass),!function(t,e){"use strict";e.traceID={headID:"",flowID:"",cases:"",initTraceID:function(t){var e=this;t&&t.length>0&&(e.headID=t.slice(0,6),e.flowID=t.slice(6,8))},createTraceID:function(){var t=this;return t.headID+t.flowID+t.cases},startFlow:function(t){var e=this,i=e.getFlowID(t);0===e.flowID.length&&(e.createHeadID(),e.flowID=i)},finishFlow:function(){var t=this;t.destory()},getRandom:function(){return parseInt(90*Math.random()+10,10)},createHeadID:function(){var t=this,e=(new Date).getTime()+t.getRandom().toString(),i=Number(e).toString(16),n=i.length,a=i.slice(n-6,n).toUpperCase();t.headID=a},getTraceID:function(t,e){var i=this,n=t&&t.getResponseHeader&&t.getResponseHeader("Trace-ID")||e&&e.traceid||"";i.initTraceID(n)},getFlowID:function(t){var e={wapLogin:"03",wapReg:"04",wapAppeal:"05",wapGetPass:"06",wapAccount:"07",wapFreeze:"08",wapUnFreeze:"09"};return e[t]},setData:function(t){var e=this;return t.data?t.data.traceid=e.createTraceID():t.url=t.url+(t.url.indexOf("?")>-1?"&":"?")+"traceid="+e.createTraceID(),t},destory:function(){var t=this;t.headID="",t.flowID=""}},e.logAll={logPass:function(t,e,i){function n(t){var e,i,n,a,o,s,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(n=t.length,i=0,e="";n>i;){if(a=255&t.charCodeAt(i++),i==n){e+=r.charAt(a>>2),e+=r.charAt((3&a)<<4),e+="==";break}if(o=t.charCodeAt(i++),i==n){e+=r.charAt(a>>2),e+=r.charAt((3&a)<<4|(240&o)>>4),e+=r.charAt((15&o)<<2),e+="=";break}s=t.charCodeAt(i++),e+=r.charAt(a>>2),e+=r.charAt((3&a)<<4|(240&o)>>4),e+=r.charAt((15&o)<<2|(192&s)>>6),e+=r.charAt(63&s)}return e}var a=document.location.protocol+"//nsclick.baidu.com/v.gif?pid=111&type=1023&v="+(new Date).getTime(),o="";for(var s in e)o=o+s+":"+e[s]+",";o=n("{"+o.substring(0,o.length-1)+"}");var r="&page="+t.page+"&source="+t.source+"&tpl="+t.tpl+"&subpro="+t.subpro+"&auto_statistic="+o+"&extrajson="+t.extrajson+"&en="+e.eventType;if(i)for(var s in i)r+="&"+s+"="+i[s];if(a+=r){var l=new Image;l.onload=l.onerror=function(){l.onload=l.onerror=null,l=null},l.src=a}},logBfb:function(t){var t=t||{};if(e.logAll&&e.logAll.logPass){var i={page:t.logPage||e._moduleCurrent||"",source:"native",tpl:publicData.tpl||"",subpro:publicData.subpro||"",extrajson:publicData.extrajson||""},n={};t.autoStatisticObj&&(n=t.autoStatisticObj),n.eventType=t.en||"",e.logAll.logPass(i,n,t.urlObj)}}}}($,window.Pass),!function(){var t,e;!function(){function i(e){var i=e.factory,n=function(i){var n=i;return"."===i.charAt(0)&&(n=e.id.slice(0,e.id.lastIndexOf(s))+s+i.slice(2)),t(n)};return e.exports={},delete e.factory,i(n,e.exports,e),e.exports}var n={},a=[],o={},s=".";t=function(t){if(!n[t])throw"module "+t+" not found";if(t in o){var e=a.slice(o[t]).join("->")+"->"+t;throw"Cycle in require graph: "+e}if(n[t].factory)try{return o[t]=a.length,a.push(t),i(n[t])}finally{delete o[t],a.pop()}return n[t].exports},e=function(t,e){if(n[t])throw"module "+t+" already defined";n[t]={id:t,factory:e}},e.remove=function(t){delete n[t]},e.moduleMap=n}(),e("sapi_bridge",function(t,e,i){var n={callbackId:Math.floor(2e9*Math.random()),callbacks:{},commandQueue:[],loopEnabled:!1,invoke:function(t,e,i,n,a){return this.loopEnabled?void this.enqueueCommand(t,e,i,n):(t||(t="defaultCommand"),e||(e={}),this.callbackId++,this.callbacks[this.callbackId]={success:i,fail:n},void(a&&"iframe"===a?this.bridgeLoadURL("sapi://"+t+"/"+JSON.stringify(e)+"/"+this.callbackId):document.location="sapi://"+t+"/"+JSON.stringify(e)+"/"+this.callbackId))},bridgeLoadURL:function(t){var e;e=document.createElement("iframe"),e.setAttribute("src",t),e.setAttribute("style","display:none;"),e.setAttribute("height","0px"),e.setAttribute("width","0px"),e.setAttribute("frameborder","0"),document.body.appendChild(e),e.parentNode.removeChild(e),e=null},enqueueCommand:function(t,e,i,n){t||(t="defaultCommand"),e||(e={}),this.callbackId++,this.callbacks[this.callbackId]={success:i,fail:n};var a=t+"/"+JSON.stringify(e)+"/"+this.callbackId;this.commandQueue.push(a)},fetchNativeCommands:function(){var t=JSON.stringify(this.commandQueue);return this.commandQueue=[],t},activateCommandQueue:function(){document.location="sapi://ready"},callbackSuccess:function(t,e){try{n.callbackFromNative(t,e,!0)}catch(i){console.log("Error in error callback: "+t+" = "+i)}},callbackError:function(t,e){try{n.callbackFromNative(t,e,!1)}catch(i){console.log("Error in error callback: "+t+" = "+i)}},callbackFromNative:function(t,e,i){var a=this.callbacks[t];a&&(i?a.success&&a.success(t,e):a.fail&&a.fail(t,e),delete n.callbacks[t])}};i.exports=n}),window.sapi_bridge=t("sapi_bridge")}(),!function(t,e){e.client=e.client||{network:!1,encodeHTML:function(t){return String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")},upData:function(){var t,e=location.search.substring(1).split("&"),i=this,n={};for(var a in e)t=e[a].split("="),n[t[0]]=i.encodeHTML(t[1]);publicData=n,publicData.lang=(publicData.lang||"zh-cn").toLowerCase(),-1==="zh-cn|en".indexOf(publicData.lang)&&(publicData.lang="zh-cn"),publicData.lang+""=="en"&&(publicData.overseas=1)},fastReg:function(){window.sapi_obj&&window.sapi_obj.action_fast_reg?window.sapi_obj.action_fast_reg():publicData.client+""=="android"?prompt('{action:{name:"action_fast_reg"}}'):publicData.client+""=="ios"&&this.deviceClass("action_fast_reg")},customLogin:function(){window.sapi_obj&&window.sapi_obj.action_share_accounts_view_btn_clicked?window.sapi_obj.action_share_accounts_view_btn_clicked():publicData.client+""=="android"?prompt('{action:{name:"action_share_accounts_view_btn_clicked"}}'):publicData.client+""=="ios"&&this.deviceClass("action_share_accounts_view_btn_clicked")},vcodetoclient:function(t){window.sapi_obj&&window.sapi_obj.action_received_sms_code?window.sapi_obj.action_received_sms_code("Pass.client.setVcodeVal",t):publicData.client+""=="android"&&prompt('{action:{name:"action_received_sms_code", params:["Pass.client.setVcodeVal","'+t+'"]}}')},setVcodeVal:function(t,e){var i=Pass._modulePool[e],n=Object.prototype.toString.call;i&&i.setVcodeVal&&"[object function]"===n(i.setVcodeVal).toLowerCase()&&i.setVcodeVal(t)},webViewWillAppear:function(){var t=Pass._moduleCurrent||"login",e=Pass._modulePool[t],i=Object.prototype.toString.call;e&&e.webViewWillAppear&&"[object function]"===i(e.webViewWillAppear).toLowerCase()&&e.webViewWillAppear()},webViewWillDisappear:function(){var t=Pass._moduleCurrent||"login",e=Pass._modulePool[t],i=Object.prototype.toString.call;e&&e.webViewWillDisappear&&"[object function]"===i(e.webViewWillDisappear).toLowerCase()&&e.webViewWillDisappear()},deviceClass:function(t,e,i,n,a){if(publicData.client+""=="android"&&window.sapi_obj){if(window.sapi_obj[t])return window.sapi_obj[t]()}else{if("android"===publicData.client){var o="";if(e){for(var s in e)o+='"'+e[s]+'",';o=o.substring(0,o.length-1)}var r='{action:{name:"'+t+'",params:['+o+"]}}",l=prompt(r);return i&&i&&i("",l?JSON.parse(l):""),l}if(publicData.client+""=="ios"){e=e||{};var c=function(t,e){i&&i(t,e)},u=function(t,e){n&&n(t,e)};window.sapi_bridge.invoke(arguments[0],e,c,u,a)}}},deviceClassJson:function(t,e,i,n){if("android"===publicData.client&&window.sapi_obj){if(window.sapi_obj[t])return window.sapi_obj[t]()}else{if("android"===publicData.client){var e=e||{},a=JSON.stringify(e),o='{action:{name:"'+t+'",params:['+a+"]}}",e=prompt(o);return e=e?JSON.parse(e):"",e&&0===parseInt(e.errno,10)?i&&i("android",e):n&&n("android",e),e}if("ios"===publicData.client){var e=e||{},s=function(t,e){i&&i(t,e)},r=function(t,e){n&&n(t,e)};window.sapi_bridge.invoke(arguments[0],e,s,r,"iframe")}}},deviceTitle:function(t){e.client.deviceClass("action_set_title",{title:t},"","","iframe")},checkLivinguname:function(t,e){return t=e?t.replace("<livinguname></livinguname>","<livinguname>"+encodeURIComponent(e)+"</livinguname>"):t.replace("<livinguname></livinguname>","")},success:function(t,i,n){if(e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"na_login_success"}),t=this.checkLivinguname(t,n),t=t.replace("<loginType></loginType>","<loginType>"+(i?i:"password")+"</loginType>"),window.sapi_obj)window.sapi_obj.authorized_response(t);else if(publicData.client+""=="android"){var a='{action:{name:"authorized_response",params:["'+t+'"]}}';prompt(a)}else if(publicData.client+""=="ios"){var o=function(){},s=function(){};window.sapi_bridge.invoke("loginSucceed",{result:t},o,s)}},action_unite_verify:function(t){if(window.sapi_obj&&window.sapi_obj.action_unite_verify)window.sapi_obj.action_unite_verify&&window.sapi_obj.action_unite_verify(t);else if(publicData.client+""=="android")prompt('{action:{name:"action_unite_verify"}}')&&prompt('{action:{name:"action_unite_verify",params:["'+t+'"]}}',"action_unite_verify");else if(publicData.client+""=="ios"){var e=function(){},i=function(){};window.sapi_bridge.invoke("action_unite_verify",{result:t},e,i)}},getNavWhiteList:function(){return[{title:"第三方登录",url:"https: //passport.baidu.com/phoenix/account/startlogin"}]},net:function(){this.network=!0,e._modulePool.canshare_accounts&&e._modulePool.canshare_accounts.getImg(),"login"===location.hash.substring(1)?(window.Pass.login&&window.Pass.login.getRerocdList&&window.Pass.login.getRerocdList(),window.Pass.login&&window.Pass.login.loadMachine&&window.Pass.login.loadMachine()):"sms_login"===location.hash.substring(1)?window.Pass.sms_login&&window.Pass.sms_login.getRerocdList&&window.Pass.sms_login.getRerocdList():"reg"===location.hash.substring(1)&&Pass._modulePool.reg&&Pass._modulePool.reg.loadMachine&&Pass._modulePool.reg.loadMachine(),e.getSeverTimeAsync(),window.Pass.face_login&&window.Pass.face_login.getUserInfo&&window.Pass.face_login.getUserInfo();var t="appsapi";e.load.loadCssFileW("https://wappass.baidu.com/static/"+t+"/css/sapi_theme/style.css")},checkNativeMethod:function(t,e,i){this.deviceClass("sapi_action_check_method_support",{method:t},function(t,n){1===n.errno||1===n?e&&e():i&&i()},function(){},"iframe")},ischeckNativeMethod:function(t,e,i){"1"===publicData.suppcheck?this.checkNativeMethod(t,e,i):i&&i()},logAjax:function(){},logPV:function(){},identificationData:function(i,n,a,o,s){var r,l={};l.tpl=publicData.tpl||"empty",l.scene=n;var c="{tpl:"+l.tpl+",scene:"+l.scene+"}";r="pp-pp-"+(publicData.subpro||"empty")+"-"+c,e.client.checkNativeMethod("sapi_biometrics_identification_with_uid",function(){var i={type:2,subpro:r,hideGuidePage:1,uid:"ios"===publicData.client?encodeURIComponent(a):a},n=function(e){t(".biometry-loadingMask").show(),o&&o(e)},l=function(t,e){if(-204!==t){var i=0;-301===t||-302===t||-306===t?(e="登录失败，请确保本人操作，调整光线环境，或尝试其他方式登录",i=1):-303===t&&(e="刷脸功能获取失败，请重新尝试")}s&&s(t,e,i)};e.client.deviceClassJson("sapi_biometrics_identification_with_uid",i,function(t,e){n(e.callbackkey)},function(t,e){var i=parseInt(e.errno,10);l(i,e.errmsg)})})},identification:function(i,n,a,o,s){function r(e){t(".biometry-loadingMask").show(),o&&o(e)}function l(t,e){if(-204!==t){var i=0;-301===t||-302===t||-306===t?(e="登录失败，请确保本人操作，调整光线环境，或尝试其他方式登录",i=1):-303===t&&(e="刷脸功能获取失败，请重新尝试")}s&&s(t,e,i)}var c,u={};u.tpl=publicData.tpl||"empty",u.scene=n;var d="{tpl:"+u.tpl+",scene:"+u.scene+"}";if(c="pp-pp-"+(publicData.subpro||"empty")+"-"+d,"ios"===publicData.client)e.client.deviceClass("sapi_biometrics_identification_with_authtoken",{type:1,subpro:c,authtoken:encodeURIComponent(a),hideGuidePage:1},function(t,e){r(e.credentialKey)},function(t,e){l(+e.errno,e.errmsg)});else{var p={hideGuidePage:1},f=JSON.parse(prompt('{action: {name: "sapi_biometrics_identification_with_authtoken", params: ["1","'+a+'","0","'+c+'",'+JSON.stringify(p)+"]}}"));0===f.errno?r(f.credentialKey):l(+f.errno,f.errmsg)}}},e.client.upData()}($,window.Pass),!function(t,e){"use strict";function i(t){this.module=t.module}var n=(e.require,{"zh-cn":{goback:"返回"},en:{goback:"Back"}}[window.publicData.lang||"zh-cn"]);i.prototype.getId=function(t){var e=this.module+"-"+t;return e},i.prototype._getHeaderField=function(t){var e=t.nextRole?' data-role="'+t.nextRole+'"':"",i="";return i+=t.overseas?'<header class="pass-header overseas_login_header" id="login-overseas-headerWrapper" data-role="back"><span class="pass-header-back">'+(1==publicData.isVoiceover?n.goback:"")+"</span>":t.usual?'<header class="pass-header usual_login_header" id="'+this.getId("headerWrapper")+'">':'<header class="pass-header" id="'+this.getId("headerWrapper")+'">',i+=(t.goBack?'<span class="pass-header-back" data-role="back">'+(1===+window.publicData.isVoiceover||"yuedu"===window.publicData.tpl||"ppdemo"===window.publicData.tpl?n.goback:"")+"</span>":"")+'<span class="pass-header-title">'+t.title+"</span>"+(t.words?'<span class="pass-header-links"'+e+">"+t.words+"</span>":"")+"</header>"},i.prototype._getToastField=function(){var t='<p class="pass-mod-toastWrapper" id="'+this.getId("toastWrapper")+'"></p>';return t},i.prototype._getLoadingField=function(t){var e='<p class="pass-mod-loadingWrap" id="'+this.module+'-loading"><span class="pass-mod-loadingImg"></span>'+t.html+'</p><div class="pass-mod-Mask" id="'+this.module+'-loadingMask"></div>';return e},i.prototype._getMoreField=function(){var t='<footer class="layer-account layermenu-out"><a href="javascript:void(0);" class="normandy-more-face">刷脸登录</a><a href="javascript:void(0);" class="normandy-more-overseas">海外手机号登录</a><a href="javascript:void(0);" class="normandy-more-reg">帐号注册</a><a href="javascript:void(0);" class="normandy-more-qa">登录遇到问题</a><a href="javascript:void(0);" class="normandy-more-qa-cancle">取消</a></footer>';return t},i.prototype._getErrorField=function(){var t='<p class="error_area" id="'+this.getId("errorWrapper")+'" role="alert"></p>';return t},i.prototype._getRegularFieldNormandy=function(t){var e=t.autoComplete?' autocomplete = "off"':"",i=t.type?t.type:t.pwd?"password":"text",n=t.maxLength?'maxlength="'+t.maxLength+'"':"",a=t.placeholder?' placeholder="'+t.placeholder+'"':"",o=t.value?t.value:"",s=t.code?'<div class="pass-normandy-code-left"><p class="normandy-sub-font">国家/地区</p><span class="normandy-text-label-code">+86</span></div>':"",r=t.code?'<div class="pass-normandy-form-code pass-normandy-form-input-wrapper pass-normandy-item-':'<div class="pass-normandy-form-input-wrapper pass-normandy-item-',l=t.title?'<span class="pass-normandy-title">'+t.title+"</span>":"",c=t.label?'<label class="pass-normandy-label" for="'+this.getId(t.field)+'" id="'+this.module+"-label-"+t.field+'">'+t.labeltext+"</label>":"",u=r+t.field+'">'+s+(t.code?'<div class="pass-normandy-code-right"><p class="pass-normandy-code-p">':"")+l+c+'<input type="'+i+'" id="'+this.module+"-"+t.field+'" name="'+t.field+'" class="'+(t.passcode?"text-input-code":"")+" pass-text-input pass-text-input-"+t.field+'" '+n+e+a+' value="'+o+'" '+(t.readonly?"readonly":"")+"/>"+(t.clearValue===!1?"":'<span class="pass-input-clearValue hide pass-clearbtn-'+t.field+'"></span>')+(t.rightDom?t.rightDom:"")+(t.code?'</p><hr class="pass-normandy-form-item-sep pass-normandy-sep-'+t.field+'"></div></div>':'</div><hr class="pass-normandy-form-item-sep pass-normandy-sep-'+t.field+'">');return u},i.prototype._getRegularField=function(t){var e=t.autoComplete?' autocomplete = "off"':"",i=t.type?t.type:t.pwd?"password":"text",n=t.maxLength?'maxlength="'+t.maxLength+'"':"",a=t.placeholder?' placeholder="'+t.placeholder+'"':"",o=t.value?t.value:"",s=(t.code?'<span class="pass-overseas-wrapper">':"")+'<label class="pass-text-label '+(t.labellong?"pass-text-label-long ":"")+(t.code?"pass-label-"+this.module+"-code pass-label-code pass-text-label-":"pass-text-label-"),r=t.code?'<p class="pass-form-code pass-form-item pass-form-input-wrapper pass-form-item-':'<p class="pass-form-item pass-form-input-wrapper pass-form-item-',l=r+t.field+'">'+(t.label?s+t.field+'" for="'+this.getId(t.field)+'" id="'+this.module+"-label-"+t.field+'">'+(t.labeltext?t.labeltext:"")+"</label>":"")+(t.code?'<span class="pass-overseas-down"></span></span>':"")+'<input type="'+i+'" id="'+this.module+"-"+t.field+'" name="'+t.field+'" class="'+(t.passcode?"text-input-code":"")+" pass-text-input pass-text-input-"+t.field+'" '+n+e+a+' value="'+o+'" '+(t.readonly?"readonly":"")+"/>"+(0==t.clearValue?"":'<span class="pass-input-clearValue hide pass-clearbtn-'+t.field+'"></span>')+(t.rightDom?t.rightDom:"")+"</p>";return l},i.prototype._getRegularFieldNew=function(t){var e=(t.autoComplete?' autocomplete = "off"':"",t.type?t.type:t.pwd?"password":"text",t.maxLength?'maxlength="'+t.maxLength+'"':""),i=t.placeholder?' placeholder="'+t.placeholder+'"':"",n=t.value?t.value:"",a=t.label?'<label class="form-label">'+t.labeltext+"</label>":"",o='<div class="form-input">'+a+'<p class="pass-form-item form-input-value"><input type="text" name="'+t.field+'" class="text-input'+(t.disabled?" text-grey":"")+'"'+e+i+' value="'+n+'" id="'+this.module+"-"+t.field+'"'+(t.disabled?"disabled":"")+'><span class="pass-input-clearValue hide pass-input-clearValue-new"></span></p><hr class="pass-form-item-sep"><p class="error_area" id="'+this.module+"-"+t.field+'Error"></p></div>';return o},i.prototype._getVCodeField=function(t){var e=1==t.show?"":' style="display:none;"',i=t.type?t.type:"text",n='<p class="pass-form-item-v pass-form-item-'+t.field+'"'+e+' id="'+this.getId("verifyCodeWrapper")+'"><span class="pass-form-input-wrapper-forvcode">'+(t.labeltext?'<label class="pass-text-label pass-text-label-verifyCode" for="'+this.getId(t.field)+'">'+(t.labeltext?t.labeltext:"")+"</label>":"")+'<input type="'+i+'" id="'+this.getId(t.field)+'" name="'+t.field+'" class="pass-text-input pass-text-input-'+t.field+'" value="" placeholder="'+t.placeholder+'" autocomplete="off" maxlength="6"/>'+(0==t.clearValue?"":'<span class="pass-input-clearValue pass-clearbtn-'+t.field+'"></span>')+'</span><span class="pass-form-vcodeImg"><img class="pass-verifyCode-img" width="100" height="40" id="'+this.getId("verifyCodeImg")+'" alt="验证码"/></span></p>';
return n},i.prototype._getVCodeSmsField=function(t){var e=t.type?t.type:"text",i='<p class="pass-form-item-v pass-form-item-'+t.field+' pass-form-item-smsVcode pass-form-item-vcode"><span class="pass-form-input-wrapper-forvcode">'+(t.labeltext?'<label class="pass-text-label pass-text-label-verifyCode" for="'+this.getId(t.field)+'">'+(t.labeltext?t.labeltext:"")+"</label>":"")+'<input type="'+e+'" id="'+this.module+"-"+t.field+'" name="'+t.field+'" class="pass-text-input pass-text-input-'+t.field+'" value="" placeholder="'+t.placeholder+'" autocomplete="off" maxlength="6"/>'+(0==t.clearValue?"":'<span class="pass-input-clearValue pass-clearbtn-'+t.field+'"></span>')+'</span></p><p class="verify-button"><input type="button" value="'+t.text+'" class="pass-form-VerifyButton" id="'+this.getId("verifyCodeSend")+'"></p>';return i},i.prototype._getHiddenField=function(t){var e,i=this,n='<p id="'+this.getId("hiddenFields")+'" class="hide">';for(var a in t)t.hasOwnProperty(a)&&(e="string"==typeof t[a]?t[a].replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/\x22/g,"&quot;").replace(/\x27/g,"&#39;"):t[a],n+='<input type="hidden" id="'+i.getId(a)+'" name="'+a+'" value="'+e+'" />');return n+="</p>"},i.prototype._getSubmitField=function(t){var e='<p class="pass-form-item pass-form-item-submit"><input id="'+this.getId("submit")+'" type="submit" value="'+t.value+'" class="pass-button-full pass-button-submit '+(t.actived?"":"pass-button-full-disabled")+'"'+(t.disabled?"disabled=disabled":"")+" /></p>";return e},i.prototype._getFooterField=function(){var t='<footer class="footer" id="'+this.getId("footerWrapper")+'">&copy;'+(new Date).getFullYear()+" Baidu</footer>";return t},e.define("ui/temp",i)}($,window.Pass),!function(t,e){"use strict";function i(e){this.config=t.extend(e,{}),this.button=this.config.handler,this._validations=[],this._errno=0,this._time=this.config.sTime||60,this._init()}e.require,i.prototype._init=function(){var t=this;this.addValidation(this.config.validations),this.button.on("click",function(){t.clickCallBack(),t.config.tapcallback&&t.config.tapcallback()}),"disabled"==this.config.initStatus&&(this._timing(),this.button.get(0).disabled=!0)},i.prototype.clickCallBack=function(){this.button.get(0).disabled||(this._validate(),0===this.getErrno()&&(this._send(),e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-button_smsSend",ev:[e._moduleCurrent||"","click"]})))},i.prototype._timing=function(){function e(){return 0==--o?(a.val(n.config.sendText),a.removeClass("pass-button-disabled"),n.config.is_voice_sms?t("#sms_verify-verifyCodeSend").removeAttr("disabled").removeClass("pass-button-disabled"):t("#sms_verify-voiceVerify")&&t("#sms_verify-voiceVerify").removeAttr("disabled").removeClass("voice_sms_disabled"),void(a.get(0).disabled=!1)):(a.val(n.config.reSend+"("+o+")"),void(i=setTimeout(function(){e()},1e3)))}var i,n=this,a=n.button,o=n._time;a.addClass("pass-button-disabled"),e()},i.prototype._send=function(){var i,n,a=this;a.config.beforeSend&&a.config.beforeSend(),i="[object function]"==Object.prototype.toString.call(a.config.url).toLowerCase()?a.config.url():a.config.url,"[object function]"==Object.prototype.toString.call(a.config.data).toLowerCase()?(n=a.config.data(),n.tpl=publicData.tpl):(n=a.config.data,n.tpl=publicData.tpl),a.button.get(0).disabled=!0,a.button.get(0).value=a.config.loadingText,n.clientfrom=publicData.clientfrom||"native",a.config.beforeSend&&a.config.beforeSend();var o=new Date;t.ajax({url:i,data:n,type:a.config.type||"POST",dataType:a.config.dataType||"json",success:function(t){(new Date).getTime()-o,e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-button_smsSend_request",ev:[e._moduleCurrent||"","request",t.errInfo.no,t.errInfo.msg]}),0==t.errInfo.no?(a._timing(),a.config.success(t)):(a.button.get(0).value=a.config.sendText,a.button.get(0).disabled=!1,a.config.error(t)),a.sendTimer&&clearTimeout(a.sendTimer)}}),a.config.timmerText&&(a.sendTimer=setTimeout(function(){a.button.get(0).disabled=!1,a.config.is_voice_sms?t("#sms_verify-verifyCodeSend").removeAttr("disabled").removeClass("pass-button-disabled"):t("#sms_verify-voiceVerify")&&t("#sms_verify-voiceVerify").removeAttr("disabled").removeClass("voice_sms_disabled"),a.button.get(0).value=a.config.sendText,a.config.error({errInfo:{msg:a.config.timmerText}})},a.config.timmer||15e3))},i.prototype.addValidation=function(t){"[object Function]"==Object.prototype.toString.call(t)&&this._validations.push(t)},i.prototype._validate=function(){for(var t=this._validations.length;t--;){var e=this._validations[t].call(this,this._value);if(this.setErrno(e.errNo),e.errNo)break}},i.prototype.getErrno=function(){return this._errno},i.prototype.setErrno=function(t){this._errno=t},e.define("ui/button",i)}($,window.Pass),!function(t,e){"use strict";var i=(e.require,{"zh-cn":{required:"请输入%s",phone:"请输入有效手机号码",email:"邮箱格式不正确",password:"密码格式不正确",idcard:"身份证格式不正确",passAllNum:"请输入数字、字母和符号组合",passHaveSpace:"密码6-14位不能含有空格"},en:{required:"Enter %s",phone:"Incorrect phone format",email:"Incorrect email format",password:"Incorrect password format",idcard:"Incorrect idcard format",passAllNum:"Incorrect password format",passHaveSpace:"Incorrect password format"}}[window.publicData.lang||"zh-cn"]);e.animate=function(i){if(i+""==""){var n=window.publicData.backType;return void(n?window.history.go(-1):"ios"===window.publicData.client||"android"===window.publicData.client?e.client.deviceClass("finish"):document.location=publicData.u)}e._moduleCurrent+""==""?t("#"+i).css("display","block"):e._moduleCurrent+""!=i+""?(t("#"+e._moduleCurrent).css("display","none").css("z-index","-1"),t("#"+i).css("display","block").css("z-index","0")):t("#"+i).css("display","block").css("z-index","0"),e._modulePool&&e._modulePool[i]&&e._modulePool[i].initModule&&e._modulePool[i].initModule()},e.infoAnimate=function(e,i){var n=t("#"+e+"-errorWrapper");n.html(i)},e.removeInfoAnimate=function(e){t("#"+e+"-errorWrapper").html(""),t(".pass-form-item-error").removeClass("pass-form-item-error")},"ios"===window.publicData.client&&t(window).on("resize",function(){var e=document.documentElement;setTimeout(function(){t("html").width(e.clientWidth)},0),setTimeout(function(){t("html").width(e.clientWidth)},400)}),t(window).on("orientationchange",function(){var e=document.documentElement;setTimeout(function(){t("html").width(e.clientWidth)},0),setTimeout(function(){t("html").width(e.clientWidth)},400)}),e.view={tap:function(e,i){var n=function(e){e.stopPropagation(),e.preventDefault(),t(document).off("click",n,!0)};e.on("tap",i).on("touchstart",function(){t(document).on("click",n,!0)})},click:function(e,i){var n=function(e){e.stopPropagation(),e.preventDefault(),t(document).off("click",n,!0)};e.on("click",i).on("touchstart",function(){t(document).on("click",n,!0)})},cutPage:function(i,n){e.view.click(i,function(){var i=t(this).attr("data-role");e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-"+i+"_cutPage",ev:[e.module||"","click"]}),n&&n.callback&&n.callback();var a=window.Pass;if("back"===i)a.switchView(i);else{if("fastReg"===i||"reg"===i&&"1"===window.publicData.fastRegLink)return void e.client.fastReg();a._getScript(i,function(t){t.render("pageWrapper",n||{})})}})},clearInputValueBtn:function(i,n,a){i.on("focus",function(){""!==t(this).val()&&n.is(":hidden")&&setTimeout(function(){n.css("display","block")},25)}),i.on("blur",function(){n.is(":hidden")||n.css("display","none")}),i.on("keyup",function(){e.removeInfoAnimate(e._moduleCurrent),""!==t(this).val()||n.is(":hidden")?""!==t(this).val()&&n.is(":hidden")&&n.css("display","block"):n.css("display","none")}),n.on("tap",function(){e.removeInfoAnimate(e._moduleCurrent),i.val(""),t(this).hide(),a&&t(a).addClass("pass-button-full-disabled"),e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-input_clearValue_"+i.attr("name"),ev:[e._moduleCurrent||"","click"]})})},_setFocusStyle:function(e,i){var n=t(e.getElement(i)).parents(".pass-form-item");n.length>0&&!n.hasClass("pass-form-item-focus")&&n.addClass("pass-form-item-focus")},_setBlurStyle:function(e,i){var n=t(e.getElement(i)).parents(".pass-form-item");n.length>0&&n.hasClass("pass-form-item-focus")&&n.removeClass("pass-form-item-focus")},_setErrorStyle:function(e,i){var n=t(e.getElement(i)).parents(".pass-form-item");n.length>0&&!n.hasClass("pass-form-item-error")&&n.addClass("pass-form-item-error")},_clearErrorStyle:function(){setTimeout(function(){t(".pass-form-item-error").each(function(){t(this).removeClass("pass-form-item-error")})},2e3)},_mobilenumFormat:function(e,i,n){t(e.getElement(i)).on("keyup",function(){var a=t(e.getElement(i)).val(),o=/(\d{3}){1}(\d){1,4}?(?=\d*$)/g;a=a&&a.replace(/\s/g,"").replace(o,"$1 $2"),t(e.getElement(i)).val(a),n&&n()})},_substrMobile:function(t){var e="",i=/(\d{3}){1}(\d){1,4}?(?=\d*$)/g;return t?(e=t.replace(/[^0-9*]/g,"").replace(i,"$1 $2"),e=t.replace(/[^0-9*]/g,"").length>11?t.replace(/[^0-9*]/g,"").substring(0,11).replace(i,"$1 $2"):t.replace(/[^0-9*]/g,"").replace(i,"$1 $2")):void 0},_strTrim:function(t){return"[object string]"===Object.prototype.toString.call(t).toLowerCase()?t.replace(/\s/g,""):void 0},_SBCtoDBC:function(t){var e="";if(t){for(var i=t.length,n=0;i>n;n++){var a=t.charCodeAt(n);a=a>=65281&&65374>=a?a-65248:a,a=12288===a?32:a,e+=String.fromCharCode(a)}return e}},loadingHide:function(t){t.css("opacity","0"),setTimeout(function(){t.css("display","none")},300)},_setMaxLength:function(t,i,n){t.on("keydown",function(){e.view._strTrim(this.value).length===i?this.setAttribute("maxlength",i+n):this.removeAttribute("maxlength")})},setSubmitStyle:function(e,i){function n(){e.keyupTimer=!0;for(var i in e.validateRules){var n=e.getElement(i);if(n&&0!==+n.offsetHeight&&n.value+""=="")return-1===e.getElement("submit").className.indexOf("pass-button-full-disabled")&&t(e.getElement("submit")).addClass("pass-button-full-disabled"),!1}t(e.getElement("submit")).removeClass("pass-button-full-disabled")}clearTimeout(e.keyupTimer),0===i?n():e.keyupTimer=setTimeout(function(){n()},200)},fullButton:function(e){e.on("touchstart",function(){t(this).hasClass("pass-button-full-disabled")||t(this).addClass("pass-button-full-active")}),e.on("touchend",function(){t(this).hasClass("pass-button-full-active")&&t(this).removeClass("pass-button-full-active")})},touch:function(e,i){e.on("touchstart",function(){t(this).disabled||t(this).addClass(i)}),e.on("touchend",function(){t(this).hasClass(i)>-1&&t(this).removeClass(i)})},labelFocus:function(e,i){t("#"+e.module+"-label-"+i).addClass("pass-label-"+i+"-focus")},labelBlur:function(e,i){t("#"+e.module+"-label-"+i).removeClass("pass-label-"+i+"-focus")},inputBlur:function(){t(document).on("tap",function(e){"input"!==e.target.tagName.toLowerCase()&&"label"!==e.target.tagName.toLowerCase()&&t("input").blur()})},inputFocusLine:function(e,i){var n=t(e.getElement(i)).parents(".pass-form-item").next(".pass-form-item-sep");t("#"+e.module+"-"+i+"Error").html(""),n.removeClass("pass-form-item-sep-error").removeClass("pass-form-item-sep-blur"),t(".pass-form-item-sep-blur").length>0?setTimeout(function(){n.addClass("pass-form-item-sep-focus")},300):n.addClass("pass-form-item-sep-focus")},inputBlurLine:function(e,i){var n=t(e.getElement(i)),a=n.parents(".pass-form-item").next(".pass-form-item-sep");a.removeClass("pass-form-item-sep-focus").addClass("pass-form-item-sep-blur"),setTimeout(function(){a.removeClass("pass-form-item-sep-blur")},300)},inputSuccessLine:function(e,i){var e=this,n=t(e.getElement(i));n.next(".input-clearValue").addClass("input-clearValue-ok");var a=t("#"+e.module+"-"+i+"Error");t(a).html(""),t(e.getElement(i)).parents(".pass-form-item").next(".pass-form-item-sep").removeClass("pass-form-item-sep-error")},inputScroll:function(e,i){var n=["automap"],a=t.fn.getQueryString(a);n.indexOf(a)&&t(e).each(function(e,n){n.focus(function(){var e=t(window).height(),n=e+e/2,a=t(this).offset().top;i.height(n),window.scrollTo(0,a-76)})})},setVcodeVal:function(e,i,n,a){var i=i+"";if(i&&6===i.length){var o=t(e.getElement("keyboardInputWrapper")).find("span.keyboardInputEle");t(o).forEach(function(e,n){t(e).html(i[n])}),t(o).addClass("keyboardCursorBlueLine").removeClass("keyboardCursor2"),t(e.getElement("keyboardInputHidden")).val(i),n&&n()}else a&&a()},bottomCal:function(e){if(t(e.getElement("registerWrapper")).html()){var i=t(e.getElement("registerWrapper")).offset().top;t(e.getElement("registerWrapper")).height(windowHeight-i).css("visibility","visible")}}},e.validator={_validator:{_validateInfo:{},confStorage:{},builtInMsg:i,builtInRules:{required:/\S+/,phone:/^1[3456789]\d{9}$/,email:/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,password:/^\S{6,14}$/,idcard:/(^\d{15}$)|(^\d{17}(\d|X|x)$)/,passAllNum:/^[0-9]*$/,passHaveSpace:/^([0-9a-zA-Z\_`!~@#$%^*+=,.?;'":)(}{/\\\|&lt;&gt;&amp;\[\-]|\]]){6,14}$/},init:function(t,e){this.confStorage[t.module]=e},validate:function(t,e,i){var n=this,a=t.getElement(e),o={field:e};if(!a||0===+a.offsetHeight)return!1;var s,r=n.confStorage[t.module][e],l=r.rules;s=a.value;for(var c=0,u=l.length;u>c;c++){var d,p=l[c],f=n.builtInRules[p];if(f instanceof Function?d=f.call(t,a):(d=new RegExp(f).test(s),p+""=="passAllNum"&&(d=!d)),!d)return o.error=!0,n._validateInfo[e]=0,o.msg=n.builtInMsg[p].replace(/\%s/,r.desc),o.field=a,o.fieldname=e,t._validateError(o),void i.error(o)}r.asyncRule?r.asyncRule.call(t,{success:function(){o.error=!1,n._validateInfo[e]=1,t._validateSuccess(o),i.success(o)},error:function(a){o.error=!0,n._validateInfo[e]=0,o.msg=a.msg,t._validateError(o),i.error(o)}}):(o.error=!1,n._validateInfo[e]=1,t._validateSuccess(o),i.success(o))},validateAll:function(t,e,i){function n(){r=!0,s?e&&e.error(l):e&&e.success(l)}var a=this.confStorage[t.module],o=0,s=!1,r=!1,l=[],c=this._getActiveValidate(t,!0);for(var u in a){if(r)break;this.validate(t,u,{success:function(t){o++,l.push(t),o===c&&n()},error:function(t){return s=!0,i?void n():(o++,l.push(t),void(o===c&&n()))}})}},_getActiveValidate:function(t,e){var i=this.confStorage[t.module],n=[];for(var a in i){var o=t.getElement(a);o&&0!==+o.offsetHeight&&n.push(o)}return e?n.length:n},addRule:function(e,i){var n={};n[e]=i,t.extend(this.builtInRules,n)},addMsg:function(e,i){var n={};n[e]=i,t.extend(this.builtInMsg,n)}},validate:function(t,e){var i=this;this._validator.validate(i,t,{success:function(t){e&&e.success&&e.success(t)},error:function(t){e&&e.error&&e.error(t)}})},validateAll:function(t,e,i){var n=this;return e="boolean"==typeof t?t:e?e:!1,i===!1?void(t&&t.success&&t.success()):void n._validator.validateAll(n,{success:function(e){t&&t.success&&t.success(e)},error:function(e){t&&t.error&&t.error(e)}},e)},getValidateStatus:function(t){return this._validateInfo.hasOwnProperty(t)?this._validateInfo[t]:-1},setValidateSuccess:function(t){var e=this;e._validateInfo[t]=1,e._validateSuccess({field:t})},setValidateError:function(t,e){var i=this;i._validateInfo[t]=0,i._validateError({field:t,msg:e})}},e.load={insertScript:function(t,i,n){function a(){var n=document,a=n.createElement("script");a.type="text/javascript",a.charset="utf-8",a.readyState?a.onreadystatechange=function(){("loaded"===a.readyState||"complete"===a.readyState)&&(a.onreadystatechange=null,e.jsFileList[t]=!0,i&&i())}:a.onload=function(){e.jsFileList[t]=!0,i&&i()},a.src=t,n.getElementsByTagName("head")[0].appendChild(a)}e.jsFileList=e.jsFileList||{},e.jsFileList[t]?i&&i():n?setTimeout(function(){a()},100):a()},loadCssFileW:function(t,e){if(window._loadedFilesW=window._loadedFilesW||{},window._loadedFilesW[t])e&&e();else{window._loadedFilesW[t]=!0;var i=document.createElement("link");i.rel="stylesheet",i.type="text/css",i.href=t,document.getElementsByTagName("head")[0].appendChild(i),i.readyState?i.onreadystatechange=function(){("loaded"===i.readyState||"complete"===i.readyState)&&(i.onreadystatechange=null,e&&e())}:i.onload=function(){e&&e()}}}}}($,window.Pass),!function(t,e){"use strict";function i(t){this.conf=t,this.width=t.width,this.height=t.height,this.mask=t.mask,this.titleText=t.titleText,this.content=t.content,this.onRender=t.onRender||function(){},this.num=Math.floor(1e3*Math.random()),this.dialogclass=t.dialogclass||"",this.init()}e.require,i.prototype.init=function(){this.mask&&this.createMask(),this.createBody()},i.prototype.createMask=function(){Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),this.maskDom=t('<div class="mod-dialog'+(this.dialogclass?" mod-dialog-"+this.dialogclass:"")+'" id="pass-'+this.num+'"></div>'),t("body").append(this.maskDom)},i.prototype.show=function(){this.mask&&(this.maskDom.get(0).style.display="block"),this.domBody.height(),this.domBody.show()},i.prototype.hide=function(){var t=this;t.domBody.height(),t.mask&&(t.maskDom.get(0).style.display="none"),t.domBody.hide()},i.prototype.remove=function(){this.mask&&this.maskDom.remove(),this.domBody.remove()},i.prototype.createBody=function(){var e,i;Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),this.domBody=t('<div class="mod-dialog-body" id="pass-content'+this.num+'"><div class="mod-dialog-content'+(this.dialogclass?" mod-dialog-content-"+this.dialogclass:"")+'"><div class="mod-dialog-main"></div></div></div>'),t("body").append(this.domBody),this.domBody.css({width:this.width,marginLeft:-parseInt(this.width)/2+"%"}),e=this.domBody.children(".mod-dialog-content"),this.content&&(e.children(".mod-dialog-main").append(this.content),this.show(),i=this.domBody.height(),this.domBody.css({top:Math.max((t(window).height()-i)/2,0)+"px"})),this.bind(),this.onRender(this)},i.prototype.setContent=function(t){this.domBody.append(t),this.show()},i.prototype.bind=function(){var e=this;t("#close-"+e.num).on("click",function(t){e.hide(),t.preventDefault()})},e.define("ui/dialog",i)}($,window.Pass),!function(t,e){"use strict";function i(t,i){e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-vcode-"+t.from_module+i+(void 0===t.conf.history?"":t.conf.history?"_history":"_noHistory")})}function n(t){this.conf=t,this.mask=t.mask,this.from_module=t.from_module||"",this.slide=t.slide||!1,this.onRender=t.onRender||function(){},this.num=Math.floor(1e3*Math.random()),this.vcodestr=t.vcodestr,this.vcodenum="",this.lang={"zh-cn":{title:"验证码",securityVerify:"安全验证",introducer:"滑至最右 完成验证",bottomTitle:"为了你的帐号安全，本次操作需要进行安全验证",uniqueVerifyCode:"验证码",uniqueVerifyCodePlaceholder:"请输入验证码",uniqueVerifyCodeTip:"输入图中验证码",clickReresh:"看不清? 点击刷新",networkNoText:"网络连接失败，请稍后再试。"},en:{title:"Captcha",securityVerify:"Safety Verification",introducer:"Slide to the right",bottomTitle:"For your account security",uniqueVerifyCode:"Captcha",uniqueVerifyCodePlaceholder:"Captcha",uniqueVerifyCodeTip:"Enter Image Captcha",clickReresh:"click refresh",networkNoText:"Network Error"}}[window.publicData.lang||"zh-cn"],this.current=0,this.init()}n.prototype.init=function(){this.mask&&this.createMask(),this.createBody()},n.prototype.createMask=function(){this.maskDom=t('<div class="mod-vcode" id="pass-'+this.num+'"></div>'),t("body").append(this.maskDom)},n.prototype.show=function(){var e=this;if(this.mask&&(this.maskDom.get(0).style.display="block"),this.domBody.fadeIn(),t("input.pass-text-input").attr("disabled","true"),!this.slide){var i="https://wappass.baidu.com/cgi-bin/genimage?"+e.conf.vcodestr+"&tt="+(new Date).getTime();t("#vcode-"+e.num).attr("src",i)}},n.prototype.hide=function(){var t=this;t.mask&&(t.maskDom.get(0).style.display="none"),t.domBody.fadeOut(150),this.remove()},n.prototype.remove=function(){this.mask&&this.maskDom.remove(),this.domBody.remove(),t("input.pass-text-input").removeAttr("disabled")},n.prototype.InputLayer=function(){var t='<div class="vcodeInputWrapper" id="vcode-wrapper-'+this.num+'"><input class="vcodeInput" id="vcode-input-'+this.num+'"type="text" maxlength="6" autocapitalize="off"/><span class="vcodeInput-clearValue hide"></span><hr class="vcodeInput-hr"></div><p class="pass-form-item pass-form-item-submit"><input id="vcode-submit" type="submit" value="确定"class="pass-button-full pass-button-submit pass-button-full-disabled"></p>';return t},n.prototype.createBody=function(){var i;this.domBody=t('<div class="mod-vcode-body" id="pass-content'+this.num+'"><div class="mod-vcode-content clearfix"></div></div>'),t("body").append(this.domBody),i=this.domBody.children(".mod-vcode-content"),this.slide?this.content='<p class="mod-page-tipInfo-gray">'+this.lang.securityVerify+'</p><div class="vcode-slide-faceboder"><img src="'+apiDomain+'/static/appsapi/img/faceboder2x.png"><div class="vcode-slide-expression"></div></div><div class="vcode-slide-control"><div class="vcode-slide-bottom"><p>'+this.lang.introducer+'</p></div><div class="vcode-slide-cover"><p></p></div><div class="vcode-slide-button"><p class=""></p></div><div class="vcode-slide-loading"></div></div><p class="vcode-slide-footer">'+this.lang.bottomTitle+"</p>":(this.content='<p class="mod-page-tipInfo-gray">'+this.lang.uniqueVerifyCodeTip+'</p><p class="mod-page-verifyImg"><img id="vcode-'+this.num+'" alt="验证码"/></p><p class="small-tip" id="refresh-'+this.num+'">'+this.lang.clickReresh+'</p><p class="vcode_error_redtip" id="vcode-error-'+this.num+'"></p>',this.content+=this.InputLayer()),this.content+='<div id="close-'+this.num+'" class="vcode-close"></div>',i.append(this.content),this.show(),this.slide?this.setSildeEvent():this.setEvent(),this.onRender(this),!this.slide&&e.logAll&&e.logAll.logBfb?e.logAll.logBfb({en:"appsapi-vcode-"+this.from_module,eg:"in",ev:[e.module||"","show"]}):this.slide&&e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-vcode-slide-"+this.from_module,eg:"in",ev:[e.module||"","show"]})},n.prototype.setContent=function(t){this.domBody.append(t),this.show()},n.prototype.setVcode=function(e){var i=this;t("#vcode-"+i.num).attr("src",e),this.vcodestr=e},n.prototype.setEvent=function(){var n=this,a=t(".vcodeInput"),o=t(".vcodeInput-clearValue"),s=t("#vcode-submit"),r=t(".vcodeInput-hr");t("#close-"+n.num).on("touchend",function(t){t.preventDefault(),n.conf.closeFn&&n.conf.closeFn(),n.hide(),i(n,"_vcode_close")}),t("#vcode-"+n.num).on("touchend",function(i){i.preventDefault(),e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-vcode_verifyChange-"+n.from_module,ev:[e.module||"","click"]});var a="https://wappass.baidu.com/cgi-bin/genimage?"+n.conf.vcodestr+"&tt="+(new Date).getTime();t(this).attr("src",a)}),t("#refresh-"+n.num).on("touchend",function(i){i.preventDefault(),e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-vcode_verifyChange-"+n.from_module,ev:[e.module||"","click"]});var a="https://wappass.baidu.com/cgi-bin/genimage?"+n.conf.vcodestr+"&tt="+(new Date).getTime();t("#vcode-"+n.num).attr("src",a)}),e.view.clearInputValueBtn(a,o,s),a.on("focus",function(){i(n,"_verify_start")}),a.on("keyup",function(){""===t(this).val()?s.addClass("pass-button-full-disabled"):""!==t(this).val()&&(s.removeClass("pass-button-full-disabled"),r.removeClass("vcodeInput-hr-error"),t("#vcode-error-"+n.num).html(""))}),s.on("touchend",function(o){o.preventDefault();var l=e.view._strTrim(a.val());if(""===l)return t("#vcode-error-"+n.num).html("请输入验证码"),r.addClass("vcodeInput-hr-error"),!1;i(n,"_submit");var c={verifycode:l,codestring:n.vcodestr};t.ajax({url:apiDomain+"/wp/api/security/checkvcode?tt="+(new Date).getTime(),data:c,success:function(a){e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-vcode_request-"+n.from_module,ev:[e.module||"","request",a.errInfo.no,a.errInfo.msg]});var o=t("#vcode-input-"+n.num);if("0"===a.errInfo.no)n.hide(),o.blur(),n.conf.verifySuccessFn&&n.conf.verifySuccessFn(l),o.val(""),i(n,"_request_success");else{t("#vcode-error-"+n.num).html(a.errInfo.msg),o.val(""),t(".vcodeInput-clearValue").css("display","none");var s="https://wappass.baidu.com/cgi-bin/genimage?"+n.conf.vcodestr+"&tt="+(new Date).getTime();t("#vcode-"+n.num).attr("src",s)}},error:function(){t("#vcode-error-"+n.num).html(n.lang.networkNoText),t("#vcode-input-"+n.num).val(""),s.addClass("pass-button-full-disabled"),r.addClass("vcodeInput-hr-error")}})})},n.prototype.setSildeEvent=function(){var i=this;t("#close-"+i.num).on("touchend",function(t){t.preventDefault(),i.conf.closeFn&&i.conf.closeFn(),i.hide()});var n=t("#pass-content"+this.num+" .vcode-slide-faceboder"),a=t("#pass-content"+this.num+" .vcode-slide-expression"),o=t("#pass-content"+this.num+" .vcode-slide-button"),s=o.width(),r=t("#pass-content"+this.num+" .vcode-slide-bottom"),l=t("#pass-content"+this.num+" .vcode-slide-cover"),c=t("#pass-content"+this.num+" .vcode-slide-loading"),u=r.find("p"),d=l.find("p"),p=o.find("p"),f=r.width()-s,h=function(){n.animate({scale:1.05,"transform-origin":"center bottom"},250,"ease-out",function(){setTimeout(function(){n.animate({scale:1},250,"ease-in")},0)}),d.animate({top:"50%",opacity:"1"},250).html("验证成功"),p.animate({opacity:"0"},250,"ease-out")},m=function(){l.addClass("vcode-transition").css({width:s}),o.addClass("vcode-transition").css({transform:"translateX(0)"}),a.addClass("vcode-transition").css({transform:"translateX(0)"}),u.addClass("vcode-transition").css({transform:"translateX(0)"}),setTimeout(function(){o.removeClass("vcode-slide-button-focus vcode-slide-button-error vcode-transition"),l.removeClass("vcode-slide-cover-error vcode-transition"),n.removeClass("vcode-slidefaceboder-horizontal"),a.removeClass("vcode-transition"),u.removeClass("vcode-transition")},300)};o.on("touchstart",function(t){if(i.finish)return!1;var n=t?t:window.event;n.preventDefault(),o.addClass("vcode-slide-button-focus"),this.type=!0,this.currentX=n.touches[0].clientX||n.changedTouches[0].clientX,i.startTime=(new Date).getTime()/1e3,e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-vcode_slide_start-"+i.from_module})}),o.on("touchmove",function(t){if(i.finish)return!1;var e=t?t:window.event;e.preventDefault();var n=e.changedTouches[0].clientX-this.currentX;o.addClass("vcode-slide-button-focus"),n>=f-5?(n=f,i.finish=!0):0>=n&&(n=0,o.removeClass("vcode-slide-button-focus"));var r=parseFloat(n/f).toFixed(2);o.css({transform:"translateX("+n+"px)"}),l.css({width:n+s}),a.css({transform:"translateX(-"+89.5*r+"%)"}),u.css({transform:"translateX("+10*r+"%)"})}),o.on("touchend",function(t){var n=t?t:window.event;n.preventDefault();var a=n.changedTouches[0].clientX-this.currentX;0>=a?o.removeClass("vcode-slide-button-focus vcode-slide-button-error"):i.finish||m(),i.finish===!0&&(i.endTime=(new Date).getTime()/1e3,c.css("display","block"),Pass&&Pass.dataAcquisition&&Pass.dataAcquisition.postData&&(Pass.dataAcquisition.setData("ac_c",1),setTimeout(function(){Pass.dataAcquisition.postData(function(){i.hide(),i.conf.verifySuccessFn&&i.conf.verifySuccessFn()})},1e3)),c.css("display","none"),h(),e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-vcode_slide_success-"+i.from_module,ev:[e.module||"","touchmove"]}),e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-vcode_slideDuration-"+i.from_module,ev:[e.module||"","touchmove"],autoStatisticObj:{slideDuration:parseFloat(i.endTime-i.startTime).toFixed(2)},urlObj:{slideDuration:parseFloat(i.endTime-i.startTime).toFixed(2)}}))})},e.define("ui/vcode",n)}($,window.Pass),!function(t,e){"use strict";function i(e){var i=this;return i.conf=t.extend(e,{}),i.me=e.me,i.data=e.data.historyInfo,"{}"===JSON.stringify(i.data)||"[]"===JSON.stringify(i.data)?!1:void i.init()}e.require,i.prototype.init=function(){var t=this;t.conf.initHandler&&t.conf.initHandler(),t.createDom(),t.setEvent()},i.prototype.createDom=function(){var e=this,i=t('<div class="normandy-history-con">'),n="";e.data.length>3&&(e.data.length=3);for(var a=0;a<e.data.length;a++)n+='<li class="normandy-head'+a+'" data-username="'+e.data[a].input+'"><div class="normandy-img"><img src="'+e.data[a].portrait+"?tt="+(new Date).getTime()+'"><div class="normandy-history-active"></div><div class="normandy-history-del"></div></div><span>'+e.data[a].input+"</span></li>";1===e.data.length&&(n=n.replace("normandy-head0","normandy-head0 historycenter")),i.append(n),t("#"+e.me.module+" .normandy-mod-content").prepend(i),e.conf.domHandler&&e.conf.domHandler()},i.prototype.setEvent=function(){var i=this;i.data.length>1&&t("#"+i.me.module+" .normandy-history-con").on("touchend","li",function(e){var n=t(this);if("normandy-history-del"===e.target.className||i.langType||n.hasClass("normandy-head0"))return i.langType=!1,!1;e.preventDefault();var a=t("#"+i.me.module+" .normandy-head0"),o=n.attr("class");i.conf.setHandler&&i.conf.setHandler(n.attr("data-username")),a.removeClass("normandy-head0 zindex1").addClass(o),n.removeClass(o).addClass("normandy-head0 zindex1")}),t("#"+i.me.module+" .normandy-history-con li").longPress(function(){i.langType=!0,t("#"+i.me.module+" .normandy-history-del").show(),i.conf.langHandler&&i.conf.langHandler()}),t("#"+i.me.module+" .normandy-history-con").on("touchend",".normandy-history-del",function(){e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-"+i.me.module+"_delete_history"});var n=t(this).parents("li"),a=n.attr("data-username"),o=t("#"+i.me.module+" .normandy-img").length,s=parseInt(n.attr("class").substr(13),10);1===o&&(i.destory(),i.conf.removeHandler&&i.conf.removeHandler()),n.remove(),i.me.history=!1;for(var r=s+1;o>r;r++)1===r&&i.conf.setHandler&&i.conf.setHandler(t(".normandy-head"+r).attr("data-username")),t("#"+i.me.module+" .normandy-head"+r).removeClass("normandy-head"+r).addClass("normandy-head"+(r-1));t.getJSON(apiDomain+"/wp/api/login/history?item="+a+"&token="+publicData.token+"&tpl="+publicData.tpl+"&clientfrom="+publicData.clientfrom+"&v="+(new Date).getTime(),{},function(){},"json")}),t("#"+i.me.module).on("tap",function(e){if("normandy-history-del"!==e.target.className&&!t("#"+i.me.module+" .normandy-history-del").is(":hidden")){var n=t("#"+i.me.module+" .normandy-img").length;1===n&&t("#"+i.me.module+" .normandy-head0").addClass("historycenter"),t("#"+i.me.module+" .normandy-history-del").hide()}})},i.prototype.destory=function(){var e=this;t("#"+e.me.module+" .normandy-history-con").remove()},e.define("ui/history",i)}($,window.Pass);var biRadixBase=2,biRadixBits=16,bitsPerDigit=biRadixBits,biRadix=65536,biHalfRadix=biRadix>>>1,biRadixSquared=biRadix*biRadix,maxDigitVal=biRadix-1,maxInteger=9999999999999998,maxDigits,ZERO_ARRAY,bigZero,bigOne;setMaxDigits(20);var dpl10=15,lr10=biFromNumber(1e15),hexatrigesimalToChar=new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"),hexToChar=new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"),highBitMasks=new Array(0,32768,49152,57344,61440,63488,64512,65024,65280,65408,65472,65504,65520,65528,65532,65534,65535),lowBitMasks=new Array(0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535);!function(t,e){e.getSeverTimeAsync=function(){t.ajax({url:apiDomain+"/wp/api/security/antireplaytoken?tpl="+publicData.tpl+"&v="+(new Date).getTime(),type:"GET",dataType:"json",success:function(t){e.serverTime=t.time}})},e.getSeverTime=function(){t.ajax({url:apiDomain+"/wp/api/security/antireplaytoken?tpl="+publicData.tpl+"&v="+(new Date).getTime(),type:"GET",dataType:"json",async:!1,success:function(t){e.serverTime=t.time},error:function(){}})},"android"!==publicData.client&&e.getSeverTimeAsync()}($,window.Pass),!function($,ns){var lang={"zh-cn":{sina:"新浪微博登录",tsina_sso:"新浪微博登录",tsina:"新浪微博登录",qq:"QQ",qzone:"QQ",qq_sso:"QQ",tqq:"腾讯微博",tweixin_sso:"微信",qrcode:"二维码",device:"设备号",nuomi:"原糯米",voice:"百度语音",huawei:"华为帐号",feifan:"飞凡帐号",chuanke:"原传课帐号",ok:"确定",otherlogin:"第三方帐号登录"},en:{sina:"Sina Weibo",tsina_sso:"Sina Weibo",tsina:"Sina Weibo",qq:"QQ",qzone:"QQ",qq_sso:"QQ",tqq:"Tencent Weibo",tweixin_sso:"Weixin",qrcode:"QRcode",device:"Device Number",nuomi:"Nuomi",voice:"BaiduVoice",huawei:"Huawei",feifan:"Feifan",chuanke:"Chuanke",ok:"OK",otherlogin:"Other Account"}}[window.publicData.lang||"zh-cn"],qqTip;ns.fastLogin={config:{tsina_sso:{name:lang.sina,fn:"android"==publicData.client||"ios"==publicData.client?function(){ns.client.deviceClass("action_social_sina_sso")
}:!1,href:"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type=2&u="+publicData.u+"&act="+publicData.act+"&display=wap"},tsina:{name:lang.sina,fn:"android"==publicData.client||"ios"==publicData.client?function(){ns.client.deviceClass("action_social_sina_weibo_webview")}:!1,href:"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type=2&u="+publicData.u+"&act="+publicData.act+"&display=wap"},tqq:{name:lang.tqq,fn:"android"==publicData.client||"ios"==publicData.client?function(){ns.client.deviceClass("action_social_tx_weibo_webview")}:!1,href:"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type=4&u="+publicData.u+"&act="+publicData.act+"&display=wap"},qzone:{name:lang.qq,fn:function(){ns.fastLogin.tipDownloadqq()}},qq_sso:{name:lang.qq_sso,fn:"android"===publicData.client||"ios"===publicData.client?function(){ns.client.deviceClass("action_social_qq_sso")}:!1,href:"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type=15&u="+publicData.u+"&act="+publicData.act+"&display=wap"},tweixin_sso:{name:lang.tweixin_sso,fn:"android"==publicData.client||"ios"==publicData.client?function(){ns.client.deviceClass("action_social_weixin_sso")}:!1,href:"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type=42&u="+publicData.u+"&act="+publicData.act+"&display=wap"},qr_app_login:{name:lang.qrcode,fn:"android"==publicData.client||"ios"==publicData.client?function(){ns.client.deviceClass("loginWithQRCode")}:!1,href:""},device_login:{name:lang.device,fn:"android"==publicData.client||"ios"==publicData.client?function(){ns.client.deviceClass("loginWithDeviceId")}:!1,href:""},nuomi_login:{name:lang.nuomi,fn:"android"==publicData.client||"ios"==publicData.client?function(){ns.client.deviceClass("action_nuomi_login")}:!1,href:""},voice_login:{name:lang.voice,fn:"android"==publicData.client||"ios"==publicData.client?function(){ns.client.deviceClass("action_voice_login")}:!1,href:""},huawei_login:{name:lang.huawei,fn:"android"==publicData.client||"ios"==publicData.client?function(){ns.client.deviceClass("action_huawei_login")}:!1,href:"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type=45&u="+publicData.u+"&act="+publicData.act+"&display=wap"},feifan:{name:lang.feifan,fn:"android"==publicData.client||"ios"==publicData.client?function(){ns.client.deviceClass("action_feifan_login")}:!1,href:"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type=46&u="+publicData.u+"&act="+publicData.act+"&display=wap"},chuanke:{name:lang.chuanke,fn:"android"==publicData.client||"ios"==publicData.client?function(){ns.client.deviceClass("action_chuanke_login")}:!1,href:"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type=&u="+publicData.u+"&act="+publicData.act+"&display=wap"},meizu_sso:{name:"魅族",fn:"android"==publicData.client||"ios"==publicData.client?function(){ns.client.deviceClass("action_social_meizu_sso")}:!1,href:"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type=50&u="+publicData.u+"&act="+publicData.act+"&display=wap"}},num:1,init:function(module){var me=this;if(this.module=module,"android"==publicData.client){var str=ns.client.deviceClass("config_fastlogin_features"),realStrArray=[];return str&&(realStrArray=str.toLocaleString().split(",")),void me.draw(realStrArray,module)}"ios"==publicData.client?ns.client.deviceClass("getFastLoginOptionList",{},function(id,params){var thirdList=eval(params.result);me.draw(thirdList,module)}):me.draw(["qzone","chuanke","meizu_sso","tqq","tsina","feifan"],module)},getHref:function(t){return"https://passport.baidu.com/phoenix/account/startlogin?tpl="+publicData.tpl+"&type="+t+"&u="+publicData.u+"&act="+publicData.act+"&display=wap"},draw:function(t,e){var i=t.length||0,n="";if("[object Array]"==Object.prototype.toString.call(t)&&t.length>0){$("#"+e+"-sotherlogin").css("display","block"),$("#"+e+"-bottomLink").css("margin-bottom","0");for(var a=t.length>5?5:t.length,o=0;a>o;o++){var s=this.config[t[o]];s&&(n+=s.fn?'<div class="fastlogin-item '+(3>=i?"fastlogin-big":"")+'"><a class="li-img-'+t[o]+'" type="'+t[o]+'" actjs="'+t[o]+'">'+(lang[t[o]]?lang[t[o]]:"")+"</a></div>":'<div class="fastlogin-item '+(3>=i?"fastlogin-big":"")+'"><a class="li-img-'+t[o]+'" type="'+t[o]+'" href="'+s.href+'">'+(lang[t[o]]?lang[t[o]]:"")+"</a></div>")}this.num=i,document.getElementById("fastlogin-layer-"+e).innerHTML=n,this.bind()}},bind:function(){var t=this;ns.view.tap($("[actjs]","#"+this.module),function(){var e=$(this).attr("actjs");t.config[e].fn()}),$("body").on("click",".fastlogin-item a",function(){ns.logAll&&ns.logAll.logBfb&&ns.logAll.logBfb({en:"appsapi-authsite_"+$(this).attr("type"),ev:[ns.module||"","click"]})})},tipDownloadqq:function(){var t=this;if(qqTip)qqTip.show();else{var e='<div class="page-dialog-content"><p class="page-dialog-title">公告</p><p>亲爱的百度用户</p><p>自3.5号起，腾讯QQ已停用原有网页登录方式，为保证您正常使用百度帐号，您可选择其他登录方式或尝试下载最新版APP继续使用QQ登录。</p></div><div class="dialog-content-btn tcenter dialogNoPassword"><input type="button" value="确定" class="pass-button-auto pass-dialog-btncenter" id="qqcancelBtn"></div>';qqTip=new Pass.ui.dialog({width:"90%",mask:!0,content:e}),$("#qqcancelBtn").on("touchend",function(e){e.preventDefault(),qqTip.hide(),ns.logAll&&ns.logAll.logBfb&&ns.logAll.logBfb({en:"appsapi-"+t.module+"qqtip_cancle_click",ev:[t.module,"click"]})})}ns.logAll&&ns.logAll.logBfb&&ns.logAll.logBfb({en:"appsapi-"+t.module+"qqtip_click",ev:[t.module,"click"]})}}}($,window.Pass),!function(t,e){e.guideRandom=function(){return"xxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=16*Math.random()|0,i="x"==t?e:3&e|8;return i.toString(16)}).toUpperCase()}()}($,window.Pass); Pass._define("login",function(){function e(e,a){i.logAll&&i.logAll.logBfb&&(i.logAll.logBfb({en:"appsapi-"+e.module+a+(void 0===e.history?"":e.history?"_history":"_noHistory")}),i.logAll.logBfb({en:"appsapi-"+e.module+a}))}var a,o,t,n,l,i=Pass,s={module:"login",initialized:!1,error:{field:""},stage:"usual",backSign:!1,pwdErrorCount:0,faceLoginData:{tempUsername:"",tempRealname:0},data:{code:"+86",countrycode:"",username:"",userid:""},serverTimeCount:0,loginVcode:"",loginHistory:"",history:!1,getRerocdListDone:!1,isInsertUsername:!1,isInsertPassword:!1,rsa:"B3C61EBBA4659C4CE3639287EE871F1F48F7930EA977991C7AFE3CC442FEA49643212E7D570C853F368065CC57A2014666DA8AE7D493FD47D171C0D894EEE3ED7F99F6798B7FFD7B5873227038AD23E3197631A8CB642213B9F27D4901AB0D92BFA27542AE890855396ED92775255C977F5C302F1E7ED4B1E369C12CB6B1822F"};return s=$.extend(s,Pass.validator),s=$.extend(s,{lang:{"zh-cn":{title:"百度帐号登录",username:"用户名/手机号/邮箱",password:"请输入登录密码",passwordError:"登录密码",verifycode:"验证码",usernamePlaceholder:"请输入用户名/手机号/邮箱",passwordPlaceholder:"密码",faceLogin:"刷脸登录",forgetPassword:"忘记密码",more:"更多",otherLogin:"其他登录方式",prompt:"登录百度帐号，体验全新个人中心，好礼等您拿！（不支持安卓网用户名登录）",submitText:"登录",submitLoading5s:"继续登录中",sms_loginText:"短信快捷登录",submitLoading:"登录中",overseas:"海外登录",overseasPhoneNumber:"海外手机号",mobilenumPlaceholder:"手机号",overseasMobilenumPlaceholder:"请输入手机号码",welcome:"欢迎登录百度帐号",code:"+86",loading:"登录中...",tel:"手机号",phoneformatRegError:"请输入有效手机号码",cancel:"取消",smsLogin:"短信验证码登录",fastLogin:"第三方登录",fastReg:"快速注册",usernameOrMobile:"为了您的帐号安全，请先确认您输入的帐号是用户名还是手机号",smsReg:"短信注册",smsLoginBtn:"短信登录",networkError:"网络连接失败，请检查您的网络设置并稍后再试。",mobile:"手机号",accountname:"用户名",or:"或",mobileSure:"不需要解绑",appealBtn:"申诉去解绑",reg:"快速注册",sureMobileMsg:"您绑定的手机号,请确认该手机号是否还在使用,为了您的帐号安全，请及时解绑不使用的手机。"},en:{title:"Baidu Login",username:"Account",password:"Password",passwordError:"Login Password",verifycode:"Captcha",usernamePlaceholder:"Account/Phone/Email",passwordPlaceholder:"Password",faceLogin:"face Login",forgetPassword:"Forget Password",more:"More",prompt:"Logging on to Baidu account and experience all new personal center. There are more prices waiting for you too! (doesn’t support Android network login).",submitText:"Login",submitLoading5s:"Login",sms_loginText:"Login via SMS",submitLoading:"Login",overseas:"Overseas number",overseasPhoneNumber:"Overseas phone number",mobilenumPlaceholder:"Phone",overseasMobilenumPlaceholder:"Enter overseas mobile phone number",welcome:"Welcome to login baidu account",code:"+86",loading:"Login",tel:"Phone",phoneformatRegError:"Incorrect phone format",cancel:"Cancel",smsLogin:"SMS Login",otherLogin:"Other",fastLogin:"Other Account",fastReg:"Sign Up",usernameOrMobile:"Phone or username?",smsReg:"Sign Up",smsLoginBtn:"SMS Login",networkError:"Network error",mobile:"Phone",accountname:"Account",or:"or",mobileSure:"don't unbind",appealBtn:"unbind",reg:"Sign Up",sureMobileMsg:"is the cell phone number you bind to your account. please make sure that the cell phone number is still available. Otherwise, for the safety of your account, please unbind it soon."}}[window.publicData.lang||"zh-cn"],getElement:function(e){return document.getElementById(this.module+"-"+e)},getIrregularField:function(e){var a=this,o={passwordRightDom:'<span id="'+a.module+'-pwdToggle" class="pass-input-aide pass-input-pwdToggle"></span>',forgetPassword:'<span id="'+a.module+'-forgetPassword" class="right normandy-bottom-forgot">'+a.lang.forgetPassword+"</span>",more:'<span id="'+a.module+'-more" class="left normandy-bottom-more">'+a.lang.more+"</span>",smsLogin:'<span id="'+a.module+'-smslogin" class="left" >'+a.lang.sms_loginText+"</span>",faceLogin:'<span id="'+a.module+'-facelogin" class="left link-font face-login-link" >'+a.lang.faceLogin+"</span>",prompt:"<span>"+a.lang.prompt+"</span>",overseaslink:'<div id="overseasLink">'+a.lang.overseas+"</div>",loadingFaceLogin:'<div class="biometry-loadingMask"><p class="biometry-loading">'+a.lang.loading+'</p><div class="biometry-loadingImg"></div></div>',otherLayer:'<div id="fastlogin-layer-login" class="fastlogin-layer-login"></div>',moreContent:'<footer id="'+a.module+'-layer" class="layer-account"><a href="javascript:void(0);" id="'+a.module+'-facelogin" class="normandy-more-face">刷脸登录</a><a href="javascript:void(0);" id="smsloginlink" class="normandy-more-smslogin">短信快捷登录</a><a href="javascript:void(0);" id="overseasLink" class="normandy-more-overseas">境外手机号登录</a><a href="javascript:void(0);" class="normandy-more-reg">注册帐号</a><a href="javascript:void(0);" class="normandy-more-qa">登录遇到问题</a><a href="javascript:void(0);" class="normandy-more-qa-cancle">取消</a></footer>',setBottomLink:'<div class="set-bottom-link">登录后去【我的】-【活动中心】参与领取</div>'};return o[e]},getTemplate:function(){var e=this,a=window.Pass.ui.temp,o=new a({module:e.module}),t='<article class="wrapper" id="'+this.module+'">',n=publicData,l=[];n.action="login",n.loginmerge=1,n.isphone="0",n.dialogVerifyCode="",n.dialogVcodestr="",n.dialogVcodesign="",n.ds="",n.tk="",n.gid=i.guideRandom||"",n.authtoken="",n.vcodestr="",n.verifycode="",l.push({field:"username",title:e.lang.username,placeholder:e.lang.usernamePlaceholder,maxLength:60,rightDom:e.getIrregularField("userNameRightDom")}),l.push({field:"code",title:e.lang.overseasPhoneNumber,placeholder:e.lang.overseasMobilenumPlaceholder,type:"tel",code:!0}),l.push({field:"password",title:e.lang.passwordError,placeholder:e.lang.password,pwd:!0,rightDom:e.getIrregularField("passwordRightDom")}),t+='<div id="login-div" class="flexdiv">',"apps"!==publicData.adapter&&1!==+publicData.adapter&&3!==+publicData.adapter&&(t+=o._getHeaderField({title:"<span >"+e.lang.title+"</span>",goBack:!0,usual:!0}),t+=o._getHeaderField({title:"<span>"+e.lang.overseas+"</span>",overseas:!0})),t+='<div class="normandy-img-div clearfix"><div class="normandy-img-logo" id="loginLogo"></div><div class="normandy-img-title"></div><div class="normandy-img-ailogo"></div></div><div class="normandy-title-div"><div class="normandy-title-content">'+e.lang.welcome+"</div></div>",t+='<div class="normandy-mod-content" id="'+o.getId("contentWrapper")+'">',t+='<form autocomplete="off" id="'+o.getId("formWrapper")+'" method="POST" class="form-wrapper pass-form-verify-wrapper m-t25 clearfix">';for(var s=0;s<l.length;s++)t+=o._getRegularFieldNormandy(l[s]);return t+=o._getErrorField(),t+='<div class="normandy-bottom-link clearfix">',t+=e.getIrregularField("smsLogin"),t+='<span class="left normandy-spilit-line">|</span>',t+=e.getIrregularField("more"),t+=e.getIrregularField("forgetPassword"),t+="</div>",t+=o._getSubmitField({value:e.lang.submitText}),t+=o._getHiddenField(n),t+="</form>",t+='<div class="clearfix patch-clearfix">',t+="</div>",1===+publicData.androidmerge&&(t+='<div class="prompt-css">'+e.getIrregularField("prompt")+"</div>"),t+="</div>",t+='<div class="register-content" id="'+e.module+'-registerWrapper">'+e.getIrregularField("moreContent")+'<div class="p-b20">'+e.getIrregularField("otherLayer")+"</div></div>",1===+publicData.liveAbility&&(t+=e.getIrregularField("loadingFaceLogin")),t+="</div>",t+=o._getLoadingField({module:e.module,html:e.lang.loading}),t+="</article>"},checkUserName:function(e){var a=this,o=window.apiDomain+"/wp/api/login/check?clientfrom="+publicData.clientfrom+"&gid="+(i.guideRandom||"")+"&tt="+(new Date).getTime();$.getJSON(o,e,function(e){(e.data.userid||e.data.isconnect)&&a.dialogNoPassword(e)},"json")},getFaceLoginCheck:function(e){if("1"===publicData.liveAbility){var a=this,o=i.view._strTrim(a.getElement("username").value),t={username:o,uid:e?a.data.userid:"",tpl:publicData.tpl,faceCheckRole:"passFe"};a.faceLoginData.tempUsername=o,$.ajax({url:"/v3/login/facelogincheck",data:t,type:"GET",dataType:"json",success:function(e){var o=e.type&&"face_login"===e.type&&(0!==parseInt(e.hasRealName,10)||"1"===publicData.suppcheck);a.faceLoginData.hasRealName=e.hasRealName,o?(setTimeout(function(){$(a.getElement("facelogin")).css("display","block"),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_show_faceLogin",autoStatisticObj:{faceLoginCase:a.data.faceLoginCase||"none"}})},0),a.faceLoginData.tempRealname="1"):($(a.getElement("facelogin")).css("display","none"),a.faceLoginData.tempRealname="0"),a.exp_case=e.exp_case,a.livinguname=e.livinguname}})}},getUrlLoginUserName:function(){var e=$.fn.getQueryString("loginUserName");return e=decodeURIComponent(e&&e.indexOf("#")>-1?e.split("#")[0]:e)},getRerocdList:function(){var e=this,a=e.getUrlLoginUserName();if(""!==a){$(e.getElement("username")).val(a);var o=$(".pass-normandy-item-username");return $(".pass-normandy-title",o).show(),$(".pass-normandy-label",o).hide(),!1}if(!e.getRerocdListDone){var t=window.apiDomain+"/wp/api/login/history?item=&token="+publicData.token+"&clientfrom="+publicData.clientfrom+"&tpl="+publicData.tpl+"&gid="+(i.guideRandom||"")+"&tt="+(new Date).getTime();$.ajax({url:t,data:{},type:"GET",dataType:"json",success:function(a){if(a.data.historyInfo.length>0&&e.getRerocdListDone===!1){e.getRerocdListDone=!0,$("#smsloginlink").css("display","block"),$("#overseasLink").css("display","none");var o={me:e,data:a.data,initHandler:function(){var e=this;e.setHandler(a.data.historyInfo[0].input)},domHandler:function(){var a=this;$(".pass-normandy-item-username, .pass-normandy-sep-username").hide(),$("#"+e.module).addClass("history_login");var o='<span id="login-otherLogin" class="left">登录其他帐号</span>',t=$("#"+e.module+"-smslogin");t.after(o),t.hide(),$(e.getElement("contentWrapper")).on("touchend","#login-otherLogin",function(o){o.preventDefault(),$("#"+e.module+" .normandy-history-con").remove(),a.removeHandler(),$("#"+e.module+"-smslogin").show(),$("#smsloginlink").css("display","none"),$("#"+e.module+"-otherLogin").hide(),$("#"+e.module+"-facelogin").hide(),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+e.module+"_otherLogin_click"}),e.loginHistory="",e.history=!1})},removeHandler:function(){$("#"+e.module).removeClass("history_login"),$(".pass-normandy-item-username, .pass-normandy-sep-username").fadeIn(),$(e.getElement("username")).val(""),$(e.getElement("password")).val(""),$("#"+e.module+"-smslogin").show(),$("#smsloginlink").css("display","none"),$("#"+e.module+"-otherLogin").hide()},setHandler:function(a){$(e.getElement("username")).val(a);var o={username:i.view._strTrim(a),tpl:publicData.tpl};e.checkUserName(o),"1"===publicData.liveAbility&&e.getFaceLoginCheck()}};e.loginHistory=new i.ui.history(o),e.history=!0,i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+e.module+"_history_show"})}else i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+e.module+"_noHistory_show"})},error:function(){i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+e.module+"_noHistory_show"})}})}},back:function(){$(".usual_login_header").css("display","block"),$(".overseas_login_header").css("display","none"),$(".pass-normandy-item-username").css("display","-webkit-box"),$(".pass-normandy-sep-username").show(),$(".pass-normandy-item-code").css("display","none"),$("#login-password").val(""),i.removeInfoAnimate(this.module),this.backSign=!1,this.stage="usual"},render:function(e,a){var o=this;publicData.smsLoginLink=1,a&&a.code&&($("#login .normandy-text-label-code").html(a.code),o.data.code=a.code,o.data.countrycode=a.countrycode);Math.round((new Date).getTime()/1e3);if(o.initialized)Pass.switchView(o.module);else{var t=o.getTemplate();"[object string]"===Object.prototype.toString.call(e).toLowerCase()?$("#"+e).append(t):e.append(t),this.initialized=!0,Pass.switchView(o.module,"init"),window.Pass.login=o,a&&a.username&&a.userid?(o.data.username=a.username,o.data.userid=a.userid,$(o.getElement("username")).val(a.username),o.getFaceLoginCheck(!0)):o.getRerocdList(),1===parseInt(publicData.overseas,10)&&$(".overseas_login_header").is(":hidden")&&$("#overseasLink").css("display","block"),o.setEvent(),i.fastLogin.init(o.module),i.view.inputBlur(),i.view.bottomCal(o)}o.setValidator(),a&&a.mobileNum&&($(o.getElement("username")).val(a.mobileNum),$("#"+o.module+" .pass-normandy-title").show(),i.view.setSubmitStyle(o,0)),i&&i.traceID&&i.traceID.startFlow&&i.traceID.startFlow("wapLogin");try{sessionStorage.setItem("liveAbility",publicData.liveAbility)}catch(n){console.log(n)}o.loadMachine()},loadMachine:function(){i&&i.load&&i.load.insertScript&&i.load.insertScript(apiDomain+"/static/appsapi/js/mod/mkd.js",function(){})},webViewWillAppear:function(){var e="localStorage"in window&&null!==window.localStorage;e&&1===+localStorage.getItem("isCallLoginWebAppear")&&i&&i.setloginAgainWebViewWillAppear&&(i.setloginAgainWebViewWillAppear(),localStorage.setItem("isCallLoginWebAppear",""))},setEvent:function(){var a=this;$("[data-role]",$("#"+a.module)).each(function(){i.view.cutPage($(this))});var o=function(e){a.eventHandler.entrance.apply(a,[e])};$(".pass-text-input",a.getElement("formWrapper")).on({focus:o,blur:o,change:o,keyup:o}),$(".pass-input-clearValue",a.getElement("formWrapper")).each(function(e,o){o=$(this),i.view.clearInputValueBtn(o.prev(),o,a.getElement("submit"))}),$(a.getElement("formWrapper")).on("submit",o),$(a.getElement("pwdToggle")).on("tap",o),$(a.getElement("smslogin")).on("touchend",function(e){e.preventDefault(),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_smslogin_link",autoStatisticObj:{faceLoginCase:a.data.faceLoginCase||"none"}});var o={},t=$(a.getElement("username")).val(),n=/^[1][3,4,5,7,8][0-9]{9}$/;o.from="acclogin",!a.getRerocdListDone&&n.test(t)&&(o.mobileNum=t),i._getScript("sms_login",function(e){e.render("pageWrapper",o)})}),$(a.getElement("more")).on("touchend",function(o){o.preventDefault(),$(a.getElement("layer")).css("display","block"),setTimeout(function(){$(a.getElement("layer")).addClass("layermenu-out")},0),$(a.getElement("loadingMask")).show(),e(a,"_more_click")}),$(a.getElement("forgetPassword")).on("touchend",function(o){e(a,"_findPass_click"),o.preventDefault(),a.goFindPass()}),$("#login-loadingMask, .normandy-more-qa-cancle").on("touchend",function(e){e.preventDefault(),$(a.getElement("layer")).hasClass("layermenu-out")&&($(a.getElement("layer")).removeClass("layermenu-out"),setTimeout(function(){$(a.getElement("layer")).css("display","none")},300),i.view.loadingHide($(a.getElement("loadingMask"))))}),$(a.getElement("facelogin")).on("touchend",function(e){e.preventDefault(),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_faceLogin_click"}),a.getUserInfo(),$(a.getElement("layer")).css("display","none"),$(a.getElement("layer")).removeClass("layermenu-out"),i.view.loadingHide($(a.getElement("loadingMask")))}),$("#login .normandy-more-reg").on("touchend",function(e){e.preventDefault(),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_reg_link"}),1===+publicData.fastRegLink&&"android"===publicData.client?window.sapi_obj&&window.sapi_obj.action_fast_reg?window.sapi_obj.action_fast_reg():"android"===publicData.client&&prompt('{action:{name:"action_fast_reg"}}'):(i._getScript("reg",function(e){e.render("pageWrapper",a.module)}),$(a.getElement("layer")).css("display","none"),$(a.getElement("layer")).removeClass("layermenu-out"),i.view.loadingHide($(a.getElement("loadingMask"))))}),$("#smsloginlink").on("touchend",function(e){e.preventDefault(),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_smslogin_link_more",autoStatisticObj:{faceLoginCase:a.data.faceLoginCase||"none"}}),$(a.getElement("layer")).hasClass("layermenu-out")&&($(a.getElement("layer")).removeClass("layermenu-out"),setTimeout(function(){$(a.getElement("layer")).css("display","none")},300),i.view.loadingHide($(a.getElement("loadingMask")))),i._getScript("sms_login",function(e){e.render("pageWrapper")})}),i.view.fullButton($(a.getElement("submit"))),i.view.tap($(".normandy-more-qa"),function(e){e.preventDefault(),$("input").blur(),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_question_link_click"}),Pass._getScript("question",function(e){var a={type:"question"};e.render("pageWrapper",a)}),$(a.getElement("layer")).css("display","none"),$(a.getElement("layer")).removeClass("layermenu-out"),i.view.loadingHide($(a.getElement("loadingMask")))}),$("#overseasLink").on("touchend",function(e){e.preventDefault(),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_overseas_link"}),$(".usual_login_header").css("display","none"),$(".overseas_login_header").css("display","block"),$(a.getElement("layer")).css("display","none"),$(a.getElement("layer")).removeClass("layermenu-out"),i.view.loadingHide($(a.getElement("loadingMask"))),$(".pass-normandy-item-username").css("display","none"),$(".pass-normandy-sep-username").hide(),$(".pass-normandy-item-code").css("display","-webkit-box"),$("#login-password").val(""),$(this).css("display","none"),i.removeInfoAnimate(a.module),a.stage="overseas",a.backSign=!0}),$("#login .normandy-text-label-code").on("touchend",function(e){e.preventDefault(),$("input").blur();var o={};o.module=a.module,Pass._getScript("codelist",function(e){e.render("pageWrapper",o)})})},getUserInfo:function(){var e=this,a={tpl:publicData.tpl,clientfrom:publicData.clientfrom,client:publicData.client,username:e.livinguname};$.ajax({url:apiDomain+"/v3/login/api/prelivinglogin?tt="+(new Date).getTime(),data:a,type:"POST",success:function(a){a=JSON.parse(a),"0"===a.errInfo.no?a.data.authtoken&&($(e.getElement("authtoken")).val(a.data.authtoken),0===parseInt(e.faceLoginData.hasRealName,10)?e.identificationData():e.identification(a.data.authtoken)):(e._validateError({msg:a.errInfo.msg}),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+e.module+"_faceLoginError_request",autoStatisticObj:{faceLoginCase:e.data.faceLoginCase||"none"}}))},error:function(){e._validateError({msg:e.lang.networkError})}})},goFindPass:function(){var e=location.protocol+"//"+location.hostname,a="?tpl="+publicData.tpl+"&client="+publicData.client+"&clientfrom="+publicData.clientfrom+"&subpro="+publicData.subpro+"&adapter="+publicData.adapter+"&liveAbility="+(publicData.liveAbility||"")+"&suppcheck="+(publicData.suppcheck||""),o=e+"/passport/getpass"+a,t=function(e,a){i.client.deviceClass("action_load_external_webview",{placeholderTitle:e,url:"ios"===publicData.client?encodeURIComponent(a):a})};if("1"===publicData.enableExternalWeb){var n=o+"&enableExternalWeb=1&adapter=3";t("找回密码",n)}else window.location.replace(o+"&newForgetPwd=no&redireu="+encodeURIComponent(location.href))},identificationData:function(){var e=this;i.client.identificationData(e,"uncertlogin",e.livinguname,function(a){e._validateError({msg:""}),e.upliving(a)},function(a,o,t){-204!==a&&e.setErrorMsg(o,t,t),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+e.module+"_faceLoginError_request"})})},identification:function(e){var a=this;i.client.identification(a,"certlogin",e,function(e){a._validateError({msg:""}),a.upliving(e)},function(e,o,t){-204!==e&&a.setErrorMsg(o,t,t),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_faceLoginError_request"})})},upliving:function(e){var a=this,o={};o.callbackkey=e,o.tpl=publicData.tpl,o.clientfrom=publicData.clientfrom,o.client=publicData.client,o.token=$(a.getElement("authtoken")).val(),o.username=a.livinguname,o.faceLoginCase=a.exp_case||"none",$.ajax({url:"/v3/login/api/livinglogin",data:o,type:"POST",success:function(e){if(e=JSON.parse(e),0===+e.errInfo.no)if(a._validateError({msg:""}),$("#login").hide(),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_faceLoginSuccess_request",autoStatisticObj:{faceLoginCase:a.data.faceLoginCase||"none"}}),publicData.client+""=="ios"||publicData.client+""=="android"){var o=e.data.xml.replace("<account></account>","<account>"+a.username+"</account>").replace("<password></password>","<password></password>");i.client.success(o,"face",e.data.livinguname)}else document.location=publicData.u;else $(".biometry-loadingMask").hide(),a._validateError({msg:e.errInfo.msg}),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_faceLoginError_request",autoStatisticObj:{faceLoginCase:a.data.faceLoginCase||"none"}})}})},setErrorMsg:function(e,a,o){var t=this,n='<div class="pass-dialog-content pass-fast-dialog"><p class="page-dialog-title">提示</p><p>'+e+'</p></div><div class="dialog-content-btn">'+(o?'<input type="button" value="继续刷脸" class="pass-button-auto pass-dialog-btnleft blue" id="dialogmsg-faceLogin-btn"><input type="button" value="其他方式登录" class="pass-button-auto pass-dialog-btnright white" id="dialogmsg-changeLogin-btn">':'<a class="dialog-banner-mainbtn" id="dialogmsg-changeLogin-btn">确定</a>')+"</div>",l=window.Pass.ui.dialog,s=new l({width:"90%",mask:!0,content:n});$("#dialogmsg-changeLogin-btn").off("click").on("click",function(e){e.preventDefault(),s.remove(),a&&i._getScript("login",function(e){e.render("pageWrapper",t.module),i.removeLast()})}),$("#dialogmsg-faceLogin-btn").off("click").on("click",function(e){e.preventDefault(),s.remove(),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+t.module+"_faceLogin_click"}),t.getUserInfo(),$(t.getElement("layer")).css("display","none"),$(t.getElement("layer")).removeClass("layermenu-out"),i.view.loadingHide($(t.getElement("loadingMask")))})},getVerifyCode:function(e,a){var o=this,t=e.data.codeString,n={mask:!0,vcodestr:t,from_module:"login",slide:"1"===e.data.isslide,history:!!o.loginHistory,verifySuccessFn:function(n){"1"===e.data.isslide?(o.getElement("ds").value=window.LG_KD_RJ.ds||"",o.getElement("tk").value=window.LG_KD_RJ.tk||""):(o.getElement("verifycode").value=n,o.getElement("vcodestr").value=t),o.loginVcode.remove(),a&&a(n)}};$(o.getElement("password")).blur();var l=i.ui.vcode;o.loginVcode=new l(n)},_validateError:function(e){var a=this;i.infoAnimate(a.module,e.msg),i.view.setSubmitStyle(a),e.field?(a.error.field=e.field,$(e.field).parents("p.pass-form-item").addClass("pass-form-item-error")):a.error.field=""},_validateSuccess:function(e){var a=this;e.msg?i.infoAnimate(a.module,e.msg):e.field===a.error.field&&(i.removeInfoAnimate(a.module),a.error.field="")},setValidator:function(){var e=this;e.validateRules={username:{rules:["required"],asyncRule:e.asyncValidate.checkUserName,desc:e.lang.username},code:{rules:"+86"===e.data.code?["required","phoneformatReg"]:["required","numformat"],desc:e.lang.tel},password:{rules:["required"],desc:e.lang.passwordError}},e._validator.addRule("phoneformatReg",function(){var a=i.view._strTrim(e.getElement("code").value);return/^1[3456789]\d{9}$/.test(a)}),e._validator.addMsg("phoneformatReg",e.lang.phoneformatRegError),e._validator.addRule("numformat",function(){var a=i.view._strTrim(e.getElement("code").value);return/^\d+$/.test(a)}),e._validator.addMsg("numformat",e.lang.phoneformatRegError),e._validator.init(e,e.validateRules)},asyncValidate:{},sureAccountType:function(){var e=this,o='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><p>'+e.lang.usernameOrMobile+'</p></div><div class="dialog-content-btn tcenter"><input type="button" value="'+e.lang.mobile+'" class="pass-button-auto pass-dialog-btnleft" id="account-type-phone"><input type="button" value="'+e.lang.accountname+'" class="pass-button-auto pass-dialog-btnright" id="account-type-username"></div>';a=new Pass.ui.dialog({width:"90%",mask:!0,content:o}),i.view.tap($("#account-type-phone"),function(){e.getElement("loginmerge").value=0,e.getElement("isphone").value=1,a.remove(),$(e.getElement("formWrapper")).submit()}),i.view.tap($("#account-type-username"),function(){e.getElement("loginmerge").value=0,e.getElement("isphone").value=0,a.remove(),$(e.getElement("formWrapper")).submit()}),$("#account-type-phone,#account-type-username").each(function(){i.view.touch($(this),"pass-button-auto-active")})},sureMobile:function(e){var a=this,t='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><p><span class="pass-dialog-orangecolor">'+e.mobileNum+"</span>"+a.lang.sureMobileMsg+'</p></div><div class="dialog-content-btn tcenter"><input type="button" value="'+a.lang.mobileSure+'" class="pass-button-auto pass-dialog-btnleft" id="mobile-sure-btn"><input type="button" value="'+a.lang.appealBtn+'" class="pass-button-auto pass-dialog-btnright" id="appeal-btn"></div>';o=new Pass.ui.dialog({width:"90%",mask:!0,content:t}),i.view.tap($("#mobile-sure-btn"),function(){o.remove(),e.successFn&&e.successFn()}),i.view.tap($("#appeal-btn"),function(){o.remove(),e.otherFn&&e.otherFn()}),$("#mobile-sure-btn,#appeal-btn").each(function(){i.view.touch($(this),"pass-button-auto-active")})},getSmsVerify:function(e){var a=this;a.globaTemp=e||{};var o=e.data.phone,t=e.data.userid,n=$("#dv_Input").val()||window.LG_DV_ARG&&window.LG_DV_ARG.dvjsInput||"",l={mobilenum:o,tpl:publicData.tpl,isuserid:1,username:t,sub_source:"leadsetpwd",clientfrom:"native",dialogVerifyCode:a.getElement("dialogVerifyCode").value,vcodesign:a.getElement("dialogVcodesign").value,vcodestr:a.getElement("dialogVcodestr").value,dv:n};$.post(apiDomain+"/wp/api/login/sms?v="+(new Date).getTime(),l,function(e){if(a.getElement("dialogVcodesign").value="",a.getElement("dialogVcodestr").value="",i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_smsLogin_request"}),0===+e.errInfo.no)i.view.loadingHide($(a.getElement("loadingMask"))),$(a.getElement("loading")).hide(),e.data.mobilenum=o,e.data.isuserid=1,e.data.checkUserid=t,e.data.sub_source="leadsetpwd",e.data.clientfrom="native",i._getScript("sms_verify",function(a){a.render("pageWrapper",e.data)});else if(50020===+e.errInfo.no||50021===+e.errInfo.no){i.view.loadingHide($(a.getElement("loadingMask"))),$(a.getElement("loading")).hide();var n=e.data.vcodestr;e.data.verifyCodeData={mask:!0,vcodestr:n,from_module:"login",verifySuccessFn:function(o){a.getElement("dialogVerifyCode").value=o||"",a.getElement("dialogVcodesign").value=e.data.vcodesign,a.getElement("dialogVcodestr").value=n,a.getSmsVerify(a.globaTemp||{}),a.loginVcode.remove()}};var l=i.ui.vcode;a.loginVcode=new l(e.data.verifyCodeData)}else a._validateError({msg:e.errInfo.msg})},"json")},dialogNoPassword:function(e){var a=this,o='<div class="page-dialog-content dialogNoPassword"><p class="page-dialog-title">'+(e.data.isconnect?e.data.displayname:e.data.phone)+"</p><p>该帐号尚未设置密码</p>"+(e.data.isconnect?"<p>请先设置密码后登录</p>":"<p>可通过短信验证登录</p>")+'</div><div class="dialog-content-btn tcenter dialogNoPassword"><input type="button" value="取消" class="pass-button-auto pass-dialog-btnleft" id="dialogNoPasswordMsg-cancel-btn"><input type="button" value="'+(e.data.isconnect?"设置密码":"短信验证码登录")+'" class="pass-button-auto pass-dialog-btnright" id="dialogNoPasswordMsg-smslogin-btn"></div>';a.getElement("password").blur(),l=new Pass.ui.dialog({width:"90%",mask:!0,content:o});var t=$(".mod-dialog-body");t.css({top:Math.max((window.windowHeight-t.height())/2,0)+"px"}),$("#dialogNoPasswordMsg-cancel-btn").on("touchend",function(e){e.preventDefault(),l.remove(),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_dialogNoPassword_cancel_click"})}),$("#dialogNoPasswordMsg-smslogin-btn").on("touchend",function(o){o.preventDefault(),l.remove(),e.data.isconnect?a.goFindPass():a.getSmsVerify(e),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_dialogNoPassword_smslogin_click"})})},disablePwdCut:function(){var e=this,a=$(e.getElement("password"));"text"===a.attr("type")&&(a.on("longTap",function(){a.attr("type","password"),$(e.getElement("pwdToggle")).removeClass("pass-input-pwdToggle-show")}),a.on("copy",function(){return!1}),a.on("cut",function(){return!1}))},eventHandler:function(){var a=this,o={focus:function(o){var t=$(".pass-normandy-item-"+o);$(".pass-normandy-title",t).show(),$(".pass-normandy-label",t).hide();var n=$(".pass-normandy-sep-"+o);"username"===o&&($(a.getElement("facelogin")).css("display","none"),e(a,"_username_input")),"password"===o&&e(a,"_password_input"),n.addClass("pass-normandy-item-sep-focus")},blur:function(e){var o=$(".pass-normandy-item-"+e),t=$(".pass-text-input",o).val(),n=$(".pass-normandy-sep-"+e);if(t||($(".pass-normandy-title",o).hide(),$(".pass-normandy-label",o).show()),n.removeClass("pass-normandy-item-sep-focus"),"username"===e&&"1"===publicData.liveAbility){if(""===$(a.getElement("username")).val())return;a.faceLoginData.tempUsername===$(a.getElement("username")).val()&&"1"===a.faceLoginData.tempRealname?$(a.getElement("facelogin")).css("display","block"):a.faceLoginData.tempUsername!==$(a.getElement("username")).val()&&a.getFaceLoginCheck()}i.view.setSubmitStyle(a,0)},keyup:function(o){if(i.view.setSubmitStyle(a),"username"===o){if($(a.getElement("facelogin")).css("display","none"),a.isInsertUsername)return;e(a,"_username_input"),a.isInsertUsername=!0}if("password"===o){if(a.isInsertPassword)return;e(a,"_password_input"),a.isInsertPassword=!0}}},l={change:{username:function(){var e=a.getElement("username");a.pwdErrorCount=0,a.checkUserName({username:i.view._strTrim(e.value),tpl:publicData.tpl}),a.getElement("loginmerge").value=1,a.getElement("isphone").value=0},code:function(){var e=a.getElement("code");a.validate("code",{success:function(){a.checkUserName({username:i.view._strTrim(e.value),tpl:publicData.tpl,countrycode:a.data.countrycode})}})}},tap:{pwdToggle:function(e){var o=$(a.getElement("password"));"text"===o.attr("type")?(o.attr("type","password"),$(a.getElement(e)).removeClass("pass-input-pwdToggle-show"),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_pwdToggle_hidePwd_click"})):(o.attr("type","text"),$(a.getElement(e)).addClass("pass-input-pwdToggle-show"),a.disablePwdCut(),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_pwdToggle_showPwd_click"}))}},submit:function(o){var s=a.getElement("submit");o.preventDefault(),s.disabled||a.validateAll({success:function(){function o(){r.logLoginType="sdk_login",r.passAppHash=publicData.passAppHash||"",r.passAppVersion=publicData.passAppVersion||"",r.cv="170601",r.faceLoginCase=a.exp_case||"none",r.liveAbility=publicData.liveAbility||"",r.ds=a.getElement("ds").value,r.tk=a.getElement("tk").value,a.getElement("ds").value="",a.getElement("tk").value="",r.username===a.data.username&&(r.userid=a.data.userid,r.encryptedType="living",r.loginmerge="");var g=window.apiDomain+"/wp/api/login?v="+(new Date).getTime()+"&cv=170601";$.post(g,r,function(g){function p(){i.removeInfoAnimate(a.module),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_secLogin_guide"}),Pass._getScript("login_again",function(e){var o={mobile:g.data.mobile,mobileHidden:g.data.mobileHidden,idcard:g.data.idcard,countrycode:g.data.countrycode,liveUsername:g.data.liveUsername,liveSecurity:g.data.liveSecurity,livinguname:g.data.livinguname,hasRealName:a.faceLoginData.hasRealName};e.render("pageWrapper",o)})}if(s.disabled=!1,i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_request",urlObj:{errno:g.errInfo.no,loginHistory:a.loginHistory?"history":"noHistory",verify:a.loginVcode?"vcode":"normal"}}),clearTimeout(a.submitTimer5s),clearTimeout(a.submitTimer15s),g.errInfo.no+""=="0"&&g.data.realName+""=="1"&&(g.errInfo.no=400408),0===+g.errInfo.no){if(i.view.loadingHide($(a.getElement("loadingMask"))),$(a.getElement("loading")).hide(),"ios"===publicData.client||"android"===publicData.client)if("1"!==publicData.liveAbility&&"1"!==publicData.suppcheck||"1"!==g.data.hasGuideFaceLogin){var u=g.data.xml.replace("<account></account>","<account>"+r.username+"</account>").replace("<password></password>","<password>"+c+"</password>");i.client.success(u,"password",g.data.livinguname)}else{var m=g.data;m.username=r.username,m.password=c,m.suppcheck=publicData.suppcheck;try{sessionStorage.setItem("storageData",JSON.stringify(m))}catch(f){console.log(f)}var v="faceAuthsid="+g.data.guideFaceAuthsid+"&clientfrom="+publicData.clientfrom+"&client="+publicData.client+"&tpl="+publicData.tpl+"&adapter="+publicData.adapter+"&isFinanceTpl="+(g.data.isFinanceTpl||"")+"&openSwitchType="+(g.data.openSwitchType||"")+"&authtokenFaceLogin="+encodeURIComponent(g.data.authtokenFaceLogin||"")+"&guidefrom="+g.data.guidefrom;
window.location.replace("https://wappass.baidu.com/v3/login/faceloginguide?"+v)}else document.location=publicData.u;a.getElement("loginmerge").value=1,a.getElement("isphone").value=0,e(a,"_login_success")}else if(e(a,"_login_fail"),i.getSeverTime(),i.view.loadingHide($(a.getElement("loadingMask"))),$(a.getElement("loading")).hide(),400101===+g.errInfo.no||400023===+g.errInfo.no)document.location.href=g.data.verifyUrl+"&newForgetPwd=no&redireu="+encodeURIComponent(window.location.href);else{if(50018===+g.errInfo.no&&a.serverTimeCount<=5)return++a.serverTimeCount,void l[d.type].apply($(d.target),[d]);if(400032===+g.errInfo.no)if("1"===g.data.ppIsUpgradeMobile){var u=g.data.xml.replace("<account></account>","<account>"+r.username+"</account>").replace("<password></password>","<password>"+c+"</password>").replace("<livinguname></livinguname>","<livinguname>"+encodeURIComponent(g.data.livinguname)+"</livinguname>");sessionStorage.setItem("ppIsUpgradeMobileStatus",u),document.location.href=g.data.verifyUrl}else g.data.guide=1,g.data.account=r.username,g.data.password=r.password,i._getScript("bind",function(e){e.render("pageWrapper",g.data)}),a.getElement("loginmerge").value=1,a.getElement("isphone").value=0;else if(400024===+g.errInfo.no)g.data.account=r.username,g.data.password=r.password,i._getScript("forcedBind",function(e){e.render("pageWrapper",g.data)}),a.getElement("loginmerge").value=1,a.getElement("isphone").value=0;else if(400408===+g.errInfo.no)g.data.account=r.username,g.data.password=r.password,g.data.realnameNeed=1,g.data.loginProxy=g.data.ppU,g.data.realnameverifyemail?i._getScript("verify",function(e){e.render("pageWrapper",g.data)}):i._getScript("realName",function(e){e.render("pageWrapper",g.data)});else if(400401===+g.errInfo.no)a.sureAccountType();else if(400036===+g.errInfo.no){var b={mobileNum:g.data.phone||"",successFn:function(){var e=new Image;if(e.onerror=e.onload=function(){e=null},e.src="https://passport.baidu.com/v.gif?type=mobileSureNative&clientfrom="+publicData.clientfrom+"&client="+publicData.client+"&tpl="+(publicData.tpl||"")+"&tt="+(new Date).getTime(),"ios"===publicData.client||"android"===publicData.client){var a=g.data.xml.replace("<account></account>","<account>"+r.username+"</account>").replace("<password></password>","<password>"+c+"</password>");i.client.success(a,"password",g.data.livinguname)}else document.location=publicData.u},otherFn:function(){var e=new Image;e.onerror=e.onload=function(){e=null},e.src="https://passport.baidu.com/v.gif?type=appealMobileNative&clientfrom="+publicData.clientfrom+"&client="+publicData.client+"&tpl="+(publicData.tpl||"")+"&tt="+(new Date).getTime(),document.location.href=g.data.appealurl}};a.sureMobile(b)}else if(400413===+g.errInfo.no||400414===+g.errInfo.no)g.data.loginType="password",i._getScript("secondCardVerify",function(e){e.render("pageWrapper",g.data)});else if($.inArray(g.errInfo.no,["100002","110001","400012"])>-1){var w='<div class="pass-dialog-content pass-fast-dialog"><p class="page-dialog-title">提示</p><p id="fastdialog-msg">'+g.errInfo.msg+'</p></div><div class="dialog-content-btn"><a class="dialog-banner-mainbtn" id="dialogmsg-ok-btn">确定</a></div>',h=window.Pass.ui.dialog;t=new h({width:"90%",mask:!0,content:w}),$("#dialogmsg-ok-btn").live("click",function(){t.remove()})}else if($.inArray(g.errInfo.no,["50028","50029"])>-1)if(n)n.show();else{var w='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><p>帐号或密码多次输错，请3个小时之后再试或找回密码</p></div><div class="dialog-content-btn tcenter"><input type="button" value="取消" class="pass-button-auto pass-dialog-btnleft" id="dialogmsg_find-cancel-btn"><input type="button" value="找回密码" class="pass-button-auto pass-dialog-btnright" id="dialogmsg_find-getpass-btn"></div>',y=window.Pass.ui.dialog;n=new y({width:"90%",mask:!0,content:w}),$("#dialogmsg_find-cancel-btn").live("touchend",function(e){e.preventDefault(),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_pwdError_cancel_click"}),n.hide()}),$("#dialogmsg_find-getpass-btn").live("touchend",function(e){e.preventDefault(),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_pwdError_getpass_click"});var o=window.location.href,t=location.protocol+"//"+location.hostname,l="?tpl="+publicData.tpl+"&client="+publicData.client+"&clientfrom="+publicData.clientfrom+"&subpro="+publicData.subpro,s=t+"/passport/getpass"+l;if(n.hide(),1===+publicData.enableExternalWeb){var r=s+"&enableExternalWeb=1&adapter=3";"android"===publicData.client?prompt('{"action":{"name":"action_load_external_webview",params:[找回密码,"'+r+'"]}}'):i.client.deviceClass("action_load_external_webview",{placeholderTitle:"找回密码",url:encodeURIComponent(r)})}else window.location.href=s+"&newForgetPwd=no&redireu="+encodeURIComponent(o)})}else if(72200===+g.errInfo.no){var w='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><p>'+g.errInfo.msg+'</p></div><div class="dialog-content-btn tcenter"><input type="button" value="取消" class="pass-button-auto pass-dialog-btnleft" id="dialogmsg-cancel-btn"><input type="button" value="去解冻" class="pass-button-auto pass-dialog-btnright" id="dialogmsg-unfreeze-btn"></div>',h=window.Pass.ui.dialog;t=new h({width:"90%",mask:!0,content:w}),$("#dialogmsg-cancel-btn").off("touchend").on("touchend",function(e){e.preventDefault(),t.remove()}),$("#dialogmsg-unfreeze-btn").off("touchend").on("touchend",function(e){e.preventDefault();var a=window.location.href,o=location.protocol+"//"+location.hostname,n="?tpl="+publicData.tpl+"&client="+publicData.client+"&clientfrom="+publicData.clientfrom,l=o+"/wp/v3/ucenter/accountunfreezeapply"+n;if(t.remove(),1===+publicData.enableExternalWeb){var s=l+"&enableExternalWeb=1&adapter=3";"android"===publicData.client?prompt('{"action":{"name":"action_load_external_webview",params:[帐号解冻,"'+s+'"]}}'):i.client.deviceClass("action_load_external_webview",{placeholderTitle:"帐号解冻",url:encodeURIComponent(s)})}else window.location.href=l+"&newForgetPwd=no&redireu="+encodeURIComponent(a)})}else $.inArray(g.errInfo.no,["400011","400015","400038"])>-1?(a._validateError({msg:g.errInfo.msg}),$("input").blur(),$(a.getElement("password")).attr("type","text"),$(a.getElement("pwdToggle")).addClass("pass-input-pwdToggle-show"),a.getElement("verifycode").value="",a.disablePwdCut(),i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_pwdToggle_showPwd_pwdError"}),"1"===g.data.isFinance?p():++a.pwdErrorCount>1&&p()):g.data.codeString&&$.inArray(g.errInfo.no,["340002","500001","500002","50020","50021"])>-1?(a._validateError({msg:g.errInfo.msg}),a.getVerifyCode(g,function(e){s.disabled=!0,$(a.getElement("loadingMask")).show(),$(a.getElement("loading")).show(),r.verifycode=e,r.vcodestr=g.data.codeString,o()}),a.loginHistory?i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_history_verify"}):i.logAll&&i.logAll.logBfb&&i.logAll.logBfb({en:"appsapi-"+a.module+"_noHistory_verify"})):a._validateError({msg:g.errInfo.msg})}s.value=a.lang.submitText,("ios"===publicData.client||"android"===publicData.client)&&400032===+g.errInfo.no&&(g.errInfo.no=0)},"json"),a.submitTimer5s=setTimeout(function(){s.value=a.lang.submitLoading5s},5e3),a.submitTimer15s=setTimeout(function(){s.disabled=!1,s.value=a.lang.submitText,i.view.loadingHide($(a.getElement("loadingMask"))),$(a.getElement("loading")).hide(),a._validateError({msg:a.lang.networkError}),i.getSeverTime()},15e3)}e(a,"_submit"),s.disabled=!0,i.removeInfoAnimate(a.module);var r=$(a.getElement("formWrapper")).formJson();$(a.getElement("loadingMask")).show(),$(a.getElement("loading")).show();try{setTimeout(function(){document.documentElement.scrollTop=window.pageYOffset=document.body.scrollTop=0})}catch(d){console.log(d)}"overseas"===a.stage?(r.username=i.view._strTrim(r.code),r.isphone=1,r.countrycode=a.data.countrycode):r.countrycode="",r.username=i.view._strTrim(r.username),r.verifycode=i.view._strTrim(r.verifycode);var c=r.password;try{i.serverTime?(r.password=r.password+i.serverTime,c+=i.serverTime,r.servertime=i.serverTime):(i.getSeverTime(),r.password=r.password+i.serverTime,c+=i.serverTime,r.servertime=i.serverTime),window.setMaxDigits(131);var g=new window.RSAKeyPair("10001","",a.rsa);r.password=window.encryptedString(g,r.password),c=window.encryptedString(g,c)}catch(p){console.log(p)}o()}},!0)}};return{entrance:function(e){a=this;var t=e.target.name;if(!t&&e.target.id){var n=e.target.id.match(/login-(.*)$/);n&&(t=n[1])}t&&(o.hasOwnProperty(e.type)&&o[e.type].apply($(e.target),[t,e]),l.hasOwnProperty(e.type)&&("function"==typeof l[e.type]&&l[e.type].apply($(e.target),[e]),l[e.type].hasOwnProperty(t)&&l[e.type][t].apply($(e.target),[t,e])))}}}()}),window.Pass.client.fillLoginNameFn=function(e){$(window.Pass.login.getElement("username")).val(e);var a=$(".pass-normandy-item-username");$(".pass-normandy-title",a).show(),$(".pass-normandy-label",a).hide()},sessionStorage&&sessionStorage.setItem("sdklogin_mobileAppeal_v2",location.href),s}); Pass._define("reg",function(){var e,t,a=Pass,n={error:{field:""},data:{code:"+86",countrycode:""},module:"reg",reg_vcode:"",sms_vcode:"",rsa:"B3C61EBBA4659C4CE3639287EE871F1F48F7930EA977991C7AFE3CC442FEA49643212E7D570C853F368065CC57A2014666DA8AE7D493FD47D171C0D894EEE3ED7F99F6798B7FFD7B5873227038AD23E3197631A8CB642213B9F27D4901AB0D92BFA27542AE890855396ED92775255C977F5C302F1E7ED4B1E369C12CB6B1822F"};return n=$.extend(n,Pass.validator),n=$.extend(n,{lang:{"zh-cn":{title:"注册",words:"登录",mobilenum:"手机号码",mobilenumPlaceholder:"请输入手机号码",phoneformatRegError:"您输入的手机号格式有误，请重新输入",welcome:"欢迎注册百度帐号",password:"密码",passwordPlaceholder:"6-14位，建议数字、字母、符号组合",submitTextVerify:"获取手机验证码",loading:"请等待...",regDialogVerifyCodeErr:"验证码为空",networkNoText:"网络连接失败，请检查您的网络设置并稍后再试。",fastLogin:"注册",otherBaidu:"注册百度帐号，即可登录所有百度产品",regTip:"注册成功后，可用其登录百度所有产品,如贴吧、文库、知道、地图等",otherReg:'您还可以通过<a id="#{module}-upstreamReg">手机快速注册</a>的方式完成注册',readAndAccept:"阅读并同意",agreement:"百度用户协议",personal_agreement:"百度隐私权保护声明",and:"及",cancel:"取消",smsLogin:"短信登录",agree:"请勾选“阅读并接受百度用户协议”"},en:{title:"Sign Up",words:"Login",mobilenum:"Phone",mobilenumPlaceholder:"Phone ",phoneformatRegError:"Incorrect phone format",password:"Password",welcome:"Welcome to reg baidu account",passwordPlaceholder:"6-14 Alaphabets, numbers and symbols",submitTextVerify:"Next",loading:"Waiting",regDialogVerifyCodeErr:"Code is empty",networkNoText:"Network error",fastLogin:"Sign Up",otherBaidu:"This Baidu account can be used in all Baidu app.",regTip:"This Baidu account can be used in all Baidu app.",otherReg:'You can use <a id="#{module}-upstreamReg">expedite cellphone registration</a> to register.',readAndAccept:"I agree to",personal_agreement:"Baidu Privacy Statement",agreement:"Baidu Service Agreement",cancel:"Cancel",and:"and",smsLogin:"Login via SMS",agree:'Please check "Read and accept Baidu User Agreement"'}}[window.publicData.lang||"zh-cn"],getElement:function(e){return document.getElementById(this.module+"-"+e)},_getIrregularField:function(e){var t=this,a={passportTip:'<p class="f14 m-b10 gray">'+t.lang.regTip+"</p>",regAgreement:'<p class="f12 gray tcenter"><input type="checkbox" name="agree" id="'+t.module+'-agree"/>&nbsp;'+t.lang.readAndAccept+'<a data-role="agreement" class="agree-link">'+t.lang.agreement+"</a>&nbsp;"+t.lang.and+'&nbsp;<a data-role="personal_agreement" class="agree-link">'+t.lang.personal_agreement+"</a></p>",upstreamReg:'<p class="f14 m-t20 gray hide" id="'+t.module+'-upstreamRegWrapper">'+t.lang.otherReg.replace("#{module}",t.module)+"</p>"};return a[e]},_getTemplate:function(){var e=this,t=new Pass.ui.temp({module:e.module}),n='<article class="wrapper" id="'+this.module+'">',l=publicData,i=[];l.tempid="",l.agreement=1,l.nopsw=publicData.nopsw||"",l.regVcodesign="",l.regVcodestr="",l.regDialogVerifyCode="",l.ds="",l.tk="",l.smsVcodesign="",l.smsVcodestr="",l.smsDialogVerifyCode="",l.gid=a.guideRandom||"",i.push({field:"mobilenum",title:"手机号",label:!0,labeltext:e.lang.mobilenumPlaceholder,type:"tel",code:"1"!==publicData.regdomestic&&"1"===publicData.overseas?!0:!1}),n+='<div id="reg-div" class="flexdiv">',"apps"!=publicData.adapter&&1!=publicData.adapter&&3!=publicData.adapter&&(n+=t._getHeaderField({title:e.lang.fastLogin,goBack:!0})),n+='<div class="normandy-img-div clearfix"><div class="normandy-img-logo" id="loginLogo"></div><div class="normandy-img-title"></div></div><div class="normandy-title-div"><div class="normandy-title-content">'+e.lang.welcome+"</div></div>",n+='<div class="normandy-mod-content" id="'+t.getId("contentWrapper")+'">',n+='<form autocomplete="off" id="'+t.getId("formWrapper")+'" method="POST" class="pass-form-wrapper m-t25 clearfix pass-form-verify-wrapper">';for(var o=0;o<i.length;o++)n+=t._getRegularFieldNormandy(i[o]);return n+=t._getErrorField(),n+=t._getSubmitField({value:e.lang.submitTextVerify}),n+=t._getHiddenField(l),n+="</form>",n+=e._getIrregularField("regAgreement"),n+=e._getIrregularField("upstreamReg"),n+=t._getLoadingField({module:e.module,html:e.lang.loading}),n+="</div>",n+='<div class="register-content" id="'+e.module+'-registerWrapper"><div class="other-baidu-reg" id="other-baidu-reg"><div><span class="other-text-reg">'+e.lang.otherBaidu+'</span></div><div class="img-item"><span class="item-icon item-shoubai"></span><span class="item-icon item-tieba"></span><span class="item-icon item-yun"></span><span class="item-icon item-map"></span><span class="item-icon item-waimai"></span><span class="item-icon item-nuomi"></span><span class="item-icon item-purse"></span></div></div></div>',n+="</div>",n+="</article>"},render:function(e,t){var n=this;if(a&&a.traceID&&a.traceID.startFlow&&a.traceID.startFlow("wapReg"),n.initialized)Pass.switchView(n.module);else{var l=n._getTemplate();"[object string]"==Object.prototype.toString.call(e).toLowerCase()?$("#"+e).append(l):e.append(l),this.initialized=!0,Pass.switchView(n.module,"init"),n.setEvent(),Pass._getScript("login")}t&&t.code&&($("#"+n.module+" .normandy-text-label-code").html(t.code),n.data.code=t.code,n.data.countrycode=t.countrycode),n._setValidator(),a.view.inputBlur(),sessionStorage.setItem("regfrom","reg"),n.loadMachine()},loadMachine:function(){a&&a.load&&a.load.insertScript&&a.load.insertScript(apiDomain+"/static/appsapi/js/mod/mkd.js",function(){})},getPhone:function(){var e=this,t=function(t){$(e.getElement("mobilenum")).val(t?a.view._substrMobile(t):""),t&&($("#"+e.module+" .pass-normandy-item-mobilenum .pass-normandy-title").show(),$("#"+e.module+" .pass-normandy-item-mobilenum .pass-normandy-label").hide(),a.view.setSubmitStyle(e,0))};if("android"===publicData.client){var n=a.client.deviceClass("get_preset_phone_number");t(n)}else"ios"===publicData.client&&a.client.deviceClass("get_preset_phone_number",{},function(e,a){var a=a||{},n=a.result;t(n)})},setEvent:function(){var e=this;$("[data-role]",$("#"+e.module)).each(function(){a.view.cutPage($(this))});var t=function(t){e._eventHandler.entrance.apply(e,[t])};$(".pass-text-input",e.getElement("formWrapper")).on({focus:t,blur:t,change:t,keyup:t}),$(".pass-input-clearValue",e.getElement("formWrapper")).each(function(t,n){var n=$(this);a.view.clearInputValueBtn(n.prev(),n,e.getElement("submit"))}),e.getPhone(),2!=publicData.regtype&&(a.view._mobilenumFormat(e,"mobilenum",function(){1==publicData.nopsw&&("+86"==e.data.code&&$(e.getElement("mobilenum")).val().replace(/\s/g,"").length>=11||"+86"!=e.data.code&&$(e.getElement("mobilenum")).val().replace(/\s/g,"").length>=1)?a.view.setSubmitStyle(e,0):1==publicData.nopsw&&-1==e.getElement("submit").className.indexOf("pass-button-full-disabled")&&$(e.getElement("submit")).addClass("pass-button-full-disabled")}),a.view._setMaxLength($(e.getElement("mobilenum")),11,2),$(e.getElement("mobilenum")).on("paste",function(){var e=this;setTimeout(function(){e.value=a.view._substrMobile(e.value)},100)})),$(e.getElement("formWrapper")).on("submit",t),$(e.getElement("upstreamReg")).on("tap",function(){var t=$(e.getElement("mobilenum")).val(),n=n||{};n._upstreamMobile=a.view._strTrim(t),a._getScript("upstreamReg",function(e){e.render("pageWrapper",n)})}),a.view.fullButton($(e.getElement("submit"))),$("#"+e.module+" .normandy-text-label-code").on("touchend",function(t){t.preventDefault();var a={};a.module=e.module,Pass._getScript("codelist",function(e){e.render("pageWrapper",a)})}),$("#reg-agree").on("click",function(){$("#reg-agree").attr("checked")&&$(".error_area").html("")})},_setValidator:function(){var e=this;e.validateRules={mobilenum:{rules:"+86"==e.data.code?["required","phoneformatReg"]:["required","numformat"],desc:e.lang.mobilenum},agree:{rules:["agree"],desc:e.lang.agree}},e._validator.addRule("phoneformatReg",function(){var t=a.view._strTrim(e.getElement("mobilenum").value);return/^1[3456789]\d{9}$/.test(t)?!0:!1}),e._validator.addMsg("phoneformatReg",e.lang.phoneformatRegError),e._validator.addRule("numformat",function(){var t=a.view._strTrim(e.getElement("mobilenum").value);return/^\d+$/.test(t)?!0:!1}),e._validator.addMsg("numformat",e.lang.phoneformatRegError),e._validator.addRule("agree",function(){return $("#reg-agree").attr("checked")?!0:!1}),e._validator.addMsg("agree",e.lang.agree),e._validator.init(e,e.validateRules)},_validateError:function(e){var t=this;a.infoAnimate(t.module,e.msg),a.view.setSubmitStyle(t),e.field?(t.error.field=e.field,$(e.field).parents("p.pass-form-item").addClass("pass-form-item-error")):t.error.field=""},_validateSuccess:function(e){var t=this,e=e||{};e.msg?a.infoAnimate(t.module,e.msg):e.field==t.error.field&&(t.error.field="")},showUpRegDialog:function(){var t=this;if(e)e.show();else{var n='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><div><p>当前该手机号仅支持短信快速注册</p><p>编辑短信6-14位字符（支持数字/字母/符号）作为登录密码，发送至<span class="pass-dialog-orangecolor">10690691036590</span>注册成功后，手机号即为您的登录用户名。</p></div></div><div class="dialog-content-btn tcenter"><input type="button" value="更换手机号" class="pass-button-auto pass-dialog-btnleft" id="upRegDialogCancelBtn"><input type="button" value="去发送" class="pass-button-auto pass-dialog-btnright" id="upRegDialogOkBtn"></div>';e=new Pass.ui.dialog({width:"90%",mask:!0,content:n}),$("#upRegDialogCancelBtn").live("click",function(){e.hide(),$(t.getElement("mobilenum")).focus().val(""),a.logAll&&a.logAll.logBfb&&a.logAll.logBfb({en:"appsapi-"+t.module+"_upreg_cancel"}),t.getElement("regVcodesign").value="",t.getElement("regVcodestr").value=""}),$("#upRegDialogOkBtn").live("click",function(){e.hide(),a.logAll&&a.logAll.logBfb&&a.logAll.logBfb({en:"appsapi-"+t.module+"_upreg"}),t.getElement("regVcodesign").value="",t.getElement("regVcodestr").value="",location.href="sms:10690691036590"})}},_eventHandler:function(){var e=this,n={focus:function(t){a.view._setFocusStyle(e,t),$("#"+e.module+" .pass-normandy-item-"+t+" .pass-normandy-title").show(),$("#"+e.module+" .pass-normandy-item-"+t+" .pass-normandy-label").hide()},blur:function(t){var n=$("#"+e.module+" .pass-normandy-item-"+t+" .pass-text-input").val();a.view._setBlurStyle(e,t),n||($("#"+e.module+" .pass-normandy-item-"+t+" .pass-normandy-title").hide(),$("#"+e.module+" .pass-normandy-item-"+t+" .pass-normandy-label").show()),1!=publicData.nopsw&&a.view.setSubmitStyle(e,0)},keyup:function(){1!=publicData.nopsw&&a.view.setSubmitStyle(e)}},l={change:{},blur:{mobilenum:function(t){var n=e.getElement(t).value;""!=n&&(e.getElement(t).value=a.view._substrMobile(n))}},tap:{},submit:function(n){var l=e.getElement("submit");n.preventDefault(),l.disabled||e.validateAll({success:function(){function n(){l.disabled=!0,i.mobilenum=a.view._strTrim(e.getElement("mobilenum").value),i.vcodesign=e.getElement("regVcodesign").value,i.vcodestr=e.getElement("regVcodestr").value,i.dialogVerifyCode=e.getElement("regDialogVerifyCode").value,i.ds=e.getElement("ds").value,i.tk=e.getElement("tk").value,e.getElement("ds").value="",e.getElement("tk").value="",$.post(apiDomain+"/wp/api/reg/sms?v="+(new Date).getTime(),i,function(r){function s(){e.data.username=e.getElement("mobilenum").value;var t=(new Date).getTime();l.disabled=!0,a.logAll&&a.logAll.logBfb&&a.logAll.logBfb({en:"appsapi-"+e.module+"_smsLogin_submit"}),$(e.getElement("loadingMask")).show(),$(e.getElement("loading")).show();var n=$("#dv_Input").val()||window.LG_DV_ARG&&window.LG_DV_ARG.dvjsInput||"",i={username:a.view._strTrim(e.getElement("mobilenum").value),tpl:publicData.tpl,clientfrom:publicData.clientfrom,countrycode:e.data.countrycode,gid:a.guideRandom||"",vcodesign:e.getElement("smsVcodesign").value,vcodestr:e.getElement("smsVcodestr").value,dialogVerifyCode:e.getElement("smsDialogVerifyCode").value,dv:n};$.post(apiDomain+"/wp/api/login/sms?v="+(new Date).getTime(),i,function(n){(new Date).getTime()-t;if(a.logAll&&a.logAll.logBfb&&a.logAll.logBfb({en:"appsapi-"+e.module+"_smsLogin_request"}),e.getElement("smsVcodesign").value="",e.getElement("smsVcodestr").value="",0==n.errInfo.no)$(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide(),n.data.username=i.username,n.data.code=e.data.code,e.getElement("submit").className.indexOf("pass-button-full-disabled")>-1&&$(e.getElement("submit")).removeClass("pass-button-full-disabled"),a._getScript("sms_verify",function(e){e.render("pageWrapper",n.data)});else if(50020==n.errInfo.no||50021==n.errInfo.no){$(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide(),n.data.tempid=n.data.tempid;var o=n.data.vcodestr;n.data.verifyCodeData={mask:!0,vcodestr:o,from_module:"reg-smsLogin",verifySuccessFn:function(t){e.getElement("smsDialogVerifyCode").value=t||"",e.getElement("smsVcodesign").value=n.data.vcodesign,e.getElement("smsVcodestr").value=o,s&&s(),e.sms_vcode.remove()}},e.sms_vcode=new a.ui.vcode(n.data.verifyCodeData)}else $(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide(),e._validateError({msg:n.errInfo.msg});l.disabled=!1,clearTimeout(e.submitTimer)},"json")}(new Date).getTime()-o;if(a.logAll&&a.logAll.logBfb&&a.logAll.logBfb({en:"appsapi-"+e.module+"_request"}),e.getElement("regVcodesign").value="",e.getElement("regVcodestr").value="",0==r.errInfo.no)r.data.tempid&&(e.getElement("tempid").value=r.data.tempid),r.data.tempid=r.data.tempid,r.data.mobilenum=i.mobilenum,r.data.code=e.data.code,a._getScript("reg_verify",function(t){$(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide(),t.render("pageWrapper",r.data)});else if(400003==r.errInfo.no){if($(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide(),t)t.show();else{var d='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><p>'+r.errInfo.msg+'</p></div><div class="dialog-content-btn tcenter"><input type="button" value="'+e.lang.cancel+'"class="pass-button-auto pass-dialog-btnleft"id="reg-cancel-btn"><input type="button"value="'+e.lang.smsLogin+'"class="pass-button-auto pass-dialog-btnright"id="sms_login-ok-btn" data-no="'+r.errInfo.no+'"></div>';t=new Pass.ui.dialog({width:"90%",mask:!0,content:d})}$("#reg-cancel-btn").off().on("click",function(){t.hide(),e.getElement("regDialogVerifyCode").value="",e.getElement("regVcodesign").value="",e.getElement("regVcodestr").value=""}),$("#sms_login-ok-btn").off().on("click",function(){t.hide(),s()})}else if("50019"===r.errInfo.no){$(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide(),r.data.tempid=r.data.tempid;var g=r.data.vcodestr;e.getElement("regVcodesign").value="",e.getElement("regVcodestr").value="",r.data.verifyCodeData={mask:!0,vcodestr:g,from_module:"reg",slide:"1"===r.data.isslide?!0:!1,verifySuccessFn:function(t){"1"===r.data.isslide?(e.getElement("ds").value=window.LG_KD_RJ.ds||"",e.getElement("tk").value=window.LG_KD_RJ.tk||""):(e.getElement("regDialogVerifyCode").value=t||"",e.getElement("regVcodesign").value=r.data.vcodesign,e.getElement("regVcodestr").value=g),n&&n(),e.reg_vcode.remove()}},e.reg_vcode=new a.ui.vcode(r.data.verifyCodeData)}else"400603"===r.errInfo.no?($(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide(),e.showUpRegDialog()):($(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide(),50013==r.errInfo.no&&$(e.getElement("upstreamRegWrapper")).show(),e._validateError({msg:r.errInfo.msg}));l.disabled=!1,clearTimeout(e.submitTimer)},"json"),e.submitTimer=setTimeout(function(){l.disabled=!1,$(e.getElement("loadingMask")).hide(),$(e.getElement("loading")).hide(),e._validateError({msg:e.lang.networkNoText})},15e3)}e.getElement("submit").focus(),e._validateError({msg:""});var i=$(e.getElement("formWrapper")).formJson();a.logAll&&a.logAll.logBfb&&a.logAll.logBfb({en:"appsapi-"+e.module+"_submit"}),$(e.getElement("loadingMask")).show(),$(e.getElement("loading")).show();var o=(new Date).getTime();i.tpl=publicData.tpl,i.countrycode=e.data.countrycode,i.tt=(new Date).getTime(),n()}},!0)}};return{entrance:function(t){e=this;var a=($(t.target),t.target.name);if(!a&&t.target.id){var i=t.target.id.match(/reg-(.*)$/);i&&(a=i[1])}a&&(n.hasOwnProperty(t.type)&&n[t.type].apply($(t.target),[a,t]),l.hasOwnProperty(t.type)&&("function"==typeof l[t.type]&&l[t.type].apply($(t.target),[t]),l[t.type].hasOwnProperty(a)&&l[t.type][a].apply($(t.target),[a,t])))}}}()})}); Pass._define("canshare_accounts",function(){var ns=Pass,canshare_accounts={data:{},bduss:[],getnetwork:!1,num:0,submitData:[],netstrvalue:"",newCanshare:"",module:"canshare_accounts",initialized:!1,defaultPortrait:"",rsa:"B3C61EBBA4659C4CE3639287EE871F1F48F7930EA977991C7AFE3CC442FEA49643212E7D570C853F368065CC57A2014666DA8AE7D493FD47D171C0D894EEE3ED7F99F6798B7FFD7B5873227038AD23E3197631A8CB642213B9F27D4901AB0D92BFA27542AE890855396ED92775255C977F5C302F1E7ED4B1E369C12CB6B1822F"};return ns.client=ns.client||{},canshare_accounts=$.extend(canshare_accounts,{lang:{"zh-cn":{title:"快速登录",words:"登录",networkNoText:"网络连接失败，请检查您的网络设置并稍后再试。",btn:"用其它帐号登录",promap:{BaiduBoxApp:"百度App",Zhidao:"百度知道",netdisk:"百度网盘",Waimai:"百度外卖",BaiduVideo:"百度视频",smartnews:"百度新闻",translate:"百度翻译",mybox:"百度网盘"},baiduOtherApp:"百度其他产品",sms_login:"短信验证登录",fastReg:"快速注册",login:"百度帐号登录",face_login:"刷脸登录",fastLogin:"快速登录",welcome:"欢迎登录百度帐号"},en:{title:"Login",words:"Login",networkNoText:"Network error",btn:"Other Account",promap:{BaiduBoxApp:"Baidu App",Zhidao:"Baidu Know",netdisk:"Baidu Cloud",Waimai:"Baidu Takeaway",BaiduVideo:"Baidu Video",smartnews:"Baidu News",translate:"Baidu Trans",mybox:"Baidu Cloud"},baiduOtherApp:"Other App",sms_login:"SMS Login",fastReg:"Sign Up",login:"Login with account and password",face_login:"Face Login",fastLogin:"Login",welcome:"Welcome to login baidu account"}}[window.publicData.lang||"zh-cn"],getElement:function(a){return document.getElementById(this.module+"-"+a)},_getIrregularField:function(a){var e=this,t={normalLogin:'<div class="normal-login tcenter"><input type="button" class="normandy-other-login" value="'+e.lang.btn+'"'+("3"===publicData.loginInitType?"":' data-role="'+e.loginType+'"')+' id="'+this.module+'-login" /></div>'};return t[a]},_getTemplate:function(){var a=this,e=new Pass.ui.temp({module:a.module}),t='<article class="wrapper" id="'+this.module+'">';return"apps"!=publicData.adapter&&1!=publicData.adapter&&3!=publicData.adapter&&(t+=e._getHeaderField({title:a.lang.title,nextRole:a.loginType,goBack:!0})),t+='<div class="normandy-img-div clearfix"><div class="normandy-img-logo" id="loginLogo"></div><div class="normandy-img-title"></div><div class="normandy-img-ailogo"></div></div><div class="normandy-title-div"><div class="normandy-title-content">'+a.lang.welcome+"</div></div>",t+='<p class="normandy-canshare-title">请选择一个帐号，完成互通登录</p>',t+='<div class="normandy-mod-content mod-content-code '+e.getId("contentWrapper")+'" id="'+e.getId("contentWrapper")+'">',t+='<div class="loading loading-img"></div>',t+=a._getIrregularField("normalLogin"),t+=e._getErrorField(),t+="</div>",t+="</article>"},render:function(a,e,t){var n=this,i=publicData.loginInitType;if(n.loginType="login",publicData.share_version&&"2"===publicData.share_version&&"android"===publicData.client&&(n.newCanshare=!0),n.loginType="1"===i?"sms_login":"2"===i&&"android"===publicData.client?"fastReg":"4"===i&&"1"===publicData.liveAbility?"face_login":"login",ns&&ns.traceID&&ns.traceID.startFlow&&ns.traceID.startFlow("wapLogin"),n.initialized)Pass.switchView(n.module);else{var s=n._getTemplate();"[object string]"==Object.prototype.toString.call(a).toLowerCase()?$("#"+a).append(s):a.append(s),this.initialized=!0,Pass.switchView(n.module,"init"),t&&t(),n.setEvent(),n.newCanshare?n.getNewCanshareData():n.getData()}},setEvent:function(){var a=this;$("[data-role]",$("#"+a.module)).each(function(){ns.view.cutPage($(this))}),$(a.getElement("login")).on("click",function(){"3"===publicData.loginInitType&&ns.client.customLogin(),ns.logAll&&ns.logAll.logBfb&&ns.logAll.logBfb({en:"appsapi-"+a.module+"_login"}),ns.client.ischeckNativeMethod("action_share_click_other",function(){if("ios"===publicData.client)ns.client.deviceClass("action_share_click_other",{},function(){},function(){},"iframe");else{prompt('{action: {name: "action_share_click_other", params: ["'+(a.newCanshare?"v2":"v1")+'"]}}')}},function(){})}),ns.view.touch($(a.getElement("login")),"pass-button-sub-active")},getData:function(){var me=this;if("android"==publicData.client){for(var str=ns.client.deviceClass("config_canshare_accounts"),realStr=eval("("+str.toLocaleString()+")"),strvalue="",i=0;i<realStr.length;i++)strvalue+=realStr[i].bduss+"|";strvalue=strvalue.substring(0,strvalue.length-1),me.netstrvalue=strvalue,me._draw(realStr)}else"ios"==publicData.client&&ns.client.deviceClass("getAccountsInfo",{},function(id,params){for(var ret=eval("("+params.result+")"),strvalue="",retCopy=ret,i=0;i<ret.length;i++)strvalue+=ret[i].bduss+"|";strvalue=strvalue.substring(0,strvalue.length-1),me.netstrvalue=strvalue,me._draw(ret)})},getNewCanshareData:function(){var me=this;if("android"===publicData.client){for(var str=ns.client.deviceClass("config_canshare_version2_accounts"),realStr=eval("("+str.toLocaleString()+")"),strvalue="",i=0;i<realStr.length;i++)strvalue+=realStr[i].bduss+"|";strvalue=strvalue.substring(0,strvalue.length-1),me.netstrvalue=strvalue,me._draw(realStr)}},_draw:function(a){var e=this,t='<ul class="canshare-account-list clearfix">',n=$(e.getElement("contentWrapper")),i=e.lang.promap;e.num=0,e.submitData=[];var s=(window.screen.height,window.innerHeight);if(a.length>0&&"[object Array]"==Object.prototype.toString.call(a)){for(var o=0,r=a.length;r>o;o++){var l=e.lang.baiduOtherApp;if(e.num>=3||e.num>=2&&500>s)break;if(""!=a[o].displayname&&""!=a[o].bduss){var c=a[o].app;i[c]&&void 0!=i[c]?l=i[c]:""!=c&&void 0!=c&&(l=c),t+='<li id="purse-li-'+a[o].uid+'" data-role="2" data-pkg="'+a[o].pkg+'"><span class="user-avatar">'+(e.newCanshare?'<img data-src="'+a[o].url+'" class="newCanPortrait">':"<img/>")+'</span><span><span class="canshare-account-displayname">'+a[o].displayname+'</span><span class="canshare-account-tip"><img data-role="purse-icon" id="purse-icon-'+a[o].uid+'"  src="" width="40" height="12"/></span><span class="user-text">通过'+l+'关联</span></span><span class="ajax-loading loading-img"></span><span class="pass-user-userlist"></span></li>',e.bduss.push(a[o].bduss?a[o].bduss:""),e.num++,e.submitData.push(a[o])}}if(0==e.num){3!=publicData.loginInitType&&(ns.client.deviceTitle(e.lang[e.loginType]),Pass._getScript(e.loginType,function(a){a.render("pageWrapper")}))}else t+="</ul>",$(".loading",n).remove(),$(".normal-login",n).before(t),("android"!==publicData.client||publicData.canshareAi===!0)&&e.getImg(),e.newCanshare?this.bindNewCanshare():this._bind()}},getCardImg:function(){var a=this;$.ajax({url:apiDomain+"/v3/login/api/getcardinfo/?v="+(new Date).getTime(),type:"POST",data:{data:a.netstrvalue},dataType:"json",error:function(){},success:function(a){if(-1==a.result);else for(var e=a.has_card_info.length,t=0;e>t;t++)$("#purse-li-"+a.has_card_info[t].uid).attr("data-role",a.has_card_info[t].hascard)}})},getImg:function(){var a=this;a.getnetwork!==!0&&0!=a.num&&(a.newCanshare?(a.getnetwork=!0,a.reSetImgNewCanshareSrc()):$.post(apiDomain+"/wp/api/ucenter/portrait/get?v="+(new Date).getTime(),{tpl:publicData.tpl,data:a.bduss},function(e){a.getnetwork=!0,a.reSetImgSrc(e.data.portrait),a.getCardImg()},"json"))},reSetImgNewCanshareSrc:function(){var a=this,e="https://gss0.bdstatic.com/6bMWfDe8BsgCpNKfpU_Y_D3/static/appsapi/img/default_portrait.jpg";a.getImg(),$(".canshare-account-list li").length>0&&$("img.newCanPortrait").each(function(){var a=$(this).attr("data-src")||e,t=a.indexOf("?")>0?"&":"?";$(this).attr("src",a+t+"v="+(new Date).getTime())})},reSetImgSrc:function(a){var e=this;if(e.getImg(),$(".canshare-account-list li").length>0){var t=0;$(".canshare-account-list img").each(function(){var e=a[t]?a[t]:$(this).attr("src"),n=e.indexOf("?")>0?"&":"?";"purse-icon"!==$(this).attr("data-role")&&(t++,$(this).attr("src",e+n+"v="+(new Date).getTime()))})}},bindNewCanshare:function(){var a=this,e=$(".canshare-account-list li");$(".canshare-account-list").off("tap").off("touchstart"),ns.view.tap($(".canshare-account-list"),a.bindNewCansharecallback),ns.view.touch(e,"canshare-account-active")},bindNewCansharecallback:function(a){var e=Pass._modulePool.canshare_accounts,t=$(a.target).closest("li"),n=t.index(),i=e.submitData[n];t&&(ns.logAll&&ns.logAll.logBfb&&ns.logAll.logBfb({en:"appsapi-"+e.module+"_newcanshare_submit"}),"android"===publicData.client&&($(".ajax-loading",t).css("display","block"),$(".canshare-account-list").off("tap").off("touchstart"),ns.client.ischeckNativeMethod("sapi_share_account_click",function(){{var a={pkg:i.pkg,url:i.url};prompt('{action: {name: "sapi_share_account_click", params: ['+JSON.stringify(a)+"]}}")}},function(){ns.infoAnimate(e.module,e.lang.networkNoText),$(".ajax-loading",t).css("display","none"),ns.view.tap($(".canshare-account-list"),e.bindNewCansharecallback)})))},webViewWillAppear:function(){var a=this;a.initialized===!0&&a.newCanshare&&($(".ajax-loading").css("display","none"),$(".canshare-account-list").off("tap").off("touchstart"),ns.view.tap($(".canshare-account-list"),a.bindNewCansharecallback))},_bind:function(){var a=this,e=$(".canshare-account-list li"),t=function(e){var n=$(e.target).closest("li"),i=n.index(),s=a.submitData[i];if(n){ns.logAll&&ns.logAll.logBfb&&ns.logAll.logBfb({en:"appsapi-"+a.module+"_submit"});var o=n.attr("data-role"),r=0;a.num>1&&(r=1),$(".ajax-loading",n).css("display","block"),$(".canshare-account-list").off("tap").off("touchstart"),ns.removeInfoAnimate(a.module);var l=(new Date).getTime(),c=s.uid,u=s.uid;if(c)try{setMaxDigits(131);var d=new RSAKeyPair("10001","",a.rsa);c=encryptedString(d,c)}catch(p){}$.post(apiDomain+"/wp/checkuser?v="+(new Date).getTime(),{bduss:s.bduss,uid:c||"",tpl:publicData.tpl||"",client:publicData.client||"",cardflag:o,passAppHash:publicData.passAppHash||"",passAppVersion:publicData.passAppVersion||"",cardNum:r},function(e){(new Date).getTime()-l;if(ns.logAll&&ns.logAll.logBfb&&ns.logAll.logBfb({en:"appsapi-"+a.module+"_request"}),0==e.errInfo.no)if("android"==publicData.client){var o="<client><page>login</page><data><actiontype>choice_share</actiontype><errno>0</errno><errmsg></errmsg><res>";if(s.uname=e.data.uname,s.displayname=e.data.displayname,e.data.incomplete_user&&""!=e.data.incomplete_user&&(s.incomplete_user=e.data.incomplete_user),$.each(s,function(a,e){o+="<"+a+">"+e+"</"+a+">"}),o+="</res></data></client>",window.sapi_obj&&window.sapi_obj.authorized_response)window.sapi_obj.authorized_response(o);else{var r="{action:{name:'authorized_response',params:['"+o+"']}}";prompt(r,"authorized_response_str")}}else"ios"==publicData.client&&(e.data.incomplete_user&&""!=e.data.incomplete_user&&(s.incomplete_user=e.data.incomplete_user),ns.client.deviceClass("loginWithExistedAccount",s));else 220003==e.errInfo.no?(ns.infoAnimate(e.errInfo.msg),"android"==publicData.client&&window.sapi_obj&&window.sapi_obj.action_remove_share_account?(n.remove(),a.submitData.splice(i,1),window.sapi_obj.action_remove_share_account(u)):"android"==publicData.client?(n.remove(),a.submitData.splice(i,1),prompt("{action:{name:'action_remove_share_account', params:['"+u+"']}}")):"ios"==publicData.client&&(n.remove(),a.submitData.splice(i,1),ns.client.deviceClass("action_remove_share_account",{uid:u}))):(ns.client.deviceTitle("快速登录"),Pass._getScript("authPwd",function(a){a.render("pageWrapper",s)}));$(".ajax-loading",n).css("display","none"),ns.view.tap($(".canshare-account-list"),t),clearTimeout(a.submitTimer)},"json"),a.submitTimer=setTimeout(function(){$(".ajax-loading",n).css("display","none"),ns.view.tap($(".canshare-account-list"),t),ns.infoAnimate(a.module,a.lang.networkNoText)},15e3),e.preventDefault(),ns.client.ischeckNativeMethod("action_share_v1_account_click",function(){if("ios"===publicData.client)ns.client.deviceClass("action_share_v1_account_click",{uid:s.uid},function(){},function(){},"iframe");else{prompt('{action: {name: "action_share_v1_account_click", params: ["'+s.uid+'"]}}')}},function(){})}};ns.view.tap($(".canshare-account-list"),t),ns.view.touch(e,"canshare-account-active")}})}); Pass._define("sms_login",function(){var e,t,o=Pass,n={error:{field:""},module:"sms_login",data:{code:"+86",countrycode:""},smsLoginVcode:"",smsLoginHistory:"",history:!1,getRerocdListDone:!1},l=!1,a=!1,i=function(e,t){o.logAll&&o.logAll.logBfb&&(o.logAll.logBfb({en:"appsapi-"+e.module+t+(void 0===e.history?"":e.history?"_history":"_noHistory")}),o.logAll.logBfb({en:"appsapi-"+e.module+t}))};return n=$.extend(n,Pass.validator),n=$.extend(n,{lang:{"zh-cn":{title:"短信验证登录",words:"注册",mobilenum:"手机号码",mobilenumError:"手机号",more:"更多",loginText:"帐号名密码登录",otherLoginText:"登录其他帐号",overseasPhoneNumber:"手机号",welcome:"欢迎登录百度帐号",mobilenumPlaceholder:"请输入手机号码",overseasMobilenumPlaceholder:"请输入手机号码",phoneformatSmsError:"您输入的手机号格式有误，请重新输入",submitText:"获取短信验证码",loading:"请等待...",smsDialogVerifyCodeErr:"验证码为空",networkNoText:"网络连接失败，请检查您的网络设置并稍后再试。",code:"+86",readAndAccept:"我已阅读并同意",agreement:"百度用户协议",cancel:"取消",otherLogin:"其他登录方式",fastLogin:"第三方帐号登录",fastReg:"快速注册",bindTip:"您的手机号尚未注册，点击注册将为您注册百度帐号，您可通过手机号和短信验证码登录",notReg:"该手机号尚未注册，无法登录",reg:"快速注册"},en:{title:"SMS Login",words:"Sign Up",mobilenum:"Phone",mobilenumError:"Phone",more:"More",loginText:"The account password to log in",otherLoginText:"Log on to the other account",overseasPhoneNumber:"Overseas phone number",welcome:"Welcome to login baidu account",mobilenumPlaceholder:"Phone",overseasMobilenumPlaceholder:"Enter mobile phone number",phoneformatSmsError:"Incorrect phone format",submitText:"Next",loading:"Waiting",smsDialogVerifyCodeErr:"Code is empty",networkNoText:"Network error",code:"+86",readAndAccept:"I agree to",agreement:"Baidu Service Agreement",cancel:"Cancel",otherLogin:"Other",fastLogin:"Other Account",fastReg:"Sign Up",bindTip:"Phone number is not registered, Automatically register Baidu account and bind to the cell phone number.",notReg:"Phone number is not registered,so can not login",reg:"Sign Up"}}[window.publicData.lang||"zh-cn"],getElement:function(e){return document.getElementById(this.module+"-"+e)},getIrregularField:function(e){var t,o=this;return t={regAgreement:'<p class="f14 gray normandy-agree">'+o.lang.readAndAccept+'<a data-role="agreement" class="agree-link">&nbsp;'+o.lang.agreement+"</a></p>",otherLayer:'<div id="fastlogin-layer-sms_login" class="fastlogin-layer-login"></div>',more:'<span id="'+o.module+'-more" class="left normandy-bottom-more">'+o.lang.more+"</span>",moreHistory:'<span id="'+o.module+'-more-history" class="normandy-bottom-more">'+o.lang.more+"</span>",usernameLogin:'<span id="'+o.module+'-login" class="left" >'+o.lang.loginText+"</span>",otherLogin:'<span id="'+o.module+'-otherLogin">'+o.lang.otherLoginText+"</span>",moreContent:'<footer id="'+o.module+'-layer" class="layer-account"><a href="javascript:void(0);" id="'+o.module+'-facelogin" class="normandy-more-face">刷脸登录</a><a href="javascript:void(0);" id="loginlink" class="normandy-more-login">帐号名密码登录</a><a href="javascript:void(0);" class="normandy-more-reg">注册帐号</a><a href="javascript:void(0);" class="normandy-more-qa">登录遇到问题</a><a href="javascript:void(0);" class="normandy-more-qa-cancle">取消</a></footer>',setBottomLink:'<div class="set-bottom-link">登录后去【我的】-【活动中心】参与领取</div>'},t[e]},getTemplate:function(){var e=this,t=window.Pass.ui.temp,n=new t({module:e.module}),l='<article class="wrapper" id="'+this.module+'">',a=publicData,i={sms:1},s=[];a.agreement=1,a.vcodesign="",a.vcodestr="",a.dialogVerifyCode="",a.gid=o.guideRandom||"",s.push({field:"mobilenum",title:"1"===publicData.overseas?e.lang.overseasPhoneNumber:e.lang.mobilenumError,placeholder:"1"===publicData.overseas?e.lang.overseasMobilenumPlaceholder:e.lang.mobilenumPlaceholder,type:"tel",code:"1"===publicData.overseas}),l+='<div id="sms_login-div" class="flexdiv">',"apps"!==publicData.adapter&&1!==+publicData.adapter&&3!==+publicData.adapter&&(l+=n._getHeaderField({title:e.lang.title,goBack:!0})),l+='<div class="normandy-img-div clearfix"><div class="normandy-img-logo" id="loginLogo"></div><div class="normandy-img-title"></div><div class="normandy-img-ailogo"></div></div><div class="normandy-title-div"><div class="normandy-title-content">'+e.lang.welcome+"</div></div>",l+='<div class="normandy-mod-content" id="'+n.getId("contentWrapper")+'">',l+='<form autocomplete="off" id="'+n.getId("formWrapper")+'" method="POST" class="pass-form-wrapper m-t25 clearfix pass-form-verify-wrapper">';for(var r=0;r<s.length;r++)l+=n._getRegularFieldNormandy(s[r]);return l+=n._getErrorField(),l+='<div class="normandy-bottom-link clearfix" id="sms_login-blink">',publicData.hideExtraEntry+""!="1"&&(l+=e.getIrregularField("usernameLogin"),l+='<span class="left normandy-spilit-line">|</span>',l+=e.getIrregularField("more")),l+="</div>",l+=n._getSubmitField({value:e.lang.submitText}),l+=n._getHiddenField(a),l+=n._getHiddenField(i),l+="</form>",l+=n._getLoadingField({module:e.module,html:e.lang.loading}),l+="</div>",l+='<div class="register-content" id="'+e.module+'-registerWrapper">'+e.getIrregularField("moreContent")+'<div class="p-b20">'+e.getIrregularField("otherLayer")+e.getIrregularField("regAgreement")+"</div></div>",l+="</div>",l+="</article>"},getRerocdList:function(){var e=this,t=apiDomain+"/wp/api/login/history?type=sms&item=&token="+publicData.token+"&clientfrom="+publicData.clientfrom+"&tpl="+publicData.tpl+"&gid="+(o.guideRandom||"")+"&tt="+(new Date).getTime();e.getRerocdListDone||$.ajax({url:t,data:{},type:"GET",dataType:"json",success:function(t){if(t.data.historyInfo.length>0&&e.getRerocdListDone===!1){e.getRerocdListDone=!0,$("#loginlink").css("display","block");var n={me:e,data:t.data,initHandler:function(){var e=this;e.setHandler(t.data.historyInfo[0].input)},domHandler:function(){var t=this;$("#"+e.module).addClass("history_smslogin"),$(".pass-normandy-item-mobilenum, .pass-normandy-sep-mobilenum, #sms_login-blink").hide();var n="";n+='<div style="clear: both;"></div>',n+='<div class="normandy-bottom-link tcenter" id="sms_login-blink-history">',n+=e.getIrregularField("otherLogin"),n+='<span class="normandy-spilit-line">|</span>',n+=e.getIrregularField("moreHistory"),n+="</div>",$("#"+e.module+" .pass-form-item-submit").after(n),$(e.getElement("contentWrapper")).on("touchend","#sms_login-otherLogin",function(n){n.preventDefault(),$("#"+e.module+" .normandy-history-con").remove(),t.removeHandler(),$("#sms_login-blink").show(),$("#loginlink").css("display","none"),$("#sms_login-blink-history").hide(),o.logAll&&o.logAll.logBfb&&o.logAll.logBfb({en:"appsapi-"+e.module+"_otherLogin_click"}),e.smsLoginHistory="",e.history=!1})},removeHandler:function(){$("#"+e.module).removeClass("history_smslogin"),$(".pass-normandy-item-mobilenum, .pass-normandy-sep-mobilenum").fadeIn(),$(e.getElement("mobilenum")).val(""),$(e.getElement("submit")).addClass("pass-button-full-disabled"),$("#sms_login-blink").show(),$("#loginlink").css("display","none"),$("#sms_login-blink-history").hide()},setHandler:function(t){$(e.getElement("mobilenum")).val(t),o.view.setSubmitStyle(e,0)}};e.smsLoginHistory=new o.ui.history(n),e.history=!0,o.logAll&&o.logAll.logBfb&&o.logAll.logBfb({en:"appsapi-"+e.module+"_loginHistory_show"}),o.view.bottomCal(e)}else o.logAll&&o.logAll.logBfb&&o.logAll.logBfb({en:"appsapi-"+e.module+"_loginNoHistory_show"})},error:function(){o.logAll&&o.logAll.logBfb&&o.logAll.logBfb({en:"appsapi-"+e.module+"_loginNoHistory_show"})}})},render:function(e,t){var n=this;if(t&&t.code&&($("#sms_login .normandy-text-label-code").html(t.code),n.data.code=t.code,n.data.countrycode=t.countrycode),n.error.field="",n.initialized)Pass.switchView(n.module);else{n.initialized=!0;var i=n.getTemplate();if("[object string]"===Object.prototype.toString.call(e).toLowerCase()?$("#"+e).append(i):e.append(i),Pass.switchView(n.module,"init"),publicData.reMobile){l=!0;var s=decodeURIComponent(publicData.reMobile);$(n.getElement("mobilenum")).val(s),$("#"+n.module+" .pass-normandy-title").show(),o.view.setSubmitStyle(n,0)}l||n.getPhone(),window.Pass.sms_login=n,n.setEvent(),l||a||n.getRerocdList(),o.view.bottomCal(n)}if(""!==$.fn.getQueryString("setTitleTxt")&&(document.title=decodeURIComponent($.fn.getQueryString("setTitleTxt"))),o&&o.traceID&&o.traceID.startFlow&&o.traceID.startFlow("wapLogin"),n.setValidator(),t&&t.mobileNum){var r=o.view._substrMobile(t.mobileNum);$(n.getElement("mobilenum")).val(r),$(".pass-normandy-title",$(".pass-normandy-item-mobilenum")).show(),o.view.setSubmitStyle(n,0)}publicData.smsfastlogin&&o.fastLogin.init(n.module),o.view.inputBlur()},getPhone:function(){function e(e){if($(t.getElement("mobilenum")).val(e?o.view._substrMobile(e):""),e){a=!0;var n=$(".pass-normandy-item-mobilenum");$(".pass-normandy-title",n).show(),$(".pass-normandy-label",n).hide(),o.view.setSubmitStyle(t,0)}}var t=this;if("android"===publicData.client){var n=o.client.deviceClass("get_preset_phone_number");e(n)}else"ios"===publicData.client&&o.client.deviceClass("get_preset_phone_number",{},function(t,o){o=o||{};var n=o.result;e(n)},function(){},"iframe")},setEvent:function(){var e=this;$("[data-role]",$("#"+e.module)).each(function(){o.view.cutPage($(this))});var t=function(t){e.eventHandler.entrance.apply(e,[t])};$(".pass-text-input",e.getElement("formWrapper")).on({focus:t,blur:t,keyup:t}),o.view._setMaxLength($(e.getElement("mobilenum")),11,2),$(".pass-input-clearValue",e.getElement("formWrapper")).each(function(t,n){n=$(this),o.view.clearInputValueBtn(n.prev(),n,e.getElement("submit"))}),$(e.getElement("formWrapper")).on("submit",t),o.view._mobilenumFormat(e,"mobilenum",function(){"+86"===e.data.code&&$(e.getElement("mobilenum")).val().replace(/\s/g,"").length>=11||"+86"!==e.data.code&&$(e.getElement("mobilenum")).val().replace(/\s/g,"").length>=1?o.view.setSubmitStyle(e,0):-1===e.getElement("submit").className.indexOf("pass-button-full-disabled")&&$(e.getElement("submit")).addClass("pass-button-full-disabled")}),$("#sms_login .normandy-more-reg").on("touchend",function(t){t.preventDefault(),o.logAll&&o.logAll.logBfb&&o.logAll.logBfb({en:"appsapi-"+e.module+"_reg_link"}),1===+publicData.fastRegLink&&"android"===publicData.client?window.sapi_obj&&window.sapi_obj.action_fast_reg?window.sapi_obj.action_fast_reg():"android"===publicData.client?prompt('{action:{name:"action_fast_reg"}}'):"ios"===publicData.client&&this.deviceClass("action_fast_reg"):(o._getScript("reg",function(t){t.render("pageWrapper",e.module)}),$(e.getElement("layer")).css("display","none"),$(e.getElement("layer")).removeClass("layermenu-out"),$(e.getElement("loadingMask")).hide())}),$(e.getElement("login")).on("touchend",function(t){t.preventDefault(),o.logAll&&o.logAll.logBfb&&o.logAll.logBfb({en:"appsapi-"+e.module+"_usernameLogin"});var n={},l=$(e.getElement("mobilenum")).val(),a=o.view._strTrim(l),i=/^[1][3,4,5,7,8][0-9]{9}$/;return n.from="sms_login",!e.getRerocdListDone&&i.test(a)&&(n.mobileNum=a),o._getScript("login",function(e){e.render("pageWrapper",n)}),!1}),$("#loginlink").on("touchend",function(t){t.preventDefault(),o.logAll&&o.logAll.logBfb&&o.logAll.logBfb({en:"appsapi-"+e.module+"_usernameLogin"}),$(e.getElement("layer")).hasClass("layermenu-out")&&($(e.getElement("layer")).removeClass("layermenu-out"),setTimeout(function(){$(e.getElement("layer")).css("display","none")},300),$(e.getElement("loadingMask")).hide()),o._getScript("login",function(e){e.render("pageWrapper")})}),$(e.getElement("contentWrapper")).on("touchend","#sms_login-more, #sms_login-more-history",function(t){t.preventDefault(),$(e.getElement("layer")).css("display","block"),setTimeout(function(){$(e.getElement("layer")).addClass("layermenu-out")},0),$(e.getElement("loadingMask")).show(),i(e,"_more_click")}),$("#sms_login-loadingMask, .normandy-more-qa-cancle").on("touchend",function(t){t.preventDefault(),$(e.getElement("layer")).hasClass("layermenu-out")&&($(e.getElement("layer")).removeClass("layermenu-out"),setTimeout(function(){$(e.getElement("layer")).css("display","none")},300),$(e.getElement("loadingMask")).hide())}),o.view.fullButton($(e.getElement("submit"))),o.view.tap($(".normandy-more-qa"),function(t){t.preventDefault(),$("input").blur(),o.logAll&&o.logAll.logBfb&&o.logAll.logBfb({en:"appsapi-"+e.module+"_question_link_click"}),Pass._getScript("question",function(e){var t={type:"question"};e.render("pageWrapper",t)}),$(e.getElement("layer")).css("display","none"),$(e.getElement("layer")).removeClass("layermenu-out"),$(e.getElement("loadingMask")).hide()}),$("#sms_login .normandy-text-label-code").on("touchend",function(t){t.preventDefault(),$("input").blur();var o={};o.module=e.module,Pass._getScript("codelist",function(e){e.render("pageWrapper",o)})})},setValidator:function(){var e=this;"+86"!==e.data.code?(e.validateRules={mobilenum:{rules:["required","numformat"],desc:e.lang.mobilenumError}},e._validator.addRule("numformat",function(){var t=o.view._strTrim(e.getElement("mobilenum").value);return/^\d+$/.test(t)}),e._validator.addMsg("phoneformatSms",e.lang.phoneformatSmsError)):(e.validateRules={mobilenum:{rules:["required","phoneformatSms"],desc:e.lang.mobilenumError}},e._validator.addRule("phoneformatSms",function(){var t=o.view._strTrim(e.getElement("mobilenum").value);return/^1[3456789]\d{9}$/.test(t)}),e._validator.addMsg("phoneformatSms",e.lang.phoneformatSmsError)),e._validator.init(e,e.validateRules)},_validateError:function(e){var t=this;o.infoAnimate(t.module,e.msg),$(t.getElement("submit")).addClass("pass-button-full-disabled"),e.field?(t.error.field=e.field,$(e.field).parents("p.pass-form-item").addClass("pass-form-item-error")):t.error.field=""},_validateSuccess:function(e){var t=this;e.msg?o.infoAnimate(t.module,e.msg):e.field===t.error.field&&(o.removeInfoAnimate(t.module),t.error.field="")},showUpRegDialog:function(){var e=this;if(t)t.show();else{var n='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><div><p>您的手机号尚未注册</p><p>当前该手机号仅支持短信快速注册</p><p>编辑短信6-14位字符（支持数字/字母/符号）作为登录密码，发送至<span class="pass-dialog-orangecolor">10690691036590</span>注册成功后，手机号即为您的登录用户名。</p></div></div><div class="dialog-content-btn tcenter"><input type="button" value="更换手机号" class="pass-button-auto pass-dialog-btnleft" id="sms_upRegDialogCancelBtn"><input type="button" value="去发送" class="pass-button-auto pass-dialog-btnright" id="sms_upRegDialogOkBtn"></div>';t=new Pass.ui.dialog({width:"90%",mask:!0,content:n}),$("#sms_upRegDialogCancelBtn").live("click",function(){t.hide(),$(e.getElement("mobilenum")).focus().val(""),o.logAll&&o.logAll.logBfb&&o.logAll.logBfb({en:"appsapi-"+e.module+"_upreg_cancel"}),e.getElement("vcodesign").value="",e.getElement("vcodestr").value=""}),$("#sms_upRegDialogOkBtn").live("click",function(){t.hide(),o.logAll&&o.logAll.logBfb&&o.logAll.logBfb({en:"appsapi-"+e.module+"_upreg"}),e.getElement("vcodesign").value="",e.getElement("vcodestr").value="",location.href="sms:10690691036590"})}},eventHandler:function(){var t=this,n={focus:function(e){var n=$(".pass-normandy-sep-"+e);o.view._setFocusStyle(t,e);var l=$(".pass-normandy-item-"+e);$(".pass-normandy-title",l).show(),$(".pass-normandy-label",l).hide(),$(".pass-normandy-item-sep-blur").length>0?setTimeout(function(){n.addClass("pass-normandy-item-sep-focus")},300):n.addClass("pass-normandy-item-sep-focus"),"mobilenum"===e&&i(t,"_mobilenum_input")},blur:function(e){var n=$(".pass-normandy-item-"+e),l=$(".pass-text-input",n).val(),a=$(".pass-normandy-sep-"+e);l||($(".pass-normandy-title",n).hide(),$(".pass-normandy-label",n).show()),a.removeClass("pass-normandy-item-sep-focus").addClass("pass-normandy-item-sep-blur"),setTimeout(function(){a.removeClass("pass-normandy-item-sep-blur")},300),o.view._setBlurStyle(t,e)}},l={blur:{mobilenum:function(e){var n=t.getElement(e).value;""!==n&&(t.getElement(e).value=o.view._substrMobile(n),o.view.setSubmitStyle(t,0))}},keyup:{mobilenum:function(){t.isInsertMobileNum||(i(t,"_mobilenum_input"),t.isInsertMobileNum=!0)}},submit:function(n){var l=t.getElement("submit"),a=$(".pass-normandy-item-mobilenum").is(":hidden");n.preventDefault(),l.disabled||t.validateAll({success:function(){function n(){l.disabled=!0,$(t.getElement("loadingMask")).show(),$(t.getElement("loading")).show();var e=$("#dv_Input").val()||window.LG_DV_ARG&&window.LG_DV_ARG.dvjsInput||"",a={username:o.view._strTrim(t.getElement("mobilenum").value),tpl:publicData.tpl,clientfrom:publicData.clientfrom,countrycode:t.data.countrycode,gid:o.guideRandom||"",dialogVerifyCode:t.getElement("dialogVerifyCode").value,vcodesign:t.getElement("vcodesign").value,vcodestr:t.getElement("vcodestr").value,dv:e};$.post(apiDomain+"/wp/api/login/sms?v="+(new Date).getTime(),a,function(e){if(o.logAll&&o.logAll.logBfb&&o.logAll.logBfb({en:"appsapi-"+t.module+"_request",urlObj:{errno:e.errInfo.no,loginHistory:t.history?"history":"noHistory"}}),t.getElement("vcodesign").value="",t.getElement("vcodestr").value="",0===+e.errInfo.no){e.data.username=a.username,e.data.code=t.data.code,e.data.smsLoginHistory=t.smsLoginHistory;var s=t.getElement("submit");s.className.indexOf("pass-button-full-disabled")>-1&&$(t.getElement("submit")).removeClass("pass-button-full-disabled"),e.data.datafrom="sms",o._getScript("sms_verify",function(o){$(t.getElement("loadingMask")).hide(),$(t.getElement("loading")).hide(),o.render("pageWrapper",e.data)})}else if(50020===+e.errInfo.no||50021===+e.errInfo.no){$(t.getElement("loadingMask")).hide(),$(t.getElement("loading")).hide();var r=e.data.vcodestr;e.data.verifyCodeData={mask:!0,vcodestr:r,from_module:"sms_login",history:!!t.smsLoginHistory,verifySuccessFn:function(o){t.getElement("dialogVerifyCode").value=o||"",t.getElement("vcodesign").value=e.data.vcodesign,t.getElement("vcodestr").value=r,n(),t.smsLoginVcode.remove()}};var m=o.ui.vcode;t.smsLoginVcode=new m(e.data.verifyCodeData),i(t,"_verify")}else"400603"===e.errInfo.no?($(t.getElement("loadingMask")).hide(),$(t.getElement("loading")).hide(),t.showUpRegDialog()):($(t.getElement("loadingMask")).hide(),$(t.getElement("loading")).hide(),t._validateError({msg:e.errInfo.msg}));l.disabled=!1,clearTimeout(t.submitTimer)},"json"),t.submitTimer=setTimeout(function(){l.disabled=!1,$(t.getElement("loadingMask")).hide(),$(t.getElement("loading")).hide(),t._validateError({msg:t.lang.networkNoText})},15e3)}i(t,"_submit"),$("input").blur(),t.getElement("submit").blur();var a=$(t.getElement("formWrapper")).formJson();a.username=o.view._strTrim(a.mobilenum),a.countrycode=t.data.countrycode,o.removeInfoAnimate(t.module),$.ajax({url:apiDomain+"/wp/api/security/getphonestatus?v="+(new Date).getTime(),data:a,type:"POST",dataType:"json",success:function(l){if(o.logAll&&o.logAll.logBfb&&o.logAll.logBfb({en:"appsapi-"+t.module+"_phonestatus_request"}),"0"===l.errInfo.no)n();else if("3"===l.errInfo.no)if(1===+publicData.regdomestic&&""!==t.data.countrycode)t._validateError({msg:t.lang.notReg});else if(i(t,"_reg_dialog_show"),e)e.show();else{var a='<div class="page-dialog-content"><p class="page-dialog-title">提示</p><p>'+t.lang.bindTip+'</p></div><div class="dialog-content-btn tcenter"><input type="button" value="'+t.lang.cancel+'" class="pass-button-auto pass-dialog-btnleft" id="smsreg-cancel-btn"><input type="button" value="'+t.lang.reg+'" class="pass-button-auto pass-dialog-btnright" id="smsreg-ok-btn"></div>';e=new Pass.ui.dialog({width:"90%",mask:!0,content:a}),$("#smsreg-cancel-btn").live("click",function(){e.hide(),i(t,"_reg_cancel")}),$("#smsreg-ok-btn").live("click",function(){e.hide(),i(t,"_reg"),""!==t.data.countrycode?o._getScript("reg",function(e){e.render("pageWrapper",l.data)}):n()})}else t._validateError({msg:l.errInfo.msg})},error:function(){t._validateError({msg:t.lang.networkNoText})}})}},!0,!a)}};return{entrance:function(e){t=this;var o=e.target.name;if(!o&&e.target.id){var a=e.target.id.match(/sms_login-(.*)$/);a&&(o=a[1])}o&&(n.hasOwnProperty(e.type)&&n[e.type].apply($(e.target),[o,e]),l.hasOwnProperty(e.type)&&("function"==typeof l[e.type]&&l[e.type].apply($(e.target),[e]),l[e.type].hasOwnProperty(o)&&l[e.type][o].apply($(e.target),[o,e])))}}}()})}); Pass._define("fastReg",function(){var e=Pass,t={error:{field:""},module:"fastReg",data:{}};return t=$.extend(t,{lang:{"zh-cn":{title:publicData.fastRegText?decodeURIComponent(publicData.fastRegText):"手机一键注册",loading:"正在处理中...",tipPayMsg:"系统将使用您当前手机号发送一条短信验证您的身份，预计花费0.1元，短信费用将由短信运营商收取",tipTitle:"注册成功后",tipList1:"帐号：即为当前手机号，用于登录和找回密码;",tipList2:"密码：系统自动帮您生成密码，随时可以修改;",readAndAccept:"我已阅读并同意",agreement:"百度用户协议"},en:{title:"Sign Up",loading:"Proccessing",tipPayMsg:"System will send a short message to your current cellphone for verification. Expected charge is 0.1 yuan by telecom provider.",tipTitle:"After successful registration",tipList1:"Account: Your current cellphone number, used to login and retrieve password.",tipList2:"Password: System automatically generates password and can be revised at any time.",readAndAccept:"Agree to",agreement:"Baidu Service Agreement"}}[window.publicData.lang||"zh-cn"],getElement:function(e){return document.getElementById(this.module+"-"+e)},_getIrregularField:function(e){var t=this,i={loading:'<p class="loading loading1">'+t.lang.loading+"</p>",tipPayMsg:'<p class="fast-reg-tippaymsg">'+t.lang.tipPayMsg+"</p>",tipTitle:"<h4>"+t.lang.tipTitle+"</h4>",tipList1:"<li>"+t.lang.tipList1+"</li>",tipList2:"<li>"+t.lang.tipList2+"</li>",regAgreement:'<p class="f14 gray m-t10">'+t.lang.readAndAccept+' <a data-role="agreement">&lt;&lt;'+t.lang.agreement+"&gt;&gt;</a></p>"};return i[e]},_getTemplate:function(){var e=this,t=new Pass.ui.temp({module:e.module}),i='<article class="wrapper" id="'+this.module+'">';return"apps"!=publicData.adapter&&1!=publicData.adapter&&3!=publicData.adapter&&(i+=t._getHeaderField({title:e.lang.title,goBack:!0})),i+='<div class="mod-content" id="'+t.getId("contentWrapper")+'">',i+=e._getIrregularField("loading"),i+='<section class="fast-reg-tip">',i+=e._getIrregularField("tipPayMsg"),i+=e._getIrregularField("tipTitle"),i+="<ul>",i+=e._getIrregularField("tipList1"),i+=e._getIrregularField("tipList2"),i+="</ul></section>",i+=e._getIrregularField("regAgreement"),i+="</article>"},render:function(e){var t=this;if(t.initialized)Pass.switchView(t.module);else{var i=t._getTemplate();"[object string]"==Object.prototype.toString.call(e).toLowerCase()?$("#"+e).append(i):e.append(i),this.initialized=!0,Pass.switchView(t.module),this.setEvent()}},setEvent:function(){var t=this;$("[data-role]",$("#"+t.module)).each(function(){e.view.cutPage($(this))})}})}); Pass._define("face_login",function(){var e=Pass,a={module:"face_login",initialized:!1,getUserInfoHasCall:"0"},i=function(a,i){e.logAll&&e.logAll.logBfb&&e.logAll.logBfb({en:"appsapi-"+a.module+i,urlObj:{livinguname:a.data.livinguname}})};return a=$.extend(a,{lang:{"zh-cn":{title:"刷脸登录",submitText:"刷脸登录",baiduLogin:"其他方式登录",smsLogin:"短信快速登录",baiduLoginNotice:"百度帐号登录",smsLoginNotice:"短信快速登录",loading:"认证中",submitLoading:"登录中...",forgot:"遇到问题",reg:"快速注册",welcome:"欢迎使用刷脸登录",networkError:"网络连接失败，请检查您的网络设置并稍后再试。",readAndAccept:"我已阅读并同意",agreement:"百度用户协议",more:"更多"},en:{title:"Face Login",submitText:"Face Login",baiduLogin:"Login",smsLogin:"SMS Login",baiduLoginNotice:"Login",smsLoginNotice:"SMS Login",loading:"loading",submitLoading:"Login...",forgot:"Can't Login?",reg:"Sign Up",welcome:"Welcome to use brush face to log in",networkError:"Network error",readAndAccept:"I agree to",agreement:"Baidu Service Agreement",more:"More"}}[window.publicData.lang||"zh-cn"],getElement:function(e){return document.getElementById(this.module+"-"+e)},getIrregularField:function(e){var a=this,i={baidLogin:'<span id="'+a.module+'-baidLogin">'+a.lang.baiduLogin+"</span>",smsLogin:'<span id="'+a.module+'-smsLogin">'+a.lang.smsLogin+"</span>",loading:'<div class="biometry-loadingMask"><p class="biometry-loading">'+a.lang.loading+'</p><div class="biometry-loadingImg"></div></div>',more:'<span id="'+a.module+'-more" class="normandy-bottom-more">'+a.lang.more+"</span>",regAgreement:'<p class="f14 gray normandy-agree">'+a.lang.readAndAccept+'<a data-role="agreement" class="agree-link">&nbsp;'+a.lang.agreement+"</a></p>",moreContent:'<footer id="'+a.module+'-layer" class="layer-account"><a href="javascript:void(0);" class="normandy-more-reg">注册帐号</a><a href="javascript:void(0);" class="normandy-more-qa">登录遇到问题</a><a href="javascript:void(0);" class="normandy-more-qa-cancle">取消</a></footer>'};return i[e]},getTemplate:function(){var e=this,a=Pass.ui.temp,i=new a({module:e.module}),n=publicData;n.authtoken="";var t="";return t+='<article class="wrapper" id="'+this.module+'">',t+='<div id="face_login-div" class="flexdiv">',"apps"!==publicData.adapter&&"1"!==publicData.adapter&&"3"!==publicData.adapter&&(t+=i._getHeaderField({title:"<span >"+e.lang.title+"</span>",goBack:!0,usual:!0})),t+='<div class="normandy-img-div clearfix"><div class="normandy-img-logo" id="loginLogo"></div><div class="normandy-img-title"></div><div class="normandy-img-ailogo"></div></div><div class="normandy-title-div"><div class="normandy-title-content">'+e.lang.welcome+"</div></div>",t+='<div class="normandy-mod-content clearfix">',t+='<div class="normandy-history-con"><li class="normandy-head0 historycenter" data-username=""><div class="normandy-img"><img><div class="normandy-history-active"></div></div><span></span></li></div>',t+=i._getErrorField(),t+=i._getSubmitField({value:e.lang.submitText,disabled:!0}),t+='<div style="clear: both;"></div>',t+=i._getLoadingField({module:e.module,html:e.lang.loading}),t+='<div class="normandy-bottom-link tcenter">',t+=e.getIrregularField("baidLogin"),t+='<span class="normandy-spilit-line">|</span>',t+=e.getIrregularField("more"),t+="</div>",t+="</div>",t+=i._getHiddenField(n),t+=e.getIrregularField("moreContent")+'<div class="p-b20">'+e.getIrregularField("regAgreement")+"</div>",t+=e.getIrregularField("loading"),t+="</div>",t+="</div>",t+="</article>"},setErrorMsg:function(a,i,n){var t=this,o='<div class="pass-dialog-content pass-fast-dialog"><p class="page-dialog-title">提示</p><p>'+a+'</p></div><div class="dialog-content-btn">'+(n?'<input type="button" value="继续刷脸" class="pass-button-auto pass-dialog-btnleft blue" id="dialogmsg-faceLogin-btn"><input type="button" value="其他方式登录" class="pass-button-auto pass-dialog-btnright white" id="dialogmsg-changeLogin-btn">':'<a class="dialog-banner-mainbtn" id="dialogmsg-changeLogin-btn">确定</a>')+"</div>",l=window.Pass.ui.dialog,c=new l({width:"90%",mask:!0,content:o});$("#dialogmsg-changeLogin-btn").off("click").on("click",function(a){a.preventDefault(),c.remove(),i&&(t.noticeNotShowFace(),e._getScript("login",function(a){a.render("pageWrapper",t.module),e.removeLast()}))}),$("#dialogmsg-faceLogin-btn").off("click").on("click",function(e){e.preventDefault(),c.remove(),t.submitFaceLogin()})},render:function(e,a){var i=this;if(i.data=a||{},i.data.faceLoginCan="1",i.initialized)Pass.switchView(i.module);else{var n=i.getTemplate();"[object string]"===Object.prototype.toString.call(e).toLowerCase()?$("#"+e).append(n):e.append(n),this.initialized=!0,Pass.switchView(i.module,"init"),window.Pass.face_login=i,i.setEvent()}i.getUid()},faceLoginShowNotice:function(){var e=this;try{e.data.hideFaceLoginNotice=localStorage.getItem("hideFaceLoginNotice")}catch(a){return}var i=e.data.faceLoginCase&&"0003100051"===e.data.faceLoginCase&&e.data.faceLoginCan&&"1"===e.data.faceLoginCan&&"1"!==e.data.hideFaceLoginNotice?"1":"0";return i},noticeNotShowFace:function(){var a=this,i=a.data.livinguname;if(i){var n={enable:!1,livinguname:"ios"===publicData.client?i:decodeURIComponent(i)};e.client.ischeckNativeMethod("action_face_login_switch",function(){e.client.deviceClassJson("action_face_login_switch",n)})}},setEvent:function(){var a=this;$("[data-role]",$("#"+a.module)).each(function(){e.view.cutPage($(this))}),$(a.getElement("baidLogin")).on("touchend",function(n){n.preventDefault(),i(a,"_baiduLogin_click");var t={};t.username=a.userName,t.userid=a.data.livinguname,"1"===a.faceLoginShowNotice()?a.faceLoginNotice("login",function(){e._getScript("login",function(e){e.render("pageWrapper",t)})}):e._getScript("login",function(e){e.render("pageWrapper",t)})}),$(a.getElement("smsLogin")).on("touchend",function(n){n.preventDefault(),i(a,"_smsLogin_click"),"1"===a.faceLoginShowNotice()?a.faceLoginNotice("sms_login",function(){e._getScript("sms_login",function(e){e.render("pageWrapper",a.module)})}):e._getScript("sms_login",function(e){e.render("pageWrapper",a.module)})}),$(a.getElement("more")).on("touchend",function(e){e.preventDefault(),$(a.getElement("layer")).css("display","block"),setTimeout(function(){$(a.getElement("layer")).addClass("layermenu-out")},0),$(a.getElement("loadingMask")).show(),i(a,"_more_click")}),$("#face_login-loadingMask, .normandy-more-qa-cancle").on("touchend",function(e){e.preventDefault(),$(a.getElement("layer")).hasClass("layermenu-out")&&($(a.getElement("layer")).removeClass("layermenu-out"),setTimeout(function(){$(a.getElement("layer")).css("display","none")},300),$(a.getElement("loadingMask")).hide())}),$("#face_login .normandy-more-reg").on("touchend",function(n){n.preventDefault(),i(a,"_reg_click"),"1"===publicData.fastRegLink&&"android"===publicData.client?window.sapi_obj&&window.sapi_obj.action_fast_reg?window.sapi_obj.action_fast_reg():"android"===publicData.client?prompt('{action:{name:"action_fast_reg"}}'):"ios"===publicData.client&&this.deviceClass("action_fast_reg"):e._getScript("reg",function(e){e.render("pageWrapper",a.module)}),$(a.getElement("layer")).css("display","none"),$(a.getElement("layer")).removeClass("layermenu-out"),$(a.getElement("loadingMask")).hide()}),$("#face_login .normandy-more-qa").on("touchend",function(e){e.preventDefault(),$("input").blur(),i(a,"_question_link_click"),Pass._getScript("question",function(e){var a={type:"question"};e.render("pageWrapper",a)}),$(a.getElement("layer")).css("display","none"),$(a.getElement("layer")).removeClass("layermenu-out"),$(a.getElement("loadingMask")).hide()}),$(a.getElement("submit")).on("touchend",function(e){e.preventDefault(),a.submitFaceLogin()})},renderLog:function(){var e=this;i(e,"_render")},faceLoginNotice:function(e,a){var n=this,t='<div class="pass-dialog-content pass-faceLoginNotice-dialog"><div class="pass-faceLoginNotice-icon"></div><p class="pass-faceLoginNotice-title">放弃刷脸登录吗？</p><p class="pass-faceLoginNotice-msg">更安全、便捷、高科技的登录方式</p><ul class="pass-faceLoginNotice-ul"><li id="faceLoginNoticeToFace" class="pass-faceLoginNotice-main">继续刷脸</li><li id="faceLoginNoticeTo'+e+'">'+("login"===e?n.lang.baiduLoginNotice:n.lang.smsLoginNotice)+"</li></ul></div>",o=window.Pass.ui.dialog,l=new o({width:"70%",mask:!0,dialogclass:"faceLoginNotice",content:t,onRender:function(){i(n,"_faceLoginNotice_"+e+"_show");try{localStorage.setItem("hideFaceLoginNotice",1)}catch(a){}}});$("#faceLoginNoticeToFace").on("click",function(e){e.preventDefault(),l.remove(),i(n,"_faceLoginNoticeToFace_click"),""!==$(n.getElement("authtoken")).val()&&(0===parseInt(n.data.hasRealName,10)?n.identificationData():n.identification($(n.getElement("authtoken")).val()))}),$("#faceLoginNoticeTo"+e).on("click",function(t){t.preventDefault(),l.remove(),i(n,"_faceLoginNoticeTo_"+e+"_click"),a&&a()})},getUid:function(){var a=this;if("android"===publicData.client){var i=e.client.deviceClass("getFaceLoginInfo");i=JSON.parse(i),a.data.livinguname=i.livinguname,a.data.faceLoginCase=JSON.parse(i.queryRes).exp_case,a.data.hasRealName=JSON.parse(i.queryRes).hasRealName,"4"===publicData.loginInitType&&"0"===a.getUserInfoHasCall&&a.getUserInfo()}else"ios"===publicData.client?e.client.deviceClass("getFaceLoginInfo",{},function(e,i){i=i||{};var n=i.result;a.data.livinguname=n.queryRes.livinguname,a.data.faceLoginCase=n.queryRes.exp_case,a.data.hasRealName=n.queryRes.hasRealName,a.getUserInfo()}):a.getUserInfo()},getCookie:function(){var a=this;e.client.ischeckNativeMethod("sapi_action_mini_di",function(){var i=e.client.deviceClassJson("sapi_action_mini_di",{di_keys:["cuid"]});i&&i.cuid&&(a.data.cuid=i.cuid)})},getUserInfo:function(){var e=this,a={tpl:publicData.tpl,clientfrom:publicData.clientfrom,client:publicData.client,username:e.data.livinguname};"android"===publicData.client&&"tb"===publicData.tpl&&e.getCookie(),e.data.cuid&&(a.cuid=e.data.cuid),e.getUserInfoHasCall="1",$.ajax({url:apiDomain+"/v3/login/api/prelivinglogin?tt="+(new Date).getTime(),data:a,type:"POST",success:function(a){a=JSON.parse(a),"0"===a.errInfo.no?($(".normandy-head0 img").attr("src",a.data.portrait+"?tt="+(new Date).getTime()),$(".normandy-head0 span").html(a.data.username),e.userName=a.data.username,e.encryptedDisplayName=a.data.encryptedDisplayName||"",a.data.authtoken&&($(e.getElement("submit")).removeAttr("disabled").removeClass("pass-button-full-disabled"),$(e.getElement("authtoken")).val(a.data.authtoken),e.data.faceLoginCan="1")):(e.data.faceLoginCan="0",e.setErrorMsg(a.errInfo.msg,1)),e.renderLog()},error:function(){e.data.faceLoginCan="0",e.setErrorMsg(e.lang.networkError,1),e.renderLog()}})},submitFaceLogin:function(){var e=this,a=$(e.getElement("submit"));"disabled"!==a.attr("disabled")&&(a.attr("disabled","disabled").addClass("pass-button-full-disabled"),i(e,"_submitBtn_click"),""!==$(e.getElement("authtoken")).val()&&(0===parseInt(e.data.hasRealName,10)?e.identificationData():e.identification($(e.getElement("authtoken")).val())))},identificationData:function(){var a=this;e.client.identificationData(a,"uncertlogin",a.data.livinguname,function(e){a.upliving(e)},function(e,n,t){$(a.getElement("submit")).removeAttr("disabled").removeClass("pass-button-full-disabled"),i(a,"_error"),-204!==e&&a.setErrorMsg(n,t,t)})},identification:function(a){var i=this;e.client.identification(i,"certlogin",a,function(e){i.upliving(e)},function(e,a,n){$(i.getElement("submit")).removeAttr("disabled").removeClass("pass-button-full-disabled"),-204!==e&&i.setErrorMsg(a,n,n)})},upliving:function(a){var n=this,t={};t.callbackkey=a,t.tpl=publicData.tpl,t.clientfrom=publicData.clientfrom,t.client=publicData.client,t.token=$(n.getElement("authtoken")).val(),t.username=n.data.livinguname,t.faceLoginCase=n.data.faceLoginCase||"none",n.data.cuid&&(t.cuid=n.data.cuid),$.ajax({url:"/v3/login/api/livinglogin",data:t,type:"POST",success:function(a){if(a=JSON.parse(a),0===+a.errInfo.no)if(i(n,"_success"),$("#face_login").hide(),"ios"===publicData.client||"android"===publicData.client){var t=a.data.xml.replace("<account></account>","<account>"+n.userName+"</account>");e.client.success(t,"face",a.data.livinguname)}else document.location=publicData.u;else i(n,"_error"),$(".biometry-loadingMask").hide(),n.setErrorMsg(a.errInfo.msg)}})}})}); Pass._define("canshareAi",function(){var a=Pass,e={module:"canshareAi",initialized:!1,backNeedFn:!0};return e=$.extend(e,{lang:{"zh-cn":{title:"登录",submitText:"授权登录",loading:"加载中",submitLoading:"登录中...",forgot:"遇到问题",reg:"快速注册",networkError:"网络连接失败，请检查您的网络设置并稍后再试。"},en:{title:"Login",submitText:"Login",loading:"loading",submitLoading:"Login...",forgot:"Can't Login?",reg:"Sign Up",networkError:"Network error"}}[window.publicData.lang||"zh-cn"],getElement:function(a){return document.getElementById(this.module+"-"+a)},getIrregularField:function(a){var e=this,i={authorize:'<div id="authorize" class="appdiaplay"><div class="canshare-ai-logos clearfix"><div class="canshare-ai-logos-block"><div class="logos-baidu"></div><p>百度帐号</p></div><div class="canshare-ai-logos-block logos-middle2"></div><div class="canshare-ai-logos-block"><img id="appicon-authorize"><p id="appname-authorize"></p></div></div><p class="canshare-ai-tip">授权登录</p></div>',connect:'<div id="connect" class="appdiaplay"><div class="canshare-ai-logos clearfix"><div class="canshare-ai-logos-block"><img id="appicon-connect"><p id="appname-connect"></p></div><div class="canshare-ai-logos-block logos-middle1"></div><div class="canshare-ai-logos-block"><div class="logos-baidu"></div><p>百度帐号</p></div></div><p class="canshare-ai-tip">联合登录</p></div>',regAgreement:'<div class="normandy-agree" id="'+e.module+'-agreelist"></div>'};return i[a]},getTemplate:function(){var a=this,e=new Pass.ui.temp({module:a.module}),i=publicData;i.authtoken="";var t="";return t+='<article class="wrapper" id="'+this.module+'">',"apps"!==publicData.adapter&&"1"!==publicData.adapter&&"3"!==publicData.adapter&&(t+=e._getHeaderField({title:"<span >"+a.lang.title+"</span>",goBack:!0,usual:!0})),t+='<div id="canshareAi-div" class="canshare-ai-block">',t+='<div class="canshare-ai-top">',t+='<div class="canshare-app">',t+=a.getIrregularField("authorize"),t+=a.getIrregularField("connect"),t+="</div>",t+='<p class="canshare-ai-tipdown">百度帐号能够很便捷的使用百度、百度地图、百度钱包、百度云等服务，体验到更全面到位的贴心服务，便于用户操作。</p>',t+='<p class="canshare-ai-tipconfig"></p>',t+="</div>",t+='<p class="canshare-clienttip">允许<span id="appName"></span>客户端进行以下操作</p><ul class="canshare-ul"><li>允许阅读您的帐号</li><li>允许阅读您的用户名等基本信息</li></ul>',t+='<div class="normandy-mod-content clearfix">',t+=e._getErrorField(),t+=e._getSubmitField({value:"登录",actived:!0}),t+=e._getLoadingField({module:a.module,html:a.lang.loading}),t+="</div>",t+=e._getHiddenField(i),t+=a.getIrregularField("regAgreement"),t+="</div>",t+="</article>"},render:function(e,i){var t=this;if(t.data=i||{},t.initialized)Pass.switchView(t.module);else{var n="https://wappass.baidu.com",r="appsapi";a.load.loadCssFileW(n+"/static/"+r+"/css/sapi_theme/style.css");var s=t.getTemplate();"[object string]"===Object.prototype.toString.call(e).toLowerCase()?$("#"+e).append(s):e.append(s),window.Pass.canshareAi=t,this.initialized=!0,Pass.switchView(t.module),t.setEvent()}},backFn:function(){$("html").addClass("rooter")},setEvent:function(){var e=this;$("html").addClass("rooter"),$("[data-role]",$("#"+e.module)).each(function(){a.view.cutPage($(this))}),$("body").on("tap",".checkbox",function(){$(this).toggleClass("active")}),e.getData()},getData:function(){var e=this;if("android"===publicData.client){var i=a.client.deviceClass("action_join_login");e.appshow(JSON.parse(i))}else"ios"===publicData.client&&a.client.deviceClass("action_join_login",{},function(a,i){e.appshow(i)})},appshow:function(e){var i=this;publicData.canshareAi=!0;var t="true"===e.hasThirdAccount?"authorize":"connect";if($("#appicon-"+t).attr("src",e.icon),$("#appname-"+t).html(e.name),$("#"+t).show(),$("#appName").html(e.name),i.getElement("submit").value="authorize"===t?"授权登录":"百度帐号登录",e.agreement)for(var n=e.agreement,r=0;r<n.length;r++)$(i.getElement("agreelist")).append('<div class="clearfix"><div class="checkbox active"></div><p class="appagree"><a class="config-agree" data-href="'+n[r].url+'">'+n[r].name+"</a></p></div>");$(i.getElement("submit")).on("touchend",function(a){a.preventDefault();for(var t=$(".checkbox"),n=0;n<t.length;n++){if(!$(t[n]).hasClass("active"))return void i.showError("请勾选协议");i.clearError()}$("html").removeClass("rooter"),"true"===e.supportFaceLogin?Pass._getScript("face_login",function(a){a.render("pageWrapper")}):"true"===e.openShareLogin?(publicData.share_version="2",Pass._getScript("canshare_accounts",function(a){a.render("pageWrapper")})):Pass._getScript("login",function(a){a.render("pageWrapper")})}),$(".config-agree").on("tap",function(){var e=$(this).html(),i=$(this).attr("data-href");"android"===publicData.client?prompt('{"action":{"name":"action_load_external_webview",params:['+e+',"'+i+'"]}}'):a.client.deviceClass("action_load_external_webview",{placeholderTitle:e,url:encodeURIComponent(i)})})},showError:function(a){var e=this;$(e.getElement("errorWrapper")).html(a)},clearError:function(){var a=this;$(a.getElement("errorWrapper")).html("")}})}); </script><script type="text/javascript">
        /* globals Pass, publicData, traceID, CssEndTime, JsEndTime, pageStartTime, onLoadTime, CssTime, JsTime, screenTime */
        var JsEndTime = +new Date();
        // 根据URL中的hash值加载不同模块js进行初始化
        $(function () {
            window.Jsdoing1 = +new Date();
            var module = location.hash.substring(1) || publicData.action || 'login';
            var traceID = publicData.traceid || '';
            if (traceID && window.Pass && window.Pass.traceID) {
                window.Pass.traceID.initTraceID && window.Pass.traceID.initTraceID(traceID);
            }
            window.screenTime = window.Jsdoing2 = window.Jsdoing3 = window.cache = '';

            Pass._getScript(module, function (module) {
                module.render('pageWrapper', {}, function () {
                    // 白屏时间
                    window.screenTime = Date.now() - pageStartTime;
                });
            }, 'init');
        });
        window.onload = function () {
            var module = location.hash.substring(1) || publicData.action || 'login';
            window.onLoadTime = Date.now();
            // css 资源加载时间
            window.CssTime = CssEndTime - pageStartTime;
            // js 资源加载时间
            window.JsTime = JsEndTime - pageStartTime;
            setTimeout(function () {
                function firstTimeLog() {
                    Pass.logAll.logBfb({
                        en: 'appsapi-' + module + '_onLoadTime',
                        autoStatisticObj: {
                            'na-firstLoad': (publicData.liveAbility ? 'face' : 'none')
                        },
                        urlObj: {
                            'onLoadTime_new': onLoadTime - pageStartTime,
                            'onLoadTime': onLoadTime - pageStartTime,
                            'CssTime': CssTime,
                            'JsTime': JsTime,
                            'screenTime': 1,
                            'client': publicData.client,
                            'Jsdoing1': window.Jsdoing1 - pageStartTime,
                            'Jsdoing2': window.Jsdoing2 - pageStartTime,
                            'Jsdoing3': window.Jsdoing3 - pageStartTime,
                            'Jsdoing3_new': window.Jsdoing3 - pageStartTime,
                            'cache': window.cache,
                            'allTime': window.allTime || '',
                            'isnew': window.isnew || '',
                            'viewInitDone': window.viewInitDone || '',
                            'beforeLogin': window.beforeLogin || '',
                            'startLogin': window.startLogin || '',
                            'loadLogin': window.loadLogin || '',
                            'pageStart': window.pageStart || ''
                        }
                    });
                }

                Pass.client.ischeckNativeMethod('action_get_loadtime', function () {
                    /*
                        打开登录页的时间点：t_open_login
                        WebView初始化时间：t_view_init_done
                        开始调用loadLogin时间点：t_before_login
                        登录URL拼接完成开始加载URL时间点：t_start_login
                        真正加载缓存或者加载线上的时间点：t_load_login
                        是否加载缓存：is_load_cache
                    */
                    Pass.client.deviceClass('action_get_loadtime', {}, function (id, params) {
                        function addPoint(params) {
                            window.viewInitDone = params.t_view_init_done - params.t_open_login;
                            window.beforeLogin = params.t_before_login - params.t_open_login;
                            window.startLogin = params.t_start_login - params.t_open_login;
                            window.loadLogin = params.t_load_login - params.t_open_login;
                            window.cache = params.is_load_cache;
                            window.pageStart = window.pageStartTime - params.t_open_login;
                            window.isnew = true;
                        }

                        if (publicData.client === 'android' && params && params.t_open_login) {
                            window.allTime = window.Jsdoing3 - params.t_open_login;
                            addPoint(params);
                        } else if (publicData.client === 'ios' && params && params.t_open_login) {
                            window.allTime = window.onLoadTime - params.t_open_login;
                            addPoint(params);
                        }
                        firstTimeLog();
                    }, function (id, params) {
                    });
                }, function () {
                    firstTimeLog();
                });
            }, 1000);
        };
        </script>
</body>
</html>
