+
+支付宝扫码支付
+
+
+
+
+
¥
+
+
+
+
+
+购买物品
+
+商户订单号
+
+创建时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/alipay/refund.php b/plugins/alipay/refund.php
new file mode 100644
index 0000000..bc2a8cd
--- /dev/null
+++ b/plugins/alipay/refund.php
@@ -0,0 +1,29 @@
+setTradeNo($order['api_trade_no']);
+$requestBuilder->setRefundAmount($order['realmoney']);
+
+// 调用退款接口
+$trade = new AlipayTradeService($config);
+$refundResult = $trade->refund($requestBuilder);
+
+// 根据状态值进行业务处理
+$status = $refundResult->getTradeStatus();
+$response = $refundResult->getResponse();
+if($status == 'SUCCESS'){
+ $result = ['code'=>0, 'trade_no'=>$response->trade_no, 'refund_fee'=>$response->refund_fee, 'refund_time'=>$response->gmt_refund_pay, 'buyer'=>$response->buyer_user_id];
+}elseif($status == 'FAILED'){
+ $result = ['code'=>-1, 'msg'=>'['.$response->sub_code.']'.$response->sub_msg];
+}else{
+ $result = ['code'=>-1, 'msg'=>'未知错误'];
+}
+return $result;
diff --git a/plugins/alipay/return.php b/plugins/alipay/return.php
new file mode 100644
index 0000000..09f485b
--- /dev/null
+++ b/plugins/alipay/return.php
@@ -0,0 +1,44 @@
+writeLog(var_export($_POST,true));
+$verify_result = $alipaySevice->check($_GET);
+
+if($verify_result) {//验证成功
+ //商户订单号
+ $out_trade_no = daddslashes($_GET['out_trade_no']);
+
+ //支付宝交易号
+ $trade_no = daddslashes($_GET['trade_no']);
+
+ //交易金额
+ $total_amount = $_GET['total_amount'];
+
+ if($out_trade_no == TRADE_NO && round($total_amount,2)==round($order['money'],2)){
+ $url=creat_callback($order);
+
+ if($order['status']==0){
+ if($DB->exec("update `pre_order` set `status` ='1' where `trade_no`='".TRADE_NO."'")){
+ $DB->exec("update `pre_order` set `api_trade_no` ='$trade_no',`endtime` ='$date',`date` =NOW() where `trade_no`='".TRADE_NO."'");
+ processOrder($order,false);
+ }
+ echo '';
+ }else{
+ echo '';
+ }
+ }else{
+ sysmsg('订单信息校验失败');
+ }
+}
+else {
+ //验证失败
+ sysmsg('支付宝返回验证失败!');
+}
+?>
\ No newline at end of file
diff --git a/plugins/alipay/submit.php b/plugins/alipay/submit.php
new file mode 100644
index 0000000..673f1d3
--- /dev/null
+++ b/plugins/alipay/submit.php
@@ -0,0 +1,45 @@
+window.location.href='/submit2.php?typeid={$order['type']}&trade_no={$trade_no}';";exit;
+}
+if(strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger')!==false){
+ include(SYSTEM_ROOT.'pages/wxopen.php');
+ exit;
+}
+
+if(in_array('3',$channel['apptype']) && !in_array('1',$channel['apptype']) && !in_array('2',$channel['apptype'])){
+ echo "";
+}else{
+
+if(!empty($conf['localurl_alipay']) && !strpos($conf['localurl_alipay'],$_SERVER['HTTP_HOST'])){
+ echo "";exit;
+}
+
+if(checkmobile()==true && in_array('2',$channel['apptype'])){
+ require_once(PAY_ROOT."inc/model/builder/AlipayTradeWapPayContentBuilder.php");
+ require_once(PAY_ROOT."inc/AlipayTradeService.php");
+
+ //
+ $payRequestBuilder = new AlipayTradeWapPayContentBuilder();
+ $payRequestBuilder->setSubject($ordername);
+ $payRequestBuilder->setTotalAmount($order['money']);
+ $payRequestBuilder->setOutTradeNo($trade_no);
+
+ $aop = new AlipayTradeService($config);
+ echo $aop->wapPay($payRequestBuilder);
+}else{
+ require_once(PAY_ROOT."inc/model/builder/AlipayTradePagePayContentBuilder.php");
+ require_once(PAY_ROOT."inc/AlipayTradeService.php");
+
+ //
+ $payRequestBuilder = new AlipayTradePagePayContentBuilder();
+ $payRequestBuilder->setSubject($ordername);
+ $payRequestBuilder->setTotalAmount($order['money']);
+ $payRequestBuilder->setOutTradeNo($trade_no);
+
+ $aop = new AlipayTradeService($config);
+ echo $aop->pagePay($payRequestBuilder);
+}
+}
\ No newline at end of file
diff --git a/plugins/codepay/config.ini b/plugins/codepay/config.ini
new file mode 100644
index 0000000..f8b1626
--- /dev/null
+++ b/plugins/codepay/config.ini
@@ -0,0 +1,21 @@
+[config]
+;支付插件英文名称,需和目录名称一致,不能有重复
+name = "codepay"
+
+;支付插件显示名称
+showname = "码支付"
+
+;支付插件作者
+author = "码支付"
+
+;支付插件作者链接
+link = "https://codepay.fateqq.com/"
+
+;支付插件支持的支付方式,多种方式用英文,隔开,可选的有alipay,qqpay,wxpay,bank
+types = "alipay,qqpay,wxpay"
+
+;支付插件要求传入的参数以及参数显示名称,可选的有appid,appkey,appsecret,appurl,appmchid
+inputs = "appid:商户ID,appkey:商户密钥"
+
+;支付插件要求传入的支付方式参数
+select = ""
\ No newline at end of file
diff --git a/plugins/codepay/inc/codepay_config.php b/plugins/codepay/inc/codepay_config.php
new file mode 100644
index 0000000..bf3b155
--- /dev/null
+++ b/plugins/codepay/inc/codepay_config.php
@@ -0,0 +1,33 @@
+ $val) {
+ if ($val == '') continue;
+ if ($key != 'sign') {
+ if ($sign != '') {
+ $sign .= "&";
+ $urls .= "&";
+ }
+ $sign .= "$key=$val"; //拼接为url参数形式
+ $urls .= "$key=" . urlencode($val); //拼接为url参数形式
+ }
+}
+
+if (!$_POST['pay_no'] || md5($sign . $codepay_config['key']) != $_POST['sign']) { //不合法的数据 KEY密钥为你的密钥
+ exit('fail');
+} else { //合法的数据
+
+ $out_trade_no = daddslashes($_POST['param']);
+
+ //流水号
+ $trade_no = daddslashes($_POST['pay_no']);
+
+ $price = (float)$_POST['price'];
+
+ if($out_trade_no == TRADE_NO && round($price,2)==round($order['money'],2) && $order['status']==0){
+ if($DB->exec("update `pre_order` set `status` ='1' where `trade_no`='$out_trade_no'")){
+ $DB->exec("update `pre_order` set `api_trade_no` ='$trade_no',`endtime` ='$date',`date` =NOW() where `trade_no`='$out_trade_no'");
+ processOrder($order);
+ }
+ }
+
+ exit('success');
+}
+
+?>
\ No newline at end of file
diff --git a/plugins/codepay/qrcode.php b/plugins/codepay/qrcode.php
new file mode 100644
index 0000000..1f28680
--- /dev/null
+++ b/plugins/codepay/qrcode.php
@@ -0,0 +1,234 @@
+getColumn("SELECT name FROM pre_type WHERE id='{$order['type']}' LIMIT 1");
+
+if ($typename == 'wxpay') {
+ $typeName = '微信';
+ $type = 3;
+} else if ($typename == 'qqpay' || $typename == 'tenpay') {
+ $typeName = 'QQ';
+ $type = 2;
+} else {
+ $type = 1;
+ $typeName = '支付宝';
+}
+
+$price = $order['money'];
+$param = TRADE_NO;
+
+$pay_id = $clientip;
+$data = array(
+ "id" => $codepay_config['id'],//平台ID号
+ "type" => $type,//支付方式
+ "price" => $price,//原价
+ "pay_id" => $pay_id, //可以是用户ID,站内商户订单号,用户名
+ "param" => $param,//自定义参数
+// "https" => 1,//启用HTTPS
+ "act" => $codepay_config['act'],
+ "outTime" => $codepay_config['outTime'],//二维码超时设置
+ "page" => $codepay_config['page'],//付款页面展示方式
+ "return_url" => $siteurl.'pay/codepay/return/'.TRADE_NO.'/',//付款后附带加密参数跳转到该页面
+ "notify_url" => $conf['localurl'].'pay/codepay/notify/'.TRADE_NO.'/',//付款后通知该页面处理业务
+ "style" => $codepay_config['style'],//付款页面风格
+ "user_ip" => $clientip,//用户IP
+ "out_trade_no" => $param,//单号去重复
+ "createTime" => time(),//服务器时间
+ "qrcode_url" => $codepay_config['qrcode_url'],//本地化二维码
+ "chart" => strtolower('utf-8')//字符编码方式
+ //其他业务参数根据在线开发文档,添加参数.文档地址:https://codepay.fateqq.com/apiword/
+ //如"参数名"=>"参数值"
+);
+function create_link($params,$codepay_key,$host=""){
+ ksort($params); //重新排序$data数组
+ reset($params); //内部指针指向数组中的第一个元素
+ $sign = '';
+ $urls = '';
+ foreach ($params AS $key => $val) {
+ if ($val == '') continue;
+ if ($key != 'sign') {
+ if ($sign != '') {
+ $sign .= "&";
+ $urls .= "&";
+ }
+ $sign .= "$key=$val"; //拼接为url参数形式
+ $urls .= "$key=" . urlencode($val); //拼接为url参数形式
+ }
+ }
+
+ $key = md5($sign . $codepay_key);//替换为自己的密钥
+ $query = $urls . '&sign=' . $key; //创建订单所需的参数
+ $apiHost=$host?$host:"http://api2.xiuxiu888.com/creat_order/?";
+ $url = $apiHost.$query; //支付页面
+ return array("url"=>$url,"query"=>$query,"sign"=>$sign,"param"=>$urls);
+}
+$back=create_link($data,$codepay_config['key']);
+
+$user_data = array(
+ "return_url" => $siteurl.'pay/codepay/return/'.TRADE_NO.'/',
+ "type" => $type,
+ "outTime" => $codepay_config["outTime"],
+ "codePay_id" => $codepay_config["id"],
+ "out_trade_no" => $param,
+ "price" => $price,
+ 'money'=>$price,
+ 'order_id'=>$param,
+ "subject"=>$row['name']
+ ); //传给网页JS去执行
+
+
+$user_data["qrcode_url"] = $codepay_config["qrcode_url"];
+
+//中间那log 默认为8秒后隐藏
+//改为自己的替换img目录下的use_开头的图片 你要保证你的二维码遮挡不会影响扫码
+//二维码容错率决定你能遮挡多少部分
+$user_data["logShowTime"] = $user_data["qrcode_url"]?1:8*1000;
+
+
+$codepay_json = get_curl($back['url']);
+
+if(empty($codepay_json)){
+ $data['call']="callback";
+ $data['page']="3";
+ $back=create_link($data,$codepay_config['key']);
+ $codepay_html='';
+}else{
+ $codepay_data = json_decode($codepay_json);
+ $qr = $codepay_data ? $codepay_data->qrcode : '';
+ $user_data["money"]=$codepay_data&&$codepay_data->money ? $codepay_data->money : $price;
+ $codepay_html="";
+}
+
+?>
+
+
+
+
+
+
+
+
+
+
扫码支付
+
+
+
+
+
+
+
+
+
+
+
+
+
请务必规定时间内支付下面显示的金额
+
+
+
+
+
+
加载中
+
+
+
+
+
+
+
+
+
+
+
+
二维码过期时间
+ 0时
+ 0分
+ 0秒
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/codepay/return.php b/plugins/codepay/return.php
new file mode 100644
index 0000000..a396b21
--- /dev/null
+++ b/plugins/codepay/return.php
@@ -0,0 +1,45 @@
+ $val) {
+ if ($val == '') continue;
+ if ($key != 'sign') {
+ if ($sign != '') {
+ $sign .= "&";
+ $urls .= "&";
+ }
+ $sign .= "$key=$val"; //拼接为url参数形式
+ $urls .= "$key=" . urlencode($val); //拼接为url参数形式
+ }
+}
+if (!$_GET['pay_no'] || md5($sign . $codepay_config['key']) != $_GET['sign']) { //不合法的数据 KEY密钥为你的密钥
+ sysmsg('验证失败!');
+} else { //合法的数据
+ $out_trade_no = daddslashes($_GET['param']);
+ //流水号
+ $trade_no = daddslashes($_GET['pay_no']);
+ $price = (float)$_GET['price'];
+
+ if($out_trade_no == TRADE_NO && round($price,2)==round($order['money'],2)){
+ $url=creat_callback($order);
+ if($order['status']==0){
+ if($DB->exec("update `pre_order` set `status` ='1' where `trade_no`='$out_trade_no'")){
+ $DB->exec("update `pre_order` set `api_trade_no` ='$trade_no',`endtime` ='$date',`date` =NOW() where `trade_no`='$out_trade_no'");
+ processOrder($order,false);
+ }
+ echo '';
+ }else{
+ echo '';
+ }
+ }else{
+ sysmsg('订单信息校验失败');
+ }
+}
+?>
\ No newline at end of file
diff --git a/plugins/codepay/submit.php b/plugins/codepay/submit.php
new file mode 100644
index 0000000..52febf3
--- /dev/null
+++ b/plugins/codepay/submit.php
@@ -0,0 +1,5 @@
+window.location.href='/pay/codepay/qrcode/{$trade_no}/?sitename={$sitename}';";
+
diff --git a/plugins/epay/config.ini b/plugins/epay/config.ini
new file mode 100644
index 0000000..bda8320
--- /dev/null
+++ b/plugins/epay/config.ini
@@ -0,0 +1,21 @@
+[config]
+;支付插件英文名称,需和目录名称一致,不能有重复
+name = "epay"
+
+;支付插件显示名称
+showname = "彩虹易支付"
+
+;支付插件作者
+author = "彩虹"
+
+;支付插件作者链接
+link = "http://blog.cccyun.cc/"
+
+;支付插件支持的支付方式,多种方式用英文,隔开,可选的有alipay,qqpay,wxpay,bank
+types = "alipay,qqpay,wxpay,bank"
+
+;支付插件要求传入的参数以及参数显示名称,可选的有appid,appkey,appsecret,appurl,appmchid
+inputs = "appurl:接口地址,appid:商户ID,appkey:商户密钥"
+
+;支付插件要求传入的支付方式参数
+select = ""
\ No newline at end of file
diff --git a/plugins/epay/inc/epay.config.php b/plugins/epay/inc/epay.config.php
new file mode 100644
index 0000000..56f6487
--- /dev/null
+++ b/plugins/epay/inc/epay.config.php
@@ -0,0 +1,28 @@
+
\ No newline at end of file
diff --git a/plugins/epay/inc/epay_core.function.php b/plugins/epay/inc/epay_core.function.php
new file mode 100644
index 0000000..e25bc11
--- /dev/null
+++ b/plugins/epay/inc/epay_core.function.php
@@ -0,0 +1,168 @@
+$val) {
+ $arg.=$key."=".$val."&";
+ }
+ //去掉最后一个&字符
+ $arg = substr($arg,0,-1);
+
+ return $arg;
+}
+/**
+ * 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串,并对字符串做urlencode编码
+ * @param $para 需要拼接的数组
+ * return 拼接完成以后的字符串
+ */
+function createLinkstringUrlencode($para) {
+ $arg = "";
+ foreach ($para as $key=>$val) {
+ $arg.=$key."=".urlencode($val)."&";
+ }
+ //去掉最后一个&字符
+ $arg = substr($arg,0,-1);
+
+ return $arg;
+}
+/**
+ * 除去数组中的空值和签名参数
+ * @param $para 签名参数组
+ * return 去掉空值与签名参数后的新签名参数组
+ */
+function paraFilter($para) {
+ $para_filter = array();
+ foreach ($para as $key=>$val) {
+ if($key == "sign" || $key == "sign_type" || $val == "")continue;
+ else $para_filter[$key] = $para[$key];
+ }
+ return $para_filter;
+}
+/**
+ * 对数组排序
+ * @param $para 排序前的数组
+ * return 排序后的数组
+ */
+function argSort($para) {
+ ksort($para);
+ reset($para);
+ return $para;
+}
+/**
+ * 写日志,方便测试(看网站需求,也可以改成把记录存入数据库)
+ * 注意:服务器需要开通fopen配置
+ * @param $word 要写入日志里的文本内容 默认值:空值
+ */
+function logResult($word='') {
+ $fp = fopen("log.txt","a");
+ flock($fp, LOCK_EX) ;
+ fwrite($fp,"执行日期:".strftime("%Y%m%d%H%M%S",time())."\n".$word."\n");
+ flock($fp, LOCK_UN);
+ fclose($fp);
+}
+
+/**
+ * 远程获取数据,POST模式
+ * 注意:
+ * 1.使用Crul需要修改服务器中php.ini文件的设置,找到php_curl.dll去掉前面的";"就行了
+ * 2.文件夹中cacert.pem是SSL证书请保证其路径有效,目前默认路径是:getcwd().'\\cacert.pem'
+ * @param $url 指定URL完整路径地址
+ * @param $cacert_url 指定当前工作目录绝对路径
+ * @param $para 请求的数据
+ * @param $input_charset 编码格式。默认值:空值
+ * return 远程输出的数据
+ */
+function getHttpResponsePOST($url, $cacert_url, $para, $input_charset = '') {
+
+ if (trim($input_charset) != '') {
+ $url = $url."_input_charset=".$input_charset;
+ }
+ $curl = curl_init($url);
+ curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//SSL证书认证
+ curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);//严格认证
+ curl_setopt($curl, CURLOPT_HEADER, 0 ); // 过滤HTTP头
+ curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);// 显示输出结果
+ curl_setopt($curl,CURLOPT_POST,true); // post传输数据
+ curl_setopt($curl,CURLOPT_POSTFIELDS,$para);// post传输数据
+ $responseText = curl_exec($curl);
+ //var_dump( curl_error($curl) );//如果执行curl过程中出现异常,可打开此开关,以便查看异常内容
+ curl_close($curl);
+
+ return $responseText;
+}
+
+/**
+ * 远程获取数据,GET模式
+ * 注意:
+ * 1.使用Crul需要修改服务器中php.ini文件的设置,找到php_curl.dll去掉前面的";"就行了
+ * 2.文件夹中cacert.pem是SSL证书请保证其路径有效,目前默认路径是:getcwd().'\\cacert.pem'
+ * @param $url 指定URL完整路径地址
+ * @param $cacert_url 指定当前工作目录绝对路径
+ * return 远程输出的数据
+ */
+function getHttpResponseGET($url,$cacert_url) {
+ $curl = curl_init($url);
+ curl_setopt($curl, CURLOPT_HEADER, 0 ); // 过滤HTTP头
+ curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);// 显示输出结果
+ curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//SSL证书认证
+ curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);//严格认证
+ $responseText = curl_exec($curl);
+ //var_dump( curl_error($curl) );//如果执行curl过程中出现异常,可打开此开关,以便查看异常内容
+ curl_close($curl);
+
+ return $responseText;
+}
+
+/**
+ * 实现多种字符编码方式
+ * @param $input 需要编码的字符串
+ * @param $_output_charset 输出的编码格式
+ * @param $_input_charset 输入的编码格式
+ * return 编码后的字符串
+ */
+function charsetEncode($input,$_output_charset ,$_input_charset) {
+ $output = "";
+ if(!isset($_output_charset) )$_output_charset = $_input_charset;
+ if($_input_charset == $_output_charset || $input ==null ) {
+ $output = $input;
+ } elseif (function_exists("mb_convert_encoding")) {
+ $output = mb_convert_encoding($input,$_output_charset,$_input_charset);
+ } elseif(function_exists("iconv")) {
+ $output = iconv($_input_charset,$_output_charset,$input);
+ } else die("sorry, you have no libs support for charset change.");
+ return $output;
+}
+/**
+ * 实现多种字符解码方式
+ * @param $input 需要解码的字符串
+ * @param $_output_charset 输出的解码格式
+ * @param $_input_charset 输入的解码格式
+ * return 解码后的字符串
+ */
+function charsetDecode($input,$_input_charset ,$_output_charset) {
+ $output = "";
+ if(!isset($_input_charset) )$_input_charset = $_input_charset ;
+ if($_input_charset == $_output_charset || $input ==null ) {
+ $output = $input;
+ } elseif (function_exists("mb_convert_encoding")) {
+ $output = mb_convert_encoding($input,$_output_charset,$_input_charset);
+ } elseif(function_exists("iconv")) {
+ $output = iconv($_input_charset,$_output_charset,$input);
+ } else die("sorry, you have no libs support for charset changes.");
+ return $output;
+}
+?>
\ No newline at end of file
diff --git a/plugins/epay/inc/epay_md5.function.php b/plugins/epay/inc/epay_md5.function.php
new file mode 100644
index 0000000..52c6a14
--- /dev/null
+++ b/plugins/epay/inc/epay_md5.function.php
@@ -0,0 +1,41 @@
+
\ No newline at end of file
diff --git a/plugins/epay/inc/epay_notify.class.php b/plugins/epay/inc/epay_notify.class.php
new file mode 100644
index 0000000..7df4d84
--- /dev/null
+++ b/plugins/epay/inc/epay_notify.class.php
@@ -0,0 +1,117 @@
+alipay_config = $alipay_config;
+ $this->http_verify_url = $this->alipay_config['apiurl'].'api.php?';
+ }
+ function AlipayNotify($alipay_config) {
+ $this->__construct($alipay_config);
+ }
+ /**
+ * 针对notify_url验证消息是否是支付宝发出的合法消息
+ * @return 验证结果
+ */
+ function verifyNotify(){
+ if(empty($_GET)) {//判断POST来的数组是否为空
+ return false;
+ }
+ else {
+ //生成签名结果
+ $isSign = $this->getSignVeryfy($_GET, $_GET["sign"]);
+ //获取支付宝远程服务器ATN结果(验证是否是支付宝发来的消息)
+ $responseTxt = 'true';
+ //$responseTxt = $this->getResponse($_GET["trade_no"]);
+
+ //验证
+ //$responsetTxt的结果不是true,与服务器设置问题、合作身份者ID、notify_id一分钟失效有关
+ //isSign的结果不是true,与安全校验码、请求时的参数格式(如:带自定义参数等)、编码格式有关
+ if (preg_match("/true$/i",$responseTxt) && $isSign) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * 针对return_url验证消息是否是支付宝发出的合法消息
+ * @return 验证结果
+ */
+ function verifyReturn(){
+ if(empty($_GET)) {//判断POST来的数组是否为空
+ return false;
+ }
+ else {
+ //生成签名结果
+ $isSign = $this->getSignVeryfy($_GET, $_GET["sign"]);
+ //获取支付宝远程服务器ATN结果(验证是否是支付宝发来的消息)
+ $responseTxt = 'true';
+ //$responseTxt = $this->getResponse($_GET["trade_no"]);
+
+ //验证
+ //$responsetTxt的结果不是true,与服务器设置问题、合作身份者ID、notify_id一分钟失效有关
+ //isSign的结果不是true,与安全校验码、请求时的参数格式(如:带自定义参数等)、编码格式有关
+ if (preg_match("/true$/i",$responseTxt) && $isSign) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * 获取返回时的签名验证结果
+ * @param $para_temp 通知返回来的参数数组
+ * @param $sign 返回的签名结果
+ * @return 签名验证结果
+ */
+ function getSignVeryfy($para_temp, $sign) {
+ //除去待签名参数数组中的空值和签名参数
+ $para_filter = paraFilter($para_temp);
+
+ //对待签名参数数组排序
+ $para_sort = argSort($para_filter);
+
+ //把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
+ $prestr = createLinkstring($para_sort);
+
+ $isSgin = false;
+ $isSgin = md5Verify($prestr, $sign, $this->alipay_config['key']);
+
+ return $isSgin;
+ }
+
+ /**
+ * 获取远程服务器ATN结果,验证返回URL
+ * @param $notify_id 通知校验ID
+ * @return 服务器ATN结果
+ * 验证结果集:
+ * invalid命令参数不对 出现这个错误,请检测返回处理中partner和key是否为空
+ * true 返回正确信息
+ * false 请检查防火墙或者是服务器阻止端口问题以及验证时间是否超过一分钟
+ */
+ function getResponse($trade_no) {
+ $partner = trim($this->alipay_config['partner']);
+ $veryfy_url = $this->http_verify_url."act=order&pid=" . $partner . "&trade_no=" . $trade_no;
+ $responseTxt = getHttpResponseGET($veryfy_url);
+ $arr = json_encode($responseTxt,true);
+ if($arr['status']==1){
+ return 'true';
+ }else{
+ return 'false';
+ }
+ }
+}
+?>
diff --git a/plugins/epay/inc/epay_submit.class.php b/plugins/epay/inc/epay_submit.class.php
new file mode 100644
index 0000000..11280a2
--- /dev/null
+++ b/plugins/epay/inc/epay_submit.class.php
@@ -0,0 +1,114 @@
+alipay_config = $alipay_config;
+ $this->alipay_gateway_new = $this->alipay_config['apiurl'].'submit.php?';
+ $this->alipay_qrcode = $this->alipay_config['apiurl'].'qrcode.php?';
+ }
+ function AlipaySubmit($alipay_config) {
+ $this->__construct($alipay_config);
+ }
+
+ /**
+ * 生成签名结果
+ * @param $para_sort 已排序要签名的数组
+ * return 签名结果字符串
+ */
+ function buildRequestMysign($para_sort) {
+ //把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
+ $prestr = createLinkstring($para_sort);
+
+ $mysign = md5Sign($prestr, $this->alipay_config['key']);
+
+ return $mysign;
+ }
+
+ /**
+ * 生成要请求给支付宝的参数数组
+ * @param $para_temp 请求前的参数数组
+ * @return 要请求的参数数组
+ */
+ function buildRequestPara($para_temp) {
+ //除去待签名参数数组中的空值和签名参数
+ $para_filter = paraFilter($para_temp);
+
+ //对待签名参数数组排序
+ $para_sort = argSort($para_filter);
+
+ //生成签名结果
+ $mysign = $this->buildRequestMysign($para_sort);
+
+ //签名结果与签名方式加入请求提交参数组中
+ $para_sort['sign'] = $mysign;
+ $para_sort['sign_type'] = strtoupper(trim($this->alipay_config['sign_type']));
+
+ return $para_sort;
+ }
+
+ /**
+ * 生成要请求给支付宝的参数数组
+ * @param $para_temp 请求前的参数数组
+ * @return 要请求的参数数组字符串
+ */
+ function buildRequestParaToString($para_temp) {
+ //待请求参数数组
+ $para = $this->buildRequestPara($para_temp);
+
+ //把参数组中所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串,并对字符串做urlencode编码
+ $request_data = createLinkstringUrlencode($para);
+
+ return $request_data;
+ }
+
+ /**
+ * 建立请求,以表单HTML形式构造(默认)
+ * @param $para_temp 请求参数数组
+ * @param $method 提交方式。两个值可选:post、get
+ * @param $button_name 确认按钮显示文字
+ * @return 提交表单HTML文本
+ */
+ function buildRequestForm($para_temp, $method='POST', $button_name='正在跳转') {
+ //待请求参数数组
+ $para = $this->buildRequestPara($para_temp);
+
+ $sHtml = "
";
+
+ $sHtml = $sHtml."";
+
+ return $sHtml;
+ }
+
+ /**
+ * 建立请求,以URL形式构造
+ * @param $para_temp 请求参数数组
+ * @return 提交的URL链接
+ */
+ function buildRequestUrl($para_temp) {
+ //待请求参数数组字符串
+ $request_data = $this->buildRequestPara($para_temp);
+
+ //远程获取数据
+ $url = $this->alipay_qrcode.http_build_query($request_data);
+
+ return $url;
+ }
+}
+?>
\ No newline at end of file
diff --git a/plugins/epay/notify.php b/plugins/epay/notify.php
new file mode 100644
index 0000000..8b0d68e
--- /dev/null
+++ b/plugins/epay/notify.php
@@ -0,0 +1,41 @@
+verifyNotify();
+
+if($verify_result) {//验证成功
+ //商户订单号
+ $out_trade_no = daddslashes($_GET['out_trade_no']);
+
+ //支付宝交易号
+ $trade_no = daddslashes($_GET['trade_no']);
+
+ //交易状态
+ $trade_status = $_GET['trade_status'];
+
+ //交易金额
+ $money = $_GET['money'];
+
+ if ($_GET['trade_status'] == 'TRADE_SUCCESS') {
+ //付款完成后,支付宝系统发送该交易状态通知
+ if($out_trade_no == TRADE_NO && round($money,2)==round($order['money'],2) && $order['status']==0){
+ if($DB->exec("update `pre_order` set `status` ='1' where `trade_no`='$out_trade_no'")){
+ $DB->exec("update `pre_order` set `api_trade_no` ='$trade_no',`endtime` ='$date',`date` =NOW() where `trade_no`='$out_trade_no'");
+ processOrder($order);
+ }
+ }
+ }
+
+ echo "success";
+}
+else {
+ //验证失败
+ echo "fail";
+}
+
+?>
\ No newline at end of file
diff --git a/plugins/epay/return.php b/plugins/epay/return.php
new file mode 100644
index 0000000..c92964a
--- /dev/null
+++ b/plugins/epay/return.php
@@ -0,0 +1,50 @@
+verifyReturn();
+if($verify_result) {
+ //商户订单号
+ $out_trade_no = daddslashes($_GET['out_trade_no']);
+
+ //支付宝交易号
+ $trade_no = daddslashes($_GET['trade_no']);
+
+ //交易状态
+ $trade_status = $_GET['trade_status'];
+
+ //交易金额
+ $money = $_GET['money'];
+
+ if($_GET['trade_status'] == 'TRADE_SUCCESS') {
+ if($out_trade_no == TRADE_NO && round($money,2)==round($order['money'],2)){
+ $url=creat_callback($order);
+ if($order['status']==0){
+ if($DB->exec("update `pre_order` set `status` ='1' where `trade_no`='$out_trade_no'")){
+ $DB->exec("update `pre_order` set `api_trade_no` ='$trade_no',`endtime` ='$date',`date` =NOW() where `trade_no`='$out_trade_no'");
+ processOrder($order,false);
+ }
+ echo '';
+ }else{
+ echo '';
+ }
+ }else{
+ sysmsg('订单信息校验失败');
+ }
+ }
+ else {
+ echo "trade_status=".$_GET['trade_status'];
+ }
+}
+else {
+ //验证失败
+ echo('验证失败!');
+}
+
+?>
\ No newline at end of file
diff --git a/plugins/epay/submit.php b/plugins/epay/submit.php
new file mode 100644
index 0000000..8b64951
--- /dev/null
+++ b/plugins/epay/submit.php
@@ -0,0 +1,18 @@
+ trim($alipay_config['partner']),
+ "type" => $order['typename'],
+ "notify_url" => $conf['localurl'].'pay/epay/notify/'.TRADE_NO.'/',
+ "return_url" => $siteurl.'pay/epay/return/'.TRADE_NO.'/',
+ "out_trade_no" => $trade_no,
+ "name" => $order['name'],
+ "money" => $order['money']
+);
+//建立请求
+$alipaySubmit = new AlipaySubmit($alipay_config);
+$html_text = $alipaySubmit->buildRequestForm($parameter);
+echo $html_text;
diff --git a/plugins/jdpay/config.ini b/plugins/jdpay/config.ini
new file mode 100644
index 0000000..1201b9a
--- /dev/null
+++ b/plugins/jdpay/config.ini
@@ -0,0 +1,21 @@
+[config]
+;支付插件英文名称,需和目录名称一致,不能有重复
+name = "jdpay"
+
+;支付插件显示名称
+showname = "京东支付"
+
+;支付插件作者
+author = "京东"
+
+;支付插件作者链接
+link = "https://www.jdpay.com/"
+
+;支付插件支持的支付方式,多种方式用英文,隔开,可选的有alipay,qqpay,wxpay,bank
+types = "jdpay"
+
+;支付插件要求传入的参数以及参数显示名称,可选的有appid,appkey,appsecret,appurl,appmchid
+inputs = "appid:商户号,appkey:商户DES密钥"
+
+;支付插件要求传入的支付方式参数
+select = ""
\ No newline at end of file
diff --git a/plugins/jdpay/inc/cert/config.ini b/plugins/jdpay/inc/cert/config.ini
new file mode 100644
index 0000000..d16fa09
--- /dev/null
+++ b/plugins/jdpay/inc/cert/config.ini
@@ -0,0 +1,46 @@
+[wepay]
+;======================= 商户开通的商户号
+merchantNum=22294531
+
+;======================= 商户DES密钥
+desKey=ta4E/aspLA3lgFGKmNDNRYU92RkZ4w2t
+
+;=======================京东支付在线支付PC端请求地址
+serverPayUrl=https://wepay.jd.com/jdpay/saveOrder
+
+;=======================京东支付在线支付H5端请求地址
+;serverPayUrl=https://h5pay.jd.com/jdpay/saveOrder
+
+;=======================京东查询服务地址
+serverQueryUrl=https://paygate.jd.com/service/query
+
+;=======================退款服务地址
+refundUrl=https://paygate.jd.com/service/refund
+
+;=======================callback地址
+callbackUrl=http://localhost/jdPay2Demo/com/jdjr/pay/demo/action/CallBack.php
+
+;=======================notify地址
+notifyUrl=http://localhost/jdPay2Demo/com/jdjr/pay/demo/action/AsnyNotify.php
+
+;======================扫码创建订单
+uniorderUrl= https://paygate.jd.com/service/uniorder
+
+;======================交易号查退款
+queryRefundUrl=https://paygate.jd.com/service/queryRefund
+
+;==========撤销地址
+revokeUrl=https://paygate.jd.com/service/revoke
+
+;=========付款码支付
+fkmPayUrl=https://paygate.jd.com/service/fkmPay
+
+;=========用户关系查询地址
+getUserRelationUrl=https://paygate.jd.com/service/getUserRelation
+
+;=========用户关系解绑地址
+cancelUserRelationUrl=https://paygate.jd.com/service/cancelUserRelation
+
+;=========白条策略查询地址
+queryBaiTiaoFQUrl=https://paygate.jd.com/service/queryBaiTiaoFQ
+
diff --git a/plugins/jdpay/inc/cert/seller_rsa_private_key.pem b/plugins/jdpay/inc/cert/seller_rsa_private_key.pem
new file mode 100644
index 0000000..7787101
--- /dev/null
+++ b/plugins/jdpay/inc/cert/seller_rsa_private_key.pem
@@ -0,0 +1,18 @@
+-----BEGIN PRIVATE KEY-----
+MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALXf6twUqul1TATO
++5nA66p2wjnRd+g96IXpfV6Sf8WXxwizGj+L19LQYRBXpZHmRh82prJ48d0FcHbo
+CiN8pKutnuZrrKYhvORysOc5bVli0hcCn1TfYDoUWJ1UhjUQloqZKWjUz6LV9QY6
+bIZ1W4+Hmw6HK1bfFwUq0WzIGkJNAgMBAAECgYBlIFQeev9tP+M86TnMjBB9f/sO
+2wGpCIM5slIbO6n/3By3IZ7+pmsitOrDg3h0X22t/V1C7yzMkDGwa+T3Rl7ogwc4
+UNVj0ZQorOTx3OEPx3nP1yT3zmJ9djKaHKAmee4XmhQHdqqIuMT2XQaqatBzcsnP
++Jnw/WVOsIJIqMeFAQJBAP9yq4hE+UfM/YSXZ5JR33k9RolUUq8S/elmeJIDo/3N
+2qDmzLjOr9iEZHxioc8JOxubtZ0BxA+NdfKz4v0BSpkCQQC2RIrAPRj9vOk6GfT9
+W1hbJ4GdnzTb+4vp3RDQQ3x9JGXzWFlg8xJT1rNgM8R95Gkxn3KGnYHJQTLlCsIy
+2FnVAkAWXolM3pVhxz6wHL4SHx9Ns6L4payz7hrUFIgcaTs0H5G0o2FsEZVuhXFz
+PwPiaHGHomQOAriTkBSzEzOeaj2JAkEAtYUFefZfETQ2QbrgFgIGuKFboJKRnhOi
+f8G9oOvU6vx43CS8vqTVN9G2yrRDl+0GJnlZIV9zhe78tMZGKUT2EQJAHQawBKGl
+XlMe49Fo24yOy5DvKeohobjYqzJAtbqaAH7iIQTpOZx91zUcL/yG4dWS6r+wGO7Z
+1RKpupOJLKG3lA==
+-----END PRIVATE KEY-----
+
+
diff --git a/plugins/jdpay/inc/cert/wy_rsa_public_key.pem b/plugins/jdpay/inc/cert/wy_rsa_public_key.pem
new file mode 100644
index 0000000..20de941
--- /dev/null
+++ b/plugins/jdpay/inc/cert/wy_rsa_public_key.pem
@@ -0,0 +1,6 @@
+-----BEGIN PUBLIC KEY-----
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCKE5N2xm3NIrXON8Zj19GNtLZ8
+xwEQ6uDIyrS3S03UhgBJMkGl4msfq4Xuxv6XUAN7oU1XhV3/xtabr9rXto4Ke3d6
+WwNbxwXnK5LSgsQc1BhT5NcXHXpGBdt7P8NMez5qGieOKqHGvT0qvjyYnYA29a8Z
+4wzNR7vAVHp36uD5RwIDAQAB
+-----END PUBLIC KEY-----
diff --git a/plugins/jdpay/inc/common/HttpUtils.php b/plugins/jdpay/inc/common/HttpUtils.php
new file mode 100644
index 0000000..7c3256a
--- /dev/null
+++ b/plugins/jdpay/inc/common/HttpUtils.php
@@ -0,0 +1,34 @@
+";
+ //error_log("=========>sourceSignString:".$sourceSignString, 0);
+ $sha256SourceSignString = hash ( "sha256", $sourceSignString);
+ //error_log($sha256SourceSignString, 0);
+ //echo "sha256SourceSignString=".htmlspecialchars($sha256SourceSignString)."
";
+ return RSAUtils::encryptByPrivateKey ($sha256SourceSignString);
+ }
+
+ public static function sign($params,$unSignKeyList) {
+ ksort($params);
+ $sourceSignString = SignUtil::signString ( $params, $unSignKeyList );
+ //error_log($sourceSignString, 0);
+ $sha256SourceSignString = hash ( "sha256", $sourceSignString);
+ //error_log($sha256SourceSignString, 0);
+ return RSAUtils::encryptByPrivateKey ($sha256SourceSignString);
+ }
+
+ public static function signString($data, $unSignKeyList) {
+ $linkStr="";
+ $isFirst=true;
+ ksort($data);
+ foreach($data as $key=>$value){
+ if($value=="" || in_array($key, $unSignKeyList)) continue;
+ $linkStr.=$key."=".$value."&";
+ }
+ return substr($linkStr,0,-1);
+ }
+}
diff --git a/plugins/jdpay/inc/common/TDESUtil.php b/plugins/jdpay/inc/common/TDESUtil.php
new file mode 100644
index 0000000..6056586
--- /dev/null
+++ b/plugins/jdpay/inc/common/TDESUtil.php
@@ -0,0 +1,59 @@
+
+ * 补位后 byte[] = 描述有效数据长度(int)的byte[]+原始数据byte[]+补位byte[]
+ *
+ * @param
+ * sourceData 元数据字符串
+ * @return 返回3DES加密后的16进制表示的字符串
+ */
+ public static function encrypt2HexStr($keys, $sourceData) {
+ $length = strlen($sourceData);
+ $result = '';
+ for($i = 0; $i < 4; $i ++) {
+ $shift = (4 - 1 - $i) * 8;
+ $result .= chr(($length >> $shift) & 0x000000FF);
+ }
+ $result .= $sourceData;
+ $add = 8 - ($length+4) % 8;
+ if($add>0){
+ for($i=0; $i<$add; $i++){
+ $result .= chr(0);
+ }
+ }
+ $desdata = self::encrypt( $result, $keys );
+ return bin2hex( $desdata );
+ }
+
+ /**
+ * 3DES 解密 进行了补位的16进制表示的字符串数据
+ *
+ * @return
+ *
+ */
+ public static function decrypt4HexStr($keys, $data) {
+ $unDesResult = self::decrypt(hex2bin($data),$keys);
+
+ $length=0;
+ for($i = 0; $i < 4; $i ++) {
+ $shift = (4 - 1 - $i) * 8;
+ $length += (ord($unDesResult[$i]) & 0x000000FF) << $shift;
+ }
+ $result = substr($unDesResult, 4, $length);
+
+ return $result;
+ }
+
+ // 加密算法
+ public static function encrypt($input, $key) {
+ return openssl_encrypt($input, 'des-ede3', $key, OPENSSL_NO_PADDING, "");
+ }
+ // 解密算法
+ public static function decrypt($encrypted, $key) {
+ return openssl_decrypt($encrypted, 'des-ede3', $key, OPENSSL_NO_PADDING, "");
+ }
+}
diff --git a/plugins/jdpay/inc/common/XMLUtil.php b/plugins/jdpay/inc/common/XMLUtil.php
new file mode 100644
index 0000000..4581b38
--- /dev/null
+++ b/plugins/jdpay/inc/common/XMLUtil.php
@@ -0,0 +1,123 @@
+createElement("jdpay");
+ $item = $dom->appendChild($item);
+ }
+
+ foreach ($arr as $key=>$val){
+ $itemx = $dom->createElement(is_string($key)?$key:"item");
+ $itemx = $item->appendChild($itemx);
+ if (!is_array($val)){
+ $text = $dom->createTextNode($val);
+ $text = $itemx->appendChild($text);
+
+ }else {
+ XMLUtil::arrtoxml($val,$dom,$itemx);
+ }
+ }
+ return $dom;
+ }
+
+ public static function xmlToString($dom){
+ $xmlStr = $dom->saveXML();
+ $xmlStr = str_replace("\r", "", $xmlStr);
+ $xmlStr = str_replace("\n", "", $xmlStr);
+ $xmlStr = str_replace("\t", "", $xmlStr);
+ $xmlStr = preg_replace("/>\s+", "><", $xmlStr);
+ $xmlStr = preg_replace("/\s+\/>/", "/>", $xmlStr);
+ $xmlStr = str_replace("=utf-8", "=UTF-8", $xmlStr);
+ return $xmlStr;
+ }
+
+ public static function encryptReqXml($param){
+ $dom = XMLUtil::arrtoxml($param);
+ $xmlStr = XMLUtil::xmlToString($dom);
+ //echo "源串:".htmlspecialchars($xmlStr)."
";
+ $sha256SourceSignString = hash("sha256", $xmlStr);
+ //echo "摘要:".$sha256SourceSignString."
";
+ $sign = RSAUtils::encryptByPrivateKey($sha256SourceSignString);
+ $rootDom = $dom->getElementsByTagName("jdpay");
+ $signDom = $dom->createElement("sign");
+ $signDom = $rootDom[0]->appendChild($signDom);
+ $signText = $dom->createTextNode($sign);
+ $signText = $signDom->appendChild($signText);
+ $data = XMLUtil::xmlToString($dom);
+ //echo "封装后:".htmlspecialchars($data)."
";
+
+ $desKey = Confid_desKey;
+ $keys = base64_decode($desKey);
+ $encrypt = TDESUtil::encrypt2HexStr($keys, $data);
+ //echo "3DES后:".$encrypt."
";
+ $encrypt = base64_encode($encrypt);
+ //echo "base64后:".$encrypt."
";
+ $reqParam;
+ $reqParam["version"]=$param["version"];
+ $reqParam["merchant"]=$param["merchant"];
+ $reqParam["encrypt"]=$encrypt;
+ $reqDom = XMLUtil::arrtoxml($reqParam,0,0);
+ $reqXmlStr = XMLUtil::xmlToString($reqDom);
+ //echo htmlspecialchars($reqXmlStr)."
";
+ return $reqXmlStr;
+ }
+
+ public static function decryptResXml($resultData,&$resData){
+ $resultXml = simplexml_load_string($resultData);
+ $resultObj = json_decode(json_encode($resultXml),TRUE);
+ $encryptStr = $resultObj["encrypt"];
+ $encryptStr=base64_decode($encryptStr);
+ $desKey = Confid_desKey;
+ $keys = base64_decode($desKey);
+ $reqBody = TDESUtil::decrypt4HexStr($keys, $encryptStr);
+ //echo "请求返回encrypt Des解密后:".$reqBody."\n";
+
+ $bodyXml = simplexml_load_string($reqBody);
+ //echo "请求返回encrypt Des解密后:".$bodyXml->saveXML()."\n";
+ $resData = json_decode(json_encode($bodyXml),TRUE);
+
+ $inputSign = $resData["sign"];
+// $bodyDom = XMLUtil::arrtoxml($bodyObj,0,0);
+// $rootDom = $bodyDom->getElementsByTagName("jdpay");
+// $signNodelist = $rootDom[0]->getElementsByTagName("sign");
+// $rootDom[0]->removeChild($signNodelist[0]);
+
+// $reqBodyStr = XMLUtil::xmlToString($bodyDom);
+
+ $startIndex = strpos($reqBody,"
");
+ $endIndex = strpos($reqBody," ");
+
+ if($startIndex!=false && $endIndex!=false){
+ $xmls = substr($reqBody, 0,$startIndex);
+ $xmle = substr($reqBody,$endIndex+7,strlen($reqBody));
+ $xml=$xmls.$xmle;
+ }
+
+ //echo "本地摘要原串:".$xml."\n";
+ $sha256SourceSignString = hash("sha256", $xml);
+ //echo "本地摘要:".$sha256SourceSignString."\n";
+
+ $decryptStr = RSAUtils::decryptByPublicKey($inputSign);
+ //echo "解密后摘要:".$decryptStr."\n";
+ if($decryptStr==$sha256SourceSignString){
+ //echo "验签成功
";
+ $flag=true;
+ }else{
+ //echo "验签失败
";
+ $flag=false;
+ }
+ $resData["version"]=$resultObj["version"];
+ $resData["merchant"]=$resultObj["merchant"];
+ $resData["result"]=$resultObj["result"];
+ //echo var_dump($resData);
+ return $flag;
+ }
+}
diff --git a/plugins/jdpay/notify.php b/plugins/jdpay/notify.php
new file mode 100644
index 0000000..dc3447b
--- /dev/null
+++ b/plugins/jdpay/notify.php
@@ -0,0 +1,27 @@
+exec("update `pre_order` set `status` ='1' where `trade_no`='".TRADE_NO."'")){
+ $DB->exec("update `pre_order` set `api_trade_no` ='$trade_no',`endtime` ='$date',`date` =NOW() where `trade_no`='".TRADE_NO."'");
+ processOrder($order);
+ }
+ }
+ }
+}else{
+ echo "error";
+}
\ No newline at end of file
diff --git a/plugins/jdpay/refund.php b/plugins/jdpay/refund.php
new file mode 100644
index 0000000..1d1a78a
--- /dev/null
+++ b/plugins/jdpay/refund.php
@@ -0,0 +1,39 @@
+http_post_data($url, $reqXmlStr);
+//echo $return_content."\n";
+
+$flag=XMLUtil::decryptResXml($return_content,$resData);
+//echo var_dump($resData);
+
+if($flag){
+ if($resData['status'] == "1"){
+ $result = ['code'=>0, 'trade_no'=>$resData['oTradeNum'], 'refund_fee'=>$resData['amount']];
+ }else{
+ $result = ['code'=>-1, 'msg'=>'['.$resData['result']['code'].']'.$resData['result']['desc']];
+ }
+}else{
+ $result = ['code'=>-1, 'msg'=>'验签失败'];
+}
+
+return $result;
\ No newline at end of file
diff --git a/plugins/jdpay/return.php b/plugins/jdpay/return.php
new file mode 100644
index 0000000..a5d551f
--- /dev/null
+++ b/plugins/jdpay/return.php
@@ -0,0 +1,57 @@
+";
+//$decryptBASE64Arr = base64_decode($sign);
+$decryptStr = RSAUtils::decryptByPublicKey($sign);
+//echo "decryptStr=".htmlspecialchars($decryptStr)."
";
+$sha256SourceSignString = hash ( "sha256", $strSourceData);
+//echo "sha256SourceSignString=".htmlspecialchars($sha256SourceSignString)."
";
+if($decryptStr == $sha256SourceSignString){
+ $trade_no = daddslashes($param["tradeNum"]);
+ $out_trade_no = daddslashes($param["tradeNum"]);
+ if($out_trade_no == TRADE_NO && $param["amount"]==$order['money']*100 && $order['status']==0){
+ $url=creat_callback($order);
+
+ if($order['status']==0){
+ if($DB->exec("update `pre_order` set `status` ='1' where `trade_no`='".TRADE_NO."'")){
+ $DB->exec("update `pre_order` set `api_trade_no` ='$trade_no',`endtime` ='$date',`date` =NOW() where `trade_no`='".TRADE_NO."'");
+ processOrder($order,false);
+ }
+ echo '';
+ }else{
+ echo '';
+ }
+ }else{
+ sysmsg('订单信息校验失败');
+ }
+}else{
+ sysmsg("验证签名失败!strSourceData=".htmlspecialchars($strSourceData));
+}
diff --git a/plugins/jdpay/submit.php b/plugins/jdpay/submit.php
new file mode 100644
index 0000000..3603028
--- /dev/null
+++ b/plugins/jdpay/submit.php
@@ -0,0 +1,65 @@
+window.location.href='/submit2.php?typeid={$order['type']}&trade_no={$trade_no}';";exit;
+}
+if(strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger')!==false){
+ include(SYSTEM_ROOT.'pages/wxopen.php');
+ exit;
+}
+
+require_once(PAY_ROOT."inc/common/SignUtil.php");
+require_once(PAY_ROOT."inc/common/TDESUtil.php");
+
+if(checkmobile()==true){
+ $oriUrl = 'https://h5pay.jd.com/jdpay/saveOrder';
+}else{
+ $oriUrl = 'https://wepay.jd.com/jdpay/saveOrder';
+}
+
+$param=array();
+$param["version"]='V2.0';
+$param["merchant"]=$channel['appid'];
+$param["tradeNum"]=$trade_no;
+$param["tradeName"]=$ordername;
+$param["tradeTime"]= date('YmdHis');
+$param["amount"]= strval($order['money']*100);
+$param["currency"]= 'CNY';
+$param["callbackUrl"]= $siteurl.'pay/jdpay/return/'.TRADE_NO.'/';
+$param["notifyUrl"]= $conf['localurl'].'pay/jdpay/notify/'.TRADE_NO.'/';
+$param["ip"]= $clientip;
+$param["userId"]= '';
+$param["orderType"]= '1';
+$unSignKeyList = array("sign");
+$desKey = $channel['appkey'];
+$sign = SignUtil::signWithoutToHex($param, $unSignKeyList);
+//echo $sign."
";
+$param["sign"] = $sign;
+$keys = base64_decode($desKey);
+
+$param["tradeNum"]=TDESUtil::encrypt2HexStr($keys, $param["tradeNum"]);
+if($param["tradeName"] != null && $param["tradeName"]!=""){
+ $param["tradeName"]=TDESUtil::encrypt2HexStr($keys, $param["tradeName"]);
+}
+$param["tradeTime"]=TDESUtil::encrypt2HexStr($keys, $param["tradeTime"]);
+$param["amount"]=TDESUtil::encrypt2HexStr($keys, $param["amount"]);
+$param["currency"]=TDESUtil::encrypt2HexStr($keys, $param["currency"]);
+$param["callbackUrl"]=TDESUtil::encrypt2HexStr($keys, $param["callbackUrl"]);
+$param["notifyUrl"]=TDESUtil::encrypt2HexStr($keys, $param["notifyUrl"]);
+$param["ip"]=TDESUtil::encrypt2HexStr($keys, $param["ip"]);
+
+if($param["userId"] != null && $param["userId"]!=""){
+ $param["userId"]=TDESUtil::encrypt2HexStr($keys, $param["userId"]);
+}
+if($param["orderType"] != null && $param["orderType"]!=""){
+ $param["orderType"]=TDESUtil::encrypt2HexStr($keys, $param["orderType"]);
+}
+//print_R($param);exit;
+
+echo '
';
+?>
\ No newline at end of file
diff --git a/plugins/micro/config.ini b/plugins/micro/config.ini
new file mode 100644
index 0000000..e8817e5
--- /dev/null
+++ b/plugins/micro/config.ini
@@ -0,0 +1,21 @@
+[config]
+;支付插件英文名称,需和目录名称一致,不能有重复
+name = "micro"
+
+;支付插件显示名称
+showname = "小微支付"
+
+;支付插件作者
+author = "小微支付"
+
+;支付插件作者链接
+link = "http://blog.cccyun.cc/"
+
+;支付插件支持的支付方式,多种方式用英文,隔开,可选的有alipay,qqpay,wxpay,bank
+types = "alipay,wxpay"
+
+;支付插件要求传入的参数以及参数显示名称,可选的有appid,appkey,appsecret,appurl,appmchid
+inputs = "appurl:接口地址,appid:APPID,appkey:APPKEY,appmchid:商户号MCHID"
+
+;支付插件要求传入的支付方式参数
+select = ""
\ No newline at end of file
diff --git a/plugins/micro/inc/micro.config.php b/plugins/micro/inc/micro.config.php
new file mode 100644
index 0000000..35bcf89
--- /dev/null
+++ b/plugins/micro/inc/micro.config.php
@@ -0,0 +1,32 @@
+
\ No newline at end of file
diff --git a/plugins/micro/inc/micro_core.function.php b/plugins/micro/inc/micro_core.function.php
new file mode 100644
index 0000000..e25bc11
--- /dev/null
+++ b/plugins/micro/inc/micro_core.function.php
@@ -0,0 +1,168 @@
+$val) {
+ $arg.=$key."=".$val."&";
+ }
+ //去掉最后一个&字符
+ $arg = substr($arg,0,-1);
+
+ return $arg;
+}
+/**
+ * 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串,并对字符串做urlencode编码
+ * @param $para 需要拼接的数组
+ * return 拼接完成以后的字符串
+ */
+function createLinkstringUrlencode($para) {
+ $arg = "";
+ foreach ($para as $key=>$val) {
+ $arg.=$key."=".urlencode($val)."&";
+ }
+ //去掉最后一个&字符
+ $arg = substr($arg,0,-1);
+
+ return $arg;
+}
+/**
+ * 除去数组中的空值和签名参数
+ * @param $para 签名参数组
+ * return 去掉空值与签名参数后的新签名参数组
+ */
+function paraFilter($para) {
+ $para_filter = array();
+ foreach ($para as $key=>$val) {
+ if($key == "sign" || $key == "sign_type" || $val == "")continue;
+ else $para_filter[$key] = $para[$key];
+ }
+ return $para_filter;
+}
+/**
+ * 对数组排序
+ * @param $para 排序前的数组
+ * return 排序后的数组
+ */
+function argSort($para) {
+ ksort($para);
+ reset($para);
+ return $para;
+}
+/**
+ * 写日志,方便测试(看网站需求,也可以改成把记录存入数据库)
+ * 注意:服务器需要开通fopen配置
+ * @param $word 要写入日志里的文本内容 默认值:空值
+ */
+function logResult($word='') {
+ $fp = fopen("log.txt","a");
+ flock($fp, LOCK_EX) ;
+ fwrite($fp,"执行日期:".strftime("%Y%m%d%H%M%S",time())."\n".$word."\n");
+ flock($fp, LOCK_UN);
+ fclose($fp);
+}
+
+/**
+ * 远程获取数据,POST模式
+ * 注意:
+ * 1.使用Crul需要修改服务器中php.ini文件的设置,找到php_curl.dll去掉前面的";"就行了
+ * 2.文件夹中cacert.pem是SSL证书请保证其路径有效,目前默认路径是:getcwd().'\\cacert.pem'
+ * @param $url 指定URL完整路径地址
+ * @param $cacert_url 指定当前工作目录绝对路径
+ * @param $para 请求的数据
+ * @param $input_charset 编码格式。默认值:空值
+ * return 远程输出的数据
+ */
+function getHttpResponsePOST($url, $cacert_url, $para, $input_charset = '') {
+
+ if (trim($input_charset) != '') {
+ $url = $url."_input_charset=".$input_charset;
+ }
+ $curl = curl_init($url);
+ curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//SSL证书认证
+ curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);//严格认证
+ curl_setopt($curl, CURLOPT_HEADER, 0 ); // 过滤HTTP头
+ curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);// 显示输出结果
+ curl_setopt($curl,CURLOPT_POST,true); // post传输数据
+ curl_setopt($curl,CURLOPT_POSTFIELDS,$para);// post传输数据
+ $responseText = curl_exec($curl);
+ //var_dump( curl_error($curl) );//如果执行curl过程中出现异常,可打开此开关,以便查看异常内容
+ curl_close($curl);
+
+ return $responseText;
+}
+
+/**
+ * 远程获取数据,GET模式
+ * 注意:
+ * 1.使用Crul需要修改服务器中php.ini文件的设置,找到php_curl.dll去掉前面的";"就行了
+ * 2.文件夹中cacert.pem是SSL证书请保证其路径有效,目前默认路径是:getcwd().'\\cacert.pem'
+ * @param $url 指定URL完整路径地址
+ * @param $cacert_url 指定当前工作目录绝对路径
+ * return 远程输出的数据
+ */
+function getHttpResponseGET($url,$cacert_url) {
+ $curl = curl_init($url);
+ curl_setopt($curl, CURLOPT_HEADER, 0 ); // 过滤HTTP头
+ curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);// 显示输出结果
+ curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//SSL证书认证
+ curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);//严格认证
+ $responseText = curl_exec($curl);
+ //var_dump( curl_error($curl) );//如果执行curl过程中出现异常,可打开此开关,以便查看异常内容
+ curl_close($curl);
+
+ return $responseText;
+}
+
+/**
+ * 实现多种字符编码方式
+ * @param $input 需要编码的字符串
+ * @param $_output_charset 输出的编码格式
+ * @param $_input_charset 输入的编码格式
+ * return 编码后的字符串
+ */
+function charsetEncode($input,$_output_charset ,$_input_charset) {
+ $output = "";
+ if(!isset($_output_charset) )$_output_charset = $_input_charset;
+ if($_input_charset == $_output_charset || $input ==null ) {
+ $output = $input;
+ } elseif (function_exists("mb_convert_encoding")) {
+ $output = mb_convert_encoding($input,$_output_charset,$_input_charset);
+ } elseif(function_exists("iconv")) {
+ $output = iconv($_input_charset,$_output_charset,$input);
+ } else die("sorry, you have no libs support for charset change.");
+ return $output;
+}
+/**
+ * 实现多种字符解码方式
+ * @param $input 需要解码的字符串
+ * @param $_output_charset 输出的解码格式
+ * @param $_input_charset 输入的解码格式
+ * return 解码后的字符串
+ */
+function charsetDecode($input,$_input_charset ,$_output_charset) {
+ $output = "";
+ if(!isset($_input_charset) )$_input_charset = $_input_charset ;
+ if($_input_charset == $_output_charset || $input ==null ) {
+ $output = $input;
+ } elseif (function_exists("mb_convert_encoding")) {
+ $output = mb_convert_encoding($input,$_output_charset,$_input_charset);
+ } elseif(function_exists("iconv")) {
+ $output = iconv($_input_charset,$_output_charset,$input);
+ } else die("sorry, you have no libs support for charset changes.");
+ return $output;
+}
+?>
\ No newline at end of file
diff --git a/plugins/micro/inc/micro_md5.function.php b/plugins/micro/inc/micro_md5.function.php
new file mode 100644
index 0000000..52c6a14
--- /dev/null
+++ b/plugins/micro/inc/micro_md5.function.php
@@ -0,0 +1,41 @@
+
\ No newline at end of file
diff --git a/plugins/micro/inc/micro_notify.class.php b/plugins/micro/inc/micro_notify.class.php
new file mode 100644
index 0000000..a8995fa
--- /dev/null
+++ b/plugins/micro/inc/micro_notify.class.php
@@ -0,0 +1,118 @@
+alipay_config = $alipay_config;
+ $this->http_verify_url = $this->alipay_config['apiurl'].'api/query';
+ }
+ function AlipayNotify($alipay_config) {
+ $this->__construct($alipay_config);
+ }
+ /**
+ * 针对notify_url验证消息是否是支付宝发出的合法消息
+ * @return 验证结果
+ */
+ function verifyNotify(){
+ if(empty($_POST)) {//判断POST来的数组是否为空
+ return false;
+ }
+ else {
+ //生成签名结果
+ $isSign = $this->getSignVeryfy($_POST, $_POST["sign"]);
+ //获取支付宝远程服务器ATN结果(验证是否是支付宝发来的消息)
+ $responseTxt = true;
+ //$responseTxt = $this->getResponse($_POST["trade_no"]);
+
+ //验证
+ //$responsetTxt的结果不是true,与服务器设置问题、合作身份者ID、notify_id一分钟失效有关
+ //isSign的结果不是true,与安全校验码、请求时的参数格式(如:带自定义参数等)、编码格式有关
+ if ($responseTxt && $isSign) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * 针对return_url验证消息是否是支付宝发出的合法消息
+ * @return 验证结果
+ */
+ function verifyReturn(){
+ if(empty($_GET)) {//判断GET来的数组是否为空
+ return false;
+ }
+ else {
+ $responseTxt = $this->getResponse($_GET["out_trade_no"]);
+
+ //验证
+ if ($responseTxt) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * 获取返回时的签名验证结果
+ * @param $para_temp 通知返回来的参数数组
+ * @param $sign 返回的签名结果
+ * @return 签名验证结果
+ */
+ function getSignVeryfy($para_temp, $sign) {
+ //除去待签名参数数组中的空值和签名参数
+ $para_filter = paraFilter($para_temp);
+
+ //对待签名参数数组排序
+ $para_sort = argSort($para_filter);
+
+ //把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
+ $prestr = createLinkstring($para_sort);
+
+ $isSgin = false;
+ $isSgin = md5Verify($prestr, $sign, $this->alipay_config['key']);
+
+ return $isSgin;
+ }
+
+ /**
+ * 获取远程服务器ATN结果,验证返回URL
+ * @param $notify_id 通知校验ID
+ * @return 服务器ATN结果
+ * 验证结果集:
+ * invalid命令参数不对 出现这个错误,请检测返回处理中partner和key是否为空
+ * true 返回正确信息
+ * false 请检查防火墙或者是服务器阻止端口问题以及验证时间是否超过一分钟
+ */
+ function getResponse($out_trade_no) {
+ $param = [
+ 'appid'=> $this->alipay_config['appid'],
+ 'out_trade_no' => $out_trade_no,
+ ];
+ $sign = '';
+ foreach ($param as $k => $v) {
+ if($v) $sign .= $k . '=' . $v . '&';
+ }
+ $param['sign'] = md5(rtrim($sign, '&') . $this->alipay_config['key']);
+ $data = get_curl($this->http_verify_url,http_build_query($param));
+ $arr = json_decode($data,true);
+ if(isset($arr['code'])&&$arr['code']==1){
+ return true;
+ }else{
+ return false;
+ }
+ }
+}
+?>
\ No newline at end of file
diff --git a/plugins/micro/inc/micro_submit.class.php b/plugins/micro/inc/micro_submit.class.php
new file mode 100644
index 0000000..e5a67c2
--- /dev/null
+++ b/plugins/micro/inc/micro_submit.class.php
@@ -0,0 +1,96 @@
+alipay_config = $alipay_config;
+ $this->alipay_gateway_new = $this->alipay_config['apiurl'].'api/payment';
+ }
+ function AlipaySubmit($alipay_config) {
+ $this->__construct($alipay_config);
+ }
+
+ /**
+ * 生成签名结果
+ * @param $para_sort 已排序要签名的数组
+ * return 签名结果字符串
+ */
+ function buildRequestMysign($para_sort) {
+ //把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
+ $prestr = createLinkstring($para_sort);
+
+ $mysign = md5Sign($prestr, $this->alipay_config['key']);
+
+ return $mysign;
+ }
+
+ /**
+ * 生成要请求给支付宝的参数数组
+ * @param $para_temp 请求前的参数数组
+ * @return 要请求的参数数组
+ */
+ function buildRequestPara($para_temp) {
+ //除去待签名参数数组中的空值和签名参数
+ $para_filter = paraFilter($para_temp);
+
+ //对待签名参数数组排序
+ $para_sort = argSort($para_filter);
+
+ //生成签名结果
+ $mysign = $this->buildRequestMysign($para_sort);
+
+ //签名结果与签名方式加入请求提交参数组中
+ $para_sort['sign'] = $mysign;
+
+ return $para_sort;
+ }
+
+ /**
+ * 生成要请求给支付宝的参数数组
+ * @param $para_temp 请求前的参数数组
+ * @return 要请求的参数数组字符串
+ */
+ function buildRequestParaToString($para_temp) {
+ //待请求参数数组
+ $para = $this->buildRequestPara($para_temp);
+
+ //把参数组中所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串,并对字符串做urlencode编码
+ $request_data = createLinkstringUrlencode($para);
+
+ return $request_data;
+ }
+
+ /**
+ * 建立请求,以表单HTML形式构造(默认)
+ * @param $para_temp 请求参数数组
+ * @param $method 提交方式。两个值可选:post、get
+ * @param $button_name 确认按钮显示文字
+ * @return 提交表单HTML文本
+ */
+ function buildRequestForm($para_temp, $method='POST', $button_name='正在跳转') {
+ //待请求参数数组
+ $para = $this->buildRequestPara($para_temp);
+
+ $sHtml = "
";
+
+ $sHtml = $sHtml."";
+
+ return $sHtml;
+ }
+}
+?>
\ No newline at end of file
diff --git a/plugins/micro/notify.php b/plugins/micro/notify.php
new file mode 100644
index 0000000..ebb3615
--- /dev/null
+++ b/plugins/micro/notify.php
@@ -0,0 +1,38 @@
+verifyNotify();
+
+if($verify_result) {//验证成功
+ //商户订单号
+ $out_trade_no = daddslashes($_POST['out_trade_no']);
+
+ //支付宝交易号
+ $trade_no = daddslashes($_POST['trade_no']);
+
+ //金额
+ $money = $_POST['money'];
+
+ if ($_POST['status'] == 1) {
+ //付款完成后,支付宝系统发送该交易状态通知
+ if($out_trade_no == TRADE_NO && round($money,2)==round($order['money'],2) && $order['status']==0){
+ if($DB->exec("update `pre_order` set `status` ='1' where `trade_no`='$out_trade_no'")){
+ $DB->exec("update `pre_order` set `api_trade_no` ='$trade_no',`endtime` ='$date',`date` =NOW() where `trade_no`='$out_trade_no'");
+ processOrder($order);
+ }
+ }
+ }
+
+ echo "success";
+}
+else {
+ //验证失败
+ echo "fail";
+}
+
+?>
diff --git a/plugins/micro/return.php b/plugins/micro/return.php
new file mode 100644
index 0000000..6c33112
--- /dev/null
+++ b/plugins/micro/return.php
@@ -0,0 +1,54 @@
+window.location.href="'.$url['return'].'";';
+ exit;
+}else{
+ $alipayNotify = new AlipayNotify($alipay_config);
+ $verify_result = $alipayNotify->verifyReturn();
+ if($verify_result){
+ if($order['status']==0){
+ if($DB->exec("update `pre_order` set `status` ='1' where `trade_no`='$out_trade_no'")){
+ $DB->exec("update `pre_order` set `endtime` ='$date',`date` =NOW() where `trade_no`='$out_trade_no'");
+ processOrder($order,false);
+ }
+ }
+ echo '';
+ exit;
+ }
+}
+
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/micro/submit.php b/plugins/micro/submit.php
new file mode 100644
index 0000000..865b644
--- /dev/null
+++ b/plugins/micro/submit.php
@@ -0,0 +1,19 @@
+ trim($alipay_config['appid']),
+ "type" => $order['typename']=='alipay'?'alipay':'cashier',
+ "notify_url" => $conf['localurl'].'pay/micro/notify/'.TRADE_NO.'/',
+ "return_url" => $siteurl.'pay/micro/return/'.TRADE_NO.'/',
+ "out_trade_no" => $trade_no,
+ "name" => $order['name'],
+ "money" => $order['money'],
+ "mchid" => trim($alipay_config['mchid'])
+);
+//建立请求
+$alipaySubmit = new AlipaySubmit($alipay_config);
+$html_text = $alipaySubmit->buildRequestForm($parameter);
+echo $html_text;
diff --git a/plugins/qqpay/cert/apiclient_cert.pem b/plugins/qqpay/cert/apiclient_cert.pem
new file mode 100644
index 0000000..9804808
--- /dev/null
+++ b/plugins/qqpay/cert/apiclient_cert.pem
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEHjCCA4egAwIBAgIFAPpX1NAwDQYJKoZIhvcNAQEFBQAwgakxCzAJBgNVBAYT
+AkNOMRIwEAYDVQQIEwlHVUFOR0RPTkcxETAPBgNVBAcTCFNIRU5aSEVOMRMwEQYD
+VQQKEwp0ZW5wYXkuY29tMR0wGwYDVQQLExRUZW5wYXkuY29tIENBIENlbnRlcjEb
+MBkGA1UEAxMSVGVucGF5LmNvbSBSb290IENBMSIwIAYJKoZIhvcNAQkBFhNzZXJ2
+aWNlQHRlbmNlbnQuY29tMB4XDTE5MTIxNjA1MjYwNVoXDTIwMTIxNTA1MjYwNVow
+NzELMAkGA1UEBhMCQ04xEzARBgNVBAseCgBBAFAASYvBTmYxEzARBgNVBAMTCjE0
+MDUwNTA2MDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQChqjQlY0T9
+irgysbN+KalvE0h4jhqyA3JYnOwlU0Wx5nZkw1mZQ/HHsKSx3Pg3fg6xV67GjtTB
+KMt5vHSZ8TTLZULNAuyKOWmKfW2JCpOzDEAkSp2zf/5IjOi4Tsmr4oXernxtmyLK
+VmFRbLAZUJz0eBBN9puP8rWPKGVILm1DOH9pJa5YjSi1x/YtyytXfjt6yybaoKN6
+piVAg22qVmFZAgtl6emnajHVYPjdAJhto07aNr+x33XcGXF4OiZKzNIctHeUBULG
+iTVtwE4XDVHFk7BP4RqyTKvYEK8f9STe4eenvCJsaQKQx3cFG98F7dMv+uiDJr2D
+bKohwO9aCmvxAgMBAAGjggE9MIIBOTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQf
+Fh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRpZmljYXRlIjAdBgNVHQ4EFgQUVQb/1YCw
+f2Qa4tAQ2NYm4hmCJ5Ywgd4GA1UdIwSB1jCB04AUjNT3yuA8Gk/Mbnlvf811nF23
+fNihga+kgawwgakxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHVUFOR0RPTkcxETAP
+BgNVBAcTCFNIRU5aSEVOMRMwEQYDVQQKEwp0ZW5wYXkuY29tMR0wGwYDVQQLExRU
+ZW5wYXkuY29tIENBIENlbnRlcjEbMBkGA1UEAxMSVGVucGF5LmNvbSBSb290IENB
+MSIwIAYJKoZIhvcNAQkBFhNzZXJ2aWNlQHRlbmNlbnQuY29tggkArsVrh+ek+2Yw
+DQYJKoZIhvcNAQEFBQADgYEANPf3klU9cc3zYVPDCNL8UTxSUIClUh+twLnNjxhi
+V/7hd93g6mEmTOOREjAXI1h9JzO10Uw23JVZ+HbefqtCYS4IUsDF+r2X6oORz448
+ScQoM0emBh/QuNT40gOXoHi0+tWBXEhAY4o3Cjo7umIdo8N7ys+8XL2vKe1Mx1Ga
+jZc=
+-----END CERTIFICATE-----
diff --git a/plugins/qqpay/cert/apiclient_key.pem b/plugins/qqpay/cert/apiclient_key.pem
new file mode 100644
index 0000000..745f29a
--- /dev/null
+++ b/plugins/qqpay/cert/apiclient_key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQChqjQlY0T9irgy
+sbN+KalvE0h4jhqyA3JYnOwlU0Wx5nZkw1mZQ/HHsKSx3Pg3fg6xV67GjtTBKMt5
+vHSZ8TTLZULNAuyKOWmKfW2JCpOzDEAkSp2zf/5IjOi4Tsmr4oXernxtmyLKVmFR
+bLAZUJz0eBBN9puP8rWPKGVILm1DOH9pJa5YjSi1x/YtyytXfjt6yybaoKN6piVA
+g22qVmFZAgtl6emnajHVYPjdAJhto07aNr+x33XcGXF4OiZKzNIctHeUBULGiTVt
+wE4XDVHFk7BP4RqyTKvYEK8f9STe4eenvCJsaQKQx3cFG98F7dMv+uiDJr2DbKoh
+wO9aCmvxAgMBAAECggEBAIT2JI8/dwWEavyetH6mK0lEtc0ZKxGPziLdZUdJlr+7
+SVKUbIOmoxtWyA3VLH0Pe2wWLpP18zuunrNP8SKPhJlofil5JyyEDa6ufEFC5rlS
+8QooKE3yjiQDaH/1pN5unyXHomTPPCzoIIBEgQ1BBOX4PYixs74Po43LbomQTaMD
+bPgqSRzhi/diKCgBFuzgEthh3P6HdzUImZ7i8x1n0Fceu8Ynn9nng1WgcKvmbnti
+nuG4C0HERiLxB8IGfPB8ahFT5Qp529e8OVz3zhC3ea6Z29keDDS7hDf1tknEMMTw
+583Cnpb3Q8f2fUX3al0NA66yigy5B99T7Pgc8EUmQgECgYEAzVDOGJXkD86kk2ZR
+0+9fUDIIf95ZJCTrCX/4leCBxPo4VR8OtHvo6GpIhyhqXa2icHXm94prCF6LYLfG
+EPnFUdf/CRGSI8kIIJjK8oUT8MSdw0jDHLJoK7RHOasHytRkNfkujdk0v1F2gjn0
+ka6pd1/myJ1+h5jEGk2onfkcWyECgYEAyZLURVxm24HRUoQtimMw2+wed4IUHBB2
+Cye9ixQQka34ayj4ik5YYiceIfEKxQa8hxONaSqCy5SrcmtN3o9tBcp1Rj3y6bZ+
+slnlCdbX43/NNOzQsYGKIg5DRX/R8xnPO9q4jT004tUbmFV6WXHsg51TMGBeQQ6g
+gV75WrrZRtECgYAffOwOwzY14mhFHuUfzs9cWkAJdE1RiMPvMgwq2EKutf1buKal
+sXc35cz3xZACi/Wkr8BbaIQfxXg0vhqHUfccJTc86c/y4wr3DNfbN+OmAlF7uLYL
+uaTWRxDBXGSWi9pOmMe2A4DecpztPfwvN41P/IpFbDoSi7BPpGdeyuy5YQKBgFSy
+NjECt1FKRbrHQR9huDjgCJksdeio3gCn7ROQFbowgC3+pBfw/WAYkaevUVgiEXss
+MwHaU+TYjgVgovJ+D1AclpQyGWwsOyYTcZJlzIaRv5aaXsIG7RSMK6X7JCtiT9oV
+d/AYpK0e4B5s5CDLJpbStw6fn1r0m2pgjqOZ2QvRAoGAWpfRMRCNmL0S418cwYTy
+sNl3JzOkIz2+PQdys6zlQ69wXpUsZZzxQSINxm0bnHGBP1oxZnOwpGx2j/bc5/cc
+0h6g7V/3COKFxYU/JD7GHUYMHFrVCBrvAokETmnYYxEgEc/ZcqQnUoXRZcpDj4N3
+Cml1hpXvOFCNh7OhKZfN8d0=
+-----END PRIVATE KEY-----
diff --git a/plugins/qqpay/config.ini b/plugins/qqpay/config.ini
new file mode 100644
index 0000000..e5d9a22
--- /dev/null
+++ b/plugins/qqpay/config.ini
@@ -0,0 +1,21 @@
+[config]
+;支付插件英文名称,需和目录名称一致,不能有重复
+name = "qqpay"
+
+;支付插件显示名称
+showname = "QQ钱包官方支付"
+
+;支付插件作者
+author = "QQ钱包"
+
+;支付插件作者链接
+link = "https://qpay.qq.com/"
+
+;支付插件支持的支付方式,多种方式用英文,隔开,可选的有alipay,qqpay,wxpay,bank
+types = "qqpay"
+
+;支付插件要求传入的参数以及参数显示名称,可选的有appid,appkey,appsecret,appurl,appmchid
+inputs = "appid:QQ钱包商户号,appkey:QQ钱包API密钥"
+
+;支付插件要求传入的支付方式参数
+select = "1:扫码支付(包含H5),2:公众号支付"
\ No newline at end of file
diff --git a/plugins/qqpay/inc/qpayMch.config.php b/plugins/qqpay/inc/qpayMch.config.php
new file mode 100644
index 0000000..b3038d9
--- /dev/null
+++ b/plugins/qqpay/inc/qpayMch.config.php
@@ -0,0 +1,50 @@
+账户管理-->API安全 。
+ */
+ const SSLCERT_PATH = PAY_ROOT.'cert/apiclient_cert.pem';
+ const SSLKEY_PATH = PAY_ROOT.'cert/apiclient_key.pem';
+
+ /**
+ * 企业付款-操作员ID
+ */
+ const OP_USERID = QQ_OP_USERID;
+
+ /**
+ * 企业付款-操作员密码
+ */
+ const OP_USERPWD = QQ_OP_USERPWD;
+
+}
\ No newline at end of file
diff --git a/plugins/qqpay/inc/qpayMchAPI.class.php b/plugins/qqpay/inc/qpayMchAPI.class.php
new file mode 100644
index 0000000..ba574a9
--- /dev/null
+++ b/plugins/qqpay/inc/qpayMchAPI.class.php
@@ -0,0 +1,46 @@
+url = $url;
+ $this->isSSL = $isSSL;
+ $this->timeout = $timeout;
+ }
+
+ public function reqQpay($params){
+ $ret = array();
+ //商户号
+ $params["mch_id"] = QpayMchConf::MCH_ID;
+ //随机字符串
+ $params["nonce_str"] = QpayMchUtil::createNoncestr();
+ //签名
+ $params["sign"] = QpayMchUtil::getSign($params);
+ //生成xml
+ $xml = QpayMchUtil::arrayToXml($params);
+
+ if(isset($this->isSSL)){
+ $ret = QpayMchUtil::reqByCurlSSLPost($xml, $this->url, $this->timeout);
+ }else{
+ $ret = QpayMchUtil::reqByCurlNormalPost($xml, $this->url, $this->timeout);
+ }
+ return $ret;
+ }
+
+}
\ No newline at end of file
diff --git a/plugins/qqpay/inc/qpayMchUtil.class.php b/plugins/qqpay/inc/qpayMchUtil.class.php
new file mode 100644
index 0000000..fa063e0
--- /dev/null
+++ b/plugins/qqpay/inc/qpayMchUtil.class.php
@@ -0,0 +1,149 @@
+ $v){
+ //参数为空不参与签名
+ if(isset($v) && $v != '' && $k != 'sign'){
+ array_push($arrTmp, "$k=$v");
+ }
+ }
+ return implode('&', $arrTmp);
+ }
+
+ /**
+ * 获取参数签名
+ * @param $params
+ *
+ * @return string
+ */
+ public static function getSign($params) {
+ //第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序
+ ksort($params);
+ $stringA = QpayMchUtil::buildQueryStr($params);
+ //第二步:拼接API密钥并md5
+ $stringA = $stringA."&key=".QpayMchConf::MCH_KEY;
+ $stringA = md5($stringA);
+ //转成大写
+ $sign = strtoupper($stringA);
+ return $sign;
+ }
+
+ /**
+ * 数组转换成xml字符串
+ * @param $arr
+ * @return string
+ */
+ public static function arrayToXml($arr) {
+ $xml = "
";
+ foreach ($arr as $key => $val){
+ if (is_numeric($val)){
+ $xml.="<$key>$val$key>";
+ }
+ else
+ $xml.="<$key>$key>";
+ }
+ $xml.=" ";
+ return $xml;
+ }
+
+ /**
+ * xml转换成数组
+ * @param $xml
+ * @return array|mixed|object
+ */
+ public static function xmlToArray($xml) {
+ $arr = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
+ return $arr;
+ }
+
+ /**
+ * 通用curl 请求接口。post方式
+ * @param $params
+ * @param $url
+ * @param int $timeout
+ *
+ * @return bool|mixed
+ */
+ public static function reqByCurlNormalPost($params, $url, $timeout = 10) {
+ return QpayMchUtil::_reqByCurl($params, $url, $timeout, false);
+ }
+
+ /**
+ * 使用ssl证书请求接口。post方式
+ * @param $params
+ * @param $url
+ * @param int $timeout
+ *
+ * @return bool|mixed
+ */
+ public static function reqByCurlSSLPost($params, $url, $timeout = 10) {
+ return QpayMchUtil::_reqByCurl($params, $url, $timeout, true);
+ }
+
+ private static function _reqByCurl($params, $url, $timeout = 10, $needSSL = false) {
+ $ch = curl_init();
+
+ curl_setopt($ch,CURLOPT_URL, $url);
+ curl_setopt($ch,CURLOPT_TIMEOUT, $timeout);
+
+ curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
+ curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
+
+ curl_setopt($ch,CURLOPT_HEADER,FALSE);
+ curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
+ //是否使用ssl证书
+ if(isset($needSSL) && $needSSL != false){
+ curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');
+ curl_setopt($ch,CURLOPT_SSLCERT, QpayMchConf::SSLCERT_PATH);
+ curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');
+ curl_setopt($ch,CURLOPT_SSLKEY, QpayMchConf::SSLKEY_PATH);
+ }
+ curl_setopt($ch,CURLOPT_POST, true);
+ curl_setopt($ch,CURLOPT_POSTFIELDS, $params);
+ $ret = curl_exec($ch);
+ if($ret){
+ curl_close($ch);
+ //log($ret); //业务记录交互流水。注:流水日志影响性能,如请求量过大,请慎重设计日志。
+ return $ret;
+ }
+ else {
+ $error = curl_errno($ch);
+ //log($error); //业务记录错误日志
+ print_r($error);
+ curl_close($ch);
+ return false;
+ }
+ }
+
+}
diff --git a/plugins/qqpay/inc/qpayNotify.class.php b/plugins/qqpay/inc/qpayNotify.class.php
new file mode 100644
index 0000000..54c70ae
--- /dev/null
+++ b/plugins/qqpay/inc/qpayNotify.class.php
@@ -0,0 +1,26 @@
+params = $params;
+ $this->sign = $params['sign'];
+ return $params;
+ }
+
+ function verifySign() {
+ $sign = QpayMchUtil::getSign($this->params);
+ return $sign == $this->sign;
+ }
+
+}
\ No newline at end of file
diff --git a/plugins/qqpay/jspay.php b/plugins/qqpay/jspay.php
new file mode 100644
index 0000000..ed236dc
--- /dev/null
+++ b/plugins/qqpay/jspay.php
@@ -0,0 +1,103 @@
+reqQpay($params);
+$result = QpayMchUtil::xmlToArray($ret);
+//print_r($result);
+
+if($result['return_code']=='SUCCESS' && $result['result_code']=='SUCCESS'){
+ $prepay_id = $result['prepay_id'];
+}elseif(isset($result["err_code"])){
+ sysmsg('QQ钱包支付下单失败!['.$result["err_code"].'] '.$result["err_code_des"]);
+}else{
+ sysmsg('QQ钱包支付下单失败!['.$result["return_code"].'] '.$result["return_msg"]);
+}
+
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/qqpay/notify.php b/plugins/qqpay/notify.php
new file mode 100644
index 0000000..4d10ef0
--- /dev/null
+++ b/plugins/qqpay/notify.php
@@ -0,0 +1,54 @@
+getParams();
+//判断签名
+if($qpayNotify->verifySign()) {
+
+//判断签名及结果(即时到帐)
+ if($result['trade_state'] == "SUCCESS") {
+ //商户订单号
+ $out_trade_no = daddslashes($result['out_trade_no']);
+ //QQ钱包订单号
+ $transaction_id = daddslashes($result['transaction_id']);
+ //金额,以分为单位
+ $total_fee = $result['total_fee'];
+ //币种
+ $fee_type = $result['fee_type'];
+ //用户表示
+ $openid = daddslashes($result['openid']);
+
+ //------------------------------
+ //处理业务开始
+ //------------------------------
+ if($out_trade_no == TRADE_NO && $total_fee==strval($order['money']*100) && $order['status']==0){
+ if($DB->exec("update `pre_order` set `status` ='1' where `trade_no`='".TRADE_NO."'")){
+ $DB->exec("update `pre_order` set `api_trade_no` ='$transaction_id',`endtime` ='$date',`buyer` ='$openid',`date`=NOW() where `trade_no`='".TRADE_NO."'");
+ processOrder($order);
+ }
+ }
+ //------------------------------
+ //处理业务完毕
+ //------------------------------
+ echo "
+SUCCESS
+ ";
+ } else {
+ echo "
+FAIL
+ ";
+ }
+
+} else {
+ //回调签名错误
+ echo "
+FAIL
+签名失败
+ ";
+}
+
+?>
\ No newline at end of file
diff --git a/plugins/qqpay/qrcode.php b/plugins/qqpay/qrcode.php
new file mode 100644
index 0000000..870ab8f
--- /dev/null
+++ b/plugins/qqpay/qrcode.php
@@ -0,0 +1,144 @@
+reqQpay($params);
+$result = QpayMchUtil::xmlToArray($ret);
+//print_r($result);
+
+if($result['return_code']=='SUCCESS' && $result['result_code']=='SUCCESS'){
+ $code_url = $result['code_url'];
+}elseif(isset($result["err_code"])){
+ sysmsg('QQ钱包支付下单失败!['.$result["err_code"].'] '.$result["err_code_des"]);
+}else{
+ sysmsg('QQ钱包支付下单失败!['.$result["return_code"].'] '.$result["return_msg"]);
+}
+
+?>
+
+
+
+
+
+
+
QQ钱包安全支付 -
+
+
+
+
+
+QQ钱包支付
+
+
+
+
+
¥
+
+
+
+
+
+商家
+
+购买物品
+
+商户订单号
+
+创建时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/qqpay/refund.php b/plugins/qqpay/refund.php
new file mode 100644
index 0000000..268d9aa
--- /dev/null
+++ b/plugins/qqpay/refund.php
@@ -0,0 +1,30 @@
+reqQpay($params);
+$result = QpayMchUtil::xmlToArray($ret);
+//print_r($result);
+
+if($result['return_code']=='SUCCESS' && $result['result_code']=='SUCCESS'){
+ $result = ['code'=>0, 'trade_no'=>$result['transaction_id'], 'refund_fee'=>$result['total_fee']];
+}elseif(isset($result["err_code"])){
+ $result = ['code'=>-1, 'msg'=>'['.$result["err_code"].']'.$result["err_code_des"]];
+}else{
+ $result = ['code'=>-1, 'msg'=>'['.$result["return_code"].']'.$result["return_msg"]];
+}
+return $result;
\ No newline at end of file
diff --git a/plugins/qqpay/submit.php b/plugins/qqpay/submit.php
new file mode 100644
index 0000000..e443168
--- /dev/null
+++ b/plugins/qqpay/submit.php
@@ -0,0 +1,10 @@
+window.location.href='/pay/qqpay/jspay/{$trade_no}/';";
+}elseif(checkmobile()==true){
+ echo "";
+}else{
+ echo "";
+}
diff --git a/plugins/qqpay/wap.php b/plugins/qqpay/wap.php
new file mode 100644
index 0000000..1c22c11
--- /dev/null
+++ b/plugins/qqpay/wap.php
@@ -0,0 +1,129 @@
+reqQpay($params);
+$result = QpayMchUtil::xmlToArray($ret);
+//print_r($arr);
+
+if($result['return_code']=='SUCCESS' && $result['result_code']=='SUCCESS'){
+ $code_url = 'https://myun.tenpay.com/mqq/pay/qrcode.html?_wv=1027&_bid=2183&t='.$result['prepay_id'];
+}elseif(isset($result["err_code"])){
+ sysmsg('QQ钱包支付下单失败!['.$result["err_code"].'] '.$result["err_code_des"]);
+}else{
+ sysmsg('QQ钱包支付下单失败!['.$result["return_code"].'] '.$result["return_msg"]);
+}
+if(strpos($_SERVER['HTTP_USER_AGENT'], 'QQ/')!==false){
+ exit("");
+}
+?>
+
+
+
+
+
QQ钱包支付
+
+
+
+
+
+
+
+ QQ钱包支付手机版
+
+
+
¥
+
商品名称: 商户订单号: 创建时间:
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/swiftpass/alipay.php b/plugins/swiftpass/alipay.php
new file mode 100644
index 0000000..f9576ff
--- /dev/null
+++ b/plugins/swiftpass/alipay.php
@@ -0,0 +1,181 @@
+setGateUrl($cfg->C('url'));
+$reqHandler->setSignType($cfg->C('sign_type'));
+$reqHandler->setRSAKey($cfg->C('private_rsa_key'));
+$reqHandler->setParameter('service','pay.alipay.native');//接口类型
+$reqHandler->setParameter('mch_id',$cfg->C('mchId'));//必填项,商户号,由平台分配
+$reqHandler->setParameter('version',$cfg->C('version'));
+$reqHandler->setParameter('sign_type',$cfg->C('sign_type'));
+$reqHandler->setParameter('body',$order['name']);
+$reqHandler->setParameter('total_fee',strval($order['money']*100));
+$reqHandler->setParameter('mch_create_ip',$clientip);
+$reqHandler->setParameter('out_trade_no',TRADE_NO);
+$reqHandler->setParameter('notify_url',$conf['localurl'].'pay/swiftpass/notify/'.TRADE_NO.'/');
+$reqHandler->setParameter('nonce_str',mt_rand(time(),time()+rand()));//随机字符串,必填项,不长于 32 位
+$reqHandler->createSign();//创建签名
+
+$data = Utils::toXml($reqHandler->getAllParameters());
+//var_dump($data);
+
+$pay->setReqContent($reqHandler->getGateURL(),$data);
+if($pay->call()){
+ $resHandler->setContent($pay->getResContent());
+ $resHandler->setRSAKey($cfg->C('public_rsa_key'));
+ if($resHandler->isTenpaySign()){
+ //当返回状态与业务结果都为0时才返回支付二维码,其它结果请查看接口文档
+ if($resHandler->getParameter('status') == 0 && $resHandler->getParameter('result_code') == 0){
+ $code_url = $resHandler->getParameter('code_url');
+ }else{
+ sysmsg('支付宝支付下单失败 ['.$resHandler->getParameter('err_code').']'.$resHandler->getParameter('err_msg'));
+ }
+ }else{
+ sysmsg('支付宝支付下单失败 ['.$resHandler->getParameter('status').']'.$resHandler->getParameter('message'));
+ }
+}else{
+ sysmsg('支付接口调用失败 ['.$pay->getResponseCode().']'.$pay->getErrInfo());
+}
+?>
+
+
+
+
+
+
+
支付宝扫码支付 -
+
+
+
+
+
+支付宝扫码支付
+
+
+
+
+
¥
+
+
+
+
+
+商家
+
+购买物品
+
+商户订单号
+
+创建时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/swiftpass/config.ini b/plugins/swiftpass/config.ini
new file mode 100644
index 0000000..32e9040
--- /dev/null
+++ b/plugins/swiftpass/config.ini
@@ -0,0 +1,21 @@
+[config]
+;支付插件英文名称,需和目录名称一致,不能有重复
+name = "swiftpass"
+
+;支付插件显示名称
+showname = "威富通"
+
+;支付插件作者
+author = "威富通"
+
+;支付插件作者链接
+link = "https://www.swiftpass.cn/"
+
+;支付插件支持的支付方式,多种方式用英文,隔开,可选的有alipay,qqpay,wxpay,bank
+types = "alipay,wxpay,qqpay,bank,jdpay"
+
+;支付插件要求传入的参数以及参数显示名称,可选的有appid,appkey,appsecret,appurl,appmchid
+inputs = "appid:商户号,appkey:RSA平台公钥,appsecret:RSA应用私钥"
+
+;支付插件要求传入的支付方式参数
+select = "1:微信公众号支付,2:微信H5支付"
\ No newline at end of file
diff --git a/plugins/swiftpass/inc/WxPay.JsApiPay.php b/plugins/swiftpass/inc/WxPay.JsApiPay.php
new file mode 100644
index 0000000..e8c0b59
--- /dev/null
+++ b/plugins/swiftpass/inc/WxPay.JsApiPay.php
@@ -0,0 +1,167 @@
+getMessage();
+ }
+}
+
+/**
+ *
+ * JSAPI支付实现类
+ * 该类实现了从微信公众平台获取code、通过code获取openid和access_token、
+ * 生成jsapi支付js接口所需的参数、生成获取共享收货地址所需的参数
+ *
+ * 该类是微信支付提供的样例程序,商户可根据自己的需求修改,或者使用lib中的api自行开发
+ *
+ * @author widy
+ *
+ */
+class JsApiPay
+{
+ /**
+ *
+ * 网页授权接口微信服务器返回的数据,返回样例如下
+ * {
+ * "access_token":"ACCESS_TOKEN",
+ * "expires_in":7200,
+ * "refresh_token":"REFRESH_TOKEN",
+ * "openid":"OPENID",
+ * "scope":"SCOPE",
+ * "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
+ * }
+ * 其中access_token可用于获取共享收货地址
+ * openid是微信支付jsapi支付接口必须的参数
+ * @var array
+ */
+ public $data = null;
+
+ /**
+ *
+ * 通过跳转获取用户的openid,跳转流程如下:
+ * 1、设置自己需要调回的url及其其他参数,跳转到微信服务器https://open.weixin.qq.com/connect/oauth2/authorize
+ * 2、微信服务处理完成之后会跳转回用户redirect_uri地址,此时会带上一些参数,如:code
+ *
+ * @return 用户的openid
+ */
+ public function GetOpenid()
+ {
+ //通过code获得openid
+ if (!isset($_GET['code'])){
+ //触发微信返回code码
+ $baseUrl = urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
+ $url = $this->__CreateOauthUrlForCode($baseUrl);
+ Header("Location: $url");
+ exit();
+ } else {
+ //获取code码,以获取openid
+ $code = $_GET['code'];
+ $openid = $this->GetOpenidFromMp($code);
+ return $openid;
+ }
+ }
+
+ /**
+ *
+ * 通过code从工作平台获取openid机器access_token
+ * @param string $code 微信跳转回来带上的code
+ *
+ * @return openid
+ */
+ public function GetOpenidFromMp($code)
+ {
+ $url = $this->__CreateOauthUrlForOpenid($code);
+ //初始化curl
+ $ch = curl_init();
+ //设置超时
+ curl_setopt($ch, CURLOPT_TIMEOUT, $this->curl_timeout);
+ curl_setopt($ch, CURLOPT_URL, $url);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,FALSE);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,FALSE);
+ curl_setopt($ch, CURLOPT_HEADER, FALSE);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
+ //运行curl,结果以jason形式返回
+ $res = curl_exec($ch);
+ curl_close($ch);
+ //取出openid
+ $data = json_decode($res,true);
+ $this->data = $data;
+ $openid = $data['openid'];
+ return $openid;
+ }
+
+ /**
+ *
+ * 拼接签名字符串
+ * @param array $urlObj
+ *
+ * @return 返回已经拼接好的字符串
+ */
+ private function ToUrlParams($urlObj)
+ {
+ $buff = "";
+ foreach ($urlObj as $k => $v)
+ {
+ if($k != "sign"){
+ $buff .= $k . "=" . $v . "&";
+ }
+ }
+
+ $buff = trim($buff, "&");
+ return $buff;
+ }
+
+ /**
+ *
+ * 构造获取code的url连接
+ * @param string $redirectUrl 微信服务器回跳的url,需要url编码
+ *
+ * @return 返回构造好的url
+ */
+ private function __CreateOauthUrlForCode($redirectUrl)
+ {
+ $urlObj["appid"] = WxPayConfig::APPID;
+ $urlObj["redirect_uri"] = $redirectUrl;
+ $urlObj["response_type"] = "code";
+ $urlObj["scope"] = "snsapi_base";
+ $urlObj["state"] = "STATE"."#wechat_redirect";
+ $bizString = $this->ToUrlParams($urlObj);
+ return "https://open.weixin.qq.com/connect/oauth2/authorize?".$bizString;
+ }
+
+ /**
+ *
+ * 构造获取open和access_toke的url地址
+ * @param string $code,微信跳转带回的code
+ *
+ * @return 请求的url
+ */
+ private function __CreateOauthUrlForOpenid($code)
+ {
+ $urlObj["appid"] = WxPayConfig::APPID;
+ $urlObj["secret"] = WxPayConfig::APPSECRET;
+ $urlObj["code"] = $code;
+ $urlObj["grant_type"] = "authorization_code";
+ $bizString = $this->ToUrlParams($urlObj);
+ return "https://api.weixin.qq.com/sns/oauth2/access_token?".$bizString;
+ }
+}
\ No newline at end of file
diff --git a/plugins/swiftpass/inc/class/ClientResponseHandler.class.php b/plugins/swiftpass/inc/class/ClientResponseHandler.class.php
new file mode 100644
index 0000000..993cf76
--- /dev/null
+++ b/plugins/swiftpass/inc/class/ClientResponseHandler.class.php
@@ -0,0 +1,236 @@
+ClientResponseHandler();
+ }
+
+ function ClientResponseHandler() {
+ $this->key = "";
+ $this->public_rsa_key = "";
+ $this->signtype = "";
+ $this->parameters = array();
+ $this->debugInfo = "";
+ $this->content = "";
+ }
+
+ /**
+ *获取密钥
+ */
+ function getKey() {
+ return $this->key;
+ }
+
+ /**
+ *设置密钥
+ */
+ function setKey($key) {
+ $this->key = $key;
+ }
+
+ /*设置平台公钥*/
+ function setRSAKey($key) {
+ $this->public_rsa_key = $key;
+ }
+
+ function setSignType($type) {
+ $this->signtype = $type;
+ }
+
+ //设置原始内容
+ function setContent($content) {
+ $this->content = $content;
+
+ libxml_disable_entity_loader(true);
+ $xml = simplexml_load_string($this->content);
+ $encode = $this->getXmlEncode($this->content);
+
+ if($xml && $xml->children()) {
+ foreach ($xml->children() as $node){
+ //有子节点
+ if($node->children()) {
+ $k = $node->getName();
+ $nodeXml = $node->asXML();
+ $v = substr($nodeXml, strlen($k)+2, strlen($nodeXml)-2*strlen($k)-5);
+
+ } else {
+ $k = $node->getName();
+ $v = (string)$node;
+ }
+
+ if($encode!="" && $encode != "UTF-8") {
+ $k = iconv("UTF-8", $encode, $k);
+ $v = iconv("UTF-8", $encode, $v);
+ }
+
+ $this->setParameter($k, $v);
+ }
+ }
+ }
+
+ //获取原始内容
+ function getContent() {
+ return $this->content;
+ }
+
+ /**
+ *获取参数值
+ */
+ function getParameter($parameter) {
+ return isset($this->parameters[$parameter])?$this->parameters[$parameter] : '';
+ }
+
+ /**
+ *设置参数值
+ */
+ function setParameter($parameter, $parameterValue) {
+ $this->parameters[$parameter] = $parameterValue;
+ }
+
+ /**
+ *获取所有请求的参数
+ *@return array
+ */
+ function getAllParameters() {
+ return $this->parameters;
+ }
+
+ /**
+ *是否平台签名,规则是:按参数名称a-z排序,遇到空值的参数不参加签名。
+ *true:是
+ *false:否
+ */
+ function isTenpaySign() {
+ $swiftpassSign = strtolower($this->getParameter("sign"));
+ if ($this->getParameter('sign_type') == 'MD5') {
+ return $this->getMD5Sign() == $swiftpassSign;
+ } else if ($this->getParameter('sign_type') == 'RSA_1_1' || $this->getParameter('sign_type') == 'RSA_1_256') {
+ return $this->verifyRSASign();
+ }
+ }
+
+ function getMD5Sign() {
+ $signPars = "";
+ ksort($this->parameters);
+ foreach($this->parameters as $k => $v) {
+ if("sign" != $k && "" != $v) {
+ $signPars .= $k . "=" . $v . "&";
+ }
+ }
+ $signPars .= "key=" . $this->getKey();
+
+ return strtolower(md5($signPars));
+ }
+
+ function verifyRSASign() {
+ $signPars = "";
+ ksort($this->parameters);
+ foreach($this->parameters as $k => $v) {
+ if("sign" != $k && "" != $v) {
+ $signPars .= $k . "=" . $v . "&";
+ }
+ }
+
+ $signPars = substr($signPars, 0, strlen($signPars) - 1);
+ $res = openssl_get_publickey($this->public_rsa_key);
+ if ($this->getParameter('sign_type') == 'RSA_1_1') {
+ $result = (bool)openssl_verify($signPars, base64_decode($this->getParameter("sign")), $res);
+ openssl_free_key($res);
+ return $result;
+ } else if($this->getParameter('sign_type') == 'RSA_1_256') {
+ $result = (bool)openssl_verify($signPars, base64_decode($this->getParameter("sign")), $res, OPENSSL_ALGO_SHA256);
+ openssl_free_key($res);
+ return $result;
+ }
+ }
+
+ /**
+ *获取debug信息
+ */
+ function getDebugInfo() {
+ return $this->debugInfo;
+ }
+
+ //获取xml编码
+ function getXmlEncode($xml) {
+ $ret = preg_match ("/]* encoding=\"(.*)\"[^>]* ?>/i", $xml, $arr);
+ if($ret) {
+ return strtoupper ( $arr[1] );
+ } else {
+ return "";
+ }
+ }
+
+ /**
+ *设置debug信息
+ */
+ function _setDebugInfo($debugInfo) {
+ $this->debugInfo = $debugInfo;
+ }
+
+ /**
+ * 是否财付通签名
+ * @param signParameterArray 签名的参数数组
+ * @return boolean
+ */
+ function _isTenpaySign($signParameterArray) {
+
+ $signPars = "";
+ foreach($signParameterArray as $k) {
+ $v = $this->getParameter($k);
+ if("sign" != $k && "" != $v) {
+ $signPars .= $k . "=" . $v . "&";
+ }
+ }
+ $signPars .= "key=" . $this->getKey();
+
+ $sign = strtolower(md5($signPars));
+
+ $tenpaySign = strtolower($this->getParameter("sign"));
+
+ //debug信息
+ $this->_setDebugInfo($signPars . " => sign:" . $sign .
+ " tenpaySign:" . $this->getParameter("sign"));
+
+ return $sign == $tenpaySign;
+
+
+ }
+
+}
+
+
+?>
\ No newline at end of file
diff --git a/plugins/swiftpass/inc/class/PayHttpClient.class.php b/plugins/swiftpass/inc/class/PayHttpClient.class.php
new file mode 100644
index 0000000..7ba0a7b
--- /dev/null
+++ b/plugins/swiftpass/inc/class/PayHttpClient.class.php
@@ -0,0 +1,119 @@
+PayHttpClient();
+ }
+
+
+ function PayHttpClient() {
+ $this->reqContent = "";
+ $this->resContent = "";
+
+ $this->errInfo = "";
+
+ $this->timeOut = 120;
+
+ $this->responseCode = 0;
+
+ }
+
+ //设置请求内容
+ function setReqContent($url,$data) {
+ $this->reqUrl=$url;
+ $this->reqContent=$data;
+ }
+
+ //获取结果内容
+ function getResContent() {
+ return $this->resContent;
+ }
+
+ //获取错误信息
+ function getErrInfo() {
+ return $this->errInfo;
+ }
+
+ //设置超时时间,单位秒
+ function setTimeOut($timeOut) {
+ $this->timeOut = $timeOut;
+ }
+
+ //执行http调用
+ function call() {
+ //启动一个CURL会话
+ $ch = curl_init();
+
+ // 设置curl允许执行的最长秒数
+ curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeOut);
+ curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
+ curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
+ // 获取的信息以文件流的形式返回,而不是直接输出。
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
+
+ //发送一个常规的POST请求。
+ curl_setopt($ch, CURLOPT_POST, 1);
+ curl_setopt($ch, CURLOPT_URL, $this->reqUrl);
+ //要传送的所有数据
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $this->reqContent);
+
+ // 执行操作
+ $res = curl_exec($ch);
+ $this->responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+
+ if ($res == NULL) {
+ $this->errInfo = "call http err :" . curl_errno($ch) . " - " . curl_error($ch) ;
+ curl_close($ch);
+ return false;
+ } else if($this->responseCode != "200") {
+ $this->errInfo = "call http err httpcode=" . $this->responseCode ;
+ curl_close($ch);
+ return false;
+ }
+
+ curl_close($ch);
+ $this->resContent = $res;
+
+
+ return true;
+ }
+
+ function getResponseCode() {
+ return $this->responseCode;
+ }
+
+}
+?>
\ No newline at end of file
diff --git a/plugins/swiftpass/inc/class/RequestHandler.class.php b/plugins/swiftpass/inc/class/RequestHandler.class.php
new file mode 100644
index 0000000..7bd3994
--- /dev/null
+++ b/plugins/swiftpass/inc/class/RequestHandler.class.php
@@ -0,0 +1,225 @@
+RequestHandler();
+ }
+
+ function RequestHandler() {
+ $this->gateUrl = "";
+ $this->key = "";
+ $this->private_rsa_key = "";
+ $this->signtype = "";
+ $this->parameters = array();
+ $this->debugInfo = "";
+ }
+
+ /**
+ *初始化函数。
+ */
+ function init() {
+ //nothing to do
+ }
+
+ /**
+ *获取入口地址,不包含参数值
+ */
+ function getGateURL() {
+ return $this->gateUrl;
+ }
+
+ /**
+ *设置入口地址,不包含参数值
+ */
+ function setGateURL($gateUrl) {
+ $this->gateUrl = $gateUrl;
+ }
+
+ function setSignType($type) {
+ $this->signtype = $type;
+ }
+
+ /**
+ *获取MD5密钥
+ */
+ function getKey() {
+ return $this->key;
+ }
+
+ /**
+ *设置MD5密钥
+ */
+ function setKey($key) {
+ $this->key = $key;
+ }
+
+ /*设置RSA私钥*/
+ function setRSAKey($key) {
+ $this->private_rsa_key = $key;
+ }
+
+ /**
+ *获取参数值
+ */
+ function getParameter($parameter) {
+ return isset($this->parameters[$parameter])?$this->parameters[$parameter]:'';
+ }
+
+ /**
+ *设置参数值
+ */
+ function setParameter($parameter, $parameterValue) {
+ $this->parameters[$parameter] = $parameterValue;
+ }
+
+ /**
+ * 一次性设置参数
+ */
+ function setReqParams($post,$filterField=null){
+ if($filterField !== null){
+ forEach($filterField as $k=>$v){
+ unset($post[$v]);
+ }
+ }
+
+ //判断是否存在空值,空值不提交
+ forEach($post as $k=>$v){
+ if(empty($v)){
+ unset($post[$k]);
+ }
+ }
+
+ $this->parameters = $post;
+ }
+
+ /**
+ *获取所有请求的参数
+ *@return array
+ */
+ function getAllParameters() {
+ return $this->parameters;
+ }
+
+ /**
+ *获取带参数的请求URL
+ */
+ function getRequestURL() {
+
+ $this->createSign();
+
+ $reqPar = "";
+ ksort($this->parameters);
+ foreach($this->parameters as $k => $v) {
+ $reqPar .= $k . "=" . urlencode($v) . "&";
+ }
+
+ //去掉最后一个&
+ $reqPar = substr($reqPar, 0, strlen($reqPar)-1);
+
+ $requestURL = $this->getGateURL() . "?" . $reqPar;
+
+ return $requestURL;
+
+ }
+
+ /**
+ *获取debug信息
+ */
+ function getDebugInfo() {
+ return $this->debugInfo;
+ }
+
+ /**
+ *创建md5摘要,规则是:按参数名称a-z排序,遇到空值的参数不参加签名。
+ */
+ function createSign() {
+ if($this->signtype == 'MD5') {
+ $this->createMD5Sign();
+ } else {
+ $this->createRSASign();
+ }
+ }
+
+ function createMD5Sign() {
+ $signPars = "";
+ ksort($this->parameters);
+ foreach($this->parameters as $k => $v) {
+ if("" != $v && "sign" != $k) {
+ $signPars .= $k . "=" . $v . "&";
+ }
+ }
+ $signPars .= "key=" . $this->getKey();
+ $sign = strtoupper(md5($signPars));
+ $this->setParameter("sign", $sign);
+
+ //debug信息
+ $this->_setDebugInfo($signPars . " => sign:" . $sign);
+ }
+
+ function createRSASign() {
+ $signPars = "";
+ ksort($this->parameters);
+ foreach($this->parameters as $k => $v) {
+ if("" != $v && "sign" != $k) {
+ $signPars .= $k . "=" . $v . "&";
+ }
+ }
+
+ $signPars = substr($signPars, 0, strlen($signPars) - 1);
+
+ $res = openssl_get_privatekey($this->private_rsa_key);
+ if ($this->signtype == 'RSA_1_1') {
+ openssl_sign($signPars, $sign, $res);
+ } else if ($this->signtype == 'RSA_1_256') {
+ openssl_sign($signPars, $sign, $res, OPENSSL_ALGO_SHA256);
+ }
+ openssl_free_key($res);
+ $sign = base64_encode($sign);
+ $this->setParameter("sign", $sign);
+
+ //debug信息
+ $this->_setDebugInfo($signPars . " => sign:" . $sign);
+ }
+
+ /**
+ *设置debug信息
+ */
+ function _setDebugInfo($debugInfo) {
+ $this->debugInfo = $debugInfo;
+ }
+
+}
+
+?>
\ No newline at end of file
diff --git a/plugins/swiftpass/inc/class/Utils.class.php b/plugins/swiftpass/inc/class/Utils.class.php
new file mode 100644
index 0000000..813ea4b
--- /dev/null
+++ b/plugins/swiftpass/inc/class/Utils.class.php
@@ -0,0 +1,73 @@
+';
+ forEach($array as $k=>$v){
+ $xml.='<'.$k.'>'.$k.'>';
+ }
+ $xml.='';
+ return $xml;
+ }
+
+ public static function dataRecodes($title,$data){
+ $handler = fopen('result.txt','a+');
+ $content = "================".$title."===================\n";
+ if(is_string($data) === true){
+ $content .= $data."\n";
+ }
+ if(is_array($data) === true){
+ forEach($data as $k=>$v){
+ $content .= "key: ".$k." value: ".$v."\n";
+ }
+ }
+ $flag = fwrite($handler,$content);
+ fclose($handler);
+ return $flag;
+ }
+
+ public static function parseXML($xmlSrc){
+ if(empty($xmlSrc)){
+ return false;
+ }
+ $array = array();
+ libxml_disable_entity_loader(true);
+ $xml = simplexml_load_string($xmlSrc);
+ $encode = Utils::getXmlEncode($xmlSrc);
+
+ if($xml && $xml->children()) {
+ foreach ($xml->children() as $node){
+ //有子节点
+ if($node->children()) {
+ $k = $node->getName();
+ $nodeXml = $node->asXML();
+ $v = substr($nodeXml, strlen($k)+2, strlen($nodeXml)-2*strlen($k)-5);
+
+ } else {
+ $k = $node->getName();
+ $v = (string)$node;
+ }
+
+ if($encode!="" && $encode != "UTF-8") {
+ $k = iconv("UTF-8", $encode, $k);
+ $v = iconv("UTF-8", $encode, $v);
+ }
+ $array[$k] = $v;
+ }
+ }
+ return $array;
+ }
+
+ //获取xml编码
+ public static function getXmlEncode($xml) {
+ $ret = preg_match ("/]* encoding=\"(.*)\"[^>]* ?>/i", $xml, $arr);
+ if($ret) {
+ return strtoupper ( $arr[1] );
+ } else {
+ return "";
+ }
+ }
+}
+?>
\ No newline at end of file
diff --git a/plugins/swiftpass/inc/config.php b/plugins/swiftpass/inc/config.php
new file mode 100644
index 0000000..3524db9
--- /dev/null
+++ b/plugins/swiftpass/inc/config.php
@@ -0,0 +1,20 @@
+'https://pay.swiftpass.cn/pay/gateway', /*支付接口请求地址 */
+ 'mchId'=>PAY_API_APPID, /* 商户号,于申请成功后的开户邮件中获取 */
+ 'version'=>'2.0',
+ 'sign_type'=>'RSA_1_256',
+ 'public_rsa_key'=>PAY_API_KEY, /* RSA验签平台公钥 */
+ 'private_rsa_key'=>PAY_API_APPSECRET /* RSA签名私钥 */
+ );
+
+ public function C($cfgName){
+ return $this->cfg[$cfgName];
+ }
+}
+?>
\ No newline at end of file
diff --git a/plugins/swiftpass/jdpay.php b/plugins/swiftpass/jdpay.php
new file mode 100644
index 0000000..07bdf1a
--- /dev/null
+++ b/plugins/swiftpass/jdpay.php
@@ -0,0 +1,157 @@
+setGateUrl($cfg->C('url'));
+$reqHandler->setSignType($cfg->C('sign_type'));
+$reqHandler->setRSAKey($cfg->C('private_rsa_key'));
+$reqHandler->setParameter('service','pay.jdpay.native');//接口类型
+$reqHandler->setParameter('mch_id',$cfg->C('mchId'));//必填项,商户号,由平台分配
+$reqHandler->setParameter('version',$cfg->C('version'));
+$reqHandler->setParameter('sign_type',$cfg->C('sign_type'));
+$reqHandler->setParameter('body',$order['name']);
+$reqHandler->setParameter('total_fee',strval($order['money']*100));
+$reqHandler->setParameter('mch_create_ip',$clientip);
+$reqHandler->setParameter('out_trade_no',TRADE_NO);
+$reqHandler->setParameter('notify_url',$conf['localurl'].'pay/swiftpass/notify/'.TRADE_NO.'/');
+$reqHandler->setParameter('nonce_str',mt_rand(time(),time()+rand()));//随机字符串,必填项,不长于 32 位
+$reqHandler->createSign();//创建签名
+
+$data = Utils::toXml($reqHandler->getAllParameters());
+//var_dump($data);
+
+$pay->setReqContent($reqHandler->getGateURL(),$data);
+if($pay->call()){
+ $resHandler->setContent($pay->getResContent());
+ $resHandler->setRSAKey($cfg->C('public_rsa_key'));
+ if($resHandler->isTenpaySign()){
+ //当返回状态与业务结果都为0时才返回支付二维码,其它结果请查看接口文档
+ if($resHandler->getParameter('status') == 0 && $resHandler->getParameter('result_code') == 0){
+ $code_url = $resHandler->getParameter('code_url');
+ }else{
+ sysmsg('京东支付下单失败 ['.$resHandler->getParameter('err_code').']'.$resHandler->getParameter('err_msg'));
+ }
+ }else{
+ sysmsg('京东支付下单失败 ['.$resHandler->getParameter('status').']'.$resHandler->getParameter('message'));
+ }
+}else{
+ sysmsg('支付接口调用失败 ['.$pay->getResponseCode().']'.$pay->getErrInfo());
+}
+?>
+
+
+
+
+
+
+
京东扫码支付 -
+
+
+
+
+
+京东扫码支付
+
+
+
+
+
¥
+
+
+
+
+
+商家
+
+购买物品
+
+商户订单号
+
+创建时间
+
+
+
+
+
+
+
+
+
+
请使用京东APP扫一扫
+
扫描二维码完成支付
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/swiftpass/notify.php b/plugins/swiftpass/notify.php
new file mode 100644
index 0000000..34d4841
--- /dev/null
+++ b/plugins/swiftpass/notify.php
@@ -0,0 +1,39 @@
+setContent($xml);
+
+$resHandler->setRSAKey($cfg->C('public_rsa_key'));
+if($resHandler->isTenpaySign()){
+
+ if($resHandler->getParameter('status') == 0 && $resHandler->getParameter('result_code') == 0){
+ $transaction_id = $resHandler->getParameter('transaction_id');
+ $out_trade_no = $resHandler->getParameter('out_trade_no');
+ $total_fee = $resHandler->getParameter('total_fee');
+ $fee_type = $resHandler->getParameter('fee_type');
+ $openid = $resHandler->getParameter('openid');
+ if($out_trade_no == TRADE_NO && $total_fee==strval($order['money']*100) && $order['status']==0){
+ if($DB->exec("update `pre_order` set `status` ='1' where `trade_no`='".TRADE_NO."'")){
+ $DB->exec("update `pre_order` set `api_trade_no` ='$transaction_id',`endtime` ='$date',`buyer` ='$openid',`date`=NOW() where `trade_no`='".TRADE_NO."'");
+ processOrder($order);
+ }
+ }
+ //Utils::dataRecodes('ӿڻصյ֪ͨ',$resHandler->getAllParameters());
+ echo 'success';
+ exit();
+ }else{
+ echo 'failure1';
+ exit();
+ }
+}else{
+ echo 'failure2';
+}
+?>
\ No newline at end of file
diff --git a/plugins/swiftpass/qqpay.php b/plugins/swiftpass/qqpay.php
new file mode 100644
index 0000000..6c46459
--- /dev/null
+++ b/plugins/swiftpass/qqpay.php
@@ -0,0 +1,166 @@
+setGateUrl($cfg->C('url'));
+$reqHandler->setSignType($cfg->C('sign_type'));
+$reqHandler->setRSAKey($cfg->C('private_rsa_key'));
+$reqHandler->setParameter('service','pay.tenpay.native');//接口类型
+$reqHandler->setParameter('mch_id',$cfg->C('mchId'));//必填项,商户号,由平台分配
+$reqHandler->setParameter('version',$cfg->C('version'));
+$reqHandler->setParameter('sign_type',$cfg->C('sign_type'));
+$reqHandler->setParameter('body',$order['name']);
+$reqHandler->setParameter('total_fee',strval($order['money']*100));
+$reqHandler->setParameter('mch_create_ip',$clientip);
+$reqHandler->setParameter('out_trade_no',TRADE_NO);
+$reqHandler->setParameter('notify_url',$conf['localurl'].'pay/swiftpass/notify/'.TRADE_NO.'/');
+$reqHandler->setParameter('nonce_str',mt_rand(time(),time()+rand()));//随机字符串,必填项,不长于 32 位
+$reqHandler->createSign();//创建签名
+
+$data = Utils::toXml($reqHandler->getAllParameters());
+//var_dump($data);
+
+$pay->setReqContent($reqHandler->getGateURL(),$data);
+if($pay->call()){
+ $resHandler->setContent($pay->getResContent());
+ $resHandler->setRSAKey($cfg->C('public_rsa_key'));
+ if($resHandler->isTenpaySign()){
+ //当返回状态与业务结果都为0时才返回支付二维码,其它结果请查看接口文档
+ if($resHandler->getParameter('status') == 0 && $resHandler->getParameter('result_code') == 0){
+ $code_url = $resHandler->getParameter('code_url');
+ if(strpos($code_url,'myun.tenpay.com')){
+ $qrcode=explode('&t=',$code_url);
+ $code_url = 'https://qpay.qq.com/qr/'.$qrcode[1];
+ }
+ }else{
+ sysmsg('QQ钱包支付下单失败 ['.$resHandler->getParameter('err_code').']'.$resHandler->getParameter('err_msg'));
+ }
+ }else{
+ sysmsg('QQ钱包支付下单失败 ['.$resHandler->getParameter('status').']'.$resHandler->getParameter('message'));
+ }
+}else{
+ sysmsg('支付接口调用失败 ['.$pay->getResponseCode().']'.$pay->getErrInfo());
+}
+
+?>
+
+
+
+
+
+
+
QQ钱包安全支付 -
+
+
+
+
+
+QQ钱包支付
+
+
+
+
+
¥
+
+
+
+
+
+商家
+
+购买物品
+
+商户订单号
+
+创建时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/swiftpass/qqwappay.php b/plugins/swiftpass/qqwappay.php
new file mode 100644
index 0000000..246bfd0
--- /dev/null
+++ b/plugins/swiftpass/qqwappay.php
@@ -0,0 +1,146 @@
+setGateUrl($cfg->C('url'));
+$reqHandler->setSignType($cfg->C('sign_type'));
+$reqHandler->setRSAKey($cfg->C('private_rsa_key'));
+$reqHandler->setParameter('service','pay.tenpay.native');//接口类型
+$reqHandler->setParameter('mch_id',$cfg->C('mchId'));//必填项,商户号,由平台分配
+$reqHandler->setParameter('version',$cfg->C('version'));
+$reqHandler->setParameter('sign_type',$cfg->C('sign_type'));
+$reqHandler->setParameter('body',$order['name']);
+$reqHandler->setParameter('total_fee',strval($order['money']*100));
+$reqHandler->setParameter('mch_create_ip',$clientip);
+$reqHandler->setParameter('out_trade_no',TRADE_NO);
+$reqHandler->setParameter('notify_url',$conf['localurl'].'pay/swiftpass/notify/'.TRADE_NO.'/');
+$reqHandler->setParameter('nonce_str',mt_rand(time(),time()+rand()));//随机字符串,必填项,不长于 32 位
+$reqHandler->createSign();//创建签名
+
+$data = Utils::toXml($reqHandler->getAllParameters());
+//var_dump($data);
+
+$pay->setReqContent($reqHandler->getGateURL(),$data);
+if($pay->call()){
+ $resHandler->setContent($pay->getResContent());
+ $resHandler->setRSAKey($cfg->C('public_rsa_key'));
+ if($resHandler->isTenpaySign()){
+ //当返回状态与业务结果都为0时才返回支付二维码,其它结果请查看接口文档
+ if($resHandler->getParameter('status') == 0 && $resHandler->getParameter('result_code') == 0){
+ $code_url = $resHandler->getParameter('code_url');
+ }else{
+ sysmsg('QQ钱包支付下单失败 ['.$resHandler->getParameter('err_code').']'.$resHandler->getParameter('err_msg'));
+ }
+ }else{
+ sysmsg('QQ钱包支付下单失败 ['.$resHandler->getParameter('status').']'.$resHandler->getParameter('message'));
+ }
+}else{
+ sysmsg('支付接口调用失败 ['.$pay->getResponseCode().']'.$pay->getErrInfo());
+}
+if(strpos($_SERVER['HTTP_USER_AGENT'], 'QQ/')!==false){
+ exit("");
+}
+
+?>
+
+
+
+
+
QQ钱包支付
+
+
+
+
+
+
+
+ QQ钱包支付手机版
+
+
+
¥
+
商品名称: 商户订单号: 创建时间:
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/swiftpass/return.php b/plugins/swiftpass/return.php
new file mode 100644
index 0000000..1d5f103
--- /dev/null
+++ b/plugins/swiftpass/return.php
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/swiftpass/submit.php b/plugins/swiftpass/submit.php
new file mode 100644
index 0000000..530da9c
--- /dev/null
+++ b/plugins/swiftpass/submit.php
@@ -0,0 +1,28 @@
+window.location.href='/pay/swiftpass/alipay/{$trade_no}/';";
+}elseif($order['typename']=='wxpay'){
+ if(strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger')!==false){
+ echo "";
+ }elseif(checkmobile()==true){
+ if(in_array('2',$channel['apptype'])){
+ echo "";
+ }else{
+ echo "";
+ }
+ }else{
+ echo "";
+ }
+}elseif($order['typename']=='qqpay'){
+ if(checkmobile()==true){
+ echo "";
+ }else{
+ echo "";
+ }
+}elseif($order['typename']=='jdpay'){
+ echo "";
+}elseif($order['typename']=='bank'){
+ echo "";
+}
diff --git a/plugins/swiftpass/wxh5pay.php b/plugins/swiftpass/wxh5pay.php
new file mode 100644
index 0000000..55b2180
--- /dev/null
+++ b/plugins/swiftpass/wxh5pay.php
@@ -0,0 +1,57 @@
+setGateUrl($cfg->C('url'));
+$reqHandler->setSignType($cfg->C('sign_type'));
+$reqHandler->setRSAKey($cfg->C('private_rsa_key'));
+$reqHandler->setParameter('service','pay.weixin.wappay');//接口类型
+$reqHandler->setParameter('mch_id',$cfg->C('mchId'));//必填项,商户号,由平台分配
+$reqHandler->setParameter('version',$cfg->C('version'));
+$reqHandler->setParameter('sign_type',$cfg->C('sign_type'));
+$reqHandler->setParameter('body',$order['name']);
+$reqHandler->setParameter('total_fee',strval($order['money']*100));
+$reqHandler->setParameter('mch_create_ip',$clientip);
+$reqHandler->setParameter('out_trade_no',TRADE_NO);
+$reqHandler->setParameter('device_info', 'AND_WAP');//应用类型
+$reqHandler->setParameter('mch_app_name',$sitename);//应用名
+$reqHandler->setParameter('mch_app_id',$siteurl);//应用标识
+$reqHandler->setParameter('notify_url',$conf['localurl'].'pay/swiftpass/notify/'.TRADE_NO.'/');
+$reqHandler->setParameter('callback_url',$siteurl.'pay/swiftpass/return/'.TRADE_NO.'/');
+$reqHandler->setParameter('nonce_str',mt_rand(time(),time()+rand()));//随机字符串,必填项,不长于 32 位
+$reqHandler->createSign();//创建签名
+
+$data = Utils::toXml($reqHandler->getAllParameters());
+//var_dump($data);
+
+$pay->setReqContent($reqHandler->getGateURL(),$data);
+if($pay->call()){
+ $resHandler->setContent($pay->getResContent());
+ $resHandler->setRSAKey($cfg->C('public_rsa_key'));
+ if($resHandler->isTenpaySign()){
+ //当返回状态与业务结果都为0时才返回支付二维码,其它结果请查看接口文档
+ if($resHandler->getParameter('status') == 0 && $resHandler->getParameter('result_code') == 0){
+ $pay_info = $resHandler->getParameter('pay_info');
+ exit("");
+ }else{
+ sysmsg('微信支付下单失败 ['.$resHandler->getParameter('err_code').']'.$resHandler->getParameter('err_msg'));
+ }
+ }else{
+ sysmsg('微信支付下单失败 ['.$resHandler->getParameter('status').']'.$resHandler->getParameter('message'));
+ }
+}else{
+ sysmsg('支付接口调用失败 ['.$pay->getResponseCode().']'.$pay->getErrInfo());
+}
+?>
\ No newline at end of file
diff --git a/plugins/swiftpass/wxjspay.php b/plugins/swiftpass/wxjspay.php
new file mode 100644
index 0000000..4ddf142
--- /dev/null
+++ b/plugins/swiftpass/wxjspay.php
@@ -0,0 +1,160 @@
+GetOpenid();
+//②、统一下单
+require(PAY_ROOT.'inc/class/Utils.class.php');
+require(PAY_ROOT.'inc/config.php');
+require(PAY_ROOT.'inc/class/RequestHandler.class.php');
+require(PAY_ROOT.'inc/class/ClientResponseHandler.class.php');
+require(PAY_ROOT.'inc/class/PayHttpClient.class.php');
+
+$resHandler = new ClientResponseHandler();
+$reqHandler = new RequestHandler();
+$pay = new PayHttpClient();
+$cfg = new Config();
+
+$reqHandler->setGateUrl($cfg->C('url'));
+$reqHandler->setSignType($cfg->C('sign_type'));
+$reqHandler->setRSAKey($cfg->C('private_rsa_key'));
+$reqHandler->setParameter('service','pay.weixin.jspay');//接口类型
+$reqHandler->setParameter('mch_id',$cfg->C('mchId'));//必填项,商户号,由平台分配
+$reqHandler->setParameter('version',$cfg->C('version'));
+$reqHandler->setParameter('sign_type',$cfg->C('sign_type'));
+$reqHandler->setParameter('is_raw','1');
+$reqHandler->setParameter('body',$order['name']);
+$reqHandler->setParameter('sub_appid',WxPayConfig::APPID);
+$reqHandler->setParameter('sub_openid',$openId);
+$reqHandler->setParameter('total_fee',strval($order['money']*100));
+$reqHandler->setParameter('mch_create_ip',$clientip);
+$reqHandler->setParameter('out_trade_no',TRADE_NO);
+$reqHandler->setParameter('device_info', 'AND_WAP');//应用类型
+$reqHandler->setParameter('notify_url',$conf['localurl'].'pay/swiftpass/notify/'.TRADE_NO.'/');
+$reqHandler->setParameter('nonce_str',mt_rand(time(),time()+rand()));//随机字符串,必填项,不长于 32 位
+$reqHandler->createSign();//创建签名
+
+$data = Utils::toXml($reqHandler->getAllParameters());
+//var_dump($data);
+
+$pay->setReqContent($reqHandler->getGateURL(),$data);
+if($pay->call()){
+ $resHandler->setContent($pay->getResContent());
+ $resHandler->setRSAKey($cfg->C('public_rsa_key'));
+ if($resHandler->isTenpaySign()){
+ //当返回状态与业务结果都为0时才返回支付二维码,其它结果请查看接口文档
+ if($resHandler->getParameter('status') == 0 && $resHandler->getParameter('result_code') == 0){
+ $pay_info = $resHandler->getParameter('pay_info');
+ }else{
+ sysmsg('微信支付下单失败 ['.$resHandler->getParameter('err_code').']'.$resHandler->getParameter('err_msg'));
+ }
+ }else{
+ sysmsg('微信支付下单失败 ['.$resHandler->getParameter('status').']'.$resHandler->getParameter('message'));
+ }
+}else{
+ sysmsg('支付接口调用失败 ['.$pay->getResponseCode().']'.$pay->getErrInfo());
+}
+if($_GET['d']==1){
+ $redirect_url='window.location.href=data.backurl';
+}else{
+ $redirect_url='WeixinJSBridge.invoke("closeWindow", {}, function(e) {});';
+}
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/swiftpass/wxpay.php b/plugins/swiftpass/wxpay.php
new file mode 100644
index 0000000..5ce2924
--- /dev/null
+++ b/plugins/swiftpass/wxpay.php
@@ -0,0 +1,161 @@
+setGateUrl($cfg->C('url'));
+$reqHandler->setSignType($cfg->C('sign_type'));
+$reqHandler->setRSAKey($cfg->C('private_rsa_key'));
+$reqHandler->setParameter('service','pay.weixin.native');//接口类型
+$reqHandler->setParameter('mch_id',$cfg->C('mchId'));//必填项,商户号,由平台分配
+$reqHandler->setParameter('version',$cfg->C('version'));
+$reqHandler->setParameter('sign_type',$cfg->C('sign_type'));
+$reqHandler->setParameter('body',$order['name']);
+$reqHandler->setParameter('total_fee',strval($order['money']*100));
+$reqHandler->setParameter('mch_create_ip',$clientip);
+$reqHandler->setParameter('out_trade_no',TRADE_NO);
+$reqHandler->setParameter('notify_url',$conf['localurl'].'pay/swiftpass/notify/'.TRADE_NO.'/');
+$reqHandler->setParameter('nonce_str',mt_rand(time(),time()+rand()));//随机字符串,必填项,不长于 32 位
+$reqHandler->createSign();//创建签名
+
+$data = Utils::toXml($reqHandler->getAllParameters());
+//var_dump($data);
+
+$pay->setReqContent($reqHandler->getGateURL(),$data);
+if($pay->call()){
+ $resHandler->setContent($pay->getResContent());
+ $resHandler->setRSAKey($cfg->C('public_rsa_key'));
+ if($resHandler->isTenpaySign()){
+ //当返回状态与业务结果都为0时才返回支付二维码,其它结果请查看接口文档
+ if($resHandler->getParameter('status') == 0 && $resHandler->getParameter('result_code') == 0){
+ $code_url = $resHandler->getParameter('code_url');
+ }else{
+ sysmsg('微信支付下单失败 ['.$resHandler->getParameter('err_code').']'.$resHandler->getParameter('err_msg'));
+ }
+ }else{
+ sysmsg('微信支付下单失败 ['.$resHandler->getParameter('status').']'.$resHandler->getParameter('message'));
+ }
+}else{
+ sysmsg('支付接口调用失败 ['.$pay->getResponseCode().']'.$pay->getErrInfo());
+}
+
+?>
+
+
+
+
+
+
+
微信安全支付 -
+
+
+
+
+
+微信支付
+
+
+
+
+
¥
+
+
+
+
+
+商家
+
+购买物品
+
+商户订单号
+
+创建时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/swiftpass/wxwappay.php b/plugins/swiftpass/wxwappay.php
new file mode 100644
index 0000000..4de0e55
--- /dev/null
+++ b/plugins/swiftpass/wxwappay.php
@@ -0,0 +1,106 @@
+
+
+
+
+
+
微信支付
+
+
+
+
+
+
+
+ 微信支付手机版
+
+
+
长按保存到相册使用扫码扫码完成支付
+
+
或复制以下链接到微信打开:
+
+
提示:你可以将以上链接发到自己微信的聊天框(在微信顶部搜索框可以搜到自己的微信),即可点击进入支付
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/unionpay/alipay.php b/plugins/unionpay/alipay.php
new file mode 100644
index 0000000..9fa96c2
--- /dev/null
+++ b/plugins/unionpay/alipay.php
@@ -0,0 +1,181 @@
+setGateUrl($cfg->C('url'));
+$reqHandler->setSignType($cfg->C('sign_type'));
+$reqHandler->setKey($cfg->C('key'));
+$reqHandler->setParameter('service','unified.trade.native');//接口类型
+$reqHandler->setParameter('mch_id',$cfg->C('mchId'));//必填项,商户号,由平台分配
+$reqHandler->setParameter('version',$cfg->C('version'));
+$reqHandler->setParameter('sign_type',$cfg->C('sign_type'));
+$reqHandler->setParameter('body',$ordername);
+$reqHandler->setParameter('total_fee',strval($order['money']*100));
+$reqHandler->setParameter('mch_create_ip',$clientip);
+$reqHandler->setParameter('out_trade_no',TRADE_NO);
+$reqHandler->setParameter('notify_url',$conf['localurl'].'pay/unionpay/notify/'.TRADE_NO.'/');
+$reqHandler->setParameter('nonce_str',mt_rand(time(),time()+rand()));//随机字符串,必填项,不长于 32 位
+$reqHandler->createSign();//创建签名
+
+$data = Utils::toXml($reqHandler->getAllParameters());
+//var_dump($data);
+
+$pay->setReqContent($reqHandler->getGateURL(),$data);
+if($pay->call()){
+ $resHandler->setContent($pay->getResContent());
+ $resHandler->setKey($cfg->C('key'));
+ if($resHandler->isTenpaySign()){
+ //当返回状态与业务结果都为0时才返回支付二维码,其它结果请查看接口文档
+ if($resHandler->getParameter('status') == 0 && $resHandler->getParameter('result_code') == 0){
+ $code_url = $resHandler->getParameter('code_url');
+ }else{
+ sysmsg('支付宝支付下单失败 ['.$resHandler->getParameter('err_code').']'.$resHandler->getParameter('err_msg'));
+ }
+ }else{
+ sysmsg('支付宝支付下单失败 ['.$resHandler->getParameter('status').']'.$resHandler->getParameter('message'));
+ }
+}else{
+ sysmsg('支付接口调用失败 ['.$pay->getResponseCode().']'.$pay->getErrInfo());
+}
+?>
+
+
+
+
+
+
+
支付宝扫码支付 -
+
+
+
+
+
+支付宝扫码支付
+
+
+
+
+
¥
+
+
+
+
+
+商家
+
+购买物品
+
+商户订单号
+
+创建时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/unionpay/config.ini b/plugins/unionpay/config.ini
new file mode 100644
index 0000000..5168eb6
--- /dev/null
+++ b/plugins/unionpay/config.ini
@@ -0,0 +1,21 @@
+[config]
+;支付插件英文名称,需和目录名称一致,不能有重复
+name = "unionpay"
+
+;支付插件显示名称
+showname = "银联扫码支付"
+
+;支付插件作者
+author = "银联"
+
+;支付插件作者链接
+link = "http://www.95516.com/"
+
+;支付插件支持的支付方式,多种方式用英文,隔开,可选的有alipay,qqpay,wxpay,bank
+types = "alipay,wxpay,bank"
+
+;支付插件要求传入的参数以及参数显示名称,可选的有appid,appkey,appsecret,appurl,appmchid
+inputs = "appid:商户号,appkey:商户密钥"
+
+;支付插件要求传入的支付方式参数
+select = ""
\ No newline at end of file
diff --git a/plugins/unionpay/inc/WxPay.JsApiPay.php b/plugins/unionpay/inc/WxPay.JsApiPay.php
new file mode 100644
index 0000000..e8c0b59
--- /dev/null
+++ b/plugins/unionpay/inc/WxPay.JsApiPay.php
@@ -0,0 +1,167 @@
+getMessage();
+ }
+}
+
+/**
+ *
+ * JSAPI支付实现类
+ * 该类实现了从微信公众平台获取code、通过code获取openid和access_token、
+ * 生成jsapi支付js接口所需的参数、生成获取共享收货地址所需的参数
+ *
+ * 该类是微信支付提供的样例程序,商户可根据自己的需求修改,或者使用lib中的api自行开发
+ *
+ * @author widy
+ *
+ */
+class JsApiPay
+{
+ /**
+ *
+ * 网页授权接口微信服务器返回的数据,返回样例如下
+ * {
+ * "access_token":"ACCESS_TOKEN",
+ * "expires_in":7200,
+ * "refresh_token":"REFRESH_TOKEN",
+ * "openid":"OPENID",
+ * "scope":"SCOPE",
+ * "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
+ * }
+ * 其中access_token可用于获取共享收货地址
+ * openid是微信支付jsapi支付接口必须的参数
+ * @var array
+ */
+ public $data = null;
+
+ /**
+ *
+ * 通过跳转获取用户的openid,跳转流程如下:
+ * 1、设置自己需要调回的url及其其他参数,跳转到微信服务器https://open.weixin.qq.com/connect/oauth2/authorize
+ * 2、微信服务处理完成之后会跳转回用户redirect_uri地址,此时会带上一些参数,如:code
+ *
+ * @return 用户的openid
+ */
+ public function GetOpenid()
+ {
+ //通过code获得openid
+ if (!isset($_GET['code'])){
+ //触发微信返回code码
+ $baseUrl = urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
+ $url = $this->__CreateOauthUrlForCode($baseUrl);
+ Header("Location: $url");
+ exit();
+ } else {
+ //获取code码,以获取openid
+ $code = $_GET['code'];
+ $openid = $this->GetOpenidFromMp($code);
+ return $openid;
+ }
+ }
+
+ /**
+ *
+ * 通过code从工作平台获取openid机器access_token
+ * @param string $code 微信跳转回来带上的code
+ *
+ * @return openid
+ */
+ public function GetOpenidFromMp($code)
+ {
+ $url = $this->__CreateOauthUrlForOpenid($code);
+ //初始化curl
+ $ch = curl_init();
+ //设置超时
+ curl_setopt($ch, CURLOPT_TIMEOUT, $this->curl_timeout);
+ curl_setopt($ch, CURLOPT_URL, $url);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,FALSE);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,FALSE);
+ curl_setopt($ch, CURLOPT_HEADER, FALSE);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
+ //运行curl,结果以jason形式返回
+ $res = curl_exec($ch);
+ curl_close($ch);
+ //取出openid
+ $data = json_decode($res,true);
+ $this->data = $data;
+ $openid = $data['openid'];
+ return $openid;
+ }
+
+ /**
+ *
+ * 拼接签名字符串
+ * @param array $urlObj
+ *
+ * @return 返回已经拼接好的字符串
+ */
+ private function ToUrlParams($urlObj)
+ {
+ $buff = "";
+ foreach ($urlObj as $k => $v)
+ {
+ if($k != "sign"){
+ $buff .= $k . "=" . $v . "&";
+ }
+ }
+
+ $buff = trim($buff, "&");
+ return $buff;
+ }
+
+ /**
+ *
+ * 构造获取code的url连接
+ * @param string $redirectUrl 微信服务器回跳的url,需要url编码
+ *
+ * @return 返回构造好的url
+ */
+ private function __CreateOauthUrlForCode($redirectUrl)
+ {
+ $urlObj["appid"] = WxPayConfig::APPID;
+ $urlObj["redirect_uri"] = $redirectUrl;
+ $urlObj["response_type"] = "code";
+ $urlObj["scope"] = "snsapi_base";
+ $urlObj["state"] = "STATE"."#wechat_redirect";
+ $bizString = $this->ToUrlParams($urlObj);
+ return "https://open.weixin.qq.com/connect/oauth2/authorize?".$bizString;
+ }
+
+ /**
+ *
+ * 构造获取open和access_toke的url地址
+ * @param string $code,微信跳转带回的code
+ *
+ * @return 请求的url
+ */
+ private function __CreateOauthUrlForOpenid($code)
+ {
+ $urlObj["appid"] = WxPayConfig::APPID;
+ $urlObj["secret"] = WxPayConfig::APPSECRET;
+ $urlObj["code"] = $code;
+ $urlObj["grant_type"] = "authorization_code";
+ $bizString = $this->ToUrlParams($urlObj);
+ return "https://api.weixin.qq.com/sns/oauth2/access_token?".$bizString;
+ }
+}
\ No newline at end of file
diff --git a/plugins/unionpay/inc/class/ClientResponseHandler.class.php b/plugins/unionpay/inc/class/ClientResponseHandler.class.php
new file mode 100644
index 0000000..993cf76
--- /dev/null
+++ b/plugins/unionpay/inc/class/ClientResponseHandler.class.php
@@ -0,0 +1,236 @@
+ClientResponseHandler();
+ }
+
+ function ClientResponseHandler() {
+ $this->key = "";
+ $this->public_rsa_key = "";
+ $this->signtype = "";
+ $this->parameters = array();
+ $this->debugInfo = "";
+ $this->content = "";
+ }
+
+ /**
+ *获取密钥
+ */
+ function getKey() {
+ return $this->key;
+ }
+
+ /**
+ *设置密钥
+ */
+ function setKey($key) {
+ $this->key = $key;
+ }
+
+ /*设置平台公钥*/
+ function setRSAKey($key) {
+ $this->public_rsa_key = $key;
+ }
+
+ function setSignType($type) {
+ $this->signtype = $type;
+ }
+
+ //设置原始内容
+ function setContent($content) {
+ $this->content = $content;
+
+ libxml_disable_entity_loader(true);
+ $xml = simplexml_load_string($this->content);
+ $encode = $this->getXmlEncode($this->content);
+
+ if($xml && $xml->children()) {
+ foreach ($xml->children() as $node){
+ //有子节点
+ if($node->children()) {
+ $k = $node->getName();
+ $nodeXml = $node->asXML();
+ $v = substr($nodeXml, strlen($k)+2, strlen($nodeXml)-2*strlen($k)-5);
+
+ } else {
+ $k = $node->getName();
+ $v = (string)$node;
+ }
+
+ if($encode!="" && $encode != "UTF-8") {
+ $k = iconv("UTF-8", $encode, $k);
+ $v = iconv("UTF-8", $encode, $v);
+ }
+
+ $this->setParameter($k, $v);
+ }
+ }
+ }
+
+ //获取原始内容
+ function getContent() {
+ return $this->content;
+ }
+
+ /**
+ *获取参数值
+ */
+ function getParameter($parameter) {
+ return isset($this->parameters[$parameter])?$this->parameters[$parameter] : '';
+ }
+
+ /**
+ *设置参数值
+ */
+ function setParameter($parameter, $parameterValue) {
+ $this->parameters[$parameter] = $parameterValue;
+ }
+
+ /**
+ *获取所有请求的参数
+ *@return array
+ */
+ function getAllParameters() {
+ return $this->parameters;
+ }
+
+ /**
+ *是否平台签名,规则是:按参数名称a-z排序,遇到空值的参数不参加签名。
+ *true:是
+ *false:否
+ */
+ function isTenpaySign() {
+ $swiftpassSign = strtolower($this->getParameter("sign"));
+ if ($this->getParameter('sign_type') == 'MD5') {
+ return $this->getMD5Sign() == $swiftpassSign;
+ } else if ($this->getParameter('sign_type') == 'RSA_1_1' || $this->getParameter('sign_type') == 'RSA_1_256') {
+ return $this->verifyRSASign();
+ }
+ }
+
+ function getMD5Sign() {
+ $signPars = "";
+ ksort($this->parameters);
+ foreach($this->parameters as $k => $v) {
+ if("sign" != $k && "" != $v) {
+ $signPars .= $k . "=" . $v . "&";
+ }
+ }
+ $signPars .= "key=" . $this->getKey();
+
+ return strtolower(md5($signPars));
+ }
+
+ function verifyRSASign() {
+ $signPars = "";
+ ksort($this->parameters);
+ foreach($this->parameters as $k => $v) {
+ if("sign" != $k && "" != $v) {
+ $signPars .= $k . "=" . $v . "&";
+ }
+ }
+
+ $signPars = substr($signPars, 0, strlen($signPars) - 1);
+ $res = openssl_get_publickey($this->public_rsa_key);
+ if ($this->getParameter('sign_type') == 'RSA_1_1') {
+ $result = (bool)openssl_verify($signPars, base64_decode($this->getParameter("sign")), $res);
+ openssl_free_key($res);
+ return $result;
+ } else if($this->getParameter('sign_type') == 'RSA_1_256') {
+ $result = (bool)openssl_verify($signPars, base64_decode($this->getParameter("sign")), $res, OPENSSL_ALGO_SHA256);
+ openssl_free_key($res);
+ return $result;
+ }
+ }
+
+ /**
+ *获取debug信息
+ */
+ function getDebugInfo() {
+ return $this->debugInfo;
+ }
+
+ //获取xml编码
+ function getXmlEncode($xml) {
+ $ret = preg_match ("/]* encoding=\"(.*)\"[^>]* ?>/i", $xml, $arr);
+ if($ret) {
+ return strtoupper ( $arr[1] );
+ } else {
+ return "";
+ }
+ }
+
+ /**
+ *设置debug信息
+ */
+ function _setDebugInfo($debugInfo) {
+ $this->debugInfo = $debugInfo;
+ }
+
+ /**
+ * 是否财付通签名
+ * @param signParameterArray 签名的参数数组
+ * @return boolean
+ */
+ function _isTenpaySign($signParameterArray) {
+
+ $signPars = "";
+ foreach($signParameterArray as $k) {
+ $v = $this->getParameter($k);
+ if("sign" != $k && "" != $v) {
+ $signPars .= $k . "=" . $v . "&";
+ }
+ }
+ $signPars .= "key=" . $this->getKey();
+
+ $sign = strtolower(md5($signPars));
+
+ $tenpaySign = strtolower($this->getParameter("sign"));
+
+ //debug信息
+ $this->_setDebugInfo($signPars . " => sign:" . $sign .
+ " tenpaySign:" . $this->getParameter("sign"));
+
+ return $sign == $tenpaySign;
+
+
+ }
+
+}
+
+
+?>
\ No newline at end of file
diff --git a/plugins/unionpay/inc/class/PayHttpClient.class.php b/plugins/unionpay/inc/class/PayHttpClient.class.php
new file mode 100644
index 0000000..7ba0a7b
--- /dev/null
+++ b/plugins/unionpay/inc/class/PayHttpClient.class.php
@@ -0,0 +1,119 @@
+PayHttpClient();
+ }
+
+
+ function PayHttpClient() {
+ $this->reqContent = "";
+ $this->resContent = "";
+
+ $this->errInfo = "";
+
+ $this->timeOut = 120;
+
+ $this->responseCode = 0;
+
+ }
+
+ //设置请求内容
+ function setReqContent($url,$data) {
+ $this->reqUrl=$url;
+ $this->reqContent=$data;
+ }
+
+ //获取结果内容
+ function getResContent() {
+ return $this->resContent;
+ }
+
+ //获取错误信息
+ function getErrInfo() {
+ return $this->errInfo;
+ }
+
+ //设置超时时间,单位秒
+ function setTimeOut($timeOut) {
+ $this->timeOut = $timeOut;
+ }
+
+ //执行http调用
+ function call() {
+ //启动一个CURL会话
+ $ch = curl_init();
+
+ // 设置curl允许执行的最长秒数
+ curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeOut);
+ curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
+ curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
+ // 获取的信息以文件流的形式返回,而不是直接输出。
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
+
+ //发送一个常规的POST请求。
+ curl_setopt($ch, CURLOPT_POST, 1);
+ curl_setopt($ch, CURLOPT_URL, $this->reqUrl);
+ //要传送的所有数据
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $this->reqContent);
+
+ // 执行操作
+ $res = curl_exec($ch);
+ $this->responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+
+ if ($res == NULL) {
+ $this->errInfo = "call http err :" . curl_errno($ch) . " - " . curl_error($ch) ;
+ curl_close($ch);
+ return false;
+ } else if($this->responseCode != "200") {
+ $this->errInfo = "call http err httpcode=" . $this->responseCode ;
+ curl_close($ch);
+ return false;
+ }
+
+ curl_close($ch);
+ $this->resContent = $res;
+
+
+ return true;
+ }
+
+ function getResponseCode() {
+ return $this->responseCode;
+ }
+
+}
+?>
\ No newline at end of file
diff --git a/plugins/unionpay/inc/class/RequestHandler.class.php b/plugins/unionpay/inc/class/RequestHandler.class.php
new file mode 100644
index 0000000..7bd3994
--- /dev/null
+++ b/plugins/unionpay/inc/class/RequestHandler.class.php
@@ -0,0 +1,225 @@
+RequestHandler();
+ }
+
+ function RequestHandler() {
+ $this->gateUrl = "";
+ $this->key = "";
+ $this->private_rsa_key = "";
+ $this->signtype = "";
+ $this->parameters = array();
+ $this->debugInfo = "";
+ }
+
+ /**
+ *初始化函数。
+ */
+ function init() {
+ //nothing to do
+ }
+
+ /**
+ *获取入口地址,不包含参数值
+ */
+ function getGateURL() {
+ return $this->gateUrl;
+ }
+
+ /**
+ *设置入口地址,不包含参数值
+ */
+ function setGateURL($gateUrl) {
+ $this->gateUrl = $gateUrl;
+ }
+
+ function setSignType($type) {
+ $this->signtype = $type;
+ }
+
+ /**
+ *获取MD5密钥
+ */
+ function getKey() {
+ return $this->key;
+ }
+
+ /**
+ *设置MD5密钥
+ */
+ function setKey($key) {
+ $this->key = $key;
+ }
+
+ /*设置RSA私钥*/
+ function setRSAKey($key) {
+ $this->private_rsa_key = $key;
+ }
+
+ /**
+ *获取参数值
+ */
+ function getParameter($parameter) {
+ return isset($this->parameters[$parameter])?$this->parameters[$parameter]:'';
+ }
+
+ /**
+ *设置参数值
+ */
+ function setParameter($parameter, $parameterValue) {
+ $this->parameters[$parameter] = $parameterValue;
+ }
+
+ /**
+ * 一次性设置参数
+ */
+ function setReqParams($post,$filterField=null){
+ if($filterField !== null){
+ forEach($filterField as $k=>$v){
+ unset($post[$v]);
+ }
+ }
+
+ //判断是否存在空值,空值不提交
+ forEach($post as $k=>$v){
+ if(empty($v)){
+ unset($post[$k]);
+ }
+ }
+
+ $this->parameters = $post;
+ }
+
+ /**
+ *获取所有请求的参数
+ *@return array
+ */
+ function getAllParameters() {
+ return $this->parameters;
+ }
+
+ /**
+ *获取带参数的请求URL
+ */
+ function getRequestURL() {
+
+ $this->createSign();
+
+ $reqPar = "";
+ ksort($this->parameters);
+ foreach($this->parameters as $k => $v) {
+ $reqPar .= $k . "=" . urlencode($v) . "&";
+ }
+
+ //去掉最后一个&
+ $reqPar = substr($reqPar, 0, strlen($reqPar)-1);
+
+ $requestURL = $this->getGateURL() . "?" . $reqPar;
+
+ return $requestURL;
+
+ }
+
+ /**
+ *获取debug信息
+ */
+ function getDebugInfo() {
+ return $this->debugInfo;
+ }
+
+ /**
+ *创建md5摘要,规则是:按参数名称a-z排序,遇到空值的参数不参加签名。
+ */
+ function createSign() {
+ if($this->signtype == 'MD5') {
+ $this->createMD5Sign();
+ } else {
+ $this->createRSASign();
+ }
+ }
+
+ function createMD5Sign() {
+ $signPars = "";
+ ksort($this->parameters);
+ foreach($this->parameters as $k => $v) {
+ if("" != $v && "sign" != $k) {
+ $signPars .= $k . "=" . $v . "&";
+ }
+ }
+ $signPars .= "key=" . $this->getKey();
+ $sign = strtoupper(md5($signPars));
+ $this->setParameter("sign", $sign);
+
+ //debug信息
+ $this->_setDebugInfo($signPars . " => sign:" . $sign);
+ }
+
+ function createRSASign() {
+ $signPars = "";
+ ksort($this->parameters);
+ foreach($this->parameters as $k => $v) {
+ if("" != $v && "sign" != $k) {
+ $signPars .= $k . "=" . $v . "&";
+ }
+ }
+
+ $signPars = substr($signPars, 0, strlen($signPars) - 1);
+
+ $res = openssl_get_privatekey($this->private_rsa_key);
+ if ($this->signtype == 'RSA_1_1') {
+ openssl_sign($signPars, $sign, $res);
+ } else if ($this->signtype == 'RSA_1_256') {
+ openssl_sign($signPars, $sign, $res, OPENSSL_ALGO_SHA256);
+ }
+ openssl_free_key($res);
+ $sign = base64_encode($sign);
+ $this->setParameter("sign", $sign);
+
+ //debug信息
+ $this->_setDebugInfo($signPars . " => sign:" . $sign);
+ }
+
+ /**
+ *设置debug信息
+ */
+ function _setDebugInfo($debugInfo) {
+ $this->debugInfo = $debugInfo;
+ }
+
+}
+
+?>
\ No newline at end of file
diff --git a/plugins/unionpay/inc/class/Utils.class.php b/plugins/unionpay/inc/class/Utils.class.php
new file mode 100644
index 0000000..813ea4b
--- /dev/null
+++ b/plugins/unionpay/inc/class/Utils.class.php
@@ -0,0 +1,73 @@
+';
+ forEach($array as $k=>$v){
+ $xml.='<'.$k.'>'.$k.'>';
+ }
+ $xml.='';
+ return $xml;
+ }
+
+ public static function dataRecodes($title,$data){
+ $handler = fopen('result.txt','a+');
+ $content = "================".$title."===================\n";
+ if(is_string($data) === true){
+ $content .= $data."\n";
+ }
+ if(is_array($data) === true){
+ forEach($data as $k=>$v){
+ $content .= "key: ".$k." value: ".$v."\n";
+ }
+ }
+ $flag = fwrite($handler,$content);
+ fclose($handler);
+ return $flag;
+ }
+
+ public static function parseXML($xmlSrc){
+ if(empty($xmlSrc)){
+ return false;
+ }
+ $array = array();
+ libxml_disable_entity_loader(true);
+ $xml = simplexml_load_string($xmlSrc);
+ $encode = Utils::getXmlEncode($xmlSrc);
+
+ if($xml && $xml->children()) {
+ foreach ($xml->children() as $node){
+ //有子节点
+ if($node->children()) {
+ $k = $node->getName();
+ $nodeXml = $node->asXML();
+ $v = substr($nodeXml, strlen($k)+2, strlen($nodeXml)-2*strlen($k)-5);
+
+ } else {
+ $k = $node->getName();
+ $v = (string)$node;
+ }
+
+ if($encode!="" && $encode != "UTF-8") {
+ $k = iconv("UTF-8", $encode, $k);
+ $v = iconv("UTF-8", $encode, $v);
+ }
+ $array[$k] = $v;
+ }
+ }
+ return $array;
+ }
+
+ //获取xml编码
+ public static function getXmlEncode($xml) {
+ $ret = preg_match ("/]* encoding=\"(.*)\"[^>]* ?>/i", $xml, $arr);
+ if($ret) {
+ return strtoupper ( $arr[1] );
+ } else {
+ return "";
+ }
+ }
+}
+?>
\ No newline at end of file
diff --git a/plugins/unionpay/inc/config.php b/plugins/unionpay/inc/config.php
new file mode 100644
index 0000000..87c114d
--- /dev/null
+++ b/plugins/unionpay/inc/config.php
@@ -0,0 +1,18 @@
+'https://qra.95516.com/pay/gateway',/*支付请求接口地址,无需更改 */
+ 'mchId'=>PAY_API_APPID,/* 测试商户号 */
+ 'key'=>PAY_API_KEY, /* 测试密钥 */
+ 'version'=>'2.0',
+ 'sign_type'=>'MD5'
+ );
+
+ public function C($cfgName){
+ return $this->cfg[$cfgName];
+ }
+}
+?>
\ No newline at end of file
diff --git a/plugins/unionpay/notify.php b/plugins/unionpay/notify.php
new file mode 100644
index 0000000..d665c68
--- /dev/null
+++ b/plugins/unionpay/notify.php
@@ -0,0 +1,39 @@
+setContent($xml);
+
+$resHandler->setKey($cfg->C('key'));
+if($resHandler->isTenpaySign()){
+
+ if($resHandler->getParameter('status') == 0 && $resHandler->getParameter('result_code') == 0){
+ $transaction_id = $resHandler->getParameter('transaction_id');
+ $out_trade_no = $resHandler->getParameter('out_trade_no');
+ $total_fee = $resHandler->getParameter('total_fee');
+ $fee_type = $resHandler->getParameter('fee_type');
+ $openid = $resHandler->getParameter('openid');
+ if($out_trade_no == TRADE_NO && $total_fee==strval($order['money']*100) && $order['status']==0){
+ if($DB->exec("update `pre_order` set `status` ='1' where `trade_no`='".TRADE_NO."'")){
+ $DB->exec("update `pre_order` set `api_trade_no` ='$transaction_id',`endtime` ='$date',`buyer` ='$openid',`date`=NOW() where `trade_no`='".TRADE_NO."'");
+ processOrder($order);
+ }
+ }
+ //Utils::dataRecodes('ӿڻصյ֪ͨ',$resHandler->getAllParameters());
+ echo 'success';
+ exit();
+ }else{
+ echo 'failure1';
+ exit();
+ }
+}else{
+ echo 'failure2';
+}
+?>
\ No newline at end of file
diff --git a/plugins/unionpay/refund.php b/plugins/unionpay/refund.php
new file mode 100644
index 0000000..311ccb9
--- /dev/null
+++ b/plugins/unionpay/refund.php
@@ -0,0 +1,49 @@
+setGateUrl($cfg->C('url'));
+$reqHandler->setSignType($cfg->C('sign_type'));
+$reqHandler->setKey($cfg->C('key'));
+$reqHandler->setParameter('service','unified.trade.refund');//接口类型
+$reqHandler->setParameter('version',$cfg->C('version'));
+$reqHandler->setParameter('sign_type',$cfg->C('sign_type'));
+$reqHandler->setParameter('mch_id',$cfg->C('mchId'));//必填项,商户号,由平台分配
+$reqHandler->setParameter('transaction_id',$order['api_trade_no']);
+$reqHandler->setParameter('out_refund_no',$order['trade_no']);
+$reqHandler->setParameter('total_fee',strval($order['realmoney']*100));
+$reqHandler->setParameter('refund_fee',strval($order['realmoney']*100));
+$reqHandler->setParameter('nonce_str',mt_rand(time(),time()+rand()));//随机字符串,必填项,不长于 32 位
+$reqHandler->createSign();//创建签名
+
+$data = Utils::toXml($reqHandler->getAllParameters());
+//var_dump($data);
+
+$pay->setReqContent($reqHandler->getGateURL(),$data);
+if($pay->call()){
+ $resHandler->setContent($pay->getResContent());
+ $resHandler->setKey($cfg->C('key'));
+ if($resHandler->isTenpaySign()){
+ //当返回状态与业务结果都为0时才返回支付二维码,其它结果请查看接口文档
+ if($resHandler->getParameter('status') == 0 && $resHandler->getParameter('result_code') == 0){
+ $result = ['code'=>0, 'trade_no'=>$resHandler->getParameter('refund_id'), 'refund_fee'=>$resHandler->getParameter('refund_fee')];
+ }else{
+ $result = ['code'=>-1, 'msg'=>'['.$resHandler->getParameter('err_code').']'.$resHandler->getParameter('err_msg')];
+ }
+ }else{
+ $result = ['code'=>-1, 'msg'=>'['.$resHandler->getParameter('status').']'.$resHandler->getParameter('message')];
+ }
+}else{
+ $result = ['code'=>-1, 'msg'=>'退款接口调用失败 ['.$pay->getResponseCode().']'.$pay->getErrInfo()];
+}
+return $result;
\ No newline at end of file
diff --git a/plugins/unionpay/submit.php b/plugins/unionpay/submit.php
new file mode 100644
index 0000000..d55b2bc
--- /dev/null
+++ b/plugins/unionpay/submit.php
@@ -0,0 +1,16 @@
+window.location.href='/pay/unionpay/alipay/{$trade_no}/';";
+}elseif($order['typename']=='wxpay'){
+ if(strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger')!==false){
+ echo "";
+ }elseif(checkmobile()==true){
+ echo "";
+ }else{
+ echo "";
+ }
+}elseif($order['typename']=='bank'){
+ echo "";
+}
diff --git a/plugins/unionpay/wxjspay.php b/plugins/unionpay/wxjspay.php
new file mode 100644
index 0000000..8f3c903
--- /dev/null
+++ b/plugins/unionpay/wxjspay.php
@@ -0,0 +1,160 @@
+GetOpenid();
+//②、统一下单
+require(PAY_ROOT.'inc/class/Utils.class.php');
+require(PAY_ROOT.'inc/config.php');
+require(PAY_ROOT.'inc/class/RequestHandler.class.php');
+require(PAY_ROOT.'inc/class/ClientResponseHandler.class.php');
+require(PAY_ROOT.'inc/class/PayHttpClient.class.php');
+
+$resHandler = new ClientResponseHandler();
+$reqHandler = new RequestHandler();
+$pay = new PayHttpClient();
+$cfg = new Config();
+
+$reqHandler->setGateUrl($cfg->C('url'));
+$reqHandler->setSignType($cfg->C('sign_type'));
+$reqHandler->setKey($cfg->C('key'));
+$reqHandler->setParameter('service','pay.weixin.jspay');//接口类型
+$reqHandler->setParameter('mch_id',$cfg->C('mchId'));//必填项,商户号,由平台分配
+$reqHandler->setParameter('version',$cfg->C('version'));
+$reqHandler->setParameter('sign_type',$cfg->C('sign_type'));
+$reqHandler->setParameter('is_raw','1');
+$reqHandler->setParameter('body',$ordername);
+$reqHandler->setParameter('sub_appid',WxPayConfig::APPID);
+$reqHandler->setParameter('sub_openid',$openId);
+$reqHandler->setParameter('total_fee',strval($order['money']*100));
+$reqHandler->setParameter('mch_create_ip',$clientip);
+$reqHandler->setParameter('out_trade_no',TRADE_NO);
+$reqHandler->setParameter('device_info', 'AND_WAP');//应用类型
+$reqHandler->setParameter('notify_url',$conf['localurl'].'pay/unionpay/notify/'.TRADE_NO.'/');
+$reqHandler->setParameter('nonce_str',mt_rand(time(),time()+rand()));//随机字符串,必填项,不长于 32 位
+$reqHandler->createSign();//创建签名
+
+$data = Utils::toXml($reqHandler->getAllParameters());
+//var_dump($data);
+
+$pay->setReqContent($reqHandler->getGateURL(),$data);
+if($pay->call()){
+ $resHandler->setContent($pay->getResContent());
+ $resHandler->setKey($cfg->C('key'));
+ if($resHandler->isTenpaySign()){
+ //当返回状态与业务结果都为0时才返回支付二维码,其它结果请查看接口文档
+ if($resHandler->getParameter('status') == 0 && $resHandler->getParameter('result_code') == 0){
+ $pay_info = $resHandler->getParameter('pay_info');
+ }else{
+ sysmsg('微信支付下单失败 ['.$resHandler->getParameter('err_code').']'.$resHandler->getParameter('err_msg'));
+ }
+ }else{
+ sysmsg('微信支付下单失败 ['.$resHandler->getParameter('status').']'.$resHandler->getParameter('message'));
+ }
+}else{
+ sysmsg('支付接口调用失败 ['.$pay->getResponseCode().']'.$pay->getErrInfo());
+}
+if($_GET['d']==1){
+ $redirect_url='window.location.href=data.backurl';
+}else{
+ $redirect_url='WeixinJSBridge.invoke("closeWindow", {}, function(e) {});';
+}
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/unionpay/wxpay.php b/plugins/unionpay/wxpay.php
new file mode 100644
index 0000000..544a710
--- /dev/null
+++ b/plugins/unionpay/wxpay.php
@@ -0,0 +1,161 @@
+setGateUrl($cfg->C('url'));
+$reqHandler->setSignType($cfg->C('sign_type'));
+$reqHandler->setKey($cfg->C('key'));
+$reqHandler->setParameter('service','unified.trade.native');//接口类型
+$reqHandler->setParameter('mch_id',$cfg->C('mchId'));//必填项,商户号,由平台分配
+$reqHandler->setParameter('version',$cfg->C('version'));
+$reqHandler->setParameter('sign_type',$cfg->C('sign_type'));
+$reqHandler->setParameter('body',$ordername);
+$reqHandler->setParameter('total_fee',strval($order['money']*100));
+$reqHandler->setParameter('mch_create_ip',$clientip);
+$reqHandler->setParameter('out_trade_no',TRADE_NO);
+$reqHandler->setParameter('notify_url',$conf['localurl'].'pay/unionpay/notify/'.TRADE_NO.'/');
+$reqHandler->setParameter('nonce_str',mt_rand(time(),time()+rand()));//随机字符串,必填项,不长于 32 位
+$reqHandler->createSign();//创建签名
+
+$data = Utils::toXml($reqHandler->getAllParameters());
+//var_dump($data);
+
+$pay->setReqContent($reqHandler->getGateURL(),$data);
+if($pay->call()){
+ $resHandler->setContent($pay->getResContent());
+ $resHandler->setKey($cfg->C('key'));
+ if($resHandler->isTenpaySign()){
+ //当返回状态与业务结果都为0时才返回支付二维码,其它结果请查看接口文档
+ if($resHandler->getParameter('status') == 0 && $resHandler->getParameter('result_code') == 0){
+ $code_url = $resHandler->getParameter('code_url');
+ }else{
+ sysmsg('微信支付下单失败 ['.$resHandler->getParameter('err_code').']'.$resHandler->getParameter('err_msg'));
+ }
+ }else{
+ sysmsg('微信支付下单失败 ['.$resHandler->getParameter('status').']'.$resHandler->getParameter('message'));
+ }
+}else{
+ sysmsg('支付接口调用失败 ['.$pay->getResponseCode().']'.$pay->getErrInfo());
+}
+
+?>
+
+
+
+
+
+
+
微信安全支付 -
+
+
+
+
+
+微信支付
+
+
+
+
+
¥
+
+
+
+
+
+商家
+
+购买物品
+
+商户订单号
+
+创建时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/unionpay/wxwappay.php b/plugins/unionpay/wxwappay.php
new file mode 100644
index 0000000..738d6ce
--- /dev/null
+++ b/plugins/unionpay/wxwappay.php
@@ -0,0 +1,106 @@
+
+
+
+
+
+
微信支付
+
+
+
+
+
+
+
+ 微信支付手机版
+
+
+
长按保存到相册使用扫码扫码完成支付
+
+
或复制以下链接到微信打开:
+
+
提示:你可以将以上链接发到自己微信的聊天框(在微信顶部搜索框可以搜到自己的微信),即可点击进入支付
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/wxpay/cert/apiclient_cert.pem b/plugins/wxpay/cert/apiclient_cert.pem
new file mode 100644
index 0000000..d147c5c
--- /dev/null
+++ b/plugins/wxpay/cert/apiclient_cert.pem
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIEaTCCA9KgAwIBAgIEANG/jDANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC
+Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV
+BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf
+MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xNzAzMjkwNTAwMTVa
+Fw0yNzAzMjcwNTAwMTVaMIGYMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk
+b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE
+CxMFTU1QYXkxLTArBgNVBAMUJOmDkeW3nui/veaipue9kee7nOenkeaKgOaciemZ
+kOWFrOWPuDERMA8GA1UEBBMIMjMxNzM3OTQwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDY/WCuI8RuyJpasVZqBBmUxqxjM4gmF7Wj1U/gp+wGusRs9gtO
+Bf4NTlfZDO9ou5sdWYa3kJwahVIeItfkgGiv8177ahDiTgfvdvx4+BLrn05FhrhF
++EvPwsuxE/FA3Isz/QK2rsszZOPQMhEOAkGQxqXC/V6q46vyYa+SmUoxkMRC6Wfz
+Wu2lLPE0CAzgiLndWyIRM3vaoCbbFcTWh5BwBUVTG6hg47LBSG7a5eZQi+c0RwIh
+nT4CWXQC1c7WbI8StUqFfSPrRE3m8GpeLrj72GZ9UaYJq70zMXjq/V/+I7r82Gnb
++3sWAtxNb/PMTRhTAWIYMZzFA4ipPcIOh98xAgMBAAGjggFGMIIBQjAJBgNVHRME
+AjAAMCwGCWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRpZmljYXRl
+IjAdBgNVHQ4EFgQUDv+iqN6c2wuMEtuh30OQNIIL/NYwgb8GA1UdIwSBtzCBtIAU
+PgUm9iJitBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNOMRIwEAYD
+VQQIEwlHdWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5j
+ZW50MQwwCgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAdBgkqhkiG
+9w0BCQEWEG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8BAf8EBAMC
+BsAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEAivnt
+rYQqtdb7Z5USL6qSrhEHm62m8VYlQEYEENr+AUs5C7SaHunHM6TVLeTIY6Cnl2C8
+NQDnBWWc5BiciwygAvfnXnM7VU60llLnuksFWkLqfqEx7ZI9FquTvXqMcicwv8bx
+5B6HrkdgmF2H5/EYkvVnFTXk5/wXBnKiLg5hz4s=
+-----END CERTIFICATE-----
diff --git a/plugins/wxpay/cert/apiclient_key.pem b/plugins/wxpay/cert/apiclient_key.pem
new file mode 100644
index 0000000..25c55ad
--- /dev/null
+++ b/plugins/wxpay/cert/apiclient_key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDY/WCuI8RuyJpa
+sVZqBBmUxqxjM4gmF7Wj1U/gp+wGusRs9gtOBf4NTlfZDO9ou5sdWYa3kJwahVIe
+ItfkgGiv8177ahDiTgfvdvx4+BLrn05FhrhF+EvPwsuxE/FA3Isz/QK2rsszZOPQ
+MhEOAkGQxqXC/V6q46vyYa+SmUoxkMRC6WfzWu2lLPE0CAzgiLndWyIRM3vaoCbb
+FcTWh5BwBUVTG6hg47LBSG7a5eZQi+c0RwIhnT4CWXQC1c7WbI8StUqFfSPrRE3m
+8GpeLrj72GZ9UaYJq70zMXjq/V/+I7r82Gnb+3sWAtxNb/PMTRhTAWIYMZzFA4ip
+PcIOh98xAgMBAAECggEATG7sGEsXDWLyJBIle1CYZjSZUpQ7WBev7tbbvSnJVRGC
+0VLV5pTryWoYPad1yXGUEQGRF6YDpr/hjiX94EpvFdNnWK4i5mRQHUTPaBkSKRdD
+bfAnhtYQdk2KjISWzZ8iFZ0A0LK/dwoJyTNpmIKo78NZblbresyZq9ZHDx+Z590N
+btQE8d5mWjsWOfXkmUd4QSwuVzpqWQhTUEKcNRXHm2lNYxAE+nMIBT7hn1MNm/3p
+0v1pIqkLl4Lw+Xe92xeHWAK+xnHA62nURvxTjK2iSvEilFSBvlghfD7RxSLMRVb1
+tvbuD8YGUFXoOKSCZLs64SdqLLQBnpXe0Q04BdWqZQKBgQD0R0q2TtPIXiskVkVE
+QtCALOxEmQv4RHFTU4ZRQRujRROxlNVeCCS2/rciaLTGtORwrtvQne2lUbKC7Ilg
+X19YEjjC/RyjNSxhhBhuK/08WeRTG2I0sA4yCiAcAuTN25h/r4SzUF5BnDal4ob9
+3jbFDwBjptH3NBqaKRyWRuBp4wKBgQDjZt8/hbqK8xaZWBkvvCjPhdKTZfs/5xs0
+iJevjw5vRzYwlqLouJS6N+JMJPUbq7eLcrJ2xGm9vqyi5uTw7y3shOeUCh4g3QJV
+7S2LoIJXIf+i3/oh1yCRPo5JEW5gYtlbMjecsvsS1gxkY2131x0xpjV0WDiCLE0K
+8iD1oSeu2wKBgGHjJ6dCk09ZnQQkpgEinRaf6dXbVpaYJqlzcQGii4azqZ6hu5bA
+wKWsEIrzVm3CE0CscV15y79Rq60XSD2cOkK6mpBYiV9FcZFqM7gCXKoQg5RiBsqC
+Ok4HDLLs3e84LjYMiaqpa/vys1tqGRomL+BrkIZeVQkwkfBwxQnbQRZtAoGACtRO
+U2cZ8B4NeHYClQxf4SodUhmsMmneGM1cc+bbKB97DCtQTMblhky9ASVNaujtj72B
+lDhcVMXs0MEwK+0oAbh+ksU8lBISV2c5IQoeyul6lBYYgl4NVf1lp0MmP37VnQsy
+LMs1O7tn0awOfYOIB2JD72t4HXLgpGHNggUPr7sCgYEA5L3VNRo5OFb7O9kpDWBh
+VZllfyaPz/C2UOnMjbmUYRsVDIAeWun/Rb8gOqgZh1H74Cm2WbBmutgUDX6HJ1TW
+NklWS1x9cByxLcvDCdfWJJ0yGoYbhFjGAM0+pwg5kWGM+6TugdOHvKxLO/X9dziR
+4t0uaLPYY5bneoNkXdstRBk=
+-----END PRIVATE KEY-----
diff --git a/plugins/wxpay/config.ini b/plugins/wxpay/config.ini
new file mode 100644
index 0000000..741f902
--- /dev/null
+++ b/plugins/wxpay/config.ini
@@ -0,0 +1,21 @@
+[config]
+;支付插件英文名称,需和目录名称一致,不能有重复
+name = "wxpay"
+
+;支付插件显示名称
+showname = "微信官方支付"
+
+;支付插件作者
+author = "微信"
+
+;支付插件作者链接
+link = "https://pay.weixin.qq.com/"
+
+;支付插件支持的支付方式,多种方式用英文,隔开,可选的有alipay,qqpay,wxpay,bank
+types = "wxpay"
+
+;支付插件要求传入的参数以及参数显示名称,可选的有appid,appkey,appsecret,appurl,appmchid
+inputs = "appid:公众号APPID,appmchid:商户号,appkey:商户支付密钥,appsecret:公众号SECRET"
+
+;支付插件要求传入的支付方式参数
+select = "1:扫码支付,2:公众号支付,3:H5支付"
\ No newline at end of file
diff --git a/plugins/wxpay/h5.php b/plugins/wxpay/h5.php
new file mode 100644
index 0000000..10efeb0
--- /dev/null
+++ b/plugins/wxpay/h5.php
@@ -0,0 +1,32 @@
+SetBody($ordername);
+$input->SetOut_trade_no(TRADE_NO);
+$input->SetTotal_fee(strval($order['money']*100));
+$input->SetSpbill_create_ip($clientip);
+$input->SetTime_start(date("YmdHis"));
+$input->SetTime_expire(date("YmdHis", time() + 600));
+$input->SetNotify_url($conf['localurl'].'pay/wxpay/notify/'.TRADE_NO.'/');
+$input->SetTrade_type("MWEB");
+$result = $notify->GetPayUrl($input);
+if($result["result_code"]=='SUCCESS'){
+ $redirect_url=$siteurl.'pay/wxpay/return/'.TRADE_NO.'/';
+ $url=$result['mweb_url'].'&redirect_url='.urlencode($redirect_url);
+ exit("");
+}elseif(isset($result["err_code"])){
+ sysmsg('微信支付下单失败!['.$result["err_code"].'] '.$result["err_code_des"]);
+}else{
+ sysmsg('微信支付下单失败!['.$result["return_code"].'] '.$result["return_msg"]);
+}
+
+?>
\ No newline at end of file
diff --git a/plugins/wxpay/inc/WxPay.Api.php b/plugins/wxpay/inc/WxPay.Api.php
new file mode 100644
index 0000000..33effc8
--- /dev/null
+++ b/plugins/wxpay/inc/WxPay.Api.php
@@ -0,0 +1,616 @@
+IsOut_trade_noSet()) {
+ throw new WxPayException("缺少统一支付接口必填参数out_trade_no!");
+ }else if(!$inputObj->IsBodySet()){
+ throw new WxPayException("缺少统一支付接口必填参数body!");
+ }else if(!$inputObj->IsTotal_feeSet()) {
+ throw new WxPayException("缺少统一支付接口必填参数total_fee!");
+ }else if(!$inputObj->IsTrade_typeSet()) {
+ throw new WxPayException("缺少统一支付接口必填参数trade_type!");
+ }
+
+ //关联参数
+ if($inputObj->GetTrade_type() == "JSAPI" && !$inputObj->IsOpenidSet()){
+ throw new WxPayException("统一支付接口中,缺少必填参数openid!trade_type为JSAPI时,openid为必填参数!");
+ }
+ if($inputObj->GetTrade_type() == "JSAPI" && !$inputObj->IsProduct_idSet()){
+ throw new WxPayException("统一支付接口中,缺少必填参数product_id!trade_type为JSAPI时,product_id为必填参数!");
+ }
+
+ //异步通知url未设置,则使用配置文件中的url
+ if(!$inputObj->IsNotify_urlSet()){
+ $inputObj->SetNotify_url(WxPayConfig::NOTIFY_URL);//异步通知url
+ }
+
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ //签名
+ $inputObj->SetSign();
+ $xml = $inputObj->ToXml();
+
+ $startTimeStamp = self::getMillisecond();//请求开始时间
+ $response = self::postXmlCurl($xml, $url, false, $timeOut);
+ $result = WxPayResults::Init($response);
+ self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间
+
+ return $result;
+ }
+
+ /**
+ *
+ * 查询订单,WxPayOrderQuery中out_trade_no、transaction_id至少填一个
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayOrderQuery $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ * @return 成功时返回,其他抛异常
+ */
+ public static function orderQuery($inputObj, $timeOut = 6)
+ {
+ $url = "https://api.mch.weixin.qq.com/pay/orderquery";
+ //检测必填参数
+ if(!$inputObj->IsOut_trade_noSet() && !$inputObj->IsTransaction_idSet()) {
+ throw new WxPayException("订单查询接口中,out_trade_no、transaction_id至少填一个!");
+ }
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+
+ $startTimeStamp = self::getMillisecond();//请求开始时间
+ $response = self::postXmlCurl($xml, $url, false, $timeOut);
+ $result = WxPayResults::Init($response);
+ self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间
+
+ return $result;
+ }
+
+ /**
+ *
+ * 关闭订单,WxPayCloseOrder中out_trade_no必填
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayCloseOrder $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ * @return 成功时返回,其他抛异常
+ */
+ public static function closeOrder($inputObj, $timeOut = 6)
+ {
+ $url = "https://api.mch.weixin.qq.com/pay/closeorder";
+ //检测必填参数
+ if(!$inputObj->IsOut_trade_noSet()) {
+ throw new WxPayException("订单查询接口中,out_trade_no必填!");
+ }
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+
+ $startTimeStamp = self::getMillisecond();//请求开始时间
+ $response = self::postXmlCurl($xml, $url, false, $timeOut);
+ $result = WxPayResults::Init($response);
+ self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间
+
+ return $result;
+ }
+
+ /**
+ *
+ * 申请退款,WxPayRefund中out_trade_no、transaction_id至少填一个且
+ * out_refund_no、total_fee、refund_fee、op_user_id为必填参数
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayRefund $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ * @return 成功时返回,其他抛异常
+ */
+ public static function refund($inputObj, $timeOut = 6)
+ {
+ $url = "https://api.mch.weixin.qq.com/secapi/pay/refund";
+ //检测必填参数
+ if(!$inputObj->IsOut_trade_noSet() && !$inputObj->IsTransaction_idSet()) {
+ throw new WxPayException("退款申请接口中,out_trade_no、transaction_id至少填一个!");
+ }else if(!$inputObj->IsOut_refund_noSet()){
+ throw new WxPayException("退款申请接口中,缺少必填参数out_refund_no!");
+ }else if(!$inputObj->IsTotal_feeSet()){
+ throw new WxPayException("退款申请接口中,缺少必填参数total_fee!");
+ }else if(!$inputObj->IsRefund_feeSet()){
+ throw new WxPayException("退款申请接口中,缺少必填参数refund_fee!");
+ }else if(!$inputObj->IsOp_user_idSet()){
+ throw new WxPayException("退款申请接口中,缺少必填参数op_user_id!");
+ }
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+ $startTimeStamp = self::getMillisecond();//请求开始时间
+ $response = self::postXmlCurl($xml, $url, true, $timeOut);
+ $result = WxPayResults::Init($response);
+ self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间
+
+ return $result;
+ }
+
+ /**
+ *
+ * 查询退款
+ * 提交退款申请后,通过调用该接口查询退款状态。退款有一定延时,
+ * 用零钱支付的退款20分钟内到账,银行卡支付的退款3个工作日后重新查询退款状态。
+ * WxPayRefundQuery中out_refund_no、out_trade_no、transaction_id、refund_id四个参数必填一个
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayRefundQuery $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ * @return 成功时返回,其他抛异常
+ */
+ public static function refundQuery($inputObj, $timeOut = 6)
+ {
+ $url = "https://api.mch.weixin.qq.com/pay/refundquery";
+ //检测必填参数
+ if(!$inputObj->IsOut_refund_noSet() &&
+ !$inputObj->IsOut_trade_noSet() &&
+ !$inputObj->IsTransaction_idSet() &&
+ !$inputObj->IsRefund_idSet()) {
+ throw new WxPayException("退款查询接口中,out_refund_no、out_trade_no、transaction_id、refund_id四个参数必填一个!");
+ }
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+
+ $startTimeStamp = self::getMillisecond();//请求开始时间
+ $response = self::postXmlCurl($xml, $url, false, $timeOut);
+ $result = WxPayResults::Init($response);
+ self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间
+
+ return $result;
+ }
+
+ /**
+ * 下载对账单,WxPayDownloadBill中bill_date为必填参数
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayDownloadBill $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ * @return 成功时返回,其他抛异常
+ */
+ public static function downloadBill($inputObj, $timeOut = 6)
+ {
+ $url = "https://api.mch.weixin.qq.com/pay/downloadbill";
+ //检测必填参数
+ if(!$inputObj->IsBill_dateSet()) {
+ throw new WxPayException("对账单接口中,缺少必填参数bill_date!");
+ }
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+
+ $response = self::postXmlCurl($xml, $url, false, $timeOut);
+ if(substr($response, 0 , 5) == "
"){
+ return "";
+ }
+ return $response;
+ }
+
+ /**
+ * 提交被扫支付API
+ * 收银员使用扫码设备读取微信用户刷卡授权码以后,二维码或条码信息传送至商户收银台,
+ * 由商户收银台或者商户后台调用该接口发起支付。
+ * WxPayWxPayMicroPay中body、out_trade_no、total_fee、auth_code参数必填
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayWxPayMicroPay $inputObj
+ * @param int $timeOut
+ */
+ public static function micropay($inputObj, $timeOut = 10)
+ {
+ $url = "https://api.mch.weixin.qq.com/pay/micropay";
+ //检测必填参数
+ if(!$inputObj->IsBodySet()) {
+ throw new WxPayException("提交被扫支付API接口中,缺少必填参数body!");
+ } else if(!$inputObj->IsOut_trade_noSet()) {
+ throw new WxPayException("提交被扫支付API接口中,缺少必填参数out_trade_no!");
+ } else if(!$inputObj->IsTotal_feeSet()) {
+ throw new WxPayException("提交被扫支付API接口中,缺少必填参数total_fee!");
+ } else if(!$inputObj->IsAuth_codeSet()) {
+ throw new WxPayException("提交被扫支付API接口中,缺少必填参数auth_code!");
+ }
+
+ $inputObj->SetSpbill_create_ip($_SERVER['REMOTE_ADDR']);//终端ip
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+
+ $startTimeStamp = self::getMillisecond();//请求开始时间
+ $response = self::postXmlCurl($xml, $url, false, $timeOut);
+ $result = WxPayResults::Init($response);
+ self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间
+
+ return $result;
+ }
+
+ /**
+ *
+ * 撤销订单API接口,WxPayReverse中参数out_trade_no和transaction_id必须填写一个
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayReverse $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ */
+ public static function reverse($inputObj, $timeOut = 6)
+ {
+ $url = "https://api.mch.weixin.qq.com/secapi/pay/reverse";
+ //检测必填参数
+ if(!$inputObj->IsOut_trade_noSet() && !$inputObj->IsTransaction_idSet()) {
+ throw new WxPayException("撤销订单API接口中,参数out_trade_no和transaction_id必须填写一个!");
+ }
+
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+
+ $startTimeStamp = self::getMillisecond();//请求开始时间
+ $response = self::postXmlCurl($xml, $url, true, $timeOut);
+ $result = WxPayResults::Init($response);
+ self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间
+
+ return $result;
+ }
+
+ /**
+ *
+ * 企业付款,WxPayTransfer中partner_trade_no必填
+ * partner_trade_no、openid、check_name、amount、desc为必填参数
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayTransfer $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ * @return 成功时返回,其他抛异常
+ */
+ public static function transfer($inputObj, $timeOut = 6)
+ {
+ $url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers";
+ //检测必填参数
+ if(!$inputObj->IsPartner_trade_noSet()){
+ throw new WxPayException("企业付款接口中,缺少必填参数partner_trade_no!");
+ }else if(!$inputObj->IsOpenidSet()){
+ throw new WxPayException("企业付款接口中,缺少必填参数openid!");
+ }else if(!$inputObj->IsCheck_nameSet()){
+ throw new WxPayException("企业付款接口中,缺少必填参数check_name!");
+ }else if(!$inputObj->IsAmountSet()){
+ throw new WxPayException("企业付款接口中,缺少必填参数amount!");
+ }else if(!$inputObj->IsDescSet()){
+ throw new WxPayException("企业付款接口中,缺少必填参数desc!");
+ }
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+ $response = self::postXmlCurl($xml, $url, true, $timeOut);
+ $result = WxPayResults::Init2($response);
+
+ return $result;
+ }
+
+ /**
+ *
+ * 测速上报,该方法内部封装在report中,使用时请注意异常流程
+ * WxPayReport中interface_url、return_code、result_code、user_ip、execute_time_必填
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayReport $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ * @return 成功时返回,其他抛异常
+ */
+ public static function report($inputObj, $timeOut = 1)
+ {
+ $url = "https://api.mch.weixin.qq.com/payitil/report";
+ //检测必填参数
+ if(!$inputObj->IsInterface_urlSet()) {
+ throw new WxPayException("接口URL,缺少必填参数interface_url!");
+ } if(!$inputObj->IsReturn_codeSet()) {
+ throw new WxPayException("返回状态码,缺少必填参数return_code!");
+ } if(!$inputObj->IsResult_codeSet()) {
+ throw new WxPayException("业务结果,缺少必填参数result_code!");
+ } if(!$inputObj->IsUser_ipSet()) {
+ throw new WxPayException("访问接口IP,缺少必填参数user_ip!");
+ } if(!$inputObj->IsExecute_time_Set()) {
+ throw new WxPayException("接口耗时,缺少必填参数execute_time_!");
+ }
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetUser_ip($_SERVER['REMOTE_ADDR']);//终端ip
+ $inputObj->SetTime(date("YmdHis"));//商户上报时间
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+
+ $startTimeStamp = self::getMillisecond();//请求开始时间
+ $response = self::postXmlCurl($xml, $url, false, $timeOut);
+ return $response;
+ }
+
+ /**
+ *
+ * 生成二维码规则,模式一生成支付二维码
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayBizPayUrl $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ * @return 成功时返回,其他抛异常
+ */
+ public static function bizpayurl($inputObj, $timeOut = 6)
+ {
+ if(!$inputObj->IsProduct_idSet()){
+ throw new WxPayException("生成二维码,缺少必填参数product_id!");
+ }
+
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetTime_stamp(time());//时间戳
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+
+ return $inputObj->GetValues();
+ }
+
+ /**
+ *
+ * 转换短链接
+ * 该接口主要用于扫码原生支付模式一中的二维码链接转成短链接(weixin://wxpay/s/XXXXXX),
+ * 减小二维码数据量,提升扫描速度和精确度。
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayShortUrl $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ * @return 成功时返回,其他抛异常
+ */
+ public static function shorturl($inputObj, $timeOut = 6)
+ {
+ $url = "https://api.mch.weixin.qq.com/tools/shorturl";
+ //检测必填参数
+ if(!$inputObj->IsLong_urlSet()) {
+ throw new WxPayException("需要转换的URL,签名用原串,传输需URL encode!");
+ }
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+
+ $startTimeStamp = self::getMillisecond();//请求开始时间
+ $response = self::postXmlCurl($xml, $url, false, $timeOut);
+ $result = WxPayResults::Init($response);
+ self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间
+
+ return $result;
+ }
+
+ /**
+ *
+ * 支付结果通用通知
+ * @param function $callback
+ * 直接回调函数使用方法: notify(you_function);
+ * 回调类成员函数方法:notify(array($this, you_function));
+ * $callback 原型为:function function_name($data){}
+ */
+ public static function notify($callback, &$msg)
+ {
+ //获取通知的数据
+ $xml = file_get_contents("php://input");
+ //如果返回成功则验证签名
+ try {
+ $result = WxPayResults::Init($xml);
+ } catch (WxPayException $e){
+ $msg = $e->errorMessage();
+ return false;
+ }
+
+ return call_user_func($callback, $result);
+ }
+
+ /**
+ *
+ * 产生随机字符串,不长于32位
+ * @param int $length
+ * @return 产生的随机字符串
+ */
+ public static function getNonceStr($length = 32)
+ {
+ $chars = "abcdefghijklmnopqrstuvwxyz0123456789";
+ $str ="";
+ for ( $i = 0; $i < $length; $i++ ) {
+ $str .= substr($chars, mt_rand(0, strlen($chars)-1), 1);
+ }
+ return $str;
+ }
+
+ /**
+ * 直接输出xml
+ * @param string $xml
+ */
+ public static function replyNotify($xml)
+ {
+ echo $xml;
+ }
+
+ /**
+ *
+ * 上报数据, 上报的时候将屏蔽所有异常流程
+ * @param string $usrl
+ * @param int $startTimeStamp
+ * @param array $data
+ */
+ private static function reportCostTime($url, $startTimeStamp, $data)
+ {
+ //如果不需要上报数据
+ if(WxPayConfig::REPORT_LEVENL == 0){
+ return;
+ }
+ //如果仅失败上报
+ if(WxPayConfig::REPORT_LEVENL == 1 &&
+ array_key_exists("return_code", $data) &&
+ $data["return_code"] == "SUCCESS" &&
+ array_key_exists("result_code", $data) &&
+ $data["result_code"] == "SUCCESS")
+ {
+ return;
+ }
+
+ //上报逻辑
+ $endTimeStamp = self::getMillisecond();
+ $objInput = new WxPayReport();
+ $objInput->SetInterface_url($url);
+ $objInput->SetExecute_time_($endTimeStamp - $startTimeStamp);
+ //返回状态码
+ if(array_key_exists("return_code", $data)){
+ $objInput->SetReturn_code($data["return_code"]);
+ }
+ //返回信息
+ if(array_key_exists("return_msg", $data)){
+ $objInput->SetReturn_msg($data["return_msg"]);
+ }
+ //业务结果
+ if(array_key_exists("result_code", $data)){
+ $objInput->SetResult_code($data["result_code"]);
+ }
+ //错误代码
+ if(array_key_exists("err_code", $data)){
+ $objInput->SetErr_code($data["err_code"]);
+ }
+ //错误代码描述
+ if(array_key_exists("err_code_des", $data)){
+ $objInput->SetErr_code_des($data["err_code_des"]);
+ }
+ //商户订单号
+ if(array_key_exists("out_trade_no", $data)){
+ $objInput->SetOut_trade_no($data["out_trade_no"]);
+ }
+ //设备号
+ if(array_key_exists("device_info", $data)){
+ $objInput->SetDevice_info($data["device_info"]);
+ }
+
+ try{
+ self::report($objInput);
+ } catch (WxPayException $e){
+ //不做任何处理
+ }
+ }
+
+ /**
+ * 以post方式提交xml到对应的接口url
+ *
+ * @param string $xml 需要post的xml数据
+ * @param string $url url
+ * @param bool $useCert 是否需要证书,默认不需要
+ * @param int $second url执行超时时间,默认30s
+ * @throws WxPayException
+ */
+ private static function postXmlCurl($xml, $url, $useCert = false, $second = 30)
+ {
+ $ch = curl_init();
+ //设置超时
+ curl_setopt($ch, CURLOPT_TIMEOUT, $second);
+
+ //如果有配置代理这里就设置代理
+ if(WxPayConfig::CURL_PROXY_HOST != "0.0.0.0"
+ && WxPayConfig::CURL_PROXY_PORT != 0){
+ curl_setopt($ch,CURLOPT_PROXY, WxPayConfig::CURL_PROXY_HOST);
+ curl_setopt($ch,CURLOPT_PROXYPORT, WxPayConfig::CURL_PROXY_PORT);
+ }
+ curl_setopt($ch,CURLOPT_URL, $url);
+ curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
+ curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
+ //设置header
+ curl_setopt($ch, CURLOPT_HEADER, FALSE);
+ //要求结果为字符串且输出到屏幕上
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
+
+ if($useCert == true){
+ //设置证书
+ //使用证书:cert 与 key 分别属于两个.pem文件
+ curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');
+ curl_setopt($ch,CURLOPT_SSLCERT, WxPayConfig::SSLCERT_PATH);
+ curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');
+ curl_setopt($ch,CURLOPT_SSLKEY, WxPayConfig::SSLKEY_PATH);
+ }
+ //post提交方式
+ curl_setopt($ch, CURLOPT_POST, TRUE);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
+ //运行curl
+ $data = curl_exec($ch);
+ //返回结果
+ if($data){
+ curl_close($ch);
+ return $data;
+ } else {
+ $error = curl_errno($ch);
+ curl_close($ch);
+ throw new WxPayException("curl出错,错误码:$error");
+ }
+ }
+
+ /**
+ * 获取毫秒级别的时间戳
+ */
+ private static function getMillisecond()
+ {
+ //获取毫秒的时间戳
+ $time = explode ( " ", microtime () );
+ $time = $time[1] . ($time[0] * 1000);
+ $time2 = explode( ".", $time );
+ $time = $time2[0];
+ return $time;
+ }
+}
+
diff --git a/plugins/wxpay/inc/WxPay.Config.php b/plugins/wxpay/inc/WxPay.Config.php
new file mode 100644
index 0000000..dd84318
--- /dev/null
+++ b/plugins/wxpay/inc/WxPay.Config.php
@@ -0,0 +1,63 @@
+MakeSign();
+ $this->values['sign'] = $sign;
+ return $sign;
+ }
+
+ /**
+ * 获取签名,详见签名生成算法的值
+ * @return 值
+ **/
+ public function GetSign()
+ {
+ return $this->values['sign'];
+ }
+
+ /**
+ * 判断签名,详见签名生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsSignSet()
+ {
+ return array_key_exists('sign', $this->values);
+ }
+
+ /**
+ * 输出xml字符
+ * @throws WxPayException
+ **/
+ public function ToXml()
+ {
+ if(!is_array($this->values)
+ || count($this->values) <= 0)
+ {
+ throw new WxPayException("数组数据异常!");
+ }
+
+ $xml = "";
+ foreach ($this->values as $key=>$val)
+ {
+ if (is_numeric($val)){
+ $xml.="<".$key.">".$val."".$key.">";
+ }else{
+ $xml.="<".$key.">".$key.">";
+ }
+ }
+ $xml.=" ";
+ return $xml;
+ }
+
+ /**
+ * 将xml转为array
+ * @param string $xml
+ * @throws WxPayException
+ */
+ public function FromXml($xml)
+ {
+ if(!$xml){
+ throw new WxPayException("xml数据异常!");
+ }
+ //将XML转为array
+ //禁止引用外部xml实体
+ libxml_disable_entity_loader(true);
+ $this->values = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
+ return $this->values;
+ }
+
+ /**
+ * 格式化参数格式化成url参数
+ */
+ public function ToUrlParams()
+ {
+ $buff = "";
+ foreach ($this->values as $k => $v)
+ {
+ if($k != "sign" && $v != "" && !is_array($v)){
+ $buff .= $k . "=" . $v . "&";
+ }
+ }
+
+ $buff = trim($buff, "&");
+ return $buff;
+ }
+
+ /**
+ * 生成签名
+ * @return 签名,本函数不覆盖sign成员变量,如要设置签名需要调用SetSign方法赋值
+ */
+ public function MakeSign()
+ {
+ //签名步骤一:按字典序排序参数
+ ksort($this->values);
+ $string = $this->ToUrlParams();
+ //签名步骤二:在string后加入KEY
+ $string = $string . "&key=".WxPayConfig::KEY;
+ //签名步骤三:MD5加密
+ $string = md5($string);
+ //签名步骤四:所有字符转为大写
+ $result = strtoupper($string);
+ return $result;
+ }
+
+ /**
+ * 获取设置的值
+ */
+ public function GetValues()
+ {
+ return $this->values;
+ }
+}
+
+/**
+ *
+ * 接口调用结果类
+ * @author widyhu
+ *
+ */
+class WxPayResults extends WxPayDataBase
+{
+ /**
+ *
+ * 检测签名
+ */
+ public function CheckSign()
+ {
+ //fix异常
+ if(!$this->IsSignSet()){
+ throw new WxPayException("签名错误!");
+ }
+
+ $sign = $this->MakeSign();
+ if($this->GetSign() == $sign){
+ return true;
+ }
+ throw new WxPayException("签名错误!");
+ }
+
+ /**
+ *
+ * 使用数组初始化
+ * @param array $array
+ */
+ public function FromArray($array)
+ {
+ $this->values = $array;
+ }
+
+ /**
+ *
+ * 使用数组初始化对象
+ * @param array $array
+ * @param 是否检测签名 $noCheckSign
+ */
+ public static function InitFromArray($array, $noCheckSign = false)
+ {
+ $obj = new self();
+ $obj->FromArray($array);
+ if($noCheckSign == false){
+ $obj->CheckSign();
+ }
+ return $obj;
+ }
+
+ /**
+ *
+ * 设置参数
+ * @param string $key
+ * @param string $value
+ */
+ public function SetData($key, $value)
+ {
+ $this->values[$key] = $value;
+ }
+
+ /**
+ * 将xml转为array
+ * @param string $xml
+ * @throws WxPayException
+ */
+ public static function Init($xml)
+ {
+ $obj = new self();
+ $obj->FromXml($xml);
+ //fix bug 2015-06-29
+ if($obj->values['return_code'] != 'SUCCESS'){
+ return $obj->GetValues();
+ }
+ $obj->CheckSign();
+ return $obj->GetValues();
+ }
+
+ /**
+ * 将xml转为array(无签名校验)
+ * @param string $xml
+ * @throws WxPayException
+ */
+ public static function Init2($xml)
+ {
+ $obj = new self();
+ $obj->FromXml($xml);
+ if($obj->values['return_code'] != 'SUCCESS'){
+ return $obj->GetValues();
+ }
+ return $obj->GetValues();
+ }
+}
+
+/**
+ *
+ * 回调基础类
+ * @author widyhu
+ *
+ */
+class WxPayNotifyReply extends WxPayDataBase
+{
+ /**
+ *
+ * 设置错误码 FAIL 或者 SUCCESS
+ * @param string
+ */
+ public function SetReturn_code($return_code)
+ {
+ $this->values['return_code'] = $return_code;
+ }
+
+ /**
+ *
+ * 获取错误码 FAIL 或者 SUCCESS
+ * @return string $return_code
+ */
+ public function GetReturn_code()
+ {
+ return $this->values['return_code'];
+ }
+
+ /**
+ *
+ * 设置错误信息
+ * @param string $return_code
+ */
+ public function SetReturn_msg($return_msg)
+ {
+ $this->values['return_msg'] = $return_msg;
+ }
+
+ /**
+ *
+ * 获取错误信息
+ * @return string
+ */
+ public function GetReturn_msg()
+ {
+ return $this->values['return_msg'];
+ }
+
+ /**
+ *
+ * 设置返回参数
+ * @param string $key
+ * @param string $value
+ */
+ public function SetData($key, $value)
+ {
+ $this->values[$key] = $value;
+ }
+}
+
+/**
+ *
+ * 统一下单输入对象
+ * @author widyhu
+ *
+ */
+class WxPayUnifiedOrder extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的终端设备号,商户自定义
+ * @param string $value
+ **/
+ public function SetDevice_info($value)
+ {
+ $this->values['device_info'] = $value;
+ }
+ /**
+ * 获取微信支付分配的终端设备号,商户自定义的值
+ * @return 值
+ **/
+ public function GetDevice_info()
+ {
+ return $this->values['device_info'];
+ }
+ /**
+ * 判断微信支付分配的终端设备号,商户自定义是否存在
+ * @return true 或 false
+ **/
+ public function IsDevice_infoSet()
+ {
+ return array_key_exists('device_info', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+
+ /**
+ * 设置商品或支付单简要描述
+ * @param string $value
+ **/
+ public function SetBody($value)
+ {
+ $this->values['body'] = $value;
+ }
+ /**
+ * 获取商品或支付单简要描述的值
+ * @return 值
+ **/
+ public function GetBody()
+ {
+ return $this->values['body'];
+ }
+ /**
+ * 判断商品或支付单简要描述是否存在
+ * @return true 或 false
+ **/
+ public function IsBodySet()
+ {
+ return array_key_exists('body', $this->values);
+ }
+
+
+ /**
+ * 设置商品名称明细列表
+ * @param string $value
+ **/
+ public function SetDetail($value)
+ {
+ $this->values['detail'] = $value;
+ }
+ /**
+ * 获取商品名称明细列表的值
+ * @return 值
+ **/
+ public function GetDetail()
+ {
+ return $this->values['detail'];
+ }
+ /**
+ * 判断商品名称明细列表是否存在
+ * @return true 或 false
+ **/
+ public function IsDetailSet()
+ {
+ return array_key_exists('detail', $this->values);
+ }
+
+
+ /**
+ * 设置附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
+ * @param string $value
+ **/
+ public function SetAttach($value)
+ {
+ $this->values['attach'] = $value;
+ }
+ /**
+ * 获取附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据的值
+ * @return 值
+ **/
+ public function GetAttach()
+ {
+ return $this->values['attach'];
+ }
+ /**
+ * 判断附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据是否存在
+ * @return true 或 false
+ **/
+ public function IsAttachSet()
+ {
+ return array_key_exists('attach', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号
+ * @param string $value
+ **/
+ public function SetOut_trade_no($value)
+ {
+ $this->values['out_trade_no'] = $value;
+ }
+ /**
+ * 获取商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号的值
+ * @return 值
+ **/
+ public function GetOut_trade_no()
+ {
+ return $this->values['out_trade_no'];
+ }
+ /**
+ * 判断商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_trade_noSet()
+ {
+ return array_key_exists('out_trade_no', $this->values);
+ }
+
+
+ /**
+ * 设置符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型
+ * @param string $value
+ **/
+ public function SetFee_type($value)
+ {
+ $this->values['fee_type'] = $value;
+ }
+ /**
+ * 获取符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型的值
+ * @return 值
+ **/
+ public function GetFee_type()
+ {
+ return $this->values['fee_type'];
+ }
+ /**
+ * 判断符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型是否存在
+ * @return true 或 false
+ **/
+ public function IsFee_typeSet()
+ {
+ return array_key_exists('fee_type', $this->values);
+ }
+
+
+ /**
+ * 设置订单总金额,只能为整数,详见支付金额
+ * @param string $value
+ **/
+ public function SetTotal_fee($value)
+ {
+ $this->values['total_fee'] = $value;
+ }
+ /**
+ * 获取订单总金额,只能为整数,详见支付金额的值
+ * @return 值
+ **/
+ public function GetTotal_fee()
+ {
+ return $this->values['total_fee'];
+ }
+ /**
+ * 判断订单总金额,只能为整数,详见支付金额是否存在
+ * @return true 或 false
+ **/
+ public function IsTotal_feeSet()
+ {
+ return array_key_exists('total_fee', $this->values);
+ }
+
+
+ /**
+ * 设置APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。
+ * @param string $value
+ **/
+ public function SetSpbill_create_ip($value)
+ {
+ $this->values['spbill_create_ip'] = $value;
+ }
+ /**
+ * 获取APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。的值
+ * @return 值
+ **/
+ public function GetSpbill_create_ip()
+ {
+ return $this->values['spbill_create_ip'];
+ }
+ /**
+ * 判断APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。是否存在
+ * @return true 或 false
+ **/
+ public function IsSpbill_create_ipSet()
+ {
+ return array_key_exists('spbill_create_ip', $this->values);
+ }
+
+
+ /**
+ * 设置订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则
+ * @param string $value
+ **/
+ public function SetTime_start($value)
+ {
+ $this->values['time_start'] = $value;
+ }
+ /**
+ * 获取订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则的值
+ * @return 值
+ **/
+ public function GetTime_start()
+ {
+ return $this->values['time_start'];
+ }
+ /**
+ * 判断订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则是否存在
+ * @return true 或 false
+ **/
+ public function IsTime_startSet()
+ {
+ return array_key_exists('time_start', $this->values);
+ }
+
+
+ /**
+ * 设置订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则
+ * @param string $value
+ **/
+ public function SetTime_expire($value)
+ {
+ $this->values['time_expire'] = $value;
+ }
+ /**
+ * 获取订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则的值
+ * @return 值
+ **/
+ public function GetTime_expire()
+ {
+ return $this->values['time_expire'];
+ }
+ /**
+ * 判断订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则是否存在
+ * @return true 或 false
+ **/
+ public function IsTime_expireSet()
+ {
+ return array_key_exists('time_expire', $this->values);
+ }
+
+
+ /**
+ * 设置商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠
+ * @param string $value
+ **/
+ public function SetGoods_tag($value)
+ {
+ $this->values['goods_tag'] = $value;
+ }
+ /**
+ * 获取商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠的值
+ * @return 值
+ **/
+ public function GetGoods_tag()
+ {
+ return $this->values['goods_tag'];
+ }
+ /**
+ * 判断商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠是否存在
+ * @return true 或 false
+ **/
+ public function IsGoods_tagSet()
+ {
+ return array_key_exists('goods_tag', $this->values);
+ }
+
+
+ /**
+ * 设置接收微信支付异步通知回调地址
+ * @param string $value
+ **/
+ public function SetNotify_url($value)
+ {
+ $this->values['notify_url'] = $value;
+ }
+ /**
+ * 获取接收微信支付异步通知回调地址的值
+ * @return 值
+ **/
+ public function GetNotify_url()
+ {
+ return $this->values['notify_url'];
+ }
+ /**
+ * 判断接收微信支付异步通知回调地址是否存在
+ * @return true 或 false
+ **/
+ public function IsNotify_urlSet()
+ {
+ return array_key_exists('notify_url', $this->values);
+ }
+
+
+ /**
+ * 设置取值如下:JSAPI,NATIVE,APP,详细说明见参数规定
+ * @param string $value
+ **/
+ public function SetTrade_type($value)
+ {
+ $this->values['trade_type'] = $value;
+ }
+ /**
+ * 获取取值如下:JSAPI,NATIVE,APP,详细说明见参数规定的值
+ * @return 值
+ **/
+ public function GetTrade_type()
+ {
+ return $this->values['trade_type'];
+ }
+ /**
+ * 判断取值如下:JSAPI,NATIVE,APP,详细说明见参数规定是否存在
+ * @return true 或 false
+ **/
+ public function IsTrade_typeSet()
+ {
+ return array_key_exists('trade_type', $this->values);
+ }
+
+
+ /**
+ * 设置trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义。
+ * @param string $value
+ **/
+ public function SetProduct_id($value)
+ {
+ $this->values['product_id'] = $value;
+ }
+ /**
+ * 获取trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义。的值
+ * @return 值
+ **/
+ public function GetProduct_id()
+ {
+ return $this->values['product_id'];
+ }
+ /**
+ * 判断trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义。是否存在
+ * @return true 或 false
+ **/
+ public function IsProduct_idSet()
+ {
+ return array_key_exists('product_id', $this->values);
+ }
+
+
+ /**
+ * 设置trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识。下单前需要调用【网页授权获取用户信息】接口获取到用户的Openid。
+ * @param string $value
+ **/
+ public function SetOpenid($value)
+ {
+ $this->values['openid'] = $value;
+ }
+ /**
+ * 获取trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识。下单前需要调用【网页授权获取用户信息】接口获取到用户的Openid。 的值
+ * @return 值
+ **/
+ public function GetOpenid()
+ {
+ return $this->values['openid'];
+ }
+ /**
+ * 判断trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识。下单前需要调用【网页授权获取用户信息】接口获取到用户的Openid。 是否存在
+ * @return true 或 false
+ **/
+ public function IsOpenidSet()
+ {
+ return array_key_exists('openid', $this->values);
+ }
+}
+
+/**
+ *
+ * 订单查询输入对象
+ * @author widyhu
+ *
+ */
+class WxPayOrderQuery extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置微信的订单号,优先使用
+ * @param string $value
+ **/
+ public function SetTransaction_id($value)
+ {
+ $this->values['transaction_id'] = $value;
+ }
+ /**
+ * 获取微信的订单号,优先使用的值
+ * @return 值
+ **/
+ public function GetTransaction_id()
+ {
+ return $this->values['transaction_id'];
+ }
+ /**
+ * 判断微信的订单号,优先使用是否存在
+ * @return true 或 false
+ **/
+ public function IsTransaction_idSet()
+ {
+ return array_key_exists('transaction_id', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的订单号,当没提供transaction_id时需要传这个。
+ * @param string $value
+ **/
+ public function SetOut_trade_no($value)
+ {
+ $this->values['out_trade_no'] = $value;
+ }
+ /**
+ * 获取商户系统内部的订单号,当没提供transaction_id时需要传这个。的值
+ * @return 值
+ **/
+ public function GetOut_trade_no()
+ {
+ return $this->values['out_trade_no'];
+ }
+ /**
+ * 判断商户系统内部的订单号,当没提供transaction_id时需要传这个。是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_trade_noSet()
+ {
+ return array_key_exists('out_trade_no', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+}
+
+/**
+ *
+ * 关闭订单输入对象
+ * @author widyhu
+ *
+ */
+class WxPayCloseOrder extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的订单号
+ * @param string $value
+ **/
+ public function SetOut_trade_no($value)
+ {
+ $this->values['out_trade_no'] = $value;
+ }
+ /**
+ * 获取商户系统内部的订单号的值
+ * @return 值
+ **/
+ public function GetOut_trade_no()
+ {
+ return $this->values['out_trade_no'];
+ }
+ /**
+ * 判断商户系统内部的订单号是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_trade_noSet()
+ {
+ return array_key_exists('out_trade_no', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+}
+
+/**
+ *
+ * 提交退款输入对象
+ * @author widyhu
+ *
+ */
+class WxPayRefund extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的终端设备号,与下单一致
+ * @param string $value
+ **/
+ public function SetDevice_info($value)
+ {
+ $this->values['device_info'] = $value;
+ }
+ /**
+ * 获取微信支付分配的终端设备号,与下单一致的值
+ * @return 值
+ **/
+ public function GetDevice_info()
+ {
+ return $this->values['device_info'];
+ }
+ /**
+ * 判断微信支付分配的终端设备号,与下单一致是否存在
+ * @return true 或 false
+ **/
+ public function IsDevice_infoSet()
+ {
+ return array_key_exists('device_info', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+
+ /**
+ * 设置微信订单号
+ * @param string $value
+ **/
+ public function SetTransaction_id($value)
+ {
+ $this->values['transaction_id'] = $value;
+ }
+ /**
+ * 获取微信订单号的值
+ * @return 值
+ **/
+ public function GetTransaction_id()
+ {
+ return $this->values['transaction_id'];
+ }
+ /**
+ * 判断微信订单号是否存在
+ * @return true 或 false
+ **/
+ public function IsTransaction_idSet()
+ {
+ return array_key_exists('transaction_id', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no
+ * @param string $value
+ **/
+ public function SetOut_trade_no($value)
+ {
+ $this->values['out_trade_no'] = $value;
+ }
+ /**
+ * 获取商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no的值
+ * @return 值
+ **/
+ public function GetOut_trade_no()
+ {
+ return $this->values['out_trade_no'];
+ }
+ /**
+ * 判断商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_trade_noSet()
+ {
+ return array_key_exists('out_trade_no', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的退款单号,商户系统内部唯一,同一退款单号多次请求只退一笔
+ * @param string $value
+ **/
+ public function SetOut_refund_no($value)
+ {
+ $this->values['out_refund_no'] = $value;
+ }
+ /**
+ * 获取商户系统内部的退款单号,商户系统内部唯一,同一退款单号多次请求只退一笔的值
+ * @return 值
+ **/
+ public function GetOut_refund_no()
+ {
+ return $this->values['out_refund_no'];
+ }
+ /**
+ * 判断商户系统内部的退款单号,商户系统内部唯一,同一退款单号多次请求只退一笔是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_refund_noSet()
+ {
+ return array_key_exists('out_refund_no', $this->values);
+ }
+
+
+ /**
+ * 设置订单总金额,单位为分,只能为整数,详见支付金额
+ * @param string $value
+ **/
+ public function SetTotal_fee($value)
+ {
+ $this->values['total_fee'] = $value;
+ }
+ /**
+ * 获取订单总金额,单位为分,只能为整数,详见支付金额的值
+ * @return 值
+ **/
+ public function GetTotal_fee()
+ {
+ return $this->values['total_fee'];
+ }
+ /**
+ * 判断订单总金额,单位为分,只能为整数,详见支付金额是否存在
+ * @return true 或 false
+ **/
+ public function IsTotal_feeSet()
+ {
+ return array_key_exists('total_fee', $this->values);
+ }
+
+
+ /**
+ * 设置退款总金额,订单总金额,单位为分,只能为整数,详见支付金额
+ * @param string $value
+ **/
+ public function SetRefund_fee($value)
+ {
+ $this->values['refund_fee'] = $value;
+ }
+ /**
+ * 获取退款总金额,订单总金额,单位为分,只能为整数,详见支付金额的值
+ * @return 值
+ **/
+ public function GetRefund_fee()
+ {
+ return $this->values['refund_fee'];
+ }
+ /**
+ * 判断退款总金额,订单总金额,单位为分,只能为整数,详见支付金额是否存在
+ * @return true 或 false
+ **/
+ public function IsRefund_feeSet()
+ {
+ return array_key_exists('refund_fee', $this->values);
+ }
+
+
+ /**
+ * 设置货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型
+ * @param string $value
+ **/
+ public function SetRefund_fee_type($value)
+ {
+ $this->values['refund_fee_type'] = $value;
+ }
+ /**
+ * 获取货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型的值
+ * @return 值
+ **/
+ public function GetRefund_fee_type()
+ {
+ return $this->values['refund_fee_type'];
+ }
+ /**
+ * 判断货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型是否存在
+ * @return true 或 false
+ **/
+ public function IsRefund_fee_typeSet()
+ {
+ return array_key_exists('refund_fee_type', $this->values);
+ }
+
+
+ /**
+ * 设置操作员帐号, 默认为商户号
+ * @param string $value
+ **/
+ public function SetOp_user_id($value)
+ {
+ $this->values['op_user_id'] = $value;
+ }
+ /**
+ * 获取操作员帐号, 默认为商户号的值
+ * @return 值
+ **/
+ public function GetOp_user_id()
+ {
+ return $this->values['op_user_id'];
+ }
+ /**
+ * 判断操作员帐号, 默认为商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsOp_user_idSet()
+ {
+ return array_key_exists('op_user_id', $this->values);
+ }
+}
+
+/**
+ *
+ * 退款查询输入对象
+ * @author widyhu
+ *
+ */
+class WxPayRefundQuery extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的终端设备号
+ * @param string $value
+ **/
+ public function SetDevice_info($value)
+ {
+ $this->values['device_info'] = $value;
+ }
+ /**
+ * 获取微信支付分配的终端设备号的值
+ * @return 值
+ **/
+ public function GetDevice_info()
+ {
+ return $this->values['device_info'];
+ }
+ /**
+ * 判断微信支付分配的终端设备号是否存在
+ * @return true 或 false
+ **/
+ public function IsDevice_infoSet()
+ {
+ return array_key_exists('device_info', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+
+ /**
+ * 设置微信订单号
+ * @param string $value
+ **/
+ public function SetTransaction_id($value)
+ {
+ $this->values['transaction_id'] = $value;
+ }
+ /**
+ * 获取微信订单号的值
+ * @return 值
+ **/
+ public function GetTransaction_id()
+ {
+ return $this->values['transaction_id'];
+ }
+ /**
+ * 判断微信订单号是否存在
+ * @return true 或 false
+ **/
+ public function IsTransaction_idSet()
+ {
+ return array_key_exists('transaction_id', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的订单号
+ * @param string $value
+ **/
+ public function SetOut_trade_no($value)
+ {
+ $this->values['out_trade_no'] = $value;
+ }
+ /**
+ * 获取商户系统内部的订单号的值
+ * @return 值
+ **/
+ public function GetOut_trade_no()
+ {
+ return $this->values['out_trade_no'];
+ }
+ /**
+ * 判断商户系统内部的订单号是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_trade_noSet()
+ {
+ return array_key_exists('out_trade_no', $this->values);
+ }
+
+
+ /**
+ * 设置商户退款单号
+ * @param string $value
+ **/
+ public function SetOut_refund_no($value)
+ {
+ $this->values['out_refund_no'] = $value;
+ }
+ /**
+ * 获取商户退款单号的值
+ * @return 值
+ **/
+ public function GetOut_refund_no()
+ {
+ return $this->values['out_refund_no'];
+ }
+ /**
+ * 判断商户退款单号是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_refund_noSet()
+ {
+ return array_key_exists('out_refund_no', $this->values);
+ }
+
+
+ /**
+ * 设置微信退款单号refund_id、out_refund_no、out_trade_no、transaction_id四个参数必填一个,如果同时存在优先级为:refund_id>out_refund_no>transaction_id>out_trade_no
+ * @param string $value
+ **/
+ public function SetRefund_id($value)
+ {
+ $this->values['refund_id'] = $value;
+ }
+ /**
+ * 获取微信退款单号refund_id、out_refund_no、out_trade_no、transaction_id四个参数必填一个,如果同时存在优先级为:refund_id>out_refund_no>transaction_id>out_trade_no的值
+ * @return 值
+ **/
+ public function GetRefund_id()
+ {
+ return $this->values['refund_id'];
+ }
+ /**
+ * 判断微信退款单号refund_id、out_refund_no、out_trade_no、transaction_id四个参数必填一个,如果同时存在优先级为:refund_id>out_refund_no>transaction_id>out_trade_no是否存在
+ * @return true 或 false
+ **/
+ public function IsRefund_idSet()
+ {
+ return array_key_exists('refund_id', $this->values);
+ }
+}
+
+/**
+ *
+ * 下载对账单输入对象
+ * @author widyhu
+ *
+ */
+class WxPayDownloadBill extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的终端设备号,填写此字段,只下载该设备号的对账单
+ * @param string $value
+ **/
+ public function SetDevice_info($value)
+ {
+ $this->values['device_info'] = $value;
+ }
+ /**
+ * 获取微信支付分配的终端设备号,填写此字段,只下载该设备号的对账单的值
+ * @return 值
+ **/
+ public function GetDevice_info()
+ {
+ return $this->values['device_info'];
+ }
+ /**
+ * 判断微信支付分配的终端设备号,填写此字段,只下载该设备号的对账单是否存在
+ * @return true 或 false
+ **/
+ public function IsDevice_infoSet()
+ {
+ return array_key_exists('device_info', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+
+ /**
+ * 设置下载对账单的日期,格式:20140603
+ * @param string $value
+ **/
+ public function SetBill_date($value)
+ {
+ $this->values['bill_date'] = $value;
+ }
+ /**
+ * 获取下载对账单的日期,格式:20140603的值
+ * @return 值
+ **/
+ public function GetBill_date()
+ {
+ return $this->values['bill_date'];
+ }
+ /**
+ * 判断下载对账单的日期,格式:20140603是否存在
+ * @return true 或 false
+ **/
+ public function IsBill_dateSet()
+ {
+ return array_key_exists('bill_date', $this->values);
+ }
+
+
+ /**
+ * 设置ALL,返回当日所有订单信息,默认值SUCCESS,返回当日成功支付的订单REFUND,返回当日退款订单REVOKED,已撤销的订单
+ * @param string $value
+ **/
+ public function SetBill_type($value)
+ {
+ $this->values['bill_type'] = $value;
+ }
+ /**
+ * 获取ALL,返回当日所有订单信息,默认值SUCCESS,返回当日成功支付的订单REFUND,返回当日退款订单REVOKED,已撤销的订单的值
+ * @return 值
+ **/
+ public function GetBill_type()
+ {
+ return $this->values['bill_type'];
+ }
+ /**
+ * 判断ALL,返回当日所有订单信息,默认值SUCCESS,返回当日成功支付的订单REFUND,返回当日退款订单REVOKED,已撤销的订单是否存在
+ * @return true 或 false
+ **/
+ public function IsBill_typeSet()
+ {
+ return array_key_exists('bill_type', $this->values);
+ }
+}
+
+/**
+ *
+ * 测速上报输入对象
+ * @author widyhu
+ *
+ */
+class WxPayReport extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的终端设备号,商户自定义
+ * @param string $value
+ **/
+ public function SetDevice_info($value)
+ {
+ $this->values['device_info'] = $value;
+ }
+ /**
+ * 获取微信支付分配的终端设备号,商户自定义的值
+ * @return 值
+ **/
+ public function GetDevice_info()
+ {
+ return $this->values['device_info'];
+ }
+ /**
+ * 判断微信支付分配的终端设备号,商户自定义是否存在
+ * @return true 或 false
+ **/
+ public function IsDevice_infoSet()
+ {
+ return array_key_exists('device_info', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+
+
+ /**
+ * 设置上报对应的接口的完整URL,类似:https://api.mch.weixin.qq.com/pay/unifiedorder对于被扫支付,为更好的和商户共同分析一次业务行为的整体耗时情况,对于两种接入模式,请都在门店侧对一次被扫行为进行一次单独的整体上报,上报URL指定为:https://api.mch.weixin.qq.com/pay/micropay/total关于两种接入模式具体可参考本文档章节:被扫支付商户接入模式其它接口调用仍然按照调用一次,上报一次来进行。
+ * @param string $value
+ **/
+ public function SetInterface_url($value)
+ {
+ $this->values['interface_url'] = $value;
+ }
+ /**
+ * 获取上报对应的接口的完整URL,类似:https://api.mch.weixin.qq.com/pay/unifiedorder对于被扫支付,为更好的和商户共同分析一次业务行为的整体耗时情况,对于两种接入模式,请都在门店侧对一次被扫行为进行一次单独的整体上报,上报URL指定为:https://api.mch.weixin.qq.com/pay/micropay/total关于两种接入模式具体可参考本文档章节:被扫支付商户接入模式其它接口调用仍然按照调用一次,上报一次来进行。的值
+ * @return 值
+ **/
+ public function GetInterface_url()
+ {
+ return $this->values['interface_url'];
+ }
+ /**
+ * 判断上报对应的接口的完整URL,类似:https://api.mch.weixin.qq.com/pay/unifiedorder对于被扫支付,为更好的和商户共同分析一次业务行为的整体耗时情况,对于两种接入模式,请都在门店侧对一次被扫行为进行一次单独的整体上报,上报URL指定为:https://api.mch.weixin.qq.com/pay/micropay/total关于两种接入模式具体可参考本文档章节:被扫支付商户接入模式其它接口调用仍然按照调用一次,上报一次来进行。是否存在
+ * @return true 或 false
+ **/
+ public function IsInterface_urlSet()
+ {
+ return array_key_exists('interface_url', $this->values);
+ }
+
+
+ /**
+ * 设置接口耗时情况,单位为毫秒
+ * @param string $value
+ **/
+ public function SetExecute_time_($value)
+ {
+ $this->values['execute_time_'] = $value;
+ }
+ /**
+ * 获取接口耗时情况,单位为毫秒的值
+ * @return 值
+ **/
+ public function GetExecute_time_()
+ {
+ return $this->values['execute_time_'];
+ }
+ /**
+ * 判断接口耗时情况,单位为毫秒是否存在
+ * @return true 或 false
+ **/
+ public function IsExecute_time_Set()
+ {
+ return array_key_exists('execute_time_', $this->values);
+ }
+
+
+ /**
+ * 设置SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看trade_state来判断
+ * @param string $value
+ **/
+ public function SetReturn_code($value)
+ {
+ $this->values['return_code'] = $value;
+ }
+ /**
+ * 获取SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看trade_state来判断的值
+ * @return 值
+ **/
+ public function GetReturn_code()
+ {
+ return $this->values['return_code'];
+ }
+ /**
+ * 判断SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看trade_state来判断是否存在
+ * @return true 或 false
+ **/
+ public function IsReturn_codeSet()
+ {
+ return array_key_exists('return_code', $this->values);
+ }
+
+
+ /**
+ * 设置返回信息,如非空,为错误原因签名失败参数格式校验错误
+ * @param string $value
+ **/
+ public function SetReturn_msg($value)
+ {
+ $this->values['return_msg'] = $value;
+ }
+ /**
+ * 获取返回信息,如非空,为错误原因签名失败参数格式校验错误的值
+ * @return 值
+ **/
+ public function GetReturn_msg()
+ {
+ return $this->values['return_msg'];
+ }
+ /**
+ * 判断返回信息,如非空,为错误原因签名失败参数格式校验错误是否存在
+ * @return true 或 false
+ **/
+ public function IsReturn_msgSet()
+ {
+ return array_key_exists('return_msg', $this->values);
+ }
+
+
+ /**
+ * 设置SUCCESS/FAIL
+ * @param string $value
+ **/
+ public function SetResult_code($value)
+ {
+ $this->values['result_code'] = $value;
+ }
+ /**
+ * 获取SUCCESS/FAIL的值
+ * @return 值
+ **/
+ public function GetResult_code()
+ {
+ return $this->values['result_code'];
+ }
+ /**
+ * 判断SUCCESS/FAIL是否存在
+ * @return true 或 false
+ **/
+ public function IsResult_codeSet()
+ {
+ return array_key_exists('result_code', $this->values);
+ }
+
+
+ /**
+ * 设置ORDERNOTEXIST—订单不存在SYSTEMERROR—系统错误
+ * @param string $value
+ **/
+ public function SetErr_code($value)
+ {
+ $this->values['err_code'] = $value;
+ }
+ /**
+ * 获取ORDERNOTEXIST—订单不存在SYSTEMERROR—系统错误的值
+ * @return 值
+ **/
+ public function GetErr_code()
+ {
+ return $this->values['err_code'];
+ }
+ /**
+ * 判断ORDERNOTEXIST—订单不存在SYSTEMERROR—系统错误是否存在
+ * @return true 或 false
+ **/
+ public function IsErr_codeSet()
+ {
+ return array_key_exists('err_code', $this->values);
+ }
+
+
+ /**
+ * 设置结果信息描述
+ * @param string $value
+ **/
+ public function SetErr_code_des($value)
+ {
+ $this->values['err_code_des'] = $value;
+ }
+ /**
+ * 获取结果信息描述的值
+ * @return 值
+ **/
+ public function GetErr_code_des()
+ {
+ return $this->values['err_code_des'];
+ }
+ /**
+ * 判断结果信息描述是否存在
+ * @return true 或 false
+ **/
+ public function IsErr_code_desSet()
+ {
+ return array_key_exists('err_code_des', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的订单号,商户可以在上报时提供相关商户订单号方便微信支付更好的提高服务质量。
+ * @param string $value
+ **/
+ public function SetOut_trade_no($value)
+ {
+ $this->values['out_trade_no'] = $value;
+ }
+ /**
+ * 获取商户系统内部的订单号,商户可以在上报时提供相关商户订单号方便微信支付更好的提高服务质量。 的值
+ * @return 值
+ **/
+ public function GetOut_trade_no()
+ {
+ return $this->values['out_trade_no'];
+ }
+ /**
+ * 判断商户系统内部的订单号,商户可以在上报时提供相关商户订单号方便微信支付更好的提高服务质量。 是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_trade_noSet()
+ {
+ return array_key_exists('out_trade_no', $this->values);
+ }
+
+
+ /**
+ * 设置发起接口调用时的机器IP
+ * @param string $value
+ **/
+ public function SetUser_ip($value)
+ {
+ $this->values['user_ip'] = $value;
+ }
+ /**
+ * 获取发起接口调用时的机器IP 的值
+ * @return 值
+ **/
+ public function GetUser_ip()
+ {
+ return $this->values['user_ip'];
+ }
+ /**
+ * 判断发起接口调用时的机器IP 是否存在
+ * @return true 或 false
+ **/
+ public function IsUser_ipSet()
+ {
+ return array_key_exists('user_ip', $this->values);
+ }
+
+
+ /**
+ * 设置系统时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则
+ * @param string $value
+ **/
+ public function SetTime($value)
+ {
+ $this->values['time'] = $value;
+ }
+ /**
+ * 获取系统时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则的值
+ * @return 值
+ **/
+ public function GetTime()
+ {
+ return $this->values['time'];
+ }
+ /**
+ * 判断系统时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则是否存在
+ * @return true 或 false
+ **/
+ public function IsTimeSet()
+ {
+ return array_key_exists('time', $this->values);
+ }
+}
+
+/**
+ *
+ * 短链转换输入对象
+ * @author widyhu
+ *
+ */
+class WxPayShortUrl extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置需要转换的URL,签名用原串,传输需URL encode
+ * @param string $value
+ **/
+ public function SetLong_url($value)
+ {
+ $this->values['long_url'] = $value;
+ }
+ /**
+ * 获取需要转换的URL,签名用原串,传输需URL encode的值
+ * @return 值
+ **/
+ public function GetLong_url()
+ {
+ return $this->values['long_url'];
+ }
+ /**
+ * 判断需要转换的URL,签名用原串,传输需URL encode是否存在
+ * @return true 或 false
+ **/
+ public function IsLong_urlSet()
+ {
+ return array_key_exists('long_url', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+}
+
+/**
+ *
+ * 提交被扫输入对象
+ * @author widyhu
+ *
+ */
+class WxPayMicroPay extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置终端设备号(商户自定义,如门店编号)
+ * @param string $value
+ **/
+ public function SetDevice_info($value)
+ {
+ $this->values['device_info'] = $value;
+ }
+ /**
+ * 获取终端设备号(商户自定义,如门店编号)的值
+ * @return 值
+ **/
+ public function GetDevice_info()
+ {
+ return $this->values['device_info'];
+ }
+ /**
+ * 判断终端设备号(商户自定义,如门店编号)是否存在
+ * @return true 或 false
+ **/
+ public function IsDevice_infoSet()
+ {
+ return array_key_exists('device_info', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+
+ /**
+ * 设置商品或支付单简要描述
+ * @param string $value
+ **/
+ public function SetBody($value)
+ {
+ $this->values['body'] = $value;
+ }
+ /**
+ * 获取商品或支付单简要描述的值
+ * @return 值
+ **/
+ public function GetBody()
+ {
+ return $this->values['body'];
+ }
+ /**
+ * 判断商品或支付单简要描述是否存在
+ * @return true 或 false
+ **/
+ public function IsBodySet()
+ {
+ return array_key_exists('body', $this->values);
+ }
+
+
+ /**
+ * 设置商品名称明细列表
+ * @param string $value
+ **/
+ public function SetDetail($value)
+ {
+ $this->values['detail'] = $value;
+ }
+ /**
+ * 获取商品名称明细列表的值
+ * @return 值
+ **/
+ public function GetDetail()
+ {
+ return $this->values['detail'];
+ }
+ /**
+ * 判断商品名称明细列表是否存在
+ * @return true 或 false
+ **/
+ public function IsDetailSet()
+ {
+ return array_key_exists('detail', $this->values);
+ }
+
+
+ /**
+ * 设置附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
+ * @param string $value
+ **/
+ public function SetAttach($value)
+ {
+ $this->values['attach'] = $value;
+ }
+ /**
+ * 获取附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据的值
+ * @return 值
+ **/
+ public function GetAttach()
+ {
+ return $this->values['attach'];
+ }
+ /**
+ * 判断附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据是否存在
+ * @return true 或 false
+ **/
+ public function IsAttachSet()
+ {
+ return array_key_exists('attach', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号
+ * @param string $value
+ **/
+ public function SetOut_trade_no($value)
+ {
+ $this->values['out_trade_no'] = $value;
+ }
+ /**
+ * 获取商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号的值
+ * @return 值
+ **/
+ public function GetOut_trade_no()
+ {
+ return $this->values['out_trade_no'];
+ }
+ /**
+ * 判断商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_trade_noSet()
+ {
+ return array_key_exists('out_trade_no', $this->values);
+ }
+
+
+ /**
+ * 设置订单总金额,单位为分,只能为整数,详见支付金额
+ * @param string $value
+ **/
+ public function SetTotal_fee($value)
+ {
+ $this->values['total_fee'] = $value;
+ }
+ /**
+ * 获取订单总金额,单位为分,只能为整数,详见支付金额的值
+ * @return 值
+ **/
+ public function GetTotal_fee()
+ {
+ return $this->values['total_fee'];
+ }
+ /**
+ * 判断订单总金额,单位为分,只能为整数,详见支付金额是否存在
+ * @return true 或 false
+ **/
+ public function IsTotal_feeSet()
+ {
+ return array_key_exists('total_fee', $this->values);
+ }
+
+
+ /**
+ * 设置符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型
+ * @param string $value
+ **/
+ public function SetFee_type($value)
+ {
+ $this->values['fee_type'] = $value;
+ }
+ /**
+ * 获取符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型的值
+ * @return 值
+ **/
+ public function GetFee_type()
+ {
+ return $this->values['fee_type'];
+ }
+ /**
+ * 判断符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型是否存在
+ * @return true 或 false
+ **/
+ public function IsFee_typeSet()
+ {
+ return array_key_exists('fee_type', $this->values);
+ }
+
+
+ /**
+ * 设置调用微信支付API的机器IP
+ * @param string $value
+ **/
+ public function SetSpbill_create_ip($value)
+ {
+ $this->values['spbill_create_ip'] = $value;
+ }
+ /**
+ * 获取调用微信支付API的机器IP 的值
+ * @return 值
+ **/
+ public function GetSpbill_create_ip()
+ {
+ return $this->values['spbill_create_ip'];
+ }
+ /**
+ * 判断调用微信支付API的机器IP 是否存在
+ * @return true 或 false
+ **/
+ public function IsSpbill_create_ipSet()
+ {
+ return array_key_exists('spbill_create_ip', $this->values);
+ }
+
+
+ /**
+ * 设置订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。详见时间规则
+ * @param string $value
+ **/
+ public function SetTime_start($value)
+ {
+ $this->values['time_start'] = $value;
+ }
+ /**
+ * 获取订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。详见时间规则的值
+ * @return 值
+ **/
+ public function GetTime_start()
+ {
+ return $this->values['time_start'];
+ }
+ /**
+ * 判断订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。详见时间规则是否存在
+ * @return true 或 false
+ **/
+ public function IsTime_startSet()
+ {
+ return array_key_exists('time_start', $this->values);
+ }
+
+
+ /**
+ * 设置订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。详见时间规则
+ * @param string $value
+ **/
+ public function SetTime_expire($value)
+ {
+ $this->values['time_expire'] = $value;
+ }
+ /**
+ * 获取订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。详见时间规则的值
+ * @return 值
+ **/
+ public function GetTime_expire()
+ {
+ return $this->values['time_expire'];
+ }
+ /**
+ * 判断订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。详见时间规则是否存在
+ * @return true 或 false
+ **/
+ public function IsTime_expireSet()
+ {
+ return array_key_exists('time_expire', $this->values);
+ }
+
+
+ /**
+ * 设置商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠
+ * @param string $value
+ **/
+ public function SetGoods_tag($value)
+ {
+ $this->values['goods_tag'] = $value;
+ }
+ /**
+ * 获取商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠的值
+ * @return 值
+ **/
+ public function GetGoods_tag()
+ {
+ return $this->values['goods_tag'];
+ }
+ /**
+ * 判断商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠是否存在
+ * @return true 或 false
+ **/
+ public function IsGoods_tagSet()
+ {
+ return array_key_exists('goods_tag', $this->values);
+ }
+
+
+ /**
+ * 设置扫码支付授权码,设备读取用户微信中的条码或者二维码信息
+ * @param string $value
+ **/
+ public function SetAuth_code($value)
+ {
+ $this->values['auth_code'] = $value;
+ }
+ /**
+ * 获取扫码支付授权码,设备读取用户微信中的条码或者二维码信息的值
+ * @return 值
+ **/
+ public function GetAuth_code()
+ {
+ return $this->values['auth_code'];
+ }
+ /**
+ * 判断扫码支付授权码,设备读取用户微信中的条码或者二维码信息是否存在
+ * @return true 或 false
+ **/
+ public function IsAuth_codeSet()
+ {
+ return array_key_exists('auth_code', $this->values);
+ }
+}
+
+/**
+ *
+ * 撤销输入对象
+ * @author widyhu
+ *
+ */
+class WxPayReverse extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置微信的订单号,优先使用
+ * @param string $value
+ **/
+ public function SetTransaction_id($value)
+ {
+ $this->values['transaction_id'] = $value;
+ }
+ /**
+ * 获取微信的订单号,优先使用的值
+ * @return 值
+ **/
+ public function GetTransaction_id()
+ {
+ return $this->values['transaction_id'];
+ }
+ /**
+ * 判断微信的订单号,优先使用是否存在
+ * @return true 或 false
+ **/
+ public function IsTransaction_idSet()
+ {
+ return array_key_exists('transaction_id', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no
+ * @param string $value
+ **/
+ public function SetOut_trade_no($value)
+ {
+ $this->values['out_trade_no'] = $value;
+ }
+ /**
+ * 获取商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no的值
+ * @return 值
+ **/
+ public function GetOut_trade_no()
+ {
+ return $this->values['out_trade_no'];
+ }
+ /**
+ * 判断商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_trade_noSet()
+ {
+ return array_key_exists('out_trade_no', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+}
+
+/**
+ *
+ * 提交JSAPI输入对象
+ * @author widyhu
+ *
+ */
+class WxPayJsApiPay extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appId'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appId'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appId', $this->values);
+ }
+
+
+ /**
+ * 设置支付时间戳
+ * @param string $value
+ **/
+ public function SetTimeStamp($value)
+ {
+ $this->values['timeStamp'] = $value;
+ }
+ /**
+ * 获取支付时间戳的值
+ * @return 值
+ **/
+ public function GetTimeStamp()
+ {
+ return $this->values['timeStamp'];
+ }
+ /**
+ * 判断支付时间戳是否存在
+ * @return true 或 false
+ **/
+ public function IsTimeStampSet()
+ {
+ return array_key_exists('timeStamp', $this->values);
+ }
+
+ /**
+ * 随机字符串
+ * @param string $value
+ **/
+ public function SetNonceStr($value)
+ {
+ $this->values['nonceStr'] = $value;
+ }
+ /**
+ * 获取notify随机字符串值
+ * @return 值
+ **/
+ public function GetReturn_code()
+ {
+ return $this->values['nonceStr'];
+ }
+ /**
+ * 判断随机字符串是否存在
+ * @return true 或 false
+ **/
+ public function IsReturn_codeSet()
+ {
+ return array_key_exists('nonceStr', $this->values);
+ }
+
+
+ /**
+ * 设置订单详情扩展字符串
+ * @param string $value
+ **/
+ public function SetPackage($value)
+ {
+ $this->values['package'] = $value;
+ }
+ /**
+ * 获取订单详情扩展字符串的值
+ * @return 值
+ **/
+ public function GetPackage()
+ {
+ return $this->values['package'];
+ }
+ /**
+ * 判断订单详情扩展字符串是否存在
+ * @return true 或 false
+ **/
+ public function IsPackageSet()
+ {
+ return array_key_exists('package', $this->values);
+ }
+
+ /**
+ * 设置签名方式
+ * @param string $value
+ **/
+ public function SetSignType($value)
+ {
+ $this->values['signType'] = $value;
+ }
+ /**
+ * 获取签名方式
+ * @return 值
+ **/
+ public function GetSignType()
+ {
+ return $this->values['signType'];
+ }
+ /**
+ * 判断签名方式是否存在
+ * @return true 或 false
+ **/
+ public function IsSignTypeSet()
+ {
+ return array_key_exists('signType', $this->values);
+ }
+
+ /**
+ * 设置签名方式
+ * @param string $value
+ **/
+ public function SetPaySign($value)
+ {
+ $this->values['paySign'] = $value;
+ }
+ /**
+ * 获取签名方式
+ * @return 值
+ **/
+ public function GetPaySign()
+ {
+ return $this->values['paySign'];
+ }
+ /**
+ * 判断签名方式是否存在
+ * @return true 或 false
+ **/
+ public function IsPaySignSet()
+ {
+ return array_key_exists('paySign', $this->values);
+ }
+}
+
+/**
+ *
+ * 扫码支付模式一生成二维码参数
+ * @author widyhu
+ *
+ */
+class WxPayBizPayUrl extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+ /**
+ * 设置支付时间戳
+ * @param string $value
+ **/
+ public function SetTime_stamp($value)
+ {
+ $this->values['time_stamp'] = $value;
+ }
+ /**
+ * 获取支付时间戳的值
+ * @return 值
+ **/
+ public function GetTime_stamp()
+ {
+ return $this->values['time_stamp'];
+ }
+ /**
+ * 判断支付时间戳是否存在
+ * @return true 或 false
+ **/
+ public function IsTime_stampSet()
+ {
+ return array_key_exists('time_stamp', $this->values);
+ }
+
+ /**
+ * 设置随机字符串
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+
+ /**
+ * 设置商品ID
+ * @param string $value
+ **/
+ public function SetProduct_id($value)
+ {
+ $this->values['product_id'] = $value;
+ }
+ /**
+ * 获取商品ID的值
+ * @return 值
+ **/
+ public function GetProduct_id()
+ {
+ return $this->values['product_id'];
+ }
+ /**
+ * 判断商品ID是否存在
+ * @return true 或 false
+ **/
+ public function IsProduct_idSet()
+ {
+ return array_key_exists('product_id', $this->values);
+ }
+}
+
+
+/**
+ *
+ * 提交企业付款输入对象
+ * @author widyhu
+ *
+ */
+class WxPayTransfer extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['mch_appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['mch_appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('mch_appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mchid'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mchid'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mchid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的终端设备号,与下单一致
+ * @param string $value
+ **/
+ public function SetDevice_info($value)
+ {
+ $this->values['device_info'] = $value;
+ }
+ /**
+ * 获取微信支付分配的终端设备号,与下单一致的值
+ * @return 值
+ **/
+ public function GetDevice_info()
+ {
+ return $this->values['device_info'];
+ }
+ /**
+ * 判断微信支付分配的终端设备号,与下单一致是否存在
+ * @return true 或 false
+ **/
+ public function IsDevice_infoSet()
+ {
+ return array_key_exists('device_info', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+
+
+ /**
+ * 设置商户订单号,需保持唯一性
+ * @param string $value
+ **/
+ public function SetPartner_trade_no($value)
+ {
+ $this->values['partner_trade_no'] = $value;
+ }
+ /**
+ * 获取商户订单号,需保持唯一性
+ * @return 值
+ **/
+ public function GetPartner_trade_no()
+ {
+ return $this->values['partner_trade_no'];
+ }
+ /**
+ * 判断商户订单号,需保持唯一性
+ * @return true 或 false
+ **/
+ public function IsPartner_trade_noSet()
+ {
+ return array_key_exists('partner_trade_no', $this->values);
+ }
+
+
+ /**
+ * 设置商户appid下,某用户的openid
+ * @param string $value
+ **/
+ public function SetOpenid($value)
+ {
+ $this->values['openid'] = $value;
+ }
+ /**
+ * 获取商户appid下,某用户的openid
+ * @return 值
+ **/
+ public function GetOpenid()
+ {
+ return $this->values['openid'];
+ }
+ /**
+ * 判断商户appid下,某用户的openid
+ * @return true 或 false
+ **/
+ public function IsOpenidSet()
+ {
+ return array_key_exists('openid', $this->values);
+ }
+
+
+ /**
+ * 设置是否校验真实姓名,NO_CHECK:不校验真实姓名 FORCE_CHECK:强校验真实姓名
+ * @param string $value
+ **/
+ public function SetCheck_name($value)
+ {
+ $this->values['check_name'] = $value;
+ }
+ /**
+ * 获取是否校验真实姓名,NO_CHECK:不校验真实姓名 FORCE_CHECK:强校验真实姓名
+ * @return 值
+ **/
+ public function GetCheck_name()
+ {
+ return $this->values['check_name'];
+ }
+ /**
+ * 判断是否校验真实姓名
+ * @return true 或 false
+ **/
+ public function IsCheck_nameSet()
+ {
+ return array_key_exists('check_name', $this->values);
+ }
+
+
+ /**
+ * 设置收款用户真实姓名。如果check_name设置为FORCE_CHECK,则必填用户真实姓名
+ * @param string $value
+ **/
+ public function SetRe_user_name($value)
+ {
+ $this->values['re_user_name'] = $value;
+ }
+ /**
+ * 获取收款用户真实姓名
+ * @return 值
+ **/
+ public function GetRe_user_name()
+ {
+ return $this->values['re_user_name'];
+ }
+ /**
+ * 判断收款用户真实姓名
+ * @return true 或 false
+ **/
+ public function IsRe_user_nameSet()
+ {
+ return array_key_exists('re_user_name', $this->values);
+ }
+
+
+ /**
+ * 设置企业付款金额,单位为分
+ * @param string $value
+ **/
+ public function SetAmount($value)
+ {
+ $this->values['amount'] = $value;
+ }
+ /**
+ * 获取企业付款金额,单位为分
+ * @return 值
+ **/
+ public function GetAmount()
+ {
+ return $this->values['amount'];
+ }
+ /**
+ * 判断企业付款金额,单位为分
+ * @return true 或 false
+ **/
+ public function IsAmountSet()
+ {
+ return array_key_exists('amount', $this->values);
+ }
+
+
+ /**
+ * 设置企业付款操作说明信息。必填。
+ * @param string $value
+ **/
+ public function SetDesc($value)
+ {
+ $this->values['desc'] = $value;
+ }
+ /**
+ * 获取企业付款操作说明信息。必填。
+ * @return 值
+ **/
+ public function GetDesc()
+ {
+ return $this->values['desc'];
+ }
+ /**
+ * 判断企业付款操作说明信息。必填。
+ * @return true 或 false
+ **/
+ public function IsDescSet()
+ {
+ return array_key_exists('desc', $this->values);
+ }
+
+
+ /**
+ * 设置调用微信支付API的机器IP
+ * @param string $value
+ **/
+ public function SetSpbill_create_ip($value)
+ {
+ $this->values['spbill_create_ip'] = $value;
+ }
+ /**
+ * 获取调用微信支付API的机器IP 的值
+ * @return 值
+ **/
+ public function GetSpbill_create_ip()
+ {
+ return $this->values['spbill_create_ip'];
+ }
+ /**
+ * 判断调用微信支付API的机器IP 是否存在
+ * @return true 或 false
+ **/
+ public function IsSpbill_create_ipSet()
+ {
+ return array_key_exists('spbill_create_ip', $this->values);
+ }
+}
\ No newline at end of file
diff --git a/plugins/wxpay/inc/WxPay.Exception.php b/plugins/wxpay/inc/WxPay.Exception.php
new file mode 100644
index 0000000..98c91e5
--- /dev/null
+++ b/plugins/wxpay/inc/WxPay.Exception.php
@@ -0,0 +1,13 @@
+getMessage();
+ }
+}
diff --git a/plugins/wxpay/inc/WxPay.JsApiPay.php b/plugins/wxpay/inc/WxPay.JsApiPay.php
new file mode 100644
index 0000000..d7dd862
--- /dev/null
+++ b/plugins/wxpay/inc/WxPay.JsApiPay.php
@@ -0,0 +1,206 @@
+__CreateOauthUrlForCode($baseUrl);
+ Header("Location: $url");
+ exit();
+ } else {
+ //获取code码,以获取openid
+ $code = $_GET['code'];
+ $openid = $this->GetOpenidFromMp($code);
+ return $openid;
+ }
+ }
+
+ /**
+ *
+ * 获取jsapi支付的参数
+ * @param array $UnifiedOrderResult 统一支付接口返回的数据
+ * @throws WxPayException
+ *
+ * @return json数据,可直接填入js函数作为参数
+ */
+ public function GetJsApiParameters($UnifiedOrderResult)
+ {
+ if(!array_key_exists("appid", $UnifiedOrderResult)
+ || !array_key_exists("prepay_id", $UnifiedOrderResult)
+ || $UnifiedOrderResult['prepay_id'] == "")
+ {
+ throw new WxPayException("参数错误");
+ }
+ $jsapi = new WxPayJsApiPay();
+ $jsapi->SetAppid($UnifiedOrderResult["appid"]);
+ $timeStamp = time();
+ $jsapi->SetTimeStamp("$timeStamp");
+ $jsapi->SetNonceStr(WxPayApi::getNonceStr());
+ $jsapi->SetPackage("prepay_id=" . $UnifiedOrderResult['prepay_id']);
+ $jsapi->SetSignType("MD5");
+ $jsapi->SetPaySign($jsapi->MakeSign());
+ $parameters = json_encode($jsapi->GetValues());
+ return $parameters;
+ }
+
+ /**
+ *
+ * 通过code从工作平台获取openid机器access_token
+ * @param string $code 微信跳转回来带上的code
+ *
+ * @return openid
+ */
+ public function GetOpenidFromMp($code)
+ {
+ $url = $this->__CreateOauthUrlForOpenid($code);
+ //初始化curl
+ $ch = curl_init();
+ //设置超时
+ curl_setopt($ch, CURLOPT_TIMEOUT, $this->curl_timeout);
+ curl_setopt($ch, CURLOPT_URL, $url);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,FALSE);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,FALSE);
+ curl_setopt($ch, CURLOPT_HEADER, FALSE);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
+ if(WxPayConfig::CURL_PROXY_HOST != "0.0.0.0"
+ && WxPayConfig::CURL_PROXY_PORT != 0){
+ curl_setopt($ch,CURLOPT_PROXY, WxPayConfig::CURL_PROXY_HOST);
+ curl_setopt($ch,CURLOPT_PROXYPORT, WxPayConfig::CURL_PROXY_PORT);
+ }
+ //运行curl,结果以jason形式返回
+ $res = curl_exec($ch);
+ curl_close($ch);
+ //取出openid
+ $data = json_decode($res,true);
+ $this->data = $data;
+ $openid = $data['openid'];
+ return $openid;
+ }
+
+ /**
+ *
+ * 拼接签名字符串
+ * @param array $urlObj
+ *
+ * @return 返回已经拼接好的字符串
+ */
+ private function ToUrlParams($urlObj)
+ {
+ $buff = "";
+ foreach ($urlObj as $k => $v)
+ {
+ if($k != "sign"){
+ $buff .= $k . "=" . $v . "&";
+ }
+ }
+
+ $buff = trim($buff, "&");
+ return $buff;
+ }
+
+ /**
+ *
+ * 获取地址js参数
+ *
+ * @return 获取共享收货地址js函数需要的参数,json格式可以直接做参数使用
+ */
+ public function GetEditAddressParameters()
+ {
+ $getData = $this->data;
+ $data = array();
+ $data["appid"] = WxPayConfig::APPID;
+ $data["url"] = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
+ $time = time();
+ $data["timestamp"] = "$time";
+ $data["noncestr"] = "1234568";
+ $data["accesstoken"] = $getData["access_token"];
+ ksort($data);
+ $params = $this->ToUrlParams($data);
+ $addrSign = sha1($params);
+
+ $afterData = array(
+ "addrSign" => $addrSign,
+ "signType" => "sha1",
+ "scope" => "jsapi_address",
+ "appId" => WxPayConfig::APPID,
+ "timeStamp" => $data["timestamp"],
+ "nonceStr" => $data["noncestr"]
+ );
+ $parameters = json_encode($afterData);
+ return $parameters;
+ }
+
+ /**
+ *
+ * 构造获取code的url连接
+ * @param string $redirectUrl 微信服务器回跳的url,需要url编码
+ *
+ * @return 返回构造好的url
+ */
+ private function __CreateOauthUrlForCode($redirectUrl)
+ {
+ $urlObj["appid"] = WxPayConfig::APPID;
+ $urlObj["redirect_uri"] = "$redirectUrl";
+ $urlObj["response_type"] = "code";
+ $urlObj["scope"] = "snsapi_base";
+ $urlObj["state"] = "STATE"."#wechat_redirect";
+ $bizString = $this->ToUrlParams($urlObj);
+ return "https://open.weixin.qq.com/connect/oauth2/authorize?".$bizString;
+ }
+
+ /**
+ *
+ * 构造获取open和access_toke的url地址
+ * @param string $code,微信跳转带回的code
+ *
+ * @return 请求的url
+ */
+ private function __CreateOauthUrlForOpenid($code)
+ {
+ $urlObj["appid"] = WxPayConfig::APPID;
+ $urlObj["secret"] = WxPayConfig::APPSECRET;
+ $urlObj["code"] = $code;
+ $urlObj["grant_type"] = "authorization_code";
+ $bizString = $this->ToUrlParams($urlObj);
+ return "https://api.weixin.qq.com/sns/oauth2/access_token?".$bizString;
+ }
+}
\ No newline at end of file
diff --git a/plugins/wxpay/inc/WxPay.NativePay.php b/plugins/wxpay/inc/WxPay.NativePay.php
new file mode 100644
index 0000000..f4e0cf8
--- /dev/null
+++ b/plugins/wxpay/inc/WxPay.NativePay.php
@@ -0,0 +1,52 @@
+SetProduct_id($productId);
+ $values = WxpayApi::bizpayurl($biz);
+ $url = "weixin://wxpay/bizpayurl?" . $this->ToUrlParams($values);
+ return $url;
+ }
+
+ /**
+ *
+ * 参数数组转换为url参数
+ * @param array $urlObj
+ */
+ private function ToUrlParams($urlObj)
+ {
+ $buff = "";
+ foreach ($urlObj as $k => $v)
+ {
+ $buff .= $k . "=" . $v . "&";
+ }
+
+ $buff = trim($buff, "&");
+ return $buff;
+ }
+
+ /**
+ *
+ * 生成直接支付url,支付url有效期为2小时,模式二
+ * @param UnifiedOrderInput $input
+ */
+ public function GetPayUrl($input)
+ {
+ $result = WxPayApi::unifiedOrder($input);
+ return $result;
+ }
+}
\ No newline at end of file
diff --git a/plugins/wxpay/inc/WxPay.Notify.php b/plugins/wxpay/inc/WxPay.Notify.php
new file mode 100644
index 0000000..31e0440
--- /dev/null
+++ b/plugins/wxpay/inc/WxPay.Notify.php
@@ -0,0 +1,84 @@
+SetReturn_code("FAIL");
+ $this->SetReturn_msg($msg);
+ $this->ReplyNotify(false);
+ return;
+ } else {
+ //该分支在成功回调到NotifyCallBack方法,处理完成之后流程
+ $this->SetReturn_code("SUCCESS");
+ $this->SetReturn_msg("OK");
+ }
+ $this->ReplyNotify($needSign);
+ }
+
+ /**
+ *
+ * 回调方法入口,子类可重写该方法
+ * 注意:
+ * 1、微信回调超时时间为2s,建议用户使用异步处理流程,确认成功之后立刻回复微信服务器
+ * 2、微信服务器在调用失败或者接到回包为非确认包的时候,会发起重试,需确保你的回调是可以重入
+ * @param array $data 回调解释出的参数
+ * @param string $msg 如果回调处理失败,可以将错误信息输出到该方法
+ * @return true回调出来完成不需要继续回调,false回调处理未完成需要继续回调
+ */
+ public function NotifyProcess($data, &$msg)
+ {
+ //TODO 用户基础该类之后需要重写该方法,成功的时候返回true,失败返回false
+ }
+
+ /**
+ *
+ * notify回调方法,该方法中需要赋值需要输出的参数,不可重写
+ * @param array $data
+ * @return true回调出来完成不需要继续回调,false回调处理未完成需要继续回调
+ */
+ final public function NotifyCallBack($data)
+ {
+ $msg = "OK";
+ $result = $this->NotifyProcess($data, $msg);
+
+ if($result == true){
+ $this->SetReturn_code("SUCCESS");
+ $this->SetReturn_msg("OK");
+ } else {
+ $this->SetReturn_code("FAIL");
+ $this->SetReturn_msg($msg);
+ }
+ return $result;
+ }
+
+ /**
+ *
+ * 回复通知
+ * @param bool $needSign 是否需要签名输出
+ */
+ final private function ReplyNotify($needSign = true)
+ {
+ //如果需要签名
+ if($needSign == true &&
+ $this->GetReturn_code($return_code) == "SUCCESS")
+ {
+ $this->SetSign();
+ }
+ WxpayApi::replyNotify($this->ToXml());
+ }
+}
\ No newline at end of file
diff --git a/plugins/wxpay/jspay.php b/plugins/wxpay/jspay.php
new file mode 100644
index 0000000..5367f6f
--- /dev/null
+++ b/plugins/wxpay/jspay.php
@@ -0,0 +1,131 @@
+GetOpenid();
+if(!$openId)sysmsg('OpenId获取失败');
+$DB->query("update `pre_order` set `buyer` ='$openId' where `trade_no`='".TRADE_NO."'");
+
+//②、统一下单
+$input = new WxPayUnifiedOrder();
+$input->SetBody($ordername);
+$input->SetOut_trade_no(TRADE_NO);
+$input->SetTotal_fee(strval($order['money']*100));
+$input->SetTime_start(date("YmdHis"));
+$input->SetTime_expire(date("YmdHis", time() + 600));
+$input->SetNotify_url($conf['localurl'].'pay/wxpay/notify/'.TRADE_NO.'/');
+$input->SetTrade_type("JSAPI");
+$input->SetProduct_id("01001");
+$input->SetOpenid($openId);
+$order = WxPayApi::unifiedOrder($input);
+
+if($order["result_code"]=='SUCCESS'){
+ $jsApiParameters = $tools->GetJsApiParameters($order);
+}else{
+ sysmsg('微信支付下单失败!['.$order["return_code"].'] '.$order["return_msg"].'['.$order["err_code"].'] '.$order["err_code_des"]);
+}
+$_SESSION[$trade_no.'_wxpay'] = $jsApiParameters;
+}
+
+if($_GET['d']==1){
+ $redirect_url='data.backurl';
+}else{
+ $redirect_url='\'/pay/wxpay/ok/'.TRADE_NO.'/\'';
+}
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/wxpay/notify.php b/plugins/wxpay/notify.php
new file mode 100644
index 0000000..a6e8790
--- /dev/null
+++ b/plugins/wxpay/notify.php
@@ -0,0 +1,71 @@
+SetTransaction_id($transaction_id);
+ $result = WxPayApi::orderQuery($input);
+ //Log::DEBUG("query:" . json_encode($result));
+ if(array_key_exists("return_code", $result)
+ && array_key_exists("result_code", $result)
+ && $result["return_code"] == "SUCCESS"
+ && $result["result_code"] == "SUCCESS")
+ {
+ return true;
+ }
+ return false;
+ }
+
+ //重写回调处理函数
+ public function NotifyProcess($data, &$msg)
+ {
+ //file_put_contents('log.txt',"call back:" . json_encode($data));
+ $notfiyOutput = array();
+
+ if(!array_key_exists("transaction_id", $data)){
+ $msg = "输入参数不正确";
+ return false;
+ }
+ //查询订单,判断订单真实性
+ if(!$this->Queryorder($data["transaction_id"])){
+ $msg = "订单查询失败";
+ return false;
+ }
+ global $DB,$date,$order;
+ if($data['return_code']=='SUCCESS'){
+ if($data['result_code']=='SUCCESS'){
+ if($data['out_trade_no'] == TRADE_NO && $data['total_fee']==strval($order['money']*100) && $order['status']==0){
+ if($DB->exec("update `pre_order` set `status` ='1' where `trade_no`='".TRADE_NO."'")){
+ $DB->exec("update `pre_order` set `api_trade_no` ='{$data['transaction_id']}',`endtime` ='$date',`buyer` ='{$data['openid']}',`date`=NOW() where `trade_no`='".TRADE_NO."'");
+ processOrder($order);
+ }
+ return true;
+ }else{
+ $msg='该订单已经处理';
+ return true;
+ }
+ }else{
+ $msg='['.$data['err_code'].']'.$data['err_code_des'];
+ return false;
+ }
+ }else{
+ $msg='['.$data['return_code'].']'.$data['return_msg'];
+ return false;
+ }
+ return true;
+ }
+}
+
+//Log::DEBUG("begin notify");
+$notify = new PayNotifyCallBack();
+$notify->Handle(false);
diff --git a/plugins/wxpay/ok.php b/plugins/wxpay/ok.php
new file mode 100644
index 0000000..dea8a19
--- /dev/null
+++ b/plugins/wxpay/ok.php
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/wxpay/qrcode.php b/plugins/wxpay/qrcode.php
new file mode 100644
index 0000000..b664f6f
--- /dev/null
+++ b/plugins/wxpay/qrcode.php
@@ -0,0 +1,140 @@
+SetBody($ordername);
+$input->SetOut_trade_no(TRADE_NO);
+$input->SetTotal_fee(strval($order['money']*100));
+$input->SetSpbill_create_ip($clientip);
+$input->SetTime_start(date("YmdHis"));
+$input->SetTime_expire(date("YmdHis", time() + 600));
+$input->SetNotify_url($conf['localurl'].'pay/wxpay/notify/'.TRADE_NO.'/');
+$input->SetTrade_type("NATIVE");
+$result = $notify->GetPayUrl($input);
+if($result["result_code"]=='SUCCESS'){
+ $code_url=$result['code_url'];
+}elseif(isset($result["err_code"])){
+ sysmsg('微信支付下单失败!['.$result["err_code"].'] '.$result["err_code_des"]);
+}else{
+ sysmsg('微信支付下单失败!['.$result["return_code"].'] '.$result["return_msg"]);
+}
+
+?>
+
+
+
+
+
+
+微信安全支付 -
+
+
+
+
+
+微信支付
+
+
+
+
+
¥
+
+
+
+
+
+商家
+
+购买物品
+
+商户订单号
+
+创建时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/wxpay/refund.php b/plugins/wxpay/refund.php
new file mode 100644
index 0000000..9c883a0
--- /dev/null
+++ b/plugins/wxpay/refund.php
@@ -0,0 +1,28 @@
+SetTransaction_id($order['api_trade_no']);
+ $input->SetTotal_fee(strval($order['realmoney']*100));
+ $input->SetRefund_fee(strval($order['realmoney']*100));
+ $input->SetOut_refund_no($order['trade_no']);
+ $input->SetOp_user_id(WxPayConfig::MCHID);
+ $result = WxPayApi::refund($input);
+ if($result['return_code']=='SUCCESS' && $result['result_code']=='SUCCESS'){
+ $result = ['code'=>0, 'trade_no'=>$result['transaction_id'], 'refund_fee'=>$result['refund_fee']];
+ }elseif(isset($result["err_code"])){
+ $result = ['code'=>-1, 'msg'=>'['.$result["err_code"].']'.$result["err_code_des"]];
+ }else{
+ $result = ['code'=>-1, 'msg'=>'['.$result["return_code"].']'.$result["return_msg"]];
+ }
+} catch(Exception $e) {
+ $result = ['code'=>-1, 'msg'=>$e->getMessage()];
+}
+
+return $result;
\ No newline at end of file
diff --git a/plugins/wxpay/return.php b/plugins/wxpay/return.php
new file mode 100644
index 0000000..d681c91
--- /dev/null
+++ b/plugins/wxpay/return.php
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/wxpay/submit.php b/plugins/wxpay/submit.php
new file mode 100644
index 0000000..417a7d1
--- /dev/null
+++ b/plugins/wxpay/submit.php
@@ -0,0 +1,25 @@
+window.location.href='{$conf['localurl_alipay']}pay/wxpay/jspay/{$trade_no}/?d=1';";exit;
+ }
+ echo "";
+}elseif(checkmobile()==true){
+ if(in_array('3',$channel['apptype'])){
+ if(!empty($conf['localurl_wxpay']) && !strpos($conf['localurl_wxpay'],$_SERVER['HTTP_HOST'])){
+ echo "";exit;
+ }
+ echo "";
+ }elseif(in_array('2',$channel['apptype'])){
+ if(!empty($conf['localurl_wxpay']) && !strpos($conf['localurl_wxpay'],$_SERVER['HTTP_HOST'])){
+ echo "";exit;
+ }
+ echo "";
+ }else{
+ echo "";
+ }
+}else{
+ echo "";
+}
diff --git a/plugins/wxpay/wap.php b/plugins/wxpay/wap.php
new file mode 100644
index 0000000..bd614b1
--- /dev/null
+++ b/plugins/wxpay/wap.php
@@ -0,0 +1,111 @@
+
+
+
+
+
+ 微信支付
+
+
+
+
+
+
+
+ 微信支付手机版
+
+
+
长按保存到相册使用扫码扫码完成支付
+
+
或复制以下链接到微信打开:
+
+
提示:你可以将以上链接发到自己微信的聊天框(在微信顶部搜索框可以搜到自己的微信),即可点击进入支付
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/wxpaysl/config.ini b/plugins/wxpaysl/config.ini
new file mode 100644
index 0000000..cc0904f
--- /dev/null
+++ b/plugins/wxpaysl/config.ini
@@ -0,0 +1,21 @@
+[config]
+;支付插件英文名称,需和目录名称一致,不能有重复
+name = "wxpaysl"
+
+;支付插件显示名称
+showname = "微信官方支付服务商版"
+
+;支付插件作者
+author = "微信"
+
+;支付插件作者链接
+link = "https://pay.weixin.qq.com/partner/public/home"
+
+;支付插件支持的支付方式,多种方式用英文,隔开,可选的有alipay,qqpay,wxpay,bank
+types = "wxpay"
+
+;支付插件要求传入的参数以及参数显示名称,可选的有appid,appkey,appsecret,appurl,appmchid
+inputs = "appid:公众号APPID,appmchid:商户号,appkey:商户支付密钥,appsecret:公众号SECRET,appurl:子商户号"
+
+;支付插件要求传入的支付方式参数
+select = "1:扫码支付,2:公众号支付,3:H5支付"
\ No newline at end of file
diff --git a/plugins/wxpaysl/h5.php b/plugins/wxpaysl/h5.php
new file mode 100644
index 0000000..0090093
--- /dev/null
+++ b/plugins/wxpaysl/h5.php
@@ -0,0 +1,32 @@
+SetBody($ordername);
+$input->SetOut_trade_no(TRADE_NO);
+$input->SetTotal_fee(strval($order['money']*100));
+$input->SetSpbill_create_ip($clientip);
+$input->SetTime_start(date("YmdHis"));
+$input->SetTime_expire(date("YmdHis", time() + 600));
+$input->SetNotify_url($conf['localurl'].'pay/wxpaysl/notify/'.TRADE_NO.'/');
+$input->SetTrade_type("MWEB");
+$result = $notify->GetPayUrl($input);
+if($result["result_code"]=='SUCCESS'){
+ $redirect_url=$siteurl.'pay/wxpay/return/'.TRADE_NO.'/';
+ $url=$result['mweb_url'].'&redirect_url='.urlencode($redirect_url);
+ exit("");
+}elseif(isset($result["err_code"])){
+ sysmsg('微信支付下单失败!['.$result["err_code"].'] '.$result["err_code_des"]);
+}else{
+ sysmsg('微信支付下单失败!['.$result["return_code"].'] '.$result["return_msg"]);
+}
+
+?>
\ No newline at end of file
diff --git a/plugins/wxpaysl/inc/WxPay.Api.php b/plugins/wxpaysl/inc/WxPay.Api.php
new file mode 100644
index 0000000..c16b99b
--- /dev/null
+++ b/plugins/wxpaysl/inc/WxPay.Api.php
@@ -0,0 +1,636 @@
+IsOut_trade_noSet()) {
+ throw new WxPayException("缺少统一支付接口必填参数out_trade_no!");
+ }else if(!$inputObj->IsBodySet()){
+ throw new WxPayException("缺少统一支付接口必填参数body!");
+ }else if(!$inputObj->IsTotal_feeSet()) {
+ throw new WxPayException("缺少统一支付接口必填参数total_fee!");
+ }else if(!$inputObj->IsTrade_typeSet()) {
+ throw new WxPayException("缺少统一支付接口必填参数trade_type!");
+ }
+
+ //关联参数
+ if($inputObj->GetTrade_type() == "JSAPI" && !$inputObj->IsOpenidSet()){
+ throw new WxPayException("统一支付接口中,缺少必填参数openid!trade_type为JSAPI时,openid为必填参数!");
+ }
+ if($inputObj->GetTrade_type() == "JSAPI" && !$inputObj->IsProduct_idSet()){
+ throw new WxPayException("统一支付接口中,缺少必填参数product_id!trade_type为JSAPI时,product_id为必填参数!");
+ }
+
+ //异步通知url未设置,则使用配置文件中的url
+ if(!$inputObj->IsNotify_urlSet()){
+ $inputObj->SetNotify_url(WxPayConfig::NOTIFY_URL);//异步通知url
+ }
+
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetSubAppid(WxPayConfig::SUB_APPID);//子商户公众账号ID
+ $inputObj->SetSubMch_id(WxPayConfig::SUB_MCHID);//子商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ //签名
+ $inputObj->SetSign();
+ $xml = $inputObj->ToXml();
+
+ $startTimeStamp = self::getMillisecond();//请求开始时间
+ $response = self::postXmlCurl($xml, $url, false, $timeOut);
+ $result = WxPayResults::Init($response);
+ self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间
+
+ return $result;
+ }
+
+ /**
+ *
+ * 查询订单,WxPayOrderQuery中out_trade_no、transaction_id至少填一个
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayOrderQuery $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ * @return 成功时返回,其他抛异常
+ */
+ public static function orderQuery($inputObj, $timeOut = 6)
+ {
+ $url = "https://api.mch.weixin.qq.com/pay/orderquery";
+ //检测必填参数
+ if(!$inputObj->IsOut_trade_noSet() && !$inputObj->IsTransaction_idSet()) {
+ throw new WxPayException("订单查询接口中,out_trade_no、transaction_id至少填一个!");
+ }
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetSubAppid(WxPayConfig::SUB_APPID);//子商户公众账号ID
+ $inputObj->SetSubMch_id(WxPayConfig::SUB_MCHID);//子商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+
+ $startTimeStamp = self::getMillisecond();//请求开始时间
+ $response = self::postXmlCurl($xml, $url, false, $timeOut);
+ $result = WxPayResults::Init($response);
+ self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间
+
+ return $result;
+ }
+
+ /**
+ *
+ * 关闭订单,WxPayCloseOrder中out_trade_no必填
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayCloseOrder $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ * @return 成功时返回,其他抛异常
+ */
+ public static function closeOrder($inputObj, $timeOut = 6)
+ {
+ $url = "https://api.mch.weixin.qq.com/pay/closeorder";
+ //检测必填参数
+ if(!$inputObj->IsOut_trade_noSet()) {
+ throw new WxPayException("订单查询接口中,out_trade_no必填!");
+ }
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetSubAppid(WxPayConfig::SUB_APPID);//子商户公众账号ID
+ $inputObj->SetSubMch_id(WxPayConfig::SUB_MCHID);//子商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+
+ $startTimeStamp = self::getMillisecond();//请求开始时间
+ $response = self::postXmlCurl($xml, $url, false, $timeOut);
+ $result = WxPayResults::Init($response);
+ self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间
+
+ return $result;
+ }
+
+ /**
+ *
+ * 申请退款,WxPayRefund中out_trade_no、transaction_id至少填一个且
+ * out_refund_no、total_fee、refund_fee、op_user_id为必填参数
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayRefund $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ * @return 成功时返回,其他抛异常
+ */
+ public static function refund($inputObj, $timeOut = 6)
+ {
+ $url = "https://api.mch.weixin.qq.com/secapi/pay/refund";
+ //检测必填参数
+ if(!$inputObj->IsOut_trade_noSet() && !$inputObj->IsTransaction_idSet()) {
+ throw new WxPayException("退款申请接口中,out_trade_no、transaction_id至少填一个!");
+ }else if(!$inputObj->IsOut_refund_noSet()){
+ throw new WxPayException("退款申请接口中,缺少必填参数out_refund_no!");
+ }else if(!$inputObj->IsTotal_feeSet()){
+ throw new WxPayException("退款申请接口中,缺少必填参数total_fee!");
+ }else if(!$inputObj->IsRefund_feeSet()){
+ throw new WxPayException("退款申请接口中,缺少必填参数refund_fee!");
+ }else if(!$inputObj->IsOp_user_idSet()){
+ throw new WxPayException("退款申请接口中,缺少必填参数op_user_id!");
+ }
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetSubAppid(WxPayConfig::SUB_APPID);//子商户公众账号ID
+ $inputObj->SetSubMch_id(WxPayConfig::SUB_MCHID);//子商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+ $startTimeStamp = self::getMillisecond();//请求开始时间
+ $response = self::postXmlCurl($xml, $url, true, $timeOut);
+ $result = WxPayResults::Init($response);
+ self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间
+
+ return $result;
+ }
+
+ /**
+ *
+ * 查询退款
+ * 提交退款申请后,通过调用该接口查询退款状态。退款有一定延时,
+ * 用零钱支付的退款20分钟内到账,银行卡支付的退款3个工作日后重新查询退款状态。
+ * WxPayRefundQuery中out_refund_no、out_trade_no、transaction_id、refund_id四个参数必填一个
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayRefundQuery $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ * @return 成功时返回,其他抛异常
+ */
+ public static function refundQuery($inputObj, $timeOut = 6)
+ {
+ $url = "https://api.mch.weixin.qq.com/pay/refundquery";
+ //检测必填参数
+ if(!$inputObj->IsOut_refund_noSet() &&
+ !$inputObj->IsOut_trade_noSet() &&
+ !$inputObj->IsTransaction_idSet() &&
+ !$inputObj->IsRefund_idSet()) {
+ throw new WxPayException("退款查询接口中,out_refund_no、out_trade_no、transaction_id、refund_id四个参数必填一个!");
+ }
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetSubAppid(WxPayConfig::SUB_APPID);//子商户公众账号ID
+ $inputObj->SetSubMch_id(WxPayConfig::SUB_MCHID);//子商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+
+ $startTimeStamp = self::getMillisecond();//请求开始时间
+ $response = self::postXmlCurl($xml, $url, false, $timeOut);
+ $result = WxPayResults::Init($response);
+ self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间
+
+ return $result;
+ }
+
+ /**
+ * 下载对账单,WxPayDownloadBill中bill_date为必填参数
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayDownloadBill $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ * @return 成功时返回,其他抛异常
+ */
+ public static function downloadBill($inputObj, $timeOut = 6)
+ {
+ $url = "https://api.mch.weixin.qq.com/pay/downloadbill";
+ //检测必填参数
+ if(!$inputObj->IsBill_dateSet()) {
+ throw new WxPayException("对账单接口中,缺少必填参数bill_date!");
+ }
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetSubAppid(WxPayConfig::SUB_APPID);//子商户公众账号ID
+ $inputObj->SetSubMch_id(WxPayConfig::SUB_MCHID);//子商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+
+ $response = self::postXmlCurl($xml, $url, false, $timeOut);
+ if(substr($response, 0 , 5) == ""){
+ return "";
+ }
+ return $response;
+ }
+
+ /**
+ * 提交被扫支付API
+ * 收银员使用扫码设备读取微信用户刷卡授权码以后,二维码或条码信息传送至商户收银台,
+ * 由商户收银台或者商户后台调用该接口发起支付。
+ * WxPayWxPayMicroPay中body、out_trade_no、total_fee、auth_code参数必填
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayWxPayMicroPay $inputObj
+ * @param int $timeOut
+ */
+ public static function micropay($inputObj, $timeOut = 10)
+ {
+ $url = "https://api.mch.weixin.qq.com/pay/micropay";
+ //检测必填参数
+ if(!$inputObj->IsBodySet()) {
+ throw new WxPayException("提交被扫支付API接口中,缺少必填参数body!");
+ } else if(!$inputObj->IsOut_trade_noSet()) {
+ throw new WxPayException("提交被扫支付API接口中,缺少必填参数out_trade_no!");
+ } else if(!$inputObj->IsTotal_feeSet()) {
+ throw new WxPayException("提交被扫支付API接口中,缺少必填参数total_fee!");
+ } else if(!$inputObj->IsAuth_codeSet()) {
+ throw new WxPayException("提交被扫支付API接口中,缺少必填参数auth_code!");
+ }
+
+ $inputObj->SetSpbill_create_ip($_SERVER['REMOTE_ADDR']);//终端ip
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetSubAppid(WxPayConfig::SUB_APPID);//子商户公众账号ID
+ $inputObj->SetSubMch_id(WxPayConfig::SUB_MCHID);//子商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+
+ $startTimeStamp = self::getMillisecond();//请求开始时间
+ $response = self::postXmlCurl($xml, $url, false, $timeOut);
+ $result = WxPayResults::Init($response);
+ self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间
+
+ return $result;
+ }
+
+ /**
+ *
+ * 撤销订单API接口,WxPayReverse中参数out_trade_no和transaction_id必须填写一个
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayReverse $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ */
+ public static function reverse($inputObj, $timeOut = 6)
+ {
+ $url = "https://api.mch.weixin.qq.com/secapi/pay/reverse";
+ //检测必填参数
+ if(!$inputObj->IsOut_trade_noSet() && !$inputObj->IsTransaction_idSet()) {
+ throw new WxPayException("撤销订单API接口中,参数out_trade_no和transaction_id必须填写一个!");
+ }
+
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetSubAppid(WxPayConfig::SUB_APPID);//子商户公众账号ID
+ $inputObj->SetSubMch_id(WxPayConfig::SUB_MCHID);//子商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+
+ $startTimeStamp = self::getMillisecond();//请求开始时间
+ $response = self::postXmlCurl($xml, $url, true, $timeOut);
+ $result = WxPayResults::Init($response);
+ self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间
+
+ return $result;
+ }
+
+ /**
+ *
+ * 企业付款,WxPayTransfer中partner_trade_no必填
+ * partner_trade_no、openid、check_name、amount、desc为必填参数
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayTransfer $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ * @return 成功时返回,其他抛异常
+ */
+ public static function transfer($inputObj, $timeOut = 6)
+ {
+ $url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers";
+ //检测必填参数
+ if(!$inputObj->IsPartner_trade_noSet()){
+ throw new WxPayException("企业付款接口中,缺少必填参数partner_trade_no!");
+ }else if(!$inputObj->IsOpenidSet()){
+ throw new WxPayException("企业付款接口中,缺少必填参数openid!");
+ }else if(!$inputObj->IsCheck_nameSet()){
+ throw new WxPayException("企业付款接口中,缺少必填参数check_name!");
+ }else if(!$inputObj->IsAmountSet()){
+ throw new WxPayException("企业付款接口中,缺少必填参数amount!");
+ }else if(!$inputObj->IsDescSet()){
+ throw new WxPayException("企业付款接口中,缺少必填参数desc!");
+ }
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetSubAppid(WxPayConfig::SUB_APPID);//子商户公众账号ID
+ $inputObj->SetSubMch_id(WxPayConfig::SUB_MCHID);//子商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+ $response = self::postXmlCurl($xml, $url, true, $timeOut);
+ $result = WxPayResults::Init2($response);
+
+ return $result;
+ }
+
+ /**
+ *
+ * 测速上报,该方法内部封装在report中,使用时请注意异常流程
+ * WxPayReport中interface_url、return_code、result_code、user_ip、execute_time_必填
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayReport $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ * @return 成功时返回,其他抛异常
+ */
+ public static function report($inputObj, $timeOut = 1)
+ {
+ $url = "https://api.mch.weixin.qq.com/payitil/report";
+ //检测必填参数
+ if(!$inputObj->IsInterface_urlSet()) {
+ throw new WxPayException("接口URL,缺少必填参数interface_url!");
+ } if(!$inputObj->IsReturn_codeSet()) {
+ throw new WxPayException("返回状态码,缺少必填参数return_code!");
+ } if(!$inputObj->IsResult_codeSet()) {
+ throw new WxPayException("业务结果,缺少必填参数result_code!");
+ } if(!$inputObj->IsUser_ipSet()) {
+ throw new WxPayException("访问接口IP,缺少必填参数user_ip!");
+ } if(!$inputObj->IsExecute_time_Set()) {
+ throw new WxPayException("接口耗时,缺少必填参数execute_time_!");
+ }
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetSubAppid(WxPayConfig::SUB_APPID);//子商户公众账号ID
+ $inputObj->SetSubMch_id(WxPayConfig::SUB_MCHID);//子商户号
+ $inputObj->SetUser_ip($_SERVER['REMOTE_ADDR']);//终端ip
+ $inputObj->SetTime(date("YmdHis"));//商户上报时间
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+
+ $startTimeStamp = self::getMillisecond();//请求开始时间
+ $response = self::postXmlCurl($xml, $url, false, $timeOut);
+ return $response;
+ }
+
+ /**
+ *
+ * 生成二维码规则,模式一生成支付二维码
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayBizPayUrl $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ * @return 成功时返回,其他抛异常
+ */
+ public static function bizpayurl($inputObj, $timeOut = 6)
+ {
+ if(!$inputObj->IsProduct_idSet()){
+ throw new WxPayException("生成二维码,缺少必填参数product_id!");
+ }
+
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetTime_stamp(time());//时间戳
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+
+ return $inputObj->GetValues();
+ }
+
+ /**
+ *
+ * 转换短链接
+ * 该接口主要用于扫码原生支付模式一中的二维码链接转成短链接(weixin://wxpay/s/XXXXXX),
+ * 减小二维码数据量,提升扫描速度和精确度。
+ * appid、mchid、spbill_create_ip、nonce_str不需要填入
+ * @param WxPayShortUrl $inputObj
+ * @param int $timeOut
+ * @throws WxPayException
+ * @return 成功时返回,其他抛异常
+ */
+ public static function shorturl($inputObj, $timeOut = 6)
+ {
+ $url = "https://api.mch.weixin.qq.com/tools/shorturl";
+ //检测必填参数
+ if(!$inputObj->IsLong_urlSet()) {
+ throw new WxPayException("需要转换的URL,签名用原串,传输需URL encode!");
+ }
+ $inputObj->SetAppid(WxPayConfig::APPID);//公众账号ID
+ $inputObj->SetMch_id(WxPayConfig::MCHID);//商户号
+ $inputObj->SetNonce_str(self::getNonceStr());//随机字符串
+
+ $inputObj->SetSign();//签名
+ $xml = $inputObj->ToXml();
+
+ $startTimeStamp = self::getMillisecond();//请求开始时间
+ $response = self::postXmlCurl($xml, $url, false, $timeOut);
+ $result = WxPayResults::Init($response);
+ self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间
+
+ return $result;
+ }
+
+ /**
+ *
+ * 支付结果通用通知
+ * @param function $callback
+ * 直接回调函数使用方法: notify(you_function);
+ * 回调类成员函数方法:notify(array($this, you_function));
+ * $callback 原型为:function function_name($data){}
+ */
+ public static function notify($callback, &$msg)
+ {
+ //获取通知的数据
+ $xml = file_get_contents("php://input");
+ //如果返回成功则验证签名
+ try {
+ $result = WxPayResults::Init($xml);
+ } catch (WxPayException $e){
+ $msg = $e->errorMessage();
+ return false;
+ }
+
+ return call_user_func($callback, $result);
+ }
+
+ /**
+ *
+ * 产生随机字符串,不长于32位
+ * @param int $length
+ * @return 产生的随机字符串
+ */
+ public static function getNonceStr($length = 32)
+ {
+ $chars = "abcdefghijklmnopqrstuvwxyz0123456789";
+ $str ="";
+ for ( $i = 0; $i < $length; $i++ ) {
+ $str .= substr($chars, mt_rand(0, strlen($chars)-1), 1);
+ }
+ return $str;
+ }
+
+ /**
+ * 直接输出xml
+ * @param string $xml
+ */
+ public static function replyNotify($xml)
+ {
+ echo $xml;
+ }
+
+ /**
+ *
+ * 上报数据, 上报的时候将屏蔽所有异常流程
+ * @param string $usrl
+ * @param int $startTimeStamp
+ * @param array $data
+ */
+ private static function reportCostTime($url, $startTimeStamp, $data)
+ {
+ //如果不需要上报数据
+ if(WxPayConfig::REPORT_LEVENL == 0){
+ return;
+ }
+ //如果仅失败上报
+ if(WxPayConfig::REPORT_LEVENL == 1 &&
+ array_key_exists("return_code", $data) &&
+ $data["return_code"] == "SUCCESS" &&
+ array_key_exists("result_code", $data) &&
+ $data["result_code"] == "SUCCESS")
+ {
+ return;
+ }
+
+ //上报逻辑
+ $endTimeStamp = self::getMillisecond();
+ $objInput = new WxPayReport();
+ $objInput->SetInterface_url($url);
+ $objInput->SetExecute_time_($endTimeStamp - $startTimeStamp);
+ //返回状态码
+ if(array_key_exists("return_code", $data)){
+ $objInput->SetReturn_code($data["return_code"]);
+ }
+ //返回信息
+ if(array_key_exists("return_msg", $data)){
+ $objInput->SetReturn_msg($data["return_msg"]);
+ }
+ //业务结果
+ if(array_key_exists("result_code", $data)){
+ $objInput->SetResult_code($data["result_code"]);
+ }
+ //错误代码
+ if(array_key_exists("err_code", $data)){
+ $objInput->SetErr_code($data["err_code"]);
+ }
+ //错误代码描述
+ if(array_key_exists("err_code_des", $data)){
+ $objInput->SetErr_code_des($data["err_code_des"]);
+ }
+ //商户订单号
+ if(array_key_exists("out_trade_no", $data)){
+ $objInput->SetOut_trade_no($data["out_trade_no"]);
+ }
+ //设备号
+ if(array_key_exists("device_info", $data)){
+ $objInput->SetDevice_info($data["device_info"]);
+ }
+
+ try{
+ self::report($objInput);
+ } catch (WxPayException $e){
+ //不做任何处理
+ }
+ }
+
+ /**
+ * 以post方式提交xml到对应的接口url
+ *
+ * @param string $xml 需要post的xml数据
+ * @param string $url url
+ * @param bool $useCert 是否需要证书,默认不需要
+ * @param int $second url执行超时时间,默认30s
+ * @throws WxPayException
+ */
+ private static function postXmlCurl($xml, $url, $useCert = false, $second = 30)
+ {
+ $ch = curl_init();
+ //设置超时
+ curl_setopt($ch, CURLOPT_TIMEOUT, $second);
+
+ //如果有配置代理这里就设置代理
+ if(WxPayConfig::CURL_PROXY_HOST != "0.0.0.0"
+ && WxPayConfig::CURL_PROXY_PORT != 0){
+ curl_setopt($ch,CURLOPT_PROXY, WxPayConfig::CURL_PROXY_HOST);
+ curl_setopt($ch,CURLOPT_PROXYPORT, WxPayConfig::CURL_PROXY_PORT);
+ }
+ curl_setopt($ch,CURLOPT_URL, $url);
+ curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
+ curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
+ //设置header
+ curl_setopt($ch, CURLOPT_HEADER, FALSE);
+ //要求结果为字符串且输出到屏幕上
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
+
+ if($useCert == true){
+ //设置证书
+ //使用证书:cert 与 key 分别属于两个.pem文件
+ curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');
+ curl_setopt($ch,CURLOPT_SSLCERT, WxPayConfig::SSLCERT_PATH);
+ curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');
+ curl_setopt($ch,CURLOPT_SSLKEY, WxPayConfig::SSLKEY_PATH);
+ }
+ //post提交方式
+ curl_setopt($ch, CURLOPT_POST, TRUE);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
+ //运行curl
+ $data = curl_exec($ch);
+ //返回结果
+ if($data){
+ curl_close($ch);
+ return $data;
+ } else {
+ $error = curl_errno($ch);
+ curl_close($ch);
+ throw new WxPayException("curl出错,错误码:$error");
+ }
+ }
+
+ /**
+ * 获取毫秒级别的时间戳
+ */
+ private static function getMillisecond()
+ {
+ //获取毫秒的时间戳
+ $time = explode ( " ", microtime () );
+ $time = $time[1] . ($time[0] * 1000);
+ $time2 = explode( ".", $time );
+ $time = $time2[0];
+ return $time;
+ }
+}
+
diff --git a/plugins/wxpaysl/inc/WxPay.Config.php b/plugins/wxpaysl/inc/WxPay.Config.php
new file mode 100644
index 0000000..bcf3434
--- /dev/null
+++ b/plugins/wxpaysl/inc/WxPay.Config.php
@@ -0,0 +1,68 @@
+MakeSign();
+ $this->values['sign'] = $sign;
+ return $sign;
+ }
+
+ /**
+ * 获取签名,详见签名生成算法的值
+ * @return 值
+ **/
+ public function GetSign()
+ {
+ return $this->values['sign'];
+ }
+
+ /**
+ * 判断签名,详见签名生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsSignSet()
+ {
+ return array_key_exists('sign', $this->values);
+ }
+
+ /**
+ * 输出xml字符
+ * @throws WxPayException
+ **/
+ public function ToXml()
+ {
+ if(!is_array($this->values)
+ || count($this->values) <= 0)
+ {
+ throw new WxPayException("数组数据异常!");
+ }
+
+ $xml = "";
+ foreach ($this->values as $key=>$val)
+ {
+ if (is_numeric($val)){
+ $xml.="<".$key.">".$val."".$key.">";
+ }else{
+ $xml.="<".$key.">".$key.">";
+ }
+ }
+ $xml.=" ";
+ return $xml;
+ }
+
+ /**
+ * 将xml转为array
+ * @param string $xml
+ * @throws WxPayException
+ */
+ public function FromXml($xml)
+ {
+ if(!$xml){
+ throw new WxPayException("xml数据异常!");
+ }
+ //将XML转为array
+ //禁止引用外部xml实体
+ libxml_disable_entity_loader(true);
+ $this->values = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
+ return $this->values;
+ }
+
+ /**
+ * 格式化参数格式化成url参数
+ */
+ public function ToUrlParams()
+ {
+ $buff = "";
+ foreach ($this->values as $k => $v)
+ {
+ if($k != "sign" && $v != "" && !is_array($v)){
+ $buff .= $k . "=" . $v . "&";
+ }
+ }
+
+ $buff = trim($buff, "&");
+ return $buff;
+ }
+
+ /**
+ * 生成签名
+ * @return 签名,本函数不覆盖sign成员变量,如要设置签名需要调用SetSign方法赋值
+ */
+ public function MakeSign()
+ {
+ //签名步骤一:按字典序排序参数
+ ksort($this->values);
+ $string = $this->ToUrlParams();
+ //签名步骤二:在string后加入KEY
+ $string = $string . "&key=".WxPayConfig::KEY;
+ //签名步骤三:MD5加密
+ $string = md5($string);
+ //签名步骤四:所有字符转为大写
+ $result = strtoupper($string);
+ return $result;
+ }
+
+ /**
+ * 获取设置的值
+ */
+ public function GetValues()
+ {
+ return $this->values;
+ }
+}
+
+/**
+ *
+ * 接口调用结果类
+ * @author widyhu
+ *
+ */
+class WxPayResults extends WxPayDataBase
+{
+ /**
+ *
+ * 检测签名
+ */
+ public function CheckSign()
+ {
+ //fix异常
+ if(!$this->IsSignSet()){
+ throw new WxPayException("签名错误!");
+ }
+
+ $sign = $this->MakeSign();
+ if($this->GetSign() == $sign){
+ return true;
+ }
+ throw new WxPayException("签名错误!");
+ }
+
+ /**
+ *
+ * 使用数组初始化
+ * @param array $array
+ */
+ public function FromArray($array)
+ {
+ $this->values = $array;
+ }
+
+ /**
+ *
+ * 使用数组初始化对象
+ * @param array $array
+ * @param 是否检测签名 $noCheckSign
+ */
+ public static function InitFromArray($array, $noCheckSign = false)
+ {
+ $obj = new self();
+ $obj->FromArray($array);
+ if($noCheckSign == false){
+ $obj->CheckSign();
+ }
+ return $obj;
+ }
+
+ /**
+ *
+ * 设置参数
+ * @param string $key
+ * @param string $value
+ */
+ public function SetData($key, $value)
+ {
+ $this->values[$key] = $value;
+ }
+
+ /**
+ * 将xml转为array
+ * @param string $xml
+ * @throws WxPayException
+ */
+ public static function Init($xml)
+ {
+ $obj = new self();
+ $obj->FromXml($xml);
+ //fix bug 2015-06-29
+ if($obj->values['return_code'] != 'SUCCESS'){
+ return $obj->GetValues();
+ }
+ $obj->CheckSign();
+ return $obj->GetValues();
+ }
+
+ /**
+ * 将xml转为array(无签名校验)
+ * @param string $xml
+ * @throws WxPayException
+ */
+ public static function Init2($xml)
+ {
+ $obj = new self();
+ $obj->FromXml($xml);
+ if($obj->values['return_code'] != 'SUCCESS'){
+ return $obj->GetValues();
+ }
+ return $obj->GetValues();
+ }
+}
+
+/**
+ *
+ * 回调基础类
+ * @author widyhu
+ *
+ */
+class WxPayNotifyReply extends WxPayDataBase
+{
+ /**
+ *
+ * 设置错误码 FAIL 或者 SUCCESS
+ * @param string
+ */
+ public function SetReturn_code($return_code)
+ {
+ $this->values['return_code'] = $return_code;
+ }
+
+ /**
+ *
+ * 获取错误码 FAIL 或者 SUCCESS
+ * @return string $return_code
+ */
+ public function GetReturn_code()
+ {
+ return $this->values['return_code'];
+ }
+
+ /**
+ *
+ * 设置错误信息
+ * @param string $return_code
+ */
+ public function SetReturn_msg($return_msg)
+ {
+ $this->values['return_msg'] = $return_msg;
+ }
+
+ /**
+ *
+ * 获取错误信息
+ * @return string
+ */
+ public function GetReturn_msg()
+ {
+ return $this->values['return_msg'];
+ }
+
+ /**
+ *
+ * 设置返回参数
+ * @param string $key
+ * @param string $value
+ */
+ public function SetData($key, $value)
+ {
+ $this->values[$key] = $value;
+ }
+}
+
+/**
+ *
+ * 统一下单输入对象
+ * @author widyhu
+ *
+ */
+class WxPayUnifiedOrder extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 微信分配的子商户公众账号ID
+ * @param string $value
+ **/
+ public function SetSubAppid($value)
+ {
+ $this->values['sub_appid'] = $value;
+ }
+ /**
+ * 获取微信分配的子商户公众账号ID
+ * @return 值
+ **/
+ public function GetSubAppid()
+ {
+ return $this->values['sub_appid'];
+ }
+ /**
+ * 判断微信分配的子商户公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsSubAppidSet()
+ {
+ return array_key_exists('sub_appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的子商户号
+ * @param string $value
+ **/
+ public function SetSubMch_id($value)
+ {
+ $this->values['sub_mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的子商户号的值
+ * @return 值
+ **/
+ public function GetSubMch_id()
+ {
+ return $this->values['sub_mch_id'];
+ }
+ /**
+ * 判断微信支付分配的子商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsSubMch_idSet()
+ {
+ return array_key_exists('sub_mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的终端设备号,商户自定义
+ * @param string $value
+ **/
+ public function SetDevice_info($value)
+ {
+ $this->values['device_info'] = $value;
+ }
+ /**
+ * 获取微信支付分配的终端设备号,商户自定义的值
+ * @return 值
+ **/
+ public function GetDevice_info()
+ {
+ return $this->values['device_info'];
+ }
+ /**
+ * 判断微信支付分配的终端设备号,商户自定义是否存在
+ * @return true 或 false
+ **/
+ public function IsDevice_infoSet()
+ {
+ return array_key_exists('device_info', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+
+ /**
+ * 设置商品或支付单简要描述
+ * @param string $value
+ **/
+ public function SetBody($value)
+ {
+ $this->values['body'] = $value;
+ }
+ /**
+ * 获取商品或支付单简要描述的值
+ * @return 值
+ **/
+ public function GetBody()
+ {
+ return $this->values['body'];
+ }
+ /**
+ * 判断商品或支付单简要描述是否存在
+ * @return true 或 false
+ **/
+ public function IsBodySet()
+ {
+ return array_key_exists('body', $this->values);
+ }
+
+
+ /**
+ * 设置商品名称明细列表
+ * @param string $value
+ **/
+ public function SetDetail($value)
+ {
+ $this->values['detail'] = $value;
+ }
+ /**
+ * 获取商品名称明细列表的值
+ * @return 值
+ **/
+ public function GetDetail()
+ {
+ return $this->values['detail'];
+ }
+ /**
+ * 判断商品名称明细列表是否存在
+ * @return true 或 false
+ **/
+ public function IsDetailSet()
+ {
+ return array_key_exists('detail', $this->values);
+ }
+
+
+ /**
+ * 设置附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
+ * @param string $value
+ **/
+ public function SetAttach($value)
+ {
+ $this->values['attach'] = $value;
+ }
+ /**
+ * 获取附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据的值
+ * @return 值
+ **/
+ public function GetAttach()
+ {
+ return $this->values['attach'];
+ }
+ /**
+ * 判断附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据是否存在
+ * @return true 或 false
+ **/
+ public function IsAttachSet()
+ {
+ return array_key_exists('attach', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号
+ * @param string $value
+ **/
+ public function SetOut_trade_no($value)
+ {
+ $this->values['out_trade_no'] = $value;
+ }
+ /**
+ * 获取商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号的值
+ * @return 值
+ **/
+ public function GetOut_trade_no()
+ {
+ return $this->values['out_trade_no'];
+ }
+ /**
+ * 判断商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_trade_noSet()
+ {
+ return array_key_exists('out_trade_no', $this->values);
+ }
+
+
+ /**
+ * 设置符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型
+ * @param string $value
+ **/
+ public function SetFee_type($value)
+ {
+ $this->values['fee_type'] = $value;
+ }
+ /**
+ * 获取符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型的值
+ * @return 值
+ **/
+ public function GetFee_type()
+ {
+ return $this->values['fee_type'];
+ }
+ /**
+ * 判断符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型是否存在
+ * @return true 或 false
+ **/
+ public function IsFee_typeSet()
+ {
+ return array_key_exists('fee_type', $this->values);
+ }
+
+
+ /**
+ * 设置订单总金额,只能为整数,详见支付金额
+ * @param string $value
+ **/
+ public function SetTotal_fee($value)
+ {
+ $this->values['total_fee'] = $value;
+ }
+ /**
+ * 获取订单总金额,只能为整数,详见支付金额的值
+ * @return 值
+ **/
+ public function GetTotal_fee()
+ {
+ return $this->values['total_fee'];
+ }
+ /**
+ * 判断订单总金额,只能为整数,详见支付金额是否存在
+ * @return true 或 false
+ **/
+ public function IsTotal_feeSet()
+ {
+ return array_key_exists('total_fee', $this->values);
+ }
+
+
+ /**
+ * 设置APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。
+ * @param string $value
+ **/
+ public function SetSpbill_create_ip($value)
+ {
+ $this->values['spbill_create_ip'] = $value;
+ }
+ /**
+ * 获取APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。的值
+ * @return 值
+ **/
+ public function GetSpbill_create_ip()
+ {
+ return $this->values['spbill_create_ip'];
+ }
+ /**
+ * 判断APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。是否存在
+ * @return true 或 false
+ **/
+ public function IsSpbill_create_ipSet()
+ {
+ return array_key_exists('spbill_create_ip', $this->values);
+ }
+
+
+ /**
+ * 设置订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则
+ * @param string $value
+ **/
+ public function SetTime_start($value)
+ {
+ $this->values['time_start'] = $value;
+ }
+ /**
+ * 获取订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则的值
+ * @return 值
+ **/
+ public function GetTime_start()
+ {
+ return $this->values['time_start'];
+ }
+ /**
+ * 判断订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则是否存在
+ * @return true 或 false
+ **/
+ public function IsTime_startSet()
+ {
+ return array_key_exists('time_start', $this->values);
+ }
+
+
+ /**
+ * 设置订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则
+ * @param string $value
+ **/
+ public function SetTime_expire($value)
+ {
+ $this->values['time_expire'] = $value;
+ }
+ /**
+ * 获取订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则的值
+ * @return 值
+ **/
+ public function GetTime_expire()
+ {
+ return $this->values['time_expire'];
+ }
+ /**
+ * 判断订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则是否存在
+ * @return true 或 false
+ **/
+ public function IsTime_expireSet()
+ {
+ return array_key_exists('time_expire', $this->values);
+ }
+
+
+ /**
+ * 设置商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠
+ * @param string $value
+ **/
+ public function SetGoods_tag($value)
+ {
+ $this->values['goods_tag'] = $value;
+ }
+ /**
+ * 获取商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠的值
+ * @return 值
+ **/
+ public function GetGoods_tag()
+ {
+ return $this->values['goods_tag'];
+ }
+ /**
+ * 判断商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠是否存在
+ * @return true 或 false
+ **/
+ public function IsGoods_tagSet()
+ {
+ return array_key_exists('goods_tag', $this->values);
+ }
+
+
+ /**
+ * 设置接收微信支付异步通知回调地址
+ * @param string $value
+ **/
+ public function SetNotify_url($value)
+ {
+ $this->values['notify_url'] = $value;
+ }
+ /**
+ * 获取接收微信支付异步通知回调地址的值
+ * @return 值
+ **/
+ public function GetNotify_url()
+ {
+ return $this->values['notify_url'];
+ }
+ /**
+ * 判断接收微信支付异步通知回调地址是否存在
+ * @return true 或 false
+ **/
+ public function IsNotify_urlSet()
+ {
+ return array_key_exists('notify_url', $this->values);
+ }
+
+
+ /**
+ * 设置取值如下:JSAPI,NATIVE,APP,详细说明见参数规定
+ * @param string $value
+ **/
+ public function SetTrade_type($value)
+ {
+ $this->values['trade_type'] = $value;
+ }
+ /**
+ * 获取取值如下:JSAPI,NATIVE,APP,详细说明见参数规定的值
+ * @return 值
+ **/
+ public function GetTrade_type()
+ {
+ return $this->values['trade_type'];
+ }
+ /**
+ * 判断取值如下:JSAPI,NATIVE,APP,详细说明见参数规定是否存在
+ * @return true 或 false
+ **/
+ public function IsTrade_typeSet()
+ {
+ return array_key_exists('trade_type', $this->values);
+ }
+
+
+ /**
+ * 设置trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义。
+ * @param string $value
+ **/
+ public function SetProduct_id($value)
+ {
+ $this->values['product_id'] = $value;
+ }
+ /**
+ * 获取trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义。的值
+ * @return 值
+ **/
+ public function GetProduct_id()
+ {
+ return $this->values['product_id'];
+ }
+ /**
+ * 判断trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义。是否存在
+ * @return true 或 false
+ **/
+ public function IsProduct_idSet()
+ {
+ return array_key_exists('product_id', $this->values);
+ }
+
+
+ /**
+ * 设置trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识。下单前需要调用【网页授权获取用户信息】接口获取到用户的Openid。
+ * @param string $value
+ **/
+ public function SetOpenid($value)
+ {
+ $this->values['openid'] = $value;
+ }
+ /**
+ * 获取trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识。下单前需要调用【网页授权获取用户信息】接口获取到用户的Openid。 的值
+ * @return 值
+ **/
+ public function GetOpenid()
+ {
+ return $this->values['openid'];
+ }
+ /**
+ * 判断trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识。下单前需要调用【网页授权获取用户信息】接口获取到用户的Openid。 是否存在
+ * @return true 或 false
+ **/
+ public function IsOpenidSet()
+ {
+ return array_key_exists('openid', $this->values);
+ }
+}
+
+/**
+ *
+ * 订单查询输入对象
+ * @author widyhu
+ *
+ */
+class WxPayOrderQuery extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置微信的订单号,优先使用
+ * @param string $value
+ **/
+ public function SetTransaction_id($value)
+ {
+ $this->values['transaction_id'] = $value;
+ }
+ /**
+ * 获取微信的订单号,优先使用的值
+ * @return 值
+ **/
+ public function GetTransaction_id()
+ {
+ return $this->values['transaction_id'];
+ }
+ /**
+ * 判断微信的订单号,优先使用是否存在
+ * @return true 或 false
+ **/
+ public function IsTransaction_idSet()
+ {
+ return array_key_exists('transaction_id', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的订单号,当没提供transaction_id时需要传这个。
+ * @param string $value
+ **/
+ public function SetOut_trade_no($value)
+ {
+ $this->values['out_trade_no'] = $value;
+ }
+ /**
+ * 获取商户系统内部的订单号,当没提供transaction_id时需要传这个。的值
+ * @return 值
+ **/
+ public function GetOut_trade_no()
+ {
+ return $this->values['out_trade_no'];
+ }
+ /**
+ * 判断商户系统内部的订单号,当没提供transaction_id时需要传这个。是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_trade_noSet()
+ {
+ return array_key_exists('out_trade_no', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+}
+
+/**
+ *
+ * 关闭订单输入对象
+ * @author widyhu
+ *
+ */
+class WxPayCloseOrder extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的订单号
+ * @param string $value
+ **/
+ public function SetOut_trade_no($value)
+ {
+ $this->values['out_trade_no'] = $value;
+ }
+ /**
+ * 获取商户系统内部的订单号的值
+ * @return 值
+ **/
+ public function GetOut_trade_no()
+ {
+ return $this->values['out_trade_no'];
+ }
+ /**
+ * 判断商户系统内部的订单号是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_trade_noSet()
+ {
+ return array_key_exists('out_trade_no', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+}
+
+/**
+ *
+ * 提交退款输入对象
+ * @author widyhu
+ *
+ */
+class WxPayRefund extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的终端设备号,与下单一致
+ * @param string $value
+ **/
+ public function SetDevice_info($value)
+ {
+ $this->values['device_info'] = $value;
+ }
+ /**
+ * 获取微信支付分配的终端设备号,与下单一致的值
+ * @return 值
+ **/
+ public function GetDevice_info()
+ {
+ return $this->values['device_info'];
+ }
+ /**
+ * 判断微信支付分配的终端设备号,与下单一致是否存在
+ * @return true 或 false
+ **/
+ public function IsDevice_infoSet()
+ {
+ return array_key_exists('device_info', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+
+ /**
+ * 设置微信订单号
+ * @param string $value
+ **/
+ public function SetTransaction_id($value)
+ {
+ $this->values['transaction_id'] = $value;
+ }
+ /**
+ * 获取微信订单号的值
+ * @return 值
+ **/
+ public function GetTransaction_id()
+ {
+ return $this->values['transaction_id'];
+ }
+ /**
+ * 判断微信订单号是否存在
+ * @return true 或 false
+ **/
+ public function IsTransaction_idSet()
+ {
+ return array_key_exists('transaction_id', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no
+ * @param string $value
+ **/
+ public function SetOut_trade_no($value)
+ {
+ $this->values['out_trade_no'] = $value;
+ }
+ /**
+ * 获取商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no的值
+ * @return 值
+ **/
+ public function GetOut_trade_no()
+ {
+ return $this->values['out_trade_no'];
+ }
+ /**
+ * 判断商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_trade_noSet()
+ {
+ return array_key_exists('out_trade_no', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的退款单号,商户系统内部唯一,同一退款单号多次请求只退一笔
+ * @param string $value
+ **/
+ public function SetOut_refund_no($value)
+ {
+ $this->values['out_refund_no'] = $value;
+ }
+ /**
+ * 获取商户系统内部的退款单号,商户系统内部唯一,同一退款单号多次请求只退一笔的值
+ * @return 值
+ **/
+ public function GetOut_refund_no()
+ {
+ return $this->values['out_refund_no'];
+ }
+ /**
+ * 判断商户系统内部的退款单号,商户系统内部唯一,同一退款单号多次请求只退一笔是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_refund_noSet()
+ {
+ return array_key_exists('out_refund_no', $this->values);
+ }
+
+
+ /**
+ * 设置订单总金额,单位为分,只能为整数,详见支付金额
+ * @param string $value
+ **/
+ public function SetTotal_fee($value)
+ {
+ $this->values['total_fee'] = $value;
+ }
+ /**
+ * 获取订单总金额,单位为分,只能为整数,详见支付金额的值
+ * @return 值
+ **/
+ public function GetTotal_fee()
+ {
+ return $this->values['total_fee'];
+ }
+ /**
+ * 判断订单总金额,单位为分,只能为整数,详见支付金额是否存在
+ * @return true 或 false
+ **/
+ public function IsTotal_feeSet()
+ {
+ return array_key_exists('total_fee', $this->values);
+ }
+
+
+ /**
+ * 设置退款总金额,订单总金额,单位为分,只能为整数,详见支付金额
+ * @param string $value
+ **/
+ public function SetRefund_fee($value)
+ {
+ $this->values['refund_fee'] = $value;
+ }
+ /**
+ * 获取退款总金额,订单总金额,单位为分,只能为整数,详见支付金额的值
+ * @return 值
+ **/
+ public function GetRefund_fee()
+ {
+ return $this->values['refund_fee'];
+ }
+ /**
+ * 判断退款总金额,订单总金额,单位为分,只能为整数,详见支付金额是否存在
+ * @return true 或 false
+ **/
+ public function IsRefund_feeSet()
+ {
+ return array_key_exists('refund_fee', $this->values);
+ }
+
+
+ /**
+ * 设置货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型
+ * @param string $value
+ **/
+ public function SetRefund_fee_type($value)
+ {
+ $this->values['refund_fee_type'] = $value;
+ }
+ /**
+ * 获取货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型的值
+ * @return 值
+ **/
+ public function GetRefund_fee_type()
+ {
+ return $this->values['refund_fee_type'];
+ }
+ /**
+ * 判断货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型是否存在
+ * @return true 或 false
+ **/
+ public function IsRefund_fee_typeSet()
+ {
+ return array_key_exists('refund_fee_type', $this->values);
+ }
+
+
+ /**
+ * 设置操作员帐号, 默认为商户号
+ * @param string $value
+ **/
+ public function SetOp_user_id($value)
+ {
+ $this->values['op_user_id'] = $value;
+ }
+ /**
+ * 获取操作员帐号, 默认为商户号的值
+ * @return 值
+ **/
+ public function GetOp_user_id()
+ {
+ return $this->values['op_user_id'];
+ }
+ /**
+ * 判断操作员帐号, 默认为商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsOp_user_idSet()
+ {
+ return array_key_exists('op_user_id', $this->values);
+ }
+}
+
+/**
+ *
+ * 退款查询输入对象
+ * @author widyhu
+ *
+ */
+class WxPayRefundQuery extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的终端设备号
+ * @param string $value
+ **/
+ public function SetDevice_info($value)
+ {
+ $this->values['device_info'] = $value;
+ }
+ /**
+ * 获取微信支付分配的终端设备号的值
+ * @return 值
+ **/
+ public function GetDevice_info()
+ {
+ return $this->values['device_info'];
+ }
+ /**
+ * 判断微信支付分配的终端设备号是否存在
+ * @return true 或 false
+ **/
+ public function IsDevice_infoSet()
+ {
+ return array_key_exists('device_info', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+
+ /**
+ * 设置微信订单号
+ * @param string $value
+ **/
+ public function SetTransaction_id($value)
+ {
+ $this->values['transaction_id'] = $value;
+ }
+ /**
+ * 获取微信订单号的值
+ * @return 值
+ **/
+ public function GetTransaction_id()
+ {
+ return $this->values['transaction_id'];
+ }
+ /**
+ * 判断微信订单号是否存在
+ * @return true 或 false
+ **/
+ public function IsTransaction_idSet()
+ {
+ return array_key_exists('transaction_id', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的订单号
+ * @param string $value
+ **/
+ public function SetOut_trade_no($value)
+ {
+ $this->values['out_trade_no'] = $value;
+ }
+ /**
+ * 获取商户系统内部的订单号的值
+ * @return 值
+ **/
+ public function GetOut_trade_no()
+ {
+ return $this->values['out_trade_no'];
+ }
+ /**
+ * 判断商户系统内部的订单号是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_trade_noSet()
+ {
+ return array_key_exists('out_trade_no', $this->values);
+ }
+
+
+ /**
+ * 设置商户退款单号
+ * @param string $value
+ **/
+ public function SetOut_refund_no($value)
+ {
+ $this->values['out_refund_no'] = $value;
+ }
+ /**
+ * 获取商户退款单号的值
+ * @return 值
+ **/
+ public function GetOut_refund_no()
+ {
+ return $this->values['out_refund_no'];
+ }
+ /**
+ * 判断商户退款单号是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_refund_noSet()
+ {
+ return array_key_exists('out_refund_no', $this->values);
+ }
+
+
+ /**
+ * 设置微信退款单号refund_id、out_refund_no、out_trade_no、transaction_id四个参数必填一个,如果同时存在优先级为:refund_id>out_refund_no>transaction_id>out_trade_no
+ * @param string $value
+ **/
+ public function SetRefund_id($value)
+ {
+ $this->values['refund_id'] = $value;
+ }
+ /**
+ * 获取微信退款单号refund_id、out_refund_no、out_trade_no、transaction_id四个参数必填一个,如果同时存在优先级为:refund_id>out_refund_no>transaction_id>out_trade_no的值
+ * @return 值
+ **/
+ public function GetRefund_id()
+ {
+ return $this->values['refund_id'];
+ }
+ /**
+ * 判断微信退款单号refund_id、out_refund_no、out_trade_no、transaction_id四个参数必填一个,如果同时存在优先级为:refund_id>out_refund_no>transaction_id>out_trade_no是否存在
+ * @return true 或 false
+ **/
+ public function IsRefund_idSet()
+ {
+ return array_key_exists('refund_id', $this->values);
+ }
+}
+
+/**
+ *
+ * 下载对账单输入对象
+ * @author widyhu
+ *
+ */
+class WxPayDownloadBill extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的终端设备号,填写此字段,只下载该设备号的对账单
+ * @param string $value
+ **/
+ public function SetDevice_info($value)
+ {
+ $this->values['device_info'] = $value;
+ }
+ /**
+ * 获取微信支付分配的终端设备号,填写此字段,只下载该设备号的对账单的值
+ * @return 值
+ **/
+ public function GetDevice_info()
+ {
+ return $this->values['device_info'];
+ }
+ /**
+ * 判断微信支付分配的终端设备号,填写此字段,只下载该设备号的对账单是否存在
+ * @return true 或 false
+ **/
+ public function IsDevice_infoSet()
+ {
+ return array_key_exists('device_info', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+
+ /**
+ * 设置下载对账单的日期,格式:20140603
+ * @param string $value
+ **/
+ public function SetBill_date($value)
+ {
+ $this->values['bill_date'] = $value;
+ }
+ /**
+ * 获取下载对账单的日期,格式:20140603的值
+ * @return 值
+ **/
+ public function GetBill_date()
+ {
+ return $this->values['bill_date'];
+ }
+ /**
+ * 判断下载对账单的日期,格式:20140603是否存在
+ * @return true 或 false
+ **/
+ public function IsBill_dateSet()
+ {
+ return array_key_exists('bill_date', $this->values);
+ }
+
+
+ /**
+ * 设置ALL,返回当日所有订单信息,默认值SUCCESS,返回当日成功支付的订单REFUND,返回当日退款订单REVOKED,已撤销的订单
+ * @param string $value
+ **/
+ public function SetBill_type($value)
+ {
+ $this->values['bill_type'] = $value;
+ }
+ /**
+ * 获取ALL,返回当日所有订单信息,默认值SUCCESS,返回当日成功支付的订单REFUND,返回当日退款订单REVOKED,已撤销的订单的值
+ * @return 值
+ **/
+ public function GetBill_type()
+ {
+ return $this->values['bill_type'];
+ }
+ /**
+ * 判断ALL,返回当日所有订单信息,默认值SUCCESS,返回当日成功支付的订单REFUND,返回当日退款订单REVOKED,已撤销的订单是否存在
+ * @return true 或 false
+ **/
+ public function IsBill_typeSet()
+ {
+ return array_key_exists('bill_type', $this->values);
+ }
+}
+
+/**
+ *
+ * 测速上报输入对象
+ * @author widyhu
+ *
+ */
+class WxPayReport extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的终端设备号,商户自定义
+ * @param string $value
+ **/
+ public function SetDevice_info($value)
+ {
+ $this->values['device_info'] = $value;
+ }
+ /**
+ * 获取微信支付分配的终端设备号,商户自定义的值
+ * @return 值
+ **/
+ public function GetDevice_info()
+ {
+ return $this->values['device_info'];
+ }
+ /**
+ * 判断微信支付分配的终端设备号,商户自定义是否存在
+ * @return true 或 false
+ **/
+ public function IsDevice_infoSet()
+ {
+ return array_key_exists('device_info', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+
+
+ /**
+ * 设置上报对应的接口的完整URL,类似:https://api.mch.weixin.qq.com/pay/unifiedorder对于被扫支付,为更好的和商户共同分析一次业务行为的整体耗时情况,对于两种接入模式,请都在门店侧对一次被扫行为进行一次单独的整体上报,上报URL指定为:https://api.mch.weixin.qq.com/pay/micropay/total关于两种接入模式具体可参考本文档章节:被扫支付商户接入模式其它接口调用仍然按照调用一次,上报一次来进行。
+ * @param string $value
+ **/
+ public function SetInterface_url($value)
+ {
+ $this->values['interface_url'] = $value;
+ }
+ /**
+ * 获取上报对应的接口的完整URL,类似:https://api.mch.weixin.qq.com/pay/unifiedorder对于被扫支付,为更好的和商户共同分析一次业务行为的整体耗时情况,对于两种接入模式,请都在门店侧对一次被扫行为进行一次单独的整体上报,上报URL指定为:https://api.mch.weixin.qq.com/pay/micropay/total关于两种接入模式具体可参考本文档章节:被扫支付商户接入模式其它接口调用仍然按照调用一次,上报一次来进行。的值
+ * @return 值
+ **/
+ public function GetInterface_url()
+ {
+ return $this->values['interface_url'];
+ }
+ /**
+ * 判断上报对应的接口的完整URL,类似:https://api.mch.weixin.qq.com/pay/unifiedorder对于被扫支付,为更好的和商户共同分析一次业务行为的整体耗时情况,对于两种接入模式,请都在门店侧对一次被扫行为进行一次单独的整体上报,上报URL指定为:https://api.mch.weixin.qq.com/pay/micropay/total关于两种接入模式具体可参考本文档章节:被扫支付商户接入模式其它接口调用仍然按照调用一次,上报一次来进行。是否存在
+ * @return true 或 false
+ **/
+ public function IsInterface_urlSet()
+ {
+ return array_key_exists('interface_url', $this->values);
+ }
+
+
+ /**
+ * 设置接口耗时情况,单位为毫秒
+ * @param string $value
+ **/
+ public function SetExecute_time_($value)
+ {
+ $this->values['execute_time_'] = $value;
+ }
+ /**
+ * 获取接口耗时情况,单位为毫秒的值
+ * @return 值
+ **/
+ public function GetExecute_time_()
+ {
+ return $this->values['execute_time_'];
+ }
+ /**
+ * 判断接口耗时情况,单位为毫秒是否存在
+ * @return true 或 false
+ **/
+ public function IsExecute_time_Set()
+ {
+ return array_key_exists('execute_time_', $this->values);
+ }
+
+
+ /**
+ * 设置SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看trade_state来判断
+ * @param string $value
+ **/
+ public function SetReturn_code($value)
+ {
+ $this->values['return_code'] = $value;
+ }
+ /**
+ * 获取SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看trade_state来判断的值
+ * @return 值
+ **/
+ public function GetReturn_code()
+ {
+ return $this->values['return_code'];
+ }
+ /**
+ * 判断SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看trade_state来判断是否存在
+ * @return true 或 false
+ **/
+ public function IsReturn_codeSet()
+ {
+ return array_key_exists('return_code', $this->values);
+ }
+
+
+ /**
+ * 设置返回信息,如非空,为错误原因签名失败参数格式校验错误
+ * @param string $value
+ **/
+ public function SetReturn_msg($value)
+ {
+ $this->values['return_msg'] = $value;
+ }
+ /**
+ * 获取返回信息,如非空,为错误原因签名失败参数格式校验错误的值
+ * @return 值
+ **/
+ public function GetReturn_msg()
+ {
+ return $this->values['return_msg'];
+ }
+ /**
+ * 判断返回信息,如非空,为错误原因签名失败参数格式校验错误是否存在
+ * @return true 或 false
+ **/
+ public function IsReturn_msgSet()
+ {
+ return array_key_exists('return_msg', $this->values);
+ }
+
+
+ /**
+ * 设置SUCCESS/FAIL
+ * @param string $value
+ **/
+ public function SetResult_code($value)
+ {
+ $this->values['result_code'] = $value;
+ }
+ /**
+ * 获取SUCCESS/FAIL的值
+ * @return 值
+ **/
+ public function GetResult_code()
+ {
+ return $this->values['result_code'];
+ }
+ /**
+ * 判断SUCCESS/FAIL是否存在
+ * @return true 或 false
+ **/
+ public function IsResult_codeSet()
+ {
+ return array_key_exists('result_code', $this->values);
+ }
+
+
+ /**
+ * 设置ORDERNOTEXIST—订单不存在SYSTEMERROR—系统错误
+ * @param string $value
+ **/
+ public function SetErr_code($value)
+ {
+ $this->values['err_code'] = $value;
+ }
+ /**
+ * 获取ORDERNOTEXIST—订单不存在SYSTEMERROR—系统错误的值
+ * @return 值
+ **/
+ public function GetErr_code()
+ {
+ return $this->values['err_code'];
+ }
+ /**
+ * 判断ORDERNOTEXIST—订单不存在SYSTEMERROR—系统错误是否存在
+ * @return true 或 false
+ **/
+ public function IsErr_codeSet()
+ {
+ return array_key_exists('err_code', $this->values);
+ }
+
+
+ /**
+ * 设置结果信息描述
+ * @param string $value
+ **/
+ public function SetErr_code_des($value)
+ {
+ $this->values['err_code_des'] = $value;
+ }
+ /**
+ * 获取结果信息描述的值
+ * @return 值
+ **/
+ public function GetErr_code_des()
+ {
+ return $this->values['err_code_des'];
+ }
+ /**
+ * 判断结果信息描述是否存在
+ * @return true 或 false
+ **/
+ public function IsErr_code_desSet()
+ {
+ return array_key_exists('err_code_des', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的订单号,商户可以在上报时提供相关商户订单号方便微信支付更好的提高服务质量。
+ * @param string $value
+ **/
+ public function SetOut_trade_no($value)
+ {
+ $this->values['out_trade_no'] = $value;
+ }
+ /**
+ * 获取商户系统内部的订单号,商户可以在上报时提供相关商户订单号方便微信支付更好的提高服务质量。 的值
+ * @return 值
+ **/
+ public function GetOut_trade_no()
+ {
+ return $this->values['out_trade_no'];
+ }
+ /**
+ * 判断商户系统内部的订单号,商户可以在上报时提供相关商户订单号方便微信支付更好的提高服务质量。 是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_trade_noSet()
+ {
+ return array_key_exists('out_trade_no', $this->values);
+ }
+
+
+ /**
+ * 设置发起接口调用时的机器IP
+ * @param string $value
+ **/
+ public function SetUser_ip($value)
+ {
+ $this->values['user_ip'] = $value;
+ }
+ /**
+ * 获取发起接口调用时的机器IP 的值
+ * @return 值
+ **/
+ public function GetUser_ip()
+ {
+ return $this->values['user_ip'];
+ }
+ /**
+ * 判断发起接口调用时的机器IP 是否存在
+ * @return true 或 false
+ **/
+ public function IsUser_ipSet()
+ {
+ return array_key_exists('user_ip', $this->values);
+ }
+
+
+ /**
+ * 设置系统时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则
+ * @param string $value
+ **/
+ public function SetTime($value)
+ {
+ $this->values['time'] = $value;
+ }
+ /**
+ * 获取系统时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则的值
+ * @return 值
+ **/
+ public function GetTime()
+ {
+ return $this->values['time'];
+ }
+ /**
+ * 判断系统时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则是否存在
+ * @return true 或 false
+ **/
+ public function IsTimeSet()
+ {
+ return array_key_exists('time', $this->values);
+ }
+}
+
+/**
+ *
+ * 短链转换输入对象
+ * @author widyhu
+ *
+ */
+class WxPayShortUrl extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置需要转换的URL,签名用原串,传输需URL encode
+ * @param string $value
+ **/
+ public function SetLong_url($value)
+ {
+ $this->values['long_url'] = $value;
+ }
+ /**
+ * 获取需要转换的URL,签名用原串,传输需URL encode的值
+ * @return 值
+ **/
+ public function GetLong_url()
+ {
+ return $this->values['long_url'];
+ }
+ /**
+ * 判断需要转换的URL,签名用原串,传输需URL encode是否存在
+ * @return true 或 false
+ **/
+ public function IsLong_urlSet()
+ {
+ return array_key_exists('long_url', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+}
+
+/**
+ *
+ * 提交被扫输入对象
+ * @author widyhu
+ *
+ */
+class WxPayMicroPay extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置终端设备号(商户自定义,如门店编号)
+ * @param string $value
+ **/
+ public function SetDevice_info($value)
+ {
+ $this->values['device_info'] = $value;
+ }
+ /**
+ * 获取终端设备号(商户自定义,如门店编号)的值
+ * @return 值
+ **/
+ public function GetDevice_info()
+ {
+ return $this->values['device_info'];
+ }
+ /**
+ * 判断终端设备号(商户自定义,如门店编号)是否存在
+ * @return true 或 false
+ **/
+ public function IsDevice_infoSet()
+ {
+ return array_key_exists('device_info', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+
+ /**
+ * 设置商品或支付单简要描述
+ * @param string $value
+ **/
+ public function SetBody($value)
+ {
+ $this->values['body'] = $value;
+ }
+ /**
+ * 获取商品或支付单简要描述的值
+ * @return 值
+ **/
+ public function GetBody()
+ {
+ return $this->values['body'];
+ }
+ /**
+ * 判断商品或支付单简要描述是否存在
+ * @return true 或 false
+ **/
+ public function IsBodySet()
+ {
+ return array_key_exists('body', $this->values);
+ }
+
+
+ /**
+ * 设置商品名称明细列表
+ * @param string $value
+ **/
+ public function SetDetail($value)
+ {
+ $this->values['detail'] = $value;
+ }
+ /**
+ * 获取商品名称明细列表的值
+ * @return 值
+ **/
+ public function GetDetail()
+ {
+ return $this->values['detail'];
+ }
+ /**
+ * 判断商品名称明细列表是否存在
+ * @return true 或 false
+ **/
+ public function IsDetailSet()
+ {
+ return array_key_exists('detail', $this->values);
+ }
+
+
+ /**
+ * 设置附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
+ * @param string $value
+ **/
+ public function SetAttach($value)
+ {
+ $this->values['attach'] = $value;
+ }
+ /**
+ * 获取附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据的值
+ * @return 值
+ **/
+ public function GetAttach()
+ {
+ return $this->values['attach'];
+ }
+ /**
+ * 判断附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据是否存在
+ * @return true 或 false
+ **/
+ public function IsAttachSet()
+ {
+ return array_key_exists('attach', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号
+ * @param string $value
+ **/
+ public function SetOut_trade_no($value)
+ {
+ $this->values['out_trade_no'] = $value;
+ }
+ /**
+ * 获取商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号的值
+ * @return 值
+ **/
+ public function GetOut_trade_no()
+ {
+ return $this->values['out_trade_no'];
+ }
+ /**
+ * 判断商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_trade_noSet()
+ {
+ return array_key_exists('out_trade_no', $this->values);
+ }
+
+
+ /**
+ * 设置订单总金额,单位为分,只能为整数,详见支付金额
+ * @param string $value
+ **/
+ public function SetTotal_fee($value)
+ {
+ $this->values['total_fee'] = $value;
+ }
+ /**
+ * 获取订单总金额,单位为分,只能为整数,详见支付金额的值
+ * @return 值
+ **/
+ public function GetTotal_fee()
+ {
+ return $this->values['total_fee'];
+ }
+ /**
+ * 判断订单总金额,单位为分,只能为整数,详见支付金额是否存在
+ * @return true 或 false
+ **/
+ public function IsTotal_feeSet()
+ {
+ return array_key_exists('total_fee', $this->values);
+ }
+
+
+ /**
+ * 设置符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型
+ * @param string $value
+ **/
+ public function SetFee_type($value)
+ {
+ $this->values['fee_type'] = $value;
+ }
+ /**
+ * 获取符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型的值
+ * @return 值
+ **/
+ public function GetFee_type()
+ {
+ return $this->values['fee_type'];
+ }
+ /**
+ * 判断符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型是否存在
+ * @return true 或 false
+ **/
+ public function IsFee_typeSet()
+ {
+ return array_key_exists('fee_type', $this->values);
+ }
+
+
+ /**
+ * 设置调用微信支付API的机器IP
+ * @param string $value
+ **/
+ public function SetSpbill_create_ip($value)
+ {
+ $this->values['spbill_create_ip'] = $value;
+ }
+ /**
+ * 获取调用微信支付API的机器IP 的值
+ * @return 值
+ **/
+ public function GetSpbill_create_ip()
+ {
+ return $this->values['spbill_create_ip'];
+ }
+ /**
+ * 判断调用微信支付API的机器IP 是否存在
+ * @return true 或 false
+ **/
+ public function IsSpbill_create_ipSet()
+ {
+ return array_key_exists('spbill_create_ip', $this->values);
+ }
+
+
+ /**
+ * 设置订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。详见时间规则
+ * @param string $value
+ **/
+ public function SetTime_start($value)
+ {
+ $this->values['time_start'] = $value;
+ }
+ /**
+ * 获取订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。详见时间规则的值
+ * @return 值
+ **/
+ public function GetTime_start()
+ {
+ return $this->values['time_start'];
+ }
+ /**
+ * 判断订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。详见时间规则是否存在
+ * @return true 或 false
+ **/
+ public function IsTime_startSet()
+ {
+ return array_key_exists('time_start', $this->values);
+ }
+
+
+ /**
+ * 设置订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。详见时间规则
+ * @param string $value
+ **/
+ public function SetTime_expire($value)
+ {
+ $this->values['time_expire'] = $value;
+ }
+ /**
+ * 获取订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。详见时间规则的值
+ * @return 值
+ **/
+ public function GetTime_expire()
+ {
+ return $this->values['time_expire'];
+ }
+ /**
+ * 判断订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。详见时间规则是否存在
+ * @return true 或 false
+ **/
+ public function IsTime_expireSet()
+ {
+ return array_key_exists('time_expire', $this->values);
+ }
+
+
+ /**
+ * 设置商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠
+ * @param string $value
+ **/
+ public function SetGoods_tag($value)
+ {
+ $this->values['goods_tag'] = $value;
+ }
+ /**
+ * 获取商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠的值
+ * @return 值
+ **/
+ public function GetGoods_tag()
+ {
+ return $this->values['goods_tag'];
+ }
+ /**
+ * 判断商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠是否存在
+ * @return true 或 false
+ **/
+ public function IsGoods_tagSet()
+ {
+ return array_key_exists('goods_tag', $this->values);
+ }
+
+
+ /**
+ * 设置扫码支付授权码,设备读取用户微信中的条码或者二维码信息
+ * @param string $value
+ **/
+ public function SetAuth_code($value)
+ {
+ $this->values['auth_code'] = $value;
+ }
+ /**
+ * 获取扫码支付授权码,设备读取用户微信中的条码或者二维码信息的值
+ * @return 值
+ **/
+ public function GetAuth_code()
+ {
+ return $this->values['auth_code'];
+ }
+ /**
+ * 判断扫码支付授权码,设备读取用户微信中的条码或者二维码信息是否存在
+ * @return true 或 false
+ **/
+ public function IsAuth_codeSet()
+ {
+ return array_key_exists('auth_code', $this->values);
+ }
+}
+
+/**
+ *
+ * 撤销输入对象
+ * @author widyhu
+ *
+ */
+class WxPayReverse extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+
+ /**
+ * 设置微信的订单号,优先使用
+ * @param string $value
+ **/
+ public function SetTransaction_id($value)
+ {
+ $this->values['transaction_id'] = $value;
+ }
+ /**
+ * 获取微信的订单号,优先使用的值
+ * @return 值
+ **/
+ public function GetTransaction_id()
+ {
+ return $this->values['transaction_id'];
+ }
+ /**
+ * 判断微信的订单号,优先使用是否存在
+ * @return true 或 false
+ **/
+ public function IsTransaction_idSet()
+ {
+ return array_key_exists('transaction_id', $this->values);
+ }
+
+
+ /**
+ * 设置商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no
+ * @param string $value
+ **/
+ public function SetOut_trade_no($value)
+ {
+ $this->values['out_trade_no'] = $value;
+ }
+ /**
+ * 获取商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no的值
+ * @return 值
+ **/
+ public function GetOut_trade_no()
+ {
+ return $this->values['out_trade_no'];
+ }
+ /**
+ * 判断商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no是否存在
+ * @return true 或 false
+ **/
+ public function IsOut_trade_noSet()
+ {
+ return array_key_exists('out_trade_no', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+}
+
+/**
+ *
+ * 提交JSAPI输入对象
+ * @author widyhu
+ *
+ */
+class WxPayJsApiPay extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appId'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appId'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appId', $this->values);
+ }
+
+
+ /**
+ * 设置支付时间戳
+ * @param string $value
+ **/
+ public function SetTimeStamp($value)
+ {
+ $this->values['timeStamp'] = $value;
+ }
+ /**
+ * 获取支付时间戳的值
+ * @return 值
+ **/
+ public function GetTimeStamp()
+ {
+ return $this->values['timeStamp'];
+ }
+ /**
+ * 判断支付时间戳是否存在
+ * @return true 或 false
+ **/
+ public function IsTimeStampSet()
+ {
+ return array_key_exists('timeStamp', $this->values);
+ }
+
+ /**
+ * 随机字符串
+ * @param string $value
+ **/
+ public function SetNonceStr($value)
+ {
+ $this->values['nonceStr'] = $value;
+ }
+ /**
+ * 获取notify随机字符串值
+ * @return 值
+ **/
+ public function GetReturn_code()
+ {
+ return $this->values['nonceStr'];
+ }
+ /**
+ * 判断随机字符串是否存在
+ * @return true 或 false
+ **/
+ public function IsReturn_codeSet()
+ {
+ return array_key_exists('nonceStr', $this->values);
+ }
+
+
+ /**
+ * 设置订单详情扩展字符串
+ * @param string $value
+ **/
+ public function SetPackage($value)
+ {
+ $this->values['package'] = $value;
+ }
+ /**
+ * 获取订单详情扩展字符串的值
+ * @return 值
+ **/
+ public function GetPackage()
+ {
+ return $this->values['package'];
+ }
+ /**
+ * 判断订单详情扩展字符串是否存在
+ * @return true 或 false
+ **/
+ public function IsPackageSet()
+ {
+ return array_key_exists('package', $this->values);
+ }
+
+ /**
+ * 设置签名方式
+ * @param string $value
+ **/
+ public function SetSignType($value)
+ {
+ $this->values['signType'] = $value;
+ }
+ /**
+ * 获取签名方式
+ * @return 值
+ **/
+ public function GetSignType()
+ {
+ return $this->values['signType'];
+ }
+ /**
+ * 判断签名方式是否存在
+ * @return true 或 false
+ **/
+ public function IsSignTypeSet()
+ {
+ return array_key_exists('signType', $this->values);
+ }
+
+ /**
+ * 设置签名方式
+ * @param string $value
+ **/
+ public function SetPaySign($value)
+ {
+ $this->values['paySign'] = $value;
+ }
+ /**
+ * 获取签名方式
+ * @return 值
+ **/
+ public function GetPaySign()
+ {
+ return $this->values['paySign'];
+ }
+ /**
+ * 判断签名方式是否存在
+ * @return true 或 false
+ **/
+ public function IsPaySignSet()
+ {
+ return array_key_exists('paySign', $this->values);
+ }
+}
+
+/**
+ *
+ * 扫码支付模式一生成二维码参数
+ * @author widyhu
+ *
+ */
+class WxPayBizPayUrl extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mch_id'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mch_id'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mch_id', $this->values);
+ }
+
+ /**
+ * 设置支付时间戳
+ * @param string $value
+ **/
+ public function SetTime_stamp($value)
+ {
+ $this->values['time_stamp'] = $value;
+ }
+ /**
+ * 获取支付时间戳的值
+ * @return 值
+ **/
+ public function GetTime_stamp()
+ {
+ return $this->values['time_stamp'];
+ }
+ /**
+ * 判断支付时间戳是否存在
+ * @return true 或 false
+ **/
+ public function IsTime_stampSet()
+ {
+ return array_key_exists('time_stamp', $this->values);
+ }
+
+ /**
+ * 设置随机字符串
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+
+ /**
+ * 设置商品ID
+ * @param string $value
+ **/
+ public function SetProduct_id($value)
+ {
+ $this->values['product_id'] = $value;
+ }
+ /**
+ * 获取商品ID的值
+ * @return 值
+ **/
+ public function GetProduct_id()
+ {
+ return $this->values['product_id'];
+ }
+ /**
+ * 判断商品ID是否存在
+ * @return true 或 false
+ **/
+ public function IsProduct_idSet()
+ {
+ return array_key_exists('product_id', $this->values);
+ }
+}
+
+
+/**
+ *
+ * 提交企业付款输入对象
+ * @author widyhu
+ *
+ */
+class WxPayTransfer extends WxPayDataBase
+{
+ /**
+ * 设置微信分配的公众账号ID
+ * @param string $value
+ **/
+ public function SetAppid($value)
+ {
+ $this->values['mch_appid'] = $value;
+ }
+ /**
+ * 获取微信分配的公众账号ID的值
+ * @return 值
+ **/
+ public function GetAppid()
+ {
+ return $this->values['mch_appid'];
+ }
+ /**
+ * 判断微信分配的公众账号ID是否存在
+ * @return true 或 false
+ **/
+ public function IsAppidSet()
+ {
+ return array_key_exists('mch_appid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的商户号
+ * @param string $value
+ **/
+ public function SetMch_id($value)
+ {
+ $this->values['mchid'] = $value;
+ }
+ /**
+ * 获取微信支付分配的商户号的值
+ * @return 值
+ **/
+ public function GetMch_id()
+ {
+ return $this->values['mchid'];
+ }
+ /**
+ * 判断微信支付分配的商户号是否存在
+ * @return true 或 false
+ **/
+ public function IsMch_idSet()
+ {
+ return array_key_exists('mchid', $this->values);
+ }
+
+
+ /**
+ * 设置微信支付分配的终端设备号,与下单一致
+ * @param string $value
+ **/
+ public function SetDevice_info($value)
+ {
+ $this->values['device_info'] = $value;
+ }
+ /**
+ * 获取微信支付分配的终端设备号,与下单一致的值
+ * @return 值
+ **/
+ public function GetDevice_info()
+ {
+ return $this->values['device_info'];
+ }
+ /**
+ * 判断微信支付分配的终端设备号,与下单一致是否存在
+ * @return true 或 false
+ **/
+ public function IsDevice_infoSet()
+ {
+ return array_key_exists('device_info', $this->values);
+ }
+
+
+ /**
+ * 设置随机字符串,不长于32位。推荐随机数生成算法
+ * @param string $value
+ **/
+ public function SetNonce_str($value)
+ {
+ $this->values['nonce_str'] = $value;
+ }
+ /**
+ * 获取随机字符串,不长于32位。推荐随机数生成算法的值
+ * @return 值
+ **/
+ public function GetNonce_str()
+ {
+ return $this->values['nonce_str'];
+ }
+ /**
+ * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
+ * @return true 或 false
+ **/
+ public function IsNonce_strSet()
+ {
+ return array_key_exists('nonce_str', $this->values);
+ }
+
+
+ /**
+ * 设置商户订单号,需保持唯一性
+ * @param string $value
+ **/
+ public function SetPartner_trade_no($value)
+ {
+ $this->values['partner_trade_no'] = $value;
+ }
+ /**
+ * 获取商户订单号,需保持唯一性
+ * @return 值
+ **/
+ public function GetPartner_trade_no()
+ {
+ return $this->values['partner_trade_no'];
+ }
+ /**
+ * 判断商户订单号,需保持唯一性
+ * @return true 或 false
+ **/
+ public function IsPartner_trade_noSet()
+ {
+ return array_key_exists('partner_trade_no', $this->values);
+ }
+
+
+ /**
+ * 设置商户appid下,某用户的openid
+ * @param string $value
+ **/
+ public function SetOpenid($value)
+ {
+ $this->values['openid'] = $value;
+ }
+ /**
+ * 获取商户appid下,某用户的openid
+ * @return 值
+ **/
+ public function GetOpenid()
+ {
+ return $this->values['openid'];
+ }
+ /**
+ * 判断商户appid下,某用户的openid
+ * @return true 或 false
+ **/
+ public function IsOpenidSet()
+ {
+ return array_key_exists('openid', $this->values);
+ }
+
+
+ /**
+ * 设置是否校验真实姓名,NO_CHECK:不校验真实姓名 FORCE_CHECK:强校验真实姓名
+ * @param string $value
+ **/
+ public function SetCheck_name($value)
+ {
+ $this->values['check_name'] = $value;
+ }
+ /**
+ * 获取是否校验真实姓名,NO_CHECK:不校验真实姓名 FORCE_CHECK:强校验真实姓名
+ * @return 值
+ **/
+ public function GetCheck_name()
+ {
+ return $this->values['check_name'];
+ }
+ /**
+ * 判断是否校验真实姓名
+ * @return true 或 false
+ **/
+ public function IsCheck_nameSet()
+ {
+ return array_key_exists('check_name', $this->values);
+ }
+
+
+ /**
+ * 设置收款用户真实姓名。如果check_name设置为FORCE_CHECK,则必填用户真实姓名
+ * @param string $value
+ **/
+ public function SetRe_user_name($value)
+ {
+ $this->values['re_user_name'] = $value;
+ }
+ /**
+ * 获取收款用户真实姓名
+ * @return 值
+ **/
+ public function GetRe_user_name()
+ {
+ return $this->values['re_user_name'];
+ }
+ /**
+ * 判断收款用户真实姓名
+ * @return true 或 false
+ **/
+ public function IsRe_user_nameSet()
+ {
+ return array_key_exists('re_user_name', $this->values);
+ }
+
+
+ /**
+ * 设置企业付款金额,单位为分
+ * @param string $value
+ **/
+ public function SetAmount($value)
+ {
+ $this->values['amount'] = $value;
+ }
+ /**
+ * 获取企业付款金额,单位为分
+ * @return 值
+ **/
+ public function GetAmount()
+ {
+ return $this->values['amount'];
+ }
+ /**
+ * 判断企业付款金额,单位为分
+ * @return true 或 false
+ **/
+ public function IsAmountSet()
+ {
+ return array_key_exists('amount', $this->values);
+ }
+
+
+ /**
+ * 设置企业付款操作说明信息。必填。
+ * @param string $value
+ **/
+ public function SetDesc($value)
+ {
+ $this->values['desc'] = $value;
+ }
+ /**
+ * 获取企业付款操作说明信息。必填。
+ * @return 值
+ **/
+ public function GetDesc()
+ {
+ return $this->values['desc'];
+ }
+ /**
+ * 判断企业付款操作说明信息。必填。
+ * @return true 或 false
+ **/
+ public function IsDescSet()
+ {
+ return array_key_exists('desc', $this->values);
+ }
+
+
+ /**
+ * 设置调用微信支付API的机器IP
+ * @param string $value
+ **/
+ public function SetSpbill_create_ip($value)
+ {
+ $this->values['spbill_create_ip'] = $value;
+ }
+ /**
+ * 获取调用微信支付API的机器IP 的值
+ * @return 值
+ **/
+ public function GetSpbill_create_ip()
+ {
+ return $this->values['spbill_create_ip'];
+ }
+ /**
+ * 判断调用微信支付API的机器IP 是否存在
+ * @return true 或 false
+ **/
+ public function IsSpbill_create_ipSet()
+ {
+ return array_key_exists('spbill_create_ip', $this->values);
+ }
+}
\ No newline at end of file
diff --git a/plugins/wxpaysl/inc/WxPay.Exception.php b/plugins/wxpaysl/inc/WxPay.Exception.php
new file mode 100644
index 0000000..98c91e5
--- /dev/null
+++ b/plugins/wxpaysl/inc/WxPay.Exception.php
@@ -0,0 +1,13 @@
+getMessage();
+ }
+}
diff --git a/plugins/wxpaysl/inc/WxPay.JsApiPay.php b/plugins/wxpaysl/inc/WxPay.JsApiPay.php
new file mode 100644
index 0000000..d7dd862
--- /dev/null
+++ b/plugins/wxpaysl/inc/WxPay.JsApiPay.php
@@ -0,0 +1,206 @@
+__CreateOauthUrlForCode($baseUrl);
+ Header("Location: $url");
+ exit();
+ } else {
+ //获取code码,以获取openid
+ $code = $_GET['code'];
+ $openid = $this->GetOpenidFromMp($code);
+ return $openid;
+ }
+ }
+
+ /**
+ *
+ * 获取jsapi支付的参数
+ * @param array $UnifiedOrderResult 统一支付接口返回的数据
+ * @throws WxPayException
+ *
+ * @return json数据,可直接填入js函数作为参数
+ */
+ public function GetJsApiParameters($UnifiedOrderResult)
+ {
+ if(!array_key_exists("appid", $UnifiedOrderResult)
+ || !array_key_exists("prepay_id", $UnifiedOrderResult)
+ || $UnifiedOrderResult['prepay_id'] == "")
+ {
+ throw new WxPayException("参数错误");
+ }
+ $jsapi = new WxPayJsApiPay();
+ $jsapi->SetAppid($UnifiedOrderResult["appid"]);
+ $timeStamp = time();
+ $jsapi->SetTimeStamp("$timeStamp");
+ $jsapi->SetNonceStr(WxPayApi::getNonceStr());
+ $jsapi->SetPackage("prepay_id=" . $UnifiedOrderResult['prepay_id']);
+ $jsapi->SetSignType("MD5");
+ $jsapi->SetPaySign($jsapi->MakeSign());
+ $parameters = json_encode($jsapi->GetValues());
+ return $parameters;
+ }
+
+ /**
+ *
+ * 通过code从工作平台获取openid机器access_token
+ * @param string $code 微信跳转回来带上的code
+ *
+ * @return openid
+ */
+ public function GetOpenidFromMp($code)
+ {
+ $url = $this->__CreateOauthUrlForOpenid($code);
+ //初始化curl
+ $ch = curl_init();
+ //设置超时
+ curl_setopt($ch, CURLOPT_TIMEOUT, $this->curl_timeout);
+ curl_setopt($ch, CURLOPT_URL, $url);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,FALSE);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,FALSE);
+ curl_setopt($ch, CURLOPT_HEADER, FALSE);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
+ if(WxPayConfig::CURL_PROXY_HOST != "0.0.0.0"
+ && WxPayConfig::CURL_PROXY_PORT != 0){
+ curl_setopt($ch,CURLOPT_PROXY, WxPayConfig::CURL_PROXY_HOST);
+ curl_setopt($ch,CURLOPT_PROXYPORT, WxPayConfig::CURL_PROXY_PORT);
+ }
+ //运行curl,结果以jason形式返回
+ $res = curl_exec($ch);
+ curl_close($ch);
+ //取出openid
+ $data = json_decode($res,true);
+ $this->data = $data;
+ $openid = $data['openid'];
+ return $openid;
+ }
+
+ /**
+ *
+ * 拼接签名字符串
+ * @param array $urlObj
+ *
+ * @return 返回已经拼接好的字符串
+ */
+ private function ToUrlParams($urlObj)
+ {
+ $buff = "";
+ foreach ($urlObj as $k => $v)
+ {
+ if($k != "sign"){
+ $buff .= $k . "=" . $v . "&";
+ }
+ }
+
+ $buff = trim($buff, "&");
+ return $buff;
+ }
+
+ /**
+ *
+ * 获取地址js参数
+ *
+ * @return 获取共享收货地址js函数需要的参数,json格式可以直接做参数使用
+ */
+ public function GetEditAddressParameters()
+ {
+ $getData = $this->data;
+ $data = array();
+ $data["appid"] = WxPayConfig::APPID;
+ $data["url"] = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
+ $time = time();
+ $data["timestamp"] = "$time";
+ $data["noncestr"] = "1234568";
+ $data["accesstoken"] = $getData["access_token"];
+ ksort($data);
+ $params = $this->ToUrlParams($data);
+ $addrSign = sha1($params);
+
+ $afterData = array(
+ "addrSign" => $addrSign,
+ "signType" => "sha1",
+ "scope" => "jsapi_address",
+ "appId" => WxPayConfig::APPID,
+ "timeStamp" => $data["timestamp"],
+ "nonceStr" => $data["noncestr"]
+ );
+ $parameters = json_encode($afterData);
+ return $parameters;
+ }
+
+ /**
+ *
+ * 构造获取code的url连接
+ * @param string $redirectUrl 微信服务器回跳的url,需要url编码
+ *
+ * @return 返回构造好的url
+ */
+ private function __CreateOauthUrlForCode($redirectUrl)
+ {
+ $urlObj["appid"] = WxPayConfig::APPID;
+ $urlObj["redirect_uri"] = "$redirectUrl";
+ $urlObj["response_type"] = "code";
+ $urlObj["scope"] = "snsapi_base";
+ $urlObj["state"] = "STATE"."#wechat_redirect";
+ $bizString = $this->ToUrlParams($urlObj);
+ return "https://open.weixin.qq.com/connect/oauth2/authorize?".$bizString;
+ }
+
+ /**
+ *
+ * 构造获取open和access_toke的url地址
+ * @param string $code,微信跳转带回的code
+ *
+ * @return 请求的url
+ */
+ private function __CreateOauthUrlForOpenid($code)
+ {
+ $urlObj["appid"] = WxPayConfig::APPID;
+ $urlObj["secret"] = WxPayConfig::APPSECRET;
+ $urlObj["code"] = $code;
+ $urlObj["grant_type"] = "authorization_code";
+ $bizString = $this->ToUrlParams($urlObj);
+ return "https://api.weixin.qq.com/sns/oauth2/access_token?".$bizString;
+ }
+}
\ No newline at end of file
diff --git a/plugins/wxpaysl/inc/WxPay.NativePay.php b/plugins/wxpaysl/inc/WxPay.NativePay.php
new file mode 100644
index 0000000..f4e0cf8
--- /dev/null
+++ b/plugins/wxpaysl/inc/WxPay.NativePay.php
@@ -0,0 +1,52 @@
+SetProduct_id($productId);
+ $values = WxpayApi::bizpayurl($biz);
+ $url = "weixin://wxpay/bizpayurl?" . $this->ToUrlParams($values);
+ return $url;
+ }
+
+ /**
+ *
+ * 参数数组转换为url参数
+ * @param array $urlObj
+ */
+ private function ToUrlParams($urlObj)
+ {
+ $buff = "";
+ foreach ($urlObj as $k => $v)
+ {
+ $buff .= $k . "=" . $v . "&";
+ }
+
+ $buff = trim($buff, "&");
+ return $buff;
+ }
+
+ /**
+ *
+ * 生成直接支付url,支付url有效期为2小时,模式二
+ * @param UnifiedOrderInput $input
+ */
+ public function GetPayUrl($input)
+ {
+ $result = WxPayApi::unifiedOrder($input);
+ return $result;
+ }
+}
\ No newline at end of file
diff --git a/plugins/wxpaysl/inc/WxPay.Notify.php b/plugins/wxpaysl/inc/WxPay.Notify.php
new file mode 100644
index 0000000..31e0440
--- /dev/null
+++ b/plugins/wxpaysl/inc/WxPay.Notify.php
@@ -0,0 +1,84 @@
+SetReturn_code("FAIL");
+ $this->SetReturn_msg($msg);
+ $this->ReplyNotify(false);
+ return;
+ } else {
+ //该分支在成功回调到NotifyCallBack方法,处理完成之后流程
+ $this->SetReturn_code("SUCCESS");
+ $this->SetReturn_msg("OK");
+ }
+ $this->ReplyNotify($needSign);
+ }
+
+ /**
+ *
+ * 回调方法入口,子类可重写该方法
+ * 注意:
+ * 1、微信回调超时时间为2s,建议用户使用异步处理流程,确认成功之后立刻回复微信服务器
+ * 2、微信服务器在调用失败或者接到回包为非确认包的时候,会发起重试,需确保你的回调是可以重入
+ * @param array $data 回调解释出的参数
+ * @param string $msg 如果回调处理失败,可以将错误信息输出到该方法
+ * @return true回调出来完成不需要继续回调,false回调处理未完成需要继续回调
+ */
+ public function NotifyProcess($data, &$msg)
+ {
+ //TODO 用户基础该类之后需要重写该方法,成功的时候返回true,失败返回false
+ }
+
+ /**
+ *
+ * notify回调方法,该方法中需要赋值需要输出的参数,不可重写
+ * @param array $data
+ * @return true回调出来完成不需要继续回调,false回调处理未完成需要继续回调
+ */
+ final public function NotifyCallBack($data)
+ {
+ $msg = "OK";
+ $result = $this->NotifyProcess($data, $msg);
+
+ if($result == true){
+ $this->SetReturn_code("SUCCESS");
+ $this->SetReturn_msg("OK");
+ } else {
+ $this->SetReturn_code("FAIL");
+ $this->SetReturn_msg($msg);
+ }
+ return $result;
+ }
+
+ /**
+ *
+ * 回复通知
+ * @param bool $needSign 是否需要签名输出
+ */
+ final private function ReplyNotify($needSign = true)
+ {
+ //如果需要签名
+ if($needSign == true &&
+ $this->GetReturn_code($return_code) == "SUCCESS")
+ {
+ $this->SetSign();
+ }
+ WxpayApi::replyNotify($this->ToXml());
+ }
+}
\ No newline at end of file
diff --git a/plugins/wxpaysl/jspay.php b/plugins/wxpaysl/jspay.php
new file mode 100644
index 0000000..76cc347
--- /dev/null
+++ b/plugins/wxpaysl/jspay.php
@@ -0,0 +1,131 @@
+GetOpenid();
+if(!$openId)sysmsg('OpenId获取失败');
+$DB->query("update `pre_order` set `buyer` ='$openId' where `trade_no`='".TRADE_NO."'");
+
+//②、统一下单
+$input = new WxPayUnifiedOrder();
+$input->SetBody($ordername);
+$input->SetOut_trade_no(TRADE_NO);
+$input->SetTotal_fee(strval($order['money']*100));
+$input->SetTime_start(date("YmdHis"));
+$input->SetTime_expire(date("YmdHis", time() + 600));
+$input->SetNotify_url($conf['localurl'].'pay/wxpaysl/notify/'.TRADE_NO.'/');
+$input->SetTrade_type("JSAPI");
+$input->SetProduct_id("01001");
+$input->SetOpenid($openId);
+$order = WxPayApi::unifiedOrder($input);
+
+if($order["result_code"]=='SUCCESS'){
+ $jsApiParameters = $tools->GetJsApiParameters($order);
+}else{
+ sysmsg('微信支付下单失败!['.$order["return_code"].'] '.$order["return_msg"].'['.$order["err_code"].'] '.$order["err_code_des"]);
+}
+$_SESSION[$trade_no.'_wxpay'] = $jsApiParameters;
+}
+
+if($_GET['d']==1){
+ $redirect_url='data.backurl';
+}else{
+ $redirect_url='\'/pay/wxpay/ok/'.TRADE_NO.'/\'';
+}
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/wxpaysl/notify.php b/plugins/wxpaysl/notify.php
new file mode 100644
index 0000000..a6e8790
--- /dev/null
+++ b/plugins/wxpaysl/notify.php
@@ -0,0 +1,71 @@
+SetTransaction_id($transaction_id);
+ $result = WxPayApi::orderQuery($input);
+ //Log::DEBUG("query:" . json_encode($result));
+ if(array_key_exists("return_code", $result)
+ && array_key_exists("result_code", $result)
+ && $result["return_code"] == "SUCCESS"
+ && $result["result_code"] == "SUCCESS")
+ {
+ return true;
+ }
+ return false;
+ }
+
+ //重写回调处理函数
+ public function NotifyProcess($data, &$msg)
+ {
+ //file_put_contents('log.txt',"call back:" . json_encode($data));
+ $notfiyOutput = array();
+
+ if(!array_key_exists("transaction_id", $data)){
+ $msg = "输入参数不正确";
+ return false;
+ }
+ //查询订单,判断订单真实性
+ if(!$this->Queryorder($data["transaction_id"])){
+ $msg = "订单查询失败";
+ return false;
+ }
+ global $DB,$date,$order;
+ if($data['return_code']=='SUCCESS'){
+ if($data['result_code']=='SUCCESS'){
+ if($data['out_trade_no'] == TRADE_NO && $data['total_fee']==strval($order['money']*100) && $order['status']==0){
+ if($DB->exec("update `pre_order` set `status` ='1' where `trade_no`='".TRADE_NO."'")){
+ $DB->exec("update `pre_order` set `api_trade_no` ='{$data['transaction_id']}',`endtime` ='$date',`buyer` ='{$data['openid']}',`date`=NOW() where `trade_no`='".TRADE_NO."'");
+ processOrder($order);
+ }
+ return true;
+ }else{
+ $msg='该订单已经处理';
+ return true;
+ }
+ }else{
+ $msg='['.$data['err_code'].']'.$data['err_code_des'];
+ return false;
+ }
+ }else{
+ $msg='['.$data['return_code'].']'.$data['return_msg'];
+ return false;
+ }
+ return true;
+ }
+}
+
+//Log::DEBUG("begin notify");
+$notify = new PayNotifyCallBack();
+$notify->Handle(false);
diff --git a/plugins/wxpaysl/ok.php b/plugins/wxpaysl/ok.php
new file mode 100644
index 0000000..dea8a19
--- /dev/null
+++ b/plugins/wxpaysl/ok.php
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/wxpaysl/qrcode.php b/plugins/wxpaysl/qrcode.php
new file mode 100644
index 0000000..2920e02
--- /dev/null
+++ b/plugins/wxpaysl/qrcode.php
@@ -0,0 +1,140 @@
+SetBody($ordername);
+$input->SetOut_trade_no(TRADE_NO);
+$input->SetTotal_fee(strval($order['money']*100));
+$input->SetSpbill_create_ip($clientip);
+$input->SetTime_start(date("YmdHis"));
+$input->SetTime_expire(date("YmdHis", time() + 600));
+$input->SetNotify_url($conf['localurl'].'pay/wxpaysl/notify/'.TRADE_NO.'/');
+$input->SetTrade_type("NATIVE");
+$result = $notify->GetPayUrl($input);
+if($result["result_code"]=='SUCCESS'){
+ $code_url=$result['code_url'];
+}elseif(isset($result["err_code"])){
+ sysmsg('微信支付下单失败!['.$result["err_code"].'] '.$result["err_code_des"]);
+}else{
+ sysmsg('微信支付下单失败!['.$result["return_code"].'] '.$result["return_msg"]);
+}
+
+?>
+
+
+
+
+
+
+微信安全支付 -
+
+
+
+
+
+微信支付
+
+
+
+
+
¥
+
+
+
+
+
+商家
+
+购买物品
+
+商户订单号
+
+创建时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/wxpaysl/refund.php b/plugins/wxpaysl/refund.php
new file mode 100644
index 0000000..9c883a0
--- /dev/null
+++ b/plugins/wxpaysl/refund.php
@@ -0,0 +1,28 @@
+SetTransaction_id($order['api_trade_no']);
+ $input->SetTotal_fee(strval($order['realmoney']*100));
+ $input->SetRefund_fee(strval($order['realmoney']*100));
+ $input->SetOut_refund_no($order['trade_no']);
+ $input->SetOp_user_id(WxPayConfig::MCHID);
+ $result = WxPayApi::refund($input);
+ if($result['return_code']=='SUCCESS' && $result['result_code']=='SUCCESS'){
+ $result = ['code'=>0, 'trade_no'=>$result['transaction_id'], 'refund_fee'=>$result['refund_fee']];
+ }elseif(isset($result["err_code"])){
+ $result = ['code'=>-1, 'msg'=>'['.$result["err_code"].']'.$result["err_code_des"]];
+ }else{
+ $result = ['code'=>-1, 'msg'=>'['.$result["return_code"].']'.$result["return_msg"]];
+ }
+} catch(Exception $e) {
+ $result = ['code'=>-1, 'msg'=>$e->getMessage()];
+}
+
+return $result;
\ No newline at end of file
diff --git a/plugins/wxpaysl/return.php b/plugins/wxpaysl/return.php
new file mode 100644
index 0000000..d681c91
--- /dev/null
+++ b/plugins/wxpaysl/return.php
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/wxpaysl/submit.php b/plugins/wxpaysl/submit.php
new file mode 100644
index 0000000..417a7d1
--- /dev/null
+++ b/plugins/wxpaysl/submit.php
@@ -0,0 +1,25 @@
+window.location.href='{$conf['localurl_alipay']}pay/wxpay/jspay/{$trade_no}/?d=1';";exit;
+ }
+ echo "";
+}elseif(checkmobile()==true){
+ if(in_array('3',$channel['apptype'])){
+ if(!empty($conf['localurl_wxpay']) && !strpos($conf['localurl_wxpay'],$_SERVER['HTTP_HOST'])){
+ echo "";exit;
+ }
+ echo "";
+ }elseif(in_array('2',$channel['apptype'])){
+ if(!empty($conf['localurl_wxpay']) && !strpos($conf['localurl_wxpay'],$_SERVER['HTTP_HOST'])){
+ echo "";exit;
+ }
+ echo "";
+ }else{
+ echo "";
+ }
+}else{
+ echo "";
+}
diff --git a/plugins/wxpaysl/wap.php b/plugins/wxpaysl/wap.php
new file mode 100644
index 0000000..bd614b1
--- /dev/null
+++ b/plugins/wxpaysl/wap.php
@@ -0,0 +1,111 @@
+
+
+
+
+
+ 微信支付
+
+
+
+
+
+
+
+ 微信支付手机版
+
+
+
长按保存到相册使用扫码扫码完成支付
+
+
或复制以下链接到微信打开:
+
+
提示:你可以将以上链接发到自己微信的聊天框(在微信顶部搜索框可以搜到自己的微信),即可点击进入支付
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/submit.php b/submit.php
new file mode 100644
index 0000000..16688d7
--- /dev/null
+++ b/submit.php
@@ -0,0 +1,125 @@
+
+
+
+
+
+ 正在为您跳转到支付页面,请稍候...
+
+
+
+query("SELECT `uid`,`gid`,`key`,`mode`,`pay`,`cert`,`status` FROM `pre_user` WHERE `uid`='{$pid}' LIMIT 1")->fetch();
+if(!$userrow)sysmsg('商户不存在!');
+if(!PayUtils::md5Verify($prestr, $queryArr['sign'], $userrow['key']))sysmsg('签名校验失败,请返回重试!');
+
+if($userrow['status']==0 || $userrow['pay']==0)sysmsg('商户已封禁,无法支付!');
+
+$type=daddslashes($queryArr['type']);
+$out_trade_no=daddslashes($queryArr['out_trade_no']);
+$notify_url=htmlspecialchars(daddslashes($queryArr['notify_url']));
+$return_url=htmlspecialchars(daddslashes($queryArr['return_url']));
+$name=htmlspecialchars(daddslashes($queryArr['name']));
+$money=daddslashes($queryArr['money']);
+$sitename=urlencode(base64_encode($queryArr['sitename']));
+
+
+if(empty($out_trade_no))sysmsg('订单号(out_trade_no)不能为空');
+if(empty($notify_url))sysmsg('通知地址(notify_url)不能为空');
+if(empty($return_url))sysmsg('回调地址(return_url)不能为空');
+if(empty($name))sysmsg('商品名称(name)不能为空');
+if(empty($money))sysmsg('金额(money)不能为空');
+if($money<=0 || !is_numeric($money) || !preg_match('/^[0-9.]+$/', $money))sysmsg('金额不合法');
+if($conf['pay_maxmoney']>0 && $money>$conf['pay_maxmoney'])sysmsg('最大支付金额是'.$conf['pay_maxmoney'].'元');
+if($conf['pay_minmoney']>0 && $money<$conf['pay_minmoney'])sysmsg('最小支付金额是'.$conf['pay_minmoney'].'元');
+if(!preg_match('/^[a-zA-Z0-9.\_\-|]+$/',$out_trade_no))sysmsg('订单号(out_trade_no)格式不正确');
+
+$domain=getdomain($notify_url);
+
+if(!empty($conf['blockname'])){
+ $block_name = explode('|',$conf['blockname']);
+ foreach($block_name as $rows){
+ if(strpos($name,$rows)!==false){
+ $DB->exec("INSERT INTO `pre_risk` (`uid`, `url`, `content`, `date`) VALUES (:uid, :domain, :rows, NOW())", [':uid'=>$pid,':domain'=>$domain,':rows'=>$rows]);
+ sysmsg($conf['blockalert']?$conf['blockalert']:'该商品禁止出售');
+ }
+ }
+}
+if($conf['cert_force']==1 && $userrow['cert']==0){
+ sysmsg('当前商户未完成实名认证,无法收款');
+}
+
+$trade_no=date("YmdHis").rand(11111,99999);
+if(!$DB->exec("INSERT INTO `pre_order` (`trade_no`,`out_trade_no`,`uid`,`addtime`,`name`,`money`,`notify_url`,`return_url`,`domain`,`ip`,`status`) VALUES (:trade_no, :out_trade_no, :uid, NOW(), :name, :money, :notify_url, :return_url, :domain, :clientip, 0)", [':trade_no'=>$trade_no, ':out_trade_no'=>$out_trade_no, ':uid'=>$pid, ':name'=>$name, ':money'=>$money, ':notify_url'=>$notify_url, ':return_url'=>$return_url, ':domain'=>$domain, ':clientip'=>$clientip]))sysmsg('创建订单失败,请返回重试!');
+
+if(empty($type)){
+ echo "";
+ exit;
+}
+
+// 获取订单支付方式ID、支付插件、支付通道、支付费率
+$submitData = \lib\Channel::submit($type, $userrow['gid']);
+
+if($submitData){
+ if($userrow['mode']==1){
+ $realmoney = round($money*(100+100-$submitData['rate'])/100,2);
+ $getmoney = $money;
+ }else{
+ $realmoney = $money;
+ $getmoney = round($money*$submitData['rate']/100,2);
+ }
+ $DB->exec("UPDATE pre_order SET type='{$submitData['typeid']}',channel='{$submitData['channel']}',realmoney='$realmoney',getmoney='$getmoney' WHERE trade_no='$trade_no'");
+}else{ //选择其他支付方式
+ echo "";
+ exit;
+}
+
+$order['trade_no'] = $trade_no;
+$order['out_trade_no'] = $out_trade_no;
+$order['uid'] = $pid;
+$order['addtime'] = $date;
+$order['name'] = $name;
+$order['money'] = $realmoney;
+$order['type'] = $submitData['typeid'];
+$order['channel'] = $submitData['channel'];
+$order['typename'] = $submitData['typename'];
+$order['apptype'] = explode(',',$submitData['apptype']);
+
+$loadfile = \lib\Plugin::load2($submitData['plugin'], 'submit', $trade_no);
+$channel = \lib\Channel::get($order['channel']);
+if(!$channel || $channel['plugin']!=PAY_PLUGIN)sysmsg('当前支付通道信息不存在');
+$channel['apptype'] = explode(',',$channel['apptype']);
+$ordername = !empty($conf['ordername'])?ordername_replace($conf['ordername'],$order['name'],$order['uid']):$order['name'];
+include $loadfile;
+?>
+正在为您跳转到支付页面,请稍候...
+
+
\ No newline at end of file
diff --git a/submit2.php b/submit2.php
new file mode 100644
index 0000000..4d139ff
--- /dev/null
+++ b/submit2.php
@@ -0,0 +1,65 @@
+
+
+
+
+ 正在为您跳转到支付页面,请稍候...
+
+
+
+getRow("SELECT * FROM pre_order WHERE trade_no='{$trade_no}' LIMIT 1");
+if(!$order)sysmsg('该订单号不存在,请返回来源地重新发起请求!');
+
+$userrow = $DB->getRow("SELECT gid,mode FROM pre_user WHERE uid='{$order['uid']}' LIMIT 1");
+
+// 获取订单支付方式ID、支付插件、支付通道、支付费率
+$submitData = \lib\Channel::submit2($typeid, $userrow['gid']);
+
+if($submitData){
+ if($userrow['mode']==1 && $order['tid']!=4 || $order['tid']==2){
+ $realmoney = round($order['money']*(100+100-$submitData['rate'])/100,2);
+ $getmoney = $order['money'];
+ }else{
+ $realmoney = $order['money'];
+ $getmoney = round($order['money']*$submitData['rate']/100,2);
+ }
+ $DB->exec("UPDATE pre_order SET type='{$submitData['typeid']}',channel='{$submitData['channel']}',realmoney='$realmoney',getmoney='$getmoney' WHERE trade_no='$trade_no'");
+}else{
+ sysmsg('当前支付方式无法使用 ', '跳转提示');
+}
+
+$order['type'] = $submitData['typeid'];
+$order['channel'] = $submitData['channel'];
+$order['typename'] = $submitData['typename'];
+$order['apptype'] = explode(',',$submitData['apptype']);
+$order['money'] = $realmoney;
+
+$loadfile = \lib\Plugin::load2($submitData['plugin'], 'submit', $trade_no);
+$channel = \lib\Channel::get($order['channel']);
+if(!$channel || $channel['plugin']!=PAY_PLUGIN)sysmsg('当前支付通道信息不存在');
+$channel['apptype'] = explode(',',$channel['apptype']);
+$ordername = !empty($conf['ordername'])?ordername_replace($conf['ordername'],$order['name'],$order['uid']):$order['name'];
+include $loadfile;
+?>
+正在为您跳转到支付页面,请稍候...
+
+
\ No newline at end of file
diff --git a/template/default/agreement.php b/template/default/agreement.php
new file mode 100644
index 0000000..fa3bfe3
--- /dev/null
+++ b/template/default/agreement.php
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
服务条款
+
请使用本支付系统前,先认真阅读商户服务条款,系统有权力随时更新条款,请您严格遵守我们服务条款内的条约,注册商户后则默认代表您已同意我们的服务条款。
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
特别提示: 本协议由系统和你共同签订,具有合同法律效力。
请你务必审慎阅读并充分理解各条款内容,特别是免除或者限制责任的条款、争议解决和法律适用条款。免除或者限制责任的条款可能以加粗字体显示,你应重点阅读。除非你已阅读并接受本协议所有条款,否则你无权使用本服务。你使用本服务即视为你已阅读并同意本协议的约束。如你对本协议有任何疑问的,应向客服咨询。
一、定义 如无特别说明,下列术语在本协议中的定义为:
1.1商户号: 指你凭以登录,操作商户平台的账号,你成功申请商户号后,系统将向你在本协议中载明的联系邮箱发送电子邮件,告知你的商户平台登录账号及初始密码,你可在商户平台中修改该初始密码,你亦可根据需要在商户平台中为该登录账号设置对应的商户密钥,用来查询和操作系统商户号。
1.2商户密钥: 指你凭以登录,操作商户平台的账号密码,你成功申请商户号后,系统将向你在本协议中载明的联系邮箱发送电子邮件,告知你的商户平台登录账号及初始密码,你可在商户平台中修改该初始密码,你亦可根据需要在商户平台中为该登录账号设置对应的商户密钥,用来查询和操作系统商户号。
1.3结算: 指用户购买你的商品或服务后,系统在一定周期内将交易资金记账至你的系统商户号,并根据协议约定和你设置提现至你银行账户的行为。
1.4提现: 系统根据你指令或协议约定,在一定周期内向备付金存款银行发出转账指令,要求备付金存款银行将相应资金转账至你指定的合法收款账户的行为。
二、服务内容 2.1本服务的场景和功能。 系统为你提供货币资金转移服务,当用户购买你的商品或服务时,可通过本服务完成交易。本服务的具体运用包括WAP支付,H5支付等
2.2服务限制。本服务仅能用于你在商户平台申报并经核准的商品或服务,且每笔订单不能超过系统规定的限额。你了解并同意系统有权根据你经营的商品或服务类型,以及你经营活动的风险状况调整你的交易额度。
三、系统的权利和义务 3.1支付系统建设。 系统负责支付系统的建设、运行和管理,并确保该系统的安全性。
3.2交易查询。 系统设立网上交易查询系统及查询接口,为你提供商户信息管理和交易信息查询服务。
3.3支付指令校验。 系统依据你的商户平台登录账号、登录密码来校验你支付指令的真实性、有效性。当你的商户平台登录账号和登录密码均校验通过时,即视为系你本人操作系统商户号,系统无需校验其他信息即可执行支付指令。
3.4交易纠纷处理。系统仅为你提供货币资金转移服务,你与用户或其他主体之间的纠纷由你自行负责处理,与系统无关,但是,因系统系统故障引起的资金转移服务纠纷除外。
3.5商户经营审核。系统有权定期或不定期审核你的业务类型,以及通过本服务售卖的物品和服务,若你违反本协议第2.2条约定或从事不符合国家相关法律法规规定的经营活动时,系统有权暂停或终止提供服务。
3.6交易停滞。你自开户之日起6个月内无交易记录,或连续180个自然日未利用本服务产生交易额的,系统有权暂停服务并要求你重新核实身份,你不予配合或身份核实未通过的,系统有权终止本协议且无需承担任何法律责任。如果你的受理终端或收款码连续3个月内未发生交易,系统有权暂停服务并要求你重新核实身份,你不予配合或身份核实未通过的,系统有权停止为你提供收款服务。如果你的受理终端或收款码连续12个月内未发生交易的,系统有权停止为你提供收款服务。
3.7延迟结算。 系统发现你可能存在洗钱、恐怖融资、欺诈交易、信用卡套现、恶意倒闭或其他违法违规行为,或系统发现你存在集中转入分散转出等可疑交易特征的交易或存在争议交易时,系统可以对你系统商户号中的相应资金进行延迟结算,已经结算的,系统可以延迟转账到你指定银行帐户和支付帐户。对于延迟结算、延迟转账的资金,直至排除违法违规嫌疑时,系统才恢复该部分资金的结算和转账。你的行为导致系统遭受损失的,你还应当承担赔偿责任。
3.8身份验证和授权。 你使用本服务,即表明你同意系统收集、记录和使用你使用本服务过程中产生的相关信息和数据,包括但不限于你及其法定代表人、负责人的身份信息、账户信息和交易信息等,并将前述信息提交国家机关、金融机构和其他企事业单位进行身份验证和鉴权。系统有权根据需要收集、保存、核实你法定代表人、负责人的音频和视频资料。为更好地提供服务,系统及关联公司有权在法律允许的范围内自行收集、记录、使用上述信息和数据。
3.9系统有权对你的业务进行风险管理,持续监测和分析交易金额、笔数、类型、时间、频率和收款方、付款方等特征,完善可疑交易监测模型。如系统发现交易金额、时间、频率与特约商户经营范围、规模不相符等异常情形的,有权对你采取延迟资金结算、设置收款限额、暂停银行卡交易、暂停使用权限等措施。
四、你的权利和义务 4.1账号开立和身份验证。 你在申请开立系统商户号时,应向系统如实提供相关的个人信息。你应保证所提交的上述资料的准确性、真实性、完整性。你上述信息发生变更,或你迁址、停业、变更域名或联系电话等资料信息,应提前通知系统,否则,系统有权视具体情况暂停服务,你未及时通知导致的一切投诉和纠纷,均由你承担。系统有权根据国家法律法规、规章制度、行业规范、政策要求的规定,要求你补充提交相关信息和资料,你逾期未提交或未通过系统核验的,系统有权解除本协议或暂停你系统商户号的全部或部分功能。
4.2账号使用。你不得把系统商户号、系统提供的技术接口、安全协议及证书用于本协议范围以外的用途,也不得出租、转让给第三方使用。你不得将其他商户的交易假冒成自己的交易与系统结算。你应充分了解并清楚知晓出租、出借、出售、购买账号的相关法律责任和惩戒措施,承诺依法依规开立和使用你的账号。
4.3禁止存储用户敏感信息。你不得存储用户银行账户密码、银行卡的磁道信息或芯片信息、银行卡验证码和有效期等敏感信息,不得泄露用户信用卡信息和借记卡信息等。
4.4账号保管和挂失。你应妥善保管系统商户号及其密码,以及手机短信验证码、API Key等。系统商户号下的一切行为均视为你的行为。若你需对系统商户号挂失,应及时与客服人员联系并按照客服人员的指引进行操作,若客服人员要求你提供书面证明材料才能进行下一步挂失操作的,你应及时提交书面证明材料。若你发现系统商户号被盗用,应立即向系统发起挂失。因你管理不善导致系统商户号被盗用的,一切损失由你自行承担。
4.5止付和撤销。由于系统系统的实时性和不可更改性,你向系统发起的任何支付指令,在系统执行后,均为不可撤销或更改的。支付指令一旦被系统执行,你不得要求止付、更改或撤销。
4.6规范使用。 未经系统书面授权,你不得转载、复制、截取、篡改系统的商标、标识、Logo等内容或制作与该内容有关的衍生产品。未经系统另行书面授权,除了在商户中心登记的域名外,你不得在任何网页或APP页面展示与系统有关的链接、弹窗或与H5支付有关的内容及其衍生产品。
4.7商户系统安全与维护。 你应负责自身的硬件平台搭建并承担相关的设备费用及通讯费用。你应严格按照本服务和商户平台的接入技术规范来建设和运行自己的计算机系统并确保自身系统的安全性。你应在系统交易过程中验证系统请求和响应数据包中的签名真实性,并保障支付信息数据传输过程中的安全性、保密性。你应向系统明确各方数据传输协议、安全机制、硬件需求以及物理连接等诸多技术细节的具体需求,并妥善处理系统反馈的各种交易异常情况。
4.8真实交易背景。 你承诺发起的本服务交易基于真实的交易,不得利用本服务从事虚假交易。
4.9保存订单信息。 你应保证订单信息的合法性、真实性、准确性和完整性。你在受理用户订单时,须记录包括但不限于以下信息:用户姓名、手机号码,订购产品的产品名称、产品编号、产品单价、合计索取价格、配送信息。你应按系统的要求向系统提供详细的、真实可信的交易字段,包括但不限于订单号、商品名称、商品描述等。你还应妥善保留有关交易数据和凭证,包括但不限于订单和用户接受货物时签字的有关单据,由交易发生之日起或本协议终止之日起,至少保留三年。在协议有效期内和协议终止之日起三年内,对系统提出的查询通知及调单要求,你应在接到系统通知后,以信件或传真的方式在两个工作日内将相关单据交付给系统。
4.10第三方网络交易平台。若你经营第三方网络交易平台,不得利用本服务从事非法支付结算业务,并应配备相应的系统、人员和完善的制度。你应当识别二级商户的身份信息和经营资质,并收集、保存二级商户的营业执照、税务登记证、组织机构代码证、法定代表人身份证明等,若二级商户从事国家规定专营、专控或需要取得国家前置行政许可的经营活动,还应提供该相关资质证照。你应保证二级商户所提交的上述资料的准确性、真实性、完整性。同时,你还应收集、保存并向系统传输二级商户的交易订单信息,包括但不限于:用户姓名、手机号码,订购产品的产品名称、产品编号、产品单价、合计索取价格、配送信息。你还应妥善保留二级商户的交易数据和凭证,包括但不限于订单和用户接受货物时签字的有关单据,由交易发生之日起或本协议终止之日起,至少保留五年。在协议有效期和协议终止之日起五年内,对系统提出的查询通知及调单要求,你应在接到系统通知后,以信件或传真的方式在两个工作日内将相关单据回复给系统。对系统提出的风险交易,你应按系统要求对其二级商户交易进行有效识别、追溯及在必要时实施暂停业务管理的措施,同时承担因二级商户发展和管理不善造成的全部风险损失,你应保证二级商户不再发展下一级商户。
第三方网络交易平台,指在网络商品交易活动中为交易双方或者多方提供网页空间、虚拟经营场所、交易规则、交易撮合、信息发布等服务,供交易双方或者多方独立开展交易活动的信息网络系统。
二级商户,指在你经营的第三方网络交易平台中销售商品或服务的自然人或企事业单位。
4.11第三方网络交易平台的风险防范。若你经营第三方网络交易平台,则你需对二级商户的交易行为的真实性、合法性进行监控和管理,你应防止二级商户利用系统从事信用卡套现、洗钱、虚假交易等违法违规活动。若出现二级商户利用系统从事信用卡套现、洗钱、虚假交易等违法违规活动的,则系统有权解除本协议,并追究你的违约责任。
4.12反套现、反洗钱。你不得主动或协助持卡人进行信用卡套现、洗钱、交易分单等违法经营行为,不得出现虚假申请、恶意倒闭等严重风险行为,否则,系统有权暂停或终止提供本协议服务,并将你的信息报送至中国人民银行和公安部及相关监管机构。
4.13实物和虚拟。你需利用本服务同时经营实物类和虚拟类的商品或服务时,应当针对实物类和虚拟类的商品或服务分别申请系统商户号,不得用同一系统商户号同时经营实物类和虚拟类的商品或服务。否则,系统有权解除本协议,并追究你的违约责任。
实物类,指需要物流配送的实物商品或需要记录和核实消费者身份信息的商品或服务;虚拟类,指非实物且不记录购买者身份信息,也无需物流配送的商品或服务。
4.14安全守则。 你不得对系统的计算机系统和程序采取反向工程手段进行破解,不得对前述系统和程序(包括但不限于源程序、目标程序、软件文档、运行在本地电脑内存中的数据、客户端至服务器端的数据、服务器数据等)进行复制、修改、编译、整合和篡改,不得修改或增加系统提供的任何服务的软件系统的原有功能。
4.15你应切实维护消费者合法权益,不得对采用不同支付方式的消费者采取歧视性措施。
4.16你应当遵守的其他义务:
(1)不得将签购单、签购结算单、业务受理标识牌、终端机具用于系统核准范围以外的用途,也不得给协议许可范围以外的第三方使用;
(2)不得将系统接口委托或转让给第三方;
(3)不得招聘无本人身份证原件的人员作为收银员,不得让未经培训合格的收银员操作受理终端;
(4)金饰店、珠宝店、名牌钟表店、金银币专卖店等风险较高的你必须加装录像监控设施,对支付过程进行清晰记录,录像资料保留时间不少于3个月;
(5)对单笔交易金额超过(含)5万元人民币的系统交易核对用户身份证原件;
(6)根据协议约定规范受理系统,在协议有效期内不得拒绝受理系统;
(7)不得代其他商户发起交易,不得转卖、租借受理终端(网络支付接口)和银行结算账户;
(8)不得要求其他商户代理发起交易,不得使用转卖、租借的受理终端(网络支付接口)和银行结算账户;
(9)妥善保管交易数据信息,确保只有授权人员接触,建立健全的内部结算管理制度;
(10)不得向使用消费者征收任何附加费或额外费用,或提供低于现金支付水平的服务;
4.17保障消费者合法权益。 你应切实维护用户合法权益,确保使用各种支付方式的用户均享受一致性公平待遇,不得向使用特定支付方式的用户转嫁或变相转嫁系统收取的服务费用,不得无理拒绝用户使用已经开通的支付方式。
五、服务费用和交易结算 5.1系统手续费(含税)
5.1.1你使用本服务,应向系统缴纳系统手续费(以下简称”支付手续费”)。
5.1.2系统将从你的每笔交易款中扣除一定费率的支付手续费,支付手续费的费率以商户平台核准记录的为准;在合作过程中,你可能因满足相关优惠条件而在一定期限内享受系统给予的优惠费率,当你不再满足优惠条件或优惠期限届满时,系统有权将费率恢复为原有费率,具体以商户平台核准记录的为准。
5.1.3若遇国家政策调整,或中国人民银行、合作机构的政策调整,系统有权据此调整支付手续费率并对你进行通知,你在收到系统通知后五个工作日内对调整后的支付手续费率未提出书面异议的,按调整后的费率执行。双方无法就费率变更达成一致意见的,可终止本协议。
5.2误差
各方确认并同意,涉及费率结算如因小数点后两位进位而产生微小误差,各方均予以认可。
5.3交易结算
5.3.1系统在扣除支付手续费后,将剩余交易款记账至你的系统商户号。
5.3.2你的提现账户为你申请本服务时提交的同名银行账户或其他存在合法资金管理关系的单位银行账户,若因你或银行的原因导致交易款项无法按时提现至你提交的银行账户的,系统不承担任何责任。
5.3.3若你需变更提现账户或需授权结算,应与系统另行签订补充协议或在商户平台自助修改。因你变更账户或指定收款人但未及时通知系统导致增加的额外成本或任何损失,由你承担。
5.3.4对于发生在T日的交易,若你没有进行特殊设置或操作,系统将按照商户平台核准记录的期限将扣除支付手续费后的交易款项提现至你银行账户,款项到账时间取决于银行系统的清算周期(若你是金融机构或是从事金融业务的其他机构,系统有权根据系统商户平台公告的时间,定期对你的系统商户号余额进行清零,并将对应资金提现至你的银行账户。你应在商户号被清零后及时充值,以免影响手续费、退款等资金结算)。
5.3.5你可根据商户平台和系统客服的指引申请变更提现规则,最终以商户平台核准记录的为准。
5.3.6若你接入本服务不满90日或者接入本服务后连续正常交易不满30日,系统不提供T+0资金提现服务,系统将该类你T日的交易资金记账至系统商户号的,你不得在T日划转该交易资金。无论你何时接入本服务,系统均有权根据你的经营状况、业务变化及实际赔付情况调整提现周期,并以电子邮件通知的方式通知你。
5.3.7你与系统对账数据不一致的,以系统数据为准。
5.3.8若你要求系统开具发票,应在首次开票前按照系统要求及时提交准确、完整的发票信息,系统每月就系统手续费向你开具上月增值税服务费发票。若你要求开具增值税专用发票,应向系统提交相关资质材料。
六、保证金 6.1系统有权要求你缴纳风险保证金,保证金额度以商户平台核准记录的为准。在本协议有效期内,风险保证金款项冻结于你保证金账户中,你不得提前解冻、提取或使用。
6.2系统有权根据你的经营状况、业务变化及实际赔付情况调整你应当缴纳的保证金额度,并以电子邮件通知的方式通知你补足保证金金额,如你未能在收到通知后的五个工作日内补足保证金,则系统有权暂停为你提供服务。如你在收到上述通知后的三十天内未补足保证金,系统可单方解除本合同而无需承担任何法律责任。
6.3若你在使用公众账号和本服务过程中没有违约行为,且你主动注销本服务满一年仍未受到任何第三方投诉或发生交易纠纷的,应解冻保证金账户的风险保证金,你可自主提取保证金本金,在此之前,你无权动用保证金本金,保证金解冻后无息归还你。
6.4若你违反国家法律、法规、政策、法令或你违反对用户的承诺或违反与系统的约定致用户或系统受损时,系统有权直接使用你缴纳的保证金对用户或系统进行赔付,保证金不足以赔偿的,系统可以直接从你的待结算款项中扣划,仍不足以赔偿的,可以继续向你追偿。
七、退款条款 对于你的交易中出现的退款情形,按如下规则处理:
7.1当你向系统提出退款请求时,你在自己的系统商户号中应有足够资金用于退款,系统有权直接从你的系统商户号中扣除退款金额完成退款,如因你资金不足导致无法退款的,其后果由你自行承担。系统按照你的退款请求处理退款时,如因银行原因或用户原因导致退款失败的,系统可将退款金额退至你的系统商户号,你可再次发起退款请求或自行处理退款。
7.2退款时,系统不再另行收取交易手续费,但若银行方面需要向系统另行收取相关费用的,则此费用应由你自行承担,系统可在为你垫付该费用后在你的交易款中扣除。
7.3你负责解决和承担用户拒付交易款项而导致的退款纠纷或责任。
八、保密条款 8.1除本协议另有约定外,未经一方书面同意,任何一方不得将本协议内容、用户个人信息、用户支付信息以及接口技术、安全协议及证书等透露给第三方。
8.2各方对在履行协议中获得的商业机密和技术秘密负保密责任。出现下列任一情况时,系统有权披露你的相关商业信息:
(1)人民银行或银保监会、证监会等金融业监管机构要求系统提供你的相关商业信息的;
(2)公安机关、人民法院、人民检察院或有权行政机关要求系统提供你的相关商业信息的;
(3)用户投诉,要求系统提供你的相关商业信息,经系统查实后认为可以提供的。
本协议所称商业信息包括但不限于你与用户之间的交易单号、交易凭证、资金流水等交易信息。
8.3各方保证其雇员及代理人履行本条的保密义务。
8.4上述保密义务在本协议终止后五年内有效。
九、违约责任 9.1各方中的任何一方违反本协议中所做约定的义务,均构成违约。
9.2你有下列情形之一的,系统有权单方面解除本协议并要求你承担相关赔偿责任:
(1)直接或间接参与欺诈,或出租、出借、出售、购买银行账户(含银行卡)或支付账户,或在网上买卖POS机(包括MPOS)、刷卡器等受理终端,或涉嫌实施其他违法犯罪活动的;
(2)经营及财务状况恶化无法正常经营,或被全国企业信用信息公示系统列入“严重违法失信企业名单”,或单位注册地址不存在或者虚构经营场所的;
(3)你或其法定代表人、负责人被中国支付清算协会、银行卡清算机构、其他国家机关、企事业单位列入黑名单,或存在被国家机关、行业协会的处罚记录的;
(4)实施违规操作,或违反本协议、《系统服务条款》、《微信公众平台服务协议》等约定,且经指出拒不改正或在合理期间内虽有改正但无法达到系统整改要求和目标的;
(5)无理拒绝或故意拖延系统交易查询、调单查询或监查要求的;
(6)进入破产程序、解散、营业执照被吊销;
(7)实施有损系统或腾讯利益行为的;
(8)违反本协议或利用系统提供的服务从事非法业务的;
(9)你的软硬件系统存在安全问题,经系统通知后拒不整改的;
(10)出现风险事件或经系统判断交易异常的;
(11)违反系统的相关规则和制度的。
十、账号注销 10.1发生下列情形之一的,系统有权注销你的系统商户号,法律另有规定或本协议另有约定的除外:
(1)你主动申请注销系统商户号的;
(2)本协议解除或终止的;
(3)你利用本服务从事非法活动的;
(4)你违反本协议或违反与系统签订的其他协议的。
10.2无论你的系统商户号是否被注销,系统均有权依据法律规定或国家机关的合法要求,冻结、扣划你系统商户号中的资金。
十一、免责条款 11.1因受不可抗力影响而不能履行或不能完全履行本协议的一方可以免除责任。不可抗力是指本协议各方不能预见、不能避免、不能克服的客观情况。此外,鉴于网络之特殊属性,发生包括但不限于下列任何情形导致系统不能履行本协议下义务的,各方可以免责:
(1)黑客攻击、计算机病毒侵入或发作;
(2)计算机系统遭到破坏、瘫痪或无法正常使用而导致信息或纪录的丢失、系统不能提供本协议项下之服务的;
(3)电信部门技术调整导致之重大影响的;
(4)因政府管制而造成服务终止的;
(5)其它非各方原因造成的。
11.2遇上述不可抗力事件的任何一方,应将该事件立即书面通知其他方。各方按照事件对协议履行的影响程度,再行决定是否继续履行本协议。
十二、风险提示及特别约定 12.1各方对于“中国国内电子商务环境尚未成熟,电子商务立法以及信用体制还不完善”的现状以及开展电子商务业务存在的风险性均完全知悉,各方均承诺采取合理的风险防范措施,以尽量避免或减小风险。
12.2本服务交易过程中,你应积极防范银行卡持卡人拒付风险,及时解决交易中出现的问题:
(1)若在交易中如出现包括但不限于交易不真实、欺诈、伪冒交易、持卡人账户信息泄漏或你违反国家法律规定或你违反对用户的承诺以及你违反与系统的约定之情形,你应自行承担上述情形造成的全部损失;
(2)若在交易中如出现持卡人否认交易、持卡人拒付、集中转入分散转出等可疑情形的,你应依据本协议第4.8和4.9条之要求向系统提供相应的交易凭证,若你怠于提供凭证,或你提供的凭证不符合相关行业内标准,或在系统书面通知(含电子邮件通知)后你未及时停止可疑交易、控制相应资金的等,你应自行承担上述情形造成的全部损失。
你因上述情形给系统造成损失的,系统有权直接从你的保证金中扣回与损失金额同等的金额,你需及时补足保证金。保证金不足以赔偿的,系统可以直接从你的待结算款项中扣划,仍不足以赔偿的,可以继续向你追偿。
12.3你在进行支付交易的过程中,应严格遵守中国人民银行网上银行业务和信用卡交易相关的政策法规,不得进行虚假交易、非法套现、洗钱等行为。你不得直接或变相从事互联网赌博、色情平台,互联网销售彩票平台,非法外汇、贵金属投资交易平台,非法证券期货类交易平台,代币发行融资及虚拟货币交易平台,也不得未经监管部门批准通过互联网开展资产管理业务以及未取得省级政府批文的大宗商品交易场所等非法交易,否则系统有权终止为其提供支付结算服务。
12.4如你申请开通大额支付功能,应确认并同意遵守如下条款:“你保证将系统所提供的大额支付功能用于实名制业务,否则,你应承担因违反上述承诺而造成的一切风险和法律责任,你应对受损方作出无条件的先行赔付。
实名制业务,指用户使用系统提供的在线支付服务购买商品或服务时,该用户提交了所购买商品或服务的最终接收方(或服务的最终受益方)的姓名、身份证号码等真实身份信息的业务
十三、知识产权 13.1系统在本合作中提供的内容(包括但不限于商标、标识、网页、文字、图片等)的知识产权归系统所有。
13.2除另有特别声明外,系统在本合作中提供的软件系统、技术接口、安全证书等所依托的著作权、专利权及其他知识产权均归系统所有。
13.3上述知识产权均受到法律保护,未经系统或相关权利人许可,不得以任何形式进行使用或创造相关衍生作品。
13.4系统对带有系统字样、标识、logo、图片等信息的物料、宣传资料和扫码设备享有知识产权,你不得在经营场所实施或协助、放任他人实施替换、遮盖、涂抹、藏匿、毁坏带有系统字样、标识、logo、图片等信息的物料、宣传资料和扫码设备的行为,否则,你应按照系统的要求恢复原状、赔偿损失。
十四、协议变更 系统有权根据需要不时地制定、修改本协议,如本协议有任何变更,财付将对变更事项在商户平台进行公告。如你不同意相关变更,必须立即以书面的方式通知系统终止为你提供服务。任何修订或新协议将按照法律法规及监管规定在微信公众平台上公布生效。你登录或继续使用服务即表示你接受经修订的协议。
十五、适用法律及争议解决 15.1本协议之解释、适用、争议解决等一切事宜,均适用中华人民共和国大陆地区法律。
15.2因本协议产生任何纠纷时,各方应友好协商,协商不成的,各方应将争议提交系统所在地有管辖权的人民法院诉讼解决。
十六、协议有效期、自动续期和提前终止协议 16.1本协议的有效时间以商户平台确认的时间为准,默认为长期有效;除本协议5.1.2、5.1.3条约定之情形外,若系统在协议有效期内提出费率变更请求,并以微信消息、电子邮件或商户平台信息等形式通知你,自信息发出之日起30日内,你继续使用本服务的,系统有权自30日届满之日起按照变更后的费率向你收取手续费,并从你的待结算款中扣除。
16.2各方有权基于各自的营运需要提前终止本协议,且无需承担任何法律责任。需提前终止本协议的,主动提出方应提前一个月以书面或电子邮件形式通知各方。
16.3协议解除或终止后,涉及到保证金、退款和保密的条款依然有效,各方应继续遵照执行。
16.4本协议一式貳份,双方各执壹份,具有同等法律效力。
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/template/default/assets/css/common.css b/template/default/assets/css/common.css
new file mode 100644
index 0000000..2613f52
--- /dev/null
+++ b/template/default/assets/css/common.css
@@ -0,0 +1,1119 @@
+body {
+ font-size:14px;
+ font-family:"Helvetica Neue",Helvetica,"Hiragino Sans GB",STHeitiSC-Light,"Microsoft YaHei","微软雅黑",Arial,sans-serif;
+ color:#888
+}
+.logo {
+ display:inline-block;
+ width:160px;
+ height:40px;
+ background:url(logo.png) no-repeat;
+ background-size:95%;
+ background-position:0 0;
+ position:relative;
+ top:13px;
+ left:-10px
+}
+.container {
+ margin-right:auto;
+ margin-left:auto
+}
+@media (min-width:768px) {
+ .container {
+ width:750px
+}
+}@media (min-width:992px) {
+ .container {
+ width:970px
+}
+}@media (min-width:1200px) {
+ .container {
+ width:1170px
+}
+}img {
+ vertical-align:middle;
+ max-width:90%
+}
+img.user_icon {
+ height:36px;
+ border-radius:50%
+}
+::-webkit-scrollbar {
+ width:10px;
+ height:10px
+}
+::-webkit-scrollbar-button:vertical {
+ display:none
+}
+::-webkit-scrollbar-track:vertical {
+ background-color:#000
+}
+::-webkit-scrollbar-track-piece {
+ background-color:#f5f5f5
+}
+::-webkit-scrollbar-thumb:vertical {
+ margin-right:10px;
+ background-color:#a6a6a6
+}
+::-webkit-scrollbar-thumb:vertical:hover {
+ background-color:#aaa
+}
+::-webkit-scrollbar-corner:vertical {
+ background-color:#535353
+}
+::-webkit-scrollbar-resizer:vertical {
+ background-color:#ff6e00
+}
+::-webkit-scrollbar-thumb {
+ border-radius:5px
+}
+.address footer {
+ min-width:320px;
+ width:100%;
+ position:relative;
+ overflow:hidden;
+ background:#14181C
+}
+.address footer ul {
+ margin:0;
+ float:left;
+ padding-top:50px;
+ width:25%
+}
+.address footer ul li {
+ list-style:none;
+ line-height:40px;
+ color:#ccc
+}
+.address footer ul li a {
+ color:#898B8D;
+ text-decoration:none
+}
+.address footer ul li a:hover {
+ color:#e8e7e7
+}
+.address footer .normal {
+ width:auto
+}
+.xinxi {
+ height:100px;
+ line-height:150px;
+ font-size:12px;
+ color:#686A6B;
+ width:100%;
+ text-align:center
+}
+.loading {
+ text-align:center;
+ margin-bottom:20px;
+ padding:10px 50px
+}
+.loadingRepo .loading {
+ min-height:300px;
+ height:300px
+}
+.comment-head {
+ clear:both;
+ margin-bottom:10px;
+ margin-top:50px
+}
+.footer-head {
+ font-size:18px
+}
+.h3 {
+ font-size:24px;
+ font-family:inherit;
+ font-weight:500;
+ line-height:1.1;
+ color:inherit
+}
+.front-show {
+ height:300px;
+ width:100%;
+ position:relative
+}
+.front-show {
+ height:300px;
+ width:100%;
+ position:relative
+}
+.front-show .front-text {
+ position:absolute;
+ left:40%;
+ top:100px;
+ color:#fff;
+ font-size:1.5em
+}
+.front-show .front-text a {
+ color:#eee;
+ margin-right:26px;
+ opacity:.8;
+ cursor:pointer
+}
+.front-show .front-text a:hover {
+ opacity:1
+}
+.front-show .front-text .default-label {
+ opacity:1;
+ color:#fff
+}
+.front-show .mirror-search {
+ position:absolute;
+ top:140px;
+ width:50%;
+ left:28%;
+ font-size:1.6rem;
+ color:#eee
+}
+.front-show .mirror-search .send-search {
+ width:80px;
+ height:50px;
+ background:#fff;
+ border-radius:3px;
+ color:#127BBA;
+ display:inline-block;
+ cursor:pointer;
+ border:0;
+ line-height:50px;
+ text-align:center;
+ font-size:1.8rem
+}
+.front-show .mirror-search .selectType {
+ width:100px;
+ float:left;
+ line-height:48px;
+ border-radius:3px 0 0 3px;
+ border:1px solid #fff;
+ border-right:0;
+ cursor:pointer
+}
+.front-show .mirror-search .selectType i {
+ margin-left:10px;
+ margin-right:5px;
+ transition:all .2s
+}
+.front-show .mirror-search .selectType i.rotate {
+ transform:rotate(90deg)
+}
+.front-show .mirror-search #typeList {
+ background:0 0;
+ color:#fff;
+ border:1px solid rgba(255,255,255,.8)
+}
+.front-show .mirror-search #typeList li:hover {
+ background:rgba(255,255,255,.1)
+}
+.front-show .mirror-search #typeList li {
+ background:rgba(59,164,210,0)
+}
+.front-show .mirror-search .image-search-input {
+ height:50px;
+ width:60%;
+ background:0 0;
+ border:1px solid #fff;
+ text-indent:15px;
+ vertical-align:bottom;
+ border-radius:0 3px 3px 0
+}
+.front-show .mirror-search .image-search-input::-webkit-input-placeholder {
+ color:#eee
+}
+.front-show .mirror-search .image-search-input:-moz-placeholder {
+ color:#eee
+}
+.front-show .mirror-search .image-search-input::-moz-placeholder {
+ color:#eee
+}
+.front-show .mirror-search .image-search-input:-ms-input-placeholder {
+ color:#eee
+}
+.front-show .search-notice {
+ color:#eee;
+ opacity:.8;
+ font-size:1.2em;
+ line-height:40px;
+ letter-spacing:2px
+}
+.front-show .front-label {
+ font-size:1.2em;
+ line-height:40px;
+ letter-spacing:2px
+}
+.front-show .front-label a {
+ color:#eee;
+ margin-right:20px;
+ opacity:.8
+}
+.front-show .front-label a:hover {
+ opacity:1
+}
+.front-show::before {
+ content:'';
+ position:absolute;
+ top:0;
+ left:0;
+ width:100%;
+ height:100%;
+ background:url(../images/hub.banner.jpg) no-repeat;
+ background-size:100%
+}
+.front-mirror .col-xx-4:nth-of-type(1) {
+ margin-left:0
+}
+.front-mirror .col-xx-4:nth-of-type(4) {
+ margin-left:0
+}
+.front-mirror .col-xx-4:nth-of-type(7) {
+ margin-left:0
+}
+.recommend .col-xx-4:nth-of-type(1) {
+ margin-left:0
+}
+.recommend .col-xx-4:nth-of-type(4) {
+ margin-left:0
+}
+li .font_size {
+ padding:5px 15px
+}
+.logo-head .ant-menu {
+ line-height:65px;
+ border:0
+}
+.logo-head .ant-menu .go_console {
+ display:block
+}
+.logo-head .ant-menu .go_logout {
+ display:block
+}
+.logo-head .ant-menu .li-new {
+ display:block
+}
+.logo-head .ant-menu>li {
+ float:right
+}
+.logo-head .ant-menu>li li {
+ float:left
+}
+.footer_icon {
+ width:50px;
+ display:inline-block;
+ opacity:.8
+}
+.hot-info {
+ height:50px;
+ overflow:hidden;
+ line-height:50px;
+ border:1px solid #DADADA;
+ background:#f5f6f6
+}
+.item-panel {
+ height:220px;
+ width:100%;
+ border:1px solid #e5e5e5;
+ border-radius:2px;
+ position:relative;
+ overflow:hidden;
+ transition:all .3s
+}
+.item-img {
+ width:100%;
+ height:150px;
+ position:relative
+}
+.mirror-hint-info {
+ padding:5%;
+ width:100%;
+ height:100px;
+ text-align:center
+}
+.item-info {
+ height:70px;
+ overflow:hidden;
+ border-top:1px solid #e5e5e5;
+ margin-top:-1px
+}
+.img-icon {
+ width:100%;
+ height:70px;
+ text-align:center;
+ position:relative;
+ top:20px
+}
+.img-icon .master-approve {
+ position:absolute;
+ right:5px;
+ width:70px;
+ text-align:center;
+ top:-20px
+}
+.img-icon .btn-approve {
+ display:none;
+ margin-top:8px;
+ border:1px solid #C9C9C9;
+ padding:3px;
+ font-size:12px;
+ color:#999;
+ background:#F8F8F8
+}
+.img-icon .master-approve:hover .btn-approve {
+ display:inline-block
+}
+.recommend-ranking {
+ height:50px;
+ overflow:hidden;
+ line-height:50px;
+ border:1px solid #dadada;
+ padding-left:20px
+}
+.icon-small {
+ height:60px;
+ margin:0 auto
+}
+.reg-hr {
+ line-height:25px;
+ border-top:1px solid #dadada
+}
+.dodon-list {
+ border:1px solid #e5e5e5;
+ border-top:0;
+ border-right:0
+}
+.small-reg-itme {
+ width:45%;
+ height:90px;
+ margin-left:40px;
+ text-align:center;
+ border:1px solid #dadada
+}
+.ant-menu-sub.ant-menu-inline>.mirror-li,.ant-menu-vertical>.mirror-li {
+ min-height:35px;
+ height:auto;
+ line-height:normal
+}
+.ant-menu-sub.ant-menu-inline>.mirror-li:hover {
+ background:0 0
+}
+.app-name {
+ line-height:35px;
+ margin-left:20px;
+ cursor:pointer
+}
+.border-radius {
+ border-radius:50%;
+ display:block;
+ max-width:100%
+}
+.user-head-img {
+ float:left;
+ height:40px;
+ width:40px;
+ margin-right:10px;
+ padding-top:5px
+}
+.ranking-info {
+ height:50px;
+ line-height:50px
+}
+.ranklist {
+ border:1px solid #e5e5e5;
+ border-top:0
+}
+.mirror-info {
+ padding:10px 15px;
+ border:1px solid #e5e5e5;
+ border-top:0;
+ line-height:35px
+}
+.mirror-info button {
+ margin-right:5px
+}
+.mar-top-3 {
+ margin-top:30px
+}
+.mar-top-2 {
+ margin-top:20px
+}
+.mar-top-1 {
+ margin-top:10px
+}
+.pad-right-3 {
+ padding-right:3%
+}
+.cursor {
+ cursor:pointer
+}
+.drop-cursor {
+ cursor:no-drop
+}
+a.default {
+ color:#666
+}
+.btn-link {
+ font-weight:400;
+ color:#2db7f5;
+ border-radius:0
+}
+.btn-deploy {
+ border:1px solid;
+ padding:5px 8px;
+ border-radius:3px;
+ transition:all .3s
+}
+.btn-deploy:hover {
+ background:#2db7f5;
+ color:#fff;
+ border-radius:3px;
+ border-color:transparent
+}
+.hot-docker {
+ text-align:center;
+ color:#fff;
+ font-size:20px;
+ line-height:50px
+}
+#q {
+ height:50px;
+ font-size:16px;
+ width:100%;
+ border:0;
+ border-radius:5px 0 0 5px;
+ text-indent:10px
+}
+.dropdown-list {
+ padding-left:7px
+}
+form .ant-input-group .ant-select-selection--single {
+ height:50px
+}
+form .ant-input-group .ant-select-selection--single .ant-select-selection__rendered {
+ line-height:50px
+}
+.btn {
+ display:inline-block;
+ padding:6px 12px;
+ margin-bottom:0;
+ font-size:14px;
+ font-weight:400;
+ line-height:1.42857143;
+ text-align:center;
+ white-space:nowrap;
+ vertical-align:middle;
+ -ms-touch-action:manipulation;
+ touch-action:manipulation;
+ cursor:pointer;
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ -ms-user-select:none;
+ user-select:none;
+ border-radius:4px
+}
+.item-panel .item-info .ant-menu-item {
+ height:auto;
+ line-height:35px
+}
+.hot-mirror-row {
+ height:50px;
+ line-height:75px;
+ font-size:1.2em;
+ display:block
+}
+.mirror-row-border {
+ display:inline-block;
+ width:15px;
+ height:30px;
+ border-left:8px solid #FF9008;
+ position:relative;
+ top:8px
+}
+.mirror-content {
+ margin-bottom:50px;
+ padding-top:40px
+}
+pre {
+ background:#f5f5f5;
+ padding:9.5px;
+ border-radius:4px;
+ font-size:14px;
+ display:block;
+ word-break:break-all;
+ word-wrap:break-word
+}
+p,pre {
+ margin-bottom:10px
+}
+.h4 {
+ font-weight:600;
+ line-height:1.1;
+ color:inherit;
+ font-size:18px
+}
+.table_list img {
+ max-width:100%
+}
+.item-panel:hover {
+ background:#F8F8F8;
+ box-shadow:0 0 8px rgba(0,0,0,.2)
+}
+.ant-select {
+ font-size:14px
+}
+.images {
+ float:left;
+ width:150px;
+ height:140px;
+ border:1px solid #DCDCDC;
+ background:#fff;
+ display:table;
+ margin-right:30px;
+ position:relative
+}
+.imgIcon {
+ margin:0 auto
+}
+.type-info {
+ float:left;
+ height:100%;
+ width:27%
+}
+.ant-input-group {
+ width:100%
+}
+#click-copy {
+ left:74%
+}
+.registry-owner {
+ border:1px solid #DCDCDC;
+ background:#fff
+}
+.registry-owner i {
+ display:inline-block;
+ width:23px;
+ vertical-align:middle;
+ margin-left:15px;
+ margin-right:5px;
+ text-align:center
+}
+.name-head {
+ background:#F9F9F9;
+ line-height:60px!important;
+ height:60px!important;
+ border-bottom:1px solid #DCDCDC
+}
+#detail-contents {
+ background:#fff;
+ border:1px solid #DCDCDC;
+ min-height:150px;
+ position:relative;
+ padding:30px 15px
+}
+.ant-menu-vertical>.ant-menu-item,.ant-menu-inline>.ant-menu-item,.ant-menu-vertical>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title {
+ font-size:14px;
+ padding-left:16px
+}
+.exception.ant-menu-item-active,.ant-menu-item.exception {
+ border-bottom:0;
+ padding:0 10px
+}
+.ant-menu-item.exception:nth-of-type(1) {
+ padding-right:0
+}
+.anticon-arrow-left {
+ font-weight:700
+}
+.ant-form-item>.input-label {
+ line-height:30px;
+ font-size:14px;
+ text-align:left
+}
+.ant-tabs-nav .ant-tabs-tab>.ant-tabs-tab-inner {
+ line-height:45px
+}
+.body-center {
+ overflow:hidden;
+ padding-bottom:80px;
+ padding-top:20px
+}
+.pull-mirror {
+ position:absolute;
+ top:20px;
+ right:20px
+}
+.table_list {
+ width:100%;
+ border:1px solid #DCDCDC;
+ height:auto
+}
+.table_list>.ant-tabs-content {
+ padding:0 15px;
+ word-wrap:break-word;
+ word-break:break-all;
+ min-height:150px
+}
+.user-table-info {
+ width:100%;
+ border-top:1px dashed #999
+}
+.user-table-info td {
+ line-height:40px;
+ text-align:center
+}
+.text-center {
+ text-align:center;
+ line-height:40px
+}
+.img-responsive {
+ display:block;
+ margin:0 auto;
+ max-width:100%;
+ max-height:100%
+}
+.uaer-main {
+ border-radius:3px;
+ border:1px solid #999;
+ margin-top:30px;
+ width:90%;
+ position:absolute
+}
+.main-img {
+ width:70px;
+ margin:10px auto
+}
+.main-img img {
+ height:70px;
+ border-radius:50%
+}
+.item-info {
+ height:70px;
+ overflow:hidden;
+ padding:0 20px;
+ border-top:1px solid #e5e5e5;
+ margin-top:-1px
+}
+.item-info .titleber {
+ line-height:35px;
+ text-overflow:ellipsis;
+ overflow:hidden;
+ white-space:nowrap
+}
+.mirror-text {
+ line-height:25px;
+ overflow:hidden;
+ text-align:center;
+ width:100%;
+ height:48px
+}
+.text-overflow {
+ overflow:hidden;
+ white-space:nowrap;
+ text-overflow:ellipsis
+}
+.span5 {
+ width:50%;
+ float:left
+}
+.span4 {
+ width:38%;
+ float:left
+}
+.span3 {
+ width:30%;
+ float:left
+}
+.span2 {
+ width:20%;
+ float:left
+}
+.box {
+ border:1px solid #999;
+ border-radius:5px;
+ transition:all .5s ease;
+ overflow:hidden
+}
+.box:hover {
+ border-color:#ff8c00
+}
+.sendMirror button {
+ opacity:0;
+ transition:opacity .3s ease
+}
+.box:hover .sendMirror button {
+ opacity:1
+}
+header {
+ box-shadow:0 3px 3px rgba(0,0,0,.175);
+ position:relative;
+ top:0;
+ width:100%;
+ font-size:1.15em;
+ z-index:10
+}
+header .default .doc {
+ position:relative;
+ left:5px
+}
+header .logo_img {
+ color:#666
+}
+header .logo_img .user_icon {
+ position:relative;
+ left:5px
+}
+header .logo-head .ant-menu .ant-menu-submenu-horizontal .ant-menu .ant-menu-item {
+ padding:0;
+ width:100%;
+ text-align:center
+}
+.default i.anticon,.logo_img i.anticon {
+ font-size:12px;
+ margin-right:6px;
+ transition:all .3s;
+ position:relative;
+ left:10px
+}
+.ant-menu-submenu-horizontal:hover .default i.anticon {
+ transform:rotate(180deg)
+}
+.ant-menu-submenu-horizontal:hover .logo_img i.anticon {
+ transform:rotate(180deg)
+}
+.goback {
+ position:relative;
+ top:-10px;
+ color:#666;
+ line-height:40px
+}
+.ant-spin-spining {
+ line-height:50px
+}
+.exception>a {
+ margin-top:18px;
+ line-height:30px;
+ padding:0 13px;
+ border:1px solid #666;
+ border-radius:5px;
+ margin-left:20px;
+ color:#666;
+ float:left
+}
+.exception>a:hover {
+ color:#2db7f5
+}
+.goback .back {
+ padding:6px 12px;
+ cursor:pointer
+}
+.images .imgIcon {
+ display:block;
+ margin:30px auto;
+ max-width:90%
+}
+.mirror-head .type-info span.title {
+ display:inline-block;
+ width:500px;
+ height:36px;
+ font-size:20px;
+ white-space:nowrap
+}
+.download-mirror label {
+ font-size:14px;
+ line-height:35px;
+ text-align:center
+}
+.mirror-head {
+ width:100%;
+ height:190px
+}
+.mirror-head .images {
+ float:left;
+ width:150px;
+ height:140px;
+ border:1px solid #DCDCDC;
+ background:#fff;
+ display:table;
+ margin-right:30px;
+ position:relative
+}
+.mirror-head .images .uploadImg {
+ position:absolute;
+ bottom:0;
+ background:rgba(142,152,160,.2);
+ width:100%;
+ left:0;
+ text-align:center
+}
+.mirror-head .images #collectImage {
+ position:absolute;
+ right:0;
+ text-indent:10px
+}
+.mirror-head .type-info {
+ float:left;
+ height:100%;
+ width:35%
+}
+.mirror-head .type-info span.title {
+ display:inline-block;
+ width:100%;
+ height:36px;
+ font-size:20px;
+ white-space:nowrap
+}
+.mirror-head .type-info .fork {
+ cursor:pointer;
+ font-size:14px
+}
+.mirror-head .type-info .fork:hover {
+ color:orange
+}
+.mirror-head .type-info .downloadNumber {
+ margin:0 10px;
+ font-size:14px
+}
+.mirror-head .type-info #registryLock {
+ text-align:left
+}
+.mirror-head .type-info .list-content {
+ height:65px;
+ width:95%;
+ display:block;
+ line-height:20px;
+ font-size:14px;
+ overflow:hidden
+}
+.mirror-head .type-info .star-style {
+ margin-right:5px
+}
+.mirror-head .list-download {
+ position:absolute;
+ right:0;
+ height:100%;
+ width:48%
+}
+.mirror-head .list-download .download-mirror {
+ position:relative;
+ top:65px
+}
+.mirror-head .list-download .download-mirror .download-src {
+ width:75%;
+ height:35px;
+ text-indent:10px;
+ border:1px solid #4280CB;
+ color:#4280CB
+}
+.mirror-head .list-download .download-mirror #click-copy {
+ border:1px solid #4280CB;
+ width:65px;
+ height:35px;
+ display:inline-block;
+ position:absolute;
+ top:0;
+ border-left:0;
+ cursor:pointer;
+ background:url(../images/bj_registry_list.png) no-repeat;
+ background-position:23px 5px
+}
+.ant-tabs-tabs-bar {
+ margin-bottom:0
+}
+.format {
+ padding:30px 15px;
+ min-height:168px
+}
+.format ul {
+ padding-left:20px;
+ list-style:disc
+}
+.format ul li {
+ list-style:disc
+}
+.format img {
+ max-width:100%
+}
+.download-ranking {
+ font-size:1.2em
+}
+#downRanking ul,#favRanking ul {
+ padding-bottom:5px
+}
+.ant-menu-item-active,.ant-menu-submenu-title:hover {
+ background:0 0
+}
+.logo-head .ant-menu-vertical li.ant-menu-item-active:hover {
+ background-color:#eaf8fe
+}
+.btn-primary {
+ color:#fff;
+ background:#4B80CB
+}
+.btn-lg {
+ height:50px;
+ font-size:1.1em;
+ padding:0 26px;
+ line-height:50px;
+ cursor:pointer;
+ display:block;
+ text-align:center
+}
+.listing:nth-of-type(1) {
+ margin-top:30px
+}
+.listing {
+ height:100px;
+ margin-top:20px
+}
+.listing .list-item-img {
+ margin:25px auto;
+ width:80%
+}
+.listing .list-item-img img {
+ margin:0 auto;
+ height:50px
+}
+.listing .list-item-description {
+ margin-top:25px
+}
+.listing .list-item-middle {
+ line-height:100px
+}
+.listing .list-item-middle .fa-star-o {
+ font-size:1.2em;
+ color:#efa11b
+}
+.rankinglist {
+ position:absolute;
+ width:90%;
+ min-height:340px
+}
+.rankinglist .ranking-li {
+ height:50px
+}
+.rankinglist .ant-menu-vertical {
+ border:0
+}
+.ranking-row {
+ height:58px;
+ line-height:60px;
+ border-bottom:1px solid #dadada;
+ margin-bottom:10px;
+ font-size:1.2em
+}
+.search-result {
+ line-height:50px;
+ color:orange
+}
+.allcomment {
+ border-bottom:1px dashed #ddd;
+ margin-bottom:100px
+}
+.allcomment .comment-list,.allcomment .reply-list {
+ border-top:1px dashed #ddd;
+ padding-top:8px;
+ display:table;
+ width:100%
+}
+.allcomment .comment-list .user-info,.allcomment .reply-list .user-info {
+ width:80px
+}
+.allcomment .comment-list .user-info .user-head,.allcomment .reply-list .user-info .user-head {
+ width:50px;
+ border-radius:50%
+}
+.allcomment .comment-list .comm-content,.allcomment .reply-list .comm-content {
+ width:calc(100% - 80px);
+ position:relative
+}
+.allcomment .comment-list .comm-content .contributor,.allcomment .reply-list .comm-content .contributor {
+ color:#44ACFF;
+ margin-right:20px
+}
+.allcomment .comment-list .comm-content .push-time,.allcomment .reply-list .comm-content .push-time {
+ font-size:12px;
+ color:#999
+}
+.allcomment .comment-list .comm-content .revert-content,.allcomment .reply-list .comm-content .revert-content {
+ line-height:22px
+}
+.comment-content {
+ min-height:100px;
+ max-width:100%;
+ padding:5px;
+ width:100%;
+ border:1px solid #A9A9A9
+}
+.ant-dropdown {
+ width:410px
+}
+.emojiList {
+ background:#fff;
+ border:1px solid #ccc;
+ border:1px solid rgba(0,0,0,.15);
+ box-shadow:0 6px 12px rgba(0,0,0,.175);
+ padding:5px;
+ border-radius:4px
+}
+.emoji {
+ width:1.8em;
+ height:1.8em;
+ display:inline-block;
+ margin-bottom:-.25em;
+ background-size:contain;
+ cursor:pointer;
+ margin:2px
+}
+.loadmore {
+ height:40px;
+ width:100%;
+ padding:0;
+ border:1px solid #337ab7;
+ color:#337ab7;
+ line-height:40px;
+ text-align:center;
+ cursor:pointer;
+ margin-bottom:24px
+}
+.loadmore:hover {
+ color:#999
+}
+.allcomment .comm-content .hover-reply {
+ visibility:hidden;
+ color:#44ACFF;
+ cursor:pointer
+}
+.comment-detail {
+ overflow:hidden
+}
+.comment-detail:hover .zan-box .hover-reply {
+ visibility:visible
+}
+.reply-list:hover div .hover-reply {
+ visibility:visible
+}
+.contributor li {
+ line-height:42px
+}
+#scroll_Top {
+ z-index:20;
+ opacity:0;
+ position:fixed;
+ bottom:20px;
+ right:10px;
+ border-radius:10px;
+ text-align:center;
+ color:#333;
+ background:#F1F1F1;
+ width:60px;
+ height:60px;
+ cursor:pointer;
+ border-radius:40px;
+ line-height:30px;
+ vertical-align:middle;
+ transition:all .5s
+}
+#scroll_Top i {
+ font-size:18px;
+ display:block;
+ margin-top:10px
+}
+#scroll_Top.show {
+ opacity:1
+}
\ No newline at end of file
diff --git a/template/default/assets/css/index-top.css b/template/default/assets/css/index-top.css
new file mode 100644
index 0000000..21730db
--- /dev/null
+++ b/template/default/assets/css/index-top.css
@@ -0,0 +1 @@
+*{margin:0;padding:0}body{width:100%;font-family:"Microsoft YaHei",Arial,"Hiragino Sans GB",STHeiti,"WenQuanYi Micro Hei",SimSun,sans-serif}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-button:vertical{display:none}::-webkit-scrollbar-track:vertical{background-color:#000}::-webkit-scrollbar-track-piece{background-color:#F5F5F5}::-webkit-scrollbar-thumb:vertical{margin-right:10px;background-color:#A6A6A6}::-webkit-scrollbar-thumb:vertical:hover{background-color:#aaa}::-webkit-scrollbar-corner:vertical{background-color:#535353}::-webkit-scrollbar-resizer:vertical{background-color:#FF6E00}.navbar-default{background:#fff;border:0}::-webkit-scrollbar-thumb{border-radius:5px}img.user_icon{height:36px;border-radius:50%}.logo{display:inline-block;width:160px;height:40px;background:url(logo.png) no-repeat;background-size:95%;background-position:0 0;position:relative;top:13px;left:15px}.logo_blue{background-position:0 -40px}.header-actions .logo_img{padding-top:13px}.header-actions:hover b.caret.user_caret{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}b.caret.user_caret{position:absolute;top:30px;right:3px;-webkit-transition:200ms;-ms-transition:200ms;-moz-transition:200ms;-o-transition:200ms;transition:200ms}a:focus{border:none;outline:0}.header-actions{position:relative}.select_go{box-shadow:0 0 10px rgba(0,0,0,.3);min-width:100px;background:#fff;position:absolute;left:-15px;border:1px solid #e5e5e5;-webkit-transition:all .6s cubic-bezier(0.175,.885,.32,1.275);-moz-transition:all .6s cubic-bezier(0.175,.885,.32,1.275);-o-transition:all .6s cubic-bezier(0.175,.885,.32,1.275);transition:all .6s cubic-bezier(0.175,.885,.32,1.275);opacity:0;-webkit-transform:scale3d(0,0,0);-moz-transform:scale3d(0,0,0);-ms-transform:scale3d(0,0,0);-o-transform:scale3d(0,0,0);transform:scale3d(0,0,0);-webkit-transform-origin:40px top;-moz-transform-origin:40px top;-ms-transform-origin:40px top;-o-transform-origin:40px top;transform-origin:40px top}.select_go .go_console,.select_go .go_logout{display:block;width:100%;height:40px;line-height:40px;color:#333}.select_go .go_console:hover,.select_go .go_logout:hover{transition:.2s;background:#f5f5f5}.nav-new{box-shadow:0 0 10px rgba(0,0,0,.3);min-width:100px;background:#fff;left:calc(50% - 48px);border:1px solid #e5e5e5;position:absolute;white-space:nowrap;-webkit-transition:all .6s cubic-bezier(0.175,.885,.32,1.275);-moz-transition:all .6s cubic-bezier(0.175,.885,.32,1.275);-o-transition:all .6s cubic-bezier(0.175,.885,.32,1.275);transition:all .6s cubic-bezier(0.175,.885,.32,1.275);opacity:0;-webkit-transform:scale3d(0,0,0);-moz-transform:scale3d(0,0,0);-ms-transform:scale3d(0,0,0);-o-transform:scale3d(0,0,0);transform:scale3d(0,0,0);-webkit-transform-origin:40px top;-moz-transform-origin:40px top;-ms-transform-origin:40px top;-o-transform-origin:40px top;transform-origin:40px top}.nav-new .li-new{display:block;width:100%;height:40px;line-height:40px;color:#333}.nav-new .li-new:hover{transition:.2s;background:#f5f5f5}.nav-new:after{content:"";display:block;height:0;clear:both;visibility:hidden}.header-doc:hover .nav-new{-webkit-transform:scale3d(1,1,1);-moz-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);-o-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.header-actions:hover .select_go{-webkit-transform:scale3d(1,1,1);-moz-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);-o-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}li{list-style:none}@media (min-width:768px) and (max-width:992px){.container{padding-left:10px}header ul.c_navbar li{margin-left:20px}header ul.c_navbar li a.font_size{margin-left:0}header ul.z_navbar li a{padding:0 5px}.screen .h4{line-height:2.2em}.proceed{font-size:1em;padding:10px 25px}.bottom_line{width:100%;height:200px;margin-top:10%}.bottom_line ul.ico-img{width:auto;padding:0;margin-left:38%}.bottom_line ul.ico-img li{float:left;width:50px}.bottom_line ul.ico-img li a{color:#898B8D;font-size:2em}.soso{position:absolute;top:55%;left:40%}.soso img{width:110px}}@media (min-width:992px){ul.z_navbar li a{padding:0 20px}.banner2 .ban2_content{font-size:1.5em;line-height:40px}.banner2 .ban2_text .ban2_middle{font-size:3em}.banner2 .ban2_text .ban3_middle{font-size:3em}.banner3 .ban3_content{font-size:1.5em;line-height:40px}.banner3 .ban3_text .ban3_middle{font-size:3em}header ul.c_navbar li{margin-left:20px}.screen .h4{line-height:2.2em}.proceed{font-size:1.4em;padding:12px 40px}.address footer ul li a{letter-spacing:2px}.bottom_line{width:100%;height:200px;margin-top:20%;border-left:1px solid #404346}.bottom_line ul.ico-img{width:auto;padding:0;margin-left:38%}.bottom_line ul.ico-img li{float:left;width:50px}.bottom_line ul.ico-img li a{color:#898B8D;font-size:2em}.soso{position:absolute;top:120px;left:43%}.soso img{width:110px;height:110px}}@media (max-width:682px){.banner2 .ban2_content{font-size:1em}.banner2 .ban2_text .ban2_middle,.banner3 .ban3_middle{font-size:1.5em}.banner3 .ban3_content{font-size:1em}.banner3 .ban3_text .ban3_middle{font-size:1.2em}.address footer ul li a{letter-spacing:0}header ul.c_navbar li a.font_size{margin-left:15px;width:50%;margin:0 auto;height:40px;line-height:30px}.navbar-top-collapse{margin-bottom:20px}.navbar-top-collapse ul.z_navbar li a{line-height:30px}.proceed{font-size:1em;padding:8px 25px}.bottom_line{width:100%;height:200px;margin-top:20%}.bottom_line ul.ico-img{width:auto;padding:0;margin-left:30%}.bottom_line ul.ico-img li{float:left;width:50px}.bottom_line ul.ico-img li a{color:#898B8D;font-size:2em}.soso{position:absolute;top:120px;left:35%}.soso img{width:110px;height:110px}}header{position:relative;top:0;width:100%;font-size:1.15em;z-index:10}header a:hover{text-decoration:none}header ul.z_navbar{margin:0;line-height:65px;text-align:center}header ul.z_navbar li a{line-height:65px}header ul.z_navbar li a.active{color:#4280cb}header ul.z_navbar li .li-new{padding:0}header ul.z_navbar li ul.items{display:none;background:#fff;min-width:100px;position:absolute;top:65px;left:-12%;border:1px solid #e5e5e5}header ul.z_navbar li ul.items li{clear:both;width:100%;height:40px;line-height:40px}header ul.z_navbar li ul.items li a{width:100%;display:inline-block;color:#333}header ul.z_navbar li ul.items li a:hover{transition:.2s}header ul.z_navbar li ul.items li:hover{background:#F5F5F5;transition:.2s}header ul.c_navbar{margin:0;line-height:65px;text-align:center}header ul.c_navbar li a.font_size{margin-top:15px;border:1px solid #666;border-radius:5px;-webkit-transition:background .4s ease;transition:background .4s ease}header ul.c_navbar li a.font_size:hover{background:#fff;color:#666}#scroll_Top{z-index:20;display:none;position:fixed;bottom:20px;right:10px;border-radius:10px;text-align:center;color:#56585A;background:#F1F1F1;width:60px;height:60px;border-radius:40px;line-height:30px;vertical-align:middle}#scroll_Top a.TopTop{font-size:12px;text-decoration:none;color:#56585A;display:block;line-height:normal}.dropdown-menu{min-width:100px}.dropdown-menu li{text-align:center}.dropdown-menu.pull-right{left:-38px;top:200%}.select_go .rows,.nav-new .rows{position:absolute;left:40px;top:-16px;width:0;height:0;font-size:0;border-width:8px;border-style:dashed dashed solid;border-color:rgba(0,0,0,0)rgba(0,0,0,0)#fff}p.focus{color:#fff;font-size:18px}.address footer{min-width:320px;width:100%;position:relative;overflow:hidden;background:#14181C}.address footer ul{margin:0;float:left;padding-top:50px;width:25%}.address footer ul h4{color:#fff}.address footer ul li{list-style:none;line-height:40px;color:#ccc}.address footer ul li a{color:#898B8D;text-decoration:none}.address footer ul li a:hover{color:#e8e7e7}.xinxi{position:relative;top:30px;width:100%;text-align:center}.xinxi p{line-height:60px;color:#686A6B;font-size:12px;margin-bottom:30px}#main-nav{margin:0;min-height:65px}a.font_size{padding:5px 15px;border:1px solid #666;border-radius:5px;-moz-transition:background .4s ease;-ms-transition:background .4s ease;-webkit-transition:background .4s ease;transition:background .4s ease}a.font_size:hover{background:#fff;color:#666}#products-move{position:relative;left:0;top:100px;font-size:28px;letter-spacing:0;width:auto}#page #masthead{text-shadow:none}#ie9{height:20px;line-height:20px;background:red;color:#fff;text-align:center;position:fixed;top:0;width:60%;left:20%;z-index:10000;display:none;font-size:12px}.closeIE{color:#fff;position:absolute;right:20px;cursor:pointer}
\ No newline at end of file
diff --git a/template/default/assets/css/index.css b/template/default/assets/css/index.css
new file mode 100644
index 0000000..c914551
--- /dev/null
+++ b/template/default/assets/css/index.css
@@ -0,0 +1,877 @@
+header {
+ position:fixed;
+ background:#fff
+}
+@media screen and (min-width:992px) {
+ html,body {
+ height:100%
+}
+.center_content {
+ padding-left:10%
+}
+#myCarousel,.banner2,.banner3 {
+ height:100%;
+ min-height:450px
+}
+#myCarousel .carousel-inner,.carousel-inner>.item {
+ height:100%
+}
+.banner2 .container {
+ height:100%
+}
+.banner2 .container .row {
+ height:100%
+}
+.banner2 .container .row .col-md-6 {
+ height:100%
+}
+.banner2 .container .row .col-md-6 .cloud_host_img {
+ top:22%
+}
+.banner2 .container .row .col-md-6 .ban2_text {
+ height:100%
+}
+.ban2_text {
+ position:relative
+}
+.ban2_text .ban2_status,.ban2_text .ban3_status {
+ position:absolute;
+ top:30%
+}
+.ban2_text .ban2_status .ban2_middle,.ban2_text .ban3_status .ban2_middle,.ban2_text .ban2_status .ban3_middle,.ban2_text .ban3_status .ban3_middle {
+ color:#fff;
+ position:relative;
+ letter-spacing:6px;
+ top:35%;
+ left:10%
+}
+.ban2_content,.ban3_content {
+ color:#fff;
+ width:90%;
+ position:relative;
+ letter-spacing:1px;
+ top:37%;
+ left:10%
+}
+.ban2_experience {
+ font-size:1.2em;
+ color:#fff;
+ margin-top:30px;
+ position:relative;
+ left:10%
+}
+.cloud_host_img {
+ position:absolute
+}
+.blog-article {
+ padding:20px
+}
+.cloud_db_img {
+ position:absolute;
+ top:20%
+}
+}@media (min-width:682px) and (max-width:992px) {
+ header {
+ position:fixed;
+ background:#fff
+}
+html,body {
+ height:100%
+}
+.center_content {
+ padding-left:5%
+}
+#myCarousel,.banner2,.banner3 {
+ height:100%;
+ min-height:450px
+}
+#myCarousel .carousel-inner,.carousel-inner>.item {
+ height:100%
+}
+.banner2 .container {
+ height:100%
+}
+.banner2 .container .row {
+ height:100%
+}
+.banner2 .container .row .col-md-6 {
+ height:100%
+}
+.banner2 .container .row .col-md-6 .ban2_text {
+ height:100%
+}
+.ban2_text {
+ position:relative
+}
+.ban2_text .ban2_status,.ban2_text .ban3_status {
+ position:absolute;
+ top:30%
+}
+.ban2_text .ban2_status .ban2_middle,.ban2_text .ban3_status .ban2_middle,.ban2_text .ban2_status .ban3_middle,.ban2_text .ban3_status .ban3_middle {
+ color:#fff;
+ position:relative;
+ letter-spacing:6px;
+ top:35%;
+ left:10%;
+ font-size:20px
+}
+.ban2_content,.ban3_content {
+ color:#fff;
+ width:90%;
+ position:relative;
+ letter-spacing:1px;
+ top:37%;
+ left:10%
+}
+.ban2_experience,.ban3_experience {
+ font-size:1.2em;
+ color:#fff;
+ margin-top:30px;
+ position:relative;
+ left:10%
+}
+.cloud_host_img,.cloud_db_img {
+ position:absolute;
+ top:22%
+}
+.blog-article {
+ padding:15px
+}
+}@media (max-width:682px) {
+ html,body {
+ height:100%;
+ min-width:400px;
+ font-size:12px
+}
+#myCarousel,.banner2,.banner3 {
+ height:100%
+}
+.docker {
+ top:0!important
+}
+#myCarousel .carousel-inner,.carousel-inner>.item {
+ height:100%
+}
+.banner2 .container {
+ height:100%
+}
+.banner2 .container .row {
+ height:100%
+}
+.banner2 .container .row .col-xs-12 {
+ height:50%
+}
+.banner2 .container .row .col-xs-12 .ban2_text {
+ height:100%
+}
+.banner2 .ban2_text .ban2_status {
+ text-align:center;
+ font-size:1.5em
+}
+.cloud_host_img,.cloud_db_img {
+ width:60%;
+ margin-left:20%;
+ margin-top:10%
+}
+.ban2_text {
+ position:relative
+}
+.ban2_text .ban3_status {
+ position:absolute;
+ text-align:center;
+ font-size:1.5em
+}
+.ban2_text .ban3_status .ban3_middle {
+ color:#fff;
+ letter-spacing:6px
+}
+.ban2_text .ban3_status .ban3_content {
+ color:#fff;
+ width:100%;
+ letter-spacing:3px
+}
+.ban2_text .ban2_status {
+ position:absolute;
+ top:15%
+}
+.ban2_text .ban2_status .ban2_middle {
+ color:#fff;
+ position:relative;
+ letter-spacing:6px;
+ top:35%
+}
+.ban2_content {
+ color:#fff;
+ width:100%;
+ position:relative;
+ letter-spacing:3px;
+ top:37%
+}
+.ban2_experience {
+ color:#fff;
+ margin-top:30px;
+ position:relative
+}
+.blog-article {
+ padding:5px
+}
+.blog-article .h4 {
+ font-size:14px
+}
+.blog-article .h5 {
+ margin-top:5px;
+ font-size:12px
+}
+.screen4 .safe-content {
+ font-size:14px
+}
+.tenxcloud_news {
+ margin-top:10px
+}
+.screen6 .collaborate li a div {
+ margin:0 auto
+}
+}#nav-top {
+ box-shadow:0 3px 3px rgba(0,0,0,.175)
+}
+.proceed {
+ color:#fff;
+ border:1px solid #fff;
+ border-radius:5px;
+ -moz-transition:background .4s ease;
+ -ms-transition:background .4s ease;
+ -webkit-transition:background .4s ease;
+ transition:background .4s ease
+}
+.proceed-foot {
+ color:#D9EFF0;
+ padding:10px 50px;
+ font-size:2em;
+ border:1px solid #fff
+}
+.proceed-2,.proceed-3,.proceed-4 {
+ color:#eee;
+ border:1px solid #eee
+}
+.proceed:hover {
+ color:#3F5061;
+ background:#fff;
+ border-color:#fff
+}
+#youremail {
+ border-radius:4px;
+ width:380px;
+ height:50px;
+ color:#eee;
+ font-size:18px;
+ border:1px solid #eee;
+ background:0 0;
+ vertical-align:middle;
+ text-indent:10px;
+ line-height:normal
+}
+#youremail::-webkit-input-placeholder {
+ color:#eee
+}
+#youremail:-moz-placeholder {
+ color:#eee
+}
+#youremail::-moz-placeholder {
+ color:#eee
+}
+#youremail:-ms-input-placeholder {
+ color:#eee
+}
+#apply-for {
+ margin-left:10px;
+ line-height:35px;
+ background:#4280CB;
+ vertical-align:top;
+ border-radius:4px;
+ height:50px;
+ width:126px;
+ font-size:18px;
+ cursor:pointer;
+ -moz-transition:background .4s ease;
+ -ms-transition:background .4s ease;
+ -webkit-transition:background .4s ease;
+ transition:background .4s ease;
+ font-family:Microsoft Yahei,Hiragino Sans GB,WenQuanYi Micro Hei,sans-serif
+}
+#apply-for:hover {
+ background:#DFDFDF;
+ color:#555
+}
+#apply-bottom {
+ margin-left:10px;
+ line-height:35px;
+ background:#eee;
+ vertical-align:middle;
+ border-radius:4px;
+ height:50px;
+ padding:8px 12px;
+ font-size:18px;
+ cursor:pointer;
+ -moz-transition:background .4s ease;
+ -ms-transition:background .4s ease;
+ -webkit-transition:background .4s ease;
+ transition:background .4s ease;
+ font-family:Microsoft Yahei,Hiragino Sans GB,WenQuanYi Micro Hei,sans-serif
+}
+a {
+ color:inherit
+}
+a:hover {
+ text-decoration:none
+}
+.carousel-indicators li {
+ margin:0 8px
+}
+.carousel-indicators .active {
+ margin:0 7px
+}
+.screen1 {
+ margin-top:65px;
+ height:calc(100% - 65px)
+}
+.screen1 #myCarousel {
+ width:100%;
+ overflow:hidden
+}
+.carousel-indicators {
+ bottom:20px
+}
+.move_cloud {
+ width:100%;
+ height:200px;
+ position:absolute;
+ background:url(../images/hostingupline.png) no-repeat;
+ -webkit-animation:move_top 10s ease-out alternate infinite;
+ -moz-animation:move_top 10s ease-out alternate infinite;
+ -ms-animation:move_top 10s ease-out alternate infinite;
+ animation:move_top 10s ease-out alternate infinite
+}
+.banner2 {
+ width:100%;
+ background:url(../images/hostingupline.png) no-repeat;
+ background-size:100%;
+ position:relative
+}
+.banner2:after {
+ content:'';
+ background:#4280cb;
+ background:-webkit-gradient(linear,0 0,0 100%,from(#4585d2),to(#4280cb));
+ background:-moz-linear-gradient(top,#4585d2,#4280cb);
+ background:linear-gradient(to bottom,#4585d2,#4280cb);
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ z-index:-1
+}
+.banner3:after {
+ content:'';
+ background:#02bf8b;
+ background:-webkit-gradient(linear,0 0,0 100%,from(#02bf8b),to(#01ad7f));
+ background:-moz-linear-gradient(top,#02bf8b,#01ad7f);
+ background:linear-gradient(to bottom,#02bf8b,#01ad7f);
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ z-index:-1
+}
+.banner3 {
+ width:100%
+}
+.banner4:after {
+ content:'';
+ background:#33405a;
+ background:-webkit-gradient(linear,0 0,0 100%,from(#3e3e4a),to(#3e3e4a));
+ background:-moz-linear-gradient(top,#33405a,#24314e);
+ background:linear-gradient(to bottom,#33405a,#24314e);
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ z-index:-1
+}
+#trun_left {
+ position:absolute;
+ width:8%;
+ top:0;
+ left:0;
+ text-align:center;
+ height:100%;
+ z-index:3
+}
+#trun_left ._left {
+ display:none;
+ font-size:5em;
+ padding:200px 10px;
+ color:#eee
+}
+#trun_left:hover ._left {
+ display:block
+}
+#trun_right:hover ._right {
+ display:block
+}
+#trun_right {
+ height:100%;
+ width:8%;
+ top:0;
+ position:absolute;
+ right:0;
+ z-index:3;
+ text-align:center
+}
+#trun_right ._right {
+ display:none;
+ font-size:5em;
+ color:#eee;
+ padding:200px 10px
+}
+.tenxcloud_news {
+ font-size:1.5em
+}
+.spring_icon {
+ margin:0 auto;
+ width:160px;
+ height:160px;
+ background:url(../images/shensuo.png) no-repeat
+}
+.screen2 {
+ width:100%;
+ padding:80px 0
+}
+.screen2 .center_content {
+ margin:20px auto;
+ transition:.3s all
+}
+.screen2 .center_content .servers {
+ height:70px;
+ width:70px;
+ float:left;
+ background:url(../images/server_item.png) no-repeat;
+ transition:.5s background ease-in-out
+}
+.screen2 .center_content .s_item {
+ background-position:0 0
+}
+.screen2 .center_content .r_item {
+ background-position:0 -80px
+}
+.screen2 .center_content .m_item {
+ background-position:0 -160px
+}
+.screen2 .center_content .a_item {
+ background-position:0 -240px
+}
+.screen2 .process:hover {
+ color:#4280CB
+}
+.screen2 .process:hover .s_item {
+ background-position:-100px 0
+}
+.screen2 .containers:hover {
+ color:#4280CB
+}
+.screen2 .containers:hover .r_item {
+ background-position:-100px -80px
+}
+.screen2 .primer:hover {
+ color:#4280CB
+}
+.screen2 .primer:hover .m_item {
+ background-position:-95px -160px
+}
+.screen2 .appstore:hover {
+ color:#4280CB
+}
+.screen2 .appstore:hover .a_item {
+ background-position:-100px -240px
+}
+.screen3 {
+ width:100%;
+ background:#FAFAFB;
+ position:relative;
+ padding:50px 0
+}
+.screen3 .cloud_server {
+ text-align:center;
+ margin:20px 0;
+ color:#696969;
+ font-size:16px
+}
+.screen3 .cloud_server .more {
+ margin:10px 0;
+ font-size:1.2em;
+ background:#fff;
+ border:1px solid #333;
+ padding:10px 20px;
+ border-radius:2px;
+ -moz-transition:background .4s ease;
+ -ms-transition:background .4s ease;
+ -webkit-transition:background .4s ease;
+ transition:background .4s ease
+}
+.screen3 .server-head {
+ margin-top:20px;
+ color:#696969;
+ text-align:center
+}
+.screen3 .server_item {
+ background:url(../images/container_server_icon.png) no-repeat;
+ height:135px;
+ width:140px;
+ transition:.5s background;
+ margin:0 auto
+}
+.screen3 .h5 {
+ margin-bottom:50px
+}
+.screen3 .container_server {
+ background-position:0 0
+}
+.screen3 .arrange {
+ background-position:2px -148px
+}
+.screen3 .codebuild {
+ background-position:2px -300px
+}
+.screen3 .server-market {
+ background-position:2px -449px
+}
+.screen3 .registry {
+ background-position:3px -605px
+}
+.screen3 .ci {
+ background-position:3px -757px
+}
+.screen3 .hosting {
+ background-position:2px -905px
+}
+.screen3 .private {
+ background-position:2px -1049px
+}
+.screen3 #container_server:hover .server-head {
+ color:#55C782
+}
+.screen3 #container_server:hover .container_server {
+ background-position:-146px 0
+}
+.screen3 #server-arrange:hover .server-head {
+ color:#4280CB
+}
+.screen3 #server-arrange:hover .arrange {
+ background-position:-146px -148px
+}
+.screen3 #codebuild:hover .server-head {
+ color:#F4B329
+}
+.screen3 #codebuild:hover .codebuild {
+ background-position:-146px -300px
+}
+.screen3 #server-market:hover .server-head {
+ color:#8376B6
+}
+.screen3 #server-market:hover .server-market {
+ background-position:-146px -449px
+}
+.screen3 #registry:hover .server-head {
+ color:#55c782
+}
+.screen3 #registry:hover .registry {
+ background-position:-146px -605px
+}
+.screen3 #ci:hover .server-head {
+ color:#4280cb
+}
+.screen3 #ci:hover .ci {
+ background-position:-146px -757px
+}
+.screen3 #hosting:hover .server-head {
+ color:#f4b329
+}
+.screen3 #hosting:hover .hosting {
+ background-position:-146px -905px
+}
+.screen3 #private:hover .server-head {
+ color:#998fc3
+}
+.screen3 #private:hover .private {
+ background-position:-146px -1049px
+}
+.screen4 {
+ width:100%;
+ text-align:center;
+ padding:40px 0 80px;
+ color:#fff;
+ background:url(../images/tese.jpg) no-repeat;
+ background-size:100% 100%
+}
+.screen4 .cloud_server {
+ text-align:center;
+ font-size:16px
+}
+.screen4 .safe-content {
+ line-height:1.5em
+}
+.screen4 .design_safe {
+ width:100px;
+ height:110px;
+ margin:10px auto;
+ background:url(../images/tesetubiao.png) no-repeat
+}
+.screen4 .safe_ease {
+ background-position:0 0
+}
+.screen4 .design_safe.tall {
+ background-position:0 -110px
+}
+.screen4 .design_safe.seeyou {
+ background-position:0 -218px
+}
+.screen4 .design_safe.mix {
+ background-position:0 -320px
+}
+.screen5 {
+ padding:40px 0 80px;
+ background:#FAFAFB
+}
+.screen5 .blog-head {
+ text-align:center;
+ margin-bottom:30px;
+ color:#696969
+}
+.screen5 .blog-date {
+ font-size:20px;
+ color:#fff;
+ text-align:center;
+ margin-bottom:20px;
+ width:100px;
+ height:110px;
+ background:#4B80CB
+}
+.screen5 .blog-date .hrs {
+ margin:10px auto;
+ width:60%;
+ border-color:#a9c3e6
+}
+.screen5 .blog-article {
+ width:calc(100% - 100px);
+ height:110px;
+ background:#fff
+}
+.screen5 .blog-article .h5 {
+ line-height:1.3em
+}
+.screen5 .blog-body:hover .blog-date {
+ background-color:#2fba66
+}
+.screen6 {
+ width:100%;
+ background:#FAFAFB;
+ padding:40px 0 80px;
+ text-align:center
+}
+.screen6 .cloud_server {
+ color:#696969;
+ height:100px
+}
+.screen6 .collaborate {
+ width:400%;
+ position:relative;
+ height:150px
+}
+.screen6 .collaborate ul {
+ height:110px;
+ width:25%;
+ float:left
+}
+.screen6 .collaborate ul li {
+ float:left;
+ width:20%;
+ min-width:180px;
+ height:55px
+}
+.screen6 .collaborate ul li .partner {
+ width:190px;
+ height:46px;
+ background:url(../images/partner.png) no-repeat
+}
+.screen6 .collaborate ul li .aliyun {
+ background-position:-206px 0
+}
+.screen6 .collaborate ul li .amazon {
+ background-position:-191px -60px
+}
+.screen6 .collaborate ul li .qingcloud {
+ background-position:-191px -120px
+}
+.screen6 .collaborate ul li .segmentfault {
+ background-position:-191px -170px
+}
+.screen6 .collaborate ul li .oschina {
+ background-position:-191px -223px
+}
+.screen6 .collaborate ul li .coding {
+ background-position:-191px -282px
+}
+.screen6 .collaborate ul li .fir_im {
+ background-position:-191px -345px
+}
+.screen6 .collaborate ul li .gitcafe {
+ background-position:-191px -400px
+}
+.screen6 .collaborate ul li .appcan {
+ background-position:-191px -473px
+}
+.screen6 .collaborate ul li .jisuanke {
+ background-position:-191px -528px
+}
+.screen6 .collaborate ul li .partner2 {
+ width:190px;
+ height:46px;
+ background:url(../images/partner2.png) no-repeat
+}
+.screen6 .collaborate ul li .kaiyuanshe {
+ background-position:-15px 0
+}
+.screen6 .collaborate ul li .meituan {
+ background-position:-25px -53px
+}
+.screen6 .collaborate ul li .easemob {
+ background-position:0 -108px
+}
+.screen6 .collaborate ul li .wilddog {
+ background-position:0 -162px
+}
+.screen6 .collaborate ul li .yuntongxun {
+ background-position:0 -215px
+}
+.screen6 .collaborate ul li .cloudwise {
+ background-position:10px -260px
+}
+.screen6 .collaborate ul li .udesk {
+ background-position:-5px -319px
+}
+.screen6 .collaborate ul li .upcloud {
+ background-position:-5px -365px
+}
+.screen6 .collaborate ul li .gbtags {
+ background-position:-5px -470px
+}
+.screen6 .collaborate ul li .oneapm {
+ background-position:-5px -415px
+}
+.screen6 .collaborate ul li .partner3 {
+ width:190px;
+ height:46px;
+ background:url(../images/partner3.png?rev=0.21) no-repeat
+}
+.screen6 .collaborate ul li .qiniu {
+ background-position:0 0
+}
+.screen6 .collaborate ul li .anchnet {
+ background-position:10px -60px
+}
+.screen6 .collaborate ul li .rongkecloud {
+ background-position:-15px -116px
+}
+.screen6 .collaborate ul li .zhugeio {
+ background-position:-15px -176px
+}
+.screen6 .collaborate ul li .yuantuan {
+ background-position:-15px -242px
+}
+.screen6 .collaborate ul li .kr36 {
+ background-position:-15px -360px
+}
+.screen6 .collaborate ul li .kf5 {
+ background-position:-15px -300px
+}
+.screen6 .collaborate ul li .bee {
+ background-position:0 -418px
+}
+.screen6 .collaborate ul li .bmob {
+ background-position:10px -465px
+}
+.screen6 .collaborate ul li .unisound {
+ background-position:-10px -533px
+}
+.screen6 .collaborate ul li .safedog {
+ background-position:-10px -591px
+}
+.screen6 .collaborate ul li .apistore {
+ background-position:-10px -650px
+}
+.screen6 .collaborate .partnerRun {
+ position:absolute;
+ bottom:0;
+ left:10px;
+ width:24.6%;
+ text-align:center
+}
+.screen6 .collaborate .partnerRun .slide {
+ display:inline-block;
+ width:10px;
+ height:10px;
+ border-radius:10px;
+ border:1px solid #9C9C9C;
+ margin:0 8px;
+ cursor:pointer;
+ transition:all .3s
+}
+.screen6 .collaborate .partnerRun .slide.active {
+ background:#9C9C9C
+}
+.screen7 {
+ padding:60px 0 100px
+}
+.screen7 .cloud_server {
+ text-align:center;
+ margin-bottom:30px;
+ color:#696969
+}
+.screen7 .media-item {
+ width:150px;
+ height:70px
+}
+.screen7 .media-content {
+ line-height:1.2em
+}
+@keyframes move_top {
+ from {
+ left:0;
+ top:0
+}
+to {
+ left:10%
+}
+}@-moz-keyframes move_top {
+ from {
+ left:0
+}
+to {
+ left:10%
+}
+}@-webkit-keyframes move_top {
+ from {
+ left:0
+}
+to {
+ left:10%
+}
+}@-o-keyframes move_top {
+ from {
+ left:0
+}
+to {
+ left:10%
+}
+}
\ No newline at end of file
diff --git a/template/default/assets/images/alipay.png b/template/default/assets/images/alipay.png
new file mode 100644
index 0000000..1054261
Binary files /dev/null and b/template/default/assets/images/alipay.png differ
diff --git a/template/default/assets/images/banner4.png b/template/default/assets/images/banner4.png
new file mode 100644
index 0000000..3413824
Binary files /dev/null and b/template/default/assets/images/banner4.png differ
diff --git a/template/default/assets/images/bj_registry_list.png b/template/default/assets/images/bj_registry_list.png
new file mode 100644
index 0000000..385d87f
Binary files /dev/null and b/template/default/assets/images/bj_registry_list.png differ
diff --git a/template/default/assets/images/container_server_icon.png b/template/default/assets/images/container_server_icon.png
new file mode 100644
index 0000000..06e7847
Binary files /dev/null and b/template/default/assets/images/container_server_icon.png differ
diff --git a/template/default/assets/images/hostingupline.png b/template/default/assets/images/hostingupline.png
new file mode 100644
index 0000000..ed723c3
Binary files /dev/null and b/template/default/assets/images/hostingupline.png differ
diff --git a/template/default/assets/images/hub.banner.jpg b/template/default/assets/images/hub.banner.jpg
new file mode 100644
index 0000000..915e162
Binary files /dev/null and b/template/default/assets/images/hub.banner.jpg differ
diff --git a/template/default/assets/images/qqpay.png b/template/default/assets/images/qqpay.png
new file mode 100644
index 0000000..8888496
Binary files /dev/null and b/template/default/assets/images/qqpay.png differ
diff --git a/template/default/assets/images/server_item.png b/template/default/assets/images/server_item.png
new file mode 100644
index 0000000..ba3b8f1
Binary files /dev/null and b/template/default/assets/images/server_item.png differ
diff --git a/template/default/assets/images/tenpay.png b/template/default/assets/images/tenpay.png
new file mode 100644
index 0000000..bf945b3
Binary files /dev/null and b/template/default/assets/images/tenpay.png differ
diff --git a/template/default/assets/images/tese.jpg b/template/default/assets/images/tese.jpg
new file mode 100644
index 0000000..0f2ce6e
Binary files /dev/null and b/template/default/assets/images/tese.jpg differ
diff --git a/template/default/assets/images/tesetubiao.png b/template/default/assets/images/tesetubiao.png
new file mode 100644
index 0000000..a066614
Binary files /dev/null and b/template/default/assets/images/tesetubiao.png differ
diff --git a/template/default/assets/images/wxpay.png b/template/default/assets/images/wxpay.png
new file mode 100644
index 0000000..5c85197
Binary files /dev/null and b/template/default/assets/images/wxpay.png differ
diff --git a/template/default/doc.php b/template/default/doc.php
new file mode 100644
index 0000000..9905698
--- /dev/null
+++ b/template/default/doc.php
@@ -0,0 +1,325 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 协议规则
+
+
传输方式:HTTP
+
数据格式:JSON
+
签名算法:MD5
+
字符编码:UTF-8
+
+
+
+ [API]创建商户
+
+
API权限:该API只能合作支付商户调用
+
URL地址:api.php?act=apply&token={合作者身份TOKEN}&url={商户域名}
+
请求参数说明:
+
+ 字段名 变量名 必填 类型 示例值 描述
+
+ 操作类型 act 是 String apply 此API固定值
+ 合作者TOKEN token 是 String 9ddab6c4f2c87ce442de371b04f36d68 需要事先申请
+ 商户域名 url 是 String pay.v8jisu.cn
+
+
+
返回结果:
+
+ 字段名 变量名 类型 示例值 描述
+
+ 返回状态码 code Int 1 1为成功,其它值为失败
+ 返回信息 msg String 添加支付商户成功!
+ 商户ID pid Int 1001 所创建的商户ID
+ 商户密钥 key String(32) 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i 所创建的商户密钥
+ 商户类型 type Int 1 此值暂无用
+
+
+
+
+
+ [API]查询商户信息与结算规则
+
+
URL地址:api.php?act=query&pid={商户ID}&key={商户密钥}
+
请求参数说明:
+
+ 字段名 变量名 必填 类型 示例值 描述
+
+ 操作类型 act 是 String query 此API固定值
+ 商户ID pid 是 Int 1001
+ 商户密钥 key 是 String 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i
+
+
+
返回结果:
+
+ 字段名 变量名 类型 示例值 描述
+
+ 返回状态码 code Int 1 1为成功,其它值为失败
+ 商户ID pid Int 1001 所创建的商户ID
+ 商户密钥 key String(32) 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i 所创建的商户密钥
+ 商户类型 type Int 1 此值暂无用
+ 商户状态 active Int 1 1为正常,0为封禁
+ 商户余额 money String 0.00 商户所拥有的余额
+ 结算账号 account String pay@cccyun.cn 结算的支付宝账号
+ 结算姓名 username String 张三 结算的支付宝姓名
+ 满多少自动结算 settle_money String 30 此值为系统预定义
+ 手动结算手续费 settle_fee String 1 此值为系统预定义
+ 每笔订单分成比例 money_rate String 98 此值为系统预定义
+
+
+
+
+
+ [API]修改结算账号
+
+
URL地址:api.php?act=change&pid={商户ID}&key={商户密钥}&account={结算账号}&username={结算姓名}
+
注:为了保障资金安全,已经设置结算账号的无法再进行修改,如需修改请联系客服
+
请求参数说明:
+
+ 字段名 变量名 必填 类型 示例值 描述
+
+ 操作类型 act 是 String change 此API固定值
+ 商户ID pid 是 Int 1001
+ 商户密钥 key 是 String 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i
+ 结算账号 account 是 String pay@cccyun.cn 结算的支付宝账号
+ 结算姓名 username 是 String 张三 结算的支付宝姓名
+
+
+
返回结果:
+
+ 字段名 变量名 类型 示例值 描述
+
+ 返回状态码 code Int 1 1为成功,其它值为失败
+ 返回信息 msg String 修改收款账号成功!
+
+
+
+
+
+ [API]查询结算记录
+
+
URL地址:api.php?act=settle&pid={商户ID}&key={商户密钥}
+
请求参数说明:
+
+ 字段名 变量名 必填 类型 示例值 描述
+
+ 操作类型 act 是 String settle 此API固定值
+ 商户ID pid 是 Int 1001
+ 商户密钥 key 是 String 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i
+
+
+
返回结果:
+
+ 字段名 变量名 类型 示例值 描述
+
+ 返回状态码 code Int 1 1为成功,其它值为失败
+ 返回信息 msg String 查询结算记录成功!
+ 结算记录 data Array 结算记录列表
+
+
+
+
+
+ [API]查询单个订单
+
+
URL地址:api.php?act=order&pid={商户ID}&key={商户密钥}&out_trade_no={商户订单号}
+
请求参数说明:
+
+ 字段名 变量名 必填 类型 示例值 描述
+
+ 操作类型 act 是 String order 此API固定值
+ 商户ID pid 是 Int 1001
+ 商户密钥 key 是 String 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i
+ 商户订单号 out_trade_no 是 String 20160806151343349
+
+
+
返回结果:
+
+ 字段名 变量名 类型 示例值 描述
+
+ 返回状态码 code Int 1 1为成功,其它值为失败
+ 返回信息 msg String 查询订单号成功!
+ 易支付订单号 trade_no String 2016080622555342651 订单号
+ 商户订单号 out_trade_no String 20160806151343349 商户系统内部的订单号
+ 支付方式 type String alipay alipay:支付宝,tenpay:财付通, qqpay:QQ钱包,wxpay:微信支付
+ 商户ID pid Int 1001 发起支付的商户ID
+ 创建订单时间 addtime String 2016-08-06 22:55:52
+ 完成交易时间 endtime String 2016-08-06 22:55:52
+ 商品名称 name String VIP会员
+ 商品金额 money String 1.00
+ 支付状态 status Int 0 1为支付成功,0为未支付
+
+
+
+
+
+ [API]批量查询订单
+
+
URL地址:api.php?act=orders&pid={商户ID}&key={商户密钥}
+
请求参数说明:
+
+ 字段名 变量名 必填 类型 示例值 描述
+
+ 操作类型 act 是 String orders 此API固定值
+ 商户ID pid 是 Int 1001
+ 商户密钥 key 是 String 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i
+ 查询订单数量 limit 否 Int 20 返回的订单数量,最大50
+ 页码 page 否 Int 1 当前查询的页码
+
+
+
返回结果:
+
+ 字段名 变量名 类型 示例值 描述
+
+ 返回状态码 code Int 1 1为成功,其它值为失败
+ 返回信息 msg String 查询结算记录成功!
+ 订单列表 data Array 订单列表
+
+
+
+
+
+ [API]二维码下单接口
+
+
此接口可用于服务器后端发起支付请求,会返回支付二维码链接
+
URL地址:qrcode.php?pid={商户ID}&type={支付方式}&out_trade_no={商户订单号}¬ify_url={服务器异步通知地址}&name={商品名称}&money={金额}&sign={签名字符串}&sign_type=MD5
+
请求参数说明:
+
+ 字段名 变量名 必填 类型 示例值 描述
+
+ 商户ID pid 是 Int 1001
+ 支付方式 type 是 String alipay qqpay:QQ钱包,wxpay:微信支付
+ 商户订单号 out_trade_no 是 String 20160806151343349
+ 异步通知地址 notify_url 是 String http://www.cccyun.cc/notify_url.php 服务器异步通知地址
+ 商品名称 name 是 String VIP会员
+ 商品金额 money 是 String 1.00
+ 签名字符串 sign 是 String 202cb962ac59075b964b07152d234b70 签名算法与支付宝签名算法 相同
+ 签名类型 sign_type 是 String MD5 默认为MD5
+
+
+
返回结果:
+
+ 字段名 变量名 类型 示例值 描述
+
+ 返回状态码 code Int 1 1为成功,其它值为失败
+ 返回信息 msg String 下单成功!
+ 订单号 trade_no String 20160806151343349
+ 商户订单号 out_trade_no String 20160806151343349
+ 二维码链接 code_url String weixin://wxpay/bizpayurl?pr=04IPMKM
+
+
+
+
+
+
+ 发起支付请求
+
+
URL地址:submit.php
+
POST数据:pid={商户ID}&type={支付方式}&out_trade_no={商户订单号}¬ify_url={服务器异步通知地址}&return_url={页面跳转通知地址}&name={商品名称}&money={金额}&sitename={网站名称}&sign={签名字符串}&sign_type=MD5
+
请求参数说明:
+
+ 字段名 变量名 必填 类型 示例值 描述
+
+ 商户ID pid 是 Int 1001
+ 支付方式 type 是 String alipay alipay:支付宝,tenpay:财付通, qqpay:QQ钱包,wxpay:微信支付
+ 商户订单号 out_trade_no 是 String 20160806151343349
+ 异步通知地址 notify_url 是 String http://www.cccyun.cc/notify_url.php 服务器异步通知地址
+ 跳转通知地址 return_url 是 String http://www.cccyun.cc/return_url.php 页面跳转通知地址
+ 商品名称 name 是 String VIP会员
+ 商品金额 money 是 String 1.00
+ 网站名称 sitename 否 String 彩虹云任务
+ 签名字符串 sign 是 String 202cb962ac59075b964b07152d234b70 签名算法与支付宝签名算法 相同
+ 签名类型 sign_type 是 String MD5 默认为MD5
+
+
+
+
+
+ 支付结果通知
+
+
通知类型:服务器异步通知(notify_url)、页面跳转通知(return_url)
+
请求方式:GET
+
请求参数说明:
+
+ 字段名 变量名 必填 类型 示例值 描述
+
+ 商户ID pid 是 Int 1001
+ 易支付订单号 trade_no 是 String 20160806151343349021 订单号
+ 商户订单号 out_trade_no 是 String 20160806151343349 商户系统内部的订单号
+ 支付方式 type 是 String alipay alipay:支付宝,tenpay:财付通, qqpay:QQ钱包,wxpay:微信支付, alipaycode:支付宝扫码,jdpay:京东支付
+ 商品名称 name 是 String VIP会员
+ 商品金额 money 是 String 1.00
+ 支付状态 trade_status 是 String TRADE_SUCCESS
+ 签名字符串 sign 是 String 202cb962ac59075b964b07152d234b70 签名算法与支付宝签名算法 相同
+ 签名类型 sign_type 是 String MD5 默认为MD5
+
+
+
+
+
+
+ SDK下载
+
+
+SDK.zip
+SDK版本:V1.1
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/template/default/foot.php b/template/default/foot.php
new file mode 100644
index 0000000..ef58dee
--- /dev/null
+++ b/template/default/foot.php
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
©2020 All Rights Reserved.
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/template/default/head.php b/template/default/head.php
new file mode 100644
index 0000000..39a40f6
--- /dev/null
+++ b/template/default/head.php
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
你当前的浏览器版本过低,请您升级至IE9以上版本,以达到最佳效果,谢谢!X
+
+
\ No newline at end of file
diff --git a/template/default/index.php b/template/default/index.php
new file mode 100644
index 0000000..b69a355
--- /dev/null
+++ b/template/default/index.php
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
欢迎使用
+
提供免签约支付宝、QQ钱包、微信支付
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
多种支付方式
+
支持财付通 支付宝 微信 QQ钱包
+
+
+
+
+
+
+
对接费率超低
+
每笔交易手续费低至2%,比其它平台更便宜
+
+
+
+
+
+
+
无需自主提现
+
满一定金额即可自动提现到你的支付宝账号
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
平台合作伙伴
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/template/default/preview.png b/template/default/preview.png
new file mode 100644
index 0000000..7a1041f
Binary files /dev/null and b/template/default/preview.png differ
diff --git a/template/index1/aboutUs.php b/template/index1/aboutUs.php
new file mode 100644
index 0000000..4e27ecf
--- /dev/null
+++ b/template/index1/aboutUs.php
@@ -0,0 +1,197 @@
+
+
+
+
+
+
+
+
+
+ 成立于2016年10月,公司业务面向企业SAAS服务, 主要核心产品是支付清结算云服务:云支付、云结算、云钱包、云电商、大数据; 在此核心产品基础上为企业提供全面整套的互联网+解决方案,与企业开放、合作、共赢! 我们为企业提供网上支付SAAS系统方案,企业只需要在平台注册商务服务账号, 通过SAAS前台服务填写对应的参数,签订好相关的法律协议即可使用, 无需企业再次开发相应支付系统,根据使用接口的情况收取服务费用, 仅收取相应套餐费用和套餐内增值业务费用。
+
+
+
+
+
+ 发展历程
+
+
+
+
+
+
+
+
+
+
+ 10月
+
+
+
+ 我们的公司成立了!
+
+
+
+ 2016年10月,在中国注册成立。
+
+
+
+
+
+
+
+
+ 11月15日
+
+
+
+ 开始制作我们的产品——!
+
+
+
+ 2016年11月15日,团队组建完毕,一切准备就绪,终于要开始制作我们的产品了。
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2月15日
+
+
+
+ 上线了!
+
+
+
+ 2017年2月15日,经过三个月多月的努力和磨合,我们的产品要上线了!
+
+
+
+
+
+
+
+
+ 6月8日
+
+
+
+ 进行系统升级!
+
+
+
+ 2017年6月8日,经过三个多月的运营,从中汲取经验后再由策划专业分析,我们的产品要升级了!
+
+
+
+
+
+
+
+
+ 12月7日
+
+
+
+ V2.0上线了!
+
+
+
+ 2017年12月15日,经过两个月的努力技术开发和业务整改,我们的系统终于完成升级了!
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 加入我们
+
+
+
+ 如果你有兴趣成为我们的团队的一部分,请把你的简历和求职信至
+ , 我们将很快与您联系。
+
+
+
+
\ No newline at end of file
diff --git a/template/index1/agreement.php b/template/index1/agreement.php
new file mode 100644
index 0000000..b79ac9a
--- /dev/null
+++ b/template/index1/agreement.php
@@ -0,0 +1,20 @@
+
+
+
+
+
服务条款
+
请使用本支付系统前,先认真阅读商户服务条款,系统有权力随时更新条款,请您严格遵守我们服务条款内的条约,注册商户后则默认代表您已同意我们的服务条款。
+
+
+
+
+
+
特别提示: 本协议由系统和你共同签订,具有合同法律效力。
请你务必审慎阅读并充分理解各条款内容,特别是免除或者限制责任的条款、争议解决和法律适用条款。免除或者限制责任的条款可能以加粗字体显示,你应重点阅读。除非你已阅读并接受本协议所有条款,否则你无权使用本服务。你使用本服务即视为你已阅读并同意本协议的约束。如你对本协议有任何疑问的,应向客服咨询。
一、定义 如无特别说明,下列术语在本协议中的定义为:
1.1商户号: 指你凭以登录,操作商户平台的账号,你成功申请商户号后,系统将向你在本协议中载明的联系邮箱发送电子邮件,告知你的商户平台登录账号及初始密码,你可在商户平台中修改该初始密码,你亦可根据需要在商户平台中为该登录账号设置对应的商户密钥,用来查询和操作系统商户号。
1.2商户密钥: 指你凭以登录,操作商户平台的账号密码,你成功申请商户号后,系统将向你在本协议中载明的联系邮箱发送电子邮件,告知你的商户平台登录账号及初始密码,你可在商户平台中修改该初始密码,你亦可根据需要在商户平台中为该登录账号设置对应的商户密钥,用来查询和操作系统商户号。
1.3结算: 指用户购买你的商品或服务后,系统在一定周期内将交易资金记账至你的系统商户号,并根据协议约定和你设置提现至你银行账户的行为。
1.4提现: 系统根据你指令或协议约定,在一定周期内向备付金存款银行发出转账指令,要求备付金存款银行将相应资金转账至你指定的合法收款账户的行为。
二、服务内容 2.1本服务的场景和功能。 系统为你提供货币资金转移服务,当用户购买你的商品或服务时,可通过本服务完成交易。本服务的具体运用包括WAP支付,H5支付等
2.2服务限制。本服务仅能用于你在商户平台申报并经核准的商品或服务,且每笔订单不能超过系统规定的限额。你了解并同意系统有权根据你经营的商品或服务类型,以及你经营活动的风险状况调整你的交易额度。
三、系统的权利和义务 3.1支付系统建设。 系统负责支付系统的建设、运行和管理,并确保该系统的安全性。
3.2交易查询。 系统设立网上交易查询系统及查询接口,为你提供商户信息管理和交易信息查询服务。
3.3支付指令校验。 系统依据你的商户平台登录账号、登录密码来校验你支付指令的真实性、有效性。当你的商户平台登录账号和登录密码均校验通过时,即视为系你本人操作系统商户号,系统无需校验其他信息即可执行支付指令。
3.4交易纠纷处理。系统仅为你提供货币资金转移服务,你与用户或其他主体之间的纠纷由你自行负责处理,与系统无关,但是,因系统系统故障引起的资金转移服务纠纷除外。
3.5商户经营审核。系统有权定期或不定期审核你的业务类型,以及通过本服务售卖的物品和服务,若你违反本协议第2.2条约定或从事不符合国家相关法律法规规定的经营活动时,系统有权暂停或终止提供服务。
3.6交易停滞。你自开户之日起6个月内无交易记录,或连续180个自然日未利用本服务产生交易额的,系统有权暂停服务并要求你重新核实身份,你不予配合或身份核实未通过的,系统有权终止本协议且无需承担任何法律责任。如果你的受理终端或收款码连续3个月内未发生交易,系统有权暂停服务并要求你重新核实身份,你不予配合或身份核实未通过的,系统有权停止为你提供收款服务。如果你的受理终端或收款码连续12个月内未发生交易的,系统有权停止为你提供收款服务。
3.7延迟结算。 系统发现你可能存在洗钱、恐怖融资、欺诈交易、信用卡套现、恶意倒闭或其他违法违规行为,或系统发现你存在集中转入分散转出等可疑交易特征的交易或存在争议交易时,系统可以对你系统商户号中的相应资金进行延迟结算,已经结算的,系统可以延迟转账到你指定银行帐户和支付帐户。对于延迟结算、延迟转账的资金,直至排除违法违规嫌疑时,系统才恢复该部分资金的结算和转账。你的行为导致系统遭受损失的,你还应当承担赔偿责任。
3.8身份验证和授权。 你使用本服务,即表明你同意系统收集、记录和使用你使用本服务过程中产生的相关信息和数据,包括但不限于你及其法定代表人、负责人的身份信息、账户信息和交易信息等,并将前述信息提交国家机关、金融机构和其他企事业单位进行身份验证和鉴权。系统有权根据需要收集、保存、核实你法定代表人、负责人的音频和视频资料。为更好地提供服务,系统及关联公司有权在法律允许的范围内自行收集、记录、使用上述信息和数据。
3.9系统有权对你的业务进行风险管理,持续监测和分析交易金额、笔数、类型、时间、频率和收款方、付款方等特征,完善可疑交易监测模型。如系统发现交易金额、时间、频率与特约商户经营范围、规模不相符等异常情形的,有权对你采取延迟资金结算、设置收款限额、暂停银行卡交易、暂停使用权限等措施。
四、你的权利和义务 4.1账号开立和身份验证。 你在申请开立系统商户号时,应向系统如实提供相关的个人信息。你应保证所提交的上述资料的准确性、真实性、完整性。你上述信息发生变更,或你迁址、停业、变更域名或联系电话等资料信息,应提前通知系统,否则,系统有权视具体情况暂停服务,你未及时通知导致的一切投诉和纠纷,均由你承担。系统有权根据国家法律法规、规章制度、行业规范、政策要求的规定,要求你补充提交相关信息和资料,你逾期未提交或未通过系统核验的,系统有权解除本协议或暂停你系统商户号的全部或部分功能。
4.2账号使用。你不得把系统商户号、系统提供的技术接口、安全协议及证书用于本协议范围以外的用途,也不得出租、转让给第三方使用。你不得将其他商户的交易假冒成自己的交易与系统结算。你应充分了解并清楚知晓出租、出借、出售、购买账号的相关法律责任和惩戒措施,承诺依法依规开立和使用你的账号。
4.3禁止存储用户敏感信息。你不得存储用户银行账户密码、银行卡的磁道信息或芯片信息、银行卡验证码和有效期等敏感信息,不得泄露用户信用卡信息和借记卡信息等。
4.4账号保管和挂失。你应妥善保管系统商户号及其密码,以及手机短信验证码、API Key等。系统商户号下的一切行为均视为你的行为。若你需对系统商户号挂失,应及时与客服人员联系并按照客服人员的指引进行操作,若客服人员要求你提供书面证明材料才能进行下一步挂失操作的,你应及时提交书面证明材料。若你发现系统商户号被盗用,应立即向系统发起挂失。因你管理不善导致系统商户号被盗用的,一切损失由你自行承担。
4.5止付和撤销。由于系统系统的实时性和不可更改性,你向系统发起的任何支付指令,在系统执行后,均为不可撤销或更改的。支付指令一旦被系统执行,你不得要求止付、更改或撤销。
4.6规范使用。 未经系统书面授权,你不得转载、复制、截取、篡改系统的商标、标识、Logo等内容或制作与该内容有关的衍生产品。未经系统另行书面授权,除了在商户中心登记的域名外,你不得在任何网页或APP页面展示与系统有关的链接、弹窗或与H5支付有关的内容及其衍生产品。
4.7商户系统安全与维护。 你应负责自身的硬件平台搭建并承担相关的设备费用及通讯费用。你应严格按照本服务和商户平台的接入技术规范来建设和运行自己的计算机系统并确保自身系统的安全性。你应在系统交易过程中验证系统请求和响应数据包中的签名真实性,并保障支付信息数据传输过程中的安全性、保密性。你应向系统明确各方数据传输协议、安全机制、硬件需求以及物理连接等诸多技术细节的具体需求,并妥善处理系统反馈的各种交易异常情况。
4.8真实交易背景。 你承诺发起的本服务交易基于真实的交易,不得利用本服务从事虚假交易。
4.9保存订单信息。 你应保证订单信息的合法性、真实性、准确性和完整性。你在受理用户订单时,须记录包括但不限于以下信息:用户姓名、手机号码,订购产品的产品名称、产品编号、产品单价、合计索取价格、配送信息。你应按系统的要求向系统提供详细的、真实可信的交易字段,包括但不限于订单号、商品名称、商品描述等。你还应妥善保留有关交易数据和凭证,包括但不限于订单和用户接受货物时签字的有关单据,由交易发生之日起或本协议终止之日起,至少保留三年。在协议有效期内和协议终止之日起三年内,对系统提出的查询通知及调单要求,你应在接到系统通知后,以信件或传真的方式在两个工作日内将相关单据交付给系统。
4.10第三方网络交易平台。若你经营第三方网络交易平台,不得利用本服务从事非法支付结算业务,并应配备相应的系统、人员和完善的制度。你应当识别二级商户的身份信息和经营资质,并收集、保存二级商户的营业执照、税务登记证、组织机构代码证、法定代表人身份证明等,若二级商户从事国家规定专营、专控或需要取得国家前置行政许可的经营活动,还应提供该相关资质证照。你应保证二级商户所提交的上述资料的准确性、真实性、完整性。同时,你还应收集、保存并向系统传输二级商户的交易订单信息,包括但不限于:用户姓名、手机号码,订购产品的产品名称、产品编号、产品单价、合计索取价格、配送信息。你还应妥善保留二级商户的交易数据和凭证,包括但不限于订单和用户接受货物时签字的有关单据,由交易发生之日起或本协议终止之日起,至少保留五年。在协议有效期和协议终止之日起五年内,对系统提出的查询通知及调单要求,你应在接到系统通知后,以信件或传真的方式在两个工作日内将相关单据回复给系统。对系统提出的风险交易,你应按系统要求对其二级商户交易进行有效识别、追溯及在必要时实施暂停业务管理的措施,同时承担因二级商户发展和管理不善造成的全部风险损失,你应保证二级商户不再发展下一级商户。
第三方网络交易平台,指在网络商品交易活动中为交易双方或者多方提供网页空间、虚拟经营场所、交易规则、交易撮合、信息发布等服务,供交易双方或者多方独立开展交易活动的信息网络系统。
二级商户,指在你经营的第三方网络交易平台中销售商品或服务的自然人或企事业单位。
4.11第三方网络交易平台的风险防范。若你经营第三方网络交易平台,则你需对二级商户的交易行为的真实性、合法性进行监控和管理,你应防止二级商户利用系统从事信用卡套现、洗钱、虚假交易等违法违规活动。若出现二级商户利用系统从事信用卡套现、洗钱、虚假交易等违法违规活动的,则系统有权解除本协议,并追究你的违约责任。
4.12反套现、反洗钱。你不得主动或协助持卡人进行信用卡套现、洗钱、交易分单等违法经营行为,不得出现虚假申请、恶意倒闭等严重风险行为,否则,系统有权暂停或终止提供本协议服务,并将你的信息报送至中国人民银行和公安部及相关监管机构。
4.13实物和虚拟。你需利用本服务同时经营实物类和虚拟类的商品或服务时,应当针对实物类和虚拟类的商品或服务分别申请系统商户号,不得用同一系统商户号同时经营实物类和虚拟类的商品或服务。否则,系统有权解除本协议,并追究你的违约责任。
实物类,指需要物流配送的实物商品或需要记录和核实消费者身份信息的商品或服务;虚拟类,指非实物且不记录购买者身份信息,也无需物流配送的商品或服务。
4.14安全守则。 你不得对系统的计算机系统和程序采取反向工程手段进行破解,不得对前述系统和程序(包括但不限于源程序、目标程序、软件文档、运行在本地电脑内存中的数据、客户端至服务器端的数据、服务器数据等)进行复制、修改、编译、整合和篡改,不得修改或增加系统提供的任何服务的软件系统的原有功能。
4.15你应切实维护消费者合法权益,不得对采用不同支付方式的消费者采取歧视性措施。
4.16你应当遵守的其他义务:
(1)不得将签购单、签购结算单、业务受理标识牌、终端机具用于系统核准范围以外的用途,也不得给协议许可范围以外的第三方使用;
(2)不得将系统接口委托或转让给第三方;
(3)不得招聘无本人身份证原件的人员作为收银员,不得让未经培训合格的收银员操作受理终端;
(4)金饰店、珠宝店、名牌钟表店、金银币专卖店等风险较高的你必须加装录像监控设施,对支付过程进行清晰记录,录像资料保留时间不少于3个月;
(5)对单笔交易金额超过(含)5万元人民币的系统交易核对用户身份证原件;
(6)根据协议约定规范受理系统,在协议有效期内不得拒绝受理系统;
(7)不得代其他商户发起交易,不得转卖、租借受理终端(网络支付接口)和银行结算账户;
(8)不得要求其他商户代理发起交易,不得使用转卖、租借的受理终端(网络支付接口)和银行结算账户;
(9)妥善保管交易数据信息,确保只有授权人员接触,建立健全的内部结算管理制度;
(10)不得向使用消费者征收任何附加费或额外费用,或提供低于现金支付水平的服务;
4.17保障消费者合法权益。 你应切实维护用户合法权益,确保使用各种支付方式的用户均享受一致性公平待遇,不得向使用特定支付方式的用户转嫁或变相转嫁系统收取的服务费用,不得无理拒绝用户使用已经开通的支付方式。
五、服务费用和交易结算 5.1系统手续费(含税)
5.1.1你使用本服务,应向系统缴纳系统手续费(以下简称”支付手续费”)。
5.1.2系统将从你的每笔交易款中扣除一定费率的支付手续费,支付手续费的费率以商户平台核准记录的为准;在合作过程中,你可能因满足相关优惠条件而在一定期限内享受系统给予的优惠费率,当你不再满足优惠条件或优惠期限届满时,系统有权将费率恢复为原有费率,具体以商户平台核准记录的为准。
5.1.3若遇国家政策调整,或中国人民银行、合作机构的政策调整,系统有权据此调整支付手续费率并对你进行通知,你在收到系统通知后五个工作日内对调整后的支付手续费率未提出书面异议的,按调整后的费率执行。双方无法就费率变更达成一致意见的,可终止本协议。
5.2误差
各方确认并同意,涉及费率结算如因小数点后两位进位而产生微小误差,各方均予以认可。
5.3交易结算
5.3.1系统在扣除支付手续费后,将剩余交易款记账至你的系统商户号。
5.3.2你的提现账户为你申请本服务时提交的同名银行账户或其他存在合法资金管理关系的单位银行账户,若因你或银行的原因导致交易款项无法按时提现至你提交的银行账户的,系统不承担任何责任。
5.3.3若你需变更提现账户或需授权结算,应与系统另行签订补充协议或在商户平台自助修改。因你变更账户或指定收款人但未及时通知系统导致增加的额外成本或任何损失,由你承担。
5.3.4对于发生在T日的交易,若你没有进行特殊设置或操作,系统将按照商户平台核准记录的期限将扣除支付手续费后的交易款项提现至你银行账户,款项到账时间取决于银行系统的清算周期(若你是金融机构或是从事金融业务的其他机构,系统有权根据系统商户平台公告的时间,定期对你的系统商户号余额进行清零,并将对应资金提现至你的银行账户。你应在商户号被清零后及时充值,以免影响手续费、退款等资金结算)。
5.3.5你可根据商户平台和系统客服的指引申请变更提现规则,最终以商户平台核准记录的为准。
5.3.6若你接入本服务不满90日或者接入本服务后连续正常交易不满30日,系统不提供T+0资金提现服务,系统将该类你T日的交易资金记账至系统商户号的,你不得在T日划转该交易资金。无论你何时接入本服务,系统均有权根据你的经营状况、业务变化及实际赔付情况调整提现周期,并以电子邮件通知的方式通知你。
5.3.7你与系统对账数据不一致的,以系统数据为准。
5.3.8若你要求系统开具发票,应在首次开票前按照系统要求及时提交准确、完整的发票信息,系统每月就系统手续费向你开具上月增值税服务费发票。若你要求开具增值税专用发票,应向系统提交相关资质材料。
六、保证金 6.1系统有权要求你缴纳风险保证金,保证金额度以商户平台核准记录的为准。在本协议有效期内,风险保证金款项冻结于你保证金账户中,你不得提前解冻、提取或使用。
6.2系统有权根据你的经营状况、业务变化及实际赔付情况调整你应当缴纳的保证金额度,并以电子邮件通知的方式通知你补足保证金金额,如你未能在收到通知后的五个工作日内补足保证金,则系统有权暂停为你提供服务。如你在收到上述通知后的三十天内未补足保证金,系统可单方解除本合同而无需承担任何法律责任。
6.3若你在使用公众账号和本服务过程中没有违约行为,且你主动注销本服务满一年仍未受到任何第三方投诉或发生交易纠纷的,应解冻保证金账户的风险保证金,你可自主提取保证金本金,在此之前,你无权动用保证金本金,保证金解冻后无息归还你。
6.4若你违反国家法律、法规、政策、法令或你违反对用户的承诺或违反与系统的约定致用户或系统受损时,系统有权直接使用你缴纳的保证金对用户或系统进行赔付,保证金不足以赔偿的,系统可以直接从你的待结算款项中扣划,仍不足以赔偿的,可以继续向你追偿。
七、退款条款 对于你的交易中出现的退款情形,按如下规则处理:
7.1当你向系统提出退款请求时,你在自己的系统商户号中应有足够资金用于退款,系统有权直接从你的系统商户号中扣除退款金额完成退款,如因你资金不足导致无法退款的,其后果由你自行承担。系统按照你的退款请求处理退款时,如因银行原因或用户原因导致退款失败的,系统可将退款金额退至你的系统商户号,你可再次发起退款请求或自行处理退款。
7.2退款时,系统不再另行收取交易手续费,但若银行方面需要向系统另行收取相关费用的,则此费用应由你自行承担,系统可在为你垫付该费用后在你的交易款中扣除。
7.3你负责解决和承担用户拒付交易款项而导致的退款纠纷或责任。
八、保密条款 8.1除本协议另有约定外,未经一方书面同意,任何一方不得将本协议内容、用户个人信息、用户支付信息以及接口技术、安全协议及证书等透露给第三方。
8.2各方对在履行协议中获得的商业机密和技术秘密负保密责任。出现下列任一情况时,系统有权披露你的相关商业信息:
(1)人民银行或银保监会、证监会等金融业监管机构要求系统提供你的相关商业信息的;
(2)公安机关、人民法院、人民检察院或有权行政机关要求系统提供你的相关商业信息的;
(3)用户投诉,要求系统提供你的相关商业信息,经系统查实后认为可以提供的。
本协议所称商业信息包括但不限于你与用户之间的交易单号、交易凭证、资金流水等交易信息。
8.3各方保证其雇员及代理人履行本条的保密义务。
8.4上述保密义务在本协议终止后五年内有效。
九、违约责任 9.1各方中的任何一方违反本协议中所做约定的义务,均构成违约。
9.2你有下列情形之一的,系统有权单方面解除本协议并要求你承担相关赔偿责任:
(1)直接或间接参与欺诈,或出租、出借、出售、购买银行账户(含银行卡)或支付账户,或在网上买卖POS机(包括MPOS)、刷卡器等受理终端,或涉嫌实施其他违法犯罪活动的;
(2)经营及财务状况恶化无法正常经营,或被全国企业信用信息公示系统列入“严重违法失信企业名单”,或单位注册地址不存在或者虚构经营场所的;
(3)你或其法定代表人、负责人被中国支付清算协会、银行卡清算机构、其他国家机关、企事业单位列入黑名单,或存在被国家机关、行业协会的处罚记录的;
(4)实施违规操作,或违反本协议、《系统服务条款》、《微信公众平台服务协议》等约定,且经指出拒不改正或在合理期间内虽有改正但无法达到系统整改要求和目标的;
(5)无理拒绝或故意拖延系统交易查询、调单查询或监查要求的;
(6)进入破产程序、解散、营业执照被吊销;
(7)实施有损系统或腾讯利益行为的;
(8)违反本协议或利用系统提供的服务从事非法业务的;
(9)你的软硬件系统存在安全问题,经系统通知后拒不整改的;
(10)出现风险事件或经系统判断交易异常的;
(11)违反系统的相关规则和制度的。
十、账号注销 10.1发生下列情形之一的,系统有权注销你的系统商户号,法律另有规定或本协议另有约定的除外:
(1)你主动申请注销系统商户号的;
(2)本协议解除或终止的;
(3)你利用本服务从事非法活动的;
(4)你违反本协议或违反与系统签订的其他协议的。
10.2无论你的系统商户号是否被注销,系统均有权依据法律规定或国家机关的合法要求,冻结、扣划你系统商户号中的资金。
十一、免责条款 11.1因受不可抗力影响而不能履行或不能完全履行本协议的一方可以免除责任。不可抗力是指本协议各方不能预见、不能避免、不能克服的客观情况。此外,鉴于网络之特殊属性,发生包括但不限于下列任何情形导致系统不能履行本协议下义务的,各方可以免责:
(1)黑客攻击、计算机病毒侵入或发作;
(2)计算机系统遭到破坏、瘫痪或无法正常使用而导致信息或纪录的丢失、系统不能提供本协议项下之服务的;
(3)电信部门技术调整导致之重大影响的;
(4)因政府管制而造成服务终止的;
(5)其它非各方原因造成的。
11.2遇上述不可抗力事件的任何一方,应将该事件立即书面通知其他方。各方按照事件对协议履行的影响程度,再行决定是否继续履行本协议。
十二、风险提示及特别约定 12.1各方对于“中国国内电子商务环境尚未成熟,电子商务立法以及信用体制还不完善”的现状以及开展电子商务业务存在的风险性均完全知悉,各方均承诺采取合理的风险防范措施,以尽量避免或减小风险。
12.2本服务交易过程中,你应积极防范银行卡持卡人拒付风险,及时解决交易中出现的问题:
(1)若在交易中如出现包括但不限于交易不真实、欺诈、伪冒交易、持卡人账户信息泄漏或你违反国家法律规定或你违反对用户的承诺以及你违反与系统的约定之情形,你应自行承担上述情形造成的全部损失;
(2)若在交易中如出现持卡人否认交易、持卡人拒付、集中转入分散转出等可疑情形的,你应依据本协议第4.8和4.9条之要求向系统提供相应的交易凭证,若你怠于提供凭证,或你提供的凭证不符合相关行业内标准,或在系统书面通知(含电子邮件通知)后你未及时停止可疑交易、控制相应资金的等,你应自行承担上述情形造成的全部损失。
你因上述情形给系统造成损失的,系统有权直接从你的保证金中扣回与损失金额同等的金额,你需及时补足保证金。保证金不足以赔偿的,系统可以直接从你的待结算款项中扣划,仍不足以赔偿的,可以继续向你追偿。
12.3你在进行支付交易的过程中,应严格遵守中国人民银行网上银行业务和信用卡交易相关的政策法规,不得进行虚假交易、非法套现、洗钱等行为。你不得直接或变相从事互联网赌博、色情平台,互联网销售彩票平台,非法外汇、贵金属投资交易平台,非法证券期货类交易平台,代币发行融资及虚拟货币交易平台,也不得未经监管部门批准通过互联网开展资产管理业务以及未取得省级政府批文的大宗商品交易场所等非法交易,否则系统有权终止为其提供支付结算服务。
12.4如你申请开通大额支付功能,应确认并同意遵守如下条款:“你保证将系统所提供的大额支付功能用于实名制业务,否则,你应承担因违反上述承诺而造成的一切风险和法律责任,你应对受损方作出无条件的先行赔付。
实名制业务,指用户使用系统提供的在线支付服务购买商品或服务时,该用户提交了所购买商品或服务的最终接收方(或服务的最终受益方)的姓名、身份证号码等真实身份信息的业务
十三、知识产权 13.1系统在本合作中提供的内容(包括但不限于商标、标识、网页、文字、图片等)的知识产权归系统所有。
13.2除另有特别声明外,系统在本合作中提供的软件系统、技术接口、安全证书等所依托的著作权、专利权及其他知识产权均归系统所有。
13.3上述知识产权均受到法律保护,未经系统或相关权利人许可,不得以任何形式进行使用或创造相关衍生作品。
13.4系统对带有系统字样、标识、logo、图片等信息的物料、宣传资料和扫码设备享有知识产权,你不得在经营场所实施或协助、放任他人实施替换、遮盖、涂抹、藏匿、毁坏带有系统字样、标识、logo、图片等信息的物料、宣传资料和扫码设备的行为,否则,你应按照系统的要求恢复原状、赔偿损失。
十四、协议变更 系统有权根据需要不时地制定、修改本协议,如本协议有任何变更,财付将对变更事项在商户平台进行公告。如你不同意相关变更,必须立即以书面的方式通知系统终止为你提供服务。任何修订或新协议将按照法律法规及监管规定在微信公众平台上公布生效。你登录或继续使用服务即表示你接受经修订的协议。
十五、适用法律及争议解决 15.1本协议之解释、适用、争议解决等一切事宜,均适用中华人民共和国大陆地区法律。
15.2因本协议产生任何纠纷时,各方应友好协商,协商不成的,各方应将争议提交系统所在地有管辖权的人民法院诉讼解决。
十六、协议有效期、自动续期和提前终止协议 16.1本协议的有效时间以商户平台确认的时间为准,默认为长期有效;除本协议5.1.2、5.1.3条约定之情形外,若系统在协议有效期内提出费率变更请求,并以微信消息、电子邮件或商户平台信息等形式通知你,自信息发出之日起30日内,你继续使用本服务的,系统有权自30日届满之日起按照变更后的费率向你收取手续费,并从你的待结算款中扣除。
16.2各方有权基于各自的营运需要提前终止本协议,且无需承担任何法律责任。需提前终止本协议的,主动提出方应提前一个月以书面或电子邮件形式通知各方。
16.3协议解除或终止后,涉及到保证金、退款和保密的条款依然有效,各方应继续遵照执行。
16.4本协议一式貳份,双方各执壹份,具有同等法律效力。
+
+
+
+
+
\ No newline at end of file
diff --git a/template/index1/assets/css/main.css b/template/index1/assets/css/main.css
new file mode 100644
index 0000000..400278f
--- /dev/null
+++ b/template/index1/assets/css/main.css
@@ -0,0 +1,4512 @@
+/* Reset */
+
+ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ vertical-align: baseline;
+ font-family:"Microsoft YaHei","Lato","Helvetica Neue",Helvetica,Arial,sans-serif;
+ font-weight: 400;
+ }
+
+ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
+ display: block;
+ }
+ body,html{
+ height: 100%;
+ }
+ body {
+ line-height: 1;
+ }
+
+ ol, ul,li{
+ list-style: none;
+ }
+
+ blockquote, q {
+ quotes: none;
+ }
+
+ blockquote:before, blockquote:after, q:before, q:after {
+ content: '';
+ content: none;
+ }
+
+ table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ }
+
+ body {
+ -webkit-text-size-adjust: none;
+ }
+
+/* Box Model */
+
+ *, *:before, *:after {
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+
+/* Containers */
+
+ .container {
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+ .container.\31 25\25 {
+ width: 100%;
+ max-width: 1200px;
+ min-width: 960px;
+ }
+
+ .container.\37 5\25 {
+ width: 720px;
+ }
+
+ .container.\35 0\25 {
+ width: 480px;
+ }
+
+ .container.\32 5\25 {
+ width: 240px;
+ }
+
+ .container {
+ width: 1200px;
+ }
+
+ @media screen and (max-width: 1800px) {
+
+ .container.\31 25\25 {
+ width: 100%;
+ max-width: 1200px;
+ min-width: 960px;
+ }
+
+ .container.\37 5\25 {
+ width: 720px;
+ }
+
+ .container.\35 0\25 {
+ width: 480px;
+ }
+
+ .container.\32 5\25 {
+ width: 240px;
+ }
+
+ .container {
+ width: 1200px;
+ }
+
+ }
+
+ @media screen and (max-width: 1280px) {
+
+ .container.\31 25\25 {
+ width: 100%;
+ max-width: 1200px;
+ min-width: 960px;
+ }
+
+ .container.\37 5\25 {
+ width: 720px;
+ }
+
+ .container.\35 0\25 {
+ width: 480px;
+ }
+
+ .container.\32 5\25 {
+ width: 240px;
+ }
+
+ .container {
+ width: 960px;
+ }
+
+ }
+
+ @media screen and (max-width: 980px) {
+
+ .container.\31 25\25 {
+ width: 100%;
+ max-width: 1200px;
+ min-width: 960px;
+ }
+
+ .container.\37 5\25 {
+ width: 720px;
+ }
+
+ .container.\35 0\25 {
+ width: 480px;
+ }
+
+ .container.\32 5\25 {
+ width: 240px;
+ }
+
+ .container {
+ width: 800px;
+ }
+
+ }
+ @media screen and (max-width: 840px) {
+
+ .container.\31 25\25 {
+ width: 100%;
+ max-width: 112.5%;
+ min-width: 90%;
+ }
+
+ .container.\37 5\25 {
+ width: 67.5%;
+ }
+
+ .container.\35 0\25 {
+ width: 45%;
+ }
+
+ .container.\32 5\25 {
+ width: 22.5%;
+ }
+
+ .container {
+ width: 90% !important;
+ }
+
+ }
+
+ @media screen and (max-width: 736px) {
+
+ .container.\31 25\25 {
+ width: 100%;
+ max-width: 1200px;
+ min-width: 960px;
+ }
+
+ .container.\37 5\25 {
+ width: 720px;
+ }
+
+ .container.\35 0\25 {
+ width: 480px;
+ }
+
+ .container.\32 5\25 {
+ width: 240px;
+ }
+
+ .container {
+ width: 90%;
+ }
+
+ }
+
+ @media screen and (max-width: 480px) {
+
+ .container.\31 25\25 {
+ width: 100%;
+ max-width: 1200px;
+ min-width: 960px;
+ }
+
+ .container.\37 5\25 {
+ width: 720px;
+ }
+
+ .container.\35 0\25 {
+ width: 480px;
+ }
+
+ .container.\32 5\25 {
+ width: 240px;
+ }
+
+ .container {
+ width: 90%;
+ }
+
+ }
+
+/* Grid */
+
+ .row {
+ border-bottom: solid 1px transparent;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+
+ .row > * {
+ float: left;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+
+ .row:after, .row:before {
+ content: '';
+ display: block;
+ clear: both;
+ height: 0;
+ }
+
+ .row.uniform > * > :first-child {
+ margin-top: 0;
+ }
+
+ .row.uniform > * > :last-child {
+ margin-bottom: 0;
+ }
+
+ .row.\30 \25 > * {
+ padding: 0 0 0 0px;
+ }
+
+ .row.\30 \25 {
+ margin: 0 0 -1px 0px;
+ }
+
+ .row.uniform.\30 \25 > * {
+ padding: 0px 0 0 0px;
+ }
+
+ .row.uniform.\30 \25 {
+ margin: 0px 0 -1px 0px;
+ }
+
+ .row > * {
+ padding: 0 0 0 40px;
+ }
+
+ .row {
+ margin: 0 0 -1px -40px;
+ }
+
+ .row.uniform > * {
+ padding: 40px 0 0 40px;
+ }
+
+ .row.uniform {
+ margin: -40px 0 -1px -40px;
+ }
+
+ .row.\32 00\25 > * {
+ padding: 0 0 0 80px;
+ }
+
+ .row.\32 00\25 {
+ margin: 0 0 -1px -80px;
+ }
+
+ .row.uniform.\32 00\25 > * {
+ padding: 80px 0 0 80px;
+ }
+
+ .row.uniform.\32 00\25 {
+ margin: -80px 0 -1px -80px;
+ }
+
+ .row.\31 50\25 > * {
+ padding: 0 0 0 60px;
+ }
+
+ .row.\31 50\25 {
+ margin: 0 0 -1px -60px;
+ }
+
+ .row.uniform.\31 50\25 > * {
+ padding: 60px 0 0 60px;
+ }
+
+ .row.uniform.\31 50\25 {
+ margin: -60px 0 -1px -60px;
+ }
+
+ .row.\35 0\25 > * {
+ padding: 0 0 0 20px;
+ }
+
+ .row.\35 0\25 {
+ margin: 0 0 -1px -20px;
+ }
+
+ .row.uniform.\35 0\25 > * {
+ padding: 20px 0 0 20px;
+ }
+
+ .row.uniform.\35 0\25 {
+ margin: -20px 0 -1px -20px;
+ }
+
+ .row.\32 5\25 > * {
+ padding: 0 0 0 10px;
+ }
+
+ .row.\32 5\25 {
+ margin: 0 0 -1px -10px;
+ }
+
+ .row.uniform.\32 5\25 > * {
+ padding: 10px 0 0 10px;
+ }
+
+ .row.uniform.\32 5\25 {
+ margin: -10px 0 -1px -10px;
+ }
+
+ .\31 2u, .\31 2u\24 {
+ width: 100%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\31 1u, .\31 1u\24 {
+ width: 91.6666666667%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\31 0u, .\31 0u\24 {
+ width: 83.3333333333%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\39 u, .\39 u\24 {
+ width: 75%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\38 u, .\38 u\24 {
+ width: 66.6666666667%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\37 u, .\37 u\24 {
+ width: 58.3333333333%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\36 u, .\36 u\24 {
+ width: 50%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\35 u, .\35 u\24 {
+ width: 41.6666666667%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\34 u, .\34 u\24 {
+ width: 33.3333333333%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\33 u, .\33 u\24 {
+ width: 25%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\32 u, .\32 u\24 {
+ width: 16.6666666667%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\31 u, .\31 u\24 {
+ width: 8.3333333333%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\31 2u\24 + *,
+ .\31 1u\24 + *,
+ .\31 0u\24 + *,
+ .\39 u\24 + *,
+ .\38 u\24 + *,
+ .\37 u\24 + *,
+ .\36 u\24 + *,
+ .\35 u\24 + *,
+ .\34 u\24 + *,
+ .\33 u\24 + *,
+ .\32 u\24 + *,
+ .\31 u\24 + * {
+ clear: left;
+ }
+
+ .\-11u {
+ margin-left: 91.66667%;
+ }
+
+ .\-10u {
+ margin-left: 83.33333%;
+ }
+
+ .\-9u {
+ margin-left: 75%;
+ }
+
+ .\-8u {
+ margin-left: 66.66667%;
+ }
+
+ .\-7u {
+ margin-left: 58.33333%;
+ }
+
+ .\-6u {
+ margin-left: 50%;
+ }
+
+ .\-5u {
+ margin-left: 41.66667%;
+ }
+
+ .\-4u {
+ margin-left: 33.33333%;
+ }
+
+ .\-3u {
+ margin-left: 25%;
+ }
+
+ .\-2u {
+ margin-left: 16.66667%;
+ }
+
+ .\-1u {
+ margin-left: 8.33333%;
+ }
+
+ @media screen and (min-width: 737px) {
+
+ .row > * {
+ padding: 50px 0 0 50px;
+ }
+
+ .row {
+ margin: -50px 0 -1px -50px;
+ }
+
+ .row.uniform > * {
+ padding: 50px 0 0 50px;
+ }
+
+ .row.uniform {
+ margin: -50px 0 -1px -50px;
+ }
+
+ .row.\32 00\25 > * {
+ padding: 100px 0 0 100px;
+ }
+
+ .row.\32 00\25 {
+ margin: -100px 0 -1px -100px;
+ }
+
+ .row.uniform.\32 00\25 > * {
+ padding: 100px 0 0 100px;
+ }
+
+ .row.uniform.\32 00\25 {
+ margin: -100px 0 -1px -100px;
+ }
+
+ .row.\31 50\25 > * {
+ padding: 75px 0 0 75px;
+ }
+
+ .row.\31 50\25 {
+ margin: -75px 0 -1px -75px;
+ }
+
+ .row.uniform.\31 50\25 > * {
+ padding: 75px 0 0 75px;
+ }
+
+ .row.uniform.\31 50\25 {
+ margin: -75px 0 -1px -75px;
+ }
+
+ .row.\35 0\25 > * {
+ padding: 25px 0 0 25px;
+ }
+
+ .row.\35 0\25 {
+ margin: -25px 0 -1px -25px;
+ }
+
+ .row.uniform.\35 0\25 > * {
+ padding: 25px 0 0 25px;
+ }
+
+ .row.uniform.\35 0\25 {
+ margin: -25px 0 -1px -25px;
+ }
+
+ .row.\32 5\25 > * {
+ padding: 12.5px 0 0 12.5px;
+ }
+
+ .row.\32 5\25 {
+ margin: -12.5px 0 -1px -12.5px;
+ }
+
+ .row.uniform.\32 5\25 > * {
+ padding: 12.5px 0 0 12.5px;
+ }
+
+ .row.uniform.\32 5\25 {
+ margin: -12.5px 0 -1px -12.5px;
+ }
+
+ .\31 2u\28desktop\29, .\31 2u\24\28desktop\29 {
+ width: 100%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\31 1u\28desktop\29, .\31 1u\24\28desktop\29 {
+ width: 91.6666666667%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\31 0u\28desktop\29, .\31 0u\24\28desktop\29 {
+ width: 83.3333333333%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\39 u\28desktop\29, .\39 u\24\28desktop\29 {
+ width: 75%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\38 u\28desktop\29, .\38 u\24\28desktop\29 {
+ width: 66.6666666667%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\37 u\28desktop\29, .\37 u\24\28desktop\29 {
+ width: 58.3333333333%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\36 u\28desktop\29, .\36 u\24\28desktop\29 {
+ width: 50%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\35 u\28desktop\29, .\35 u\24\28desktop\29 {
+ width: 41.6666666667%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\34 u\28desktop\29, .\34 u\24\28desktop\29 {
+ width: 33.3333333333%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\33 u\28desktop\29, .\33 u\24\28desktop\29 {
+ width: 25%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\32 u\28desktop\29, .\32 u\24\28desktop\29 {
+ width: 16.6666666667%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\31 u\28desktop\29, .\31 u\24\28desktop\29 {
+ width: 8.3333333333%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\31 2u\24\28desktop\29 + *,
+ .\31 1u\24\28desktop\29 + *,
+ .\31 0u\24\28desktop\29 + *,
+ .\39 u\24\28desktop\29 + *,
+ .\38 u\24\28desktop\29 + *,
+ .\37 u\24\28desktop\29 + *,
+ .\36 u\24\28desktop\29 + *,
+ .\35 u\24\28desktop\29 + *,
+ .\34 u\24\28desktop\29 + *,
+ .\33 u\24\28desktop\29 + *,
+ .\32 u\24\28desktop\29 + *,
+ .\31 u\24\28desktop\29 + * {
+ clear: left;
+ }
+
+ .\-11u\28desktop\29 {
+ margin-left: 91.66667%;
+ }
+
+ .\-10u\28desktop\29 {
+ margin-left: 83.33333%;
+ }
+
+ .\-9u\28desktop\29 {
+ margin-left: 75%;
+ }
+
+ .\-8u\28desktop\29 {
+ margin-left: 66.66667%;
+ }
+
+ .\-7u\28desktop\29 {
+ margin-left: 58.33333%;
+ }
+
+ .\-6u\28desktop\29 {
+ margin-left: 50%;
+ }
+
+ .\-5u\28desktop\29 {
+ margin-left: 41.66667%;
+ }
+
+ .\-4u\28desktop\29 {
+ margin-left: 33.33333%;
+ }
+
+ .\-3u\28desktop\29 {
+ margin-left: 25%;
+ }
+
+ .\-2u\28desktop\29 {
+ margin-left: 16.66667%;
+ }
+
+ .\-1u\28desktop\29 {
+ margin-left: 8.33333%;
+ }
+
+ }
+
+ @media screen and (min-width: 737px) and (max-width: 1200px) {
+
+ .row > * {
+ padding: 25px 0 0 25px;
+ }
+
+ .row {
+ margin: -25px 0 -1px -25px;
+ }
+
+ .row.uniform > * {
+ padding: 25px 0 0 25px;
+ }
+
+ .row.uniform {
+ margin: -25px 0 -1px -25px;
+ }
+
+ .row.\32 00\25 > * {
+ padding: 50px 0 0 50px;
+ }
+
+ .row.\32 00\25 {
+ margin: -50px 0 -1px -50px;
+ }
+
+ .row.uniform.\32 00\25 > * {
+ padding: 50px 0 0 50px;
+ }
+
+ .row.uniform.\32 00\25 {
+ margin: -50px 0 -1px -50px;
+ }
+
+ .row.\31 50\25 > * {
+ padding: 37.5px 0 0 37.5px;
+ }
+
+ .row.\31 50\25 {
+ margin: -37.5px 0 -1px -37.5px;
+ }
+
+ .row.uniform.\31 50\25 > * {
+ padding: 37.5px 0 0 37.5px;
+ }
+
+ .row.uniform.\31 50\25 {
+ margin: -37.5px 0 -1px -37.5px;
+ }
+
+ .row.\35 0\25 > * {
+ padding: 12.5px 0 0 12.5px;
+ }
+
+ .row.\35 0\25 {
+ margin: -12.5px 0 -1px -12.5px;
+ }
+
+ .row.uniform.\35 0\25 > * {
+ padding: 12.5px 0 0 12.5px;
+ }
+
+ .row.uniform.\35 0\25 {
+ margin: -12.5px 0 -1px -12.5px;
+ }
+
+ .row.\32 5\25 > * {
+ padding: 6.25px 0 0 6.25px;
+ }
+
+ .row.\32 5\25 {
+ margin: -6.25px 0 -1px -6.25px;
+ }
+
+ .row.uniform.\32 5\25 > * {
+ padding: 6.25px 0 0 6.25px;
+ }
+
+ .row.uniform.\32 5\25 {
+ margin: -6.25px 0 -1px -6.25px;
+ }
+
+ .\31 2u\28tablet\29, .\31 2u\24\28tablet\29 {
+ width: 100%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\31 1u\28tablet\29, .\31 1u\24\28tablet\29 {
+ width: 91.6666666667%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\31 0u\28tablet\29, .\31 0u\24\28tablet\29 {
+ width: 83.3333333333%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\39 u\28tablet\29, .\39 u\24\28tablet\29 {
+ width: 75%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\38 u\28tablet\29, .\38 u\24\28tablet\29 {
+ width: 66.6666666667%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\37 u\28tablet\29, .\37 u\24\28tablet\29 {
+ width: 58.3333333333%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\36 u\28tablet\29, .\36 u\24\28tablet\29 {
+ width: 50%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\35 u\28tablet\29, .\35 u\24\28tablet\29 {
+ width: 41.6666666667%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\34 u\28tablet\29, .\34 u\24\28tablet\29 {
+ width: 33.3333333333%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\33 u\28tablet\29, .\33 u\24\28tablet\29 {
+ width: 25%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\32 u\28tablet\29, .\32 u\24\28tablet\29 {
+ width: 16.6666666667%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\31 u\28tablet\29, .\31 u\24\28tablet\29 {
+ width: 8.3333333333%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\31 2u\24\28tablet\29 + *,
+ .\31 1u\24\28tablet\29 + *,
+ .\31 0u\24\28tablet\29 + *,
+ .\39 u\24\28tablet\29 + *,
+ .\38 u\24\28tablet\29 + *,
+ .\37 u\24\28tablet\29 + *,
+ .\36 u\24\28tablet\29 + *,
+ .\35 u\24\28tablet\29 + *,
+ .\34 u\24\28tablet\29 + *,
+ .\33 u\24\28tablet\29 + *,
+ .\32 u\24\28tablet\29 + *,
+ .\31 u\24\28tablet\29 + * {
+ clear: left;
+ }
+
+ .\-11u\28tablet\29 {
+ margin-left: 91.66667%;
+ }
+
+ .\-10u\28tablet\29 {
+ margin-left: 83.33333%;
+ }
+
+ .\-9u\28tablet\29 {
+ margin-left: 75%;
+ }
+
+ .\-8u\28tablet\29 {
+ margin-left: 66.66667%;
+ }
+
+ .\-7u\28tablet\29 {
+ margin-left: 58.33333%;
+ }
+
+ .\-6u\28tablet\29 {
+ margin-left: 50%;
+ }
+
+ .\-5u\28tablet\29 {
+ margin-left: 41.66667%;
+ }
+
+ .\-4u\28tablet\29 {
+ margin-left: 33.33333%;
+ }
+
+ .\-3u\28tablet\29 {
+ margin-left: 25%;
+ }
+
+ .\-2u\28tablet\29 {
+ margin-left: 16.66667%;
+ }
+
+ .\-1u\28tablet\29 {
+ margin-left: 8.33333%;
+ }
+
+ }
+
+ @media screen and (max-width: 736px) {
+
+ .row > * {
+ padding: 20px 0 0 20px;
+ }
+
+ .row {
+ margin: -20px 0 -1px -20px;
+ }
+
+ .row.uniform > * {
+ padding: 20px 0 0 20px;
+ }
+
+ .row.uniform {
+ margin: -20px 0 -1px -20px;
+ }
+
+ .row.\32 00\25 > * {
+ padding: 40px 0 0 40px;
+ }
+
+ .row.\32 00\25 {
+ margin: -40px 0 -1px -40px;
+ }
+
+ .row.uniform.\32 00\25 > * {
+ padding: 40px 0 0 40px;
+ }
+
+ .row.uniform.\32 00\25 {
+ margin: -40px 0 -1px -40px;
+ }
+
+ .row.\31 50\25 > * {
+ padding: 30px 0 0 30px;
+ }
+
+ .row.\31 50\25 {
+ margin: -30px 0 -1px -30px;
+ }
+
+ .row.uniform.\31 50\25 > * {
+ padding: 30px 0 0 30px;
+ }
+
+ .row.uniform.\31 50\25 {
+ margin: -30px 0 -1px -30px;
+ }
+
+ .row.\35 0\25 > * {
+ padding: 10px 0 0 10px;
+ }
+
+ .row.\35 0\25 {
+ margin: -10px 0 -1px -10px;
+ }
+
+ .row.uniform.\35 0\25 > * {
+ padding: 10px 0 0 10px;
+ }
+
+ .row.uniform.\35 0\25 {
+ margin: -10px 0 -1px -10px;
+ }
+
+ .row.\32 5\25 > * {
+ padding: 5px 0 0 5px;
+ }
+
+ .row.\32 5\25 {
+ margin: -5px 0 -1px -5px;
+ }
+
+ .row.uniform.\32 5\25 > * {
+ padding: 5px 0 0 5px;
+ }
+
+ .row.uniform.\32 5\25 {
+ margin: -5px 0 -1px -5px;
+ }
+
+ .\31 2u\28mobile\29, .\31 2u\24\28mobile\29 {
+ width: 100%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\31 1u\28mobile\29, .\31 1u\24\28mobile\29 {
+ width: 91.6666666667%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\31 0u\28mobile\29, .\31 0u\24\28mobile\29 {
+ width: 83.3333333333%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\39 u\28mobile\29, .\39 u\24\28mobile\29 {
+ width: 75%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\38 u\28mobile\29, .\38 u\24\28mobile\29 {
+ width: 66.6666666667%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\37 u\28mobile\29, .\37 u\24\28mobile\29 {
+ width: 58.3333333333%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\36 u\28mobile\29, .\36 u\24\28mobile\29 {
+ width: 50%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\35 u\28mobile\29, .\35 u\24\28mobile\29 {
+ width: 41.6666666667%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\34 u\28mobile\29, .\34 u\24\28mobile\29 {
+ width: 33.3333333333%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\33 u\28mobile\29, .\33 u\24\28mobile\29 {
+ width: 25%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\32 u\28mobile\29, .\32 u\24\28mobile\29 {
+ width: 16.6666666667%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\31 u\28mobile\29, .\31 u\24\28mobile\29 {
+ width: 8.3333333333%;
+ clear: none;
+ margin-left: 0;
+ }
+
+ .\31 2u\24\28mobile\29 + *,
+ .\31 1u\24\28mobile\29 + *,
+ .\31 0u\24\28mobile\29 + *,
+ .\39 u\24\28mobile\29 + *,
+ .\38 u\24\28mobile\29 + *,
+ .\37 u\24\28mobile\29 + *,
+ .\36 u\24\28mobile\29 + *,
+ .\35 u\24\28mobile\29 + *,
+ .\34 u\24\28mobile\29 + *,
+ .\33 u\24\28mobile\29 + *,
+ .\32 u\24\28mobile\29 + *,
+ .\31 u\24\28mobile\29 + * {
+ clear: left;
+ }
+
+ .\-11u\28mobile\29 {
+ margin-left: 91.66667%;
+ }
+
+ .\-10u\28mobile\29 {
+ margin-left: 83.33333%;
+ }
+
+ .\-9u\28mobile\29 {
+ margin-left: 75%;
+ }
+
+ .\-8u\28mobile\29 {
+ margin-left: 66.66667%;
+ }
+
+ .\-7u\28mobile\29 {
+ margin-left: 58.33333%;
+ }
+
+ .\-6u\28mobile\29 {
+ margin-left: 50%;
+ }
+
+ .\-5u\28mobile\29 {
+ margin-left: 41.66667%;
+ }
+
+ .\-4u\28mobile\29 {
+ margin-left: 33.33333%;
+ }
+
+ .\-3u\28mobile\29 {
+ margin-left: 25%;
+ }
+
+ .\-2u\28mobile\29 {
+ margin-left: 16.66667%;
+ }
+
+ .\-1u\28mobile\29 {
+ margin-left: 8.33333%;
+ }
+
+ }
+
+
+/* Basic */
+
+ body {
+ background: #fff;
+ }
+
+ body.is-loading *, body.is-loading *:before, body.is-loading *:after {
+ -moz-animation: none !important;
+ -webkit-animation: none !important;
+ -ms-animation: none !important;
+ animation: none !important;
+ -moz-transition: none !important;
+ -webkit-transition: none !important;
+ -ms-transition: none !important;
+ transition: none !important;
+ }
+
+ body, input, select, textarea {
+ color: #777;
+ font-size: 14pt;
+ font-weight: 400;
+ line-height: 1.75em;
+ }
+
+ a {
+ -moz-transition: color 0.2s ease-in-out, border-color 0.2s ease-in-out;
+ -webkit-transition: color 0.2s ease-in-out, border-color 0.2s ease-in-out;
+ -ms-transition: color 0.2s ease-in-out, border-color 0.2s ease-in-out;
+ transition: color 0.2s ease-in-out, border-color 0.2s ease-in-out;
+ color: #2695ef;
+ text-decoration: none;
+ }
+
+ a:hover {
+ border-bottom-color: transparent;
+ color: #2695ef !important;
+ text-decoration: none;
+ }
+
+ strong, b {
+ color: #787878;
+ font-weight: 400;
+ }
+
+ em, i {
+ font-style: italic;
+ }
+
+ p {
+ margin: 0 0 1em 0;
+ font-size: 0.8em;
+ }
+
+ h1, h2, h3, h4, h5, h6 {
+ color: #333;
+ font-weight: 400;
+ line-height: 1em;
+ margin: 0 0 1em 0;
+ }
+
+ h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
+ color: inherit;
+ text-decoration: none;
+ }
+
+ h1 {
+ font-size: 2em;
+ line-height: 1.5em;
+ }
+
+ h2 {
+ font-size: 1.5em;
+ line-height: 1.5em;
+ }
+
+ h3 {
+ font-size: 1.25em;
+ line-height: 1.5em;
+ }
+
+ h4 {
+ font-size: 1.1em;
+ line-height: 1.5em;
+ }
+
+ h5 {
+ font-size: 0.9em;
+ line-height: 1.5em;
+ }
+
+ h6 {
+ font-size: 0.7em;
+ line-height: 1.5em;
+ }
+
+ sub {
+ font-size: 0.8em;
+ position: relative;
+ top: 0.5em;
+ }
+
+ sup {
+ font-size: 0.8em;
+ position: relative;
+ top: -0.5em;
+ }
+
+ hr {
+ border: 0;
+ border-bottom: solid 2px #e0e0e0;
+ margin: 2em 0;
+ }
+
+ hr.major {
+ margin: 3em 0;
+ }
+
+ blockquote {
+ border-left: solid 6px #e0e0e0;
+ font-style: italic;
+ margin: 0 0 2em 0;
+ padding: 0.5em 0 0.5em 1.5em;
+ }
+
+ code {
+ background: #f7f7f7;
+ border-radius: 0.35em;
+ border: solid 2px #e0e0e0;
+ font-family: "Courier New", monospace;
+ font-size: 0.9em;
+ margin: 0 0.25em;
+ padding: 0.25em 0.65em;
+ }
+
+ pre {
+ -webkit-overflow-scrolling: touch;
+ font-family: "Courier New", monospace;
+ font-size: 0.9em;
+ margin: 0 0 2em 0;
+ }
+
+ pre code {
+ display: block;
+ line-height: 1.75em;
+ padding: 1em 1.5em;
+ overflow-x: auto;
+ }
+
+ .align-left {
+ text-align: left;
+ }
+
+ .align-center {
+ text-align: center;
+ }
+
+ .align-right {
+ text-align: right;
+ }
+
+ .float_left{
+ float: left;
+ }
+ .float_right{
+ float: right;
+ }
+ .clearfix:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden
+ }
+
+ .clearfix {
+ *+height: 1%;
+ }
+ .orange{
+ color: #e95513;
+ }
+ .yellow{
+ color: #eba823;
+ }
+ .blue{
+ color: #0767aa;
+ }
+ .green{
+ color: #8cbc21;
+ }
+
+/* Section/Article */
+
+ section, article {
+ margin-bottom: 2.5em;
+ }
+
+ section > :last-child, section:last-child, article > :last-child, article:last-child {
+ margin-bottom: 0;
+ }
+
+ header.major {
+ position: relative;
+ text-align: center;
+ border-top: solid 1px #ccc;
+ top: 1em;
+ margin: 0 0 3em 0;
+ }
+
+ header.major h2 {
+ background: #fff;
+ position: relative;
+ top: -0.75em;
+ display: inline;
+ margin: 0;
+ padding: 0 1em 0 1em;
+ }
+ header.white h2 {
+ color: #FFFFFF;
+ margin-bottom: 1.5em;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
+ }
+ header.black{
+ margin-bottom: 2em;
+ text-align: center;
+ }
+/* Box */
+
+ .box {
+ background: rgba(255,255,255,.8);
+ padding: 2em 0 2em 0;
+ }
+ .box_item {
+ text-align: center;
+ padding: 0 2em 0 2em;
+ }
+ .box_item .content p{
+ line-height: 1.6em;
+ height: 4.8em;
+ overflow: hidden;
+ }
+ @media screen and (min-width: 736px) and (max-width: 980px) {
+ .box_item {
+ padding: 0 1em 0 1em;
+ }
+ }
+
+/* Form */
+
+ form {
+ margin: 0 0 1.5em 0;
+ }
+
+ form > .field {
+ margin: 0 0 1.5em 0;
+ position: relative;
+ }
+
+ form > .field > :last-child {
+ margin-bottom: 0;
+ }
+
+ label {
+ color: #313f47;
+ display: block;
+ font-size: 0.9em;
+ margin: 0 0 0.75em 0;
+ }
+
+ input[type="text"],
+ input[type="password"],
+ input[type="email"],
+ input[type="tel"],
+ select,
+ textarea {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ -ms-appearance: none;
+ appearance: none;
+ border-radius: 4px;
+ border: solid 1px #c8cccf;
+ color: inherit;
+ display: block;
+ outline: 0;
+ padding: 0 1em;
+ text-decoration: none;
+ width: 100%;
+ font-size: 0.9em;
+ }
+
+ input[type="text"]:invalid,
+ input[type="password"]:invalid,
+ input[type="email"]:invalid,
+ input[type="tel"]:invalid,
+ select:invalid,
+ textarea:invalid {
+ box-shadow: none;
+ }
+
+ input[type="text"]:focus,
+ input[type="password"]:focus,
+ input[type="email"]:focus,
+ input[type="tel"]:focus,
+ select:focus,
+ textarea:focus {
+ border-color: #B2B2B2;
+ outline: 0;
+ }
+
+ input[type="text"].orange_line,
+ input[type="password"].orange_line,
+ input[type="email"].orange_line,
+ input[type="tel"].orange_line,
+ textarea.orange_line{
+ border-color: #e95513;
+ }
+
+ .select-wrapper {
+ text-decoration: none;
+ display: block;
+ position: relative;
+ }
+
+ .select-wrapper:before {
+ content: "";
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ font-family: FontAwesome;
+ font-style: normal;
+ font-weight: normal;
+ text-transform: none !important;
+ }
+
+ .select-wrapper:before {
+ color: #c8cccf;
+ display: block;
+ height: 2.75em;
+ line-height: 2.75em;
+ pointer-events: none;
+ position: absolute;
+ right: 0;
+ text-align: center;
+ top: 0;
+ width: 2.75em;
+ }
+
+ .select-wrapper select::-ms-expand {
+ display: none;
+ }
+
+ input[type="text"],
+ input[type="password"],
+ input[type="email"],
+ select {
+ height: 2.75em;
+ }
+
+ textarea {
+ padding: 0.75em 1em;
+ }
+
+ input[type="checkbox"],
+ input[type="radio"] {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ -ms-appearance: none;
+ appearance: none;
+ display: block;
+ float: left;
+ margin-right: -2em;
+ opacity: 0;
+ width: 1em;
+ z-index: -1;
+ }
+
+ input[type="checkbox"] + label,
+ input[type="radio"] + label {
+ text-decoration: none;
+ color: #414f57;
+ cursor: pointer;
+ display: inline-block;
+ font-size: 1em;
+ font-weight: 300;
+ padding-left: 2.4em;
+ padding-right: 0.75em;
+ position: relative;
+ }
+
+ input[type="checkbox"] + label:before,
+ input[type="radio"] + label:before {
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ font-family: FontAwesome;
+ font-style: normal;
+ font-weight: normal;
+ text-transform: none !important;
+ }
+
+ input[type="checkbox"] + label:before,
+ input[type="radio"] + label:before {
+ border-radius: 4px;
+ border: solid 1px #c8cccf;
+ content: '';
+ display: inline-block;
+ height: 1.65em;
+ left: 0;
+ line-height: 1.58125em;
+ position: absolute;
+ text-align: center;
+ top: 0.15em;
+ width: 1.65em;
+ }
+
+ input[type="checkbox"]:checked + label:before,
+ input[type="radio"]:checked + label:before {
+ color: #2695ef;
+ content: '\f00c';
+ }
+
+ input[type="checkbox"]:focus + label:before,
+ input[type="radio"]:focus + label:before {
+ border-color: #2695ef;
+ }
+
+ input[type="checkbox"] + label:before {
+ border-radius: 4px;
+ }
+
+ input[type="radio"] + label:before {
+ border-radius: 100%;
+ }
+
+ ::-webkit-input-placeholder {
+ color: #616f77 !important;
+ opacity: 1.0;
+ }
+
+ :-moz-placeholder {
+ color: #616f77 !important;
+ opacity: 1.0;
+ }
+
+ ::-moz-placeholder {
+ color: #616f77 !important;
+ opacity: 1.0;
+ }
+
+ :-ms-input-placeholder {
+ color: #616f77 !important;
+ opacity: 1.0;
+ }
+
+ .formerize-placeholder {
+ color: #616f77 !important;
+ opacity: 1.0;
+ }
+ input.short_input{
+ width: 60%;
+ }
+ form > .field .button.message{
+ padding: 0;
+ width: 38%;
+ line-height: 2.75em;
+ height: 2.75em;
+ font-size: 0.9em;
+ position: absolute;
+ right: 0;
+ top: 0;
+ }
+
+ .api_form{
+ padding-top: 2em;
+ }
+ form > .field.small_field .row{
+ padding-top: -20px;
+ }
+ form > .field.small_field .row > *{
+ padding-top: 20px;
+ }
+ form > .field.small_field label{
+ font-size: 0.8em;
+ }
+ form > .field.small_field input[type="text"],
+ form > .field.small_field input[type="password"],
+ form > .field.small_field input[type="email"],
+ form > .field.small_field input[type="tel"],
+ form > .field.small_field select,
+ form > .field.small_field textarea{
+ font-size: 0.8em;
+ }
+ form > .field.small_field .select-wrapper:before{
+ height: 2.25em;
+ line-height: 2.25em;
+ }
+ @media screen and (max-width: 736px) {
+ form > .field.small_field .row > *{
+ padding-top: 5px;
+ }
+ }
+
+/* Icon */
+
+ .icon {
+ position: relative;
+ text-decoration: none;
+ }
+
+ .icon:before {
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ font-family: FontAwesome;
+ font-style: normal;
+ font-weight: normal;
+ text-transform: none !important;
+ }
+
+ .icon > .label {
+ display: none;
+ }
+
+ .icon.featured {
+ position: relative;
+ display: inline-block;
+ background-color: #f778a5;
+ width: 7em;
+ padding: 1.75em 0 0.75em 0;
+ border-top-left-radius: 5px;
+ border-top-right-radius: 5px;
+ margin: 0 0 3.5em 0;
+ cursor: default;
+ }
+
+ .icon.featured:before {
+ font-size: 3.5em;
+ line-height: 1em;
+ color: #fff;
+ }
+
+ .icon.featured:after {
+ content: '';
+ position: absolute;
+ bottom: -1.99em;
+ left: 0;
+ border-top: solid 2em #f778a5;
+ border-left: solid 3.5em transparent;
+ border-right: solid 3.5em transparent;
+ }
+
+ .icon.featured.alt {
+ background-color: #7ac0fb;
+ }
+
+ .icon.featured.alt:after {
+ border-top-color: #7ac0fb;
+ }
+
+ .icon.featured.alt2 {
+ background-color: #fccb65;
+ }
+
+ .icon.featured.alt2:after {
+ border-top-color: #fccb65;
+ }
+ .icon.round_icon{
+ position: relative;
+ display: inline-block;
+ background-color: #0767aa;
+ width: 6em;
+ height: 6em;
+ line-height: 6em;
+ border-radius: 100%;
+ margin: 0 0 1em 0;
+ cursor: default;
+ }
+ .icon.round_icon:before {
+ font-size: 2.5em;
+ color: #FFFFFF;
+ }
+ .icon.round_icon.bg_red{
+ background-color: #f778a5;
+ }
+ .icon.round_icon.bg_yellow{
+ background-color: #fccb65;
+ }
+ .icon.round_icon.bg_blue{
+ background-color: #7ac0fb;
+ }
+ .icon.round_icon.round_border{
+ background-color: #FFFFFF;
+ border: 1px solid #0767aa;
+ }
+ .icon.round_icon.round_border:before {
+ color: #0767aa;
+ }
+
+/* Image */
+
+ .image {
+ border: 0;
+ display: inline-block;
+ position: relative;
+ overflow: hidden;
+ }
+
+ .image img {
+ display: block;
+ width: 100%;
+ }
+
+ .image.left, .image.right {
+ max-width: 40%;
+ }
+
+ .image.left img, .image.right img {
+ width: 100%;
+ }
+
+ .image.left {
+ float: left;
+ margin: 0 1.5em 1em 0;
+ top: 0.25em;
+ }
+
+ .image.right {
+ float: right;
+ margin: 0 0 1em 1.5em;
+ top: 0.25em;
+ }
+
+ .image.fit {
+ display: block;
+ margin: 0 0 2em 0;
+ width: 100%;
+ }
+
+ .image.fit img {
+ width: 100%;
+ }
+ .image.featured {
+ display: block;
+ width: 100%;
+ margin: 0 0 1em 0;
+ text-align: center;
+ }
+ .image.featured img{
+ display: inline-block;
+ width: 211px;
+ height: 211px;
+ }
+ @media screen and (min-width: 736px) and (max-width: 980px) {
+ .image.featured img{
+ width: 140px;
+ height: 140px;
+ }
+ }
+
+/* List */
+
+ol {
+ list-style: decimal;
+ margin: 0 0 2em 0;
+ padding-left: 1.25em;
+ }
+
+ ol li {
+ padding-left: 0.25em;
+ }
+
+ ul {
+ list-style: disc;
+ margin: 0;
+ padding: 0;
+ }
+
+ ul li {
+ margin: 0;
+ padding: 0;
+ }
+
+ ul.alt {
+ list-style: none;
+ padding-left: 0;
+ }
+
+ ul.alt li {
+ border-top-style: solid;
+ border-top-width: 1px;
+ padding: 0.5em 0;
+ }
+
+ ul.alt li:first-child {
+ border-top: 0;
+ padding-top: 0;
+ }
+
+ ul.icons {
+ cursor: default;
+ list-style: none;
+ padding-left: 0;
+ }
+
+ ul.icons li {
+ display: inline-block;
+ padding: 0 1.5em 0 0;
+ }
+
+ ul.icons li:last-child {
+ padding-right: 0 !important;
+ }
+
+ ul.icons li .icon:before {
+ font-size: 1.75rem;
+ }
+
+ ul.icons.major li {
+ padding: 0 2.5em 0 0;
+ }
+
+ ul.icons.major li .icon:before {
+ font-size: 2.75rem;
+ }
+
+ @media screen and (max-width: 736px) {
+
+ ul.icons.major li {
+ padding: 0 1.25em 0 0;
+ }
+
+ ul.icons.major li .icon:before {
+ font-size: 1.75rem;
+ }
+
+ }
+
+ ul.icons.labeled li {
+ margin: 1em 0;
+ padding: 0 2em 0 0;
+ }
+
+ ul.icons.labeled li .icon:before {
+ vertical-align: middle;
+ font-size: 2.25rem;
+ margin-right: 0.5em;
+ }
+
+ ul.icons.labeled li .icon .label {
+ display: inline-block;
+ vertical-align: middle;
+ color: #999999;
+ }
+
+ @media screen and (max-width: 736px) and (orientation: portrait) {
+
+ ul.icons.labeled {
+ text-align: left;
+ margin-right: auto;
+ margin-left: auto;
+ display: inline-block;
+ white-space: nowrap;
+ }
+
+ ul.icons.labeled li {
+ display: block;
+ padding: 0;
+ margin: 1.5em 0 0 0;
+ }
+
+ ul.icons.labeled li .icon:before {
+ width: 1.5em;
+ display: block;
+ float: left;
+ margin-right: 0;
+ }
+
+ ul.icons.labeled li .icon:after {
+ content: '';
+ display: block;
+ clear: both;
+ }
+
+ ul.icons.labeled li:first-child {
+ margin-top: 0;
+ }
+
+ }
+
+ ul.actions {
+ cursor: default;
+ list-style: none;
+ padding-left: 0;
+ }
+
+ ul.actions li {
+ display: inline-block;
+ padding: 0 1em 0 0;
+ vertical-align: middle;
+ }
+
+ ul.actions li:last-child {
+ padding-right: 0;
+ }
+
+ ul.actions.small li {
+ padding: 0 0.5em 0 0;
+ }
+
+ ul.actions.vertical li {
+ display: block;
+ padding: 1em 0 0 0;
+ }
+
+ ul.actions.vertical li:first-child {
+ padding-top: 0;
+ }
+
+ ul.actions.vertical li > * {
+ margin-bottom: 0;
+ }
+
+ ul.actions.vertical.small li {
+ padding: 0.5em 0 0 0;
+ }
+
+ ul.actions.vertical.small li:first-child {
+ padding-top: 0;
+ }
+
+ ul.actions.fit {
+ display: table;
+ margin-left: -1em;
+ padding: 0;
+ table-layout: fixed;
+ width: calc(100% + 1em);
+ }
+
+ ul.actions.fit li {
+ display: table-cell;
+ padding: 0 0 0 1em;
+ }
+
+ ul.actions.fit li > * {
+ margin-bottom: 0;
+ }
+
+ ul.actions.fit.small {
+ margin-left: -0.5em;
+ width: calc(100% + 0.5em);
+ }
+
+ ul.actions.fit.small li {
+ padding: 0 0 0 0.5em;
+ }
+
+ @media screen and (max-width: 480px) and (orientation: portrait) {
+
+ ul.actions {
+ margin: 0 0 2em 0;
+ }
+
+ ul.actions li {
+ padding: 1em 0 0 0;
+ display: block;
+ text-align: center;
+ width: 100%;
+ }
+
+ ul.actions li:first-child {
+ padding-top: 0;
+ }
+
+ ul.actions li > * {
+ width: 100%;
+ margin: 0 !important;
+ }
+
+ ul.actions li > *.icon:before {
+ margin-left: -2em;
+ }
+
+ ul.actions.small li {
+ padding: 0.5em 0 0 0;
+ }
+
+ ul.actions.small li:first-child {
+ padding-top: 0;
+ }
+
+ }
+
+ ul.alt > li {
+ border-top-color: #e6e6e6;
+ }
+
+/* Spotlight */
+
+ .spotlight {
+ margin: 0 0 2em 0;
+ }
+
+ .spotlight .image {
+ width: 45%;
+ float: left;
+ }
+
+ .spotlight .image img {
+ display: block;
+ width: 100%;
+ }
+
+ .spotlight .content {
+ width: 55%;
+ float: right;
+ text-align: center;
+ padding-top: 8em;
+ }
+
+ .spotlight:nth-child(2n) .image {
+ float: right;
+ }
+
+ .spotlight:nth-child(2n) .content {
+ float: left;
+ }
+ @media screen and (max-width: 1280px){
+ .spotlight .content {
+ padding-top: 7em;
+ }
+ }
+ @media screen and (max-width: 980px){
+ .spotlight .content {
+ padding-top: 5em;
+ }
+ }
+ @media screen and (max-width: 840px){
+ .spotlight .content {
+ padding-top: 3.5em;
+ }
+ }
+
+ @media screen and (max-width: 736px) and (orientation: landscape) {
+
+ .spotlight .image,.spotlight .content {
+ float: none;
+ width: 100%;
+ }
+
+ .spotlight:nth-child(2n) .image,.spotlight:nth-child(2n) .content {
+ float: none;
+ }
+ .spotlight .content{
+ padding-top: 1em;
+ }
+ .spotlight .image img {
+ width: 60%;
+ margin: 0 auto;
+ }
+ }
+
+ @media screen and (max-width: 736px) and (orientation: portrait) {
+
+ .spotlight .image,.spotlight .content {
+ float: none;
+ width: 100%;
+ }
+
+ .spotlight:nth-child(2n) .image,.spotlight:nth-child(2n) .content {
+ float: none;
+ }
+ .spotlight .content{
+ padding-top: 1em;
+ }
+ .spotlight .image img {
+ width: 60%;
+ margin: 0 auto;
+ }
+ }
+ @media screen and (max-width: 480px){
+ .spotlight .image img {
+ width: 80%;
+ }
+ }
+
+/* Table */
+
+ .table-wrapper {
+ -webkit-overflow-scrolling: touch;
+ overflow-x: auto;
+ }
+
+ table {
+ margin: 0 0 2em 0;
+ width: 100%;
+ }
+
+ table tbody tr {
+ border: solid 1px #e0e0e0;
+ border-left: 0;
+ border-right: 0;
+ }
+
+ table tbody tr:nth-child(2n + 1) {
+ background-color: #f7f7f7;
+ }
+
+ table td {
+ padding: 0.75em 0.75em;
+ font-size: 0.7em;
+ line-height: 1.8em;
+ }
+
+ table th {
+ color: #787878;
+ font-size: 0.8em;
+ font-weight: 400;
+ padding: 0 0.75em 0.75em 0.75em;
+ text-align: left;
+ }
+
+ table thead {
+ border-bottom: solid 2px #e0e0e0;
+ }
+
+ table tfoot {
+ border-top: solid 2px #e0e0e0;
+ }
+
+ table.alt {
+ border-collapse: separate;
+ }
+
+ table.alt tbody tr td {
+ border: solid 2px #e0e0e0;
+ border-left-width: 0;
+ border-top-width: 0;
+ }
+
+ table.alt tbody tr td:first-child {
+ border-left-width: 2px;
+ }
+
+ table.alt tbody tr:first-child td {
+ border-top-width: 2px;
+ }
+
+ table.alt thead {
+ border-bottom: 0;
+ }
+
+ table.alt tfoot {
+ border-top: 0;
+ }
+
+/* Button */
+
+ input[type="submit"],
+ input[type="reset"],
+ input[type="button"],
+ .button {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ -ms-appearance: none;
+ appearance: none;
+ -moz-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
+ -webkit-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
+ -ms-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
+ transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
+ background-color: #666;
+ border-radius: 6px;
+ border: 0;
+ color: #ffffff;
+ cursor: pointer;
+ display: inline-block;
+ font-weight: 400;
+ height: 2.7em;
+ line-height: 2.7em;
+ padding: 0 2em;
+ text-align: center;
+ text-decoration: none;
+ white-space: nowrap;
+ }
+
+ input[type="submit"]:hover,
+ input[type="reset"]:hover,
+ input[type="button"]:hover,
+ .button:hover {
+ background-color: #737373;
+ }
+
+ input[type="submit"]:active,
+ input[type="reset"]:active,
+ input[type="button"]:active,
+ .button:active {
+ background-color: #595959;
+ }
+
+ input[type="submit"].icon,
+ input[type="reset"].icon,
+ input[type="button"].icon,
+ .button.icon {
+ padding-left: 1.35em;
+ }
+
+ input[type="submit"].icon:before,
+ input[type="reset"].icon:before,
+ input[type="button"].icon:before,
+ .button.icon:before {
+ margin-right: 0.5em;
+ }
+
+ input[type="submit"].fit,
+ input[type="reset"].fit,
+ input[type="button"].fit,
+ .button.fit {
+ display: block;
+ margin: 0 0 1em 0;
+ width: 100%;
+ }
+
+ input[type="submit"].small,
+ input[type="reset"].small,
+ input[type="button"].small,
+ .button.small {
+ font-size: 0.8em;
+ height: 2.5em;
+ line-height: 2.5em;
+ }
+
+ input[type="submit"].big,
+ input[type="reset"].big,
+ input[type="button"].big,
+ .button.big {
+ font-size: 1.25em;
+ height: 3em;
+ line-height: 3em;
+ }
+
+ input[type="submit"].alt,
+ input[type="reset"].alt,
+ input[type="button"].alt,
+ .button.alt {
+ background-color: transparent;
+ border: 1px solid #FFFFFF;
+ color: #FFFFFF;
+ }
+
+ input[type="submit"].alt:hover,
+ input[type="reset"].alt:hover,
+ input[type="button"].alt:hover,
+ .button.alt:hover {
+ background-color: rgba(255,255,255,0.1);
+ color: #FFFFFF !important;
+ }
+
+ input[type="submit"].alt:active,
+ input[type="reset"].alt:active,
+ input[type="button"].alt:active,
+ .button.alt:active {
+ background-color: rgba(255,255,255,0.1);
+ }
+
+ input[type="submit"].alt.icon:before,
+ input[type="reset"].alt.icon:before,
+ input[type="button"].alt.icon:before,
+ .button.alt.icon:before {
+ color: #999;
+ }
+
+ input[type="submit"].special,
+ input[type="reset"].special,
+ input[type="button"].special,
+ button.special,
+ .button.special {
+ box-shadow: none;
+ background-color: #0767aa;
+ color: #ffffff !important;
+ }
+
+ input[type="submit"].special:hover,
+ input[type="reset"].special:hover,
+ input[type="button"].special:hover,
+ button.special:hover,
+ .button.special:hover {
+ filter:alpha(opacity=80);
+ -moz-opacity:0.8;
+ opacity:0.8;
+ }
+
+ input[type="submit"].special:active,
+ input[type="reset"].special:active,
+ input[type="button"].special:active,
+ button.special:active,
+ .button.special:active {
+ background-color: #3089e2;
+ }
+ input[type="submit"].green,
+ input[type="reset"].green,
+ input[type="button"].green,
+ button.green,
+ .button.green {
+ box-shadow: none;
+ background-color: #8cbc21;
+ color: #ffffff !important;
+ }
+
+ input[type="submit"].green:hover,
+ input[type="reset"].green:hover,
+ input[type="button"].green:hover,
+ button.green:hover,
+ .button.green:hover {
+ filter:alpha(opacity=80);
+ -moz-opacity:0.8;
+ opacity:0.8;
+ }
+
+
+ input[type="submit"].disabled, input[type="submit"]:disabled,
+ input[type="reset"].disabled,
+ input[type="reset"]:disabled,
+ input[type="button"].disabled,
+ input[type="button"]:disabled,
+ .button.disabled,
+ .button:disabled {
+ background-color: #777 !important;
+ box-shadow: inset 0 -0.15em 0 0 rgba(0, 0, 0, 0.15);
+ color: #f5f5f5 !important;
+ cursor: default;
+ opacity: 0.25;
+ }
+
+/* 图片预览Poptrox */
+
+ @-moz-keyframes spin {
+ 0% {
+ -moz-transform: rotate(0deg);
+ -webkit-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -moz-transform: rotate(360deg);
+ -webkit-transform: rotate(360deg);
+ -ms-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+ }
+
+ @-webkit-keyframes spin {
+ 0% {
+ -moz-transform: rotate(0deg);
+ -webkit-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -moz-transform: rotate(360deg);
+ -webkit-transform: rotate(360deg);
+ -ms-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+ }
+
+ @-ms-keyframes spin {
+ 0% {
+ -moz-transform: rotate(0deg);
+ -webkit-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -moz-transform: rotate(360deg);
+ -webkit-transform: rotate(360deg);
+ -ms-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+ }
+
+ @keyframes spin {
+ 0% {
+ -moz-transform: rotate(0deg);
+ -webkit-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -moz-transform: rotate(360deg);
+ -webkit-transform: rotate(360deg);
+ -ms-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+ }
+
+ .poptrox-popup {
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ -ms-box-sizing: content-box;
+ box-sizing: content-box;
+ -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
+ background: #fff;
+ border-radius: 0.35em;
+ box-shadow: 0 0.1em 0.15em 0 rgba(0, 0, 0, 0.15);
+ overflow: hidden;
+ padding-bottom: 3em;
+ }
+
+ .poptrox-popup .loader {
+ text-decoration: none;
+ -moz-animation: spin 1s linear infinite;
+ -webkit-animation: spin 1s linear infinite;
+ -ms-animation: spin 1s linear infinite;
+ animation: spin 1s linear infinite;
+ font-size: 1.5em;
+ height: 1em;
+ left: 50%;
+ line-height: 1em;
+ margin: -0.5em 0 0 -0.5em;
+ position: absolute;
+ top: 50%;
+ width: 1em;
+ }
+
+ .poptrox-popup .loader:before {
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ font-family: FontAwesome;
+ font-style: normal;
+ font-weight: normal;
+ text-transform: none !important;
+ }
+
+ .poptrox-popup .loader:before {
+ content: '\f1ce';
+ }
+
+ .poptrox-popup .caption {
+ background: #fff;
+ bottom: 0;
+ cursor: default;
+ font-size: 0.9em;
+ height: 3em;
+ left: 0;
+ line-height: 2.8em;
+ position: absolute;
+ text-align: center;
+ width: 100%;
+ z-index: 1;
+ }
+
+ .poptrox-popup .nav-next,
+ .poptrox-popup .nav-previous {
+ text-decoration: none;
+ -moz-transition: opacity 0.2s ease-in-out;
+ -webkit-transition: opacity 0.2s ease-in-out;
+ -ms-transition: opacity 0.2s ease-in-out;
+ transition: opacity 0.2s ease-in-out;
+ -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
+ background: rgba(0, 0, 0, 0.01);
+ cursor: pointer;
+ height: 100%;
+ opacity: 0;
+ position: absolute;
+ top: 0;
+ width: 50%;
+ }
+
+ .poptrox-popup .nav-next:before,
+ .poptrox-popup .nav-previous:before {
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ font-family: FontAwesome;
+ font-style: normal;
+ font-weight: normal;
+ text-transform: none !important;
+ }
+
+ .poptrox-popup .nav-next:before,
+ .poptrox-popup .nav-previous:before {
+ color: #fff;
+ font-size: 2.5em;
+ height: 1em;
+ line-height: 1em;
+ margin-top: -0.75em;
+ position: absolute;
+ text-align: center;
+ top: 50%;
+ width: 1.5em;
+ }
+
+ .poptrox-popup .nav-next {
+ right: 0;
+ }
+
+ .poptrox-popup .nav-next:before {
+ content: '\f105';
+ right: 0;
+ }
+
+ .poptrox-popup .nav-previous {
+ left: 0;
+ }
+
+ .poptrox-popup .nav-previous:before {
+ content: '\f104';
+ left: 0;
+ }
+
+ .poptrox-popup .closer {
+ text-decoration: none;
+ -moz-transition: opacity 0.2s ease-in-out;
+ -webkit-transition: opacity 0.2s ease-in-out;
+ -ms-transition: opacity 0.2s ease-in-out;
+ transition: opacity 0.2s ease-in-out;
+ -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
+ color: #fff;
+ height: 4em;
+ line-height: 4em;
+ opacity: 0;
+ position: absolute;
+ right: 0;
+ text-align: center;
+ top: 0;
+ width: 4em;
+ z-index: 2;
+ }
+
+ .poptrox-popup .closer:before {
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ font-family: FontAwesome;
+ font-style: normal;
+ font-weight: normal;
+ text-transform: none !important;
+ }
+
+ .poptrox-popup .closer:before {
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ -ms-box-sizing: content-box;
+ box-sizing: content-box;
+ border-radius: 100%;
+ border: solid 3px rgba(255, 255, 255, 0.5);
+ content: '\f00d';
+ display: block;
+ font-size: 1em;
+ height: 1.75em;
+ left: 50%;
+ line-height: 1.75em;
+ margin: -0.875em 0 0 -0.875em;
+ position: absolute;
+ top: 50%;
+ width: 1.75em;
+ }
+
+ .poptrox-popup:hover .nav-next,
+ .poptrox-popup:hover .nav-previous {
+ opacity: 0.5;
+ }
+
+ .poptrox-popup:hover .nav-next:hover,
+ .poptrox-popup:hover .nav-previous:hover {
+ opacity: 1.0;
+ }
+
+ .poptrox-popup:hover .closer {
+ opacity: 0.5;
+ }
+
+ .poptrox-popup:hover .closer:hover {
+ opacity: 1.0;
+ }
+/* Work Item */
+
+ .work-item {
+ margin: 0 0 2em 0;
+ }
+
+ .work-item .image {
+ margin: 0 0 1.5em 0;
+ }
+
+ .work-item h3 {
+ font-size: 1em;
+ margin: 0 0 0.5em 0;
+ }
+
+ .work-item p {
+ font-size: 0.8em;
+ line-height: 1.5em;
+ margin: 0;
+ }
+
+/* Touch */
+
+ body.is-touch .image.thumb:before {
+ opacity: 0.5 !important;
+ }
+
+ body.is-touch .image.thumb:after {
+ display: none !important;
+ }
+
+ body.is-touch #header {
+ background-attachment: scroll;
+ background-size: auto, cover;
+ }
+
+ body.is-touch .poptrox-popup .nav-next,
+ body.is-touch .poptrox-popup .nav-previous,
+ body.is-touch .poptrox-popup .closer {
+ opacity: 1.0 !important;
+ }
+
+/* ===================Header ===================*/
+
+ #page-wrapper {
+ padding-top: 3.25em;
+ height: 100%;
+ }
+
+ body.landing #page-wrapper {
+ padding-top: 0;
+ }
+
+ @-moz-keyframes reveal-header {
+ 0% {
+ top: -5em;
+ }
+
+ 100% {
+ top: 0;
+ }
+ }
+
+ @-webkit-keyframes reveal-header {
+ 0% {
+ top: -5em;
+ }
+
+ 100% {
+ top: 0;
+ }
+ }
+
+ @-ms-keyframes reveal-header {
+ 0% {
+ top: -5em;
+ }
+
+ 100% {
+ top: 0;
+ }
+ }
+
+ @keyframes reveal-header {
+ 0% {
+ top: -5em;
+ }
+
+ 100% {
+ top: 0;
+ }
+ }
+
+ #header {
+ background-color:#FFFFFF;
+ color: #333;
+ cursor: default;
+ height: 3.25em;
+ left: 0;
+ line-height: 3.25em;
+ position: fixed;
+ top: 0;
+ width: 100%;
+ z-index: 10000;
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
+ }
+
+ #header h1 {
+ color: inherit;
+ height: inherit;
+ left: 1.25em;
+ line-height: inherit;
+ margin: 0;
+ padding: 0;
+ position: absolute;
+ top: 0;
+ }
+ #header h1 img{
+ display: block;
+ }
+ #header nav {
+ height: inherit;
+ line-height: inherit;
+ position: absolute;
+ top: 0;
+ vertical-align: middle;
+ }
+ #header nav#nav {
+ left: 13em;
+ }
+ #header nav#navRight {
+ right: 1.5em;
+ }
+ #header nav#navRight li a:not(.button) {
+ margin-right: 1em;
+ }
+
+ #header nav > ul {
+ list-style: none;
+ margin: 0;
+ padding-left: 0;
+ }
+
+ #header nav > ul > li {
+ display: inline-block;
+ }
+
+ #header nav > ul > li > ul {
+ display: none;
+ }
+
+ #header nav > ul > li a {
+ display: inline-block;
+ height: 2.3em;
+ line-height: 2.3em;
+ font-size: 0.9em;
+ border-radius: 6px;
+ }
+ #header nav > ul > li a:not(.button) {
+ color: #333;
+ display: inline-block;
+ text-decoration: none;
+ border: 0;
+ padding: 0 1.2em;
+ }
+
+ #header nav > ul > li a:not(.button).icon:before {
+ color: #333;
+ position: absolute;
+ right: 0;
+ top: 0;
+ }
+
+ #header nav > ul > li:first-child {
+ margin-left: 0;
+ }
+
+ #header nav > ul > li .button {
+ margin: 0 0 0 0.5em;
+ position: relative;
+ }
+
+ #header input[type="submit"],
+ #header input[type="reset"],
+ #header input[type="button"],
+ #header .button.register_btn,#header .button.login_btn {
+ background-color: #0767aa;
+ box-shadow: 0;
+ color: #fff;
+ padding: 0 1.5em;
+ }
+ #header .button.register_btn{
+ background-color: #8cbc21;
+ }
+
+ #header input[type="submit"]:hover,
+ #header input[type="reset"]:hover,
+ #header input[type="button"]:hover,
+ #header .button:hover {
+ filter:alpha(opacity=80);
+ -moz-opacity:0.8;
+ opacity:0.8;
+ color: #FFFFFF !important;
+ }
+
+ #header input[type="submit"]:active,
+ #header input[type="reset"]:active,
+ #header input[type="button"]:active,
+ #header .button:active {
+ filter:alpha(opacity=50);
+ -moz-opacity:0.5;
+ opacity:0.5;
+ }
+
+ #header.reveal {
+ -moz-animation: reveal-header 0.5s;
+ -webkit-animation: reveal-header 0.5s;
+ -ms-animation: reveal-header 0.5s;
+ animation: reveal-header 0.5s;
+ }
+ #header.alt {
+ -moz-animation: none;
+ -webkit-animation: none;
+ -ms-animation: none;
+ animation: none;
+ position: absolute;
+ background-color: rgba(255,255,255,.7);
+ color: #333;
+ box-shadow: none;
+ }
+ .dropotron {
+ background: #fff;
+ border-radius: 6px;
+ box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.065), inset 0 -1px 0 0 #fff, inset 0 0 0 1px rgba(229, 229, 229, 0.5);
+ list-style: none;
+ margin: calc(-0.5em + 1px) 0 0 1px;
+ padding: 0.5em 0;
+ width: 11em;
+ }
+
+ .dropotron li {
+ padding: 0;
+ }
+
+ .dropotron li a, .dropotron li span {
+ -moz-transition: none;
+ -webkit-transition: none;
+ -ms-transition: none;
+ transition: none;
+ border: 0;
+ color: inherit;
+ display: block;
+ padding: 0.15em 1em;
+ text-align: center;
+ }
+
+ .dropotron li.active > a, .dropotron li.active > span, .dropotron li:hover > a, .dropotron li:hover > span {
+ color: #0767aa;
+ }
+
+ .dropotron.level-0 {
+ font-size: 0.8em;
+ margin: 0.8em 0 0 0;
+ }
+
+ .dropotron.level-0:before {
+ -moz-transform: rotate(45deg);
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ background: #fff;
+ border: solid 1px rgba(229, 229, 229, 0.5);
+ border-bottom: 0;
+ border-right: 0;
+ box-shadow: -0.25em -0.125em 0.125em 0 rgba(0, 0, 0, 0.015);
+ content: '';
+ display: block;
+ height: 0.75em;
+ position: absolute;
+ right: 1.25em;
+ top: -0.375em;
+ width: 0.75em;
+ z-index: 0;
+ }
+
+
+/*===================banner===================*/
+ @-moz-keyframes banner{
+ 0% {
+ -moz-transform: translate3d(2em,0,0);
+ -webkit-transform: translate3d(2em,0,0);
+ -ms-transform: translate3d(2em,0,0);
+ transform: translate3d(2em,0,0);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform: translate3d(0,0,0);
+ -webkit-transform: translate3d(0,0,0);
+ -ms-transform: translate3d(0,0,0);
+ transform: translate3d(0,0,0);
+ opacity: 1;
+ }
+ }
+
+ @-webkit-keyframes banner {
+ 0% {
+ -moz-transform: translate3d(2em,0,0);
+ -webkit-transform: translate3d(2em,0,0);
+ -ms-transform: translate3d(2em,0,0);
+ transform: translate3d(2em,0,0);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform: translate3d(0,0,0);
+ -webkit-transform: translate3d(0,0,0);
+ -ms-transform: translate3d(0,0,0);
+ transform: translate3d(0,0,0);
+ opacity: 1;
+ }
+ }
+
+ @-ms-keyframes banner{
+ 0% {
+ -moz-transform: translate3d(2em,0,0);
+ -webkit-transform: translate3d(2em,0,0);
+ -ms-transform: translate3d(2em,0,0);
+ transform: translate3d(2em,0,0);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform: translate3d(0,0,0);
+ -webkit-transform: translate3d(0,0,0);
+ -ms-transform: translate3d(0,0,0);
+ transform: translate3d(0,0,0);
+ opacity: 1;
+ }
+ }
+
+ @keyframes banner {
+ 0% {
+ -moz-transform: translate3d(2em,0,0);
+ -webkit-transform: translate3d(2em,0,0);
+ -ms-transform: translate3d(2em,0,0);
+ transform: translate3d(2em,0,0);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform: translate3d(0,0,0);
+ -webkit-transform: translate3d(0,0,0);
+ -ms-transform: translate3d(0,0,0);
+ transform: translate3d(0,0,0);
+ opacity: 1;
+ }
+ }
+
+ @-moz-keyframes image{
+ 0% {
+ -moz-transform: translate3d(0,2em,0);
+ -webkit-transform: translate3d(2em,0,0);
+ -ms-transform: translate3d(0,2em,0);
+ transform: translate3d(0,2em,0);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform: translate3d(0,0,0);
+ -webkit-transform: translate3d(0,0,0);
+ -ms-transform: translate3d(0,0,0);
+ transform: translate3d(0,0,0);
+ opacity: 1;
+ }
+ }
+
+ @-webkit-keyframes image {
+ 0% {
+ -moz-transform: translate3d(0,2em,0);
+ -webkit-transform: translate3d(2em,0,0);
+ -ms-transform: translate3d(0,2em,0);
+ transform: translate3d(0,2em,0);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform: translate3d(0,0,0);
+ -webkit-transform: translate3d(0,0,0);
+ -ms-transform: translate3d(0,0,0);
+ transform: translate3d(0,0,0);
+ opacity: 1;
+ }
+ }
+
+ @-ms-keyframes image{
+ 0% {
+ -moz-transform: translate3d(0,2em,0);
+ -webkit-transform: translate3d(2em,0,0);
+ -ms-transform: translate3d(0,2em,0);
+ transform: translate3d(0,2em,0);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform: translate3d(0,0,0);
+ -webkit-transform: translate3d(0,0,0);
+ -ms-transform: translate3d(0,0,0);
+ transform: translate3d(0,0,0);
+ opacity: 1;
+ }
+ }
+
+ @keyframes image{
+ 0% {
+ -moz-transform: translate3d(0,2em,0);
+ -webkit-transform: translate3d(2em,0,0);
+ -ms-transform: translate3d(0,2em,0);
+ transform: translate3d(0,2em,0);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform: translate3d(0,0,0);
+ -webkit-transform: translate3d(0,0,0);
+ -ms-transform: translate3d(0,0,0);
+ transform: translate3d(0,0,0);
+ opacity: 1;
+ }
+ }
+ .banner{
+ color: #FFFFFF;
+ padding: 8.5em 0 2.5em 0;
+ }
+ .banner .banner_text {
+ -moz-animation: banner 1s 0s forwards;
+ -webkit-animation: banner 1s 0s forwards;
+ -ms-animation: banner 1s 0s forwards;
+ animation: banner 1s 0s forwards;
+ -moz-backface-visibility: hidden;
+ -webkit-backface-visibility: hidden;
+ -ms-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -moz-transform: translate3d(0,0,0);
+ -webkit-transform: translate3d(0,0,0);
+ -ms-transform: translate3d(0,0,0);
+ transform: translate3d(0,0,0);
+ opacity: 0;
+ text-align: left;
+ float: left;
+ width: 60%;
+ margin: 4em 0 0 0;
+ }
+ .banner .banner_text > :last-child {
+ margin-bottom: 0;
+ }
+ .banner .banner_text h2{
+ color: #FFFFFF;
+ font-size: 2.2em;
+ margin-bottom: 1em;
+ }
+ .banner .banner_text h2 span{
+ display: inline-block;
+ vertical-align: middle;
+ }
+ .banner .banner_text h2 img{
+ vertical-align: middle;
+ padding-right: 1em;
+ border-right: 1px solid #FFFFFF;
+ margin-right: 1em;
+ }
+ .banner .banner_text p{
+ font-size: 1.3em;
+ margin-bottom: 1em;
+ }
+ .banner .banner_text p span{
+ color: #8cbc21;
+ padding: 0 5px;
+ }
+ .banner .banner_img{
+ float: right;
+ width: 40%;
+ text-align: center;
+ }
+ .banner .banner_img img.ie_img{
+ display: none;
+ }
+ .banner .image {
+ -moz-animation: image 1s 0.2s forwards;
+ -webkit-animation: image 1s 0.2s forwards;
+ -ms-animation: image 1s 0.2s forwards;
+ animation: image 1s 0.2s forwards;
+ -moz-backface-visibility: hidden;
+ -webkit-backface-visibility: hidden;
+ -ms-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -moz-transform: translate3d(0,0,0);
+ -webkit-transform: translate3d(0,0,0);
+ -ms-transform: translate3d(0,0,0);
+ transform: translate3d(0,0,0);
+ opacity: 0;
+ }
+
+ .banner .image img {
+ -moz-transition: opacity 0.75s ease;
+ -webkit-transition: opacity 0.75s ease;
+ -ms-transition: opacity 0.75s ease;
+ transition: opacity 0.75s ease;
+ -moz-transition-delay: 0.75s;
+ -webkit-transition-delay: 0.75s;
+ -ms-transition-delay: 0.75s;
+ transition-delay: 0.75s;
+ opacity: 1;
+ max-width: 100%;
+ width: auto;
+ }
+ .image.phone {
+ box-shadow: none;
+ border-radius: 0;
+ margin: 0 0 3em 0;
+ width: 13em;
+ }
+
+ .image.phone .inner, .image.phone:before, .image.phone:after {
+ display: block;
+ border: solid 2px rgba(255, 255, 255, 0.5);
+ }
+
+ .image.phone .inner {
+ position: relative;
+ }
+
+ .image.phone .inner:before, .image.phone .inner:after {
+ content: '';
+ position: absolute;
+ left: 50%;
+ }
+
+ .image.phone .inner:before {
+ top: -1.375em;
+ margin-left: -1em;
+ width: 2em;
+ height: 0.25em;
+ border-radius: 0.5em;
+ background: rgba(255, 255, 255, 0.5);
+ }
+
+ .image.phone .inner:after {
+ bottom: -2.75em;
+ margin-left: -1em;
+ width: 2em;
+ height: 2em;
+ border-radius: 100%;
+ border: solid 2px rgba(255, 255, 255, 0.5);
+ }
+
+ .image.phone:before, .image.phone:after {
+ content: '';
+ }
+
+ .image.phone:before {
+ height: 2.5em;
+ border-radius: 1em 1em 0 0;
+ border-bottom: 0;
+ }
+
+ .image.phone:after {
+ height: 3.5em;
+ border-radius: 0 0 1em 1em;
+ border-top: 0;
+ }
+ .slide_box{
+ width: 100%;
+ height: 18.4em;
+ overflow: hidden;
+ background-image: url(../images/screen.jpg);
+ background-repeat: no-repeat;
+ position: relative;
+ }
+ .slider_pic{
+ padding: 0;
+ margin: 0;
+ }
+ .slider_pic li{
+ height: 100%;
+ width: 100%;
+ padding: 0;
+ margin: 0;
+ text-align: center;
+ position: absolute;
+ top: 0;
+ left: 100%;
+ }
+ .slider_pic li.beijia_img img{
+ padding: 2.8em 0.5em;
+ }
+ .slider_pic li.weixin_img{
+ padding: 2.6em 1.2em;
+ font-size: 1.2em;
+ }
+ .slider_pic li.weixin_img img{
+ display: inline-block;
+ }
+ .slider_btn{
+ position: absolute;
+ bottom: 0.5em;
+ left: 0;
+ text-align: center;
+ width: 100%;
+ }
+ .slider_btn li{
+ display: inline-block;
+ width: 8px;
+ height: 8px;
+ border-radius: 100%;
+ border: 1px solid #FFFFFF;
+ }
+ .slider_btn li.on{
+ background-color: #FFFFFF;
+ }
+
+/* ===================main ===================*/
+.main{
+ min-height: 60%;
+}
+section.main{
+ margin-bottom: 0!important;
+}
+/* 首页 */
+ .cd-fixed-bg {
+ position: relative;
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center center;
+ background-attachment: fixed;
+ z-index: 1;
+ padding: 6em 0;
+ }
+ .cd-fixed-bg.banner{
+ padding: 8.5em 0 2.5em 0 ;
+ }
+ .cd-fixed-bg.cd-bg-1 {
+ background-image: url(../images/pic01.jpg);
+ }
+ .cd-scrolling-bg {
+ position: relative;
+ padding: 4em 0;
+ z-index: 2;
+ }
+ .cd-scrolling-bg.bg_white {
+ background-color: #FFFFFF;
+ }
+ .cd-scrolling-bg.bg_gary {
+ background-color: #eaecf8;
+ }
+ .cd-scrolling-bg.bottom_bg{
+ padding: 0;
+ }
+ @media only screen and (max-width: 1170px) {
+ .cd-fixed-bg {
+ background-attachment: scroll;
+ }
+ .cd-fixed-bg,.cd-scrolling-bg {
+ padding: 3em 0;
+ }
+ }
+ @media only screen and (max-width: 840px) {
+ .cd-fixed-bg,.cd-scrolling-bg {
+ padding: 2em 0;
+ }
+ }
+
+ .use_advantage{
+ margin: 0 4em;
+ }
+ .advantage_img img{
+ width: 7em;
+ height: 7em;
+ }
+
+ @media screen and (max-width: 840px) {
+ .use_advantage{
+ margin: 0 2em;
+ }
+ }
+ .konw_morebox{
+ padding: 3em 0 3em 0;
+ background:#0767aa;
+ }
+ a.know_more{
+ display: block;
+ text-align: center;
+ position: relative;
+ width: 13em;
+ height: 13em;
+ padding: 1em;
+ border-radius: 100%;
+ background-color: rgba(255,255,255,0.3);
+ color: #FFFFFF;
+ margin: 0 auto;
+ transition: all 0.6s ease 0s;
+ }
+ .know_more:before {
+ font-size: 3em;
+ line-height: 1.5em;
+ color: rgba(255,255,255,0.5);
+ }
+ a.know_more:hover{
+ transform: scale(1.1);
+ color: #FFFFFF !important;
+ background-color: rgba(255,255,255,0.4);
+ }
+ .know_more h4{
+ margin-bottom: 0.5em;
+ color: #FFFFFF;
+ }
+ .know_more p{
+ line-height: 1.5em;
+ }
+ @media screen and (max-width: 980px) {
+ a.know_more{
+ width: 12em;
+ height: 12em;
+ padding: 0.5em;
+ }
+ }
+ @media screen and (max-width: 736px) {
+ .konw_morebox{
+ padding: 4em 0 2em 0;
+ }
+ a.know_more{
+ width: 13em;
+ height: 13em;
+ padding: 1em;
+ margin-bottom: 1em;
+ }
+ }
+
+
+/* 登录 */
+
+ body.login_bg{
+ height: 100%;
+ background-color: #ffffff;
+ background-image: url(../images/pic03.jpg);
+ background-repeat: no-repeat;
+ background-size: cover;
+ background-position: top center;
+ }
+
+ body.is-loading:after {
+ opacity: 1;
+ }
+
+ .login_main{
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin-top: -11em;
+ margin-left: -12em;
+ max-width: 100%;
+ width: 24em;
+ padding: 3em 3em 2em 3em;
+ background: #ffffff;
+ border-radius: 4px;
+ cursor: default;
+ opacity: 0.95;
+ text-align: center;
+ -moz-transform-origin: 50% 50%;
+ -webkit-transform-origin: 50% 50%;
+ -ms-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+ -moz-transform: rotateX(0deg);
+ -webkit-transform: rotateX(0deg);
+ -ms-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ -moz-transition: opacity 1s ease, -moz-transform 1s ease;
+ -webkit-transition: opacity 1s ease, -webkit-transform 1s ease;
+ -ms-transition: opacity 1s ease, -ms-transform 1s ease;
+ transition: opacity 1s ease, transform 1s ease;
+ }
+
+ .login_main .button{
+ width: 100%;
+ }
+
+ @media screen and (max-width: 480px) {
+
+ .login_main {
+ min-width: 0;
+ width: 100%;
+ padding: 2.5em 2.5em 1.5em 2.5em ;
+ }
+
+ }
+
+ body.is-loading .login_main {
+ opacity: 0;
+ -moz-transform: rotateX(15deg);
+ -webkit-transform: rotateX(15deg);
+ -ms-transform: rotateX(15deg);
+ transform: rotateX(15deg);
+ }
+
+ .login_warpper {
+ -moz-perspective: 1000px;
+ -webkit-perspective: 1000px;
+ -ms-perspective: 1000px;
+ perspective: 1000px;
+ position: relative;
+ padding: 1.5em;
+ z-index: 2;
+ height: 100%;
+ }
+
+ .login_warpper > * {
+ z-index: 1;
+ }
+
+ .login_warpper:before {
+ content: '';
+ display: block;
+ }
+
+ @media screen and (max-width: 360px) {
+ .login_warpper {
+ padding: 1em;
+ }
+ }
+
+/*技术文档*/
+ .doc_slide .doc_title{
+ font-size: 0.8em;
+ }
+ .doc_title a{
+ padding: 0 0.8em;
+ border-radius: 3px;
+ line-height: 2.6em;
+ color: #333333;
+ }
+ .doc_title.active a{
+ background-color: #4696e5;
+ color: #FFFFFF;
+ }
+ .doc_title.active a:hover{
+ color: #FFFFFF !important;
+ }
+ .doc_slide{
+ margin-bottom: 0.5em;
+ }
+ .doc_slide a{
+ display: block;
+ }
+ .doc_slide ul{
+ margin-bottom: 0;
+ padding-left: 1.5em;
+ }
+ .doc_slide ul li{
+ font-size: 0.8em;
+ }
+ .doc_slide ul li a{
+ color: #8D8D8D;
+ }
+ .doc_slide ul li.active a{
+ color: #4696e5;
+ }
+ h2.doc_text_title{
+ border-bottom: 1px solid #e0e0e0;
+ padding-bottom: 0.8em;
+ }
+
+/*api文档*/
+ .api_doc{
+ padding-top: 3em;
+ padding-bottom: 3em;
+ }
+ .api_doc_bar{
+ height: 500px;
+ left: 0;
+ position: fixed;
+ top: 0;
+ padding-top: 6.25em;
+ width: 230px;
+ }
+ .api_doc_bar dl{
+ padding: 0 0 1.5em 0;
+ margin: 0;
+ }
+ .api_doc_bar dl dt {
+ font-size: 0.9em;
+ font-weight: normal;
+ line-height: 1.5em;
+ padding-bottom: 0.5em;
+ width: 100%;
+ }
+ .api_doc_bar dd {
+ font-size: 0.8em;
+ line-height: 1.2em;
+ padding: 5px 0 5px 1em;
+ }
+ .api_doc_bar dl a{
+ cursor: pointer;
+ color: #333333;
+ display: block;
+ padding: 0 1.5em 0 1.5em;
+ }
+ .api_doc_bar dl dd a{
+ color: #999;
+ }
+ .api_doc_bar dl a.active{
+ color: #4696e5;
+ }
+ .api_doc_bar dl dt a{
+ border-left: 3px solid transparent;
+ }
+ .api_doc_bar dl dt a.active{
+ border-left: 3px solid #4696e5;
+ }
+
+
+ .api_doc_content{
+ padding-left: 250px;
+ }
+ ..api_doc_content img,.doc_text img{
+ max-width: 100%;
+ }
+ .result_box img{
+ width: 300px;
+ border: 1px solid #e0e0e0;
+ }
+ .api_block{
+ margin-bottom: 4em;
+ }
+ .produce_block{
+ margin-top: 2em;
+ }
+ .fund_text h4{
+ margin-bottom: 0.5em;
+ font-size: 1em;
+ }
+ .fund_text img{
+ max-width: 100%;
+ }
+ .fund_text .content p{
+ line-height: 1.5em;
+ margin-bottom: 0.5em;
+ }
+ @media screen and (min-width: 1200px){
+ .api_doc_bar{
+ width: 230px;
+ }
+ }
+ @media screen and (max-width: 1200px) and (min-width: 840px){
+ .api_doc_bar{
+ width: 170px;
+ }
+ }
+ @media screen and (max-width: 840px) and (min-width: 736px){
+ .api_doc_bar{
+ width: 140px;
+ }
+ .api_doc_bar dl a{
+ padding: 0 1em 0 1em;
+ }
+ }
+ @media screen and (max-width: 736px){
+ .api_doc_bar{
+ width: 100%;
+ position: static;
+ height: auto;
+ padding-top: 1em;
+ margin-bottom: 2em;
+ background-color: #f2f2f2;
+ }
+ .api_doc_bar dl dt {
+ border-bottom: 1px solid #E0E0E0;
+ }
+ .api_doc{
+ padding-top: 1em;
+ padding-bottom: 1em;
+ }
+ }
+
+/*费用说明*/
+ .cost_box{
+ border: 1px solid #E0E0E0;
+ padding: 3em 2em 3em 2em;
+ position: relative;
+ min-height: 15.5em;
+ }
+ .cost_box .price{
+ font-size: 0.8em;
+ color: #333333;
+ line-height: 1.5em;
+ height: 3em;
+ }
+ .cost_box .price span{
+ font-size: 1.2em;
+ color: #ff9600;
+ }
+ .cost_box p{
+ margin-bottom: 0;
+ line-height: 2em;
+ }
+ .cost_tag{
+ position: absolute;
+ top: -5px;
+ right:-5px;
+ display: block;
+ width: 140px;
+ height: 140px;
+ background-image: url(../images/tag.png);
+ background-repeat: no-repeat;
+ background-size: cover;
+ }
+ .cost_tag.tag02{
+ background-image: url(../images/tag02.png);
+ }
+ @media screen and (max-width: 980px) and (min-width: 736px){
+ .cost_tag{
+ width: 110px;
+ height: 110px;
+ }
+ }
+ @media screen and (max-width: 480px){
+ .cost_tag{
+ width: 100px;
+ height: 100px;
+ }
+ }
+
+/*关于我们*/
+.about_banner{
+ width: 100%;
+ overflow: hidden;
+ position: relative;
+ height: 399px;
+}
+.about_img{
+ position: absolute;
+ top: 0;
+ left: 50%;
+ margin-left: -960px;
+ width: 1920px;
+ height: 399px;
+}
+.about_img img{
+ display: block;
+ max-width: 100%;
+}
+.block_text{
+ padding-top: 6em;
+ padding-bottom: 6em;
+ border-bottom: 1px solid #E0E0E0;
+}
+.block_text:last-child{
+ border-bottom: 0;
+}
+.about_info{
+ text-align: center;
+ width: 800px;
+ margin: 0 auto;
+}
+.about_info img{
+ margin-bottom: 20px;
+}
+.about_info p{
+ font-size: 18px;
+ line-height: 40px;
+}
+@media screen and (max-width: 1600px){
+ .about_banner{
+ height: 333px;
+ }
+ .about_img{
+ width: 1600px;
+ height: 333px;
+ margin-left: -800px;
+ }
+}
+@media screen and (max-width: 1280px){
+ .about_banner{
+ height: 266px;
+ }
+ .about_img{
+ width: 1280px;
+ height: 266px;
+ margin-left: -640px;
+ }
+}
+@media screen and (max-width: 980px){
+ .about_banner{
+ height: 204px;
+ }
+ .about_img{
+ width: 980px;
+ height: 204px;
+ margin-left: -490px;
+ }
+ .block_text{
+ padding-top: 4em;
+ padding-bottom: 4em;
+ }
+ .about_info{
+ width: 100%;
+ }
+ .about_info p{
+ font-size: 16px;
+ }
+ .about_info p{
+ font-size: 14px;
+ line-height: 30px;
+ }
+}
+@media screen and (max-width: 980px){
+ .block_text{
+ padding-top: 3em;
+ padding-bottom: 3em;
+ }
+}
+
+.history{
+ position: relative;
+ width: 960px;
+ margin: 0 auto;
+}
+.history_main{
+ background: url(../images/line_bg.png) repeat-y 200px top;
+}
+.history_main p{
+ text-indent: 0;
+ margin-bottom:0;
+}
+.history_title{
+ font-size: 32px;
+ text-align: center;
+ margin-bottom: 1.5em;
+}
+.year_div {
+ position: relative;
+ z-index: 100;
+}
+.year_div h2 {
+ height: 80px;
+ width: 80px;
+ font-size: 18px;
+ border-radius: 100%;
+ background-color: #FFFFFF;
+ border: 4px solid #8cbc21;
+ text-align: center;
+ padding: 16px 0;
+ line-height: 40px;
+ display: block;
+ margin-left: 162px;
+}
+.year_div h2 a {
+ color: #8cbc21;
+}
+.year_div h2 i{
+ display:block;
+ position:relative;
+ height: 0;
+ width: 0;
+ left: 50%;
+ bottom: 0;
+ margin-left: -6px;
+ border-width:6px;
+ border-style:solid;
+ border-color:#8cbc21 transparent transparent transparent;
+ -webkit-transition:.5s;
+ -moz-transition:.5s;
+ -ms-transition:.5s;
+ -o-transition:.5s;
+ transition:.5s;
+ -webkit-transform-origin:6px 3px;
+ -moz-transform-origin:6px 3px;
+ -ms-transform-origin:6px 3px;
+ -o-transform-origin:6px 3px;
+ transform-origin:6px 3px
+}
+.year_div .list{
+ margin:10px 0;
+ position:relative;
+ overflow:hidden;
+ -webkit-transition:height 1s cubic-bezier(0.025,0.025,0.000,1.115),opacity 1s;
+ -moz-transition:height 1s cubic-bezier(0.025,0.025,0.000,1.115),opacity 1s;
+ -ms-transition:height 1s cubic-bezier(0.025,0.025,0.000,1.115),opacity 1s;
+ -o-transition:height 1s cubic-bezier(0.025,0.025,0.000,1.115),opacity 1s;
+ transition:height 1s cubic-bezier(0.025,0.025,0.000,1.115),opacity 1s
+}
+.year_div .list ul {
+ top: 0;
+ padding: 0;
+ margin: 0;
+ width: 100%;
+}
+.year_div .list ul li {
+ color: #a1a4b8;
+ width: 760px;
+ position: relative;
+ float: right;
+ clear: both;
+ padding: 30px 0 30px 40px;
+}
+.circle{
+ background: url(../images/circle.png) no-repeat;
+ width: 30px;
+ height: 30px;
+ display: block;
+ position: absolute;
+ left: -13px;
+ top: 30px;
+}
+.year_div .list ul li.highlight .circle{
+ background-position: 0 -30px;
+}
+.year_div .list ul li .date{
+ font-size:18px;
+ margin-bottom: 0;
+ position: absolute;
+ top: 30px;
+ text-align: right;
+ left: -140px;
+ width: 100px;
+ height: 30px;
+ line-height: 30px;
+}
+.year_div .list ul li .intro, .year_div .list ul li .company_info{
+ line-height: 24px;
+ margin-bottom: 0;
+}
+.year_div .list ul li .intro {
+ font-size: 18px;
+ line-height: 30px;
+ color: #8cbc21;
+}
+.year_div .list ul li .company_info p{
+ font-size: 14px;
+ color: #777;
+}
+.year_div .list ul li.highlight .intro{
+ color: #ff9600;
+}
+.year_div .list ul li .round_div{
+ position: relative;
+}
+.year_div.close h2 i{
+ transform:rotate(-90deg);
+ -webkit-transform:rotate(-90deg);
+ -moz-transform:rotate(-90deg);
+ -ms-transform:rotate(-90deg);
+ -o-transform:rotate(-90deg)
+}
+.year_div.close .list{
+ opacity:0;
+ height:0!important;
+}
+ @media screen and (max-width: 960px){
+ .history{
+ width: 800px;
+ }
+ .year_div .list ul li {
+ width: 600px;
+ }
+ .history_title{
+ font-size: 28px;
+ margin-bottom: 1em;
+ }
+ }
+ @media screen and (max-width: 800px){
+ .history{
+ width: 100%;
+ padding-left: 15px;
+ padding-right: 15px;
+ }
+ .history_main{
+ background-position: 30px 0;
+ }
+ .year_div h2{
+ margin: 0 0 0 -5px;
+ width: 70px;
+ height: 70px;
+ font-size: 16px;
+ line-height: 35px;
+ padding: 12px 0;
+ }
+ .year_div .list ul li{
+ width: 100%;
+ }
+ .year_div .list ul li .date{
+ position: static;
+ text-align: left;
+ margin-bottom: 5px;
+ padding-left: 30px;
+ }
+ .year_div .list ul li .round_div{
+ padding-left: 30px;
+ }
+ .circle{
+ left: 17px;
+ }
+ }
+
+
+.contact_block{
+ text-align: center;
+ padding: 1.5em 0 1.5em;
+ height: 320px;
+ border: 1px solid #E0E0E0;
+}
+.contact_text p{
+ margin: 0;
+ font-size: 14px;
+ line-height: 28px;
+}
+.contact_text h3{
+ margin-bottom: 15px;
+ font-size: 18px;
+}
+.button_box{
+ padding-top: 20px;
+ color: #0767aa;
+}
+.weixin_box img{
+ width: 110px;
+}
+.cooperation{
+ text-align: center;
+}
+.cooperation li{
+ display: inline-block;
+ padding: 10px;
+}
+.cooperation li a{
+ border: 1px solid #E0E0E0;
+ display: block;
+ padding: 2px 7px;
+}
+.cooperation li img{
+ display: block;
+ width: 150px;
+ height: 60px;
+}
+
+/*帮助中心*/
+.help_top{
+ padding: 0;
+ background: #509ec0;
+ background: -moz-linear-gradient(left, #6cc9b7 0%, #509ec0 50%, #0767aa 100%);
+ background: -webkit-gradient(linear, left, right, color-stop(0%, #6cc9b7), color-stop(50%, #509ec0), color-stop(100%, #0767aa));
+ background: -webkit-linear-gradient(left, #6cc9b7 0%, #509ec0 50%, #0767aa 100%);
+ background: -o-linear-gradient(left, #6cc9b7 0%, #509ec0 50%, #0767aa 100%);
+ background: -ms-linear-gradient(left,#6cc9b7 0%, #509ec0 50%, #0767aa 100%);
+ background: linear-gradient(to right, #6cc9b7 0%, #509ec0 50%, #0767aa 100%);
+ filter: progid: DXImageTransform.Microsoft.gradient( startColorstr='#6cc9b7', endColorstr='#0767aa', GradientType=0);
+}
+:root .gradient{filter:none;}
+
+.help_top img{
+ display: block;
+ margin: 0 auto;
+ max-width: 100%;
+}
+.nav_title{
+ font-size: 14px;
+ padding: 20px 0;
+}
+.help_conternt{
+ padding-bottom: 50px;
+}
+.help_title{
+ font-size: 20px;
+ color: #333333;
+ border-bottom: 1px solid #E0E0E0;
+ line-height: 40px;
+ margin-bottom: 30px;
+}
+.help_slide{
+ border: 1px solid #E0E0E0;
+ padding: 10px 15px 15px;
+}
+.help_slide_title{
+ padding-bottom: 10px;
+ font-size: 16px;
+ border-bottom: 1px solid #E0E0E0;
+ color: #333;
+}
+.help_slide_list li{
+ line-height: 30px;
+ height: 30px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+.help_slide_list li a{
+ font-size: 14px;
+}
+.question_list li{
+ padding: 15px 0;
+ border-bottom: 1px solid #E0E0E0;
+ line-height: 25px;
+ padding-left: 30px;
+ background: url(../images/list_style.png) no-repeat left 20px;
+}
+.question_list li a{
+ display: block;
+ font-size: 16px;
+}
+.question_list li span{
+ display: block;
+ font-size: 14px;
+
+}
+.question_content p{
+ font-size: 14px;
+ margin-bottom: 0;
+}
+.question_content img{
+ max-width: 100%;
+}
+.page_box{
+ padding: 20px 0;
+ text-align: center;
+}
+.page_box a{
+ display: inline-block;
+ padding: 5px 12px;
+ background-color: #eaecf8;
+ margin: 0 5px;
+ color: #333;
+ font-size: 14px;
+ line-height: 22px;
+}
+.page_box a.disabled{
+ color: #888;
+ cursor: default;
+}
+.page_box a.on{
+ background-color: #0767aa;
+ color: #FFFFFF;
+}
+
+/* ===================footer ===================*/
+ .footer{
+ background: #222;
+ color: #FFFFFF;
+ padding: 2em 0 2em 0;
+ }
+ .footer_link h5,.footer_link a{
+ color: #FFFFFF;
+ }
+ .footer_link p{
+ font-size: 0.75em;
+ line-height: 1.8em;
+ margin-bottom: 0;
+ }
+ .footer_link img{
+ width: 70%;
+ }
+
+/*===================不同尺寸=====================*/
+/* XLarge */
+
+ @media screen and (max-width: 1800px) {
+
+ /* Basic */
+
+ body, input, select, textarea {
+ font-size: 14pt;
+ }
+
+
+
+ }
+
+/* Large */
+
+ @media screen and (max-width: 1280px) {
+ /* Basic */
+
+ body, input, select, textarea {
+ font-size: 12pt;
+ }
+
+ /* Section/Article */
+
+ header.major {
+ margin: 0.75em 0 2.5em 0;
+ }
+
+ header.major h2 {
+ padding: 0 1em 0 1em;
+ }
+ header.white h2 {
+ margin-bottom: 2em;
+ }
+
+ /* Header */
+ #header h1 img{
+ height: 52px;
+ }
+ #header nav > ul > li a{
+ font-size: 1em;
+ }
+ }
+
+/* Medium */
+
+ @media screen and (max-width: 980px) {
+
+ /* Basic */
+
+ body, input, select, textarea {
+ font-size: 12pt;
+ }
+ html, body {
+ overflow-x: hidden;
+ }
+ h1 br, h2 br, h3 br, h4 br, h5 br, h6 br {
+ display: none;
+ }
+
+ /* List */
+
+ ul.icons li .icon {
+ font-size: 1.25em;
+ }
+
+ /* Header */
+ #header nav > ul > li a{
+ font-size: 0.9em;
+ }
+ #header nav#nav{
+ left: 10em;
+ }
+
+
+ /* banner */
+ .banner .banner_text {
+ margin: 3em 0 0 0;
+ }
+ .banner .banner_text h2{
+ font-size: 2em;
+ }
+ .banner .banner_text h2 img{
+ height: 50px;
+ }
+ .banner .banner_text p{
+ font-size: 1.2em;
+ }
+ }
+ @media screen and (max-width: 980px) and (orientation: portrait) {
+ /* banner */
+ .banner {
+ padding: 6.5em 2em 2em 2em ;
+ -moz-flex-direction: column-reverse;
+ -webkit-flex-direction: column-reverse;
+ -ms-flex-direction: column-reverse;
+ flex-direction: column-reverse;
+ }
+ .banner .container{
+ width: 100% !important;
+ }
+ .cd-fixed-bg.banner{
+ padding: 6.5em 2em 2em 2em ;
+ }
+
+ .banner .banner_text {
+ display: block;
+ width: 100%;
+ text-align: center;
+ margin: 0 0 2em 0;
+ float: none;
+ }
+ .banner .banner_img{
+ width: 100%;
+ float: none;
+ }
+
+ .banner .image {
+ overflow: hidden;
+ }
+
+
+ }
+/* mediumer */
+ #navPanel, #navButton {
+ display: none;
+ }
+
+ @media screen and (max-width: 840px) {
+ /* Basic */
+
+ body, input, select, textarea {
+ font-size: 12pt;
+ }
+
+ /* Header */
+ #header nav{
+ display: none;
+ }
+
+ /* Off-Canvas Navigation */
+
+ #page-wrapper {
+ -moz-backface-visibility: hidden;
+ -webkit-backface-visibility: hidden;
+ -ms-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -moz-transition: -moz-transform 0.5s ease;
+ -webkit-transition: -webkit-transform 0.5s ease;
+ -ms-transition: -ms-transform 0.5s ease;
+ transition: transform 0.5s ease;
+ padding-bottom: 1px;
+ }
+
+ #navButton {
+ -moz-backface-visibility: hidden;
+ -webkit-backface-visibility: hidden;
+ -ms-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -moz-transition: -moz-transform 0.5s ease;
+ -webkit-transition: -webkit-transform 0.5s ease;
+ -ms-transition: -ms-transform 0.5s ease;
+ transition: transform 0.5s ease;
+ display: block;
+ height: 3.25em;
+ right: 0;
+ position: fixed;
+ top: 0;
+ width: 4em;
+ z-index: 10001;
+ }
+
+ #navButton .toggle {
+ text-decoration: none;
+ height: 100%;
+ left: 0;
+ position: absolute;
+ top: 0;
+ width: 100%;
+ border: 0;
+ outline: 0;
+ }
+
+ #navButton .toggle:before {
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ font-family: FontAwesome;
+ font-style: normal;
+ font-weight: normal;
+ text-transform: none !important;
+ }
+
+ #navButton .toggle:before {
+ border-radius: 6px;
+ color: #333;
+ content: '\f0c9';
+ display: block;
+ font-size: 1.5em;
+ height: 1.5em;
+ right: 0.5em;
+ line-height: 1.5em;
+ position: absolute;
+ text-align: center;
+ top: 0.35em;
+ width: 2em;
+ }
+
+ #navPanel {
+ -moz-backface-visibility: hidden;
+ -webkit-backface-visibility: hidden;
+ -ms-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -moz-transform: translateX(-275px);
+ -webkit-transform: translateX(-275px);
+ -ms-transform: translateX(-275px);
+ transform: translateX(-275px);
+ -moz-transition: -moz-transform 0.5s ease;
+ -webkit-transition: -webkit-transform 0.5s ease;
+ -ms-transition: -ms-transform 0.5s ease;
+ transition: transform 0.5s ease;
+ display: block;
+ height: 100%;
+ left: 0;
+ overflow-y: auto;
+ position: fixed;
+ top: 0;
+ width: 275px;
+ z-index: 10002;
+ background: #2b2b2b;
+ color: #bbb;
+ }
+
+ #navPanel .link {
+ border-bottom: 0;
+ border-top: solid 1px rgba(255, 255, 255, 0.05);
+ color: #bbb;
+ display: block;
+ height: 44px;
+ line-height: 44px;
+ padding: 0 1em 0 1em;
+ text-decoration: none;
+ }
+
+ #navPanel .link:first-child {
+ border-top: 0;
+ }
+
+ #navPanel .link.depth-0 {
+ color: #fff;
+ }
+
+ #navPanel .link .indent-1 {
+ display: inline-block;
+ width: 1em;
+ }
+
+ #navPanel .link .indent-2 {
+ display: inline-block;
+ width: 2em;
+ }
+
+ #navPanel .link .indent-3 {
+ display: inline-block;
+ width: 3em;
+ }
+
+ #navPanel .link .indent-4 {
+ display: inline-block;
+ width: 4em;
+ }
+
+ #navPanel .link .indent-5 {
+ display: inline-block;
+ width: 5em;
+ }
+
+ body.navPanel-visible #page-wrapper {
+ -moz-transform: translateX(275px);
+ -webkit-transform: translateX(275px);
+ -ms-transform: translateX(275px);
+ transform: translateX(275px);
+ }
+
+ body.navPanel-visible #navButton {
+ -moz-transform: translateX(275px);
+ -webkit-transform: translateX(275px);
+ -ms-transform: translateX(275px);
+ transform: translateX(275px);
+ }
+
+ body.navPanel-visible #navPanel {
+ -moz-transform: translateX(0);
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ }
+
+/* Small */
+
+ @media screen and (max-width: 736px) {
+
+ /* Basic */
+ body, input, select, textarea {
+ font-size: 12pt;
+ }
+
+ h1 {
+ font-size: 1.8em;
+ }
+
+ h2 {
+ font-size: 1.4em;
+ }
+
+ h3 {
+ font-size: 1.15em;
+ }
+
+ h4 {
+ font-size: 1em;
+ }
+
+ h5 {
+ font-size: 0.8em;
+ }
+
+ h6 {
+ font-size: 0.7em;
+ }
+
+ /* Section/Article */
+
+ section, article {
+ margin: 0 0 1.5em 0 !important;
+ }
+
+ /* Box */
+ .box_item .button{
+ width: 100%;
+ height: 3.5em;
+ line-height: 3.5em;
+ }
+
+
+ /* List */
+
+ ul.labeled-icons li {
+ padding-left: 2em;
+ }
+
+ ul.labeled-icons li h3 {
+ line-height: 1.75em;
+ }
+
+ /* Poptrox */
+
+ .poptrox-popup {
+ border-radius: 0;
+ }
+
+ .poptrox-popup .nav-next:before,
+ .poptrox-popup .nav-previous:before {
+ margin-top: -1em;
+ }
+ /* banner */
+ .banner .banner_text h2{
+ font-size: 1.5em;
+ }
+ .banner .banner_text h2 img{
+ height: 40px;
+ }
+ .banner .banner_text p{
+ font-size: 1em;
+ }
+ }
+
+/* XSmall */
+
+ @media screen and (max-width: 480px) {
+ /* Basic */
+
+ html, body {
+ min-width: 320px;
+ }
+
+ body, input, select, textarea {
+ font-size: 11pt;
+ }
+
+ /* List */
+
+ ul.actions {
+ margin: 0 0 2em 0;
+ }
+
+ ul.actions li {
+ display: block;
+ padding: 1em 0 0 0;
+ text-align: center;
+ width: 100%;
+ }
+
+ ul.actions li:first-child {
+ padding-top: 0;
+ }
+
+ ul.actions li > * {
+ margin: 0 !important;
+ width: 100%;
+ }
+
+ ul.actions li > *.icon:before {
+ margin-left: -2em;
+ }
+
+ ul.actions.small li {
+ padding: 0.5em 0 0 0;
+ }
+
+ ul.actions.small li:first-child {
+ padding-top: 0;
+ }
+
+ /* Header */
+ #header h1{
+ left: 0.6em;
+ }
+ #header h1 img{
+ height: 47px;
+ }
+ /* banner */
+ .banner .banner_text p{
+ margin-bottom: 0;
+ }
+ }
\ No newline at end of file
diff --git a/template/index1/assets/images/circle.png b/template/index1/assets/images/circle.png
new file mode 100644
index 0000000..2af3d71
Binary files /dev/null and b/template/index1/assets/images/circle.png differ
diff --git a/template/index1/assets/images/line_bg.png b/template/index1/assets/images/line_bg.png
new file mode 100644
index 0000000..7a20494
Binary files /dev/null and b/template/index1/assets/images/line_bg.png differ
diff --git a/template/index1/assets/images/list_style.png b/template/index1/assets/images/list_style.png
new file mode 100644
index 0000000..45ffe5c
Binary files /dev/null and b/template/index1/assets/images/list_style.png differ
diff --git a/template/index1/assets/images/pic01.jpg b/template/index1/assets/images/pic01.jpg
new file mode 100644
index 0000000..c43cb53
Binary files /dev/null and b/template/index1/assets/images/pic01.jpg differ
diff --git a/template/index1/assets/images/pic03.jpg b/template/index1/assets/images/pic03.jpg
new file mode 100644
index 0000000..851d826
Binary files /dev/null and b/template/index1/assets/images/pic03.jpg differ
diff --git a/template/index1/assets/images/screen.jpg b/template/index1/assets/images/screen.jpg
new file mode 100644
index 0000000..45f10eb
Binary files /dev/null and b/template/index1/assets/images/screen.jpg differ
diff --git a/template/index1/assets/images/tag.png b/template/index1/assets/images/tag.png
new file mode 100644
index 0000000..df43ba2
Binary files /dev/null and b/template/index1/assets/images/tag.png differ
diff --git a/template/index1/assets/images/tag02.png b/template/index1/assets/images/tag02.png
new file mode 100644
index 0000000..a5d5ea0
Binary files /dev/null and b/template/index1/assets/images/tag02.png differ
diff --git a/template/index1/assets/picture/about_us.jpg b/template/index1/assets/picture/about_us.jpg
new file mode 100644
index 0000000..0b06401
Binary files /dev/null and b/template/index1/assets/picture/about_us.jpg differ
diff --git a/template/index1/assets/picture/adv01.png b/template/index1/assets/picture/adv01.png
new file mode 100644
index 0000000..414faa6
Binary files /dev/null and b/template/index1/assets/picture/adv01.png differ
diff --git a/template/index1/assets/picture/adv02.png b/template/index1/assets/picture/adv02.png
new file mode 100644
index 0000000..3e96255
Binary files /dev/null and b/template/index1/assets/picture/adv02.png differ
diff --git a/template/index1/assets/picture/adv03.png b/template/index1/assets/picture/adv03.png
new file mode 100644
index 0000000..f6f0e91
Binary files /dev/null and b/template/index1/assets/picture/adv03.png differ
diff --git a/template/index1/assets/picture/adv04.png b/template/index1/assets/picture/adv04.png
new file mode 100644
index 0000000..dadea15
Binary files /dev/null and b/template/index1/assets/picture/adv04.png differ
diff --git a/template/index1/assets/picture/icon_adress.png b/template/index1/assets/picture/icon_adress.png
new file mode 100644
index 0000000..505c86f
Binary files /dev/null and b/template/index1/assets/picture/icon_adress.png differ
diff --git a/template/index1/assets/picture/icon_qq.png b/template/index1/assets/picture/icon_qq.png
new file mode 100644
index 0000000..2bd9240
Binary files /dev/null and b/template/index1/assets/picture/icon_qq.png differ
diff --git a/template/index1/assets/picture/icon_weixin.png b/template/index1/assets/picture/icon_weixin.png
new file mode 100644
index 0000000..7997e01
Binary files /dev/null and b/template/index1/assets/picture/icon_weixin.png differ
diff --git a/template/index1/assets/picture/ispay_1.png b/template/index1/assets/picture/ispay_1.png
new file mode 100644
index 0000000..56fbda7
Binary files /dev/null and b/template/index1/assets/picture/ispay_1.png differ
diff --git a/template/index1/assets/picture/kf01.png b/template/index1/assets/picture/kf01.png
new file mode 100644
index 0000000..f6f237c
Binary files /dev/null and b/template/index1/assets/picture/kf01.png differ
diff --git a/template/index1/assets/picture/kf02.png b/template/index1/assets/picture/kf02.png
new file mode 100644
index 0000000..dc54429
Binary files /dev/null and b/template/index1/assets/picture/kf02.png differ
diff --git a/template/index1/assets/picture/kf03.png b/template/index1/assets/picture/kf03.png
new file mode 100644
index 0000000..14fd9dc
Binary files /dev/null and b/template/index1/assets/picture/kf03.png differ
diff --git a/template/index1/assets/picture/phone.png b/template/index1/assets/picture/phone.png
new file mode 100644
index 0000000..bf8bee9
Binary files /dev/null and b/template/index1/assets/picture/phone.png differ
diff --git a/template/index1/assets/picture/use01.png b/template/index1/assets/picture/use01.png
new file mode 100644
index 0000000..823be18
Binary files /dev/null and b/template/index1/assets/picture/use01.png differ
diff --git a/template/index1/assets/picture/use02.png b/template/index1/assets/picture/use02.png
new file mode 100644
index 0000000..cf0a60c
Binary files /dev/null and b/template/index1/assets/picture/use02.png differ
diff --git a/template/index1/assets/picture/use03.png b/template/index1/assets/picture/use03.png
new file mode 100644
index 0000000..0784942
Binary files /dev/null and b/template/index1/assets/picture/use03.png differ
diff --git a/template/index1/assets/picture/weixin.jpg b/template/index1/assets/picture/weixin.jpg
new file mode 100644
index 0000000..9ba6453
Binary files /dev/null and b/template/index1/assets/picture/weixin.jpg differ
diff --git a/template/index1/assets/picture/yuke01.png b/template/index1/assets/picture/yuke01.png
new file mode 100644
index 0000000..6a41e0d
Binary files /dev/null and b/template/index1/assets/picture/yuke01.png differ
diff --git a/template/index1/assets/picture/yuke02.png b/template/index1/assets/picture/yuke02.png
new file mode 100644
index 0000000..b0a3891
Binary files /dev/null and b/template/index1/assets/picture/yuke02.png differ
diff --git a/template/index1/assets/picture/yuke03.png b/template/index1/assets/picture/yuke03.png
new file mode 100644
index 0000000..3a3227a
Binary files /dev/null and b/template/index1/assets/picture/yuke03.png differ
diff --git a/template/index1/assets/picture/yuke04.png b/template/index1/assets/picture/yuke04.png
new file mode 100644
index 0000000..83231ef
Binary files /dev/null and b/template/index1/assets/picture/yuke04.png differ
diff --git a/template/index1/doc.php b/template/index1/doc.php
new file mode 100644
index 0000000..7a169dd
--- /dev/null
+++ b/template/index1/doc.php
@@ -0,0 +1,327 @@
+
+
+
+
+
+
+ 协议规则
+
+
传输方式:HTTP
+
数据格式:JSON
+
签名算法:MD5
+
字符编码:UTF-8
+
+
+
+ [API]创建商户
+
+
API权限:该API只能合作支付商户调用
+
URL地址:api.php?act=apply&token={合作者身份TOKEN}&url={商户域名}
+
请求参数说明:
+
+ 字段名 变量名 必填 类型 示例值 描述
+
+ 操作类型 act 是 String apply 此API固定值
+ 合作者TOKEN token 是 String 9ddab6c4f2c87ce442de371b04f36d68 需要事先申请
+ 商户域名 url 是 String pay.v8jisu.cn
+
+
+
返回结果:
+
+ 字段名 变量名 类型 示例值 描述
+
+ 返回状态码 code Int 1 1为成功,其它值为失败
+ 返回信息 msg String 添加支付商户成功!
+ 商户ID pid Int 1001 所创建的商户ID
+ 商户密钥 key String(32) 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i 所创建的商户密钥
+ 商户类型 type Int 1 此值暂无用
+
+
+
+
+
+ [API]查询商户信息与结算规则
+
+
URL地址:api.php?act=query&pid={商户ID}&key={商户密钥}
+
请求参数说明:
+
+ 字段名 变量名 必填 类型 示例值 描述
+
+ 操作类型 act 是 String query 此API固定值
+ 商户ID pid 是 Int 1001
+ 商户密钥 key 是 String 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i
+
+
+
返回结果:
+
+ 字段名 变量名 类型 示例值 描述
+
+ 返回状态码 code Int 1 1为成功,其它值为失败
+ 商户ID pid Int 1001 所创建的商户ID
+ 商户密钥 key String(32) 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i 所创建的商户密钥
+ 商户类型 type Int 1 此值暂无用
+ 商户状态 active Int 1 1为正常,0为封禁
+ 商户余额 money String 0.00 商户所拥有的余额
+ 结算账号 account String pay@cccyun.cn 结算的支付宝账号
+ 结算姓名 username String 张三 结算的支付宝姓名
+ 满多少自动结算 settle_money String 30 此值为系统预定义
+ 手动结算手续费 settle_fee String 1 此值为系统预定义
+ 每笔订单分成比例 money_rate String 98 此值为系统预定义
+
+
+
+
+
+ [API]修改结算账号
+
+
URL地址:api.php?act=change&pid={商户ID}&key={商户密钥}&account={结算账号}&username={结算姓名}
+
注:为了保障资金安全,已经设置结算账号的无法再进行修改,如需修改请联系客服
+
请求参数说明:
+
+ 字段名 变量名 必填 类型 示例值 描述
+
+ 操作类型 act 是 String change 此API固定值
+ 商户ID pid 是 Int 1001
+ 商户密钥 key 是 String 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i
+ 结算账号 account 是 String pay@cccyun.cn 结算的支付宝账号
+ 结算姓名 username 是 String 张三 结算的支付宝姓名
+
+
+
返回结果:
+
+ 字段名 变量名 类型 示例值 描述
+
+ 返回状态码 code Int 1 1为成功,其它值为失败
+ 返回信息 msg String 修改收款账号成功!
+
+
+
+
+
+ [API]查询结算记录
+
+
URL地址:api.php?act=settle&pid={商户ID}&key={商户密钥}
+
请求参数说明:
+
+ 字段名 变量名 必填 类型 示例值 描述
+
+ 操作类型 act 是 String settle 此API固定值
+ 商户ID pid 是 Int 1001
+ 商户密钥 key 是 String 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i
+
+
+
返回结果:
+
+ 字段名 变量名 类型 示例值 描述
+
+ 返回状态码 code Int 1 1为成功,其它值为失败
+ 返回信息 msg String 查询结算记录成功!
+ 结算记录 data Array 结算记录列表
+
+
+
+
+
+ [API]查询单个订单
+
+
URL地址:api.php?act=order&pid={商户ID}&key={商户密钥}&out_trade_no={商户订单号}
+
请求参数说明:
+
+ 字段名 变量名 必填 类型 示例值 描述
+
+ 操作类型 act 是 String order 此API固定值
+ 商户ID pid 是 Int 1001
+ 商户密钥 key 是 String 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i
+ 商户订单号 out_trade_no 是 String 20160806151343349
+
+
+
返回结果:
+
+ 字段名 变量名 类型 示例值 描述
+
+ 返回状态码 code Int 1 1为成功,其它值为失败
+ 返回信息 msg String 查询订单号成功!
+ 易支付订单号 trade_no String 2016080622555342651 订单号
+ 商户订单号 out_trade_no String 20160806151343349 商户系统内部的订单号
+ 支付方式 type String alipay alipay:支付宝,tenpay:财付通, qqpay:QQ钱包,wxpay:微信支付
+ 商户ID pid Int 1001 发起支付的商户ID
+ 创建订单时间 addtime String 2016-08-06 22:55:52
+ 完成交易时间 endtime String 2016-08-06 22:55:52
+ 商品名称 name String VIP会员
+ 商品金额 money String 1.00
+ 支付状态 status Int 0 1为支付成功,0为未支付
+
+
+
+
+
+ [API]批量查询订单
+
+
URL地址:api.php?act=orders&pid={商户ID}&key={商户密钥}
+
请求参数说明:
+
+ 字段名 变量名 必填 类型 示例值 描述
+
+ 操作类型 act 是 String orders 此API固定值
+ 商户ID pid 是 Int 1001
+ 商户密钥 key 是 String 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i
+ 查询订单数量 limit 否 Int 20 返回的订单数量,最大50
+ 页码 page 否 Int 1 当前查询的页码
+
+
+
返回结果:
+
+ 字段名 变量名 类型 示例值 描述
+
+ 返回状态码 code Int 1 1为成功,其它值为失败
+ 返回信息 msg String 查询结算记录成功!
+ 订单列表 data Array 订单列表
+
+
+
+
+
+ [API]二维码下单接口
+
+
此接口可用于服务器后端发起支付请求,会返回支付二维码链接
+
URL地址:qrcode.php?pid={商户ID}&type={支付方式}&out_trade_no={商户订单号}¬ify_url={服务器异步通知地址}&name={商品名称}&money={金额}&sign={签名字符串}&sign_type=MD5
+
请求参数说明:
+
+ 字段名 变量名 必填 类型 示例值 描述
+
+ 商户ID pid 是 Int 1001
+ 支付方式 type 是 String alipay qqpay:QQ钱包,wxpay:微信支付
+ 商户订单号 out_trade_no 是 String 20160806151343349
+ 异步通知地址 notify_url 是 String http://www.cccyun.cc/notify_url.php 服务器异步通知地址
+ 商品名称 name 是 String VIP会员
+ 商品金额 money 是 String 1.00
+ 签名字符串 sign 是 String 202cb962ac59075b964b07152d234b70 签名算法与支付宝签名算法 相同
+ 签名类型 sign_type 是 String MD5 默认为MD5
+
+
+
返回结果:
+
+ 字段名 变量名 类型 示例值 描述
+
+ 返回状态码 code Int 1 1为成功,其它值为失败
+ 返回信息 msg String 下单成功!
+ 订单号 trade_no String 20160806151343349
+ 商户订单号 out_trade_no String 20160806151343349
+ 二维码链接 code_url String weixin://wxpay/bizpayurl?pr=04IPMKM
+
+
+
+
+
+
+ 发起支付请求
+
+
URL地址:submit.php
+
POST数据:pid={商户ID}&type={支付方式}&out_trade_no={商户订单号}¬ify_url={服务器异步通知地址}&return_url={页面跳转通知地址}&name={商品名称}&money={金额}&sitename={网站名称}&sign={签名字符串}&sign_type=MD5
+
请求参数说明:
+
+ 字段名 变量名 必填 类型 示例值 描述
+
+ 商户ID pid 是 Int 1001
+ 支付方式 type 是 String alipay alipay:支付宝,tenpay:财付通, qqpay:QQ钱包,wxpay:微信支付
+ 商户订单号 out_trade_no 是 String 20160806151343349
+ 异步通知地址 notify_url 是 String http://www.cccyun.cc/notify_url.php 服务器异步通知地址
+ 跳转通知地址 return_url 是 String http://www.cccyun.cc/return_url.php 页面跳转通知地址
+ 商品名称 name 是 String VIP会员
+ 商品金额 money 是 String 1.00
+ 网站名称 sitename 否 String 彩虹云任务
+ 签名字符串 sign 是 String 202cb962ac59075b964b07152d234b70 签名算法与支付宝签名算法 相同
+ 签名类型 sign_type 是 String MD5 默认为MD5
+
+
+
+
+
+ 支付结果通知
+
+
通知类型:服务器异步通知(notify_url)、页面跳转通知(return_url)
+
请求方式:GET
+
请求参数说明:
+
+ 字段名 变量名 必填 类型 示例值 描述
+
+ 商户ID pid 是 Int 1001
+ 易支付订单号 trade_no 是 String 20160806151343349021 订单号
+ 商户订单号 out_trade_no 是 String 20160806151343349 商户系统内部的订单号
+ 支付方式 type 是 String alipay alipay:支付宝,tenpay:财付通, qqpay:QQ钱包,wxpay:微信支付, alipaycode:支付宝扫码,jdpay:京东支付
+ 商品名称 name 是 String VIP会员
+ 商品金额 money 是 String 1.00
+ 支付状态 trade_status 是 String TRADE_SUCCESS
+ 签名字符串 sign 是 String 202cb962ac59075b964b07152d234b70 签名算法与支付宝签名算法 相同
+ 签名类型 sign_type 是 String MD5 默认为MD5
+
+
+
+
+
+
+ SDK下载
+
+
+SDK.zip
+SDK版本:V1.1
+
+
+
+
+
\ No newline at end of file
diff --git a/template/index1/foot.php b/template/index1/foot.php
new file mode 100644
index 0000000..7d7ada3
--- /dev/null
+++ b/template/index1/foot.php
@@ -0,0 +1,68 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/template/index1/head.php b/template/index1/head.php
new file mode 100644
index 0000000..e13784e
--- /dev/null
+++ b/template/index1/head.php
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/template/index1/index.php b/template/index1/index.php
new file mode 100644
index 0000000..6b4b873
--- /dev/null
+++ b/template/index1/index.php
@@ -0,0 +1,206 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 扫一扫关注
+
+
+
+
+
+
+
+
+
+
+ 专业的收银系统
+
+
全面集成主流支付渠道,为企业提供解决收款 付款 结算 营销 等问题的技术方案
+
提供企业统一管理电子钱包的技术方案
+
+
+
注册使用
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/template/index1/preview.png b/template/index1/preview.png
new file mode 100644
index 0000000..c13f7a9
Binary files /dev/null and b/template/index1/preview.png differ
diff --git a/template/index1/produceIntroduce.php b/template/index1/produceIntroduce.php
new file mode 100644
index 0000000..84ae2f4
--- /dev/null
+++ b/template/index1/produceIntroduce.php
@@ -0,0 +1,271 @@
+
+
+
+
+
+
+ 支付渠道
+
+
+
+ PC网页支付
+
+
+ ,PC网页支付支持支付宝网页支付、支付宝扫码支付、 微信扫码支付、银联网页支付、百度钱包等。
+
+
+
+ 扫码支付
+
+
+ ,支持统一扫码支付,渠道扫码支付,包括支付宝扫码支付、 微信扫码支付等。
+
+
+
+ 微信公众号支付
+
+
+ ,为微信公众号提供全套支付解决方案: 用户可在你的微信服务号内进行微信 支付,简单便捷!
+
+
+
+ 手机APP支付
+
+
+ ,为iOS/Android原生/H5 App提供支付解决方案:支持微信支付、支付宝支付、银联手机支付、百度钱包等。
+
+
+
+
+
+ 管理中心
+
+
+
+
+
+
+
+ 开发人员
+
+
+
+
+
+
+
+
+
+ 运营人员
+
+
+
+
+
+
+
+
+
+ 财务人员
+
+
+
+
+
+
+
+
+ 运营中心
+
+
+
+
+
+
+
+ 配置
+
+
+ 风控、分账、费用、营销、结算
+
+
+
+
+
+
+
+
+
+ 报表
+
+
+ 资金流水报表、日报表、汇总报表
+
+
+
+
+
+
+
+
+ 财务中心
+
+
+
+
+
+
+
+ 对账
+
+
+ 系统自动对账、对账结果查询、对账处理
+
+
+
+
+
+
+
+
+
+ 财务
+
+
+ 余额调整、相关审核、批量出款、T+n自动结算
+
+
+
+
+
+
+
+
+ 开通说明
+
+
+
+
+
+
+
+ 注册
+
+
+ 您可以免费申请账号,使用开发的相关功能。
+
+
+ 去注册
+
+
+
+
+
+
+
+
+
+ 集成
+
+
+ 开发人员根据文档说明配置相关的信息.下载SDK与DEMO进行集成.
+
+
+ 查看文档
+ 下载SDK
+
+
+
+
+
+
+
+
+
+ 开通
+
+
+ 正式开通如果有个性化定制需求,请线下联系我们
+
+
+ 联系我们
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/template/index10/assets/css/animate.css b/template/index10/assets/css/animate.css
new file mode 100644
index 0000000..6510d9e
--- /dev/null
+++ b/template/index10/assets/css/animate.css
@@ -0,0 +1,3514 @@
+@charset "UTF-8";
+
+/*!
+ * animate.css -http://daneden.me/animate
+ * Version - 3.6.0
+ * Licensed under the MIT license - http://opensource.org/licenses/MIT
+ *
+ * Copyright (c) 2018 Daniel Eden
+ */
+
+.animated {
+ -webkit-animation-duration: 1s;
+ animation-duration: 1s;
+ -webkit-animation-fill-mode: both;
+ animation-fill-mode: both;
+}
+
+.animated.infinite {
+ -webkit-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+}
+
+@-webkit-keyframes bounce {
+ from,
+ 20%,
+ 53%,
+ 80%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 40%,
+ 43% {
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
+ -webkit-transform: translate3d(0, -30px, 0);
+ transform: translate3d(0, -30px, 0);
+ }
+
+ 70% {
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
+ -webkit-transform: translate3d(0, -15px, 0);
+ transform: translate3d(0, -15px, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(0, -4px, 0);
+ transform: translate3d(0, -4px, 0);
+ }
+}
+
+@keyframes bounce {
+ from,
+ 20%,
+ 53%,
+ 80%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 40%,
+ 43% {
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
+ -webkit-transform: translate3d(0, -30px, 0);
+ transform: translate3d(0, -30px, 0);
+ }
+
+ 70% {
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
+ -webkit-transform: translate3d(0, -15px, 0);
+ transform: translate3d(0, -15px, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(0, -4px, 0);
+ transform: translate3d(0, -4px, 0);
+ }
+}
+
+.bounce {
+ -webkit-animation-name: bounce;
+ animation-name: bounce;
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+}
+
+@-webkit-keyframes flash {
+ from,
+ 50%,
+ to {
+ opacity: 1;
+ }
+
+ 25%,
+ 75% {
+ opacity: 0;
+ }
+}
+
+@keyframes flash {
+ from,
+ 50%,
+ to {
+ opacity: 1;
+ }
+
+ 25%,
+ 75% {
+ opacity: 0;
+ }
+}
+
+.flash {
+ -webkit-animation-name: flash;
+ animation-name: flash;
+}
+
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+@-webkit-keyframes pulse {
+ from {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+
+ 50% {
+ -webkit-transform: scale3d(1.05, 1.05, 1.05);
+ transform: scale3d(1.05, 1.05, 1.05);
+ }
+
+ to {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+@keyframes pulse {
+ from {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+
+ 50% {
+ -webkit-transform: scale3d(1.05, 1.05, 1.05);
+ transform: scale3d(1.05, 1.05, 1.05);
+ }
+
+ to {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+.pulse {
+ -webkit-animation-name: pulse;
+ animation-name: pulse;
+}
+
+@keyframes yaobai {
+ 0% {
+ -webkit-transform: rotate(10deg);
+ -webkit-transform-origin: top center;
+ -moz-transform: rotate(10deg);
+ -moz-transform-origin: top center;
+ transform: rotate(10deg);
+ transform-origin: top center;
+ }
+ 100% {
+ -webkit-transform: rotate(-10deg);
+ -webkit-transform-origin: top center;
+ -moz-transform: rotate(-10deg);
+ -moz-transform-origin: top center;
+ transform: rotate(-10deg);
+ transform-origin: top center;
+ }
+}
+
+@-webkit-keyframes rubberBand {
+ from {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+
+ 30% {
+ -webkit-transform: scale3d(1.15, 1.15, 1);
+ transform: scale3d(1.15, 1.15, 1);
+ }
+
+ 40% {
+ -webkit-transform: scale3d(1.35, 1.35, 1);
+ transform: scale3d(1.45, 1.35, 1);
+ }
+
+ 50% {
+ -webkit-transform: scale3d(1, 1 , 1);
+ transform: scale3d(0.75, 1 , 1);
+ }
+
+ 65% {
+ -webkit-transform: scale3d(1.35, 1.35, 1);
+ transform: scale3d(1.45, 1.35, 1);
+ }
+
+ 75% {
+ -webkit-transform: scale3d(1.15, 1.15, 1);
+ transform: scale3d(1.15, 1.15, 1);
+ }
+
+ to {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+
+@keyframes rubberBand {
+ from {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+
+ 30% {
+ -webkit-transform: scale3d(1.15, 1.15, 1);
+ transform: scale3d(1.1, 1.1, 1);
+ }
+
+ 40% {
+ -webkit-transform: scale3d(1.35, 1.35, 1);
+ transform: scale3d(1.3, 1.3, 1);
+ }
+
+ 50% {
+ -webkit-transform: scale3d(1, 1 , 1);
+ transform: scale3d(1, 1 , 1);
+ }
+
+ 65% {
+ -webkit-transform: scale3d(1.35, 1.35, 1);
+ transform: scale3d(1.3, 1.3, 1);
+ }
+
+ 75% {
+ -webkit-transform: scale3d(1.15, 1.15, 1);
+ transform: scale3d(1.1, 1.1, 1);
+ }
+
+ to {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+.rubberBand {
+ -webkit-animation-name: rubberBand;
+ animation-name: rubberBand;
+}
+
+@-webkit-keyframes shake {
+ from,
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 10%,
+ 30%,
+ 50%,
+ 70%,
+ 90% {
+ -webkit-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0);
+ }
+
+ 20%,
+ 40%,
+ 60%,
+ 80% {
+ -webkit-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0);
+ }
+}
+
+@keyframes shake {
+ from,
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 10%,
+ 30%,
+ 50%,
+ 70%,
+ 90% {
+ -webkit-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0);
+ }
+
+ 20%,
+ 40%,
+ 60%,
+ 80% {
+ -webkit-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0);
+ }
+}
+
+.shake {
+ -webkit-animation-name: shake;
+ animation-name: shake;
+}
+
+@-webkit-keyframes headShake {
+ 0% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 6.5% {
+ -webkit-transform: translateX(-6px) rotateY(-9deg);
+ transform: translateX(-6px) rotateY(-9deg);
+ }
+
+ 18.5% {
+ -webkit-transform: translateX(5px) rotateY(7deg);
+ transform: translateX(5px) rotateY(7deg);
+ }
+
+ 31.5% {
+ -webkit-transform: translateX(-3px) rotateY(-5deg);
+ transform: translateX(-3px) rotateY(-5deg);
+ }
+
+ 43.5% {
+ -webkit-transform: translateX(2px) rotateY(3deg);
+ transform: translateX(2px) rotateY(3deg);
+ }
+
+ 50% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+}
+
+@keyframes headShake {
+ 0% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 6.5% {
+ -webkit-transform: translateX(-6px) rotateY(-9deg);
+ transform: translateX(-6px) rotateY(-9deg);
+ }
+
+ 18.5% {
+ -webkit-transform: translateX(5px) rotateY(7deg);
+ transform: translateX(5px) rotateY(7deg);
+ }
+
+ 31.5% {
+ -webkit-transform: translateX(-3px) rotateY(-5deg);
+ transform: translateX(-3px) rotateY(-5deg);
+ }
+
+ 43.5% {
+ -webkit-transform: translateX(2px) rotateY(3deg);
+ transform: translateX(2px) rotateY(3deg);
+ }
+
+ 50% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+}
+
+.headShake {
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ -webkit-animation-name: headShake;
+ animation-name: headShake;
+}
+
+@-webkit-keyframes swing {
+ 20% {
+ -webkit-transform: rotate3d(0, 0, 1, 15deg);
+ transform: rotate3d(0, 0, 1, 15deg);
+ }
+
+ 40% {
+ -webkit-transform: rotate3d(0, 0, 1, -10deg);
+ transform: rotate3d(0, 0, 1, -10deg);
+ }
+
+ 60% {
+ -webkit-transform: rotate3d(0, 0, 1, 5deg);
+ transform: rotate3d(0, 0, 1, 5deg);
+ }
+
+ 80% {
+ -webkit-transform: rotate3d(0, 0, 1, -5deg);
+ transform: rotate3d(0, 0, 1, -5deg);
+ }
+
+ to {
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
+ transform: rotate3d(0, 0, 1, 0deg);
+ }
+}
+
+@keyframes swing {
+ 20% {
+ -webkit-transform: rotate3d(0, 0, 1, 15deg);
+ transform: rotate3d(0, 0, 1, 15deg);
+ }
+
+ 40% {
+ -webkit-transform: rotate3d(0, 0, 1, -10deg);
+ transform: rotate3d(0, 0, 1, -10deg);
+ }
+
+ 60% {
+ -webkit-transform: rotate3d(0, 0, 1, 5deg);
+ transform: rotate3d(0, 0, 1, 5deg);
+ }
+
+ 80% {
+ -webkit-transform: rotate3d(0, 0, 1, -5deg);
+ transform: rotate3d(0, 0, 1, -5deg);
+ }
+
+ to {
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
+ transform: rotate3d(0, 0, 1, 0deg);
+ }
+}
+
+.swing {
+ -webkit-transform-origin: top center;
+ transform-origin: top center;
+ -webkit-animation-name: swing;
+ animation-name: swing;
+}
+
+@-webkit-keyframes tada {
+ from {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+
+ 10%,
+ 20% {
+ -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
+ transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
+ }
+
+ 30%,
+ 50%,
+ 70%,
+ 90% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
+ }
+
+ 40%,
+ 60%,
+ 80% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
+ }
+
+ to {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+@keyframes tada {
+ from {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+
+ 10%,
+ 20% {
+ -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
+ transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
+ }
+
+ 30%,
+ 50%,
+ 70%,
+ 90% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
+ }
+
+ 40%,
+ 60%,
+ 80% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
+ }
+
+ to {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+.tada {
+ -webkit-animation-name: tada;
+ animation-name: tada;
+}
+
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+@-webkit-keyframes wobble {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 15% {
+ -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
+ }
+
+ 30% {
+ -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
+ }
+
+ 45% {
+ -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
+ }
+
+ 60% {
+ -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes wobble {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 15% {
+ -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
+ }
+
+ 30% {
+ -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
+ }
+
+ 45% {
+ -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
+ }
+
+ 60% {
+ -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.wobble {
+ -webkit-animation-name: wobble;
+ animation-name: wobble;
+}
+
+@-webkit-keyframes jello {
+ from,
+ 11.1%,
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 22.2% {
+ -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
+ transform: skewX(-12.5deg) skewY(-12.5deg);
+ }
+
+ 33.3% {
+ -webkit-transform: skewX(6.25deg) skewY(6.25deg);
+ transform: skewX(6.25deg) skewY(6.25deg);
+ }
+
+ 44.4% {
+ -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
+ transform: skewX(-3.125deg) skewY(-3.125deg);
+ }
+
+ 55.5% {
+ -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
+ transform: skewX(1.5625deg) skewY(1.5625deg);
+ }
+
+ 66.6% {
+ -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
+ transform: skewX(-0.78125deg) skewY(-0.78125deg);
+ }
+
+ 77.7% {
+ -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
+ transform: skewX(0.390625deg) skewY(0.390625deg);
+ }
+
+ 88.8% {
+ -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
+ transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
+ }
+}
+
+@keyframes jello {
+ from,
+ 11.1%,
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 22.2% {
+ -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
+ transform: skewX(-12.5deg) skewY(-12.5deg);
+ }
+
+ 33.3% {
+ -webkit-transform: skewX(6.25deg) skewY(6.25deg);
+ transform: skewX(6.25deg) skewY(6.25deg);
+ }
+
+ 44.4% {
+ -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
+ transform: skewX(-3.125deg) skewY(-3.125deg);
+ }
+
+ 55.5% {
+ -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
+ transform: skewX(1.5625deg) skewY(1.5625deg);
+ }
+
+ 66.6% {
+ -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
+ transform: skewX(-0.78125deg) skewY(-0.78125deg);
+ }
+
+ 77.7% {
+ -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
+ transform: skewX(0.390625deg) skewY(0.390625deg);
+ }
+
+ 88.8% {
+ -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
+ transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
+ }
+}
+
+.jello {
+ -webkit-animation-name: jello;
+ animation-name: jello;
+ -webkit-transform-origin: center;
+ transform-origin: center;
+}
+
+@-webkit-keyframes bounceIn {
+ from,
+ 20%,
+ 40%,
+ 60%,
+ 80%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+
+ 20% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
+ transform: scale3d(1.1, 1.1, 1.1);
+ }
+
+ 40% {
+ -webkit-transform: scale3d(0.9, 0.9, 0.9);
+ transform: scale3d(0.9, 0.9, 0.9);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(1.03, 1.03, 1.03);
+ transform: scale3d(1.03, 1.03, 1.03);
+ }
+
+ 80% {
+ -webkit-transform: scale3d(0.97, 0.97, 0.97);
+ transform: scale3d(0.97, 0.97, 0.97);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+@keyframes bounceIn {
+ from,
+ 20%,
+ 40%,
+ 60%,
+ 80%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+
+ 20% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
+ transform: scale3d(1.1, 1.1, 1.1);
+ }
+
+ 40% {
+ -webkit-transform: scale3d(0.9, 0.9, 0.9);
+ transform: scale3d(0.9, 0.9, 0.9);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(1.03, 1.03, 1.03);
+ transform: scale3d(1.03, 1.03, 1.03);
+ }
+
+ 80% {
+ -webkit-transform: scale3d(0.97, 0.97, 0.97);
+ transform: scale3d(0.97, 0.97, 0.97);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+.bounceIn {
+ -webkit-animation-duration: 0.75s;
+ animation-duration: 0.75s;
+ -webkit-animation-name: bounceIn;
+ animation-name: bounceIn;
+}
+
+@-webkit-keyframes bounceInDown {
+ from,
+ 60%,
+ 75%,
+ 90%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -3000px, 0);
+ transform: translate3d(0, -3000px, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 25px, 0);
+ transform: translate3d(0, 25px, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(0, 5px, 0);
+ transform: translate3d(0, 5px, 0);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes bounceInDown {
+ from,
+ 60%,
+ 75%,
+ 90%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -3000px, 0);
+ transform: translate3d(0, -3000px, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 25px, 0);
+ transform: translate3d(0, 25px, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(0, 5px, 0);
+ transform: translate3d(0, 5px, 0);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.bounceInDown {
+ -webkit-animation-name: bounceInDown;
+ animation-name: bounceInDown;
+}
+
+@-webkit-keyframes bounceInLeft {
+ from,
+ 60%,
+ 75%,
+ 90%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(-3000px, 0, 0);
+ transform: translate3d(-3000px, 0, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(25px, 0, 0);
+ transform: translate3d(25px, 0, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(5px, 0, 0);
+ transform: translate3d(5px, 0, 0);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes bounceInLeft {
+ from,
+ 60%,
+ 75%,
+ 90%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(-3000px, 0, 0);
+ transform: translate3d(-3000px, 0, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(25px, 0, 0);
+ transform: translate3d(25px, 0, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(5px, 0, 0);
+ transform: translate3d(5px, 0, 0);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.bounceInLeft {
+ -webkit-animation-name: bounceInLeft;
+ animation-name: bounceInLeft;
+}
+
+@-webkit-keyframes bounceInRight {
+ from,
+ 60%,
+ 75%,
+ 90%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(3000px, 0, 0);
+ transform: translate3d(3000px, 0, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(-25px, 0, 0);
+ transform: translate3d(-25px, 0, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(-5px, 0, 0);
+ transform: translate3d(-5px, 0, 0);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes bounceInRight {
+ from,
+ 60%,
+ 75%,
+ 90%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(3000px, 0, 0);
+ transform: translate3d(3000px, 0, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(-25px, 0, 0);
+ transform: translate3d(-25px, 0, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(-5px, 0, 0);
+ transform: translate3d(-5px, 0, 0);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.bounceInRight {
+ -webkit-animation-name: bounceInRight;
+ animation-name: bounceInRight;
+}
+
+@-webkit-keyframes bounceInUp {
+ from,
+ 60%,
+ 75%,
+ 90%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 3000px, 0);
+ transform: translate3d(0, 3000px, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(0, 10px, 0);
+ transform: translate3d(0, 10px, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(0, -5px, 0);
+ transform: translate3d(0, -5px, 0);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes bounceInUp {
+ from,
+ 60%,
+ 75%,
+ 90%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 3000px, 0);
+ transform: translate3d(0, 3000px, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(0, 10px, 0);
+ transform: translate3d(0, 10px, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(0, -5px, 0);
+ transform: translate3d(0, -5px, 0);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.bounceInUp {
+ -webkit-animation-name: bounceInUp;
+ animation-name: bounceInUp;
+}
+
+@-webkit-keyframes bounceOut {
+ 20% {
+ -webkit-transform: scale3d(0.9, 0.9, 0.9);
+ transform: scale3d(0.9, 0.9, 0.9);
+ }
+
+ 50%,
+ 55% {
+ opacity: 1;
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
+ transform: scale3d(1.1, 1.1, 1.1);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+}
+
+@keyframes bounceOut {
+ 20% {
+ -webkit-transform: scale3d(0.9, 0.9, 0.9);
+ transform: scale3d(0.9, 0.9, 0.9);
+ }
+
+ 50%,
+ 55% {
+ opacity: 1;
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
+ transform: scale3d(1.1, 1.1, 1.1);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+}
+
+.bounceOut {
+ -webkit-animation-duration: 0.75s;
+ animation-duration: 0.75s;
+ -webkit-animation-name: bounceOut;
+ animation-name: bounceOut;
+}
+
+@-webkit-keyframes bounceOutDown {
+ 20% {
+ -webkit-transform: translate3d(0, 10px, 0);
+ transform: translate3d(0, 10px, 0);
+ }
+
+ 40%,
+ 45% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0);
+ }
+}
+
+@keyframes bounceOutDown {
+ 20% {
+ -webkit-transform: translate3d(0, 10px, 0);
+ transform: translate3d(0, 10px, 0);
+ }
+
+ 40%,
+ 45% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0);
+ }
+}
+
+.bounceOutDown {
+ -webkit-animation-name: bounceOutDown;
+ animation-name: bounceOutDown;
+}
+
+@-webkit-keyframes bounceOutLeft {
+ 20% {
+ opacity: 1;
+ -webkit-transform: translate3d(20px, 0, 0);
+ transform: translate3d(20px, 0, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0);
+ }
+}
+
+@keyframes bounceOutLeft {
+ 20% {
+ opacity: 1;
+ -webkit-transform: translate3d(20px, 0, 0);
+ transform: translate3d(20px, 0, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0);
+ }
+}
+
+.bounceOutLeft {
+ -webkit-animation-name: bounceOutLeft;
+ animation-name: bounceOutLeft;
+}
+
+@-webkit-keyframes bounceOutRight {
+ 20% {
+ opacity: 1;
+ -webkit-transform: translate3d(-20px, 0, 0);
+ transform: translate3d(-20px, 0, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0);
+ }
+}
+
+@keyframes bounceOutRight {
+ 20% {
+ opacity: 1;
+ -webkit-transform: translate3d(-20px, 0, 0);
+ transform: translate3d(-20px, 0, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0);
+ }
+}
+
+.bounceOutRight {
+ -webkit-animation-name: bounceOutRight;
+ animation-name: bounceOutRight;
+}
+
+@-webkit-keyframes bounceOutUp {
+ 20% {
+ -webkit-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0);
+ }
+
+ 40%,
+ 45% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 20px, 0);
+ transform: translate3d(0, 20px, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0);
+ }
+}
+
+@keyframes bounceOutUp {
+ 20% {
+ -webkit-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0);
+ }
+
+ 40%,
+ 45% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 20px, 0);
+ transform: translate3d(0, 20px, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0);
+ }
+}
+
+.bounceOutUp {
+ -webkit-animation-name: bounceOutUp;
+ animation-name: bounceOutUp;
+}
+
+@-webkit-keyframes fadeIn {
+ from {
+ opacity: 0;
+ }
+
+ to {
+ opacity: 1;
+ }
+}
+
+@keyframes fadeIn {
+ from {
+ opacity: 0;
+ }
+
+ to {
+ opacity: 1;
+ }
+}
+
+.fadeIn {
+ -webkit-animation-name: fadeIn;
+ animation-name: fadeIn;
+}
+
+@-webkit-keyframes fadeInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes fadeInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.fadeInDown {
+ -webkit-animation-name: fadeInDown;
+ animation-name: fadeInDown;
+}
+
+@-webkit-keyframes fadeInDownBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes fadeInDownBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.fadeInDownBig {
+ -webkit-animation-name: fadeInDownBig;
+ animation-name: fadeInDownBig;
+}
+
+@-webkit-keyframes fadeInLeft {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes fadeInLeft {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.fadeInLeft {
+ -webkit-animation-name: fadeInLeft;
+ animation-name: fadeInLeft;
+}
+
+@-webkit-keyframes fadeInLeftBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes fadeInLeftBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.fadeInLeftBig {
+ -webkit-animation-name: fadeInLeftBig;
+ animation-name: fadeInLeftBig;
+}
+
+@-webkit-keyframes fadeInRight {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes fadeInRight {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.fadeInRight {
+ -webkit-animation-name: fadeInRight;
+ animation-name: fadeInRight;
+}
+
+@-webkit-keyframes fadeInRightBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes fadeInRightBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.fadeInRightBig {
+ -webkit-animation-name: fadeInRightBig;
+ animation-name: fadeInRightBig;
+}
+
+@-webkit-keyframes fadeInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes fadeInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.fadeInUp {
+ -webkit-animation-name: fadeInUp;
+ animation-name: fadeInUp;
+}
+
+@-webkit-keyframes fadeInUpBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes fadeInUpBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.fadeInUpBig {
+ -webkit-animation-name: fadeInUpBig;
+ animation-name: fadeInUpBig;
+}
+
+@-webkit-keyframes fadeOut {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ }
+}
+
+@keyframes fadeOut {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ }
+}
+
+.fadeOut {
+ -webkit-animation-name: fadeOut;
+ animation-name: fadeOut;
+}
+
+@-webkit-keyframes fadeOutDown {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+@keyframes fadeOutDown {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+.fadeOutDown {
+ -webkit-animation-name: fadeOutDown;
+ animation-name: fadeOutDown;
+}
+
+@-webkit-keyframes fadeOutDownBig {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0);
+ }
+}
+
+@keyframes fadeOutDownBig {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0);
+ }
+}
+
+.fadeOutDownBig {
+ -webkit-animation-name: fadeOutDownBig;
+ animation-name: fadeOutDownBig;
+}
+
+@-webkit-keyframes fadeOutLeft {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+}
+
+@keyframes fadeOutLeft {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+}
+
+.fadeOutLeft {
+ -webkit-animation-name: fadeOutLeft;
+ animation-name: fadeOutLeft;
+}
+
+@-webkit-keyframes fadeOutLeftBig {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0);
+ }
+}
+
+@keyframes fadeOutLeftBig {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0);
+ }
+}
+
+.fadeOutLeftBig {
+ -webkit-animation-name: fadeOutLeftBig;
+ animation-name: fadeOutLeftBig;
+}
+
+@-webkit-keyframes fadeOutRight {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+}
+
+@keyframes fadeOutRight {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+}
+
+.fadeOutRight {
+ -webkit-animation-name: fadeOutRight;
+ animation-name: fadeOutRight;
+}
+
+@-webkit-keyframes fadeOutRightBig {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0);
+ }
+}
+
+@keyframes fadeOutRightBig {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0);
+ }
+}
+
+.fadeOutRightBig {
+ -webkit-animation-name: fadeOutRightBig;
+ animation-name: fadeOutRightBig;
+}
+
+@-webkit-keyframes fadeOutUp {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+}
+
+@keyframes fadeOutUp {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+}
+
+.fadeOutUp {
+ -webkit-animation-name: fadeOutUp;
+ animation-name: fadeOutUp;
+}
+
+@-webkit-keyframes fadeOutUpBig {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0);
+ }
+}
+
+@keyframes fadeOutUpBig {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0);
+ }
+}
+
+.fadeOutUpBig {
+ -webkit-animation-name: fadeOutUpBig;
+ animation-name: fadeOutUpBig;
+}
+
+@-webkit-keyframes flip {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
+ -webkit-animation-timing-function: ease-out;
+ animation-timing-function: ease-out;
+ }
+
+ 40% {
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
+ -webkit-animation-timing-function: ease-out;
+ animation-timing-function: ease-out;
+ }
+
+ 50% {
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+
+ 80% {
+ -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
+ transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+
+ to {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+}
+
+@keyframes flip {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
+ -webkit-animation-timing-function: ease-out;
+ animation-timing-function: ease-out;
+ }
+
+ 40% {
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
+ -webkit-animation-timing-function: ease-out;
+ animation-timing-function: ease-out;
+ }
+
+ 50% {
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+
+ 80% {
+ -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
+ transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+
+ to {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+}
+
+.animated.flip {
+ -webkit-backface-visibility: visible;
+ backface-visibility: visible;
+ -webkit-animation-name: flip;
+ animation-name: flip;
+}
+
+@-webkit-keyframes flipInX {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ opacity: 0;
+ }
+
+ 40% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+
+ 60% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ opacity: 1;
+ }
+
+ 80% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ }
+
+ to {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+}
+
+@keyframes flipInX {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ opacity: 0;
+ }
+
+ 40% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+
+ 60% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ opacity: 1;
+ }
+
+ 80% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ }
+
+ to {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+}
+
+.flipInX {
+ -webkit-backface-visibility: visible !important;
+ backface-visibility: visible !important;
+ -webkit-animation-name: flipInX;
+ animation-name: flipInX;
+}
+
+@-webkit-keyframes flipInY {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ opacity: 0;
+ }
+
+ 40% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+
+ 60% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
+ opacity: 1;
+ }
+
+ 80% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
+ }
+
+ to {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+}
+
+@keyframes flipInY {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ opacity: 0;
+ }
+
+ 40% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+
+ 60% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
+ opacity: 1;
+ }
+
+ 80% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
+ }
+
+ to {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+}
+
+.flipInY {
+ -webkit-backface-visibility: visible !important;
+ backface-visibility: visible !important;
+ -webkit-animation-name: flipInY;
+ animation-name: flipInY;
+}
+
+@-webkit-keyframes flipOutX {
+ from {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+
+ 30% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes flipOutX {
+ from {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+
+ 30% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ opacity: 0;
+ }
+}
+
+.flipOutX {
+ -webkit-animation-duration: 0.75s;
+ animation-duration: 0.75s;
+ -webkit-animation-name: flipOutX;
+ animation-name: flipOutX;
+ -webkit-backface-visibility: visible !important;
+ backface-visibility: visible !important;
+}
+
+@-webkit-keyframes flipOutY {
+ from {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+
+ 30% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes flipOutY {
+ from {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+
+ 30% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ opacity: 0;
+ }
+}
+
+.flipOutY {
+ -webkit-animation-duration: 0.75s;
+ animation-duration: 0.75s;
+ -webkit-backface-visibility: visible !important;
+ backface-visibility: visible !important;
+ -webkit-animation-name: flipOutY;
+ animation-name: flipOutY;
+}
+
+@-webkit-keyframes lightSpeedIn {
+ from {
+ -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
+ transform: translate3d(100%, 0, 0) skewX(-30deg);
+ opacity: 0;
+ }
+
+ 60% {
+ -webkit-transform: skewX(20deg);
+ transform: skewX(20deg);
+ opacity: 1;
+ }
+
+ 80% {
+ -webkit-transform: skewX(-5deg);
+ transform: skewX(-5deg);
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+@keyframes lightSpeedIn {
+ from {
+ -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
+ transform: translate3d(100%, 0, 0) skewX(-30deg);
+ opacity: 0;
+ }
+
+ 60% {
+ -webkit-transform: skewX(20deg);
+ transform: skewX(20deg);
+ opacity: 1;
+ }
+
+ 80% {
+ -webkit-transform: skewX(-5deg);
+ transform: skewX(-5deg);
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+.lightSpeedIn {
+ -webkit-animation-name: lightSpeedIn;
+ animation-name: lightSpeedIn;
+ -webkit-animation-timing-function: ease-out;
+ animation-timing-function: ease-out;
+}
+
+@-webkit-keyframes lightSpeedOut {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
+ transform: translate3d(100%, 0, 0) skewX(30deg);
+ opacity: 0;
+ }
+}
+
+@keyframes lightSpeedOut {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
+ transform: translate3d(100%, 0, 0) skewX(30deg);
+ opacity: 0;
+ }
+}
+
+.lightSpeedOut {
+ -webkit-animation-name: lightSpeedOut;
+ animation-name: lightSpeedOut;
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+}
+
+@-webkit-keyframes rotateIn {
+ from {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
+ transform: rotate3d(0, 0, 1, -200deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+@keyframes rotateIn {
+ from {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
+ transform: rotate3d(0, 0, 1, -200deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+.rotateIn {
+ -webkit-animation-name: rotateIn;
+ animation-name: rotateIn;
+}
+
+@-webkit-keyframes rotateInDownLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+@keyframes rotateInDownLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+.rotateInDownLeft {
+ -webkit-animation-name: rotateInDownLeft;
+ animation-name: rotateInDownLeft;
+}
+
+@-webkit-keyframes rotateInDownRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+@keyframes rotateInDownRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+.rotateInDownRight {
+ -webkit-animation-name: rotateInDownRight;
+ animation-name: rotateInDownRight;
+}
+
+@-webkit-keyframes rotateInUpLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+@keyframes rotateInUpLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+.rotateInUpLeft {
+ -webkit-animation-name: rotateInUpLeft;
+ animation-name: rotateInUpLeft;
+}
+
+@-webkit-keyframes rotateInUpRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
+ transform: rotate3d(0, 0, 1, -90deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+@keyframes rotateInUpRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
+ transform: rotate3d(0, 0, 1, -90deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+.rotateInUpRight {
+ -webkit-animation-name: rotateInUpRight;
+ animation-name: rotateInUpRight;
+}
+
+@-webkit-keyframes rotateOut {
+ from {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: rotate3d(0, 0, 1, 200deg);
+ transform: rotate3d(0, 0, 1, 200deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOut {
+ from {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: rotate3d(0, 0, 1, 200deg);
+ transform: rotate3d(0, 0, 1, 200deg);
+ opacity: 0;
+ }
+}
+
+.rotateOut {
+ -webkit-animation-name: rotateOut;
+ animation-name: rotateOut;
+}
+
+@-webkit-keyframes rotateOutDownLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOutDownLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0;
+ }
+}
+
+.rotateOutDownLeft {
+ -webkit-animation-name: rotateOutDownLeft;
+ animation-name: rotateOutDownLeft;
+}
+
+@-webkit-keyframes rotateOutDownRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOutDownRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0;
+ }
+}
+
+.rotateOutDownRight {
+ -webkit-animation-name: rotateOutDownRight;
+ animation-name: rotateOutDownRight;
+}
+
+@-webkit-keyframes rotateOutUpLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOutUpLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0;
+ }
+}
+
+.rotateOutUpLeft {
+ -webkit-animation-name: rotateOutUpLeft;
+ animation-name: rotateOutUpLeft;
+}
+
+@-webkit-keyframes rotateOutUpRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 90deg);
+ transform: rotate3d(0, 0, 1, 90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOutUpRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 90deg);
+ transform: rotate3d(0, 0, 1, 90deg);
+ opacity: 0;
+ }
+}
+
+.rotateOutUpRight {
+ -webkit-animation-name: rotateOutUpRight;
+ animation-name: rotateOutUpRight;
+}
+
+@-webkit-keyframes hinge {
+ 0% {
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ }
+
+ 20%,
+ 60% {
+ -webkit-transform: rotate3d(0, 0, 1, 80deg);
+ transform: rotate3d(0, 0, 1, 80deg);
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ }
+
+ 40%,
+ 80% {
+ -webkit-transform: rotate3d(0, 0, 1, 60deg);
+ transform: rotate3d(0, 0, 1, 60deg);
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 700px, 0);
+ transform: translate3d(0, 700px, 0);
+ opacity: 0;
+ }
+}
+
+@keyframes hinge {
+ 0% {
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ }
+
+ 20%,
+ 60% {
+ -webkit-transform: rotate3d(0, 0, 1, 80deg);
+ transform: rotate3d(0, 0, 1, 80deg);
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ }
+
+ 40%,
+ 80% {
+ -webkit-transform: rotate3d(0, 0, 1, 60deg);
+ transform: rotate3d(0, 0, 1, 60deg);
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 700px, 0);
+ transform: translate3d(0, 700px, 0);
+ opacity: 0;
+ }
+}
+
+.hinge {
+ -webkit-animation-duration: 2s;
+ animation-duration: 2s;
+ -webkit-animation-name: hinge;
+ animation-name: hinge;
+}
+
+@-webkit-keyframes jackInTheBox {
+ from {
+ opacity: 0;
+ -webkit-transform: scale(0.1) rotate(30deg);
+ transform: scale(0.1) rotate(30deg);
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+ }
+
+ 50% {
+ -webkit-transform: rotate(-10deg);
+ transform: rotate(-10deg);
+ }
+
+ 70% {
+ -webkit-transform: rotate(3deg);
+ transform: rotate(3deg);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@keyframes jackInTheBox {
+ from {
+ opacity: 0;
+ -webkit-transform: scale(0.1) rotate(30deg);
+ transform: scale(0.1) rotate(30deg);
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+ }
+
+ 50% {
+ -webkit-transform: rotate(-10deg);
+ transform: rotate(-10deg);
+ }
+
+ 70% {
+ -webkit-transform: rotate(3deg);
+ transform: rotate(3deg);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+.jackInTheBox {
+ -webkit-animation-name: jackInTheBox;
+ animation-name: jackInTheBox;
+}
+
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+@-webkit-keyframes rollIn {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
+ transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes rollIn {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
+ transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.rollIn {
+ -webkit-animation-name: rollIn;
+ animation-name: rollIn;
+}
+
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+@-webkit-keyframes rollOut {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
+ transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
+ }
+}
+
+@keyframes rollOut {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
+ transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
+ }
+}
+
+.rollOut {
+ -webkit-animation-name: rollOut;
+ animation-name: rollOut;
+}
+
+@-webkit-keyframes zoomIn {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+
+ 50% {
+ opacity: 1;
+ }
+}
+
+@keyframes zoomIn {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+
+ 50% {
+ opacity: 1;
+ }
+}
+
+.zoomIn {
+ -webkit-animation-name: zoomIn;
+ animation-name: zoomIn;
+}
+
+@-webkit-keyframes zoomInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+@keyframes zoomInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+.zoomInDown {
+ -webkit-animation-name: zoomInDown;
+ animation-name: zoomInDown;
+}
+
+@-webkit-keyframes zoomInLeft {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+@keyframes zoomInLeft {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+.zoomInLeft {
+ -webkit-animation-name: zoomInLeft;
+ animation-name: zoomInLeft;
+}
+
+@-webkit-keyframes zoomInRight {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+@keyframes zoomInRight {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+.zoomInRight {
+ -webkit-animation-name: zoomInRight;
+ animation-name: zoomInRight;
+}
+
+@-webkit-keyframes zoomInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+@keyframes zoomInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+.zoomInUp {
+ -webkit-animation-name: zoomInUp;
+ animation-name: zoomInUp;
+}
+
+@-webkit-keyframes zoomOut {
+ from {
+ opacity: 1;
+ }
+
+ 50% {
+ opacity: 0;
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+
+ to {
+ opacity: 0;
+ }
+}
+
+@keyframes zoomOut {
+ from {
+ opacity: 1;
+ }
+
+ 50% {
+ opacity: 0;
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+
+ to {
+ opacity: 0;
+ }
+}
+
+.zoomOut {
+ -webkit-animation-name: zoomOut;
+ animation-name: zoomOut;
+}
+
+@-webkit-keyframes zoomOutDown {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+@keyframes zoomOutDown {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+.zoomOutDown {
+ -webkit-animation-name: zoomOutDown;
+ animation-name: zoomOutDown;
+}
+
+@-webkit-keyframes zoomOutLeft {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
+ transform: scale(0.1) translate3d(-2000px, 0, 0);
+ -webkit-transform-origin: left center;
+ transform-origin: left center;
+ }
+}
+
+@keyframes zoomOutLeft {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
+ transform: scale(0.1) translate3d(-2000px, 0, 0);
+ -webkit-transform-origin: left center;
+ transform-origin: left center;
+ }
+}
+
+.zoomOutLeft {
+ -webkit-animation-name: zoomOutLeft;
+ animation-name: zoomOutLeft;
+}
+
+@-webkit-keyframes zoomOutRight {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
+ transform: scale(0.1) translate3d(2000px, 0, 0);
+ -webkit-transform-origin: right center;
+ transform-origin: right center;
+ }
+}
+
+@keyframes zoomOutRight {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
+ transform: scale(0.1) translate3d(2000px, 0, 0);
+ -webkit-transform-origin: right center;
+ transform-origin: right center;
+ }
+}
+
+.zoomOutRight {
+ -webkit-animation-name: zoomOutRight;
+ animation-name: zoomOutRight;
+}
+
+@-webkit-keyframes zoomOutUp {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+@keyframes zoomOutUp {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+.zoomOutUp {
+ -webkit-animation-name: zoomOutUp;
+ animation-name: zoomOutUp;
+}
+
+@-webkit-keyframes slideInDown {
+ from {
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ visibility: visible;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes slideInDown {
+ from {
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ visibility: visible;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.slideInDown {
+ -webkit-animation-name: slideInDown;
+ animation-name: slideInDown;
+}
+
+@-webkit-keyframes slideInLeft {
+ from {
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ visibility: visible;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes slideInLeft {
+ from {
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ visibility: visible;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.slideInLeft {
+ -webkit-animation-name: slideInLeft;
+ animation-name: slideInLeft;
+}
+
+@-webkit-keyframes slideInRight {
+ from {
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ visibility: visible;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes slideInRight {
+ from {
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ visibility: visible;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.slideInRight {
+ -webkit-animation-name: slideInRight;
+ animation-name: slideInRight;
+}
+
+@-webkit-keyframes slideInUp {
+ from {
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ visibility: visible;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes slideInUp {
+ from {
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ visibility: visible;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.slideInUp {
+ -webkit-animation-name: slideInUp;
+ animation-name: slideInUp;
+}
+
+@-webkit-keyframes slideOutDown {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ to {
+ visibility: hidden;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+@keyframes slideOutDown {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ to {
+ visibility: hidden;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+.slideOutDown {
+ -webkit-animation-name: slideOutDown;
+ animation-name: slideOutDown;
+}
+
+@-webkit-keyframes slideOutLeft {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ to {
+ visibility: hidden;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+}
+
+@keyframes slideOutLeft {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ to {
+ visibility: hidden;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+}
+
+.slideOutLeft {
+ -webkit-animation-name: slideOutLeft;
+ animation-name: slideOutLeft;
+}
+
+@-webkit-keyframes slideOutRight {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ to {
+ visibility: hidden;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+}
+
+@keyframes slideOutRight {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ to {
+ visibility: hidden;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+}
+
+.slideOutRight {
+ -webkit-animation-name: slideOutRight;
+ animation-name: slideOutRight;
+}
+
+@-webkit-keyframes slideOutUp {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ to {
+ visibility: hidden;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+}
+
+@keyframes slideOutUp {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ to {
+ visibility: hidden;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+}
+
+.slideOutUp {
+ -webkit-animation-name: slideOutUp;
+ animation-name: slideOutUp;
+}
diff --git a/template/index10/assets/css/aos.css b/template/index10/assets/css/aos.css
new file mode 100644
index 0000000..a317ce7
--- /dev/null
+++ b/template/index10/assets/css/aos.css
@@ -0,0 +1 @@
+[aos][aos][aos-easing=linear],body[aos-easing=linear] [aos]{-webkit-transition-timing-function:cubic-bezier(.25,.25,.75,.75);transition-timing-function:cubic-bezier(.25,.25,.75,.75)}[aos][aos][aos-easing=ease],body[aos-easing=ease] [aos]{-webkit-transition-timing-function:cubic-bezier(.25,.1,.25,1);transition-timing-function:cubic-bezier(.25,.1,.25,1)}[aos][aos][aos-easing=ease-in],body[aos-easing=ease-in] [aos]{-webkit-transition-timing-function:cubic-bezier(.42,0,1,1);transition-timing-function:cubic-bezier(.42,0,1,1)}[aos][aos][aos-easing=ease-out],body[aos-easing=ease-out] [aos]{-webkit-transition-timing-function:cubic-bezier(0,0,.58,1);transition-timing-function:cubic-bezier(0,0,.58,1)}[aos][aos][aos-easing=ease-in-out],body[aos-easing=ease-in-out] [aos]{-webkit-transition-timing-function:cubic-bezier(.42,0,.58,1);transition-timing-function:cubic-bezier(.42,0,.58,1)}[aos][aos][aos-easing=ease-in-back],body[aos-easing=ease-in-back] [aos]{-webkit-transition-timing-function:cubic-bezier(.6,-.28,.735,.045);transition-timing-function:cubic-bezier(.6,-.28,.735,.045)}[aos][aos][aos-easing=ease-out-back],body[aos-easing=ease-out-back] [aos]{-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.275);transition-timing-function:cubic-bezier(.175,.885,.32,1.275)}[aos][aos][aos-easing=ease-in-out-back],body[aos-easing=ease-in-out-back] [aos]{-webkit-transition-timing-function:cubic-bezier(.68,-.55,.265,1.55);transition-timing-function:cubic-bezier(.68,-.55,.265,1.55)}[aos][aos][aos-easing=ease-in-sine],body[aos-easing=ease-in-sine] [aos]{-webkit-transition-timing-function:cubic-bezier(.47,0,.745,.715);transition-timing-function:cubic-bezier(.47,0,.745,.715)}[aos][aos][aos-easing=ease-out-sine],body[aos-easing=ease-out-sine] [aos]{-webkit-transition-timing-function:cubic-bezier(.39,.575,.565,1);transition-timing-function:cubic-bezier(.39,.575,.565,1)}[aos][aos][aos-easing=ease-in-out-sine],body[aos-easing=ease-in-out-sine] [aos]{-webkit-transition-timing-function:cubic-bezier(.445,.05,.55,.95);transition-timing-function:cubic-bezier(.445,.05,.55,.95)}[aos][aos][aos-easing=ease-in-quad],[aos][aos][aos-easing=ease-in-cubic],[aos][aos][aos-easing=ease-in-quart],body[aos-easing=ease-in-quad] [aos],body[aos-easing=ease-in-cubic] [aos],body[aos-easing=ease-in-quart] [aos]{-webkit-transition-timing-function:cubic-bezier(.55,.085,.68,.53);transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[aos][aos][aos-easing=ease-out-quad],[aos][aos][aos-easing=ease-out-cubic],[aos][aos][aos-easing=ease-out-quart],body[aos-easing=ease-out-quad] [aos],body[aos-easing=ease-out-cubic] [aos],body[aos-easing=ease-out-quart] [aos]{-webkit-transition-timing-function:cubic-bezier(.25,.46,.45,.94);transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[aos][aos][aos-easing=ease-in-out-quad],[aos][aos][aos-easing=ease-in-out-cubic],[aos][aos][aos-easing=ease-in-out-quart],body[aos-easing=ease-in-out-quad] [aos],body[aos-easing=ease-in-out-cubic] [aos],body[aos-easing=ease-in-out-quart] [aos]{-webkit-transition-timing-function:cubic-bezier(.455,.03,.515,.955);transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[aos][aos][aos-duration='50'],body[aos-duration='50'] [aos]{-webkit-transition-duration:50ms;transition-duration:50ms}[aos][aos][aos-duration='100'],body[aos-duration='100'] [aos]{-webkit-transition-duration:.1s;transition-duration:.1s}[aos][aos][aos-duration='150'],body[aos-duration='150'] [aos]{-webkit-transition-duration:150ms;transition-duration:150ms}[aos][aos][aos-duration='200'],body[aos-duration='200'] [aos]{-webkit-transition-duration:.2s;transition-duration:.2s}[aos][aos][aos-duration='250'],body[aos-duration='250'] [aos]{-webkit-transition-duration:250ms;transition-duration:250ms}[aos][aos][aos-duration='300'],body[aos-duration='300'] [aos]{-webkit-transition-duration:.3s;transition-duration:.3s}[aos][aos][aos-duration='350'],body[aos-duration='350'] [aos]{-webkit-transition-duration:350ms;transition-duration:350ms}[aos][aos][aos-duration='400'],body[aos-duration='400'] [aos]{-webkit-transition-duration:.4s;transition-duration:.4s}[aos][aos][aos-duration='450'],body[aos-duration='450'] [aos]{-webkit-transition-duration:450ms;transition-duration:450ms}[aos][aos][aos-duration='500'],body[aos-duration='500'] [aos]{-webkit-transition-duration:.5s;transition-duration:.5s}[aos][aos][aos-duration='550'],body[aos-duration='550'] [aos]{-webkit-transition-duration:550ms;transition-duration:550ms}[aos][aos][aos-duration='600'],body[aos-duration='600'] [aos]{-webkit-transition-duration:.6s;transition-duration:.6s}[aos][aos][aos-duration='650'],body[aos-duration='650'] [aos]{-webkit-transition-duration:650ms;transition-duration:650ms}[aos][aos][aos-duration='700'],body[aos-duration='700'] [aos]{-webkit-transition-duration:.7s;transition-duration:.7s}[aos][aos][aos-duration='750'],body[aos-duration='750'] [aos]{-webkit-transition-duration:750ms;transition-duration:750ms}[aos][aos][aos-duration='800'],body[aos-duration='800'] [aos]{-webkit-transition-duration:.8s;transition-duration:.8s}[aos][aos][aos-duration='850'],body[aos-duration='850'] [aos]{-webkit-transition-duration:850ms;transition-duration:850ms}[aos][aos][aos-duration='900'],body[aos-duration='900'] [aos]{-webkit-transition-duration:.9s;transition-duration:.9s}[aos][aos][aos-duration='950'],body[aos-duration='950'] [aos]{-webkit-transition-duration:950ms;transition-duration:950ms}[aos][aos][aos-duration='1000'],body[aos-duration='1000'] [aos]{-webkit-transition-duration:1s;transition-duration:1s}[aos][aos][aos-duration='1050'],body[aos-duration='1050'] [aos]{-webkit-transition-duration:1.05s;transition-duration:1.05s}[aos][aos][aos-duration='1100'],body[aos-duration='1100'] [aos]{-webkit-transition-duration:1.1s;transition-duration:1.1s}[aos][aos][aos-duration='1150'],body[aos-duration='1150'] [aos]{-webkit-transition-duration:1.15s;transition-duration:1.15s}[aos][aos][aos-duration='1200'],body[aos-duration='1200'] [aos]{-webkit-transition-duration:1.2s;transition-duration:1.2s}[aos][aos][aos-duration='1250'],body[aos-duration='1250'] [aos]{-webkit-transition-duration:1.25s;transition-duration:1.25s}[aos][aos][aos-duration='1300'],body[aos-duration='1300'] [aos]{-webkit-transition-duration:1.3s;transition-duration:1.3s}[aos][aos][aos-duration='1350'],body[aos-duration='1350'] [aos]{-webkit-transition-duration:1.35s;transition-duration:1.35s}[aos][aos][aos-duration='1400'],body[aos-duration='1400'] [aos]{-webkit-transition-duration:1.4s;transition-duration:1.4s}[aos][aos][aos-duration='1450'],body[aos-duration='1450'] [aos]{-webkit-transition-duration:1.45s;transition-duration:1.45s}[aos][aos][aos-duration='1500'],body[aos-duration='1500'] [aos]{-webkit-transition-duration:1.5s;transition-duration:1.5s}[aos][aos][aos-duration='1550'],body[aos-duration='1550'] [aos]{-webkit-transition-duration:1.55s;transition-duration:1.55s}[aos][aos][aos-duration='1600'],body[aos-duration='1600'] [aos]{-webkit-transition-duration:1.6s;transition-duration:1.6s}[aos][aos][aos-duration='1650'],body[aos-duration='1650'] [aos]{-webkit-transition-duration:1.65s;transition-duration:1.65s}[aos][aos][aos-duration='1700'],body[aos-duration='1700'] [aos]{-webkit-transition-duration:1.7s;transition-duration:1.7s}[aos][aos][aos-duration='1750'],body[aos-duration='1750'] [aos]{-webkit-transition-duration:1.75s;transition-duration:1.75s}[aos][aos][aos-duration='1800'],body[aos-duration='1800'] [aos]{-webkit-transition-duration:1.8s;transition-duration:1.8s}[aos][aos][aos-duration='1850'],body[aos-duration='1850'] [aos]{-webkit-transition-duration:1.85s;transition-duration:1.85s}[aos][aos][aos-duration='1900'],body[aos-duration='1900'] [aos]{-webkit-transition-duration:1.9s;transition-duration:1.9s}[aos][aos][aos-duration='1950'],body[aos-duration='1950'] [aos]{-webkit-transition-duration:1.95s;transition-duration:1.95s}[aos][aos][aos-duration='2000'],body[aos-duration='2000'] [aos]{-webkit-transition-duration:2s;transition-duration:2s}[aos][aos][aos-duration='2050'],body[aos-duration='2050'] [aos]{-webkit-transition-duration:2.05s;transition-duration:2.05s}[aos][aos][aos-duration='2100'],body[aos-duration='2100'] [aos]{-webkit-transition-duration:2.1s;transition-duration:2.1s}[aos][aos][aos-duration='2150'],body[aos-duration='2150'] [aos]{-webkit-transition-duration:2.15s;transition-duration:2.15s}[aos][aos][aos-duration='2200'],body[aos-duration='2200'] [aos]{-webkit-transition-duration:2.2s;transition-duration:2.2s}[aos][aos][aos-duration='2250'],body[aos-duration='2250'] [aos]{-webkit-transition-duration:2.25s;transition-duration:2.25s}[aos][aos][aos-duration='2300'],body[aos-duration='2300'] [aos]{-webkit-transition-duration:2.3s;transition-duration:2.3s}[aos][aos][aos-duration='2350'],body[aos-duration='2350'] [aos]{-webkit-transition-duration:2.35s;transition-duration:2.35s}[aos][aos][aos-duration='2400'],body[aos-duration='2400'] [aos]{-webkit-transition-duration:2.4s;transition-duration:2.4s}[aos][aos][aos-duration='2450'],body[aos-duration='2450'] [aos]{-webkit-transition-duration:2.45s;transition-duration:2.45s}[aos][aos][aos-duration='2500'],body[aos-duration='2500'] [aos]{-webkit-transition-duration:2.5s;transition-duration:2.5s}[aos][aos][aos-duration='2550'],body[aos-duration='2550'] [aos]{-webkit-transition-duration:2.55s;transition-duration:2.55s}[aos][aos][aos-duration='2600'],body[aos-duration='2600'] [aos]{-webkit-transition-duration:2.6s;transition-duration:2.6s}[aos][aos][aos-duration='2650'],body[aos-duration='2650'] [aos]{-webkit-transition-duration:2.65s;transition-duration:2.65s}[aos][aos][aos-duration='2700'],body[aos-duration='2700'] [aos]{-webkit-transition-duration:2.7s;transition-duration:2.7s}[aos][aos][aos-duration='2750'],body[aos-duration='2750'] [aos]{-webkit-transition-duration:2.75s;transition-duration:2.75s}[aos][aos][aos-duration='2800'],body[aos-duration='2800'] [aos]{-webkit-transition-duration:2.8s;transition-duration:2.8s}[aos][aos][aos-duration='2850'],body[aos-duration='2850'] [aos]{-webkit-transition-duration:2.85s;transition-duration:2.85s}[aos][aos][aos-duration='2900'],body[aos-duration='2900'] [aos]{-webkit-transition-duration:2.9s;transition-duration:2.9s}[aos][aos][aos-duration='2950'],body[aos-duration='2950'] [aos]{-webkit-transition-duration:2.95s;transition-duration:2.95s}[aos][aos][aos-duration='3000'],body[aos-duration='3000'] [aos]{-webkit-transition-duration:3s;transition-duration:3s}[aos][aos][aos-delay='50'],body[aos-delay='50'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='50'].aos-animate,body[aos-delay='50'] [aos].aos-animate{-webkit-transition-delay:50ms;transition-delay:50ms}[aos][aos][aos-delay='100'],body[aos-delay='100'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='100'].aos-animate,body[aos-delay='100'] [aos].aos-animate{-webkit-transition-delay:.1s;transition-delay:.1s}[aos][aos][aos-delay='150'],body[aos-delay='150'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='150'].aos-animate,body[aos-delay='150'] [aos].aos-animate{-webkit-transition-delay:150ms;transition-delay:150ms}[aos][aos][aos-delay='200'],body[aos-delay='200'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='200'].aos-animate,body[aos-delay='200'] [aos].aos-animate{-webkit-transition-delay:.2s;transition-delay:.2s}[aos][aos][aos-delay='250'],body[aos-delay='250'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='250'].aos-animate,body[aos-delay='250'] [aos].aos-animate{-webkit-transition-delay:250ms;transition-delay:250ms}[aos][aos][aos-delay='300'],body[aos-delay='300'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='300'].aos-animate,body[aos-delay='300'] [aos].aos-animate{-webkit-transition-delay:.3s;transition-delay:.3s}[aos][aos][aos-delay='350'],body[aos-delay='350'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='350'].aos-animate,body[aos-delay='350'] [aos].aos-animate{-webkit-transition-delay:350ms;transition-delay:350ms}[aos][aos][aos-delay='400'],body[aos-delay='400'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='400'].aos-animate,body[aos-delay='400'] [aos].aos-animate{-webkit-transition-delay:.4s;transition-delay:.4s}[aos][aos][aos-delay='450'],body[aos-delay='450'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='450'].aos-animate,body[aos-delay='450'] [aos].aos-animate{-webkit-transition-delay:450ms;transition-delay:450ms}[aos][aos][aos-delay='500'],body[aos-delay='500'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='500'].aos-animate,body[aos-delay='500'] [aos].aos-animate{-webkit-transition-delay:.5s;transition-delay:.5s}[aos][aos][aos-delay='550'],body[aos-delay='550'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='550'].aos-animate,body[aos-delay='550'] [aos].aos-animate{-webkit-transition-delay:550ms;transition-delay:550ms}[aos][aos][aos-delay='600'],body[aos-delay='600'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='600'].aos-animate,body[aos-delay='600'] [aos].aos-animate{-webkit-transition-delay:.6s;transition-delay:.6s}[aos][aos][aos-delay='650'],body[aos-delay='650'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='650'].aos-animate,body[aos-delay='650'] [aos].aos-animate{-webkit-transition-delay:650ms;transition-delay:650ms}[aos][aos][aos-delay='700'],body[aos-delay='700'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='700'].aos-animate,body[aos-delay='700'] [aos].aos-animate{-webkit-transition-delay:.7s;transition-delay:.7s}[aos][aos][aos-delay='750'],body[aos-delay='750'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='750'].aos-animate,body[aos-delay='750'] [aos].aos-animate{-webkit-transition-delay:750ms;transition-delay:750ms}[aos][aos][aos-delay='800'],body[aos-delay='800'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='800'].aos-animate,body[aos-delay='800'] [aos].aos-animate{-webkit-transition-delay:.8s;transition-delay:.8s}[aos][aos][aos-delay='850'],body[aos-delay='850'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='850'].aos-animate,body[aos-delay='850'] [aos].aos-animate{-webkit-transition-delay:850ms;transition-delay:850ms}[aos][aos][aos-delay='900'],body[aos-delay='900'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='900'].aos-animate,body[aos-delay='900'] [aos].aos-animate{-webkit-transition-delay:.9s;transition-delay:.9s}[aos][aos][aos-delay='950'],body[aos-delay='950'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='950'].aos-animate,body[aos-delay='950'] [aos].aos-animate{-webkit-transition-delay:950ms;transition-delay:950ms}[aos][aos][aos-delay='1000'],body[aos-delay='1000'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1000'].aos-animate,body[aos-delay='1000'] [aos].aos-animate{-webkit-transition-delay:1s;transition-delay:1s}[aos][aos][aos-delay='1050'],body[aos-delay='1050'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1050'].aos-animate,body[aos-delay='1050'] [aos].aos-animate{-webkit-transition-delay:1.05s;transition-delay:1.05s}[aos][aos][aos-delay='1100'],body[aos-delay='1100'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1100'].aos-animate,body[aos-delay='1100'] [aos].aos-animate{-webkit-transition-delay:1.1s;transition-delay:1.1s}[aos][aos][aos-delay='1150'],body[aos-delay='1150'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1150'].aos-animate,body[aos-delay='1150'] [aos].aos-animate{-webkit-transition-delay:1.15s;transition-delay:1.15s}[aos][aos][aos-delay='1200'],body[aos-delay='1200'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1200'].aos-animate,body[aos-delay='1200'] [aos].aos-animate{-webkit-transition-delay:1.2s;transition-delay:1.2s}[aos][aos][aos-delay='1250'],body[aos-delay='1250'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1250'].aos-animate,body[aos-delay='1250'] [aos].aos-animate{-webkit-transition-delay:1.25s;transition-delay:1.25s}[aos][aos][aos-delay='1300'],body[aos-delay='1300'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1300'].aos-animate,body[aos-delay='1300'] [aos].aos-animate{-webkit-transition-delay:1.3s;transition-delay:1.3s}[aos][aos][aos-delay='1350'],body[aos-delay='1350'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1350'].aos-animate,body[aos-delay='1350'] [aos].aos-animate{-webkit-transition-delay:1.35s;transition-delay:1.35s}[aos][aos][aos-delay='1400'],body[aos-delay='1400'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1400'].aos-animate,body[aos-delay='1400'] [aos].aos-animate{-webkit-transition-delay:1.4s;transition-delay:1.4s}[aos][aos][aos-delay='1450'],body[aos-delay='1450'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1450'].aos-animate,body[aos-delay='1450'] [aos].aos-animate{-webkit-transition-delay:1.45s;transition-delay:1.45s}[aos][aos][aos-delay='1500'],body[aos-delay='1500'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1500'].aos-animate,body[aos-delay='1500'] [aos].aos-animate{-webkit-transition-delay:1.5s;transition-delay:1.5s}[aos][aos][aos-delay='1550'],body[aos-delay='1550'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1550'].aos-animate,body[aos-delay='1550'] [aos].aos-animate{-webkit-transition-delay:1.55s;transition-delay:1.55s}[aos][aos][aos-delay='1600'],body[aos-delay='1600'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1600'].aos-animate,body[aos-delay='1600'] [aos].aos-animate{-webkit-transition-delay:1.6s;transition-delay:1.6s}[aos][aos][aos-delay='1650'],body[aos-delay='1650'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1650'].aos-animate,body[aos-delay='1650'] [aos].aos-animate{-webkit-transition-delay:1.65s;transition-delay:1.65s}[aos][aos][aos-delay='1700'],body[aos-delay='1700'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1700'].aos-animate,body[aos-delay='1700'] [aos].aos-animate{-webkit-transition-delay:1.7s;transition-delay:1.7s}[aos][aos][aos-delay='1750'],body[aos-delay='1750'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1750'].aos-animate,body[aos-delay='1750'] [aos].aos-animate{-webkit-transition-delay:1.75s;transition-delay:1.75s}[aos][aos][aos-delay='1800'],body[aos-delay='1800'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1800'].aos-animate,body[aos-delay='1800'] [aos].aos-animate{-webkit-transition-delay:1.8s;transition-delay:1.8s}[aos][aos][aos-delay='1850'],body[aos-delay='1850'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1850'].aos-animate,body[aos-delay='1850'] [aos].aos-animate{-webkit-transition-delay:1.85s;transition-delay:1.85s}[aos][aos][aos-delay='1900'],body[aos-delay='1900'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1900'].aos-animate,body[aos-delay='1900'] [aos].aos-animate{-webkit-transition-delay:1.9s;transition-delay:1.9s}[aos][aos][aos-delay='1950'],body[aos-delay='1950'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1950'].aos-animate,body[aos-delay='1950'] [aos].aos-animate{-webkit-transition-delay:1.95s;transition-delay:1.95s}[aos][aos][aos-delay='2000'],body[aos-delay='2000'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2000'].aos-animate,body[aos-delay='2000'] [aos].aos-animate{-webkit-transition-delay:2s;transition-delay:2s}[aos][aos][aos-delay='2050'],body[aos-delay='2050'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2050'].aos-animate,body[aos-delay='2050'] [aos].aos-animate{-webkit-transition-delay:2.05s;transition-delay:2.05s}[aos][aos][aos-delay='2100'],body[aos-delay='2100'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2100'].aos-animate,body[aos-delay='2100'] [aos].aos-animate{-webkit-transition-delay:2.1s;transition-delay:2.1s}[aos][aos][aos-delay='2150'],body[aos-delay='2150'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2150'].aos-animate,body[aos-delay='2150'] [aos].aos-animate{-webkit-transition-delay:2.15s;transition-delay:2.15s}[aos][aos][aos-delay='2200'],body[aos-delay='2200'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2200'].aos-animate,body[aos-delay='2200'] [aos].aos-animate{-webkit-transition-delay:2.2s;transition-delay:2.2s}[aos][aos][aos-delay='2250'],body[aos-delay='2250'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2250'].aos-animate,body[aos-delay='2250'] [aos].aos-animate{-webkit-transition-delay:2.25s;transition-delay:2.25s}[aos][aos][aos-delay='2300'],body[aos-delay='2300'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2300'].aos-animate,body[aos-delay='2300'] [aos].aos-animate{-webkit-transition-delay:2.3s;transition-delay:2.3s}[aos][aos][aos-delay='2350'],body[aos-delay='2350'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2350'].aos-animate,body[aos-delay='2350'] [aos].aos-animate{-webkit-transition-delay:2.35s;transition-delay:2.35s}[aos][aos][aos-delay='2400'],body[aos-delay='2400'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2400'].aos-animate,body[aos-delay='2400'] [aos].aos-animate{-webkit-transition-delay:2.4s;transition-delay:2.4s}[aos][aos][aos-delay='2450'],body[aos-delay='2450'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2450'].aos-animate,body[aos-delay='2450'] [aos].aos-animate{-webkit-transition-delay:2.45s;transition-delay:2.45s}[aos][aos][aos-delay='2500'],body[aos-delay='2500'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2500'].aos-animate,body[aos-delay='2500'] [aos].aos-animate{-webkit-transition-delay:2.5s;transition-delay:2.5s}[aos][aos][aos-delay='2550'],body[aos-delay='2550'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2550'].aos-animate,body[aos-delay='2550'] [aos].aos-animate{-webkit-transition-delay:2.55s;transition-delay:2.55s}[aos][aos][aos-delay='2600'],body[aos-delay='2600'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2600'].aos-animate,body[aos-delay='2600'] [aos].aos-animate{-webkit-transition-delay:2.6s;transition-delay:2.6s}[aos][aos][aos-delay='2650'],body[aos-delay='2650'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2650'].aos-animate,body[aos-delay='2650'] [aos].aos-animate{-webkit-transition-delay:2.65s;transition-delay:2.65s}[aos][aos][aos-delay='2700'],body[aos-delay='2700'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2700'].aos-animate,body[aos-delay='2700'] [aos].aos-animate{-webkit-transition-delay:2.7s;transition-delay:2.7s}[aos][aos][aos-delay='2750'],body[aos-delay='2750'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2750'].aos-animate,body[aos-delay='2750'] [aos].aos-animate{-webkit-transition-delay:2.75s;transition-delay:2.75s}[aos][aos][aos-delay='2800'],body[aos-delay='2800'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2800'].aos-animate,body[aos-delay='2800'] [aos].aos-animate{-webkit-transition-delay:2.8s;transition-delay:2.8s}[aos][aos][aos-delay='2850'],body[aos-delay='2850'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2850'].aos-animate,body[aos-delay='2850'] [aos].aos-animate{-webkit-transition-delay:2.85s;transition-delay:2.85s}[aos][aos][aos-delay='2900'],body[aos-delay='2900'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2900'].aos-animate,body[aos-delay='2900'] [aos].aos-animate{-webkit-transition-delay:2.9s;transition-delay:2.9s}[aos][aos][aos-delay='2950'],body[aos-delay='2950'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2950'].aos-animate,body[aos-delay='2950'] [aos].aos-animate{-webkit-transition-delay:2.95s;transition-delay:2.95s}[aos][aos][aos-delay='3000'],body[aos-delay='3000'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='3000'].aos-animate,body[aos-delay='3000'] [aos].aos-animate{-webkit-transition-delay:3s;transition-delay:3s}[aos^=fade][aos^=fade]{opacity:0;-webkit-transition-property:all;transition-property:all}[aos^=fade][aos^=fade].aos-animate{opacity:1}[aos=fade-up]{-webkit-transform:translate(0,100px);-ms-transform:translate(0,100px);transform:translate(0,100px)}[aos=fade-up].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-down]{-webkit-transform:translate(0,-100px);-ms-transform:translate(0,-100px);transform:translate(0,-100px)}[aos=fade-down].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-right]{-webkit-transform:translate(-100px,0);-ms-transform:translate(-100px,0);transform:translate(-100px,0)}[aos=fade-right].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-left]{-webkit-transform:translate(100px,0);-ms-transform:translate(100px,0);transform:translate(100px,0)}[aos=fade-left].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-up-right]{-webkit-transform:translate(-100px,100px);-ms-transform:translate(-100px,100px);transform:translate(-100px,100px)}[aos=fade-up-right].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-up-left]{-webkit-transform:translate(100px,100px);-ms-transform:translate(100px,100px);transform:translate(100px,100px)}[aos=fade-up-left].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-down-right]{-webkit-transform:translate(-100px,-100px);-ms-transform:translate(-100px,-100px);transform:translate(-100px,-100px)}[aos=fade-down-right].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-down-left]{-webkit-transform:translate(100px,-100px);-ms-transform:translate(100px,-100px);transform:translate(100px,-100px)}[aos=fade-down-left].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos^=zoom][aos^=zoom]{opacity:0;-webkit-transition-property:all;transition-property:all}[aos^=zoom][aos^=zoom].aos-animate{opacity:1}[aos=zoom-in]{-webkit-transform:scale(.6);-ms-transform:scale(.6);transform:scale(.6)}[aos=zoom-in].aos-animate{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}[aos=zoom-in-up]{-webkit-transform:translate(0,100px) scale(.6);-ms-transform:translate(0,100px) scale(.6);transform:translate(0,100px) scale(.6)}[aos=zoom-in-up].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-in-down]{-webkit-transform:translate(0,-100px) scale(.6);-ms-transform:translate(0,-100px) scale(.6);transform:translate(0,-100px) scale(.6)}[aos=zoom-in-down].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-in-right]{-webkit-transform:translate(-100px,0) scale(.6);-ms-transform:translate(-100px,0) scale(.6);transform:translate(-100px,0) scale(.6)}[aos=zoom-in-right].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-in-left]{-webkit-transform:translate(100px,0) scale(.6);-ms-transform:translate(100px,0) scale(.6);transform:translate(100px,0) scale(.6)}[aos=zoom-in-left].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-out]{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}[aos=zoom-out].aos-animate{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}[aos=zoom-out-up]{-webkit-transform:translate(0,100px) scale(1.2);-ms-transform:translate(0,100px) scale(1.2);transform:translate(0,100px) scale(1.2)}[aos=zoom-out-up].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-out-down]{-webkit-transform:translate(0,-100px) scale(1.2);-ms-transform:translate(0,-100px) scale(1.2);transform:translate(0,-100px) scale(1.2)}[aos=zoom-out-down].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-out-right]{-webkit-transform:translate(-100px,0) scale(1.2);-ms-transform:translate(-100px,0) scale(1.2);transform:translate(-100px,0) scale(1.2)}[aos=zoom-out-right].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-out-left]{-webkit-transform:translate(100px,0) scale(1.2);-ms-transform:translate(100px,0) scale(1.2);transform:translate(100px,0) scale(1.2)}[aos=zoom-out-left].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=slide-up]{-webkit-transform:translate(0,100%);-ms-transform:translate(0,100%);transform:translate(0,100%)}[aos=slide-up].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=slide-down]{-webkit-transform:translate(0,-100%);-ms-transform:translate(0,-100%);transform:translate(0,-100%)}[aos=slide-down].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=slide-right]{-webkit-transform:translate(-100%,0);-ms-transform:translate(-100%,0);transform:translate(-100%,0)}[aos=slide-right].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=slide-left]{-webkit-transform:translate(100%,0);-ms-transform:translate(100%,0);transform:translate(100%,0)}[aos=slide-left].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos^=flip]{-webkit-backface-visibility:hidden;backface-visibility:hidden}[aos=flip-left]{-webkit-transform:perspective(2500px) rotateY(-100deg);transform:perspective(2500px) rotateY(-100deg)}[aos=flip-left].aos-animate{-webkit-transform:perspective(2500px) rotateY(0);transform:perspective(2500px) rotateY(0)}[aos=flip-right]{-webkit-transform:perspective(2500px) rotateY(100deg);transform:perspective(2500px) rotateY(100deg)}[aos=flip-right].aos-animate{-webkit-transform:perspective(2500px) rotateY(0);transform:perspective(2500px) rotateY(0)}[aos=flip-up]{-webkit-transform:perspective(2500px) rotateX(-100deg);transform:perspective(2500px) rotateX(-100deg)}[aos=flip-up].aos-animate{-webkit-transform:perspective(2500px) rotateX(0);transform:perspective(2500px) rotateX(0)}[aos=flip-down]{-webkit-transform:perspective(2500px) rotateX(100deg);transform:perspective(2500px) rotateX(100deg)}[aos=flip-down].aos-animate{-webkit-transform:perspective(2500px) rotateX(0);transform:perspective(2500px) rotateX(0)}
\ No newline at end of file
diff --git a/template/index10/assets/css/common_contact.css b/template/index10/assets/css/common_contact.css
new file mode 100644
index 0000000..63ebb93
--- /dev/null
+++ b/template/index10/assets/css/common_contact.css
@@ -0,0 +1,155 @@
+@charset "utf-8";
+/*联系我们-样式*/
+.contact_comBox{
+ width: 100%;
+}
+.contact_comBox .contactUs{
+ width: 100%;
+}
+/*列表页-联系我们-开始*/
+.contact_listBox{
+ background: url(../images/map_bg.png) no-repeat left 450px/424px 450px;
+ padding-bottom: 150px;
+}
+.contact_comBox .contactUs_content{
+ margin-top: -300px;
+}
+.contact_comBox .contactUs .contactUs_listMap{
+ width: 1200px;
+ height: 600px;
+ margin-top: 40px;
+}
+.iw_poi_title {color:#CC5522;font-size:14px;font-weight:bold;overflow:hidden;padding-right:13px;white-space:nowrap}
+.iw_poi_content {font:12px arial,sans-serif;overflow:visible;padding-top:4px;white-space:-moz-pre-wrap;word-wrap:break-word}
+.contact_comBox .contactUs .contactUs_listMap .listMap_mapBox{
+ width: 1200px;
+ height: 600px;
+ border: 1px solid #CCCCCC;
+}
+/*列表页-联系我们-结束*/
+.contact_comBox .contactUs_index{
+ height: 572px;
+ background: url(../images/contactus_bg.png) no-repeat left center/766px 572px;
+ margin-top: 130px;
+}
+.contact_comBox .contactUs .contactUs_title{
+ width: 100%;
+ text-align: center;
+ font-size: 30px;
+}
+.contact_comBox .contactUs .contactUs_indexTitle{
+ color: #000000;
+}
+.contact_comBox .contactUs .contactUs_listTitle{
+ color: #FFFFFF;
+}
+.contact_comBox .contactUs .contactUs_line{
+ width: 60px;
+ height: 3px;
+ background: #d2d2d2;
+ margin: 10px auto;
+}
+.contact_comBox .contactUs .contactUs_listTxt{
+ width: 100%;
+ text-align: center;
+ font-size: 18px;
+ color: #FFFFFF;
+ padding: 10px 0;
+}
+.contact_comBox .contactUs .contactUs_main{
+ width: 100%;
+ overflow: hidden;
+}
+.contact_comBox .contactUs .contactUs_main li{
+ width: 360px;
+ height: 240px;
+ background: #FFFFFF;
+ border-radius: 7px;
+ position: relative;
+ -webkit-box-shadow: 0 3px 8px rgba(0,0,0,.1), 3px 0 8px rgba(0,0,0,.1), 0 4px 24px rgba(0,0,0,.05);
+ box-shadow: 0 3px 8px rgba(0,0,0,.1), 3px 0 8px rgba(0,0,0,.1), 0 4px 24px rgba(0,0,0,.05);
+ transition: all 0.3s;
+}
+.contact_comBox .contactUs .contactUs_main .contactUs_liMargin1{
+ margin-left: 15px;
+ margin-right: 15px;
+ margin-top: 50px;
+ margin-bottom: 20px;
+}
+.contact_comBox .contactUs .contactUs_main .contactUs_liMargin2{
+ margin-left: 30px;
+ margin-right: 30px;
+ margin-top: 50px;
+ margin-bottom: 20px;
+}
+.contact_comBox .contactUs .contactUs_main li .contactUs_icon{
+ display: block;
+ margin: 40px auto 20px auto;
+}
+.contact_comBox .contactUs .contactUs_main li .contactUs_icon1{
+ width: 23px;
+ height: 29px;
+ background: url(../images/address1.png) no-repeat;
+ background-size: 100%;
+}
+.contact_comBox .contactUs .contactUs_main li .contactUs_icon2{
+ width: 31px;
+ height: 26px;
+ background: url(../images/tell.png) no-repeat;
+ background-size: 100%;
+}
+.contact_comBox .contactUs .contactUs_main li .contactUs_icon3{
+ width: 28px;
+ height: 20px;
+ background: url(../images/email.png) no-repeat;
+ background-size: 100%;
+}
+.contact_comBox .contactUs .contactUs_main li:hover{
+ margin-top: 28px;
+}
+.contact_comBox .contactUs .contactUs_main li:hover .contactUs_mainLine{
+ background: #4e7dff;
+}
+.contact_comBox .contactUs .contactUs_main li:hover .contactUs_mainBot{
+ display: block;
+}
+.contact_comBox .contactUs .contactUs_main li:hover .contactUs_icon1{
+ background: url(../images/address.png) no-repeat;
+}
+.contact_comBox .contactUs .contactUs_main li:hover .contactUs_icon2{
+ background: url(../images/tell1.png) no-repeat;
+}
+.contact_comBox .contactUs .contactUs_main li:hover .contactUs_icon3{
+ background: url(../images/email1.png) no-repeat;
+}
+.contact_comBox .contactUs .contactUs_main li .contactUs_mainTit{
+ display: block;
+ width: 100%;
+ text-align: center;
+ font-size: 20px;
+ color: #BBBBBB;
+}
+.contact_comBox .contactUs .contactUs_main li .contactUs_mainLine{
+ display: block;
+ width: 60px;
+ margin: 15px auto 30px auto;
+ height: 4px;
+ background: #707070;
+}
+.contact_comBox .contactUs .contactUs_main li .contactUs_mainTxt{
+ display: block;
+ width: 100%;
+ text-align: center;
+ font-size: 18px;
+ color: #909090;
+}
+.contact_comBox .contactUs .contactUs_main li .contactUs_mainBot{
+ display: block;
+ width: 100%;
+ height: 8px;
+ background: #4e7dff;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ display: none;
+}
\ No newline at end of file
diff --git a/template/index10/assets/css/default.css b/template/index10/assets/css/default.css
new file mode 100644
index 0000000..863b382
--- /dev/null
+++ b/template/index10/assets/css/default.css
@@ -0,0 +1,57 @@
+html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dd, dl, dt, li, ol, ul, fieldset, form, label, legend{
+
+margin: 0; padding: 0; border: 0; outline: 0; font-weight: inherit; font-style: inherit; font-family: inherit; font-size:100%; text-align: left;
+
+vertical-align: baseline;
+
+}
+*{
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ font-family: Arial, '微软雅黑';
+}
+img {
+border:none;
+ -webkit-user-select: none;
+-moz-user-select: none;
+-ms-user-select: none;
+user-select: none;
+}
+q:before, q:after, blockquote:before, blockquote:after {
+content: "";
+}
+/* 基础样式----------------------------------------*/
+body{
+text-align:center; width:100%; position: relative; overflow-x: hidden;
+}
+/*--- 链接样式 ---*/
+a{
+text-decoration:none;
+}
+a:hover, a:active{
+text-decoration: none;
+}
+ul{ list-style-type:none;}
+ul, li {
+ list-style: none;
+}
+blockquote {
+margin: 0 0 18px 18px; font-style: italic;
+}
+strong {font-weight:bold;}
+em {font-style:italic;}
+/* 常用样式----------------------------------------*/
+.left {float:left;}
+.right {float:right;}
+.clear {clear:both;}
+.center{
+ width: 1200px;
+ margin: 0 auto;
+}
+.payment_item8,.about,.process,.advantage,.contact_box,footer,a,p,span,div{
+ font-family: Arial, '微软雅黑';
+}
+.cursor{
+ cursor: pointer;
+}
diff --git a/template/index10/assets/css/header_common.css b/template/index10/assets/css/header_common.css
new file mode 100644
index 0000000..e6ccc80
--- /dev/null
+++ b/template/index10/assets/css/header_common.css
@@ -0,0 +1,179 @@
+@charset "utf-8";
+/*头部样式*/
+.header_common{
+ width: 100%;
+ min-width: 1200px;
+ height: 500px;
+ background: url(../images/header_combg.png) no-repeat left top;
+}
+/*顶部样式*/
+.navBox{
+ width: 100%;
+ padding: 18px 45px 15px 100px;
+ overflow: hidden;
+ height: 100px;
+}
+.navBox .logo{
+ width: 177px;
+ height: 51px;
+}
+.navBox .logo img{
+ width: 100%;
+ height: 100%;
+}
+.navBox .navBox_right .nav li{
+ padding: 6px 25px;
+ line-height: 42px;
+ font-family: simhei;
+}
+.navBox .navBox_right .nav li a{
+ display: block;
+ //font-family:simhei;
+ color: #aabdf1;
+ font-size: 15px;
+ padding: 0 4px;
+ border-bottom: 2px solid rgba(255,255,255,0);
+ -webkit-transition:all 0.1s;
+ -moz-transition:all 0.1s;
+ -o-transition:all 0.1s;
+ transition:all 0.1s;
+}
+.navBox .navBox_right .nav li a:hover{
+ border-bottom: 2px solid #fff;
+ font-weight: bold;
+ color: #fff;
+ -webkit-transform: scale(1.1);
+ -moz-transform:scale(1.1);
+ -o-transform:scale(1.1);
+ transform:scale(1.1);
+}
+.navBox .navBox_right .nav li a.active{
+ color: #fff;
+ font-weight: bold;
+ border-bottom: 2px solid rgba(255,255,255,1.0);
+ -webkit-transform: scale(1.1);
+ -moz-transform:scale(1.1);
+ -o-transform:scale(1.1);
+ transform:scale(1.1);
+}
+.navBox .navBox_right .btn_common{
+ display: block;
+ //font-family:simhei;
+ width: 100px;
+ height: 40px;
+ border: 1px solid #fff;
+ border-radius: 20px;
+ line-height: 38px;
+ text-align: center;
+ font-size: 16px;
+ color: #fff;
+ margin-left: 27px;
+ margin-top: 6px;
+}
+.navBox .navBox_right .btn_common:hover{
+ background: #fff;
+ color: #4964de;
+}
+.navBox .navBox_right .btn_common.active{
+ background: #fff;
+ color: #4964de;
+}
+/*右侧社交固定*/
+.right_fixed{
+ position: fixed;
+ bottom: 60px;
+ right: 0;
+ width: 160px;
+ height: 240px;
+ z-index: 100;
+}
+.right_fixed .right_conBox{
+ cursor: pointer;
+ transition: all 0.8s;
+ width: 160px;
+ height: 60px;
+}
+.right_fixed .right_conBox .rightPhoto_common{
+ width: 60px;
+ height: 60px;
+ border: 1px solid #dddddd;
+ border-bottom: none;
+}
+.right_fixed .right_conBox .right_tellPhoto{
+ border-top-left-radius: 5px;
+ border-top-right-radius: 5px;
+ background: #FFFFFF url(../images/right_tell1.png) no-repeat center/23px 31px;
+}
+.right_fixed .right_conBox .right_qqPhoto{
+ border-bottom: 1px solid #dddddd;
+ background: #FFFFFF url(../images/qq.png) no-repeat center/26px 28px;
+}
+.rightShow_common{
+ width: 160px;
+ height: 60px;
+ overflow: hidden;
+ border: 1px solid #4E7DFF;
+ display: none;
+}
+.right_tellShow{
+ border: 1px solid #4E7DFF;
+ border-bottom: none;
+}
+.right_qqShow{
+ border: 1px solid #4E7DFF;
+}
+.rightImg_comm{
+ width: 60px;
+ height: 58px;
+}
+.right_tellShow .right_tellImg{
+ background: #4E7DFF url(../images/right_tell2.png) no-repeat 19px center/23px 31px;
+}
+.rightShow_common .right_qqImg{
+ background: #4E7DFF url(../images/qq2.png) no-repeat center/26px 28px;
+}
+.rightNum_comm{
+ width: 98px;
+ height: 58px;
+ background: #4e7dff;
+ font-size: 14px;
+ color: #FFFFFF;
+ line-height: 58px;
+}
+
+.right_fixed .right_qq{
+ width: 160px;
+ height: 60px;
+ border-left: 1px solid #dddddd;
+ border-right: 1px solid #dddddd;
+}
+.right_fixed .right_qq .right_qqPhoto{
+ width: 60px;
+ height: 58px;
+ border-left: 1px solid #dddddd;
+ border-right: 1px solid #dddddd;
+ background: #FFFFFF url(../images/qq.png) no-repeat center/26px 28px;
+}
+.right_fixed .right_scrollTop{
+ width: 160px;
+ height: 60px;
+}
+.right_fixed .right_scrollTop .right_scrollTopPhoto{
+ width: 60px;
+ height: 60px;
+ background: #FFFFFF url(../images/scrolltop.png) no-repeat 21px 12px/17px 19px;
+ border: 1px solid #dddddd;
+ border-top: none;
+ border-bottom-left-radius: 5px;
+ border-bottom-right-radius: 5px;
+ font-size: 12px;
+ color: #666666;
+ line-height: 82px;
+ text-align: center;
+ cursor: pointer;
+}
+.right_fixed .right_scrollTop .right_scrollTopPhoto:hover{
+ background: #4E7DFF url(../images/scrolltop2.png) no-repeat 21px 12px/17px 19px;
+ color: #FFFFFF;
+ border: 1px solid #4E7DFF;
+}
\ No newline at end of file
diff --git a/template/index10/assets/css/index_main.css b/template/index10/assets/css/index_main.css
new file mode 100644
index 0000000..aa075a1
--- /dev/null
+++ b/template/index10/assets/css/index_main.css
@@ -0,0 +1,596 @@
+@charset "utf-8";
+/*头部样式*/
+.index_header{
+ height: 830px;
+ max-height: 830px;
+ background: url(../images/banner.png) no-repeat left top;
+ background-size: 100%;
+}
+/*头部banner样式*/
+.index_header .banner{
+ margin-top: 100px;
+ //font-family: simhei;
+ position: relative;
+ width: 100%;
+ height: 426px;
+}
+.index_header .banner .banner_left{
+ width: 600px;
+}
+.index_header .banner .banner_right{
+ width: 600px;
+ height: 426px;
+ -webkit-animation: myfirst 1.8s linear 0s infinite alternate;
+ animation: myfirst 1.8s linear 0s infinite alternate;
+ position: absolute;
+ right: 0;
+ bottom: 0;
+}
+@keyframes myfirst {
+ from {
+ bottom: 20px
+ }
+ to {
+ bottom: 10px
+ }
+}
+
+@-webkit-keyframes myfirst {
+ from {
+ bottom: 20px
+ }
+ to {
+ bottom: 40px
+ }
+}
+.index_header .banner .banner_right img{
+ width: 100%;
+ height: 100%;
+}
+.index_header .banner .text1 {
+ font-size: 56px;
+ color: #fff;
+ font-weight: 400;
+ letter-spacing: 3px;
+ height: 80px;
+ width: 400px;
+ margin-bottom: 20px;
+}
+.index_header .banner .text1_line{
+ width: 120px;
+ height: 3px;
+ background: #fff;
+ margin-bottom: 20px;
+}
+.index_header .banner .banner_p{
+ font-size: 22px;
+ color: #fff;
+ line-height: 44px;
+}
+.index_header .banner .banner_btnContact{
+ display: block;
+ width: 210px;
+ height: 56px;
+ border: 1px solid #fff;
+ border-radius: 40px;
+ text-align: center;
+ line-height: 54px;
+ font-size: 18px;
+ color: #fff;
+ font-weight: bold;
+ margin-top: 80px;
+ background: #3c7cdf;
+ overflow: hidden;
+ z-index: 100;
+}
+.index_header .banner .banner_btnContact{
+ position: relative;
+ z-index: 100;
+}
+/*支付方式-样式*/
+.payment_box{
+ width: 866px;
+ height: 416px;
+ background: url(../images/payment_bg.png) no-repeat;
+ background-size: 100% 100%;
+ margin-top: -210px;
+ margin-left: -44px;
+ padding: 46px;
+ position: relative;
+}
+.payment_box .payment_ul{
+ overflow: hidden;
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 94px;
+ left: 104px;
+}
+.payment_box .payment_ul li{
+ width: 24%;
+ height: 74px;
+ margin-left: 1%;
+ margin-right: 2%;
+ position: relative;
+}
+.payment_box .payment_ul li a{
+ display: block;
+ width: 100%;
+ height: 74px;
+}
+.payment_box .payment_ul li a .img1{
+ position: absolute;
+ top: 0;
+ left: 0;
+}
+.payment_box .payment_ul li a .img2{
+ position: absolute;
+ bottom: 0;
+ left: 0;
+}
+.payment_box .payment_ul li a .img3{
+ position: absolute;
+ top: 50%;
+ transform: translateY(-50%);
+ left: 0;
+}
+.payment_box .payment_ul .payment_item1 a img{
+ width: 137px;
+ height: 49px;
+}
+.payment_box .payment_ul .payment_item2 a img{
+ width: 168px;
+ height: 51px;
+}
+.payment_box .payment_ul .payment_item3 a img{
+ width: 168px;
+ height: 49px;
+}
+.payment_box .payment_ul .payment_item4 a img{
+ width: 168px;
+ height: 59px;
+ margin-left: -9px;
+}
+.payment_box .payment_ul .payment_item5 a img{
+ width: 125px;
+ height: 38px;
+ margin-left: 24px;
+}
+.payment_box .payment_ul .payment_item6 a img{
+ width: 135px;
+ height: 38px;
+ margin-left: 22px;
+}
+.payment_box .payment_ul .payment_item7 a img{
+ width: 136px;
+ height: 54px;
+}
+.payment_box .payment_ul .payment_item8 a{
+ width: 100%;
+ font-size: 16px;
+ color: #A0A0A0;
+ font-family: "苹方黑体-准-简";
+ line-height: 74px;
+ text-align: center;
+ padding-top: 14px;
+}
+/*共同样式*/
+.title_common{
+ font-size: 30px;
+ color: #444444;
+}
+.centerRe{
+ position: relative;
+ width: 1200px;
+ height: 464px;
+}
+.leftImg_common1{
+ position: absolute;
+ left: 0;
+ width: 100%;
+ height: 360px;
+}
+.leftImg_common2{
+ width: 64%;
+ height: 360px;
+}
+.rightImg_common1{
+ position: absolute;
+ right: 0;
+}
+.rightImg_common2{
+ width: 72%;
+ height: 360px;
+}
+/*丫发卡简介-样式*/
+.about{
+ width: 100%;
+ position: relative;
+}
+.about .about_main{
+ width: 655px;
+ padding: 0 30px;
+}
+.about .about_main .about_title{
+ display: block;
+ width: 100%;
+ text-align: right;
+ line-height: 78px;
+ padding-top: 40px;
+}
+.about .about_main .about_line{
+ display: block;
+ width: 62px;
+ height: 4px;
+ background: #4e7dff;
+}
+.about .about_main .about_txt{
+ width: 100%;
+ padding-top: 30px;
+}
+.about .about_main .about_txt p{
+ font-size: 16px;
+ color: #666666;
+ line-height: 30px;
+}
+.about .about_main .about_more{
+ display: block;
+ width: 57px;
+ font-size: 14px;
+ color: #444444;
+ background: url(../images/more_arrow.png) no-repeat right center/21px 15px;
+ margin-top: 24px;
+ cursor: pointer;
+}
+.about .about_right{
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 790px;
+ height: 510px;
+}
+.about .about_right .about_rightMain{
+ width: 790px;
+ height: 510px;
+ position: relative;
+}
+.about .about_right .about_rightMain .about_rightImg1{
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 348px;
+ height: 504px;
+ z-index: 2;
+}
+.about .about_right .about_rightMain .about_rightCenter{
+ width: 370px;
+}
+.about .about_right .about_rightMain .about_rightCenter .rightCenter_com{
+ position: absolute;
+ z-index: 9;
+ height: 70px;
+}
+.about .about_right .about_rightMain .about_rightCenter .rightCenter_1{
+ top: 116px;
+ left: 240px;
+ width: 259px;
+}
+.about .about_right .about_rightMain .about_rightCenter .rightCenter_2{
+ top: 192px;
+ left: 240px;
+ width: 247px;
+}
+.about .about_right .about_rightMain .about_rightCenter .rightCenter_3{
+ top: 275px;
+ left: 203px;
+ width: 370px;
+}
+.about .about_right .about_rightMain .about_rightCenter .rightCenter_4{
+ top: 356px;
+ left: 203px;
+ width: 317px;
+}
+.about .about_right .about_rightMain .about_rightImg2{
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ width: 632px;
+ height: 394px;
+ z-index: 1;
+}
+/*自动发卡-流程-样式*/
+.process{
+ width: 100%;
+ width: 1296px;
+ height: 576px;
+ margin: 0 auto;
+ position: relative;
+ background: url(../images/process_bg.png);
+ margin-top: 100px;
+}
+.process .process_main{
+ position: absolute;
+ top: 48px;
+ left: 48px;
+ width: 1200px;
+ height: 480px;
+}
+.process .process_main .process_title{
+ display: block;
+ width: 100%;
+ text-align: center;
+ padding-top: 70px;
+}
+.process .process_main .process_line{
+ display: block;
+ width: 60px;
+ height: 3px;
+ margin: 16px auto;
+ background: #4e7dff;
+}
+.process .process_main .process_h4{
+ display: block;
+ font-size: 14px;
+ color: #999999;
+ text-align: center;
+}
+.process .process_main .process_ul{
+ width: 100%;
+ padding: 0 30px;
+ overflow: hidden;
+ padding-top: 52px;
+}
+.process .process_main .process_ul li{
+ width: 190px;
+ text-align: center;
+}
+.process .process_main .process_ul li img{
+ transition: all 1s;
+}
+.process .process_main .process_ul li:hover img{
+ transform: rotateY(180deg);
+}
+.process .process_main .process_ul li .process_txt1{
+ display: block;
+ width: 100%;
+ text-align: center;
+ font-size: 16px;
+ color: #4E7DFF;
+ padding-top: 30px;
+ padding-bottom: 16px;
+}
+.process .process_main .process_ul li .process_txt2{
+ display: block;
+ width: 100%;
+ text-align: center;
+ font-size: 14px;
+ color: #666666;
+}
+/*品牌优势-样式*/
+.advantage{
+ width: 100%;
+ margin-top: 60px;
+}
+.advantage .advantage_topBox{
+ width: 100%;
+ height: 464px;
+ margin-top: 60px;
+ position: relative;
+}
+.advantage .advantage_topBox .advantage_topL{
+ top: 0;
+ background: url(../images/advantage_topl.png) no-repeat;
+ background-size: 100%;
+ z-index: 9;
+}
+.advantage .advantage_topBox .advantage_topR{
+ bottom: 0;
+ background: url(../images/advantage_topr.png) no-repeat;
+ background-size: 100%;
+ z-index: 20;
+}
+.advantage .advantage_topMain{
+ width: 250px;
+ height: 100px;
+ position: absolute;
+ bottom: 32%;
+ right: 0;
+ z-index: 30;
+}
+.advantage .advantage_topMain .advantage_common{
+ display: block;
+ width: 100%;
+ color: #FFFFFF;
+ text-align: right;
+}
+.advantage .advantage_topMain .advantage_title{
+ font-size: 30px;
+}
+.advantage .advantage_topMain .advantage_line{
+ display: block;
+ width: 50px;
+ height: 3px;
+ background: #dcdcdc;
+ margin-left: 200px;
+ margin-top: 16px;
+ margin-bottom: 16px;
+}
+.advantage .advantage_topMain .advantage_txt{
+ font-size: 14px;
+}
+.advantage .advantage_botMain{
+ width: 100%;
+ overflow: hidden;
+}
+.advantage .advantage_botMain li{
+ width: 240px;
+}
+.advantage .advantage_botMain .li_margin{
+ margin-left: 40px;
+ margin-right: 40px;
+}
+.advantage .advantage_botMain li img{
+ width: 240px;
+ height: 240px;
+ text-align: center;
+}
+.advantage .advantage_botMain li:hover img{
+ transition: all 1s;
+ /*transform: translateX(180deg);*/
+ transform: rotateY(180deg);
+}
+.advantage .advantage_botMain li .advantage_botTxt{
+ display: block;
+ width: 100%;
+ text-align: center;
+ font-size: 20px;
+ color: #444444;
+ padding-top: 20px;
+ padding-bottom: 16px;
+}
+.advantage .advantage_botMain li .advantage_botP{
+ width: 100%;
+ text-align: center;
+ font-size: 14px;
+ color: #909090;
+ line-height: 24px;
+}
+/*联系我们-样式*/
+.contact_box .contact_bot{
+ width: 100%;
+ height: 464px;
+ margin-bottom: 80px;
+ position: relative;
+}
+.contact_box .contact_bot .contact_botL{
+ bottom: 0;
+ background: url(../images/contact_botl.png) no-repeat;
+ background-size: 100%;
+ z-index: 30;
+}
+.contact_box .contact_bot .contact_botR{
+ top: 0;
+ background: url(../images/contact_botr.png) no-repeat;
+ background-size: 100%;
+ z-index: 20;
+}
+.contact_box .contact_bot .contact_botMain{
+ width: 440px;
+ height: 170px;
+ position: absolute;
+ left: 0;
+ bottom: 20%;
+ z-index: 50;
+}
+.contact_box .contact_bot .contact_botMain .contact_botMainTxt{
+ width: 100%;
+ font-size: 40px;
+ color: #FFFFFF;
+}
+.contact_box .contact_bot .contact_botMain .contact_botMainBtn{
+ width: 238px;
+ height: 68px;
+ background: #32ef6f;
+ border-radius: 8px;
+ font-size: 24px;
+ color: #FFFFFF;
+ line-height: 68px;
+ text-align: center;
+ cursor: pointer;
+ margin-top: 50px;
+}
+/*底部样式*/
+footer{
+ width: 1200px;
+ margin: 0 auto;
+}
+footer .footer_top{
+ width: 1200px;
+ overflow: hidden;
+}
+footer .footer_top .footer_topLeft li{
+ width: 116px;
+ margin-right: 60px;
+}
+footer .footer_top .footer_topLeft li .footer_topLeftTit{
+ font-size: 18px;
+ color: #666666;
+ line-height: 50px;
+ padding-left: 38px;
+}
+footer .footer_top .footer_topLeft li .footer_icon1{
+ background: url(../images/footer_icon1.png) no-repeat left center/26px 26px;
+}
+footer .footer_top .footer_topLeft li .footer_icon2{
+ background: url(../images/footer_icon2.png) no-repeat left center/26px 26px;
+}
+footer .footer_top .footer_topLeft li .footer_icon3{
+ background: url(../images/footer_icon3.png) no-repeat left center/26px 26px;
+}
+footer .footer_top .footer_topLeft li .footer_icon4{
+ background: url(../images/footer_icon4.png) no-repeat left center/26px 26px;
+}
+footer .footer_top .footer_topLeft li .footer_topLeftCon{
+ width: 100%;
+}
+footer .footer_top .footer_topLeft li .footer_topLeftCon a{
+ display: block;
+ width: 100%;
+ font-size: 12px;
+ color: #666666;
+ line-height: 30px;
+ padding-left: 40px;
+}
+footer .footer_top .footer_topRight{
+ overflow: hidden;
+}
+footer .footer_top .footer_topRight .footer_qrCode{
+ margin-top: 10px;
+ margin-right: 50px;
+}
+footer .footer_top .footer_topRight .footer_qrCode img{
+ display: block;
+ width: 98px;
+ height: 98px;
+}
+footer .footer_top .footer_topRight .footer_qrCode .rqCode_botTxt{
+ display: block;
+ font-size: 12px;
+ color: #666666;
+ line-height: 26px;
+}
+footer .footer_top .footer_topRight .footer_detail{
+ width: 218px;
+}
+footer .footer_top .footer_topRight .footer_detail .footer_pCom{
+ font-size: 12px;
+ color: #666666;
+ padding-left: 30px;
+ line-height: 36px;
+}
+footer .footer_top .footer_topRight .footer_detail .footer_tell{
+ width: 100%;
+ font-size: 30px;
+ color: #666666;
+}
+footer .footer_top .footer_topRight .footer_detail .footer_tellTime{
+ line-height: 28px;
+ padding-left: 0;
+ padding-bottom: 5px;
+}
+footer .footer_top .footer_topRight .footer_detail .footer_email{
+ background: url(../images/footer_email.png) no-repeat left center/22px 22px;
+}
+footer .footer_top .footer_topRight .footer_detail .footer_qq{
+ background: url(../images/footer_qq.png) no-repeat left center/22px 22px;
+}
+footer .footer_bottom{
+ width: 1200px;
+ margin: 0 auto;
+ padding: 56px 0 40px 0;
+ font-size: 12px;
+ color: #666666;
+ text-align: center;
+}
+
+
diff --git a/template/index10/assets/css/media.css b/template/index10/assets/css/media.css
new file mode 100644
index 0000000..c7aa152
--- /dev/null
+++ b/template/index10/assets/css/media.css
@@ -0,0 +1,381 @@
+@charset "utf-8";
+@media only screen and (max-width: 1920px){
+ .index_header .banner{
+ margin-top: 100px;
+ }
+ .index_header .banner .banner_btnContact{
+ margin-top: 80px;
+ }
+ .payment_box{
+ margin-top: -210px;
+ }
+ .advantage .advantage_topMain {
+ bottom: 32%;
+ right: 2%;
+ }
+ .contact_box .contact_bot .contact_botMain {
+ left: 0;
+ bottom: 20%;
+ }
+}
+@media only screen and (max-width: 1860px){
+ .payment_box{
+ margin-top: -226px;
+ }
+}
+@media only screen and (max-width: 1800px){
+ .index_header .banner{
+ margin-top: 71px;
+ }
+ .payment_box{
+ margin-top: -246px;
+ }
+ .advantage .advantage_topMain {
+ bottom: 34%;
+ right: 4%;
+ }
+ .contact_box .contact_bot .contact_botMain {
+ left: 5%;
+ bottom: 24%;
+ }
+}
+@media only screen and (max-width: 1750px){
+ .payment_box{
+ margin-top: -288px;
+ }
+}
+@media only screen and (max-width: 1700px){
+ .index_header .banner{
+ margin-top: 75px;
+ }
+ .index_header .banner .banner_btnContact{
+ margin-top: 64px;
+ }
+ .payment_box{
+ margin-top: -310px;
+ }
+ .advantage .advantage_topMain {
+ bottom: 36%;
+ right: 7%;
+ }
+ .contact_box .contact_bot .contact_botMain {
+ left: 7%;
+ bottom: 23%;
+ }
+ .about .about_right {
+ width: 711px;
+ height: 459px;
+ }
+ .about .about_right .about_rightMain {
+ width: 711px;
+ height: 459px;
+ }
+ .about .about_right .about_rightMain .about_rightImg1 {
+ width: 313px;
+ height: 453px;
+ }
+ .about .about_right .about_rightMain .about_rightImg2 {
+ width: 569px;
+ height: 355px;
+ }
+ .about .about_right .about_rightMain .about_rightCenter .rightCenter_1 {
+ top: 104px;
+ left: 220px;
+ width: 233px;
+ }
+ .about .about_right .about_rightMain .about_rightCenter .rightCenter_2 {
+ top: 175px;
+ left: 220px;
+ width: 222px;
+ }
+ .about .about_right .about_rightMain .about_rightCenter .rightCenter_3 {
+ top: 247px;
+ left: 181px;
+ width: 333px;
+ }
+ .about .about_right .about_rightMain .about_rightCenter .rightCenter_4 {
+ top: 322px;
+ left: 181px;
+ width: 285px;
+ }
+ .about .about_right .about_rightMain .about_rightCenter .rightCenter_com {
+ height: 63px;
+ }
+}
+@media only screen and (max-width: 1650px){
+ .payment_box{
+ margin-top: -315px;
+ }
+}
+@media only screen and (max-width: 1600px){
+ .index_header .banner{
+ margin-top: 57px;
+ }
+ .index_header .banner .banner_btnContact{
+ margin-top: 25px;
+ }
+ .payment_box{
+ margin-top: -350px;
+ }
+ .advantage .advantage_topMain {
+ bottom: 38%;
+ right: 9%;
+ }
+ .contact_box .contact_bot .contact_botMain {
+ left: 9%;
+ bottom: 22%;
+ }
+ .contact_box .contact_bot .contact_botMain .contact_botMainBtn{
+ margin-top: 35px;
+ }
+}
+@media only screen and (max-width: 1500px){
+ .index_header .banner{
+ margin-top: 47px;
+ }
+ .index_header .banner .banner_btnContact{
+ margin-top: 15px;
+ }
+ .payment_box{
+ margin-top: -370px;
+ }
+ .advantage .advantage_topMain {
+ bottom: 38%;
+ right: 12%;
+ }
+ .contact_box .contact_bot .contact_botMain {
+ left: 10%;
+ bottom: 22%;
+ }
+ .contact_box .contact_bot .contact_botMain .contact_botMainBtn{
+ margin-top: 25px;
+ }
+ .about .about_right {
+ width: 632px;
+ height: 408px;
+ }
+ .about .about_right .about_rightMain {
+ width: 632px;
+ height: 408px;
+ }
+ .about .about_right .about_rightMain .about_rightImg1 {
+ width: 278px;
+ height: 403px;
+ }
+ .about .about_right .about_rightMain .about_rightImg2 {
+ width: 506px;
+ height: 315px;
+ }
+ .about .about_right .about_rightMain .about_rightCenter .rightCenter_1 {
+ top: 93px;
+ left: 194px;
+ width: 207px;
+ }
+ .about .about_right .about_rightMain .about_rightCenter .rightCenter_2 {
+ top: 154px;
+ left: 194px;
+ width: 198px;
+ }
+ .about .about_right .about_rightMain .about_rightCenter .rightCenter_3 {
+ top: 219px;
+ left: 155px;
+ width: 296px;
+ }
+ .about .about_right .about_rightMain .about_rightCenter .rightCenter_4 {
+ top: 283px;
+ left: 155px;
+ width: 254px;
+ }
+ .about .about_right .about_rightMain .about_rightCenter .rightCenter_com {
+ height: 56px;
+ }
+ .about .about_right {
+ top: 43px;
+ }
+}
+@media only screen and (max-width: 1400px){
+ .index_header .banner{
+ margin-top: 20px;
+ }
+ .payment_box{
+ margin-top: -410px;
+ }
+ .index_header .banner .banner_btnContact{
+ margin-top: 13px;
+ }
+ .advantage .advantage_topMain {
+ bottom: 40%;
+ right: 14%;
+ }
+ .contact_box .contact_bot .contact_botMain {
+ left: 14%;
+ bottom: 26%;
+ }
+ .contact_box .contact_bot .contact_botMain .contact_botMainBtn{
+ margin-top: 20px;
+ }
+ .about .about_right {
+ width: 553px;
+ height: 357px;
+ }
+ .about .about_right .about_rightMain {
+ width: 553px;
+ height: 357px;
+ }
+ .about .about_right .about_rightMain .about_rightImg1 {
+ width: 244px;
+ height: 353px;
+ }
+ .about .about_right .about_rightMain .about_rightImg2 {
+ width: 442px;
+ height: 276px;
+ }
+ .about .about_right .about_rightMain .about_rightCenter .rightCenter_1 {
+ top: 82px;
+ left: 172px;
+ width: 181px;
+ }
+ .about .about_right .about_rightMain .about_rightCenter .rightCenter_2 {
+ top: 135px;
+ left: 172px;
+ width: 173px;
+ }
+ .about .about_right .about_rightMain .about_rightCenter .rightCenter_3 {
+ top: 192px;
+ left: 141px;
+ width: 259px;
+ }
+ .about .about_right .about_rightMain .about_rightCenter .rightCenter_4 {
+ top: 250px;
+ left: 141px;
+ width: 222px;
+ }
+ .about .about_right .about_rightMain .about_rightCenter .rightCenter_com {
+ height: 49px;
+ }
+ .about .about_right {
+ top: 43px;
+ }
+ .navBox{ padding: 18px 25px 15px 25px;}
+ .index_header .banner .text1{font-size: 45px; height: 54px;}
+ .index_header .banner .banner_p{font-size: 19px;}
+ .index_header .banner .banner_btnContact{font-size: 17px;line-height: 46px; height: 46px; width: 189px;}
+ .index_header .banner .banner_left{padding-left: 20px; box-sizing: border-box;}
+}
+@media only screen and (max-width: 1300px){
+ .index_header .banner{
+ margin-top: 15px;
+ }
+ .index_header .banner .banner_btnContact{
+ margin-top: 28px;
+ }
+ .payment_box{
+ margin-top: -430px;
+ }
+ .advantage .advantage_topMain {
+ bottom: 41%;
+ right: 16%;
+ }
+ .contact_box .contact_bot .contact_botMain {
+ left: 17%;
+ bottom: 28%;
+ }
+ .contact_box .contact_bot .contact_botMain .contact_botMainBtn{
+ margin-top: 15px;
+ }
+ .contact_comBox .contactUs_index{height: 466px;}
+ .navBox{ padding: 18px 25px 15px 25px;}
+ .index_header .banner .banner_left{margin: 30px 0;}
+ .process{width: 96%; overflow: hidden; background-image: none; background: #fff; box-shadow: 0px 0px 29px rgba(0,0,0,0.1); margin: 30px auto; border-radius: 20px; height: 470px;}tMainTxt{font-size: 25px;}
+ .process .process_main .process_ul li{width: 16%; }
+ .process .process_main{width: 100%; left: 0; }
+}
+@media only screen and (max-width: 1200px){
+
+ .navBox{ padding: 18px 25px 15px 25px;width: 1200px;}
+ .index_header .banner .text1{font-size: 45px; height: 54px;}
+ .index_header .banner .banner_p{font-size: 19px;}
+ .index_header .banner .banner_btnContact{font-size: 17px;line-height: 46px; height: 46px; width: 189px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
+ .index_header .banner .banner_left{padding-left: 20px; box-sizing: border-box;}
+ .about{width: 1200px;}
+
+ .contact_box .contact_bot .contact_botMain .contact_botMainBtn{ width: 208px; height: 53px; line-height: 53px;}
+ .contact_box .contact_bot{ margin-bottom: 0;}
+
+ .index_header .banner .banner_right{width: 420px; height: 330px; bottom: 104px;}
+
+
+ .center{width: 96%; margin: 0 auto;}
+ .protocol_content{position: inherit; margin-top: 20px;}
+
+ .downLoad_con .center .downLoad_main{width: 100%; display: flex;}
+ .downLoad_con .center .downLoad_main .downLoad_mainLeft{width: 522px;}
+ .downLoad_con .center .downLoad_main .downLoad_mainRight{margin-right: 24px; margin-top: 10px;}
+
+ .header_common{width: 100%; min-width: 100%;}
+ .box_common{width: 100%; box-sizing: border-box;}
+ .contact_comBox .contactUs .contactUs_main{display: flex;}
+ .helpCon_content .helpCon_conMain .helpCon_right{ float: left; width:100%;}
+ .advantage_conBox{box-sizing: border-box; display: flex; padding: 70px 40px;}
+ .advantage .advantage_botMain{display: flex;}
+
+ @keyframes myfirst {
+ from {
+ bottom: 90px
+ }
+ to {
+ bottom: 70px
+ }
+}
+
+@-webkit-keyframes myfirst {
+ from {
+ bottom: 90px
+ }
+ to {
+ bottom: 70px
+ }
+}
+
+
+}
+
+@media only screen and (max-width: 1100px){
+ .process{width: 96%; overflow: hidden; background-image: none; background: #fff; box-shadow: 0px 0px 29px rgba(0,0,0,0.1); margin: 30px auto; border-radius: 20px; height: 470px;}
+ .center{width: 96%;}
+ .process .process_main{width: 100%; left: 0; height: 380px;}
+ .process .process_main .process_title{padding-top: 30px;}
+ .process .process_main .process_ul li{width: 16%; }
+ .index_header .banner .banner_right{width: 400px; height: 300px; bottom: 104px;}
+ .contact_comBox .contactUs .contactUs_main li{width: 28%;}
+ .advantage .advantage_botMain li{width: 20%;}
+ .advantage .advantage_topMain{ bottom: 52%;}
+ .advantage .advantage_botMain{width: 990px;}
+ footer .footer_top .footer_topLeft li{margin-right:28px}
+ footer{width: 960px;}
+ footer .footer_top{width: 100%;}
+ footer .footer_bottom{width: 100%;}
+ @keyframes myfirst {
+ from {
+ bottom: 120px
+ }
+ to {
+ bottom: 100px
+ }
+}
+
+@-webkit-keyframes myfirst {
+ from {
+ bottom: 120px
+ }
+ to {
+ bottom: 100px
+ }
+}
+ .advantage_conBox{box-sizing: border-box; display: flex; padding: 70px 40px;}
+ .advantage_conBox .conBox_txtConR{ padding-right: 0px;}
+ .advantage_conBox .conBox_photo .conBox_photoMargin{ margin-left: 86px;}
+ .banner{min-width: 1000px;}
+ .contact_box .contact_bot .contact_botMain .contact_botMainTxt{font-size: 25px;}
+}
+
diff --git a/template/index10/assets/images/address.png b/template/index10/assets/images/address.png
new file mode 100644
index 0000000..414cfbe
Binary files /dev/null and b/template/index10/assets/images/address.png differ
diff --git a/template/index10/assets/images/address1.png b/template/index10/assets/images/address1.png
new file mode 100644
index 0000000..b04a4a3
Binary files /dev/null and b/template/index10/assets/images/address1.png differ
diff --git a/template/index10/assets/images/advantage_topl.png b/template/index10/assets/images/advantage_topl.png
new file mode 100644
index 0000000..08bb2e9
Binary files /dev/null and b/template/index10/assets/images/advantage_topl.png differ
diff --git a/template/index10/assets/images/advantage_topr.png b/template/index10/assets/images/advantage_topr.png
new file mode 100644
index 0000000..0308d68
Binary files /dev/null and b/template/index10/assets/images/advantage_topr.png differ
diff --git a/template/index10/assets/images/banner.png b/template/index10/assets/images/banner.png
new file mode 100644
index 0000000..fa7e0aa
Binary files /dev/null and b/template/index10/assets/images/banner.png differ
diff --git a/template/index10/assets/images/contact_botl.png b/template/index10/assets/images/contact_botl.png
new file mode 100644
index 0000000..16a6065
Binary files /dev/null and b/template/index10/assets/images/contact_botl.png differ
diff --git a/template/index10/assets/images/contact_botr.png b/template/index10/assets/images/contact_botr.png
new file mode 100644
index 0000000..7774dc3
Binary files /dev/null and b/template/index10/assets/images/contact_botr.png differ
diff --git a/template/index10/assets/images/contactus_bg.png b/template/index10/assets/images/contactus_bg.png
new file mode 100644
index 0000000..da4770a
Binary files /dev/null and b/template/index10/assets/images/contactus_bg.png differ
diff --git a/template/index10/assets/images/email.png b/template/index10/assets/images/email.png
new file mode 100644
index 0000000..0f32271
Binary files /dev/null and b/template/index10/assets/images/email.png differ
diff --git a/template/index10/assets/images/email1.png b/template/index10/assets/images/email1.png
new file mode 100644
index 0000000..79f8547
Binary files /dev/null and b/template/index10/assets/images/email1.png differ
diff --git a/template/index10/assets/images/footer_email.png b/template/index10/assets/images/footer_email.png
new file mode 100644
index 0000000..8a679c2
Binary files /dev/null and b/template/index10/assets/images/footer_email.png differ
diff --git a/template/index10/assets/images/footer_icon1.png b/template/index10/assets/images/footer_icon1.png
new file mode 100644
index 0000000..e0c0ea3
Binary files /dev/null and b/template/index10/assets/images/footer_icon1.png differ
diff --git a/template/index10/assets/images/footer_icon2.png b/template/index10/assets/images/footer_icon2.png
new file mode 100644
index 0000000..6d6a646
Binary files /dev/null and b/template/index10/assets/images/footer_icon2.png differ
diff --git a/template/index10/assets/images/footer_icon3.png b/template/index10/assets/images/footer_icon3.png
new file mode 100644
index 0000000..d5d3db5
Binary files /dev/null and b/template/index10/assets/images/footer_icon3.png differ
diff --git a/template/index10/assets/images/footer_icon4.png b/template/index10/assets/images/footer_icon4.png
new file mode 100644
index 0000000..519c1d0
Binary files /dev/null and b/template/index10/assets/images/footer_icon4.png differ
diff --git a/template/index10/assets/images/footer_qq.png b/template/index10/assets/images/footer_qq.png
new file mode 100644
index 0000000..ed36501
Binary files /dev/null and b/template/index10/assets/images/footer_qq.png differ
diff --git a/template/index10/assets/images/header_combg.png b/template/index10/assets/images/header_combg.png
new file mode 100644
index 0000000..e17793f
Binary files /dev/null and b/template/index10/assets/images/header_combg.png differ
diff --git a/template/index10/assets/images/map_bg.png b/template/index10/assets/images/map_bg.png
new file mode 100644
index 0000000..d086e34
Binary files /dev/null and b/template/index10/assets/images/map_bg.png differ
diff --git a/template/index10/assets/images/more_arrow.png b/template/index10/assets/images/more_arrow.png
new file mode 100644
index 0000000..73f2596
Binary files /dev/null and b/template/index10/assets/images/more_arrow.png differ
diff --git a/template/index10/assets/images/payment_bg.png b/template/index10/assets/images/payment_bg.png
new file mode 100644
index 0000000..b88c376
Binary files /dev/null and b/template/index10/assets/images/payment_bg.png differ
diff --git a/template/index10/assets/images/process_bg.png b/template/index10/assets/images/process_bg.png
new file mode 100644
index 0000000..c62e3ec
Binary files /dev/null and b/template/index10/assets/images/process_bg.png differ
diff --git a/template/index10/assets/images/qq.png b/template/index10/assets/images/qq.png
new file mode 100644
index 0000000..69a1a63
Binary files /dev/null and b/template/index10/assets/images/qq.png differ
diff --git a/template/index10/assets/images/qq2.png b/template/index10/assets/images/qq2.png
new file mode 100644
index 0000000..fb0ea3f
Binary files /dev/null and b/template/index10/assets/images/qq2.png differ
diff --git a/template/index10/assets/images/right_tell1.png b/template/index10/assets/images/right_tell1.png
new file mode 100644
index 0000000..6218553
Binary files /dev/null and b/template/index10/assets/images/right_tell1.png differ
diff --git a/template/index10/assets/images/right_tell2.png b/template/index10/assets/images/right_tell2.png
new file mode 100644
index 0000000..e975edc
Binary files /dev/null and b/template/index10/assets/images/right_tell2.png differ
diff --git a/template/index10/assets/images/scrolltop.png b/template/index10/assets/images/scrolltop.png
new file mode 100644
index 0000000..f87f19f
Binary files /dev/null and b/template/index10/assets/images/scrolltop.png differ
diff --git a/template/index10/assets/images/scrolltop2.png b/template/index10/assets/images/scrolltop2.png
new file mode 100644
index 0000000..0740a56
Binary files /dev/null and b/template/index10/assets/images/scrolltop2.png differ
diff --git a/template/index10/assets/images/tell.png b/template/index10/assets/images/tell.png
new file mode 100644
index 0000000..f414109
Binary files /dev/null and b/template/index10/assets/images/tell.png differ
diff --git a/template/index10/assets/images/tell1.png b/template/index10/assets/images/tell1.png
new file mode 100644
index 0000000..1c9ec04
Binary files /dev/null and b/template/index10/assets/images/tell1.png differ
diff --git a/template/index10/assets/js/aos.js b/template/index10/assets/js/aos.js
new file mode 100644
index 0000000..abb0e99
--- /dev/null
+++ b/template/index10/assets/js/aos.js
@@ -0,0 +1,2 @@
+!function t(e,n,o){function r(i,c){if(!n[i]){if(!e[i]){var s="function"==typeof require&&require;if(!c&&s)return s(i,!0);if(a)return a(i,!0);var u=new Error("Cannot find module '"+i+"'");throw u.code="MODULE_NOT_FOUND",u}var l=n[i]={exports:{}};e[i][0].call(l.exports,function(t){var n=e[i][1][t];return r(n?n:t)},l,l.exports,t,e,n,o)}return n[i].exports}for(var a="function"==typeof require&&require,i=0;i2?n[i-2]:void 0,s=i>2?n[2]:void 0,u=i>1?n[i-1]:void 0;for("function"==typeof c?(c=o(c,u,5),i-=2):(c="function"==typeof u?u:void 0,i-=c?1:0),s&&r(n[0],n[1],s)&&(c=3>i?void 0:c,i=1);++a-1&&t%1==0&&e>t}function a(t,e,n){if(!c(n))return!1;var a=typeof e;if("number"==a?o(n)&&r(e,n.length):"string"==a&&e in n){var i=n[e];return t===t?t===i:i!==i}return!1}function i(t){return"number"==typeof t&&t>-1&&t%1==0&&u>=t}function c(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var s=/^\d+$/,u=9007199254740991,l=n("length");e.exports=a},{}],7:[function(t,e){function n(t,e,n){for(var o=-1,r=a(e),i=r.length;++o=t||t>e?c(g,d):v=setTimeout(u,t)}function l(){c(k,v)}function f(){if(p=arguments,b=s(),h=this,g=k&&(v||!x),w===!1)var n=x&&!v;else{d||x||(y=b);var o=w-(b-y),r=0>=o||o>w;r?(d&&(d=clearTimeout(d)),y=b,m=t.apply(h,p)):d||(d=setTimeout(l,o))}return r&&v?v=clearTimeout(v):v||e===w||(v=setTimeout(u,e)),n&&(r=!0,m=t.apply(h,p)),!r||v||d||(p=h=void 0),m}var p,d,m,b,h,v,g,y=0,w=!1,k=!0;if("function"!=typeof t)throw new TypeError(a);if(e=0>e?0:+e||0,n===!0){var x=!0;k=!1}else o(n)&&(x=!!n.leading,w="maxWait"in n&&i(+n.maxWait||0,e),k="trailing"in n?!!n.trailing:k);return f.cancel=r,f}function o(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var r=t("lodash._getnative"),a="Expected a function",i=Math.max,c=r(Date,"now"),s=c||function(){return(new Date).getTime()};e.exports=n},{"lodash._getnative":5}],9:[function(t,e){(function(t){function n(t){return function(e){return null==e?void 0:e[t]}}function o(t){return a(t)&&b.call(t,"callee")&&(!v.call(t,"callee")||h.call(t)==f)}function r(t){return null!=t&&!("function"==typeof t&&i(t))&&c(g(t))}function a(t){return u(t)&&r(t)}function i(t){var e=s(t)?h.call(t):"";return e==p||e==d}function c(t){return"number"==typeof t&&t>-1&&t%1==0&&l>=t}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function u(t){return!!t&&"object"==typeof t}var l=9007199254740991,f="[object Arguments]",p="[object Function]",d="[object GeneratorFunction]",m=t.Object.prototype,b=m.hasOwnProperty,h=m.toString,v=m.propertyIsEnumerable,g=n("length");e.exports=o}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],10:[function(t,e){function n(t){return!!t&&"object"==typeof t}function o(t,e){var n=null==t?void 0:t[e];return c(n)?n:void 0}function r(t){return"number"==typeof t&&t>-1&&t%1==0&&v>=t}function a(t){return i(t)&&m.call(t)==u}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function c(t){return null==t?!1:a(t)?b.test(p.call(t)):n(t)&&l.test(t)}var s="[object Array]",u="[object Function]",l=/^\[object .+?Constructor\]$/,f=Object.prototype,p=Function.prototype.toString,d=f.hasOwnProperty,m=f.toString,b=RegExp("^"+p.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),h=o(Array,"isArray"),v=9007199254740991,g=h||function(t){return n(t)&&r(t.length)&&m.call(t)==s};e.exports=g},{}],11:[function(t,e){function n(t){return function(e){return null==e?void 0:e[t]}}function o(t){return null!=t&&a(v(t))}function r(t,e){return t="number"==typeof t||p.test(t)?+t:-1,e=null==e?h:e,t>-1&&t%1==0&&e>t}function a(t){return"number"==typeof t&&t>-1&&t%1==0&&h>=t}function i(t){for(var e=s(t),n=e.length,o=n&&t.length,i=!!o&&a(o)&&(f(t)||l(t)),c=-1,u=[];++c0;++ot.position?t.node.classList.add("aos-animate"):"undefined"!=typeof o&&("false"===o||!n&&"true"!==o)&&t.node.classList.remove("aos-animate")},o=function(t,e){var o=window.pageYOffset,r=window.innerHeight;[].forEach.call(t,function(t){n(t,r+o,e)})};e.exports=o},{}],19:[function(t,e){var n=t("./calculateOffset"),o=function(t,e){return[].forEach.call(t,function(t){t.node.classList.add("aos-init"),t.position=n(t.node,e.offset)}),t};e.exports=o},{"./calculateOffset":15}],20:[function(t,e){var n=function(){var t=["[data-aos]","[data-aos-offset]","[data-aos-easing]","[data-aos-delay]","[data-aos-anchor]","[data-aos-anchor-placement]","[data-aos-once]"],e=t.join(", "),n=document.querySelectorAll(e);[].forEach.call(n,function(e){var n=/^data\-(.+)$/,o=[];[].forEach.call(e.attributes,function(r){if(n.test(r.nodeName)){var a=r.nodeName.match(n)[0],i="["+a+"]",c=r.nodeName.match(n)[1];e.getAttribute(a).length&&-1!==t.indexOf(i)&&(e.setAttribute(c,r.nodeValue),o.push(a))}});for(var r=0;rn;n++){t=a[n],e=i.querySelectorAll(t.selector);for(var r,c=0,s=e.length;s>c;c++)r=e[c],r.ready||(r.ready=!0,t.fn.call(r,r))}}var r,a=[],i=window.document,c=window.MutationObserver||window.WebKitMutationObserver;e.exports=n},{}],23:[function(t,e){var n=function(t){for(var e=0,n=0;t&&!isNaN(t.offsetLeft)&&!isNaN(t.offsetTop);)e+=t.offsetLeft-("BODY"!=t.tagName?t.scrollLeft:0),n+=t.offsetTop-("BODY"!=t.tagName?t.scrollTop:0),t=t.offsetParent;return{top:n,left:e}};e.exports=n},{}]},{},[14]);
+//# sourceMappingURL=aos.js.map
diff --git a/template/index10/assets/js/common_js.js b/template/index10/assets/js/common_js.js
new file mode 100644
index 0000000..63581c6
--- /dev/null
+++ b/template/index10/assets/js/common_js.js
@@ -0,0 +1,23 @@
+$(function(){
+// 点击头部导航事件
+ $(".navBox .navBox_right .nav li a").on('click',function(){
+ $(this).addClass("active").parent("li").siblings().find("a").removeClass("active");
+ });
+ $(".navBox .navBox_right .btn_common").on('click',function(){
+ $(this).addClass("active").siblings(".btn_common").removeClass("active");
+ });
+// 点击右侧返回事件
+ $(".right_scrollTop").click(function() {
+ $("html,body").animate({scrollTop: 0}, 600);
+ });
+// 点击右侧事件
+ $(".right_fixed .right_common").hover(function(){
+ $(this).find(".rightShow_common").show().animate({marginRight: '0px'}, '1s');;
+ $(this).find(".rightPhoto_common").hide();
+ },function(){
+ $(this).find(".rightShow_common").hide();
+ $(this).find(".rightPhoto_common").show();
+ });
+
+
+})
diff --git a/template/index10/assets/js/index_main.js b/template/index10/assets/js/index_main.js
new file mode 100644
index 0000000..eca14fa
--- /dev/null
+++ b/template/index10/assets/js/index_main.js
@@ -0,0 +1,15 @@
+$(function(){
+// 锚点
+/* $(".navBox_right .nav #advantageBox").click(function() {
+ $("html, body").animate({
+ scrollTop: $("#advantage").offset().top }, {duration: 500,easing: "swing"});
+ return false;
+ });
+ $(".navBox_right .nav #contact_usBox").click(function() {
+ $("html, body").animate({
+ scrollTop: $("#contact_box").offset().top }, {duration: 500,easing: "swing"});
+ return false;
+ });*/
+
+
+})
diff --git a/template/index10/assets/js/xs.js b/template/index10/assets/js/xs.js
new file mode 100644
index 0000000..555bacb
--- /dev/null
+++ b/template/index10/assets/js/xs.js
@@ -0,0 +1,1555 @@
+(function(){
+ function b(t,u,s){
+ this.t = t;
+ this.u = u;
+ this.c = s.color;
+ this.m1();
+ };
+ b.prototype = {
+ m1:function(){
+ var t = this;
+ t.d = false;
+ if(t.t.css('position') != 'fixed' && t.t.css('position') != 'absolute'){
+ t.t.css('position','relative');
+ }
+ t.w = t.t.width();
+ t.h = t.t.height();
+ t.t.children().each(function(){
+ if($(this).css('position') != 'fixed' && $(this).css('position') != 'absolute'){
+ $(this).css({'position':'relative','z-index':'2'});
+ }else if(parseInt($(this).css('z-index'))<2){
+ $(this).css({'z-index':'2'});
+ }
+ });
+ if(t.t.css('background-color') != "rgba(0, 0, 0, 0)"){
+ t.bc = t.t.css('background-color');
+ }else{
+ t.bc = '#ffffff';
+ }
+ t.t.append(' ');
+ t.ctx = t.t.children('canvas')[0].getContext('2d');
+ if(t.c === false){
+ t.t.mouseenter(function(){
+ t.c = 'hsl('+(Math.random()*360)+',60%,80%)';
+ t.ctx.fillStyle = t.c;
+ });
+ }else{
+ t.ctx.fillStyle = t.c;
+ };
+ t.t.mousemove(function(e){
+ t.x = e.pageX - t.t.offset().left-parseInt(t.t.css('border-left-width'));
+ t.y = e.pageY - t.t.offset().top-parseInt(t.t.css('border-top-width'));
+ });
+ t.a = [];
+ t.t.mouseenter(function(e){
+ t.f = true;
+ t.x = e.pageX - t.t.offset().left-parseInt(t.t.css('border-left-width'));
+ t.y = e.pageY - t.t.offset().top-parseInt(t.t.css('border-top-width'));
+ t.n1();
+ });
+ t.t.mouseleave(function(){
+ t.f = false;
+ });
+ t.ctx.clearRect(0,0,t.w,t.h);
+ },
+ n1:function(){
+ var t=this;
+ if(t.u<=0){
+ console.warn('请注意,没有第'+t.u+'个效果!!');
+ return false;
+ }
+ if(t.u<=10){
+ if(t.u == 1){
+ if(t.a.length == 0){
+ t.x1(t);
+ }
+ }else if(t.u == 2){
+ if(t.a.length == 0){
+ for(var i = 0;i0){
+ requestAnimationFrame(function(){
+ t.x1(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ }
+ },
+ x2:function(t){
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.q = false;
+ t.ctx.fillStyle = t.c;
+ for(var i = 0;i0){
+ requestAnimationFrame(function(){
+ t.x3(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ }
+ },
+ x4:function(t){
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.ctx.fillStyle = t.c;
+ for(var i = 0;i0){
+ t.a[i].x -= Math.ceil(t.a[i].x/14);
+ }else if(t.a[i].x<0){
+ t.a[i].x -= Math.floor(t.a[i].x/14);
+ }
+ }else{
+ if(i%2){
+ t.a[i].x -= Math.floor((t.a[i].x-t.w)/14);
+ }else{
+ t.a[i].x -= Math.ceil((t.a[i].x+t.w)/14);
+ }
+ };
+ t.ctx.fillRect(t.a[i].x,t.a[i].y,t.a[i].w,t.a[i].h);
+ }
+ t.ctx.globalAlpha = 1;
+ if(t.f || t.a[0].x>-t.w){
+ requestAnimationFrame(function(){
+ t.x4(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.d = false;
+ }
+ },
+ x5:function(t){
+ if(t.f){
+ t.a.push({x:t.x,y:t.y,r:10,o:1,c:t.c,xv:(Math.random()-0.5)*5,yv:Math.random()*3+3});
+ }
+ t.ctx.clearRect(0,0,t.w,t.h);
+ for(var i = 0;i=t.h){
+ t.a.splice(i,1);
+ i--;
+ }
+ }
+ t.ctx.globalAlpha = 1;
+ if(t.f || t.a.length>0){
+ requestAnimationFrame(function(){
+ t.x5(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ }
+ },
+ x6:function(t){
+ if(t.f && Math.random()<.5){
+ t.a.push({x:t.w*Math.random(),y:t.h*Math.random(),r:1,o:1,c:t.c});
+ }
+ t.ctx.clearRect(0,0,t.w,t.h);
+ for(var i = 0;i0){
+ requestAnimationFrame(function(){
+ t.x6(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ }
+ },
+ x7:function(t){
+ if(t.f){
+ t.tan = Math.random()*2+1;
+ t.a.push({x:t.w*Math.random(),y:-t.tan,r:t.tan,c:t.c});
+ }
+ t.ctx.globalAlpha = 0.3;
+ t.ctx.fillStyle = t.bc;
+ t.ctx.fillRect(0,0,t.w,t.h);
+ for(var i = 0;it.w+t.a[i].r){
+ t.a[i].x=-t.a[i].r;
+ }
+ t.a[i].y+=t.a[i].r-0.7;
+ if(t.a[i].y>=t.h+t.a[i].r){
+ t.a.splice(i,1);
+ i--;
+ }
+ }
+ t.ctx.globalAlpha = 1;
+ if(t.f || t.a.length>0){
+ requestAnimationFrame(function(){
+ t.x7(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ }
+ },
+ x8:function(t){
+ if(t.f){
+ t.tan = Math.random()*2+1;
+ t.a.push({x:t.w*Math.random(),y:t.tan+t.h,r:t.tan,c:t.c});
+ }
+ t.ctx.globalAlpha = 0.3;
+ t.ctx.fillStyle = t.bc;
+ t.ctx.fillRect(0,0,t.w,t.h);
+ for(var i = 0;i0){
+ requestAnimationFrame(function(){
+ t.x8(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ }
+ },
+ x9:function(t){
+ if(t.f){
+ t.tan = Math.random()*3+1;
+ t.a.push({x:Math.random()*t.w,y:Math.random()*t.h,r:t.tan,c:t.c,o:1});
+ }
+ t.ctx.globalAlpha = 0.3;
+ t.ctx.fillStyle = t.bc;
+ t.ctx.fillRect(0,0,t.w,t.h);
+ for(var i = 0;it.a[i].r+t.h || t.a[i].y<-t.a[i].r || t.a[i].x<-t.a[i].r || t.a[i].x > t.a[i].r+t.w){
+ t.a.splice(i,1);
+ i--;
+ }*/
+ if(t.a[i].o<=0){
+ t.a.splice(i,1);
+ i--;
+ }
+ }
+ t.ctx.globalAlpha = 1;
+ if(t.f || t.a.length>0){
+ requestAnimationFrame(function(){
+ t.x9(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ }
+ },
+ x10:function(t){
+ if(t.f){
+ t.tan = Math.random()*3+1;
+ t.tan2 = Math.random()*Math.PI*2;
+ t.a.push({x:Math.random()*t.w,y:Math.random()*t.h,r:t.tan,c:t.c,t:t.tan2});
+ }
+ t.ctx.globalAlpha = 0.3;
+ t.ctx.fillStyle = t.bc;
+ t.ctx.fillRect(0,0,t.w,t.h);
+ for(var i = 0;it.a[i].r+t.h || t.a[i].y<-t.a[i].r || t.a[i].x<-t.a[i].r || t.a[i].x > t.a[i].r+t.w){
+ t.a.splice(i,1);
+ i--;
+ }
+ }
+ t.ctx.globalAlpha = 1;
+ if(t.f || t.a.length>0){
+ requestAnimationFrame(function(){
+ t.x10(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ }
+ },
+ x11:function(t){
+ if(t.f){
+ t.tan = Math.random()*3+1;
+ t.tan2 = Math.random()*Math.PI*2;
+ t.a.push({x:t.x,y:t.y,r:t.tan,c:t.c,t:t.tan2});
+ }
+ t.ctx.globalAlpha = 0.3;
+ t.ctx.fillStyle = t.bc;
+ t.ctx.fillRect(0,0,t.w,t.h);
+ for(var i = 0;it.a[i].r+t.h || t.a[i].y<-t.a[i].r || t.a[i].x<-t.a[i].r || t.a[i].x > t.a[i].r+t.w){
+ t.a.splice(i,1);
+ i--;
+ }
+ }
+ t.ctx.globalAlpha = 1;
+ if(t.f || t.a.length>0){
+ requestAnimationFrame(function(){
+ t.x11(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ }
+ },
+ x12:function(t){
+ if(t.f){
+ t.tan = Math.random()*3+4;
+ t.a.push({x:Math.random()*t.w,y:Math.random()*t.h,r:t.tan,c:t.c,v:0});
+ }
+ t.ctx.globalAlpha = 0.3;
+ t.ctx.fillStyle = t.bc;
+ t.ctx.fillRect(0,0,t.w,t.h);
+ for(var i = 0;it.a[i].r+t.h){
+ t.a.splice(i,1);
+ i--;
+ }
+ }
+ t.ctx.globalAlpha = 1;
+ if(t.f || t.a.length>0){
+ requestAnimationFrame(function(){
+ t.x12(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ }
+ },
+ x13:function(t){
+ t.ctx.globalAlpha = 0.3;
+ t.ctx.fillStyle = t.bc;
+ t.ctx.fillRect(0,0,t.w,t.h);
+ t.ctx.lineWidth = 5;
+ if(t.f){
+ t.o = 1;
+ }else{
+ t.o-=0.02;
+ }
+ t.ctx.globalAlpha = t.o;
+ t.ctx.save();
+ t.ctx.translate(t.w/2,t.h/2);
+ t.ctx.rotate(t.m*Math.PI/180);
+ t.ctx.translate(-t.w/2,-t.h/2);
+ for(var i = 0;i0){
+ requestAnimationFrame(function(){
+ t.x13(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.d = false;
+ }
+ },
+ x14:function(t){
+ t.ctx.globalAlpha = 1;
+ t.ctx.fillStyle = t.bc;
+ t.ctx.clearRect(0,0,t.w,t.h);
+ if(t.f){
+ t.a[0].y += t.zy;
+ t.a[1].y -= t.zy;
+ if(t.a[0].y >= 0){
+ t.a[0].y = 0;
+ }
+ if(t.a[1].y <= t.h-t.z){
+ t.a[1].y = t.h-t.z;
+ }
+ if(t.a[0].y == 0){
+ t.a[2].x+=t.zx;
+ t.a[3].x-=t.zx;
+ if(t.a[2].x >= -t.w/2){
+ t.a[2].x = -t.w/2;
+ }
+ if(t.a[3].x <= t.w/2){
+ t.a[3].x = t.w/2;
+ }
+ }
+ }else{
+ t.a[2].x-=t.zx;
+ t.a[3].x+=t.zx;
+ if(t.a[2].x <= -t.w){
+ t.a[2].x = -t.w;
+ }
+ if(t.a[3].x >= t.w){
+ t.a[3].x = t.w;
+ }
+ if(t.a[2].x == -t.w){
+ t.a[0].y -= t.zy;
+ t.a[1].y += t.zy;
+ if(t.a[0].y <= -t.z){
+ t.a[0].y = -t.z;
+ }
+ if(t.a[1].y >= t.h){
+ t.a[1].y = t.h;
+ }
+ }
+ }
+ t.ctx.fillStyle = t.c;
+ for(var i = 0;i0;i--){
+ t.a[i].y = t.a[i-1].y;
+ t.ctx.fillRect(t.a[i].x,t.a[i].y,t.a[i].w,t.a[i].h);
+ if(t.a[i].y < t.h){
+ t.q = true;
+ }
+ }
+ if(t.f || t.q){
+ requestAnimationFrame(function(){
+ t.x15(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.d = false;
+ }
+ },
+ x16:function(t){
+ t.ctx.globalAlpha = 1;
+ t.ctx.fillStyle = t.c;
+ t.ctx.clearRect(0,0,t.w,t.h);
+ if(t.f){
+ t.a[0].x-=t.zx;
+ t.a[0].y-=t.zy;
+ t.a[0].w+=t.zx;
+ t.a[0].h+=t.zy;
+ if(t.a[0].x<=0){
+ t.a[0].x=0;
+ }
+ if(t.a[0].y<=0){
+ t.a[0].y=0;
+ }
+ if(t.a[0].w>=t.w){
+ t.a[0].w=t.w;
+ }
+ if(t.a[0].h>t.h){
+ t.a[0].h=t.h;
+ }
+ }else{
+ if(t.a[0].x == 0 && t.a[0].y == 0){
+ if(t.a[0].w == t.w){
+ if(Math.random()<.5){
+ if(Math.random()<.5){
+ t.a[0].xj = 0;
+ t.a[0].yj = 0;
+ }else{
+ t.a[0].xj = t.zx;
+ t.a[0].yj = 0;
+ }
+ }else{
+ if(Math.random()<.5){
+ t.a[0].xj = 0;
+ t.a[0].yj = t.zy;
+ }else{
+ t.a[0].xj = t.zx;
+ t.a[0].yj = t.zy;
+ }
+ }
+ }else{
+ t.a[0].xj = 0;
+ t.a[0].yj = 0;
+ }
+ }else if(t.a[0].x == 0){
+ t.a[0].xj = 0;
+ t.a[0].yj = t.zy;
+ }else if(t.a[0].y == 0){
+ t.a[0].xj = t.zx;
+ t.a[0].yj = 0;
+ }else{
+ t.a[0].xj = t.zx;
+ t.a[0].yj = t.zy;
+ }
+ t.a[0].x+=t.a[0].xj;
+ t.a[0].y+=t.a[0].yj;
+ t.a[0].w-=t.zx;
+ t.a[0].h-=t.zy;
+ if(t.a[0].w <= 0){
+ t.a[0].w = 0;
+ }
+ if(t.a[0].h <= 0){
+ t.a[0].h = 0;
+ }
+ if(t.a[0].x >= t.w){
+ t.a[0].x = t.w;
+ }
+ if(t.a[0].y >= t.h){
+ t.a[0].y = t.h;
+ }
+ }
+ t.ctx.fillRect(t.a[0].x,t.a[0].y,t.a[0].w,t.a[0].h);
+ if(t.a[0].w == 0 && t.a[0].h == 0){
+ t.a=[];
+ }
+ if(t.f || t.a.length > 0){
+ requestAnimationFrame(function(){
+ t.x16(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.d = false;
+ }
+ },
+ x17:function(t){
+ t.ctx.globalAlpha = 1;
+ t.ctx.fillStyle = t.c;
+ t.ctx.clearRect(0,0,t.w,t.h);
+ if(t.f){
+ t.a1+=t.h/20;
+ t.a2-=t.h/20;
+ if(t.a1 >= 0){
+ t.a1 = 0;
+ }
+ if(t.a2 <=0 ){
+ t.a2 = 0;
+ }
+ }else{
+ t.a1-=t.h/20;
+ t.a2+=t.h/20;
+ if(t.a1 <= -t.h){
+ t.a1 = -t.h;
+ }
+ if(t.a2 >= t.h){
+ t.a2 = t.h;
+ }
+ }
+ t.ctx.beginPath();
+ t.ctx.moveTo(0,-t.h);
+ for(var i=0;i -t.h){
+ requestAnimationFrame(function(){
+ t.x17(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.d = false;
+ }
+ },
+ x18:function(t){
+ t.q = true;
+ t.ctx.globalAlpha = 0.3;
+ t.ctx.fillStyle = t.bc;
+ t.ctx.fillRect(0,0,t.w,t.h);
+ t.a[0]+=t.a[2];
+ t.a[1]+=t.a[3];
+ if(t.f){
+ if(t.a[0] <= t.a[4]){
+ t.a[0] = 2*t.a[4]-t.a[0];
+ t.a[2]*=-1;
+ }else if(t.a[0] >= t.w-t.a[4]){
+ t.a[0] = 2*(t.w-t.a[4])-t.a[0];
+ t.a[2]*=-1;
+ }
+ if(t.a[1] <= t.a[4]){
+ t.a[1] = 2*t.a[4]-t.a[1];
+ t.a[3]*=-1;
+ }else if(t.a[1] >= t.h-t.a[4]){
+ t.a[1] = 2*(t.h-t.a[4])-t.a[1];
+ t.a[3]*=-1;
+ }
+ }else{
+ if(t.a[0]<=-t.a[4] || t.a[0]>=t.a[4]+t.w || t.a[1]<=-t.a[4] || t.a[1]>=t.a[4]+t.h){
+ t.q = false;
+ t.a = [];
+ }
+ }
+ t.ctx.fillStyle = t.c;
+ t.ctx.globalAlpha = 1;
+ t.ctx.beginPath();
+ t.ctx.arc(t.a[0],t.a[1],t.a[4],0,Math.PI*2);
+ t.ctx.closePath();
+ t.ctx.fill();
+ if(t.f || t.q){
+ requestAnimationFrame(function(){
+ t.x18(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.d = false;
+ }
+ },
+ x19:function(t){
+ t.ctx.globalAlpha = 1;
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.ctx.fillStyle = t.c;
+ if(t.f){
+ t.a[0]+=t.zx;
+ if(t.a[0] >= 0){
+ t.a[0] = 0;
+ t.a[1]-=t.zy;
+ t.a[3]+=2*t.zy;
+ }
+ if(t.a[1] <= 0){
+ t.a[1] = 0;
+ }
+ if(t.a[3] >= t.h){
+ t.a[3] = t.h;
+ }
+ }else{
+ t.a[1]+=t.zy;
+ t.a[3]-=2*t.zy;
+ if(t.a[1] >= (t.h/2)-1){
+ t.a[1] = (t.h/2)-1;
+ }
+ if(t.a[3] <= 2){
+ t.a[3] = 2;
+ }
+ if(t.a[1] == (t.h/2)-1 && t.a[3] == 2){
+ t.a[0]-=t.zx;
+ }
+ if(t.a[0] <= -t.w){
+ t.a[0] = -t.w;
+ }
+ }
+ t.ctx.fillRect(t.a[0],t.a[1],t.a[2],t.a[3]);
+ if(t.f || t.a[0] > -t.w){
+ requestAnimationFrame(function(){
+ t.x19(t);
+ });
+ }else{
+ t.a = [];
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.d = false;
+ }
+ },
+ x20:function(t){
+ t.ctx.globalAlpha = 1;
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.ctx.fillStyle = t.c;
+ if(t.f){
+ t.a[2]+=t.z/20;
+ if(t.a[2] >= t.z){
+ t.a[2] = t.z;
+ }
+ }else{
+ t.a[2]-=t.z/20;
+ if(t.a[2] <= 1){
+ t.a[2] = 1;
+ }
+ }
+ t.ctx.beginPath();
+ t.ctx.arc(t.a[0],t.a[1],t.a[2],0,Math.PI*2);
+ t.ctx.fill();
+ if(t.f || t.a[2] > 1){
+ requestAnimationFrame(function(){
+ t.x20(t);
+ });
+ }else{
+ t.a = [];
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.d = false;
+ }
+ },
+ x21:function(t){
+ if(t.f && t.a.length < 50){
+ t.z = Math.ceil(Math.random()*4);
+ if(t.z == 1){
+ t.a.push({x:t.w/2,y:t.h/2,r:2,zx:2,zy:0});
+ }else if(t.z == 2){
+ t.a.push({x:t.w/2,y:t.h/2,r:2,zx:-2,zy:0});
+ }else if(t.z == 3){
+ t.a.push({x:t.w/2,y:t.h/2,r:2,zx:0,zy:2});
+ }else{
+ t.a.push({x:t.w/2,y:t.h/2,r:2,zx:0,zy:-2});
+ }
+ }
+ t.ctx.globalAlpha = 0.3;
+ t.ctx.fillStyle = t.bc;
+ t.ctx.fillRect(0,0,t.w,t.h);
+ t.ctx.fillStyle = t.c;
+ if(t.f){
+ t.o = 1;
+ }else{
+ t.o-=0.05;
+ if(t.o <= 0){
+ t.o = 0;
+ }
+ }
+ t.ctx.globalAlpha = t.o;
+ for(var i = 0;i= t.w || t.a[i].y <= -t.a[i].r || t.a[i].y >= t.h ){
+ t.a.splice(i,1);
+ i--;
+ }
+ }
+ if(t.f || t.o >0){
+ requestAnimationFrame(function(){
+ t.x21(t);
+ });
+ }else{
+ t.a = [];
+ t.ctx.clearRect(0,0,t.w,t.h);
+ }
+ },
+ x22:function(t){
+ t.ctx.globalAlpha = 1;
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.ctx.fillStyle = t.c;
+ if(t.f){
+ t.a[4]+=t.z;
+ t.a[0]-=t.zx/2;
+ t.a[1]-=t.zy/2;
+ t.a[2]+=t.zx;
+ t.a[3]+=t.zy;
+ if(t.a[4] >= 4*Math.PI){
+ t.a[4] = 4*Math.PI;
+ }
+ if(t.a[0] <=0 ){
+ t.a[0] = 0;
+ }
+ if(t.a[1] <= 0 ){
+ t.a[1] = 0;
+ }
+ if(t.a[2] >= t.w ){
+ t.a[2] = t.w;
+ }
+ if(t.a[3] >= t.h ){
+ t.a[3] = t.h;
+ }
+ }else{
+ t.a[4]-=t.z;
+ t.a[0]+=t.zx/2;
+ t.a[1]+=t.zy/2;
+ t.a[2]-=t.zx;
+ t.a[3]-=t.zy;
+ if(t.a[4] <= 0){
+ t.a[4] = 0
+ }
+ }
+ t.ctx.save();
+ t.ctx.translate(t.w/2,t.h/2);
+ t.ctx.rotate(t.a[4]);
+ t.ctx.translate(-t.w/2,-t.h/2);
+ t.ctx.fillRect(t.a[0],t.a[1],t.a[2],t.a[3]);
+ t.ctx.restore();
+ if(t.f || t.a[4] > 0){
+ requestAnimationFrame(function(){
+ t.x22(t);
+ });
+ }else{
+ t.a = [];
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.d = false;
+ }
+ },
+ x23:function(t){
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.q = false;
+ t.ctx.fillStyle = t.c;
+ for(var i = 0;i= -t.h/1.3 && t.a[i-1].y >= t.a[i].y + (t.h-t.h/1.3)) || t.a[i-1].y == 0){
+ t.a[i].y+=t.h/20;
+ }
+ if(t.a[i].y >= 0){
+ t.a[i].y = 0;
+ }
+ }else{
+ if(i == 0){
+ t.a[i].y-=t.h/20;
+ }else if(t.a[i-1].y <= t.a[i].y-(t.h-t.h/1.3) || t.a[i-1].y == -t.h){
+ t.a[i].y-=t.h/20;
+ }
+ if(t.a[i].y <= -t.h){
+ t.a[i].y = -t.h;
+ }
+ };
+ t.ctx.fillRect(t.a[i].x,t.a[i].y,t.a[i].w,t.a[i].h);
+ if(t.a[i].y > -t.h){
+ t.q = true;
+ }
+ }
+ t.ctx.globalAlpha = 1;
+ if(t.f || t.q){
+ requestAnimationFrame(function(){
+ t.x23(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.d = false;
+ }
+ },
+ x24:function(t){
+ t.ctx.globalAlpha = 0.3;
+ t.ctx.fillStyle = t.bc;
+ t.ctx.fillRect(0,0,t.w,t.h);
+ t.ctx.fillStyle = t.c;
+ for(var i = 0;i= 0){
+ t.z0 = 0;
+ }
+ if(t.z1 <= 0){
+ t.z1 = 0;
+ }
+ }else{
+ t.z0-=3;
+ t.z1+=3;
+ if(t.z0 <= -90){
+ t.z0 = -90;
+ }
+ if(t.z1 >= 90){
+ t.z1 = 90;
+ }
+ }
+ t.ctx.save();
+ t.ctx.translate(0,t.h/2);
+ t.ctx.rotate(t.z0 * Math.PI/180);
+ t.ctx.translate(0,-t.h/2);
+ t.ctx.fillRect(t.a[0].x,t.a[0].y,t.a[0].w,t.a[0].h);
+ t.ctx.restore();
+ t.ctx.save();
+ t.ctx.translate(0,t.h/2);
+ t.ctx.rotate(t.z1 * Math.PI/180);
+ t.ctx.translate(0,-t.h/2);
+ t.ctx.fillRect(t.a[1].x,t.a[1].y,t.a[1].w,t.a[1].h);
+ t.ctx.restore();
+ if(t.f || t.z1 < 90){
+ requestAnimationFrame(function(){
+ t.x25(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.d = false;
+ }
+ },
+ x26:function(t){
+ t.q = false;
+ t.ctx.globalAlpha = 1;
+ t.ctx.fillStyle = t.c;
+ t.ctx.clearRect(0,0,t.w,t.h);
+ if(t.f){
+ t.a[0].y-=t.z;
+ t.a[0].h+=2*t.z;
+ if(t.a[0].y <= 0){
+ t.a[0].y = 0;
+ }
+ if(t.a[0].h >= t.h){
+ t.a[0].h = t.h;
+ }
+ }else{
+ t.a[0].y+=t.z;
+ t.a[0].h-=2*t.z;
+ if(t.a[0].y >= t.h/2){
+ t.a[0].y = t.h/2;
+ }
+ if(t.a[0].h <= 0){
+ t.a[0].h = 0;
+ }
+ }
+ t.ctx.fillRect(t.a[0].x,t.a[0].y,t.a[0].w,t.a[0].h);
+ if(t.a[0].h > 0){
+ t.q = true;
+ }
+ for(var i = t.a.length-1;i>0;i--){
+ t.a[i].y = t.a[i-1].y;
+ t.a[i].h = t.a[i-1].h;
+ t.ctx.fillRect(t.a[i].x,t.a[i].y,t.a[i].w,t.a[i].h);
+ if(t.a[i].h > 0){
+ t.q = true;
+ }
+ }
+ if(t.f || t.q){
+ requestAnimationFrame(function(){
+ t.x26(t);
+ });
+ }else{
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.d = false;
+ }
+ },
+ x27:function(t){
+ t.ctx.globalAlpha = 0.3;
+ t.ctx.fillStyle = t.bc;
+ t.ctx.fillRect(0,0,t.w,t.h);
+ t.ctx.fillStyle = t.c;
+ t.a[0]-=t.zx*t.z;
+ t.a[1]-=t.zy*t.z;
+ t.a[2]+=2*t.zx*t.z;
+ t.a[3]+=2*t.zy*t.z;
+ if(t.a[2] <= 0 || t.a[2] >= t.w){
+ t.z*=-1;
+ }
+ if(t.f){
+ t.o = 1;
+ }else{
+ t.o-=0.02;
+ }
+ t.ctx.globalAlpha = t.o;
+ t.ctx.fillRect(t.a[0],t.a[1],t.a[2],t.a[3]);
+ if(t.f || t.o>0){
+ requestAnimationFrame(function(){
+ t.x27(t);
+ });
+ }else{
+ t.a = [];
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.d = false;
+ }
+ },
+ x28:function(t){
+ t.ctx.globalAlpha = 1;
+ t.ctx.fillStyle = t.c;
+ t.ctx.clearRect(0,0,t.w,t.h);
+ if(t.a1.length>0){
+ t.z = Math.floor(Math.random()*t.a1.length);
+ t.a[t.a1[t.z]].t = true;
+ t.a1.splice(t.z,1);
+ }
+ if(t.f){
+ t.o = 1;
+ }else{
+ t.o-=0.02;
+ }
+ t.ctx.globalAlpha = t.o;
+ for(var i=0;i= 0){
+ t.a[i].y = 0;
+ }
+ }
+ t.ctx.fillRect(t.a[i].x,t.a[i].y,t.a[i].w,t.a[i].h);
+ }
+ if(t.f || t.o>0){
+ requestAnimationFrame(function(){
+ t.x28(t);
+ });
+ }else{
+ t.a = [];
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.d = false;
+ }
+ },
+ x29:function(t){
+ t.ctx.globalAlpha = 1;
+ t.ctx.fillStyle = t.c;
+ t.ctx.clearRect(0,0,t.w,t.h);
+ if(t.f){
+ t.z = 1;
+ }else{
+ t.z = -1;
+ }
+ for(var i=0;i= 0){
+ t.a[i].y = 0;
+ }else if(t.a[i].y <= -t.h){
+ t.a[i].y = -t.h;
+ }
+ t.ctx.fillRect(t.a[i].x,t.a[i].y,t.a[i].w,t.a[i].h);
+ }
+ for(var j=0;j= 0){
+ t.a1[j].x = 0;
+ }else if(t.a1[j].x <= -t.w){
+ t.a1[j].x = -t.w;
+ }
+ t.ctx.fillRect(t.a1[j].x,t.a1[j].y,t.a1[j].w,t.a1[j].h);
+ }
+ if(t.f || (t.a[0].y > -t.h && t.a1[0].x > -t.w)){
+ requestAnimationFrame(function(){
+ t.x29(t);
+ });
+ }else{
+ t.a = [];
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.d = false;
+ }
+ },
+ x30:function(t){
+ t.ctx.globalAlpha = 1;
+ t.ctx.fillStyle = t.c;
+ t.ctx.clearRect(0,0,t.w,t.h);
+ if(t.f){
+ t.a[3]+=10;
+ }else{
+ t.a[3]-=10;
+ };
+ if(t.a[3] >= 270){
+ t.a[3] = 270;
+ }else if(t.a[3] <= -90){
+ t.a[3] = -90;
+ }
+ t.ctx.beginPath();
+ t.ctx.moveTo(t.a[0],t.a[1]);
+ t.ctx.arc(t.a[0],t.a[1],t.a[2],-90*Math.PI/180,t.a[3]*Math.PI/180);
+ t.ctx.closePath();
+ t.ctx.fill();
+ if(t.f || t.a[3] > -90){
+ requestAnimationFrame(function(){
+ t.x30(t);
+ });
+ }else{
+ t.a = [];
+ t.ctx.clearRect(0,0,t.w,t.h);
+ t.d = false;
+ }
+ }
+ };
+ var y = {
+ color:false,
+ };
+ $.fn.xs999 = function(u,g){
+ y = {
+ color:false,
+ }
+ $.extend(y,g);
+ $(this).each(function() {
+ new b($(this),u,y);
+ });
+ }
+})(jQuery);
+(function() {
+ var lastTime = 0;
+ var vendors = ['webkit', 'moz'];
+ for(var xx = 0; xx < vendors.length && !window.requestAnimationFrame; ++xx) {
+ window.requestAnimationFrame = window[vendors[xx] + 'RequestAnimationFrame'];
+ window.cancelAnimationFrame = window[vendors[xx] + 'CancelAnimationFrame'] ||
+ window[vendors[xx] + 'CancelRequestAnimationFrame'];
+ }
+
+ if (!window.requestAnimationFrame) {
+ window.requestAnimationFrame = function(callback, element) {
+ var currTime = new Date().getTime();
+ var timeToCall = Math.max(0, 16.7 - (currTime - lastTime));
+ var id = window.setTimeout(function() {
+ callback(currTime + timeToCall);
+ }, timeToCall);
+ lastTime = currTime + timeToCall;
+ return id;
+ };
+ }
+ if (!window.cancelAnimationFrame) {
+ window.cancelAnimationFrame = function(id) {
+ clearTimeout(id);
+ };
+ }
+}());
\ No newline at end of file
diff --git a/template/index10/assets/picture/57ede64c39bb4880.png b/template/index10/assets/picture/57ede64c39bb4880.png
new file mode 100644
index 0000000..20f7a52
Binary files /dev/null and b/template/index10/assets/picture/57ede64c39bb4880.png differ
diff --git a/template/index10/assets/picture/about_rightimg1.png b/template/index10/assets/picture/about_rightimg1.png
new file mode 100644
index 0000000..0825f73
Binary files /dev/null and b/template/index10/assets/picture/about_rightimg1.png differ
diff --git a/template/index10/assets/picture/about_rightimg2.png b/template/index10/assets/picture/about_rightimg2.png
new file mode 100644
index 0000000..3a92cf9
Binary files /dev/null and b/template/index10/assets/picture/about_rightimg2.png differ
diff --git a/template/index10/assets/picture/advantage_1.png b/template/index10/assets/picture/advantage_1.png
new file mode 100644
index 0000000..2c769cf
Binary files /dev/null and b/template/index10/assets/picture/advantage_1.png differ
diff --git a/template/index10/assets/picture/advantage_2.png b/template/index10/assets/picture/advantage_2.png
new file mode 100644
index 0000000..3cec273
Binary files /dev/null and b/template/index10/assets/picture/advantage_2.png differ
diff --git a/template/index10/assets/picture/advantage_3.png b/template/index10/assets/picture/advantage_3.png
new file mode 100644
index 0000000..19c3279
Binary files /dev/null and b/template/index10/assets/picture/advantage_3.png differ
diff --git a/template/index10/assets/picture/advantage_4.png b/template/index10/assets/picture/advantage_4.png
new file mode 100644
index 0000000..a864de6
Binary files /dev/null and b/template/index10/assets/picture/advantage_4.png differ
diff --git a/template/index10/assets/picture/banner_right.png b/template/index10/assets/picture/banner_right.png
new file mode 100644
index 0000000..c83fa78
Binary files /dev/null and b/template/index10/assets/picture/banner_right.png differ
diff --git a/template/index10/assets/picture/payment_1.png b/template/index10/assets/picture/payment_1.png
new file mode 100644
index 0000000..2db5c1c
Binary files /dev/null and b/template/index10/assets/picture/payment_1.png differ
diff --git a/template/index10/assets/picture/payment_2.png b/template/index10/assets/picture/payment_2.png
new file mode 100644
index 0000000..5067faf
Binary files /dev/null and b/template/index10/assets/picture/payment_2.png differ
diff --git a/template/index10/assets/picture/payment_3.png b/template/index10/assets/picture/payment_3.png
new file mode 100644
index 0000000..e33733b
Binary files /dev/null and b/template/index10/assets/picture/payment_3.png differ
diff --git a/template/index10/assets/picture/payment_4.png b/template/index10/assets/picture/payment_4.png
new file mode 100644
index 0000000..a52a7a2
Binary files /dev/null and b/template/index10/assets/picture/payment_4.png differ
diff --git a/template/index10/assets/picture/payment_5.png b/template/index10/assets/picture/payment_5.png
new file mode 100644
index 0000000..dd0e21f
Binary files /dev/null and b/template/index10/assets/picture/payment_5.png differ
diff --git a/template/index10/assets/picture/payment_6.png b/template/index10/assets/picture/payment_6.png
new file mode 100644
index 0000000..3392e38
Binary files /dev/null and b/template/index10/assets/picture/payment_6.png differ
diff --git a/template/index10/assets/picture/payment_7.png b/template/index10/assets/picture/payment_7.png
new file mode 100644
index 0000000..a0365b9
Binary files /dev/null and b/template/index10/assets/picture/payment_7.png differ
diff --git a/template/index10/assets/picture/process_1.png b/template/index10/assets/picture/process_1.png
new file mode 100644
index 0000000..3210686
Binary files /dev/null and b/template/index10/assets/picture/process_1.png differ
diff --git a/template/index10/assets/picture/process_2.png b/template/index10/assets/picture/process_2.png
new file mode 100644
index 0000000..8028e8b
Binary files /dev/null and b/template/index10/assets/picture/process_2.png differ
diff --git a/template/index10/assets/picture/process_3.png b/template/index10/assets/picture/process_3.png
new file mode 100644
index 0000000..74ec356
Binary files /dev/null and b/template/index10/assets/picture/process_3.png differ
diff --git a/template/index10/assets/picture/process_4.png b/template/index10/assets/picture/process_4.png
new file mode 100644
index 0000000..99c45a6
Binary files /dev/null and b/template/index10/assets/picture/process_4.png differ
diff --git a/template/index10/assets/picture/process_5.png b/template/index10/assets/picture/process_5.png
new file mode 100644
index 0000000..2bb9fbf
Binary files /dev/null and b/template/index10/assets/picture/process_5.png differ
diff --git a/template/index10/assets/picture/process_6.png b/template/index10/assets/picture/process_6.png
new file mode 100644
index 0000000..16860b0
Binary files /dev/null and b/template/index10/assets/picture/process_6.png differ
diff --git a/template/index10/index.php b/template/index10/index.php
new file mode 100644
index 0000000..e51e34f
--- /dev/null
+++ b/template/index10/index.php
@@ -0,0 +1,338 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
简介
+
+
+
成立于2018年,()。
+
平台主要服务于互联网和移动互联网领域,为网页游戏、手机游戏、阅读、音乐、交友、教育等移动应用提供综合计费营销服务,创新、诚信、灵和活多元,创新是企业发展的灵魂。
+
我们打破了传统聚合支付网站几年来一成不变的局面,建立了新一代聚合支付的行业方向,我们将引领聚合支付交易过程的个性化、自动化、工具化等。作为业内最善于创新的网站,力争成为行业的佼佼者。
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
成为商户仅需六步
+
+
让你轻松做生意
+
+
+
+ 注册商户
+ 在线自助注册
+
+
+
+ 绑定银行
+ 轻松设置商户信息
+
+
+
+ 接口对接
+ 全平台SDK支持
+
+
+
+ 自助下单
+ 会员支付一键直达
+
+
+
+ 全天客服
+ 7*24小时专业服务
+
+
+
+ 自动结算
+ 信誉无忧充分保障
+
+
+
+
+
+
+
+
+
+
+
+ 品牌优势
+
+ 全年365天持续运行,每天正常下款 根据行业的不同和交易量 实行T0/T1,D0/D1结算,请联系客服
+
+
+
+
+
+
+
+
+ 服务器安全
+ 采用群集服务器,防御高,
+ 故障率低,无论用户身在何方,
+ 均能获得流畅安全可靠的体验
+
+
+
+ 资金保障
+ 结算及时,资金秒到
+ 资金平均停留的时间不超过12小时,
+ 您的资金安全将得到充分的保障.
+
+
+
+ 持续更新
+ 系统持续更新,功能持续完善,
+ 让商户以及客户的体验不断接近
+ 完美是我们一直不变的追求.
+
+
+
+ 界面简约
+ 简约的UI交互体验可以
+ 给您一个体验度极高的商户后台,
+ 更好的使用体验.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/template/index10/preview.png b/template/index10/preview.png
new file mode 100644
index 0000000..af6faec
Binary files /dev/null and b/template/index10/preview.png differ
diff --git a/template/index2/assets/css/aos.css b/template/index2/assets/css/aos.css
new file mode 100644
index 0000000..f48e9ab
--- /dev/null
+++ b/template/index2/assets/css/aos.css
@@ -0,0 +1 @@
+[aos][aos][aos-easing=linear],body[aos-easing=linear] [aos]{-webkit-transition-timing-function:cubic-bezier(.25,.25,.75,.75);transition-timing-function:cubic-bezier(.25,.25,.75,.75)}[aos][aos][aos-easing=ease],body[aos-easing=ease] [aos]{-webkit-transition-timing-function:cubic-bezier(.25,.1,.25,1);transition-timing-function:cubic-bezier(.25,.1,.25,1)}[aos][aos][aos-easing=ease-in],body[aos-easing=ease-in] [aos]{-webkit-transition-timing-function:cubic-bezier(.42,0,1,1);transition-timing-function:cubic-bezier(.42,0,1,1)}[aos][aos][aos-easing=ease-out],body[aos-easing=ease-out] [aos]{-webkit-transition-timing-function:cubic-bezier(0,0,.58,1);transition-timing-function:cubic-bezier(0,0,.58,1)}[aos][aos][aos-easing=ease-in-out],body[aos-easing=ease-in-out] [aos]{-webkit-transition-timing-function:cubic-bezier(.42,0,.58,1);transition-timing-function:cubic-bezier(.42,0,.58,1)}[aos][aos][aos-easing=ease-in-back],body[aos-easing=ease-in-back] [aos]{-webkit-transition-timing-function:cubic-bezier(.6,-.28,.735,.045);transition-timing-function:cubic-bezier(.6,-.28,.735,.045)}[aos][aos][aos-easing=ease-out-back],body[aos-easing=ease-out-back] [aos]{-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.275);transition-timing-function:cubic-bezier(.175,.885,.32,1.275)}[aos][aos][aos-easing=ease-in-out-back],body[aos-easing=ease-in-out-back] [aos]{-webkit-transition-timing-function:cubic-bezier(.68,-.55,.265,1.55);transition-timing-function:cubic-bezier(.68,-.55,.265,1.55)}[aos][aos][aos-easing=ease-in-sine],body[aos-easing=ease-in-sine] [aos]{-webkit-transition-timing-function:cubic-bezier(.47,0,.745,.715);transition-timing-function:cubic-bezier(.47,0,.745,.715)}[aos][aos][aos-easing=ease-out-sine],body[aos-easing=ease-out-sine] [aos]{-webkit-transition-timing-function:cubic-bezier(.39,.575,.565,1);transition-timing-function:cubic-bezier(.39,.575,.565,1)}[aos][aos][aos-easing=ease-in-out-sine],body[aos-easing=ease-in-out-sine] [aos]{-webkit-transition-timing-function:cubic-bezier(.445,.05,.55,.95);transition-timing-function:cubic-bezier(.445,.05,.55,.95)}[aos][aos][aos-easing=ease-in-quad],[aos][aos][aos-easing=ease-in-cubic],[aos][aos][aos-easing=ease-in-quart],body[aos-easing=ease-in-quad] [aos],body[aos-easing=ease-in-cubic] [aos],body[aos-easing=ease-in-quart] [aos]{-webkit-transition-timing-function:cubic-bezier(.55,.085,.68,.53);transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[aos][aos][aos-easing=ease-out-quad],[aos][aos][aos-easing=ease-out-cubic],[aos][aos][aos-easing=ease-out-quart],body[aos-easing=ease-out-quad] [aos],body[aos-easing=ease-out-cubic] [aos],body[aos-easing=ease-out-quart] [aos]{-webkit-transition-timing-function:cubic-bezier(.25,.46,.45,.94);transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[aos][aos][aos-easing=ease-in-out-quad],[aos][aos][aos-easing=ease-in-out-cubic],[aos][aos][aos-easing=ease-in-out-quart],body[aos-easing=ease-in-out-quad] [aos],body[aos-easing=ease-in-out-cubic] [aos],body[aos-easing=ease-in-out-quart] [aos]{-webkit-transition-timing-function:cubic-bezier(.455,.03,.515,.955);transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[aos][aos][aos-duration='50'],body[aos-duration='50'] [aos]{-webkit-transition-duration:50ms;transition-duration:50ms}[aos][aos][aos-duration='100'],body[aos-duration='100'] [aos]{-webkit-transition-duration:.1s;transition-duration:.1s}[aos][aos][aos-duration='150'],body[aos-duration='150'] [aos]{-webkit-transition-duration:150ms;transition-duration:150ms}[aos][aos][aos-duration='200'],body[aos-duration='200'] [aos]{-webkit-transition-duration:.2s;transition-duration:.2s}[aos][aos][aos-duration='250'],body[aos-duration='250'] [aos]{-webkit-transition-duration:250ms;transition-duration:250ms}[aos][aos][aos-duration='300'],body[aos-duration='300'] [aos]{-webkit-transition-duration:.3s;transition-duration:.3s}[aos][aos][aos-duration='350'],body[aos-duration='350'] [aos]{-webkit-transition-duration:350ms;transition-duration:350ms}[aos][aos][aos-duration='400'],body[aos-duration='400'] [aos]{-webkit-transition-duration:.4s;transition-duration:.4s}[aos][aos][aos-duration='450'],body[aos-duration='450'] [aos]{-webkit-transition-duration:450ms;transition-duration:450ms}[aos][aos][aos-duration='500'],body[aos-duration='500'] [aos]{-webkit-transition-duration:.5s;transition-duration:.5s}[aos][aos][aos-duration='550'],body[aos-duration='550'] [aos]{-webkit-transition-duration:550ms;transition-duration:550ms}[aos][aos][aos-duration='600'],body[aos-duration='600'] [aos]{-webkit-transition-duration:.6s;transition-duration:.6s}[aos][aos][aos-duration='650'],body[aos-duration='650'] [aos]{-webkit-transition-duration:650ms;transition-duration:650ms}[aos][aos][aos-duration='700'],body[aos-duration='700'] [aos]{-webkit-transition-duration:.7s;transition-duration:.7s}[aos][aos][aos-duration='750'],body[aos-duration='750'] [aos]{-webkit-transition-duration:750ms;transition-duration:750ms}[aos][aos][aos-duration='800'],body[aos-duration='800'] [aos]{-webkit-transition-duration:.8s;transition-duration:.8s}[aos][aos][aos-duration='850'],body[aos-duration='850'] [aos]{-webkit-transition-duration:850ms;transition-duration:850ms}[aos][aos][aos-duration='900'],body[aos-duration='900'] [aos]{-webkit-transition-duration:.9s;transition-duration:.9s}[aos][aos][aos-duration='950'],body[aos-duration='950'] [aos]{-webkit-transition-duration:950ms;transition-duration:950ms}[aos][aos][aos-duration='1000'],body[aos-duration='1000'] [aos]{-webkit-transition-duration:1s;transition-duration:1s}[aos][aos][aos-duration='1050'],body[aos-duration='1050'] [aos]{-webkit-transition-duration:1.05s;transition-duration:1.05s}[aos][aos][aos-duration='1100'],body[aos-duration='1100'] [aos]{-webkit-transition-duration:1.1s;transition-duration:1.1s}[aos][aos][aos-duration='1150'],body[aos-duration='1150'] [aos]{-webkit-transition-duration:1.15s;transition-duration:1.15s}[aos][aos][aos-duration='1200'],body[aos-duration='1200'] [aos]{-webkit-transition-duration:1.2s;transition-duration:1.2s}[aos][aos][aos-duration='1250'],body[aos-duration='1250'] [aos]{-webkit-transition-duration:1.25s;transition-duration:1.25s}[aos][aos][aos-duration='1300'],body[aos-duration='1300'] [aos]{-webkit-transition-duration:1.3s;transition-duration:1.3s}[aos][aos][aos-duration='1350'],body[aos-duration='1350'] [aos]{-webkit-transition-duration:1.35s;transition-duration:1.35s}[aos][aos][aos-duration='1400'],body[aos-duration='1400'] [aos]{-webkit-transition-duration:1.4s;transition-duration:1.4s}[aos][aos][aos-duration='1450'],body[aos-duration='1450'] [aos]{-webkit-transition-duration:1.45s;transition-duration:1.45s}[aos][aos][aos-duration='1500'],body[aos-duration='1500'] [aos]{-webkit-transition-duration:1.5s;transition-duration:1.5s}[aos][aos][aos-duration='1550'],body[aos-duration='1550'] [aos]{-webkit-transition-duration:1.55s;transition-duration:1.55s}[aos][aos][aos-duration='1600'],body[aos-duration='1600'] [aos]{-webkit-transition-duration:1.6s;transition-duration:1.6s}[aos][aos][aos-duration='1650'],body[aos-duration='1650'] [aos]{-webkit-transition-duration:1.65s;transition-duration:1.65s}[aos][aos][aos-duration='1700'],body[aos-duration='1700'] [aos]{-webkit-transition-duration:1.7s;transition-duration:1.7s}[aos][aos][aos-duration='1750'],body[aos-duration='1750'] [aos]{-webkit-transition-duration:1.75s;transition-duration:1.75s}[aos][aos][aos-duration='1800'],body[aos-duration='1800'] [aos]{-webkit-transition-duration:1.8s;transition-duration:1.8s}[aos][aos][aos-duration='1850'],body[aos-duration='1850'] [aos]{-webkit-transition-duration:1.85s;transition-duration:1.85s}[aos][aos][aos-duration='1900'],body[aos-duration='1900'] [aos]{-webkit-transition-duration:1.9s;transition-duration:1.9s}[aos][aos][aos-duration='1950'],body[aos-duration='1950'] [aos]{-webkit-transition-duration:1.95s;transition-duration:1.95s}[aos][aos][aos-duration='2000'],body[aos-duration='2000'] [aos]{-webkit-transition-duration:2s;transition-duration:2s}[aos][aos][aos-duration='2050'],body[aos-duration='2050'] [aos]{-webkit-transition-duration:2.05s;transition-duration:2.05s}[aos][aos][aos-duration='2100'],body[aos-duration='2100'] [aos]{-webkit-transition-duration:2.1s;transition-duration:2.1s}[aos][aos][aos-duration='2150'],body[aos-duration='2150'] [aos]{-webkit-transition-duration:2.15s;transition-duration:2.15s}[aos][aos][aos-duration='2200'],body[aos-duration='2200'] [aos]{-webkit-transition-duration:2.2s;transition-duration:2.2s}[aos][aos][aos-duration='2250'],body[aos-duration='2250'] [aos]{-webkit-transition-duration:2.25s;transition-duration:2.25s}[aos][aos][aos-duration='2300'],body[aos-duration='2300'] [aos]{-webkit-transition-duration:2.3s;transition-duration:2.3s}[aos][aos][aos-duration='2350'],body[aos-duration='2350'] [aos]{-webkit-transition-duration:2.35s;transition-duration:2.35s}[aos][aos][aos-duration='2400'],body[aos-duration='2400'] [aos]{-webkit-transition-duration:2.4s;transition-duration:2.4s}[aos][aos][aos-duration='2450'],body[aos-duration='2450'] [aos]{-webkit-transition-duration:2.45s;transition-duration:2.45s}[aos][aos][aos-duration='2500'],body[aos-duration='2500'] [aos]{-webkit-transition-duration:2.5s;transition-duration:2.5s}[aos][aos][aos-duration='2550'],body[aos-duration='2550'] [aos]{-webkit-transition-duration:2.55s;transition-duration:2.55s}[aos][aos][aos-duration='2600'],body[aos-duration='2600'] [aos]{-webkit-transition-duration:2.6s;transition-duration:2.6s}[aos][aos][aos-duration='2650'],body[aos-duration='2650'] [aos]{-webkit-transition-duration:2.65s;transition-duration:2.65s}[aos][aos][aos-duration='2700'],body[aos-duration='2700'] [aos]{-webkit-transition-duration:2.7s;transition-duration:2.7s}[aos][aos][aos-duration='2750'],body[aos-duration='2750'] [aos]{-webkit-transition-duration:2.75s;transition-duration:2.75s}[aos][aos][aos-duration='2800'],body[aos-duration='2800'] [aos]{-webkit-transition-duration:2.8s;transition-duration:2.8s}[aos][aos][aos-duration='2850'],body[aos-duration='2850'] [aos]{-webkit-transition-duration:2.85s;transition-duration:2.85s}[aos][aos][aos-duration='2900'],body[aos-duration='2900'] [aos]{-webkit-transition-duration:2.9s;transition-duration:2.9s}[aos][aos][aos-duration='2950'],body[aos-duration='2950'] [aos]{-webkit-transition-duration:2.95s;transition-duration:2.95s}[aos][aos][aos-duration='3000'],body[aos-duration='3000'] [aos]{-webkit-transition-duration:3s;transition-duration:3s}[aos][aos][aos-delay='50'],body[aos-delay='50'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='50'].aos-animate,body[aos-delay='50'] [aos].aos-animate{-webkit-transition-delay:50ms;transition-delay:50ms}[aos][aos][aos-delay='100'],body[aos-delay='100'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='100'].aos-animate,body[aos-delay='100'] [aos].aos-animate{-webkit-transition-delay:.1s;transition-delay:.1s}[aos][aos][aos-delay='150'],body[aos-delay='150'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='150'].aos-animate,body[aos-delay='150'] [aos].aos-animate{-webkit-transition-delay:150ms;transition-delay:150ms}[aos][aos][aos-delay='200'],body[aos-delay='200'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='200'].aos-animate,body[aos-delay='200'] [aos].aos-animate{-webkit-transition-delay:.2s;transition-delay:.2s}[aos][aos][aos-delay='250'],body[aos-delay='250'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='250'].aos-animate,body[aos-delay='250'] [aos].aos-animate{-webkit-transition-delay:250ms;transition-delay:250ms}[aos][aos][aos-delay='300'],body[aos-delay='300'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='300'].aos-animate,body[aos-delay='300'] [aos].aos-animate{-webkit-transition-delay:.3s;transition-delay:.3s}[aos][aos][aos-delay='350'],body[aos-delay='350'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='350'].aos-animate,body[aos-delay='350'] [aos].aos-animate{-webkit-transition-delay:350ms;transition-delay:350ms}[aos][aos][aos-delay='400'],body[aos-delay='400'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='400'].aos-animate,body[aos-delay='400'] [aos].aos-animate{-webkit-transition-delay:.4s;transition-delay:.4s}[aos][aos][aos-delay='450'],body[aos-delay='450'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='450'].aos-animate,body[aos-delay='450'] [aos].aos-animate{-webkit-transition-delay:450ms;transition-delay:450ms}[aos][aos][aos-delay='500'],body[aos-delay='500'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='500'].aos-animate,body[aos-delay='500'] [aos].aos-animate{-webkit-transition-delay:.5s;transition-delay:.5s}[aos][aos][aos-delay='550'],body[aos-delay='550'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='550'].aos-animate,body[aos-delay='550'] [aos].aos-animate{-webkit-transition-delay:550ms;transition-delay:550ms}[aos][aos][aos-delay='600'],body[aos-delay='600'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='600'].aos-animate,body[aos-delay='600'] [aos].aos-animate{-webkit-transition-delay:.6s;transition-delay:.6s}[aos][aos][aos-delay='650'],body[aos-delay='650'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='650'].aos-animate,body[aos-delay='650'] [aos].aos-animate{-webkit-transition-delay:650ms;transition-delay:650ms}[aos][aos][aos-delay='700'],body[aos-delay='700'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='700'].aos-animate,body[aos-delay='700'] [aos].aos-animate{-webkit-transition-delay:.7s;transition-delay:.7s}[aos][aos][aos-delay='750'],body[aos-delay='750'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='750'].aos-animate,body[aos-delay='750'] [aos].aos-animate{-webkit-transition-delay:750ms;transition-delay:750ms}[aos][aos][aos-delay='800'],body[aos-delay='800'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='800'].aos-animate,body[aos-delay='800'] [aos].aos-animate{-webkit-transition-delay:.8s;transition-delay:.8s}[aos][aos][aos-delay='850'],body[aos-delay='850'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='850'].aos-animate,body[aos-delay='850'] [aos].aos-animate{-webkit-transition-delay:850ms;transition-delay:850ms}[aos][aos][aos-delay='900'],body[aos-delay='900'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='900'].aos-animate,body[aos-delay='900'] [aos].aos-animate{-webkit-transition-delay:.9s;transition-delay:.9s}[aos][aos][aos-delay='950'],body[aos-delay='950'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='950'].aos-animate,body[aos-delay='950'] [aos].aos-animate{-webkit-transition-delay:950ms;transition-delay:950ms}[aos][aos][aos-delay='1000'],body[aos-delay='1000'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1000'].aos-animate,body[aos-delay='1000'] [aos].aos-animate{-webkit-transition-delay:1s;transition-delay:1s}[aos][aos][aos-delay='1050'],body[aos-delay='1050'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1050'].aos-animate,body[aos-delay='1050'] [aos].aos-animate{-webkit-transition-delay:1.05s;transition-delay:1.05s}[aos][aos][aos-delay='1100'],body[aos-delay='1100'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1100'].aos-animate,body[aos-delay='1100'] [aos].aos-animate{-webkit-transition-delay:1.1s;transition-delay:1.1s}[aos][aos][aos-delay='1150'],body[aos-delay='1150'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1150'].aos-animate,body[aos-delay='1150'] [aos].aos-animate{-webkit-transition-delay:1.15s;transition-delay:1.15s}[aos][aos][aos-delay='1200'],body[aos-delay='1200'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1200'].aos-animate,body[aos-delay='1200'] [aos].aos-animate{-webkit-transition-delay:1.2s;transition-delay:1.2s}[aos][aos][aos-delay='1250'],body[aos-delay='1250'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1250'].aos-animate,body[aos-delay='1250'] [aos].aos-animate{-webkit-transition-delay:1.25s;transition-delay:1.25s}[aos][aos][aos-delay='1300'],body[aos-delay='1300'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1300'].aos-animate,body[aos-delay='1300'] [aos].aos-animate{-webkit-transition-delay:1.3s;transition-delay:1.3s}[aos][aos][aos-delay='1350'],body[aos-delay='1350'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1350'].aos-animate,body[aos-delay='1350'] [aos].aos-animate{-webkit-transition-delay:1.35s;transition-delay:1.35s}[aos][aos][aos-delay='1400'],body[aos-delay='1400'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1400'].aos-animate,body[aos-delay='1400'] [aos].aos-animate{-webkit-transition-delay:1.4s;transition-delay:1.4s}[aos][aos][aos-delay='1450'],body[aos-delay='1450'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1450'].aos-animate,body[aos-delay='1450'] [aos].aos-animate{-webkit-transition-delay:1.45s;transition-delay:1.45s}[aos][aos][aos-delay='1500'],body[aos-delay='1500'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1500'].aos-animate,body[aos-delay='1500'] [aos].aos-animate{-webkit-transition-delay:1.5s;transition-delay:1.5s}[aos][aos][aos-delay='1550'],body[aos-delay='1550'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1550'].aos-animate,body[aos-delay='1550'] [aos].aos-animate{-webkit-transition-delay:1.55s;transition-delay:1.55s}[aos][aos][aos-delay='1600'],body[aos-delay='1600'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1600'].aos-animate,body[aos-delay='1600'] [aos].aos-animate{-webkit-transition-delay:1.6s;transition-delay:1.6s}[aos][aos][aos-delay='1650'],body[aos-delay='1650'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1650'].aos-animate,body[aos-delay='1650'] [aos].aos-animate{-webkit-transition-delay:1.65s;transition-delay:1.65s}[aos][aos][aos-delay='1700'],body[aos-delay='1700'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1700'].aos-animate,body[aos-delay='1700'] [aos].aos-animate{-webkit-transition-delay:1.7s;transition-delay:1.7s}[aos][aos][aos-delay='1750'],body[aos-delay='1750'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1750'].aos-animate,body[aos-delay='1750'] [aos].aos-animate{-webkit-transition-delay:1.75s;transition-delay:1.75s}[aos][aos][aos-delay='1800'],body[aos-delay='1800'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1800'].aos-animate,body[aos-delay='1800'] [aos].aos-animate{-webkit-transition-delay:1.8s;transition-delay:1.8s}[aos][aos][aos-delay='1850'],body[aos-delay='1850'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1850'].aos-animate,body[aos-delay='1850'] [aos].aos-animate{-webkit-transition-delay:1.85s;transition-delay:1.85s}[aos][aos][aos-delay='1900'],body[aos-delay='1900'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1900'].aos-animate,body[aos-delay='1900'] [aos].aos-animate{-webkit-transition-delay:1.9s;transition-delay:1.9s}[aos][aos][aos-delay='1950'],body[aos-delay='1950'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1950'].aos-animate,body[aos-delay='1950'] [aos].aos-animate{-webkit-transition-delay:1.95s;transition-delay:1.95s}[aos][aos][aos-delay='2000'],body[aos-delay='2000'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2000'].aos-animate,body[aos-delay='2000'] [aos].aos-animate{-webkit-transition-delay:2s;transition-delay:2s}[aos][aos][aos-delay='2050'],body[aos-delay='2050'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2050'].aos-animate,body[aos-delay='2050'] [aos].aos-animate{-webkit-transition-delay:2.05s;transition-delay:2.05s}[aos][aos][aos-delay='2100'],body[aos-delay='2100'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2100'].aos-animate,body[aos-delay='2100'] [aos].aos-animate{-webkit-transition-delay:2.1s;transition-delay:2.1s}[aos][aos][aos-delay='2150'],body[aos-delay='2150'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2150'].aos-animate,body[aos-delay='2150'] [aos].aos-animate{-webkit-transition-delay:2.15s;transition-delay:2.15s}[aos][aos][aos-delay='2200'],body[aos-delay='2200'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2200'].aos-animate,body[aos-delay='2200'] [aos].aos-animate{-webkit-transition-delay:2.2s;transition-delay:2.2s}[aos][aos][aos-delay='2250'],body[aos-delay='2250'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2250'].aos-animate,body[aos-delay='2250'] [aos].aos-animate{-webkit-transition-delay:2.25s;transition-delay:2.25s}[aos][aos][aos-delay='2300'],body[aos-delay='2300'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2300'].aos-animate,body[aos-delay='2300'] [aos].aos-animate{-webkit-transition-delay:2.3s;transition-delay:2.3s}[aos][aos][aos-delay='2350'],body[aos-delay='2350'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2350'].aos-animate,body[aos-delay='2350'] [aos].aos-animate{-webkit-transition-delay:2.35s;transition-delay:2.35s}[aos][aos][aos-delay='2400'],body[aos-delay='2400'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2400'].aos-animate,body[aos-delay='2400'] [aos].aos-animate{-webkit-transition-delay:2.4s;transition-delay:2.4s}[aos][aos][aos-delay='2450'],body[aos-delay='2450'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2450'].aos-animate,body[aos-delay='2450'] [aos].aos-animate{-webkit-transition-delay:2.45s;transition-delay:2.45s}[aos][aos][aos-delay='2500'],body[aos-delay='2500'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2500'].aos-animate,body[aos-delay='2500'] [aos].aos-animate{-webkit-transition-delay:2.5s;transition-delay:2.5s}[aos][aos][aos-delay='2550'],body[aos-delay='2550'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2550'].aos-animate,body[aos-delay='2550'] [aos].aos-animate{-webkit-transition-delay:2.55s;transition-delay:2.55s}[aos][aos][aos-delay='2600'],body[aos-delay='2600'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2600'].aos-animate,body[aos-delay='2600'] [aos].aos-animate{-webkit-transition-delay:2.6s;transition-delay:2.6s}[aos][aos][aos-delay='2650'],body[aos-delay='2650'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2650'].aos-animate,body[aos-delay='2650'] [aos].aos-animate{-webkit-transition-delay:2.65s;transition-delay:2.65s}[aos][aos][aos-delay='2700'],body[aos-delay='2700'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2700'].aos-animate,body[aos-delay='2700'] [aos].aos-animate{-webkit-transition-delay:2.7s;transition-delay:2.7s}[aos][aos][aos-delay='2750'],body[aos-delay='2750'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2750'].aos-animate,body[aos-delay='2750'] [aos].aos-animate{-webkit-transition-delay:2.75s;transition-delay:2.75s}[aos][aos][aos-delay='2800'],body[aos-delay='2800'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2800'].aos-animate,body[aos-delay='2800'] [aos].aos-animate{-webkit-transition-delay:2.8s;transition-delay:2.8s}[aos][aos][aos-delay='2850'],body[aos-delay='2850'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2850'].aos-animate,body[aos-delay='2850'] [aos].aos-animate{-webkit-transition-delay:2.85s;transition-delay:2.85s}[aos][aos][aos-delay='2900'],body[aos-delay='2900'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2900'].aos-animate,body[aos-delay='2900'] [aos].aos-animate{-webkit-transition-delay:2.9s;transition-delay:2.9s}[aos][aos][aos-delay='2950'],body[aos-delay='2950'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2950'].aos-animate,body[aos-delay='2950'] [aos].aos-animate{-webkit-transition-delay:2.95s;transition-delay:2.95s}[aos][aos][aos-delay='3000'],body[aos-delay='3000'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='3000'].aos-animate,body[aos-delay='3000'] [aos].aos-animate{-webkit-transition-delay:3s;transition-delay:3s}[aos^=fade][aos^=fade]{opacity:0;-webkit-transition-property:all;transition-property:all}[aos^=fade][aos^=fade].aos-animate{opacity:1}[aos=fade-up]{-webkit-transform:translate(0,100px);-ms-transform:translate(0,100px);transform:translate(0,100px)}[aos=fade-up].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-down]{-webkit-transform:translate(0,-100px);-ms-transform:translate(0,-100px);transform:translate(0,-100px)}[aos=fade-down].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-right]{-webkit-transform:translate(-100px,0);-ms-transform:translate(-100px,0);transform:translate(-100px,0)}[aos=fade-right].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-left]{-webkit-transform:translate(100px,0);-ms-transform:translate(100px,0);transform:translate(100px,0)}[aos=fade-left].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-up-right]{-webkit-transform:translate(-100px,100px);-ms-transform:translate(-100px,100px);transform:translate(-100px,100px)}[aos=fade-up-right].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-up-left]{-webkit-transform:translate(100px,100px);-ms-transform:translate(100px,100px);transform:translate(100px,100px)}[aos=fade-up-left].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-down-right]{-webkit-transform:translate(-100px,-100px);-ms-transform:translate(-100px,-100px);transform:translate(-100px,-100px)}[aos=fade-down-right].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-down-left]{-webkit-transform:translate(100px,-100px);-ms-transform:translate(100px,-100px);transform:translate(100px,-100px)}[aos=fade-down-left].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos^=zoom][aos^=zoom]{opacity:0;-webkit-transition-property:all;transition-property:all}[aos^=zoom][aos^=zoom].aos-animate{opacity:1}[aos=zoom-in]{-webkit-transform:scale(.6);-ms-transform:scale(.6);transform:scale(.6)}[aos=zoom-in].aos-animate{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}[aos=zoom-in-up]{-webkit-transform:translate(0,100px) scale(.6);-ms-transform:translate(0,100px) scale(.6);transform:translate(0,100px) scale(.6)}[aos=zoom-in-up].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-in-down]{-webkit-transform:translate(0,-100px) scale(.6);-ms-transform:translate(0,-100px) scale(.6);transform:translate(0,-100px) scale(.6)}[aos=zoom-in-down].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-in-right]{-webkit-transform:translate(-100px,0) scale(.6);-ms-transform:translate(-100px,0) scale(.6);transform:translate(-100px,0) scale(.6)}[aos=zoom-in-right].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-in-left]{-webkit-transform:translate(100px,0) scale(.6);-ms-transform:translate(100px,0) scale(.6);transform:translate(100px,0) scale(.6)}[aos=zoom-in-left].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-out]{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}[aos=zoom-out].aos-animate{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}[aos=zoom-out-up]{-webkit-transform:translate(0,100px) scale(1.2);-ms-transform:translate(0,100px) scale(1.2);transform:translate(0,100px) scale(1.2)}[aos=zoom-out-up].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-out-down]{-webkit-transform:translate(0,-100px) scale(1.2);-ms-transform:translate(0,-100px) scale(1.2);transform:translate(0,-100px) scale(1.2)}[aos=zoom-out-down].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-out-right]{-webkit-transform:translate(-100px,0) scale(1.2);-ms-transform:translate(-100px,0) scale(1.2);transform:translate(-100px,0) scale(1.2)}[aos=zoom-out-right].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-out-left]{-webkit-transform:translate(100px,0) scale(1.2);-ms-transform:translate(100px,0) scale(1.2);transform:translate(100px,0) scale(1.2)}[aos=zoom-out-left].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=slide-up]{-webkit-transform:translate(0,100%);-ms-transform:translate(0,100%);transform:translate(0,100%)}[aos=slide-up].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=slide-down]{-webkit-transform:translate(0,-100%);-ms-transform:translate(0,-100%);transform:translate(0,-100%)}[aos=slide-down].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=slide-right]{-webkit-transform:translate(-100%,0);-ms-transform:translate(-100%,0);transform:translate(-100%,0)}[aos=slide-right].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=slide-left]{-webkit-transform:translate(100%,0);-ms-transform:translate(100%,0);transform:translate(100%,0)}[aos=slide-left].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos^=flip]{-webkit-backface-visibility:hidden;backface-visibility:hidden}[aos=flip-left]{-webkit-transform:perspective(2500px) rotateY(-100deg);transform:perspective(2500px) rotateY(-100deg)}[aos=flip-left].aos-animate{-webkit-transform:perspective(2500px) rotateY(0);transform:perspective(2500px) rotateY(0)}[aos=flip-right]{-webkit-transform:perspective(2500px) rotateY(100deg);transform:perspective(2500px) rotateY(100deg)}[aos=flip-right].aos-animate{-webkit-transform:perspective(2500px) rotateY(0);transform:perspective(2500px) rotateY(0)}[aos=flip-up]{-webkit-transform:perspective(2500px) rotateX(-100deg);transform:perspective(2500px) rotateX(-100deg)}[aos=flip-up].aos-animate{-webkit-transform:perspective(2500px) rotateX(0);transform:perspective(2500px) rotateX(0)}[aos=flip-down]{-webkit-transform:perspective(2500px) rotateX(100deg);transform:perspective(2500px) rotateX(100deg)}[aos=flip-down].aos-animate{-webkit-transform:perspective(2500px) rotateX(0);transform:perspective(2500px) rotateX(0)}
\ No newline at end of file
diff --git a/template/index2/assets/css/index1200.css b/template/index2/assets/css/index1200.css
new file mode 100644
index 0000000..71f6114
--- /dev/null
+++ b/template/index2/assets/css/index1200.css
@@ -0,0 +1,185 @@
+@media (min-width:1001px){
+/*banner*/
+.banner{ width:1200px; margin:0 auto; height:490px}
+.banNr{ padding-top:156px; padding-left:15px;}
+.banNrT{ font-size:38px; line-height:50px;margin-bottom:10px;}
+.banNr p{ font-size:18px; line-height:33px;}
+.ButAN{font-size:16px; width:196px; line-height:44px; height:44px;border-radius:22px; margin-top:40px;}
+/*寄售服务项目*/
+.Title P{ font-size:28px; margin-top:120px; margin-bottom:5px;}
+.Title span{ font-size:12px; margin-bottom:15px;line-height:20px}
+.Title i{ width:48px; height:4px; border-radius:2px;}
+.IndIte{ width:1200px; margin:65px auto 30px;}
+.IndIteK{ height:158px; width:299px;border-left:1px solid #dedee0;}
+.IndIteK:nth-child(1){ border-left:none;}
+.IndIteI{ padding-top:34px; height:52px;}
+.IndIteI img{ height:52px;}
+.IndIteK p{ font-size:16px; margin-top:20px;}
+/*支付渠道*/
+.IndPay{ width:976px; margin:66px auto 0}
+.IndPayK{ width:272px; height:40px; padding:21px 0; border-radius:8px;margin-left:40px; margin-bottom:35px; box-shadow:0 5px 10px rgba(150,192,252,0.4);}
+.IndPayK img{ height:40px;}
+/*平台功能*/
+.IndPlaK{ width:960px; margin:45px auto 0;}
+.IndPlaL{ width:495px; padding-top:45px;}
+.IndPlaLT{ font-size:20px;}
+.IndPlaLn{ margin-top:40px;}
+.IndPlaLz{ width:58px; height:58px; line-height:58px;font-size:30px;}
+.IndPlaLr{ width:400px; line-height:25px; margin-top:5px;}
+.IndPlaLr p{ font-size:18px;}
+.IndPlaLr span{ font-size:14px;}
+.IndPlar{ width:463px;}
+.IndPlar img{ width:463px;}
+.IndPlaS{ width:1200px;top:-60px;padding-bottom:30px;}
+.IndPlaC{ width:226px; margin:0 12px 24px; padding:50px 25px 0; height:200px; border-radius:9px;}
+.IndPlaI{ height:30px;}
+.IndPlaKt{ font-size:20px;line-height:30px; padding:20px 0 15px;}
+.IndPlaC p{font-size:16px; line-height:26px;}
+a.ButPla{font-size:18px;width:260px; height:54px; line-height:54px; border-radius:33px; border:6px solid #afd3fc; margin:30px auto;}
+a.ButPla:hover{ border:6px solid #fbccb7}
+/*核心优势*/
+.IndCha{ width:1000px; margin:80px auto 0;}
+.IndChaZ{ width:380px; padding-left:80px; padding-top:50px}
+.IndChaZt{ font-size:20px; margin-bottom:15px;}
+.IndChaZ p{ font-size:18px;line-height:34px;}
+.IndChaP{ width:432px;}
+/**************登录***************/
+.LoginK{ background-image:url(../images/loginb.jpg); background-attachment:fixed; background-repeat:no-repeat; background-position: bottom center; color:#333; min-height:100%;}
+.Login{ width:466px; padding-bottom:35px; background:#FFF; margin:15% auto 0; border-radius:6px;}
+.register{ width:466px; padding-bottom:35px; background:#FFF; margin:7% auto 0; border-radius:6px;}
+.register .Logreg{ margin:0 auto;}
+
+.LogTit{ text-align:center; font-size:22px; line-height:35px; padding-top:30px; font-weight:600;}
+.logK{ width:332px; margin:0 auto;height:65px;}
+.logIc{ width:43px; height:43px; display:block; background-repeat:no-repeat; background-position:center; background-color:#2f80f0;}
+.logIn{height:43px; line-height:43px; background:none; border:none; width:259px; padding:0 15px; font-size:14px;background:#eff2f5;}
+.logNr{ line-height:23px; height:23px; font-size:14px; width:332px;margin:0 auto 15px;}
+.logNr a{ color:#999;}
+.logNr a:hover{ color:#2f80f0;}
+.Login .Logreg{ margin:0 auto;}
+.logK span{ line-height:22px; color:#e60012; font-size:14px; display:block; padding-left:43px;}
+/***************注册***************/
+.Regtit{ font-size:14px; text-align:center; margin-bottom:16px;}
+.logInw{ width:148px;}
+.yzm{ display:block; width:100px;}
+.Set_but{ border:none; display:block; width:100px; line-height:43px; height:43px; text-align: center; color:#FFF; display:block;}
+.Regf{ text-align:center; font-size:14px; color:#999; padding-top:10px;}
+.Regf a{ color:#3087f2;}
+/*弹出*/
+.TcK{top:10%;left:50%; margin-left:-400px;width:700px;border-radius:8px; padding:0 50px 30px; max-height:700px; overflow:auto;}
+.TcRegT{ font-size:24px; color:#333; text-align:center; font-weight:600; border-bottom:1px solid #ccc; line-height:80px; height:80px;}
+.TcRegN{ font-size:16px; color:#333; line-height:28px; margin-top:15px;}
+.TcRegP{ margin-bottom:10px;}
+.TcRegN a{ color:#0e6bf9; display:block;}
+A.TcRegA{ width:200px; height:42px; line-height:42px; text-align:center; border-radius:21px; font-size:18px; display:block; margin:20px auto 0;}
+
+/**************登录错误****************/
+.Erro{ height:559px; background:url(../images/erro.jpg) no-repeat center top; margin-top:82px;}
+.ErroK{ width:600px; padding-left:600px; padding-top:210px; color:#FFF; text-align:center; margin:0 auto;}
+.ErroT{font-size:40px; font-weight:600; line-height:50px;}
+a.Errlink{ font-size:18px; line-height:20px; margin-top:15px; color:#FFF; display:block;}
+a.Errlink span{ color:#febc67;}
+/**************联系我们****************/
+.ContK{ background:url(../images/contb.jpg) no-repeat center 82px; padding-top:82px;}
+.ContTit{ width:1150px; margin:0 auto; padding-top:100px; height:200px; color:#FFF;}
+.ContTid{ font-size:40px; font-weight:600; line-height:50px;}
+.ContTid span{ font-size:30px; padding-left:15px; margin-bottom:10px; display:inline-block;}
+.ContTit p{ font-size:18px; line-height:20px;}
+.ContD{ width:1090px; background:#FFF; margin:0 auto; padding:0 30px 50px; border-radius:10px; position:relative;}
+.ContDK{ padding-left:40px; padding-top:100px; width:320px; height:170px;font-size:18px; float:left;}
+.ContDp{ padding-left:55px; background-repeat:no-repeat; background-position:left center; line-height:28px; margin-bottom:10px;}
+.ContDp1{ background-image:url(../images/fticon01.png)}
+.ContDp2{ background-image:url(../images/fticon02.png)}
+.ContDp span{display:block;}
+.ContDp p{color:#3e86ee; font-size:24px; font-weight:600;}
+.aboutDp p{color:#000000; font-size:18px; }
+.ContM{ width:205px; height:315px;text-align:center; background:url(../images/cont01.png) no-repeat top center; position:absolute; right:144px; top:-45px;}
+.ContM img{ padding-top:63px; width:166px;}
+.ContM p{ font-size:14px; line-height:30px;}
+.ContMat{ width:1054px; padding:8px; box-shadow:0 0 15px rgba(197,215,255,0.55); margin:0 auto;}
+/***************帮助中心**************/
+.HelpK{background-image:url(../images/helpb.png); background-repeat:no-repeat; background-position:right bottom; color:#333; min-height:100%;}
+.Help{ width:1200px; margin:40px auto; padding-top:82px;}
+.HelpT{ font-weight:600; text-align:center; font-size:34px; line-height:50px; color:#333;}
+.HelpD{display:flex;flex-wrap: wrap; margin-top:15px;}
+.HelpN{ width:600px;}
+.HelpNs{background:#FFF; margin:26px 25px 0; width:500px; padding:13px 25px; border-radius:8px; box-shadow:0 0 10px rgba(197,215,255,0.55);cursor: pointer;}
+.HelpQ{ padding-left:50px; position:relative;line-height:32px; font-size:18px; font-weight:600;}
+.HelpQ i,.HelpA i{ width:32px; height:32px; line-height:32px; font-style:normal; font-size:20px; text-align:center; font-weight:bold; position:absolute; top:0; left:0; border-radius:50%; display:block;}
+.HelpA i{FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#ff7539,endColorStr=#ff2156);background: -ms-linear-gradient(left, #ff7539, #ff2156);background:-moz-linear-gradient(left,#ff7539,#ff2156);background:-webkit-gradient(linear, 0% 100%, 0% 0%,from(#ff7539), to(#ff2156));background:-webkit-gradient(linear, 0% 100%, 0% 0%, from(#ff7539), to(#ff2156));background: -webkit-linear-gradient(left, #ff7539, #ff2156);background:-o-linear-gradient(left, #ff7539, #ff2156);box-shadow:0 5px 10px rgba(255,45,82,0.45);color:#FFF;}
+.HelpA{padding-left:50px; position:relative;font-size:14px; line-height:23px; min-height:32px; margin-top:15px; display:none;}
+.FHelp{ font-size:16px; text-align:center; color:#666; line-height:30px; padding:15px 0;}
+/******************查询订单****************/
+.QuerB{background-image:url(../images/querb.png);background-repeat:no-repeat;background-position:center bottom;color:#333;min-height:100%;}
+.QueT{ text-align:center; padding-top:117px;}
+.QueT a{ color:#333; font-size:24px; display:inline-block; margin:0 35px; line-height:60px;}
+.QueT a i{ display:block; width:36px; height:6px; border-radius:3px; margin:0 auto;}
+.QueTao{ font-weight:600;}
+.QueTao i{ background:#333;}
+.QueD{ display:none;}
+
+.QueT1{ width:1026px; margin:35px auto;}
+.QueT4{ width:1026px; margin:35px auto;}
+/**/
+.search{ background:#FFF; border:2px solid #9ec2f6; border-radius:8px; height:63px; overflow:hidden;}
+.searI{ line-height:63px; height:63px; padding-left:40px; width:770px; background:none; border:none; font-size:18px; color:#666}
+a.searA{ color:#FFF; font-size:18px; display:block; text-align:center; width:160px;line-height:63px; height:63px; padding-right:20px;}
+a.searA span{background:url(../images/search.png) no-repeat left center; padding-left:55px; display:inline-block;}
+.QueKO{ background:#fff; overflow:hidden; margin-top:35px; padding-bottom:35px; border-radius:8px;}
+.QueKOt{ margin-bottom:23px; line-height:61px; height:61px; padding:0 35px; color:#FFF;}
+.QueKOt p{ font-size:20px; width:80%; float:left;}
+.QueKOt a{background:url(../images/qued.png) no-repeat left center;font-size:16px;padding-left:24px;color:#FFF;line-height:31px;height:31px;width:140px;margin-top:15px;display:block;}
+.QueTabk{ display:none;}
+.QueTab{ width:956px; margin:0 auto 15px; border:1px solid #ccc; border-bottom:none;}
+.QueTab tr td{ text-align:center; padding:13px 10px; color:#333; font-size:14px;border-bottom:1px solid #ccc; line-height:25px;}
+.QueTab tr.QueTr td{ font-size:10px; font-weight:600; background:#ededed;}
+.QueZF{ padding-left:28px; display:inline-block; background:url(../images/ques.png) no-repeat center left;}
+.QueZFsb{ padding-left:28px; display:inline-block; background:url(../images/zfsb.png) no-repeat center left;}
+.QueTrC tr td{text-align:justify; padding:13px 25px;border-right:1px solid #ccc;}
+.QueKOtx{ height:53px; line-height:53px; background:#ededed; border:1px solid #ccc;width:956px; margin:0 auto 15px; font-size:14px; color:#333;}
+.QueKOtx span{ font-weight:600; text-align:center; color:#FFF; float:left; display:block; width:57px; line-height:26px; height:26px; background:#4089ef; border-radius:8px; margin-top:15px; margin-left:12px; margin-right:20px;}
+.QueKOts{ width:940px; margin:12px auto;}
+.QueKOtit{ font-size:16px; font-weight:600; line-height:30px;}
+.QueKOts p{ font-size:14px; line-height:20px;}
+.QueT2{background:#FFF; border-radius:8px; width:680px; padding:20px 30px 30px; margin:35px auto}
+.QueST{ text-align:left; line-height:20px; font-size:10px; font-weight:600;}
+.QueI{ width:638px; line-height:44px; height:44px; border:1px solid #ccc; font-size:14px; padding:0 20px; margin-bottom:14px;}
+.QueText{ width:638px; line-height:24px; height:72px; border:1px solid #ccc; font-size:14px; padding:10px 20px; margin-bottom:14px;}
+.Queyzt{ display:block; width:110px;height:46px; overflow:hidden; margin-right:14px;}
+.Que_but{ width:120px;height:44px; border-radius:22px; margin-right:9px;}
+.QueIw1{ width:288px}
+.QueIw2{ width:480px;}
+a.QueAN{ width:180px; line-height:42px; height:42px; display:block; margin:15px auto; text-align:center; border-radius:21px; font-size:18px;}
+
+.TcQue{width:30%; height:60%;margin-left:-270px;}
+.TcQueN{ font-size:16px; margin-bottom:10px; line-height:26px; text-align:justify;}
+.TcQueN span{ color:#5b9ef8; font-weight:600;}
+.TcQueT{ text-align:center; padding-top:45px; padding-bottom:10px;}
+.TcQueT img{ width:123px;}
+.TcQueT p{ font-size:24px; font-weight:600; line-height:40px;}
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/template/index2/assets/css/index720.css b/template/index2/assets/css/index720.css
new file mode 100644
index 0000000..b4cfeff
--- /dev/null
+++ b/template/index2/assets/css/index720.css
@@ -0,0 +1,184 @@
+@media (max-width:800px){
+/*banner*/
+.banner{ width:100%;height:1.5rem}
+.banNr{ padding-top:0.2rem; padding-left:4%}
+.banNrT{ font-size:0.15rem; line-height:0.3rem;}
+.banNr p{ font-size:0.11rem; line-height:0.18rem;}
+.ButAN{font-size:0.12rem; width:0.8rem; line-height:0.26rem; height:0.26rem;border-radius:0.13rem;margin-top:0.1rem;}
+/*寄售服务项目*/
+.Title P{ font-size:0.14rem; margin-top:0.3rem; margin-bottom:0.03rem;}
+.Title span{ font-size:0.1rem; margin-bottom:0.08rem;line-height:0.16rem}
+.Title i{ width:0.4rem; height:0.02rem; border-radius:0.01rem;}
+.IndIte{margin:0.25rem auto 0;}
+.IndIteK{ height:1rem; width:49.5%;border-left:0.01rem solid #dedee0; margin-bottom:0.2rem;}
+.IndIteK:nth-child(1),.IndIteK:nth-child(3){ border-left:none;}
+.IndIteI{ padding-top:0.15rem; height:0.25rem;}
+.IndIteI img{ height:0.25rem;}
+.IndIteK p{ font-size:0.12rem; padding:0.1rem;}
+/*支付渠道*/
+.IndPay{ margin:0.2rem auto 0}
+.IndPayK{width:44%;height:0.26rem;verflow:hidden;padding:0.08rem 0;border-radius:0.04rem;margin-left:4%; margin-bottom:0.1rem; box-shadow:0 3px 8px rgba(150,192,252,0.4);}
+.IndPayK img{ height:0.26rem;}
+/*平台功能*/
+.IndPlaK{ width:92%; padding:0.15rem 4% 0;}
+.IndPlaL{ width:50%;}
+.IndPlaLT{ font-size:0.13rem;}
+.IndPlaLn{ margin-top:0.15rem;}
+.IndPlaLz{ width:0.3rem; height:0.3rem; line-height:0.3rem; font-size:0.15rem;}
+.IndPlaLr{ width:75%; line-height:0.18rem;}
+.IndPlaLr p{ font-size:0.13rem; color:#2786f9;}
+.IndPlaLr span{ font-size:0.1rem; color:#333;line-height:0.16rem;}
+.IndPlar{ width:46%; margin-top:0.15rem;}
+.IndPlar img{ width:100%;}
+.IndPlaS{ margin-top:0.15rem;}
+.IndPlaC{ width:38%; margin-left:4%; margin-bottom:0.1rem; padding:0.16rem 3% 0; height:1.1rem; border-radius:0.05rem;}
+.IndPlaI{ height:0.21rem;}
+.IndPlaKt{ font-size:0.13rem;line-height:0.2rem; padding:0.08rem 0 0.03rem;}
+.IndPlaC p{font-size:0.1rem; line-height:0.16rem;}
+a.ButPla{font-size:0.13rem;width:1.6rem; height:0.26rem; line-height:0.26rem; border-radius:0.17rem; border:0.04rem solid #afd3fc; margin:0.1rem auto;}
+/*核心优势*/
+.IndCha{margin:0.25rem auto 0; width:92%}
+.IndChaZ{ width:48%; padding-left:2%;}
+.IndChaZt{ font-size:0.13rem;margin-bottom:0.08rem;}
+.IndChaZ p{ font-size:0.1rem;line-height:0.16rem;}
+.IndChaP{ width:46%;}
+
+/**************登录**************/
+.LoginK{background-image:url(../images/loginb.jpg); background-attachment:fixed;background-repeat:no-repeat;background-position:bottom center;background-size:auto 100%;color:#333; height:100%;}
+.Login{ width:86%; padding-bottom:0.15rem; background:#FFF; margin:0.8rem auto 0; border-radius:6px;}
+.register{ width:86%; padding-bottom:0.15rem; background:#FFF; margin:0.8rem auto 0; border-radius:6px;}
+.LogTit{ text-align:center; font-size:0.14rem; line-height:0.2rem; padding-top:0.18rem; font-weight:600;}
+.logK{ width:2.2rem; margin:0 auto; height:0.4rem}
+.logIc{ width:0.3rem; height:0.3rem; display:block; background-repeat:no-repeat; background-position:center; background-color:#2f80f0; background-size:0.16rem}
+.logIn{height:0.3rem; line-height:0.3rem; background:none; border:none; width:1.7rem; padding:0 0.1rem; font-size:0.132rem;background:#eff2f5;}
+.logNr{ line-height:0.3rem; height:0.3rem; font-size:0.12rem; width:2.2rem; height:0.3rem; margin:0.05rem auto;}
+.logNr a{ color:#999;}
+.logNr a:hover{ color:#2f80f0;}
+.Login .Logreg{ margin:0 auto;}
+.register .Logreg{ margin:0 auto;}
+.logK span{ line-height:0.1rem; color:#e60012; font-size:0.1rem; display:block; padding-left:0.3rem;}
+/***************注册***************/
+.Regtit{ font-size:0.1rem; text-align:center; margin-bottom:0.1rem;}
+.logInw{ width:1rem;}
+.yzm{ display:block; width:0.65rem;}
+.Set_but{ border:none; display:block; width:0.65rem; font-size:0.1rem; line-height:0.3rem; height:0.3rem; text-align: center; color:#FFF; display:block;}
+.Regf{ text-align:center; font-size:0.1rem; color:#999; padding-top:0.1rem;}
+.Regf a{ color:#3087f2;}
+/*弹出*/
+.TcK{top:0%;left:6%;width:80%;border-radius:8px; padding:0 0.15rem 20%; max-height:100%; overflow:auto;}
+.TcRegT{ font-size:0.14rem; color:#333; text-align:center; font-weight:600; border-bottom:0.01rem solid #ccc; line-height:0.4rem; height:0.4rem;}
+.TcRegN{ font-size:0.11rem; color:#333; line-height:0.19rem; margin-top:0.1rem;}
+.TcRegP{ margin-bottom:0.04rem;}
+.TcRegN a{ color:#0e6bf9; display:block;}
+A.TcRegA{ width:1.3rem; height:0.3rem; line-height:0.3rem; text-align:center; border-radius:0.15rem; font-size:0.12rem; display:block; margin:0.1rem auto 0;}
+/**************登录错误****************/
+.Erro{ height:1.7rem; background:url(../images/erro.jpg) no-repeat center top; background-size: auto 100%; margin-top:0.4rem;}
+.ErroK{ width:65%; padding-left:35%; padding-top:0.6rem; color:#FFF; text-align:center;}
+.ErroT{font-size:0.15rem; font-weight:600; line-height:0.25rem;}
+a.Errlink{ font-size:0.11rem; line-height:0.18rem;color:#FFF; display:block;}
+a.Errlink span{ color:#febc67;}
+/**************联系我们****************/
+.ContK{ background:url(../images/contb.jpg) no-repeat center 0.4rem; background-size:auto 1.2rem; padding-top:0.4rem;}
+.ContTit{ width:92%; padding:0.2rem 4% 0; height:0.8rem; color:#FFF;}
+.ContTid{ font-size:0.16rem; font-weight:600; line-height:0.26rem;}
+.ContTid span{ font-size:0.14rem; padding-left:0.1rem; margin-bottom:0.05rem; display:inline-block;}
+.ContTit p{ font-size:0.12rem; line-height:0.16rem;}
+.ContD{ width:84%; background:#FFF;padding:0.25rem 4% 0.2rem; margin:0 auto; border-radius:0.06rem; position:relative;}
+.ContDK{height:0.8rem;font-size:0.13rem; width:90%; margin:0 auto;}
+.ContDp1{ background-image:url(../images/fticon01.png)}
+.ContDp2{ background-image:url(../images/fticon02.png)}
+.ContDp{ padding-left:0.3rem; background-repeat:no-repeat; background-position:left center; line-height:0.18rem; background-size:0.25rem; margin-bottom:0.05rem;}
+.ContDp span{display:block;}
+.ContDp p{color:#3e86ee; font-size:0.15rem; font-weight:600;}
+.ContM{ text-align:center; margin-bottom:0.12rem;}
+.ContM img{width:1rem;}
+.ContM p{ font-size:0.12rem; line-height:0.2rem;}
+.ContMat{ width:92%; padding:0.05rem; box-shadow:0 0 15px rgba(197,215,255,0.55); margin:0 auto;}
+
+/***************帮助中心**************/
+.HelpK{background-image:url(../images/helpb.png); background-size:70%; background-repeat:no-repeat; background-position:right bottom; color:#333; min-height:100%;}
+.Help{ width:90%; margin:0.2rem auto; padding-top:0.4rem;}
+.HelpT{ font-weight:600; text-align:center; font-size:0.15rem; line-height:0.3rem; color:#333;}
+.HelpD{display:flex;flex-wrap: wrap;}
+.HelpN{ width:100%;}
+.HelpNs{background:#FFF; margin-top:0.1rem;width:92%;padding:0.1rem 4%; border-radius:0.05rem; box-shadow:0 0 5px rgba(197,215,255,0.55);cursor: pointer;}
+.HelpQ{ padding-left:0.3rem; position:relative;line-height:0.22rem; font-size:0.13rem;}
+.HelpQ i,.HelpA i{ width:0.22rem; height:0.22rem; line-height:0.22rem; font-style:normal; font-size:0.14rem;text-align:center;font-weight:bold;position:absolute;top:0; left:0; border-radius:50%; display:block;}
+.HelpA i{FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#ff7539,endColorStr=#ff2156);background: -ms-linear-gradient(left, #ff7539, #ff2156);background:-moz-linear-gradient(left,#ff7539,#ff2156);background:-webkit-gradient(linear, 0% 100%, 0% 0%,from(#ff7539), to(#ff2156));background:-webkit-gradient(linear, 0% 100%, 0% 0%, from(#ff7539), to(#ff2156));background: -webkit-linear-gradient(left, #ff7539, #ff2156);background:-o-linear-gradient(left, #ff7539, #ff2156);box-shadow:0 5px 10px rgba(255,45,82,0.45);color:#FFF;}
+.HelpA{padding-left:0.3rem; position:relative;font-size:0.12rem; line-height:0.19rem; min-height:0.17rem; margin-top:0.1rem; display:none;}
+.FHelp{ font-size:0.11rem; width:92%;text-align:center; color:#666; line-height:0.18rem; padding:0.1rem 4%;}
+
+/******************查询订单****************/
+.QuerB{background-image:url(../images/querb.png);background-size: auto 1.2rem;background-repeat:no-repeat;background-position:right bottom;color:#333;min-height:100%;}
+.QueT{ text-align:center; padding-top:0.55rem;}
+.QueT a{ color:#333; font-size:0.13rem; display:inline-block; margin:0 0.1rem; line-height:0.3rem;}
+.QueT a i{ display:block; width:0.25rem; height:0.02rem; border-radius:0.02rem; margin:0 auto;}
+.QueTao{ font-weight:600;}
+.QueTao i{ background:#333;}
+.QueD{ display:none;}
+.QueT1{ width:90%; padding:0.15rem 5%}
+/**/
+.search{ background:#FFF; border:0.01rem solid #9ec2f6; border-radius:0.04rem; height:0.34rem; overflow:hidden;}
+.searI{ line-height:0.34rem; height:0.34rem; padding-left:4%; width:70%; background:none; border:none; font-size:0.12rem; color:#666}
+a.searA{ color:#FFF; font-size:0.13rem; display:block; text-align:center; width:22%;line-height:0.34rem; height:0.34rem;}
+a.searA span{background:url(../images/search.png) no-repeat left center; background-size:0.16rem; padding-left:0.2rem; display:inline-block;}
+.QueKO{ background:#fff; overflow:hidden; margin-top:0.15rem; padding-bottom:0.15rem; border-radius:0.04rem;}
+.QueKOt{ margin-bottom:0.12rem; line-height:0.34rem; height:0.34rem; padding:0 5%; color:#FFF;}
+.QueKOt p{ font-size:0.12rem; width:75%; float:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
+.QueKOt a{background:url(../images/qued.png) no-repeat left center;background-size:0.1rem;font-size:0.1rem;padding-left:0.1rem;color:#FFF;line-height:0.34rem;height:0.34rem;display:block;}
+.QueTab{ display:none;}
+.QueTabk{ width:92%; margin:0 auto 0.1rem; border-top:0.01rem solid #ccc; border-left:0.01rem solid #ccc;}
+.QueTabk tr td{ padding:0.08rem 0.1rem; color:#333; font-size:0.1rem;border-bottom:0.01rem solid #ccc;border-right:0.01rem solid #ccc; line-height:0.18rem;}
+.QueTabk tr td.QueTr{ font-size:0.1rem; font-weight:600; background:#ededed; width:30%;}
+
+.QueZF{ padding-left:0.15rem; display:inline-block; background:url(../images/ques.png) no-repeat center left;background-size:0.12rem;}
+.QueZFsb{ padding-left:0.15rem; display:inline-block; background:url(../images/zfsb.png) no-repeat center left;background-size:0.12rem;}
+.QueTrC tr td{text-align:justify; padding:0.08rem 0.12rem;border-right:0.01rem solid #ccc;}
+.QueKOtx{ height:0.34rem; line-height:0.34rem; background:#ededed; border:0.01rem solid #ccc;width:92%; margin:0 auto 0.1rem; font-size:0.1rem; color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
+.QueKOtx span{ font-weight:600; text-align:center; color:#FFF; float:left; display:block; width:0.4rem; line-height:0.2rem; height:0.2rem; background:#4089ef; border-radius:0.05rem; margin-top:0.07rem; margin-left:0.05rem; margin-right:0.06rem;}
+.QueKOts{ width:90%; margin:0.1rem auto;}
+.QueKOtit{ font-size:0.13rem; font-weight:600; line-height:0.22rem;}
+.QueKOts p{ font-size:0.1rem; line-height:0.17rem;}
+
+.QueT2{background:#FFF; border-radius:8px; width:84%; padding:0.1rem 4%; margin:0.15rem auto}
+.QueST{ text-align:left; line-height:0.3rem; font-size:0.13rem; font-weight:600;}
+.QueI{ width:90%; line-height:0.3rem; height:0.3rem; border:0.01rem solid #ccc; font-size:0.12rem; padding:0 4.5%; margin-bottom:0.08rem;}
+.QueText{width:90%;line-height:0.18rem;height:0.6rem; border:0.01rem solid #ccc; font-size:0.12rem; padding:0.1rem 4.5%; margin-bottom:0.08rem;}
+.Queyzt{ display:block; width:30%;height:0.3rem; overflow:hidden; margin-right:0.01rem;}
+.Que_but{ width:31%;height:0.3rem; border-radius:0.15rem;}
+.QueIw2{ width:56%;}
+a.QueAN{ width:1rem; line-height:0.3rem; height:0.3rem; display:block; margin:0.1rem auto; text-align:center; border-radius:0.15rem; font-size:0.13rem;}
+
+.TcQue{ width:70%; height:3rem; left:11%; top:17%;}
+.TcQueN{ font-size:0.12rem; margin-bottom:0.08rem; line-height:0.18rem; text-align:justify;}
+.TcQueN span{ color:#5b9ef8; font-weight:600;}
+.TcQueT{ text-align:center; padding-top:0.15rem; padding-bottom:0.1rem;}
+.TcQueT img{ width:0.8rem;}
+.TcQueT p{ font-size:0.15rem; font-weight:600; line-height:0.25rem;}
+}
+
+.QueTrC{ border-right:none;}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/template/index2/assets/css/index960.css b/template/index2/assets/css/index960.css
new file mode 100644
index 0000000..75dcb30
--- /dev/null
+++ b/template/index2/assets/css/index960.css
@@ -0,0 +1,164 @@
+@media (max-width: 1000px ) and ( min-width: 801px){
+
+/*banner*/
+.banner{ width:800px; margin:0 auto; height:440px}
+.banNr{ padding-top:136px; padding-left:15px}
+.banNrT{ font-size:32px; line-height:45px; margin-bottom:10px;}
+.banNr p{ font-size:16px; line-height:30px;}
+.ButAN{font-size:14px; width:170px; line-height:40px; height:40px;border-radius:20px;margin-top:35px;}
+/*寄售服务项目*/
+.Title P{ font-size:24px; margin-top:100px; margin-bottom:3px;}
+.Title span{ font-size:12px; margin-bottom:12px;line-height:20px}
+.Title i{ width:40px; height:3px; border-radius:2px;}
+.IndIte{ width:800px; margin:55px auto 20px;}
+.IndIteK{ height:138px; width:199px;border-left:1px solid #dedee0;}
+.IndIteK:nth-child(1){ border-left:none;}
+.IndIteI{ padding-top:25px; height:45px;}
+.IndIteI img{ height:45px;}
+.IndIteK p{ font-size:14px; padding:15px;}
+
+/*支付渠道*/
+.IndPay{ width:800px; margin:46px auto 0}
+.IndPayK{ width:236px; height:40px; overflow:hidden; padding:10px 0; border-radius:8px;margin:0 15px 25px; box-shadow:0 5px 10px rgba(150,192,252,0.4);}
+.IndPayK img{ height:40px;}
+/*平台功能*/
+.IndPlaK{ width:800px; margin:20px auto 0;}
+.IndPlaL{ width:350px; padding-top:35px;}
+.IndPlaLT{ font-size:18px;}
+.IndPlaLn{ margin-top:30px;}
+.IndPlaLz{ width:50px; height:50px; line-height:50px; font-size:26px;}
+.IndPlaLr{ width:280px; line-height:25px; margin-top:5px;}
+.IndPlaLr p{ font-size:18px; color:#2786f9;}
+.IndPlaLr span{ font-size:14px; color:#333;}
+.IndPlar{ width:383px;}
+.IndPlar img{ width:383px;}
+.IndPlaS{ width:800px;top:-40px;padding-bottom:10px;}
+.IndPlaC{ width:208px; margin:0 9px 18px; padding:35px 20px 0; height:150px; border-radius:9px;}
+.IndPlaI{ height:25px;}
+.IndPlaKt{ font-size:15px;line-height:25px; padding:13px 0 8px;}
+.IndPlaC p{font-size:14px; line-height:23px;}
+a.ButPla{font-size:16px;width:200px; height:44px; line-height:44px; border-radius:27px; border:5px solid #afd3fc; margin:20px auto;}
+a.ButPla:hover{ border:5px solid #fbccb7}
+/*核心优势*/
+.IndCha{ width:800px; margin:60px auto 0;}
+.IndChaZ{ width:320px; padding-left:40px; padding-top:40px}
+.IndChaZt{ font-size:18px;margin-bottom:15px;}
+.IndChaZ p{ font-size:16px;line-height:30px;}
+.IndChaP{ width:400px; padding:0 15px;}
+/**************登录**************/
+.LoginK{ background-image:url(../images/loginb.jpg); background-attachment:fixed; background-repeat:no-repeat; background-position: bottom center; color:#333; height:100%;}
+.Login{ width:430px;padding-bottom:25px; background:#FFF; margin:15% auto 0; border-radius:6px;}
+.register{ width:430px;padding-bottom:25px; background:#FFF; margin:15% auto 0; border-radius:6px;}
+.LogTit{ text-align:center; font-size:20px; line-height:30px; padding-top:25px; font-weight:600;}
+.logK{ width:332px; margin:0 auto; height:58px;}
+.logIc{ width:40px; height:40px; display:block; background-repeat:no-repeat; background-position:center; background-color:#2f80f0;}
+.logIn{height:40px; line-height:40px; background:none; border:none; width:262px; padding:0 15px; font-size:14px;background:#eff2f5;}
+.logNr{ line-height:40px; height:40px; font-size:14px; width:332px; height:43px; margin:10px auto;}
+.logNr a{ color:#999;}
+.logNr a:hover{ color:#2f80f0;}
+.Login .Logreg{ margin:0 auto;}
+.register .Logreg{ margin:0 auto;}
+.logK span{ line-height:18px; color:#e60012; font-size:12px;display:block; padding-left:43px;}
+/***************注册***************/
+.Regtit{ font-size:14px; text-align:center; margin-bottom:12px;}
+.logInw{ width:148px;}
+.yzm{ display:block; width:100px;}
+.Set_but{ border:none; display:block; width:100px; line-height:40px; height:40px; text-align: center; color:#FFF; display:block;}
+.Regf{ text-align:center; font-size:14px; color:#999; padding-top:10px;}
+.Regf a{ color:#3087f2;}
+/*弹出*/
+.TcK{top:0%;left:50%; margin-left:-290px;width:500px;border-radius:8px; padding:0 40px 30px; max-height:600px; overflow:auto;}
+.TcRegT{ font-size:18px; color:#333; text-align:center; font-weight:600; border-bottom:1px solid #ccc; line-height:60px; height:60px;}
+.TcRegN{ font-size:14px; color:#333; line-height:24px; margin-top:12px;}
+.TcRegP{ margin-bottom:10px;}
+.TcRegN a{ color:#0e6bf9; display:block;}
+A.TcRegA{ width:160px; height:36px; line-height:36px; text-align:center; border-radius:18px; font-size:16px; display:block; margin:16px auto 0;}
+/**************登录错误****************/
+.Erro{ height:460px; background:url(../images/erro.jpg) no-repeat center top; background-size: auto 100%; margin-top:75px;}
+.ErroK{ width:400px; padding-left:400px; padding-top:180px; color:#FFF; text-align:center; margin:0 auto;}
+.ErroT{font-size:34px; font-weight:600; line-height:40px;}
+a.Errlink{ font-size:16px; line-height:20px; margin-top:15px; color:#FFF; display:block;}
+a.Errlink span{ color:#febc67;}
+
+/**************联系我们****************/
+.ContK{ background:url(../images/contb.jpg) no-repeat center 75px; background-size:auto 250px; padding-top:75px;}
+.ContTit{ width:800px; margin:0 auto; padding-top:60px; height:140px; color:#FFF;}
+.ContTid{ font-size:34px; font-weight:600; line-height:40px;}
+.ContTid span{ font-size:26px; padding-left:10px; margin-bottom:7px; display:inline-block;}
+.ContTit p{ font-size:16px; line-height:20px;}
+.ContD{ width:760px; background:#FFF; margin:0 auto; padding:0 20px 30px; border-radius:7px; position:relative;}
+.ContDK{ padding-left:20px; padding-top:80px; width:280px; height:120px;font-size:16px; float:left;}
+.ContDp1{ background-image:url(../images/fticon01.png)}
+.ContDp2{ background-image:url(../images/fticon02.png)}
+.ContDp{ padding-left:45px; background-repeat:no-repeat; background-position:left center; line-height:24px; background-size:32px; margin-bottom:7px;}
+.ContDp span{display:block;}
+.ContDp p{color:#3e86ee; font-size:20px; font-weight:600;}
+.ContDx{ font-size:14px;}
+.ContM{ width:160px; height:250px;text-align:center; background:url(../images/cont01.png) no-repeat top center; background-size:100%; position:absolute; right:34px; top:-45px;}
+.ContM img{ padding-top:50px; width:100px;}
+.ContM p{ font-size:12px; line-height:30px;}
+.ContMat{ width:740px; padding:6px; box-shadow:0 0 15px rgba(197,215,255,0.55); margin:0 auto;}
+
+/***************帮助中心**************/
+.HelpK{background-image:url(../images/helpb.png); background-size:500px; background-repeat:no-repeat; background-position:right bottom; color:#333; min-height:100%;}
+.Help{ width:800px; margin:30px auto; padding-top:75px;}
+.HelpT{ font-weight:600; text-align:center; font-size:28px; line-height:40px; color:#333;}
+.HelpD{display:flex;flex-wrap: wrap; margin-top:10px;}
+.HelpN{ width:50%;}
+.HelpNs{background:#FFF;margin:16px 3% 0;width:86%;padding:10px 4%; border-radius:5px; box-shadow:0 0 8px rgba(197,215,255,0.55);cursor: pointer;}
+.HelpQ{ padding-left:40px; position:relative;line-height:28px; font-size:16px;}
+.HelpQ i,.HelpA i{ width:28px; height:28px; line-height:28px; font-style:normal; font-size:16px;text-align:center;font-weight:bold;position:absolute;top:0; left:0; border-radius:50%; display:block;}
+.HelpA i{FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#ff7539,endColorStr=#ff2156);background: -ms-linear-gradient(left, #ff7539, #ff2156);background:-moz-linear-gradient(left,#ff7539,#ff2156);background:-webkit-gradient(linear, 0% 100%, 0% 0%,from(#ff7539), to(#ff2156));background:-webkit-gradient(linear, 0% 100%, 0% 0%, from(#ff7539), to(#ff2156));background: -webkit-linear-gradient(left, #ff7539, #ff2156);background:-o-linear-gradient(left, #ff7539, #ff2156);box-shadow:0 5px 10px rgba(255,45,82,0.45);color:#FFF;}
+.HelpA{padding-left:40px; position:relative;font-size:14px; line-height:22px; min-height:28px; margin-top:10px; display:none;}
+.FHelp{ font-size:14px; text-align:center; color:#666; line-height:25px; padding:10px 0;}
+
+/******************查询订单****************/
+.QuerB{background-image:url(../images/querb.png);background-size:1000px;background-repeat:no-repeat;background-position:right bottom;color:#333;min-height:100%;}
+.QueT{ text-align:center; padding-top:100px;}
+.QueT a{ color:#333; font-size:20px; display:inline-block; margin:0 25px; line-height:50px;}
+.QueT a i{ display:block; width:30px; height:4px; border-radius:2px; margin:0 auto;}
+.QueTao{ font-weight:600;}
+.QueTao i{ background:#333;}
+.QueD{ display:none;}
+.QueT1{ width:800px; margin:25px auto;}
+/**/
+.search{ background:#FFF; border:1px solid #9ec2f6; border-radius:5px; height:53px; overflow:hidden;}
+.searI{ line-height:53px; height:53px; padding-left:25px; width:590px; background:none; border:none; font-size:16px; color:#666}
+a.searA{ color:#FFF; font-size:16px; display:block; text-align:center; width:140px;line-height:53px; height:53px; padding-right:20px;}
+a.searA span{background:url(../images/search.png) no-repeat left center; background-size:26px; padding-left:50px; display:inline-block;}
+.QueKO{ background:#fff; overflow:hidden; margin-top:25px; padding-bottom:25px; border-radius:5px;}
+.QueKOt{ margin-bottom:20px; line-height:53px; height:53px; padding:0 25px; color:#FFF;}
+.QueKOt p{ font-size:18px; width:75%; float:left;}
+.QueKOt a{background:url(../images/qued.png) no-repeat left center;background-size:13px;font-size:14px;padding-left:20px;color:#FFF;line-height:23px;height:23px;width:110px;margin-top:15px;display:block;}
+.QueTabk{ display:none;}
+.QueTab{ width:760px; margin:0 auto 12px; border:1px solid #ccc; border-bottom:none;}
+.QueTab tr td{ text-align:center; padding:10px 7px; color:#333; font-size:12px;border-bottom:1px solid #ccc; line-height:20px;}
+.QueTab tr.QueTr td{ font-size:10px; font-weight:600; background:#ededed;}
+.QueZF{ padding-left:20px; display:inline-block; background:url(../images/ques.png) no-repeat center left;background-size:18px;}
+.QueZFsb{ padding-left:20px; display:inline-block; background:url(../images/zfsb.png) no-repeat center left;background-size:18px;}
+.QueTrC tr td{text-align:justify; padding:10px 17px;border-right:1px solid #ccc;}
+.QueKOtx{ height:45px; line-height:45px; background:#ededed; border:1px solid #ccc;width:760px; margin:0 auto 10px; font-size:12px; color:#333;}
+.QueKOtx span{ font-weight:600; text-align:center; color:#FFF; float:left; display:block; width:50px; line-height:22px; height:22px; background:#4089ef; border-radius:6px; margin-top:13px; margin-left:10px; margin-right:15px;}
+.QueKOts{ width:740px; margin:12px auto;}
+.QueKOtit{ font-size:14px; font-weight:600; line-height:28px;}
+.QueKOts p{ font-size:12px; line-height:18px;}
+.QueT2{background:#FFF; border-radius:8px; width:680px; padding:15px 25px; margin:25px auto}
+.QueST{ text-align:left; line-height:20px; font-size:10px; font-weight:600;}
+.QueI{ width:638px; line-height:44px; height:44px; border:1px solid #ccc; font-size:14px; padding:0 20px; margin-bottom:14px;}
+.QueText{ width:638px; line-height:24px; height:72px; border:1px solid #ccc; font-size:14px; padding:10px 20px; margin-bottom:14px;}
+.Queyzt{ display:block; width:110px;height:46px; overflow:hidden; margin-right:14px;}
+.Que_but{ width:120px;height:44px; border-radius:22px; margin-right:9px;}
+.QueIw1{ width:288px}
+.QueIw2{ width:480px;}
+a.QueAN{ width:170px; line-height:42px; height:42px; display:block; margin:15px auto; text-align:center; border-radius:21px; font-size:16px;}
+
+.TcQue{width:30%; height:60%;margin-left:-240px;}
+.TcQueN{ font-size:14px; margin-bottom:10px; line-height:24px; text-align:justify;}
+.TcQueN span{ color:#5b9ef8; font-weight:600;}
+.TcQueT{ text-align:center; padding-top:35px; padding-bottom:10px;}
+.TcQueT img{ width:113px;}
+.TcQueT p{ font-size:20px; font-weight:600; line-height:32px;}
+}
+
+
+
diff --git a/template/index2/assets/css/style.css b/template/index2/assets/css/style.css
new file mode 100644
index 0000000..e3ef75b
--- /dev/null
+++ b/template/index2/assets/css/style.css
@@ -0,0 +1,286 @@
+/*通用*/
+*{ margin:0; padding:0;}
+html{min-height:100%;}
+body{color:#333; background-color:#f9faff; background-repeat:no-repeat; min-height:100%;}
+ul,li,p,h1,h2,h3,h4,h5,h6,dl,dt,dd {margin:0px;padding:0px;border:none;list-style:none;}
+a{text-decoration:none; text-shadow:none;font-weight:normal;}
+ul{list-style:none;}
+textarea,input,button{outline:none;-webkit-appearance:none; font-family:"微软雅黑";}
+.fl{ float:left;}
+.fr{ float:right}
+a{color:#6c6c6c;text-decoration:none;}
+img{border:none;}
+.clear{ clear:both; height:0; overflow:hidden;}
+.dk{ width:100%; max-width:1200px; min-width:320px; margin:0 auto;}
+
+.backFFF{ background:#FFF;}
+.backB1{FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#5baffd,endColorStr=#3a81ec);background: -ms-linear-gradient(left, #5baffd, #3a81ec);background:-moz-linear-gradient(left,#5baffd,#3a81ec);background:-webkit-gradient(linear, 0% 100%, 0% 0%,from(#5baffd), to(#3a81ec));background:-webkit-gradient(linear, 0% 100%, 0% 0%, from(#5baffd), to(#3a81ec));background: -webkit-linear-gradient(left, #5baffd, #3a81ec);background:-o-linear-gradient(left, #5baffd, #3a81ec);color:#FFF;box-shadow:0 7px 10px rgba(75,152,244,0.45);}
+
+.backB2{FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#5baffd,endColorStr=#3a81ec);background: -ms-linear-gradient(top, #5baffd, #3a81ec);background:-moz-linear-gradient(left,#5baffd,#3a81ec);background:-webkit-gradient(linear, 0% 0%, 100% 0%,from(#5baffd), to(#3a81ec));background:-webkit-gradient(linear, 0% 0%, 100% 0%, from(#5baffd), to(#3a81ec));background: -webkit-linear-gradient(top, #5baffd, #3a81ec);background:-o-linear-gradient(top, #5baffd, #3a81ec);color:#FFF;}
+
+
+
+
+
+.Color1{background: -webkit-gradient(linear, 0 0, right 0, from(rgba(59, 175, 52, 1)), to(rgba(255, 245, 0, 1)));-webkit-background-clip:text;-webkit-text-fill-color:transparent; }
+
+/*弹出*/
+.TcBJ{z-index:9998;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.4); display:none;}
+.TcK{z-index:9999;position:fixed; background:#FFF; overflow:hidden; display:none;}
+
+.Set_but{FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#ff7539,endColorStr=#ff2156);background: -ms-linear-gradient(left, #ff7539, #ff2156);background:-moz-linear-gradient(left,#ff7539,#ff2156);background:-webkit-gradient(linear, 0% 100%, 0% 0%,from(#ff7539), to(#ff2156));background:-webkit-gradient(linear, 0% 100%, 0% 0%, from(#ff7539), to(#ff2156));background: -webkit-linear-gradient(left, #ff7539, #ff2156);background:-o-linear-gradient(left, #ff7539, #ff2156);}
+.logP1{ background-image:url(../images/logi01.png)}
+.logP11{ background-image:url(../images/logi011.png)}
+.logP2{ background-image:url(../images/logi02.png)}
+.logP3{ background-image:url(../images/logi03.png)}
+.logP4{ background-image:url(../images/logi04.png)}
+.logP5{ background-image:url(../images/logi05.png)}
+.logP6{ background-image:url(../images/logi06.png)}
+.logP7{ background-image:url(../images/logi07.png)}
+/*置顶*/
+.cd-top {display:inline-block;border-radius:50%;position:fixed;overflow:hidden;text-indent:100%;white-space:nowrap;background:url(../images/top.png) no-repeat center; background-size:100%;visibility:hidden;opacity:0;-webkit-transition:all 0.3s;-moz-transition:all 0.3s;transition:all 0.3s;}
+.cd-top.cd-is-visible {visibility: visible;opacity:1;}
+.cd-top.cd-fade-out {opacity:0.9;}
+.no-touch .cd-top:hover {background-color:#e86256;opacity:1;}
+/*banner*/
+.banNr{color:#333;}
+.banNrT{font-weight:600;}
+.ButAN{transition:0.5s; display:block; text-align:center; }
+.ButAN:hover{transition:0.5s;FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#ff7539,endColorStr=#ff2156);background: -ms-linear-gradient(left, #ff7539, #ff2156);background:-moz-linear-gradient(left,#ff7539,#ff2156);background:-webkit-gradient(linear, 0% 100%, 0% 0%,from(#ff7539), to(#ff2156));background:-webkit-gradient(linear, 0% 100%, 0% 0%, from(#ff7539), to(#ff2156));background: -webkit-linear-gradient(left, #ff7539, #ff2156);background:-o-linear-gradient(left, #ff7539, #ff2156);box-shadow:0 5px 10px rgba(255,45,82,0.45);}
+/*寄售服务项目*/
+.Title{ text-align:center; color:#333;}
+.Title span{display:block;}
+.Title i{background:#333; display:block; margin:0 auto;}
+.IndIteK,.IndIteI{text-align:center;}
+.IndIteK p{color:#333;}
+/*支付渠道*/
+.IndPayK{text-align:center; background:#FFF;}
+/*平台功能*/
+.IndPlaL{color:#333;}
+.IndPlaLT{font-weight:600;}
+.IndPlaLz{font-weight:600;border-radius:50%;color:#FFF; text-align:center;}
+.IndPlaLr p{ color:#2786f9;}
+.IndPlaS{position:relative;margin:0 auto}
+.IndPlaC{background:#FFF; text-align:center;}
+.IndPlaKt{font-weight:600;}
+.IndPlaC p{ color:#999;}
+a.ButPla{ color:#FFF;text-align:center; display:block;}
+/*核心优势*/
+.IndChaZt{font-weight:600;}
+.IndChaZ p{color:#666;}
+/*尾*/
+.footer{margin:0 auto;}
+.footN{ color:#333;}
+.footFk{color:#3e86ee; font-weight:600;}
+.footFk a{color:#3e86ee;font-weight:600;}
+.footFk i{display:block;background-repeat:no-repeat; background-position:center;}
+.footF1{ background-image:url(../images/fticon01.png)}
+.footF2{background-image:url(../images/fticon02.png)}
+.footFm i{display:block;background-repeat:no-repeat; background-position:center;}
+.footF3{background-image:url(../images/fticon03.png)}
+.footF4{background-image:url(../images/fticon04.png)}
+.footRT{font-weight:600;}
+.footR a{color:#666;display:block;}
+.footR a:hover{color:#3e86ee;}
+.footC{color:#666; text-align:center;}
+.footI{ text-align:center;}
+.footI a{ display:inline-block;}
+/*.QueTab,.QueTabk{table-layout:fixed;}
+.QueTab tr td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}*/
+.head{ position:fixed; top:0; left:0; width:100%;z-index: 998; background:#f9faff;}
+@media (min-width:1001px){
+body{font:14px "microsoft yahei", Arial, Helvetica, sans-serif; background-image:url(../images/backg1.png); background-position:center 780px;}
+.bannerK{ background:url(../images/banner.png) no-repeat top right; margin-bottom:120px; padding-top:82px;}
+.head{ height:82px;}
+.headK{ width:1200px; margin:0 auto;}
+.Logo{ width:140px; height:55px; margin-top:14px;}
+/*导航*/
+.wap_nav,.hd_nav{ display:none;}
+.MenuPC{ width:820px; margin-top:18px;}
+.MenuPC a{ line-height:44px; height:44px; text-align:center; display:block; font-size:16px; border-radius:22px; color:#2d3f7a;}
+a.MenuA{ width:110px; margin-left:10px;}
+a.MenuA:hover{transition:0.5s; color:#1b67da; text-shadow:0 0 10px rgba(75,152,244,0.45);}
+a.MenuAo:hover,a.MenuAo{color:#FFF;}
+a.hdReg{ width:80px; color:#FFF;FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#ff9e14,endColorStr=#ffc90a);background: -ms-linear-gradient(left, #ff9e14, #3a81ec);background:-moz-linear-gradient(left,#ff9e14,#ffc90a);background:-webkit-gradient(linear, 0% 100%, 0% 0%,from(#ff9e14), to(#ffc90a));background:-webkit-gradient(linear, 0% 100%, 0% 0%, from(#ff9e14), to(#ffc90a));background: -webkit-linear-gradient(left, #ff9e14, #ffc90a);background:-o-linear-gradient(left, #ff9e14, #ffc90a);transition:0.5s;}
+a.hdReg:hover{box-shadow:0 5px 10px rgba(255,165,18,0.45);transition:0.5s;}
+a.hdLog{ width:80px; color:#FFF; margin-right:14px;transition:0.5s;FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#ff7539,endColorStr=#ff2156);background: -ms-linear-gradient(left, #ff7539, #ff2156);background:-moz-linear-gradient(left,#ff7539,#ff2156);background:-webkit-gradient(linear, 0% 100%, 0% 0%,from(#ff7539), to(#ff2156));background:-webkit-gradient(linear, 0% 100%, 0% 0%, from(#ff7539), to(#ff2156));background: -webkit-linear-gradient(left, #ff7539, #ff2156);background:-o-linear-gradient(left, #ff7539, #ff2156);}
+a.hdLog:hover{box-shadow:0 5px 10px rgba(255,45,82,0.45);transition:0.5s;}
+/*尾*/
+.footer{ width:920px;padding-top:60px;}
+.footN{margin-bottom:60px;}
+.footF{ width:315px;}
+.footFk{ line-height:38px; height:38px; font-size:24px; margin-bottom:10px;}
+.footFk i{ width:38px; height:38px;margin-right:14px;}
+.footFm{ font-size:14px; line-height:22px; margin-left:6px; margin-bottom:10px;}
+.footFm i{width:22px; height:22px;margin-right:8px;}
+.footR{ width:180px; padding-left:20px}
+.footRT{ line-height:38px; font-size:20px; margin-bottom:5px;}
+.footR a{ font-size:16px;line-height:28px;}
+.footC{ font-size:16px;line-height:25px;}
+.footI{margin:30px auto 40px;}
+.footI a{padding:0 20px; height:47px;}
+/*置顶*/
+.cd-top {height:59px;width:59px;bottom:70px;right:10px;box-shadow:0 0 10px rgba(75,152,244, 0.35);}
+}
+@media (max-width: 1000px ) and ( min-width: 801px){
+body{font:14px "microsoft yahei", Arial, Helvetica, sans-serif;background-image:url(../images/backg1.png);overflow-x:hidden}
+.bannerK{ background:url(../images/banner.png) no-repeat top right; background-size:700px; margin-bottom:100px; padding-top:75px;}
+.head{ height:75px;}
+.headK{ width:800px; margin:0 auto;}
+.Logo{ width:130px; margin-top:12px;}
+.Logo img{ width:100%;}
+/*导航*/
+.wap_nav,.hd_nav{ display:none;}
+.MenuPC{ width:600px; margin-top:13px;}
+.MenuPC a{ line-height:36px; height:36px; text-align:center; display:block; font-size:14px; border-radius:18px; color:#2d3f7a;}
+a.MenuA{ width:80px; margin-left:6px;}
+a.MenuA:hover{transition:0.5s; color:#1b67da; text-shadow:0 0 10px rgba(75,152,244,0.45);}
+a.MenuAo:hover,a.MenuAo{color:#FFF;}
+a.hdReg{ width:70px; color:#FFF;FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#ff9e14,endColorStr=#ffc90a);background: -ms-linear-gradient(left, #ff9e14, #3a81ec);background:-moz-linear-gradient(left,#ff9e14,#ffc90a);background:-webkit-gradient(linear, 0% 100%, 0% 0%,from(#ff9e14), to(#ffc90a));background:-webkit-gradient(linear, 0% 100%, 0% 0%, from(#ff9e14), to(#ffc90a));background: -webkit-linear-gradient(left, #ff9e14, #ffc90a);background:-o-linear-gradient(left, #ff9e14, #ffc90a);transition:0.5s;}
+a.hdReg:hover{box-shadow:0 5px 10px rgba(255,165,18,0.45);transition:0.5s;}
+a.hdLog{ width:70px; color:#FFF; margin-right:14px;transition:0.5s;FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#ff7539,endColorStr=#ff2156);background: -ms-linear-gradient(left, #ff7539, #ff2156);background:-moz-linear-gradient(left,#ff7539,#ff2156);background:-webkit-gradient(linear, 0% 100%, 0% 0%,from(#ff7539), to(#ff2156));background:-webkit-gradient(linear, 0% 100%, 0% 0%, from(#ff7539), to(#ff2156));background: -webkit-linear-gradient(left, #ff7539, #ff2156);background:-o-linear-gradient(left, #ff7539, #ff2156);}
+a.hdLog:hover{box-shadow:0 5px 10px rgba(255,45,82,0.45);transition:0.5s;}
+/*尾*/
+.footer{ width:800px;padding-top:40px;}
+.footN{margin-bottom:40px;}
+.footF{ width:260px; padding-left:30px;}
+.footFk{ line-height:32px; height:32px; font-size:20px;margin-bottom:8px;}
+.footFk i{ width:32px; height:32px;margin-right:11px; background-size:100%;}
+.footFm{ font-size:14px; line-height:22px; margin-left:6px; margin-bottom:8px;}
+.footFm i{width:20px; height:20px;margin-right:6px;background-size:100%;}
+.footR{ width:150px; padding-left:20px}
+.footRT{ line-height:32px; font-size:18px; margin-bottom:5px;}
+.footR a{ font-size:14px;line-height:26px; }
+.footC{ font-size:14px;line-height:22px;}
+.footI{ text-align:center; margin:20px auto 30px;}
+.footI a{ display:inline-block; padding:0 15px; height:45px;}
+/*置顶*/
+.cd-top {height:50px;width:50px;bottom:70px;right:10px;box-shadow:0 0 10px rgba(75,152,244, 0.35);}
+}
+
+@media (max-width:800px){
+html {font-size: 625%; /*100 ÷ 16 × 100% = 625%*/}
+body{font:0.11rem "microsoft yahei", Arial, Helvetica, sans-serif;min-width:320px; background-image:url(../images/backg1.png); background-size:100%;}
+/**/
+.bannerK{ background:url(../images/banner.png) no-repeat top right; background-size:100%; margin-bottom:0.4rem; padding-top:0.4rem;}
+.head{ height:0.4rem;}
+.Logo{ padding-left:4%; width:45%; margin-top:0.04rem;}
+.Logo img{ height:0.32rem;}
+.head .hd_nav{position:relative;width:0.18rem; padding-right:4%;height:0.26rem; margin-top:0.07rem;z-index:999;}
+.head .hd_nav i{top:50%;margin-top:-0.01rem;position:absolute;display:inline-block;height:0.02rem;width:0.18rem;border-radius:0.01rem;background:#3a81ec;}
+.head .hd_nav:before{margin-top: -0.07rem;}
+.head .hd_nav:after{margin-top:0.06rem;}
+.head .hd_nav:before,.head .hd_nav:after{content: '';position:absolute;top:50%;display:inline-block;height:0.02rem;width:0.18rem;border-radius:0.01rem;background:#3a81ec;transition:0.2s;}
+.head .hd_nav.active i{display:none;}
+.head .hd_nav.active:before{transform: rotate(45deg);}
+.head .hd_nav.active:after{transform: rotate(-45deg);}
+.head .hd_nav.active:before,.head .hd_nav.active:after{margin-top:0;background:#ffffff;}
+.MenuPC{ display:none;}
+.wap_nav{position:fixed;width:100%;height:100%;top:0;left:0;background:rgba(0, 0, 0, 0.6);z-index:997; display:none;}
+.wap_navK{width:80%;margin:0.6rem auto;text-align:center;}
+.wap_navK a{height:0.4rem; line-height:0.4rem;display:block;color:#fff; font-size:0.13rem;}
+/*尾*/
+.footer{ width:92%;padding-top:0.2rem;}
+.footN{margin-bottom:0.2rem;}
+.footF{ width:90%; padding-left:5%; margin-bottom:0.15rem;}
+.footFk{ line-height:0.25rem; height:0.25rem; font-size:0.15rem;margin-bottom:0.1rem;}
+.footFk i{ width:0.25rem; height:0.25rem;margin-right:0.06rem; background-size:100%;}
+.footFm{ font-size:0.11rem; line-height:0.16rem;height:0.16rem; margin-left:0.05rem; margin-bottom:0.07rem;}
+.footFm i{width:0.16rem; height:0.16rem;margin-right:0.05rem;background-size:100%;}
+.footR{ width:33.33%; text-align:center;}
+.footRT{ line-height:0.2rem; font-size:0.13rem; margin-bottom:0.03rem;}
+.footR a{ font-size:0.11rem;line-height:0.18rem; }
+.footC{ font-size:0.11rem;line-height:0.16rem;}
+.footI{ text-align:center;}
+.footI a{ display:inline-block; padding:0.1rem 0.04rem 0.15rem; height:0.3rem;}
+/*置顶*/
+.cd-top {height:0.35rem;width:0.35rem;bottom:0.4rem;right:4%;box-shadow:0 0 10px rgba(75,152,244, 0.35);}
+}
+
+/*出的各分辨率媒体查询换算:*/
+@media screen and (min-width:360px) and (max-width:374px) and (orientation:portrait){html{font-size:703%;}}
+@media screen and (min-width:375px) and (max-width:383px) and (orientation:portrait){html{font-size:732.4%;}}
+@media screen and (min-width:384px) and (max-width:399px) and (orientation:portrait){html{font-size:750%; }}
+@media screen and (min-width:400px) and (max-width:413px) and (orientation:portrait){html{font-size:781.25%;}}
+@media screen and (min-width:414px) and (max-width:431px) and (orientation:portrait){html{font-size:808.6%;}}
+@media screen and (min-width:432px) and (max-width:479px) and (orientation:portrait){html {font-size:843.75%;}}
+@media screen and (min-width:479px) and (max-width:960px) and (orientation:portrait){html {font-size:843.75%;}}
+
+
+
+/*查询验证码*/
+
+.checkcode {
+ display: none;
+ font-size: 20px;
+ z-index: 20;
+ text-align: center;
+ background: #fff;
+}
+
+.layui-layer {
+ border-radius: 5px !important;
+}
+
+.layui-layer .layui-layer-title {
+ padding: 0;
+ border: 0;
+ height: 50px;
+ line-height: 50px;
+ font-size: 20px;
+ text-align: center;
+ color: #fff;
+ background: #5baffd;
+ -webkit-border-top-right-radius: 5px;
+ -webkit-border-top-left-radius: 5px;
+ -moz-border-radius-topleft: 5px;
+ border-top-right-radius: 5px;
+ border-top-left-radius: 5px;
+}
+
+.layui-layer-page .layui-layer-content {
+ height: auto !important;
+}
+
+.layui-layer .layui-layer-btn {
+ margin-top: 5px;
+ text-align: center;
+}
+
+.layui-layer .layui-layer-btn a {
+ width: 80px;
+ height: 40px;
+ line-height: 40px;
+ font-size: 20px;
+ text-align: center;
+ color: #898989;
+ background: none;
+ border: solid 1px #e5e5e5;
+ cursor: pointer;
+}
+
+.layui-layer .layui-layer-btn .layui-layer-btn0 {
+ background: #5baffd;
+ color: #fff;
+ border: solid 1px #5baffd;
+}
+
+.checkcode .img {
+ margin-top: 29px;
+ cursor: pointer;
+}
+
+.checkcode .txt {
+ margin-top: 10px;
+}
+
+.checkcode .txt input {
+ padding: 0 10px;
+ width: 216px;
+ height: 49px;
+ color: #435880;
+ border-radius: 5px;
+ border: solid 1px #e5e5e5;
+}
+
+
diff --git a/template/index2/assets/images/32px.png b/template/index2/assets/images/32px.png
new file mode 100644
index 0000000..ac74418
Binary files /dev/null and b/template/index2/assets/images/32px.png differ
diff --git a/template/index2/assets/images/backg1.png b/template/index2/assets/images/backg1.png
new file mode 100644
index 0000000..379e068
Binary files /dev/null and b/template/index2/assets/images/backg1.png differ
diff --git a/template/index2/assets/images/banner.png b/template/index2/assets/images/banner.png
new file mode 100644
index 0000000..613c6ca
Binary files /dev/null and b/template/index2/assets/images/banner.png differ
diff --git a/template/index2/assets/images/fticon01.png b/template/index2/assets/images/fticon01.png
new file mode 100644
index 0000000..f5adfb8
Binary files /dev/null and b/template/index2/assets/images/fticon01.png differ
diff --git a/template/index2/assets/images/fticon02.png b/template/index2/assets/images/fticon02.png
new file mode 100644
index 0000000..89e9975
Binary files /dev/null and b/template/index2/assets/images/fticon02.png differ
diff --git a/template/index2/assets/images/fticon03.png b/template/index2/assets/images/fticon03.png
new file mode 100644
index 0000000..82b8f81
Binary files /dev/null and b/template/index2/assets/images/fticon03.png differ
diff --git a/template/index2/assets/images/fticon04.png b/template/index2/assets/images/fticon04.png
new file mode 100644
index 0000000..7cdaac2
Binary files /dev/null and b/template/index2/assets/images/fticon04.png differ
diff --git a/template/index2/assets/images/icon-ext.png b/template/index2/assets/images/icon-ext.png
new file mode 100644
index 0000000..bbbb669
Binary files /dev/null and b/template/index2/assets/images/icon-ext.png differ
diff --git a/template/index2/assets/images/icon.png b/template/index2/assets/images/icon.png
new file mode 100644
index 0000000..e35d76e
--- /dev/null
+++ b/template/index2/assets/images/icon.png
@@ -0,0 +1,13 @@
+
+404 Not Found
+
+404 Not Found
+nginx
+
+
+
+
+
+
+
+
diff --git a/template/index2/assets/images/loading-0.gif b/template/index2/assets/images/loading-0.gif
new file mode 100644
index 0000000..6f3c953
Binary files /dev/null and b/template/index2/assets/images/loading-0.gif differ
diff --git a/template/index2/assets/images/loading-1.gif b/template/index2/assets/images/loading-1.gif
new file mode 100644
index 0000000..db3a483
Binary files /dev/null and b/template/index2/assets/images/loading-1.gif differ
diff --git a/template/index2/assets/images/loading-2.gif b/template/index2/assets/images/loading-2.gif
new file mode 100644
index 0000000..5bb90fd
Binary files /dev/null and b/template/index2/assets/images/loading-2.gif differ
diff --git a/template/index2/assets/images/loading.gif b/template/index2/assets/images/loading.gif
new file mode 100644
index 0000000..6e5bace
Binary files /dev/null and b/template/index2/assets/images/loading.gif differ
diff --git a/template/index2/assets/images/logi01.png b/template/index2/assets/images/logi01.png
new file mode 100644
index 0000000..01b025f
Binary files /dev/null and b/template/index2/assets/images/logi01.png differ
diff --git a/template/index2/assets/images/logi011.png b/template/index2/assets/images/logi011.png
new file mode 100644
index 0000000..ae9dca1
Binary files /dev/null and b/template/index2/assets/images/logi011.png differ
diff --git a/template/index2/assets/images/logi02.png b/template/index2/assets/images/logi02.png
new file mode 100644
index 0000000..c2c21f7
Binary files /dev/null and b/template/index2/assets/images/logi02.png differ
diff --git a/template/index2/assets/images/logi03.png b/template/index2/assets/images/logi03.png
new file mode 100644
index 0000000..a2d7c96
Binary files /dev/null and b/template/index2/assets/images/logi03.png differ
diff --git a/template/index2/assets/images/logi04.png b/template/index2/assets/images/logi04.png
new file mode 100644
index 0000000..34c88f4
Binary files /dev/null and b/template/index2/assets/images/logi04.png differ
diff --git a/template/index2/assets/images/logi05.png b/template/index2/assets/images/logi05.png
new file mode 100644
index 0000000..37a99d5
Binary files /dev/null and b/template/index2/assets/images/logi05.png differ
diff --git a/template/index2/assets/images/logi06.png b/template/index2/assets/images/logi06.png
new file mode 100644
index 0000000..0e06743
Binary files /dev/null and b/template/index2/assets/images/logi06.png differ
diff --git a/template/index2/assets/images/logi07.png b/template/index2/assets/images/logi07.png
new file mode 100644
index 0000000..e755c6d
Binary files /dev/null and b/template/index2/assets/images/logi07.png differ
diff --git a/template/index2/assets/images/top.png b/template/index2/assets/images/top.png
new file mode 100644
index 0000000..90b61a2
Binary files /dev/null and b/template/index2/assets/images/top.png differ
diff --git a/template/index2/assets/images/validator_default.png b/template/index2/assets/images/validator_default.png
new file mode 100644
index 0000000..7bf05e7
Binary files /dev/null and b/template/index2/assets/images/validator_default.png differ
diff --git a/template/index2/assets/images/validator_simple.png b/template/index2/assets/images/validator_simple.png
new file mode 100644
index 0000000..9db57bb
Binary files /dev/null and b/template/index2/assets/images/validator_simple.png differ
diff --git a/template/index2/assets/js/aos.js b/template/index2/assets/js/aos.js
new file mode 100644
index 0000000..24820df
--- /dev/null
+++ b/template/index2/assets/js/aos.js
@@ -0,0 +1,2 @@
+!function t(e,n,o){function r(i,c){if(!n[i]){if(!e[i]){var s="function"==typeof require&&require;if(!c&&s)return s(i,!0);if(a)return a(i,!0);var u=new Error("Cannot find module '"+i+"'");throw u.code="MODULE_NOT_FOUND",u}var l=n[i]={exports:{}};e[i][0].call(l.exports,function(t){var n=e[i][1][t];return r(n?n:t)},l,l.exports,t,e,n,o)}return n[i].exports}for(var a="function"==typeof require&&require,i=0;i2?n[i-2]:void 0,s=i>2?n[2]:void 0,u=i>1?n[i-1]:void 0;for("function"==typeof c?(c=o(c,u,5),i-=2):(c="function"==typeof u?u:void 0,i-=c?1:0),s&&r(n[0],n[1],s)&&(c=3>i?void 0:c,i=1);++a-1&&t%1==0&&e>t}function a(t,e,n){if(!c(n))return!1;var a=typeof e;if("number"==a?o(n)&&r(e,n.length):"string"==a&&e in n){var i=n[e];return t===t?t===i:i!==i}return!1}function i(t){return"number"==typeof t&&t>-1&&t%1==0&&u>=t}function c(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var s=/^\d+$/,u=9007199254740991,l=n("length");e.exports=a},{}],7:[function(t,e){function n(t,e,n){for(var o=-1,r=a(e),i=r.length;++o=t||t>e?c(g,d):v=setTimeout(u,t)}function l(){c(k,v)}function f(){if(p=arguments,b=s(),h=this,g=k&&(v||!x),w===!1)var n=x&&!v;else{d||x||(y=b);var o=w-(b-y),r=0>=o||o>w;r?(d&&(d=clearTimeout(d)),y=b,m=t.apply(h,p)):d||(d=setTimeout(l,o))}return r&&v?v=clearTimeout(v):v||e===w||(v=setTimeout(u,e)),n&&(r=!0,m=t.apply(h,p)),!r||v||d||(p=h=void 0),m}var p,d,m,b,h,v,g,y=0,w=!1,k=!0;if("function"!=typeof t)throw new TypeError(a);if(e=0>e?0:+e||0,n===!0){var x=!0;k=!1}else o(n)&&(x=!!n.leading,w="maxWait"in n&&i(+n.maxWait||0,e),k="trailing"in n?!!n.trailing:k);return f.cancel=r,f}function o(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var r=t("lodash._getnative"),a="Expected a function",i=Math.max,c=r(Date,"now"),s=c||function(){return(new Date).getTime()};e.exports=n},{"lodash._getnative":5}],9:[function(t,e){(function(t){function n(t){return function(e){return null==e?void 0:e[t]}}function o(t){return a(t)&&b.call(t,"callee")&&(!v.call(t,"callee")||h.call(t)==f)}function r(t){return null!=t&&!("function"==typeof t&&i(t))&&c(g(t))}function a(t){return u(t)&&r(t)}function i(t){var e=s(t)?h.call(t):"";return e==p||e==d}function c(t){return"number"==typeof t&&t>-1&&t%1==0&&l>=t}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function u(t){return!!t&&"object"==typeof t}var l=9007199254740991,f="[object Arguments]",p="[object Function]",d="[object GeneratorFunction]",m=t.Object.prototype,b=m.hasOwnProperty,h=m.toString,v=m.propertyIsEnumerable,g=n("length");e.exports=o}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],10:[function(t,e){function n(t){return!!t&&"object"==typeof t}function o(t,e){var n=null==t?void 0:t[e];return c(n)?n:void 0}function r(t){return"number"==typeof t&&t>-1&&t%1==0&&v>=t}function a(t){return i(t)&&m.call(t)==u}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function c(t){return null==t?!1:a(t)?b.test(p.call(t)):n(t)&&l.test(t)}var s="[object Array]",u="[object Function]",l=/^\[object .+?Constructor\]$/,f=Object.prototype,p=Function.prototype.toString,d=f.hasOwnProperty,m=f.toString,b=RegExp("^"+p.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),h=o(Array,"isArray"),v=9007199254740991,g=h||function(t){return n(t)&&r(t.length)&&m.call(t)==s};e.exports=g},{}],11:[function(t,e){function n(t){return function(e){return null==e?void 0:e[t]}}function o(t){return null!=t&&a(v(t))}function r(t,e){return t="number"==typeof t||p.test(t)?+t:-1,e=null==e?h:e,t>-1&&t%1==0&&e>t}function a(t){return"number"==typeof t&&t>-1&&t%1==0&&h>=t}function i(t){for(var e=s(t),n=e.length,o=n&&t.length,i=!!o&&a(o)&&(f(t)||l(t)),c=-1,u=[];++c0;++ot.position?t.node.classList.add("aos-animate"):"undefined"!=typeof o&&("false"===o||!n&&"true"!==o)&&t.node.classList.remove("aos-animate")},o=function(t,e){var o=window.pageYOffset,r=window.innerHeight;[].forEach.call(t,function(t){n(t,r+o,e)})};e.exports=o},{}],19:[function(t,e){var n=t("./calculateOffset"),o=function(t,e){return[].forEach.call(t,function(t){t.node.classList.add("aos-init"),t.position=n(t.node,e.offset)}),t};e.exports=o},{"./calculateOffset":15}],20:[function(t,e){var n=function(){var t=["[data-aos]","[data-aos-offset]","[data-aos-easing]","[data-aos-delay]","[data-aos-anchor]","[data-aos-anchor-placement]","[data-aos-once]"],e=t.join(", "),n=document.querySelectorAll(e);[].forEach.call(n,function(e){var n=/^data\-(.+)$/,o=[];[].forEach.call(e.attributes,function(r){if(n.test(r.nodeName)){var a=r.nodeName.match(n)[0],i="["+a+"]",c=r.nodeName.match(n)[1];e.getAttribute(a).length&&-1!==t.indexOf(i)&&(e.setAttribute(c,r.nodeValue),o.push(a))}});for(var r=0;rn;n++){t=a[n],e=i.querySelectorAll(t.selector);for(var r,c=0,s=e.length;s>c;c++)r=e[c],r.ready||(r.ready=!0,t.fn.call(r,r))}}var r,a=[],i=window.document,c=window.MutationObserver||window.WebKitMutationObserver;e.exports=n},{}],23:[function(t,e){var n=function(t){for(var e=0,n=0;t&&!isNaN(t.offsetLeft)&&!isNaN(t.offsetTop);)e+=t.offsetLeft-("BODY"!=t.tagName?t.scrollLeft:0),n+=t.offsetTop-("BODY"!=t.tagName?t.scrollTop:0),t=t.offsetParent;return{top:n,left:e}};e.exports=n},{}]},{},[14]);
+//# sourceMappingURL=aos.js.map
diff --git a/template/index2/assets/js/main.js b/template/index2/assets/js/main.js
new file mode 100644
index 0000000..521cc82
--- /dev/null
+++ b/template/index2/assets/js/main.js
@@ -0,0 +1,47 @@
+$(function(){
+ //wap下拉菜单
+ $('.hd_nav').click(function(){
+ if(!$(this).hasClass('active')){
+ $(this).addClass('active');
+ $('.wap_nav').fadeIn(200);
+ }else{
+ $(this).removeClass('active');
+ $('.wap_nav').fadeOut(100);
+ }
+ });
+
+ //置顶
+ var offset = 300,offset_opacity = 1200,scroll_top_duration = 700,$back_to_top = $('.cd-top');
+ $(window).scroll(function(){
+ ( $(this).scrollTop() > offset ) ? $back_to_top.addClass('cd-is-visible') : $back_to_top.removeClass('cd-is-visible cd-fade-out');
+ if( $(this).scrollTop() > offset_opacity ) {$back_to_top.addClass('cd-fade-out');}
+ });
+ $back_to_top.on('click', function(event){event.preventDefault();$('body,html').animate({scrollTop: 0 ,}, scroll_top_duration);});
+
+
+});
+
+//按钮倒计时
+function clickButton(t){
+ var obj = $("input[name='zymF']");
+ obj.attr("disabled","disabled");/*按钮倒计时*/
+ var time = t;
+ var set=setInterval(function(){
+ obj.val(--time+"(s)");
+ }, 1000);/*等待时间*/
+ setTimeout(function(){
+ obj.attr("disabled",false).val("重新获取");/*倒计时*/
+ clearInterval(set);
+ }, 1000*t);
+}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/template/index2/assets/picture/indi01.png b/template/index2/assets/picture/indi01.png
new file mode 100644
index 0000000..343a924
Binary files /dev/null and b/template/index2/assets/picture/indi01.png differ
diff --git a/template/index2/assets/picture/indi02.png b/template/index2/assets/picture/indi02.png
new file mode 100644
index 0000000..e728384
Binary files /dev/null and b/template/index2/assets/picture/indi02.png differ
diff --git a/template/index2/assets/picture/indi03.png b/template/index2/assets/picture/indi03.png
new file mode 100644
index 0000000..de5bb26
Binary files /dev/null and b/template/index2/assets/picture/indi03.png differ
diff --git a/template/index2/assets/picture/indi04.png b/template/index2/assets/picture/indi04.png
new file mode 100644
index 0000000..38d8754
Binary files /dev/null and b/template/index2/assets/picture/indi04.png differ
diff --git a/template/index2/assets/picture/indpay1.jpg b/template/index2/assets/picture/indpay1.jpg
new file mode 100644
index 0000000..02119e4
Binary files /dev/null and b/template/index2/assets/picture/indpay1.jpg differ
diff --git a/template/index2/assets/picture/indpay2.jpg b/template/index2/assets/picture/indpay2.jpg
new file mode 100644
index 0000000..15ddae6
Binary files /dev/null and b/template/index2/assets/picture/indpay2.jpg differ
diff --git a/template/index2/assets/picture/indpay3.jpg b/template/index2/assets/picture/indpay3.jpg
new file mode 100644
index 0000000..dd5b78f
Binary files /dev/null and b/template/index2/assets/picture/indpay3.jpg differ
diff --git a/template/index2/assets/picture/indpay4.jpg b/template/index2/assets/picture/indpay4.jpg
new file mode 100644
index 0000000..cd35e1a
Binary files /dev/null and b/template/index2/assets/picture/indpay4.jpg differ
diff --git a/template/index2/assets/picture/indpay5.jpg b/template/index2/assets/picture/indpay5.jpg
new file mode 100644
index 0000000..6e2987a
Binary files /dev/null and b/template/index2/assets/picture/indpay5.jpg differ
diff --git a/template/index2/assets/picture/indpay6.jpg b/template/index2/assets/picture/indpay6.jpg
new file mode 100644
index 0000000..ffb855c
Binary files /dev/null and b/template/index2/assets/picture/indpay6.jpg differ
diff --git a/template/index2/assets/picture/indpic01.png b/template/index2/assets/picture/indpic01.png
new file mode 100644
index 0000000..fb7c63e
Binary files /dev/null and b/template/index2/assets/picture/indpic01.png differ
diff --git a/template/index2/assets/picture/indpic02.png b/template/index2/assets/picture/indpic02.png
new file mode 100644
index 0000000..a87594e
Binary files /dev/null and b/template/index2/assets/picture/indpic02.png differ
diff --git a/template/index2/assets/picture/indpic03.png b/template/index2/assets/picture/indpic03.png
new file mode 100644
index 0000000..9743a20
Binary files /dev/null and b/template/index2/assets/picture/indpic03.png differ
diff --git a/template/index2/assets/picture/indpic04.png b/template/index2/assets/picture/indpic04.png
new file mode 100644
index 0000000..50c4ee5
Binary files /dev/null and b/template/index2/assets/picture/indpic04.png differ
diff --git a/template/index2/assets/picture/indpic05.png b/template/index2/assets/picture/indpic05.png
new file mode 100644
index 0000000..d183498
Binary files /dev/null and b/template/index2/assets/picture/indpic05.png differ
diff --git a/template/index2/assets/picture/indpl01.png b/template/index2/assets/picture/indpl01.png
new file mode 100644
index 0000000..14587fb
Binary files /dev/null and b/template/index2/assets/picture/indpl01.png differ
diff --git a/template/index2/assets/picture/indpl02.png b/template/index2/assets/picture/indpl02.png
new file mode 100644
index 0000000..b41bbc9
Binary files /dev/null and b/template/index2/assets/picture/indpl02.png differ
diff --git a/template/index2/assets/picture/indpl03.png b/template/index2/assets/picture/indpl03.png
new file mode 100644
index 0000000..2e1db0b
Binary files /dev/null and b/template/index2/assets/picture/indpl03.png differ
diff --git a/template/index2/assets/picture/indpl04.png b/template/index2/assets/picture/indpl04.png
new file mode 100644
index 0000000..f476b9c
Binary files /dev/null and b/template/index2/assets/picture/indpl04.png differ
diff --git a/template/index2/assets/picture/indpl05.png b/template/index2/assets/picture/indpl05.png
new file mode 100644
index 0000000..e843b5f
Binary files /dev/null and b/template/index2/assets/picture/indpl05.png differ
diff --git a/template/index2/assets/picture/indpl06.png b/template/index2/assets/picture/indpl06.png
new file mode 100644
index 0000000..39111fb
Binary files /dev/null and b/template/index2/assets/picture/indpl06.png differ
diff --git a/template/index2/assets/picture/indpl07.png b/template/index2/assets/picture/indpl07.png
new file mode 100644
index 0000000..dcc4abc
Binary files /dev/null and b/template/index2/assets/picture/indpl07.png differ
diff --git a/template/index2/assets/picture/indpl08.png b/template/index2/assets/picture/indpl08.png
new file mode 100644
index 0000000..ff0d86f
Binary files /dev/null and b/template/index2/assets/picture/indpl08.png differ
diff --git a/template/index2/index.php b/template/index2/index.php
new file mode 100644
index 0000000..f0ab735
--- /dev/null
+++ b/template/index2/index.php
@@ -0,0 +1,318 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
常见问题
+
+
+
+
Q 怎么入驻淘,成为商户?
+
A 通过平台的账户注册功能,即可免费入驻,快速实现支付接入
点此进入
+
+
+
+
+
Q 怎么快速接入?
+
A 点击开发文档有详细的接入手册,还有sdk一键接入
+
+
+
+
+
Q 平台可以卖些什么?
+
A 虚拟商品(例如软件注册码,论坛帐号等等,CDK,优惠卷),不可以卖虚假物品 涉嫌黄赌毒等商品。。
+
+
+
+
+
Q 商户结算方式有哪些?
+
A 支持支付宝、银行卡,后期我们还会增加微信结算。
+
+
+
+
+
Q 安全吗?
+
A 非常安全,运用先进的安全技术保护用户在平台账户中存储的个人信息、账户信息以及交易记录的安全。拥有完善的全监测系统,可以及时发现网站的非正常访问并做相应的安全响应。
+
+
+
+
+
Q 每日结算时间?
+
A 商户账户金额满10.00元,当天晚上12点后,系统自动帮您提现,财务将于第二天12点前结算到您预留的账户。
+
+
+
+
+
Q 如何查询订单?
+
A 打开平台的订单查询页面,输入订单号即可查询,
点此进入
+
+
+
+
+
+
Q 我的账户资金安全吗?
+
A 严格遵守国家相关的法律法规,对用户的隐私信息进行保护。未经您的同意,不会向任何第三方公司、组织和个人披露您的个人信息、账户信息以及交易信息(法律法规另有规定的除外)
+
+
+
+
+
+
+
+
+
+
+
致力于帮助企业快速和高质量地建立支付模块, 聚合主流通道,为您提供全方位支付体验,告别繁琐的接入流程
+
立即体验
+
+
+
+
寄售服务项目
+
CONSIGNMENT SERVICE ITEMS
+
+
+
+
+
渠道
+
CHANNEL OF PAYMENT
+
+
+
+
+
平台功能
+
PLATFORM FUNCTION
+
+
+
+
+
01.手续费扣除模式
+
+
A
+
+
模式1.买家承担
买家付款时会连同手续费一并支付
+
+
+
+
B
+
+
模式2.商家承担
手续费在成功付款的订单内扣除
+
+
+
+
+
+
+
+
+
+
+
极简使用
七行代码,极速完成,支付接入 简洁的操作界面易于使用
+
+
+
+
灵活便利
产品服务灵活组合 满足企业多元化业务需求
+
+
+
+
大数据
运用交易数据分析功能 了解公司运营状况
+
+
+
+
安全稳定
平台运行于阿里云计算中心 多备份容灾保障
+
+
+
+
不介入资金流
只负责交易处理不参与资金清算 保障您的资金安全
+
+
+
+
安全密码
可自行开关 为你的账户安全保驾护航
+
+
+
+
增值服务
提供金融产品及技术服务 帮助企业整合互联网金融
+
+
+
+
自助服务
同时平台全面提供7*24小时客户服务,保障客户问题随时得到处理解决
+
+
+
更多功能等你来发掘
+
+
+
+
核心优势
+
CHANNEL OF PAYMENT
+
+
+
+
+
服务器安全
+
采用群集服务器,防御高,故障率低,无论用户身在何处,均能获得流畅安全可靠的体验
+
立即体验
+
+
+
+
+
+
+
+
资金保障
+
商户的商品,全部加密处理,专业运维24小时处理,您的帐户安全将得到充分的保障。
+
立即体验
+
+
+
+
+
+
专属客服
+
专业客服团队,专属客服一对一贴心服务,7*24小时全天候在线为你解答。
+
立即体验
+
+
+
+
+
+
+
+
费率超低
+
支付渠道直接对接官方,直接去掉中间商的差价,因此我们可以给商户提供更低廉的费率
+
立即体验
+
+
+
+
+
+
+
+Top
+
+
+
+
+
diff --git a/template/index2/preview.png b/template/index2/preview.png
new file mode 100644
index 0000000..76196b3
Binary files /dev/null and b/template/index2/preview.png differ
diff --git a/template/index3/assets/css/animate.min.css b/template/index3/assets/css/animate.min.css
new file mode 100644
index 0000000..af7689d
--- /dev/null
+++ b/template/index3/assets/css/animate.min.css
@@ -0,0 +1,2668 @@
+/* 织梦无忧网 做最好的织梦整站模板下载网站 */
+/* 网址:Www.dedecms51.com */
+/* 图标大全:www.dedecms51.com 专业建站素材网站 */
+/* QQ:379144319 */
+@charset "UTF-8";
+/*!
+Animate.css - http://daneden.me/animate
+Licensed under the MIT license - http://opensource.org/licenses/MIT
+
+Copyright (c) 2013 Daniel Eden
+*/
+
+.animated {
+ -webkit-animation-duration: 1s;
+ animation-duration: 1s;
+ -webkit-animation-fill-mode: both;
+ animation-fill-mode: both
+}
+.animated.infinite {
+ -webkit-animation-iteration-count: infinite;
+ animation-iteration-count: infinite
+}
+.animated.hinge {
+ -webkit-animation-duration: 2s;
+ animation-duration: 2s
+}
+ @-webkit-keyframes bounce {
+ 0%, 100%, 20%, 53%, 80% {
+ -webkit-transition-timing-function: cubic-bezier(0.215, .61, .355, 1);
+ transition-timing-function: cubic-bezier(0.215, .61, .355, 1);
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0)
+}
+ 40%, 43% {
+ -webkit-transition-timing-function: cubic-bezier(0.755, .050, .855, .060);
+ transition-timing-function: cubic-bezier(0.755, .050, .855, .060);
+ -webkit-transform: translate3d(0, -30px, 0);
+ transform: translate3d(0, -30px, 0)
+}
+ 70% {
+ -webkit-transition-timing-function: cubic-bezier(0.755, .050, .855, .060);
+ transition-timing-function: cubic-bezier(0.755, .050, .855, .060);
+ -webkit-transform: translate3d(0, -15px, 0);
+ transform: translate3d(0, -15px, 0)
+}
+ 90% {
+ -webkit-transform: translate3d(0, -4px, 0);
+ transform: translate3d(0, -4px, 0)
+}
+}
+ @keyframes bounce {
+ 0%, 100%, 20%, 53%, 80% {
+ -webkit-transition-timing-function: cubic-bezier(0.215, .61, .355, 1);
+ transition-timing-function: cubic-bezier(0.215, .61, .355, 1);
+ -webkit-transform: translate3d(0, 0, 0);
+ -ms-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0)
+}
+ 40%, 43% {
+ -webkit-transition-timing-function: cubic-bezier(0.755, .050, .855, .060);
+ transition-timing-function: cubic-bezier(0.755, .050, .855, .060);
+ -webkit-transform: translate3d(0, -30px, 0);
+ -ms-transform: translate3d(0, -30px, 0);
+ transform: translate3d(0, -30px, 0)
+}
+ 70% {
+ -webkit-transition-timing-function: cubic-bezier(0.755, .050, .855, .060);
+ transition-timing-function: cubic-bezier(0.755, .050, .855, .060);
+ -webkit-transform: translate3d(0, -15px, 0);
+ -ms-transform: translate3d(0, -15px, 0);
+ transform: translate3d(0, -15px, 0)
+}
+ 90% {
+ -webkit-transform: translate3d(0, -4px, 0);
+ -ms-transform: translate3d(0, -4px, 0);
+ transform: translate3d(0, -4px, 0)
+}
+}
+.bounce {
+ -webkit-animation-name: bounce;
+ animation-name: bounce;
+ -webkit-transform-origin: center bottom;
+ -ms-transform-origin: center bottom;
+ transform-origin: center bottom
+}
+ @-webkit-keyframes flash {
+ 0%, 100%, 50% {
+ opacity: 1
+}
+ 25%, 75% {
+ opacity: 0
+}
+}
+ @keyframes flash {
+ 0%, 100%, 50% {
+ opacity: 1
+}
+ 25%, 75% {
+ opacity: 0
+}
+}
+.flash {
+ -webkit-animation-name: flash;
+ animation-name: flash
+}
+ @-webkit-keyframes pulse {
+ 0% {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1)
+}
+ 50% {
+ -webkit-transform: scale3d(1.05, 1.05, 1.05);
+ transform: scale3d(1.05, 1.05, 1.05)
+}
+ 100% {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1)
+}
+}
+ @keyframes pulse {
+ 0% {
+ -webkit-transform: scale3d(1, 1, 1);
+ -ms-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1)
+}
+ 50% {
+ -webkit-transform: scale3d(1.05, 1.05, 1.05);
+ -ms-transform: scale3d(1.05, 1.05, 1.05);
+ transform: scale3d(1.05, 1.05, 1.05)
+}
+ 100% {
+ -webkit-transform: scale3d(1, 1, 1);
+ -ms-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1)
+}
+}
+.pulse {
+ -webkit-animation-name: pulse;
+ animation-name: pulse
+}
+ @-webkit-keyframes rubberBand {
+ 0% {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1)
+}
+ 30% {
+ -webkit-transform: scale3d(1.25, .75, 1);
+ transform: scale3d(1.25, .75, 1)
+}
+ 40% {
+ -webkit-transform: scale3d(0.75, 1.25, 1);
+ transform: scale3d(0.75, 1.25, 1)
+}
+ 50% {
+ -webkit-transform: scale3d(1.15, .85, 1);
+ transform: scale3d(1.15, .85, 1)
+}
+ 65% {
+ -webkit-transform: scale3d(.95, 1.05, 1);
+ transform: scale3d(.95, 1.05, 1)
+}
+ 75% {
+ -webkit-transform: scale3d(1.05, .95, 1);
+ transform: scale3d(1.05, .95, 1)
+}
+ 100% {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1)
+}
+}
+ @keyframes rubberBand {
+ 0% {
+ -webkit-transform: scale3d(1, 1, 1);
+ -ms-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1)
+}
+ 30% {
+ -webkit-transform: scale3d(1.25, .75, 1);
+ -ms-transform: scale3d(1.25, .75, 1);
+ transform: scale3d(1.25, .75, 1)
+}
+ 40% {
+ -webkit-transform: scale3d(0.75, 1.25, 1);
+ -ms-transform: scale3d(0.75, 1.25, 1);
+ transform: scale3d(0.75, 1.25, 1)
+}
+ 50% {
+ -webkit-transform: scale3d(1.15, .85, 1);
+ -ms-transform: scale3d(1.15, .85, 1);
+ transform: scale3d(1.15, .85, 1)
+}
+ 65% {
+ -webkit-transform: scale3d(.95, 1.05, 1);
+ -ms-transform: scale3d(.95, 1.05, 1);
+ transform: scale3d(.95, 1.05, 1)
+}
+ 75% {
+ -webkit-transform: scale3d(1.05, .95, 1);
+ -ms-transform: scale3d(1.05, .95, 1);
+ transform: scale3d(1.05, .95, 1)
+}
+ 100% {
+ -webkit-transform: scale3d(1, 1, 1);
+ -ms-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1)
+}
+}
+.rubberBand {
+ -webkit-animation-name: rubberBand;
+ animation-name: rubberBand
+}
+ @-webkit-keyframes shake {
+ 0%, 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0)
+}
+ 10%, 30%, 50%, 70%, 90% {
+ -webkit-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0)
+}
+ 20%, 40%, 60%, 80% {
+ -webkit-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0)
+}
+}
+ @keyframes shake {
+ 0%, 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ -ms-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0)
+}
+ 10%, 30%, 50%, 70%, 90% {
+ -webkit-transform: translate3d(-10px, 0, 0);
+ -ms-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0)
+}
+ 20%, 40%, 60%, 80% {
+ -webkit-transform: translate3d(10px, 0, 0);
+ -ms-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0)
+}
+}
+.shake {
+ -webkit-animation-name: shake;
+ animation-name: shake
+}
+ @-webkit-keyframes swing {
+ 20% {
+ -webkit-transform: rotate3d(0, 0, 1, 15deg);
+ transform: rotate3d(0, 0, 1, 15deg)
+}
+ 40% {
+ -webkit-transform: rotate3d(0, 0, 1, -10deg);
+ transform: rotate3d(0, 0, 1, -10deg)
+}
+ 60% {
+ -webkit-transform: rotate3d(0, 0, 1, 5deg);
+ transform: rotate3d(0, 0, 1, 5deg)
+}
+ 80% {
+ -webkit-transform: rotate3d(0, 0, 1, -5deg);
+ transform: rotate3d(0, 0, 1, -5deg)
+}
+ 100% {
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
+ transform: rotate3d(0, 0, 1, 0deg)
+}
+}
+ @keyframes swing {
+ 20% {
+ -webkit-transform: rotate3d(0, 0, 1, 15deg);
+ -ms-transform: rotate3d(0, 0, 1, 15deg);
+ transform: rotate3d(0, 0, 1, 15deg)
+}
+ 40% {
+ -webkit-transform: rotate3d(0, 0, 1, -10deg);
+ -ms-transform: rotate3d(0, 0, 1, -10deg);
+ transform: rotate3d(0, 0, 1, -10deg)
+}
+ 60% {
+ -webkit-transform: rotate3d(0, 0, 1, 5deg);
+ -ms-transform: rotate3d(0, 0, 1, 5deg);
+ transform: rotate3d(0, 0, 1, 5deg)
+}
+ 80% {
+ -webkit-transform: rotate3d(0, 0, 1, -5deg);
+ -ms-transform: rotate3d(0, 0, 1, -5deg);
+ transform: rotate3d(0, 0, 1, -5deg)
+}
+ 100% {
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
+ -ms-transform: rotate3d(0, 0, 1, 0deg);
+ transform: rotate3d(0, 0, 1, 0deg)
+}
+}
+.swing {
+ -webkit-transform-origin: top center;
+ -ms-transform-origin: top center;
+ transform-origin: top center;
+ -webkit-animation-name: swing;
+ animation-name: swing
+}
+ @-webkit-keyframes tada {
+ 0% {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1)
+}
+ 10%, 20% {
+ -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
+ transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)
+}
+ 30%, 50%, 70%, 90% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)
+}
+ 40%, 60%, 80% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)
+}
+ 100% {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1)
+}
+}
+ @keyframes tada {
+ 0% {
+ -webkit-transform: scale3d(1, 1, 1);
+ -ms-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1)
+}
+ 10%, 20% {
+ -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
+ -ms-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
+ transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)
+}
+ 30%, 50%, 70%, 90% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
+ -ms-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)
+}
+ 40%, 60%, 80% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
+ -ms-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)
+}
+ 100% {
+ -webkit-transform: scale3d(1, 1, 1);
+ -ms-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1)
+}
+}
+.tada {
+ -webkit-animation-name: tada;
+ animation-name: tada
+}
+ @-webkit-keyframes wobble {
+ 0% {
+ -webkit-transform: none;
+ transform: none
+}
+ 15% {
+ -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)
+}
+ 30% {
+ -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)
+}
+ 45% {
+ -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)
+}
+ 60% {
+ -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)
+}
+ 75% {
+ -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)
+}
+ 100% {
+ -webkit-transform: none;
+ transform: none
+}
+}
+ @keyframes wobble {
+ 0% {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none
+}
+ 15% {
+ -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
+ -ms-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)
+}
+ 30% {
+ -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
+ -ms-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)
+}
+ 45% {
+ -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
+ -ms-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)
+}
+ 60% {
+ -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
+ -ms-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)
+}
+ 75% {
+ -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
+ -ms-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)
+}
+ 100% {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none
+}
+}
+.wobble {
+ -webkit-animation-name: wobble;
+ animation-name: wobble
+}
+ @-webkit-keyframes bounceIn {
+ 0%, 100%, 20%, 40%, 60%, 80% {
+ -webkit-transition-timing-function: cubic-bezier(0.215, .61, .355, 1);
+ transition-timing-function: cubic-bezier(0.215, .61, .355, 1)
+}
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(.3, .3, .3);
+ transform: scale3d(.3, .3, .3)
+}
+ 20% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
+ transform: scale3d(1.1, 1.1, 1.1)
+}
+ 40% {
+ -webkit-transform: scale3d(.9, .9, .9);
+ transform: scale3d(.9, .9, .9)
+}
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(1.03, 1.03, 1.03);
+ transform: scale3d(1.03, 1.03, 1.03)
+}
+ 80% {
+ -webkit-transform: scale3d(.97, .97, .97);
+ transform: scale3d(.97, .97, .97)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1)
+}
+}
+ @keyframes bounceIn {
+ 0%, 100%, 20%, 40%, 60%, 80% {
+ -webkit-transition-timing-function: cubic-bezier(0.215, .61, .355, 1);
+ transition-timing-function: cubic-bezier(0.215, .61, .355, 1)
+}
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(.3, .3, .3);
+ -ms-transform: scale3d(.3, .3, .3);
+ transform: scale3d(.3, .3, .3)
+}
+ 20% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
+ -ms-transform: scale3d(1.1, 1.1, 1.1);
+ transform: scale3d(1.1, 1.1, 1.1)
+}
+ 40% {
+ -webkit-transform: scale3d(.9, .9, .9);
+ -ms-transform: scale3d(.9, .9, .9);
+ transform: scale3d(.9, .9, .9)
+}
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(1.03, 1.03, 1.03);
+ -ms-transform: scale3d(1.03, 1.03, 1.03);
+ transform: scale3d(1.03, 1.03, 1.03)
+}
+ 80% {
+ -webkit-transform: scale3d(.97, .97, .97);
+ -ms-transform: scale3d(.97, .97, .97);
+ transform: scale3d(.97, .97, .97)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale3d(1, 1, 1);
+ -ms-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1)
+}
+}
+.bounceIn {
+ -webkit-animation-name: bounceIn;
+ animation-name: bounceIn;
+ -webkit-animation-duration: .75s;
+ animation-duration: .75s
+}
+ @-webkit-keyframes bounceInDown {
+ 0%, 100%, 60%, 75%, 90% {
+ -webkit-transition-timing-function: cubic-bezier(0.215, .61, .355, 1);
+ transition-timing-function: cubic-bezier(0.215, .61, .355, 1)
+}
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -3000px, 0);
+ transform: translate3d(0, -3000px, 0)
+}
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 25px, 0);
+ transform: translate3d(0, 25px, 0)
+}
+ 75% {
+ -webkit-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0)
+}
+ 90% {
+ -webkit-transform: translate3d(0, 5px, 0);
+ transform: translate3d(0, 5px, 0)
+}
+ 100% {
+ -webkit-transform: none;
+ transform: none
+}
+}
+ @keyframes bounceInDown {
+ 0%, 100%, 60%, 75%, 90% {
+ -webkit-transition-timing-function: cubic-bezier(0.215, .61, .355, 1);
+ transition-timing-function: cubic-bezier(0.215, .61, .355, 1)
+}
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -3000px, 0);
+ -ms-transform: translate3d(0, -3000px, 0);
+ transform: translate3d(0, -3000px, 0)
+}
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 25px, 0);
+ -ms-transform: translate3d(0, 25px, 0);
+ transform: translate3d(0, 25px, 0)
+}
+ 75% {
+ -webkit-transform: translate3d(0, -10px, 0);
+ -ms-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0)
+}
+ 90% {
+ -webkit-transform: translate3d(0, 5px, 0);
+ -ms-transform: translate3d(0, 5px, 0);
+ transform: translate3d(0, 5px, 0)
+}
+ 100% {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none
+}
+}
+.bounceInDown {
+ -webkit-animation-name: bounceInDown;
+ animation-name: bounceInDown
+}
+ @-webkit-keyframes bounceInLeft {
+ 0%, 100%, 60%, 75%, 90% {
+ -webkit-transition-timing-function: cubic-bezier(0.215, .61, .355, 1);
+ transition-timing-function: cubic-bezier(0.215, .61, .355, 1)
+}
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(-3000px, 0, 0);
+ transform: translate3d(-3000px, 0, 0)
+}
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(25px, 0, 0);
+ transform: translate3d(25px, 0, 0)
+}
+ 75% {
+ -webkit-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0)
+}
+ 90% {
+ -webkit-transform: translate3d(5px, 0, 0);
+ transform: translate3d(5px, 0, 0)
+}
+ 100% {
+ -webkit-transform: none;
+ transform: none
+}
+}
+ @keyframes bounceInLeft {
+ 0%, 100%, 60%, 75%, 90% {
+ -webkit-transition-timing-function: cubic-bezier(0.215, .61, .355, 1);
+ transition-timing-function: cubic-bezier(0.215, .61, .355, 1)
+}
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(-3000px, 0, 0);
+ -ms-transform: translate3d(-3000px, 0, 0);
+ transform: translate3d(-3000px, 0, 0)
+}
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(25px, 0, 0);
+ -ms-transform: translate3d(25px, 0, 0);
+ transform: translate3d(25px, 0, 0)
+}
+ 75% {
+ -webkit-transform: translate3d(-10px, 0, 0);
+ -ms-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0)
+}
+ 90% {
+ -webkit-transform: translate3d(5px, 0, 0);
+ -ms-transform: translate3d(5px, 0, 0);
+ transform: translate3d(5px, 0, 0)
+}
+ 100% {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none
+}
+}
+.bounceInLeft {
+ -webkit-animation-name: bounceInLeft;
+ animation-name: bounceInLeft
+}
+ @-webkit-keyframes bounceInRight {
+ 0%, 100%, 60%, 75%, 90% {
+ -webkit-transition-timing-function: cubic-bezier(0.215, .61, .355, 1);
+ transition-timing-function: cubic-bezier(0.215, .61, .355, 1)
+}
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(3000px, 0, 0);
+ transform: translate3d(3000px, 0, 0)
+}
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(-25px, 0, 0);
+ transform: translate3d(-25px, 0, 0)
+}
+ 75% {
+ -webkit-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0)
+}
+ 90% {
+ -webkit-transform: translate3d(-5px, 0, 0);
+ transform: translate3d(-5px, 0, 0)
+}
+ 100% {
+ -webkit-transform: none;
+ transform: none
+}
+}
+ @keyframes bounceInRight {
+ 0%, 100%, 60%, 75%, 90% {
+ -webkit-transition-timing-function: cubic-bezier(0.215, .61, .355, 1);
+ transition-timing-function: cubic-bezier(0.215, .61, .355, 1)
+}
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(3000px, 0, 0);
+ -ms-transform: translate3d(3000px, 0, 0);
+ transform: translate3d(3000px, 0, 0)
+}
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(-25px, 0, 0);
+ -ms-transform: translate3d(-25px, 0, 0);
+ transform: translate3d(-25px, 0, 0)
+}
+ 75% {
+ -webkit-transform: translate3d(10px, 0, 0);
+ -ms-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0)
+}
+ 90% {
+ -webkit-transform: translate3d(-5px, 0, 0);
+ -ms-transform: translate3d(-5px, 0, 0);
+ transform: translate3d(-5px, 0, 0)
+}
+ 100% {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none
+}
+}
+.bounceInRight {
+ -webkit-animation-name: bounceInRight;
+ animation-name: bounceInRight
+}
+ @-webkit-keyframes bounceInUp {
+ 0%, 100%, 60%, 75%, 90% {
+ -webkit-transition-timing-function: cubic-bezier(0.215, .61, .355, 1);
+ transition-timing-function: cubic-bezier(0.215, .61, .355, 1)
+}
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 3000px, 0);
+ transform: translate3d(0, 3000px, 0)
+}
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0)
+}
+ 75% {
+ -webkit-transform: translate3d(0, 10px, 0);
+ transform: translate3d(0, 10px, 0)
+}
+ 90% {
+ -webkit-transform: translate3d(0, -5px, 0);
+ transform: translate3d(0, -5px, 0)
+}
+ 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0)
+}
+}
+ @keyframes bounceInUp {
+ 0%, 100%, 60%, 75%, 90% {
+ -webkit-transition-timing-function: cubic-bezier(0.215, .61, .355, 1);
+ transition-timing-function: cubic-bezier(0.215, .61, .355, 1)
+}
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 3000px, 0);
+ -ms-transform: translate3d(0, 3000px, 0);
+ transform: translate3d(0, 3000px, 0)
+}
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, -20px, 0);
+ -ms-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0)
+}
+ 75% {
+ -webkit-transform: translate3d(0, 10px, 0);
+ -ms-transform: translate3d(0, 10px, 0);
+ transform: translate3d(0, 10px, 0)
+}
+ 90% {
+ -webkit-transform: translate3d(0, -5px, 0);
+ -ms-transform: translate3d(0, -5px, 0);
+ transform: translate3d(0, -5px, 0)
+}
+ 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ -ms-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0)
+}
+}
+.bounceInUp {
+ -webkit-animation-name: bounceInUp;
+ animation-name: bounceInUp
+}
+ @-webkit-keyframes bounceOut {
+ 20% {
+ -webkit-transform: scale3d(.9, .9, .9);
+ transform: scale3d(.9, .9, .9)
+}
+ 50%, 55% {
+ opacity: 1;
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
+ transform: scale3d(1.1, 1.1, 1.1)
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale3d(.3, .3, .3);
+ transform: scale3d(.3, .3, .3)
+}
+}
+ @keyframes bounceOut {
+ 20% {
+ -webkit-transform: scale3d(.9, .9, .9);
+ -ms-transform: scale3d(.9, .9, .9);
+ transform: scale3d(.9, .9, .9)
+}
+ 50%, 55% {
+ opacity: 1;
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
+ -ms-transform: scale3d(1.1, 1.1, 1.1);
+ transform: scale3d(1.1, 1.1, 1.1)
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale3d(.3, .3, .3);
+ -ms-transform: scale3d(.3, .3, .3);
+ transform: scale3d(.3, .3, .3)
+}
+}
+.bounceOut {
+ -webkit-animation-name: bounceOut;
+ animation-name: bounceOut;
+ -webkit-animation-duration: .75s;
+ animation-duration: .75s
+}
+ @-webkit-keyframes bounceOutDown {
+ 20% {
+ -webkit-transform: translate3d(0, 10px, 0);
+ transform: translate3d(0, 10px, 0)
+}
+ 40%, 45% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0)
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0)
+}
+}
+ @keyframes bounceOutDown {
+ 20% {
+ -webkit-transform: translate3d(0, 10px, 0);
+ -ms-transform: translate3d(0, 10px, 0);
+ transform: translate3d(0, 10px, 0)
+}
+ 40%, 45% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, -20px, 0);
+ -ms-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0)
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ -ms-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0)
+}
+}
+.bounceOutDown {
+ -webkit-animation-name: bounceOutDown;
+ animation-name: bounceOutDown
+}
+ @-webkit-keyframes bounceOutLeft {
+ 20% {
+ opacity: 1;
+ -webkit-transform: translate3d(20px, 0, 0);
+ transform: translate3d(20px, 0, 0)
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0)
+}
+}
+ @keyframes bounceOutLeft {
+ 20% {
+ opacity: 1;
+ -webkit-transform: translate3d(20px, 0, 0);
+ -ms-transform: translate3d(20px, 0, 0);
+ transform: translate3d(20px, 0, 0)
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ -ms-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0)
+}
+}
+.bounceOutLeft {
+ -webkit-animation-name: bounceOutLeft;
+ animation-name: bounceOutLeft
+}
+ @-webkit-keyframes bounceOutRight {
+ 20% {
+ opacity: 1;
+ -webkit-transform: translate3d(-20px, 0, 0);
+ transform: translate3d(-20px, 0, 0)
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0)
+}
+}
+ @keyframes bounceOutRight {
+ 20% {
+ opacity: 1;
+ -webkit-transform: translate3d(-20px, 0, 0);
+ -ms-transform: translate3d(-20px, 0, 0);
+ transform: translate3d(-20px, 0, 0)
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ -ms-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0)
+}
+}
+.bounceOutRight {
+ -webkit-animation-name: bounceOutRight;
+ animation-name: bounceOutRight
+}
+ @-webkit-keyframes bounceOutUp {
+ 20% {
+ -webkit-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0)
+}
+ 40%, 45% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 20px, 0);
+ transform: translate3d(0, 20px, 0)
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0)
+}
+}
+ @keyframes bounceOutUp {
+ 20% {
+ -webkit-transform: translate3d(0, -10px, 0);
+ -ms-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0)
+}
+ 40%, 45% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 20px, 0);
+ -ms-transform: translate3d(0, 20px, 0);
+ transform: translate3d(0, 20px, 0)
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ -ms-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0)
+}
+}
+.bounceOutUp {
+ -webkit-animation-name: bounceOutUp;
+ animation-name: bounceOutUp
+}
+ @-webkit-keyframes fadeIn {
+ 0% {
+ opacity: 0
+}
+ 100% {
+ opacity: 1
+}
+}
+ @keyframes fadeIn {
+ 0% {
+ opacity: 0
+}
+ 100% {
+ opacity: 1
+}
+}
+.fadeIn {
+ -webkit-animation-name: fadeIn;
+ animation-name: fadeIn
+}
+ @-webkit-keyframes fadeInDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none
+}
+}
+ @keyframes fadeInDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ -ms-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none
+}
+}
+.fadeInDown {
+ -webkit-animation-name: fadeInDown;
+ animation-name: fadeInDown
+}
+ @-webkit-keyframes fadeInDownBig {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none
+}
+}
+ @keyframes fadeInDownBig {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ -ms-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none
+}
+}
+.fadeInDownBig {
+ -webkit-animation-name: fadeInDownBig;
+ animation-name: fadeInDownBig
+}
+ @-webkit-keyframes fadeInLeft {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none
+}
+}
+ @keyframes fadeInLeft {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ -ms-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none
+}
+}
+.fadeInLeft {
+ -webkit-animation-name: fadeInLeft;
+ animation-name: fadeInLeft
+}
+ @-webkit-keyframes fadeInLeftBig {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none
+}
+}
+ @keyframes fadeInLeftBig {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ -ms-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none
+}
+}
+.fadeInLeftBig {
+ -webkit-animation-name: fadeInLeftBig;
+ animation-name: fadeInLeftBig
+}
+ @-webkit-keyframes fadeInRight {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none
+}
+}
+ @keyframes fadeInRight {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ -ms-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none
+}
+}
+.fadeInRight {
+ -webkit-animation-name: fadeInRight;
+ animation-name: fadeInRight
+}
+ @-webkit-keyframes fadeInRightBig {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none
+}
+}
+ @keyframes fadeInRightBig {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ -ms-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none
+}
+}
+.fadeInRightBig {
+ -webkit-animation-name: fadeInRightBig;
+ animation-name: fadeInRightBig
+}
+ @-webkit-keyframes fadeInUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none
+}
+}
+ @keyframes fadeInUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ -ms-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none
+}
+}
+.fadeInUp {
+ -webkit-animation-name: fadeInUp;
+ animation-name: fadeInUp
+}
+ @-webkit-keyframes fadeInUpBig {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none
+}
+}
+ @keyframes fadeInUpBig {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ -ms-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none
+}
+}
+.fadeInUpBig {
+ -webkit-animation-name: fadeInUpBig;
+ animation-name: fadeInUpBig
+}
+ @-webkit-keyframes fadeOut {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0
+}
+}
+ @keyframes fadeOut {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0
+}
+}
+.fadeOut {
+ -webkit-animation-name: fadeOut;
+ animation-name: fadeOut
+}
+ @-webkit-keyframes fadeOutDown {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0)
+}
+}
+ @keyframes fadeOutDown {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ -ms-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0)
+}
+}
+.fadeOutDown {
+ -webkit-animation-name: fadeOutDown;
+ animation-name: fadeOutDown
+}
+ @-webkit-keyframes fadeOutDownBig {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0)
+}
+}
+ @keyframes fadeOutDownBig {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ -ms-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0)
+}
+}
+.fadeOutDownBig {
+ -webkit-animation-name: fadeOutDownBig;
+ animation-name: fadeOutDownBig
+}
+ @-webkit-keyframes fadeOutLeft {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0)
+}
+}
+ @keyframes fadeOutLeft {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ -ms-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0)
+}
+}
+.fadeOutLeft {
+ -webkit-animation-name: fadeOutLeft;
+ animation-name: fadeOutLeft
+}
+ @-webkit-keyframes fadeOutLeftBig {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0)
+}
+}
+ @keyframes fadeOutLeftBig {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ -ms-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0)
+}
+}
+.fadeOutLeftBig {
+ -webkit-animation-name: fadeOutLeftBig;
+ animation-name: fadeOutLeftBig
+}
+ @-webkit-keyframes fadeOutRight {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0)
+}
+}
+ @keyframes fadeOutRight {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ -ms-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0)
+}
+}
+.fadeOutRight {
+ -webkit-animation-name: fadeOutRight;
+ animation-name: fadeOutRight
+}
+ @-webkit-keyframes fadeOutRightBig {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0)
+}
+}
+ @keyframes fadeOutRightBig {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ -ms-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0)
+}
+}
+.fadeOutRightBig {
+ -webkit-animation-name: fadeOutRightBig;
+ animation-name: fadeOutRightBig
+}
+ @-webkit-keyframes fadeOutUp {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0)
+}
+}
+ @keyframes fadeOutUp {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ -ms-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0)
+}
+}
+.fadeOutUp {
+ -webkit-animation-name: fadeOutUp;
+ animation-name: fadeOutUp
+}
+ @-webkit-keyframes fadeOutUpBig {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0)
+}
+}
+ @keyframes fadeOutUpBig {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ -ms-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0)
+}
+}
+.fadeOutUpBig {
+ -webkit-animation-name: fadeOutUpBig;
+ animation-name: fadeOutUpBig
+}
+ @-webkit-keyframes flip {
+ 0% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
+ -webkit-animation-timing-function: ease-out;
+ animation-timing-function: ease-out
+}
+ 40% {
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
+ -webkit-animation-timing-function: ease-out;
+ animation-timing-function: ease-out
+}
+ 50% {
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in
+}
+ 80% {
+ -webkit-transform: perspective(400px) scale3d(.95, .95, .95);
+ transform: perspective(400px) scale3d(.95, .95, .95);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in
+}
+ 100% {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in
+}
+}
+ @keyframes flip {
+ 0% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
+ -ms-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
+ -webkit-animation-timing-function: ease-out;
+ animation-timing-function: ease-out
+}
+ 40% {
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
+ -ms-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
+ -webkit-animation-timing-function: ease-out;
+ animation-timing-function: ease-out
+}
+ 50% {
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
+ -ms-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in
+}
+ 80% {
+ -webkit-transform: perspective(400px) scale3d(.95, .95, .95);
+ -ms-transform: perspective(400px) scale3d(.95, .95, .95);
+ transform: perspective(400px) scale3d(.95, .95, .95);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in
+}
+ 100% {
+ -webkit-transform: perspective(400px);
+ -ms-transform: perspective(400px);
+ transform: perspective(400px);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in
+}
+}
+.animated.flip {
+ -webkit-backface-visibility: visible;
+ -ms-backface-visibility: visible;
+ backface-visibility: visible;
+ -webkit-animation-name: flip;
+ animation-name: flip
+}
+ @-webkit-keyframes flipInX {
+ 0% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ -webkit-transition-timing-function: ease-in;
+ transition-timing-function: ease-in;
+ opacity: 0
+}
+ 40% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ -webkit-transition-timing-function: ease-in;
+ transition-timing-function: ease-in
+}
+ 60% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ opacity: 1
+}
+ 80% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg)
+}
+ 100% {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px)
+}
+}
+ @keyframes flipInX {
+ 0% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ -ms-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ -webkit-transition-timing-function: ease-in;
+ transition-timing-function: ease-in;
+ opacity: 0
+}
+ 40% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ -ms-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ -webkit-transition-timing-function: ease-in;
+ transition-timing-function: ease-in
+}
+ 60% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ -ms-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ opacity: 1
+}
+ 80% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ -ms-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg)
+}
+ 100% {
+ -webkit-transform: perspective(400px);
+ -ms-transform: perspective(400px);
+ transform: perspective(400px)
+}
+}
+.flipInX {
+ -webkit-backface-visibility: visible!important;
+ -ms-backface-visibility: visible!important;
+ backface-visibility: visible!important;
+ -webkit-animation-name: flipInX;
+ animation-name: flipInX
+}
+ @-webkit-keyframes flipInY {
+ 0% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ -webkit-transition-timing-function: ease-in;
+ transition-timing-function: ease-in;
+ opacity: 0
+}
+ 40% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
+ -webkit-transition-timing-function: ease-in;
+ transition-timing-function: ease-in
+}
+ 60% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
+ opacity: 1
+}
+ 80% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -5deg)
+}
+ 100% {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px)
+}
+}
+ @keyframes flipInY {
+ 0% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ -ms-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ -webkit-transition-timing-function: ease-in;
+ transition-timing-function: ease-in;
+ opacity: 0
+}
+ 40% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
+ -ms-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
+ -webkit-transition-timing-function: ease-in;
+ transition-timing-function: ease-in
+}
+ 60% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
+ -ms-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
+ opacity: 1
+}
+ 80% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
+ -ms-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -5deg)
+}
+ 100% {
+ -webkit-transform: perspective(400px);
+ -ms-transform: perspective(400px);
+ transform: perspective(400px)
+}
+}
+.flipInY {
+ -webkit-backface-visibility: visible!important;
+ -ms-backface-visibility: visible!important;
+ backface-visibility: visible!important;
+ -webkit-animation-name: flipInY;
+ animation-name: flipInY
+}
+ @-webkit-keyframes flipOutX {
+ 0% {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px)
+}
+ 30% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ opacity: 1
+}
+ 100% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ opacity: 0
+}
+}
+ @keyframes flipOutX {
+ 0% {
+ -webkit-transform: perspective(400px);
+ -ms-transform: perspective(400px);
+ transform: perspective(400px)
+}
+ 30% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ -ms-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ opacity: 1
+}
+ 100% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ -ms-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ opacity: 0
+}
+}
+.flipOutX {
+ -webkit-animation-name: flipOutX;
+ animation-name: flipOutX;
+ -webkit-animation-duration: .75s;
+ animation-duration: .75s;
+ -webkit-backface-visibility: visible!important;
+ -ms-backface-visibility: visible!important;
+ backface-visibility: visible!important
+}
+ @-webkit-keyframes flipOutY {
+ 0% {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px)
+}
+ 30% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
+ opacity: 1
+}
+ 100% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ opacity: 0
+}
+}
+ @keyframes flipOutY {
+ 0% {
+ -webkit-transform: perspective(400px);
+ -ms-transform: perspective(400px);
+ transform: perspective(400px)
+}
+ 30% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
+ -ms-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
+ opacity: 1
+}
+ 100% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ -ms-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ opacity: 0
+}
+}
+.flipOutY {
+ -webkit-backface-visibility: visible!important;
+ -ms-backface-visibility: visible!important;
+ backface-visibility: visible!important;
+ -webkit-animation-name: flipOutY;
+ animation-name: flipOutY;
+ -webkit-animation-duration: .75s;
+ animation-duration: .75s
+}
+ @-webkit-keyframes lightSpeedIn {
+ 0% {
+ -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
+ transform: translate3d(100%, 0, 0) skewX(-30deg);
+ opacity: 0
+}
+ 60% {
+ -webkit-transform: skewX(20deg);
+ transform: skewX(20deg);
+ opacity: 1
+}
+ 80% {
+ -webkit-transform: skewX(-5deg);
+ transform: skewX(-5deg);
+ opacity: 1
+}
+ 100% {
+ -webkit-transform: none;
+ transform: none;
+ opacity: 1
+}
+}
+ @keyframes lightSpeedIn {
+ 0% {
+ -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
+ -ms-transform: translate3d(100%, 0, 0) skewX(-30deg);
+ transform: translate3d(100%, 0, 0) skewX(-30deg);
+ opacity: 0
+}
+ 60% {
+ -webkit-transform: skewX(20deg);
+ -ms-transform: skewX(20deg);
+ transform: skewX(20deg);
+ opacity: 1
+}
+ 80% {
+ -webkit-transform: skewX(-5deg);
+ -ms-transform: skewX(-5deg);
+ transform: skewX(-5deg);
+ opacity: 1
+}
+ 100% {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none;
+ opacity: 1
+}
+}
+.lightSpeedIn {
+ -webkit-animation-name: lightSpeedIn;
+ animation-name: lightSpeedIn;
+ -webkit-animation-timing-function: ease-out;
+ animation-timing-function: ease-out
+}
+ @-webkit-keyframes lightSpeedOut {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
+ transform: translate3d(100%, 0, 0) skewX(30deg);
+ opacity: 0
+}
+}
+ @keyframes lightSpeedOut {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
+ -ms-transform: translate3d(100%, 0, 0) skewX(30deg);
+ transform: translate3d(100%, 0, 0) skewX(30deg);
+ opacity: 0
+}
+}
+.lightSpeedOut {
+ -webkit-animation-name: lightSpeedOut;
+ animation-name: lightSpeedOut;
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in
+}
+ @-webkit-keyframes rotateIn {
+ 0% {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
+ transform: rotate3d(0, 0, 1, -200deg);
+ opacity: 0
+}
+ 100% {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: none;
+ transform: none;
+ opacity: 1
+}
+}
+ @keyframes rotateIn {
+ 0% {
+ -webkit-transform-origin: center;
+ -ms-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
+ -ms-transform: rotate3d(0, 0, 1, -200deg);
+ transform: rotate3d(0, 0, 1, -200deg);
+ opacity: 0
+}
+ 100% {
+ -webkit-transform-origin: center;
+ -ms-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none;
+ opacity: 1
+}
+}
+.rotateIn {
+ -webkit-animation-name: rotateIn;
+ animation-name: rotateIn
+}
+ @-webkit-keyframes rotateInDownLeft {
+ 0% {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0
+}
+ 100% {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: none;
+ transform: none;
+ opacity: 1
+}
+}
+ @keyframes rotateInDownLeft {
+ 0% {
+ -webkit-transform-origin: left bottom;
+ -ms-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ -ms-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0
+}
+ 100% {
+ -webkit-transform-origin: left bottom;
+ -ms-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none;
+ opacity: 1
+}
+}
+.rotateInDownLeft {
+ -webkit-animation-name: rotateInDownLeft;
+ animation-name: rotateInDownLeft
+}
+ @-webkit-keyframes rotateInDownRight {
+ 0% {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0
+}
+ 100% {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: none;
+ transform: none;
+ opacity: 1
+}
+}
+ @keyframes rotateInDownRight {
+ 0% {
+ -webkit-transform-origin: right bottom;
+ -ms-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ -ms-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0
+}
+ 100% {
+ -webkit-transform-origin: right bottom;
+ -ms-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none;
+ opacity: 1
+}
+}
+.rotateInDownRight {
+ -webkit-animation-name: rotateInDownRight;
+ animation-name: rotateInDownRight
+}
+ @-webkit-keyframes rotateInUpLeft {
+ 0% {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0
+}
+ 100% {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: none;
+ transform: none;
+ opacity: 1
+}
+}
+ @keyframes rotateInUpLeft {
+ 0% {
+ -webkit-transform-origin: left bottom;
+ -ms-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ -ms-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0
+}
+ 100% {
+ -webkit-transform-origin: left bottom;
+ -ms-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none;
+ opacity: 1
+}
+}
+.rotateInUpLeft {
+ -webkit-animation-name: rotateInUpLeft;
+ animation-name: rotateInUpLeft
+}
+ @-webkit-keyframes rotateInUpRight {
+ 0% {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
+ transform: rotate3d(0, 0, 1, -90deg);
+ opacity: 0
+}
+ 100% {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: none;
+ transform: none;
+ opacity: 1
+}
+}
+ @keyframes rotateInUpRight {
+ 0% {
+ -webkit-transform-origin: right bottom;
+ -ms-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
+ -ms-transform: rotate3d(0, 0, 1, -90deg);
+ transform: rotate3d(0, 0, 1, -90deg);
+ opacity: 0
+}
+ 100% {
+ -webkit-transform-origin: right bottom;
+ -ms-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none;
+ opacity: 1
+}
+}
+.rotateInUpRight {
+ -webkit-animation-name: rotateInUpRight;
+ animation-name: rotateInUpRight
+}
+ @-webkit-keyframes rotateOut {
+ 0% {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ opacity: 1
+}
+ 100% {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: rotate3d(0, 0, 1, 200deg);
+ transform: rotate3d(0, 0, 1, 200deg);
+ opacity: 0
+}
+}
+ @keyframes rotateOut {
+ 0% {
+ -webkit-transform-origin: center;
+ -ms-transform-origin: center;
+ transform-origin: center;
+ opacity: 1
+}
+ 100% {
+ -webkit-transform-origin: center;
+ -ms-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: rotate3d(0, 0, 1, 200deg);
+ -ms-transform: rotate3d(0, 0, 1, 200deg);
+ transform: rotate3d(0, 0, 1, 200deg);
+ opacity: 0
+}
+}
+.rotateOut {
+ -webkit-animation-name: rotateOut;
+ animation-name: rotateOut
+}
+ @-webkit-keyframes rotateOutDownLeft {
+ 0% {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ opacity: 1
+}
+ 100% {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate(0, 0, 1, 45deg);
+ transform: rotate(0, 0, 1, 45deg);
+ opacity: 0
+}
+}
+ @keyframes rotateOutDownLeft {
+ 0% {
+ -webkit-transform-origin: left bottom;
+ -ms-transform-origin: left bottom;
+ transform-origin: left bottom;
+ opacity: 1
+}
+ 100% {
+ -webkit-transform-origin: left bottom;
+ -ms-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate(0, 0, 1, 45deg);
+ -ms-transform: rotate(0, 0, 1, 45deg);
+ transform: rotate(0, 0, 1, 45deg);
+ opacity: 0
+}
+}
+.rotateOutDownLeft {
+ -webkit-animation-name: rotateOutDownLeft;
+ animation-name: rotateOutDownLeft
+}
+ @-webkit-keyframes rotateOutDownRight {
+ 0% {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ opacity: 1
+}
+ 100% {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0
+}
+}
+ @keyframes rotateOutDownRight {
+ 0% {
+ -webkit-transform-origin: right bottom;
+ -ms-transform-origin: right bottom;
+ transform-origin: right bottom;
+ opacity: 1
+}
+ 100% {
+ -webkit-transform-origin: right bottom;
+ -ms-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ -ms-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0
+}
+}
+.rotateOutDownRight {
+ -webkit-animation-name: rotateOutDownRight;
+ animation-name: rotateOutDownRight
+}
+ @-webkit-keyframes rotateOutUpLeft {
+ 0% {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ opacity: 1
+}
+ 100% {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0
+}
+}
+ @keyframes rotateOutUpLeft {
+ 0% {
+ -webkit-transform-origin: left bottom;
+ -ms-transform-origin: left bottom;
+ transform-origin: left bottom;
+ opacity: 1
+}
+ 100% {
+ -webkit-transform-origin: left bottom;
+ -ms-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ -ms-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0
+}
+}
+.rotateOutUpLeft {
+ -webkit-animation-name: rotateOutUpLeft;
+ animation-name: rotateOutUpLeft
+}
+ @-webkit-keyframes rotateOutUpRight {
+ 0% {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ opacity: 1
+}
+ 100% {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 90deg);
+ transform: rotate3d(0, 0, 1, 90deg);
+ opacity: 0
+}
+}
+ @keyframes rotateOutUpRight {
+ 0% {
+ -webkit-transform-origin: right bottom;
+ -ms-transform-origin: right bottom;
+ transform-origin: right bottom;
+ opacity: 1
+}
+ 100% {
+ -webkit-transform-origin: right bottom;
+ -ms-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 90deg);
+ -ms-transform: rotate3d(0, 0, 1, 90deg);
+ transform: rotate3d(0, 0, 1, 90deg);
+ opacity: 0
+}
+}
+.rotateOutUpRight {
+ -webkit-animation-name: rotateOutUpRight;
+ animation-name: rotateOutUpRight
+}
+ @-webkit-keyframes hinge {
+ 0% {
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out
+}
+ 20%, 60% {
+ -webkit-transform: rotate3d(0, 0, 1, 80deg);
+ transform: rotate3d(0, 0, 1, 80deg);
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out
+}
+ 40%, 80% {
+ -webkit-transform: rotate3d(0, 0, 1, 60deg);
+ transform: rotate3d(0, 0, 1, 60deg);
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ opacity: 1
+}
+ 100% {
+ -webkit-transform: translate3d(0, 700px, 0);
+ transform: translate3d(0, 700px, 0);
+ opacity: 0
+}
+}
+ @keyframes hinge {
+ 0% {
+ -webkit-transform-origin: top left;
+ -ms-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out
+}
+ 20%, 60% {
+ -webkit-transform: rotate3d(0, 0, 1, 80deg);
+ -ms-transform: rotate3d(0, 0, 1, 80deg);
+ transform: rotate3d(0, 0, 1, 80deg);
+ -webkit-transform-origin: top left;
+ -ms-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out
+}
+ 40%, 80% {
+ -webkit-transform: rotate3d(0, 0, 1, 60deg);
+ -ms-transform: rotate3d(0, 0, 1, 60deg);
+ transform: rotate3d(0, 0, 1, 60deg);
+ -webkit-transform-origin: top left;
+ -ms-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ opacity: 1
+}
+ 100% {
+ -webkit-transform: translate3d(0, 700px, 0);
+ -ms-transform: translate3d(0, 700px, 0);
+ transform: translate3d(0, 700px, 0);
+ opacity: 0
+}
+}
+.hinge {
+ -webkit-animation-name: hinge;
+ animation-name: hinge
+}
+ @-webkit-keyframes rollIn {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
+ transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none
+}
+}
+ @keyframes rollIn {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
+ -ms-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
+ transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg)
+}
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none
+}
+}
+.rollIn {
+ -webkit-animation-name: rollIn;
+ animation-name: rollIn
+}
+ @-webkit-keyframes rollOut {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
+ transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg)
+}
+}
+ @keyframes rollOut {
+ 0% {
+ opacity: 1
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
+ -ms-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
+ transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg)
+}
+}
+.rollOut {
+ -webkit-animation-name: rollOut;
+ animation-name: rollOut
+}
+ @-webkit-keyframes zoomIn {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(.3, .3, .3);
+ transform: scale3d(.3, .3, .3)
+}
+ 50% {
+ opacity: 1
+}
+}
+ @keyframes zoomIn {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(.3, .3, .3);
+ -ms-transform: scale3d(.3, .3, .3);
+ transform: scale3d(.3, .3, .3)
+}
+ 50% {
+ opacity: 1
+}
+}
+.zoomIn {
+ -webkit-animation-name: zoomIn;
+ animation-name: zoomIn
+}
+ @-webkit-keyframes zoomInDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
+ transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, .055, .675, .19);
+ animation-timing-function: cubic-bezier(0.55, .055, .675, .19)
+}
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, .885, .32, 1);
+ animation-timing-function: cubic-bezier(0.175, .885, .32, 1)
+}
+}
+ @keyframes zoomInDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
+ -ms-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
+ transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, .055, .675, .19);
+ animation-timing-function: cubic-bezier(0.55, .055, .675, .19)
+}
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
+ -ms-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, .885, .32, 1);
+ animation-timing-function: cubic-bezier(0.175, .885, .32, 1)
+}
+}
+.zoomInDown {
+ -webkit-animation-name: zoomInDown;
+ animation-name: zoomInDown
+}
+ @-webkit-keyframes zoomInLeft {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
+ transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, .055, .675, .19);
+ animation-timing-function: cubic-bezier(0.55, .055, .675, .19)
+}
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
+ transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, .885, .32, 1);
+ animation-timing-function: cubic-bezier(0.175, .885, .32, 1)
+}
+}
+ @keyframes zoomInLeft {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
+ -ms-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
+ transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, .055, .675, .19);
+ animation-timing-function: cubic-bezier(0.55, .055, .675, .19)
+}
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
+ -ms-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
+ transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, .885, .32, 1);
+ animation-timing-function: cubic-bezier(0.175, .885, .32, 1)
+}
+}
+.zoomInLeft {
+ -webkit-animation-name: zoomInLeft;
+ animation-name: zoomInLeft
+}
+ @-webkit-keyframes zoomInRight {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
+ transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, .055, .675, .19);
+ animation-timing-function: cubic-bezier(0.55, .055, .675, .19)
+}
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
+ transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, .885, .32, 1);
+ animation-timing-function: cubic-bezier(0.175, .885, .32, 1)
+}
+}
+ @keyframes zoomInRight {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
+ -ms-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
+ transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, .055, .675, .19);
+ animation-timing-function: cubic-bezier(0.55, .055, .675, .19)
+}
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
+ -ms-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
+ transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, .885, .32, 1);
+ animation-timing-function: cubic-bezier(0.175, .885, .32, 1)
+}
+}
+.zoomInRight {
+ -webkit-animation-name: zoomInRight;
+ animation-name: zoomInRight
+}
+ @-webkit-keyframes zoomInUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
+ transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, .055, .675, .19);
+ animation-timing-function: cubic-bezier(0.55, .055, .675, .19)
+}
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, .885, .32, 1);
+ animation-timing-function: cubic-bezier(0.175, .885, .32, 1)
+}
+}
+ @keyframes zoomInUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
+ -ms-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
+ transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, .055, .675, .19);
+ animation-timing-function: cubic-bezier(0.55, .055, .675, .19)
+}
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
+ -ms-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, .885, .32, 1);
+ animation-timing-function: cubic-bezier(0.175, .885, .32, 1)
+}
+}
+.zoomInUp {
+ -webkit-animation-name: zoomInUp;
+ animation-name: zoomInUp
+}
+ @-webkit-keyframes zoomOut {
+ 0% {
+ opacity: 1
+}
+ 50% {
+ opacity: 0;
+ -webkit-transform: scale3d(.3, .3, .3);
+ transform: scale3d(.3, .3, .3)
+}
+ 100% {
+ opacity: 0
+}
+}
+ @keyframes zoomOut {
+ 0% {
+ opacity: 1
+}
+ 50% {
+ opacity: 0;
+ -webkit-transform: scale3d(.3, .3, .3);
+ -ms-transform: scale3d(.3, .3, .3);
+ transform: scale3d(.3, .3, .3)
+}
+ 100% {
+ opacity: 0
+}
+}
+.zoomOut {
+ -webkit-animation-name: zoomOut;
+ animation-name: zoomOut
+}
+ @-webkit-keyframes zoomOutDown {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, .055, .675, .19);
+ animation-timing-function: cubic-bezier(0.55, .055, .675, .19)
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
+ transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+ -webkit-animation-timing-function: cubic-bezier(0.175, .885, .32, 1);
+ animation-timing-function: cubic-bezier(0.175, .885, .32, 1)
+}
+}
+ @keyframes zoomOutDown {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
+ -ms-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, .055, .675, .19);
+ animation-timing-function: cubic-bezier(0.55, .055, .675, .19)
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
+ -ms-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
+ transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
+ -webkit-transform-origin: center bottom;
+ -ms-transform-origin: center bottom;
+ transform-origin: center bottom;
+ -webkit-animation-timing-function: cubic-bezier(0.175, .885, .32, 1);
+ animation-timing-function: cubic-bezier(0.175, .885, .32, 1)
+}
+}
+.zoomOutDown {
+ -webkit-animation-name: zoomOutDown;
+ animation-name: zoomOutDown
+}
+ @-webkit-keyframes zoomOutLeft {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
+ transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0)
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
+ transform: scale(.1) translate3d(-2000px, 0, 0);
+ -webkit-transform-origin: left center;
+ transform-origin: left center
+}
+}
+ @keyframes zoomOutLeft {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
+ -ms-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
+ transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0)
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
+ -ms-transform: scale(.1) translate3d(-2000px, 0, 0);
+ transform: scale(.1) translate3d(-2000px, 0, 0);
+ -webkit-transform-origin: left center;
+ -ms-transform-origin: left center;
+ transform-origin: left center
+}
+}
+.zoomOutLeft {
+ -webkit-animation-name: zoomOutLeft;
+ animation-name: zoomOutLeft
+}
+ @-webkit-keyframes zoomOutRight {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
+ transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0)
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
+ transform: scale(.1) translate3d(2000px, 0, 0);
+ -webkit-transform-origin: right center;
+ transform-origin: right center
+}
+}
+ @keyframes zoomOutRight {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
+ -ms-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
+ transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0)
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
+ -ms-transform: scale(.1) translate3d(2000px, 0, 0);
+ transform: scale(.1) translate3d(2000px, 0, 0);
+ -webkit-transform-origin: right center;
+ -ms-transform-origin: right center;
+ transform-origin: right center
+}
+}
+.zoomOutRight {
+ -webkit-animation-name: zoomOutRight;
+ animation-name: zoomOutRight
+}
+ @-webkit-keyframes zoomOutUp {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, .055, .675, .19);
+ animation-timing-function: cubic-bezier(0.55, .055, .675, .19)
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
+ transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+ -webkit-animation-timing-function: cubic-bezier(0.175, .885, .32, 1);
+ animation-timing-function: cubic-bezier(0.175, .885, .32, 1)
+}
+}
+ @keyframes zoomOutUp {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
+ -ms-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, .055, .675, .19);
+ animation-timing-function: cubic-bezier(0.55, .055, .675, .19)
+}
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
+ -ms-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
+ transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
+ -webkit-transform-origin: center bottom;
+ -ms-transform-origin: center bottom;
+ transform-origin: center bottom;
+ -webkit-animation-timing-function: cubic-bezier(0.175, .885, .32, 1);
+ animation-timing-function: cubic-bezier(0.175, .885, .32, 1)
+}
+}
+.zoomOutUp {
+ -webkit-animation-name: zoomOutUp;
+ animation-name: zoomOutUp
+}
diff --git a/template/index3/assets/css/bootstrap_1107.css b/template/index3/assets/css/bootstrap_1107.css
new file mode 100644
index 0000000..7fe5890
--- /dev/null
+++ b/template/index3/assets/css/bootstrap_1107.css
@@ -0,0 +1 @@
+html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover,a.text-primary:focus{color:#286090}.text-success{color:#3c763d}a.text-success:hover,a.text-success:focus{color:#2b542c}.text-info{color:#31708f}a.text-info:hover,a.text-info:focus{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover,a.text-warning:focus{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover,a.text-danger:focus{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover,a.bg-primary:focus{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1200px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
\ No newline at end of file
diff --git a/template/index3/assets/css/common_1107.css b/template/index3/assets/css/common_1107.css
new file mode 100644
index 0000000..62914f4
--- /dev/null
+++ b/template/index3/assets/css/common_1107.css
@@ -0,0 +1,2442 @@
+
+body,div,main,section,article,header,footer,nav,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,fieldset,button,input,textarea,th,td {
+ margin: 0;
+ padding: 0
+}
+
+html,body {
+ overflow-x: hidden;
+ width: 100%
+}
+
+body {
+ font-family: "\5FAE\8F6F\96C5\9ED1","Microsoft Yahei","Hiragino Sans GB",tahoma,arial,"\5B8B\4F53";
+ line-height: 1;
+ color: #85888e
+}
+
+ul,li {
+ list-style: none
+}
+
+input,textarea {
+ outline: 0
+}
+
+img {
+ max-width: 100%
+}
+
+img,input {
+ border: 0;
+ vertical-align: top
+}
+
+a {
+ color: #85888e;
+ text-decoration: none;
+ outline: 0;
+ transition: all .2s cubic-bezier(0.215,.61,.355,1);
+ -moz-transition: all .2s cubic-bezier(0.215,.61,.355,1);
+ -webkit-transition: all .2s cubic-bezier(0.215,.61,.355,1)
+}
+
+.flap {
+ visibility: hidden;
+ animation-duration: 1s;
+ -moz-animation-duration: 1s;
+ -webkit-animation-duration: 1s;
+ animation-fill-mode: backwards;
+ -moz-animation-fill-mode: backwards;
+ -webkit-animation-fill-mode: backwards
+}
+
+.flaped {
+ visibility: visible
+}
+
+.text-shadow {
+ text-shadow: 0 2px 4px rgba(0,0,0,.16)
+}
+
+.bg-grey {
+ background-color: #fafbfc;
+}
+
+.box.bg-grey{border-top:5px solid #f5f5f5;}
+
+.box {
+ overflow: hidden;
+ padding-top: 100px;
+ padding-bottom: 100px
+}
+
+.els {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis
+}
+
+.bold {
+ font-weight: 700
+}
+
+.wrap {
+ word-wrap: break-word;
+ word-break: break-all
+}
+
+.ystit{
+ height: 500px;
+ width: 500px;
+ border-radius: 500px;
+ border: 2px solid #108bed;
+ margin: 0 auto;
+}
+.ystit p{
+ margin:210px 0 0 0;
+}
+
+.tit {
+ margin-bottom: 60px;
+ text-align: center
+}
+
+.tit p{
+ font-size: 30px;
+ line-height: 50px;
+ color:#0f1830;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+.tit p em{
+ font-size: 16px;
+ line-height: 50px;
+ color:#108bed;
+ font-style: normal;
+}
+.tit span{
+ font-size: 16px;
+ color:#555;
+ line-height: 20px;
+}
+
+.tit-en {
+ display: block;
+ font-size: 40px;
+ font-family: fzxh;
+ color: #108bed;
+}
+
+.tit-zh {
+ font-size: 18px;
+ color: #999;
+}
+
+.tit-span {
+ display: block;
+ padding:20px 0 0 0;
+ font-size: 14px;
+ line-height: 30px;
+ color: #777;
+}
+
+.tit-line {
+ margin: 20px auto;
+ display: block;
+ width: 60px;
+ height: 2px;
+ font-size: 0;
+ background-color: #e1e1e1
+}
+
+.owl-dots {
+ position: absolute;
+ left: 0;
+ bottom: -20px;
+ width: 100%;
+ text-align: center
+}
+
+.banner-owl .owl-dots {
+ bottom: 10px
+}
+
+.owl-dot {
+ margin: 0 5px;
+ display: inline-block;
+ width: 12px;
+ height: 12px;
+ border-radius: 12px;
+ border: 1px solid #79b9e5;
+ transition: all .2s cubic-bezier(0.215,.61,.355,1);
+ -moz-transition: all .2s cubic-bezier(0.215,.61,.355,1);
+ -webkit-transition: all .2s cubic-bezier(0.215,.61,.355,1)
+}
+
+.owl-dot.active {
+ background-color: #79b9e5
+}
+
+.more-btn {
+ position: relative;
+ display: inline-block;
+ font-size: 14px;
+ text-align: center;
+ line-height: 24px;
+ width: 65px;
+ height: 24px;
+ color: #dbdbdb;
+ border-radius: 22px;
+ border: 1px solid #dbdbdb;
+ transition: all .6s cubic-bezier(0.215,.61,.355,1);
+ -moz-transition: all .6s cubic-bezier(0.215,.61,.355,1);
+ -webkit-transition: all .6s cubic-bezier(0.215,.61,.355,1)
+}
+
+.more-btn:after {
+ content: '';
+ position: absolute;
+ top: 9px;
+ right: 11px;
+ display: block;
+ width: 24px;
+ height: 7px;
+ font-size: 0;
+ background-repeat: no-repeat;
+}
+
+.news-item:hover .more-btn,.news-one:hover .more-btn,.more-btn:hover,.detail-label:hover {
+ color: #fff;
+ border-color: #108bed;
+ background-color: #108bed;
+}
+
+.news-item:hover .more-btn:after,.news-one:hover .more-btn:after,.more-btn:hover:after {
+ background-repeat: no-repeat;
+}
+
+::-webkit-scrollbar {
+ height: 8px;
+ width: 8px;
+ background: rgba(222,222,222,.5);
+ -webkit-transition: all .3s ease-in-out;
+ transition: all .3s ease-in-out;
+ border-radius: 5px
+}
+
+::-webkit-scrollbar-button {
+ display: none
+}
+
+::-webkit-scrollbar-track {
+ background-color: #fff
+}
+
+::-webkit-scrollbar-track-piece {
+ background: #fff
+}
+
+::-webkit-scrollbar-thumb {
+ width: 8px;
+ min-height: 15px;
+ background: rgba(0,0,0,.3);
+ -webkit-transition: all .3s ease-in-out;
+ transition: all .3s ease-in-out;
+ border-radius: 5px
+}
+
+::-webkit-scrollbar-thumb:hover {
+ background: rgba(0,0,0,.6)
+}
+
+::-webkit-scrollbar-thumb:active {
+ background: rgba(0,0,0,.8)
+}
+
+.at {
+ -webkit-transform-style: preserve-3d;
+ transform-style: preserve-3d;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden
+}
+
+.hid {
+ overflow: hidden
+}
+
+.header {
+ position: relative;
+ height: 80px;
+ z-index: 3;
+ box-shadow: 0 2px 3px 0 rgba(0,0,0,.05)
+}
+
+.header-logo {
+ overflow: hidden;
+ display: block;
+ width: 100%;
+ height:100%;
+}
+
+.header-logo-img {
+ margin:20px 0;
+ height:40px;
+}
+
+.nav-item {
+ position: relative;
+ float: left;
+ height: 80px;
+}
+
+
+.nav-item-a {
+ display: block;
+ margin-left: 0px;
+ padding: 22px 0;
+ width: 100%;
+ line-height: 37px;
+ height: 80px;
+ font-size: 16px;
+ color: #555;
+ text-align: center
+}
+
+.nav-item.cur {
+ border-bottom:5px solid #108bed;
+}
+
+.nav-item.cur:hover {
+ font-weight: bold;
+}
+
+.nav-item:hover {
+ border-bottom:5px solid #108bed;
+}
+
+.nav-item-child .nav-item-a:hover,.nav-item-child .nav-item-a.cur {
+ color: #555;
+ background-color: #f8fafc
+}
+
+.nav-item-child .nav-item-a:hover>.nav-item-en,.nav-item-child .nav-item-a.cur>.nav-item-en {
+ color: #b5bfc6
+}
+
+.nav-item.cur>.nav-item-a,.nav-item:hover>.nav-item-a,.nav-item.cur>.nav-item-a>.nav-item-en,.nav-item:hover>.nav-item-a>.nav-item-en {
+
+}
+
+.nav-item-en {
+ display: block;
+ padding-top: 6px;
+ font-size: 12px;
+ color: #b5bfc6;
+ transition: all .2s cubic-bezier(0.215,.61,.355,1);
+ -moz-transition: all .2s cubic-bezier(0.215,.61,.355,1);
+ -webkit-transition: all .2s cubic-bezier(0.215,.61,.355,1)
+}
+
+.nav-item-child {
+ position: absolute;
+ left: 0;
+ top: 100px;
+ display: none;
+ z-index: 2;
+ background-color: #fff
+}
+
+.nav-item-child .nav-item-a {
+ margin-left: 0;
+ border: 1px solid #e7eff4;
+ border-top: 0
+}
+
+.nav-item,.nav-item-child {
+ width:120px;
+}
+
+.header-more {
+ display: none;
+ margin-top: 6px;
+ padding: 16px 10px 0;
+ width: 44px;
+ height: 44px;
+ border-radius: 5px;
+ background-color: #45A1DE
+}
+
+.header-more i {
+ display: block;
+ overflow: hidden;
+ padding: 3px 0;
+ width: 24px;
+ height: 12px;
+ border-top: 2px #fff solid;
+ border-bottom: 2px #fff solid
+}
+
+.header-more i:after {
+ content: '';
+ display: block;
+ height: 2px;
+ background-color: #fff
+}
+
+.banner-owl {
+ font-size: 0
+}
+
+.banner-owl .owl-dot,.honor-owl .owl-dot {
+ border: 0;
+ background-color: rgba(0,0,0,.3)
+}
+
+.banner-owl .owl-dot.active,.honor-owl .owl-dot.active {
+ border: 0;
+ background-color: #fff
+}
+
+.banner-item {
+ display: block;
+ height: 700px;
+ background-repeat: no-repeat;
+ background-position: center 0;
+ background-size: cover
+}
+
+.product-item {
+ display: block;
+ padding: 0;
+ text-align: center;
+ overflow: hidden;
+ margin:10px 0;
+ border-radius: 25px;
+ border:1px solid #eee;
+ background:#fff;
+ transition:All 0.6s ease-in-out;
+ -webkit-transition:All 0.6s ease-in-out;
+ -moz-transition:All 0.6s ease-in-out;
+ -o-transition:All 0.6s ease-in-out;
+}
+.product-item:hover{
+ transform:scale(1.1);
+ -webkit-transform:scale(1.1);
+ -moz-transform:scale(1.1);
+ -o-transform:scale(1.1);
+ -ms-transform:scale(1.1);
+}
+
+.product-item-img {
+ display: inline-block;
+ width:130px;
+ height:130px;
+ background-position: 50%;
+ background-size: 80%;
+ background-repeat: no-repeat;
+ transition: all .3s cubic-bezier(0.215,.61,.355,1);
+ -moz-transition: all .3s cubic-bezier(0.215,.61,.355,1);
+ -webkit-transition: all .3s cubic-bezier(0.215,.61,.355,1)
+}
+
+.product-item1 .product-item-img {background-image: url(../images/item1.png);transition:All 0.6s ease-in-out;-webkit-transition:All 0.6s ease-in-out;-moz-transition:All 0.6s ease-in-out;-o-transition:All 0.6s ease-in-out;}
+.product-item2 .product-item-img {background-image: url(../images/item2.png);transition:All 0.6s ease-in-out;-webkit-transition:All 0.6s ease-in-out;-moz-transition:All 0.6s ease-in-out;-o-transition:All 0.6s ease-in-out;}
+.product-item3 .product-item-img {background-image: url(../images/item3.png);transition:All 0.6s ease-in-out;-webkit-transition:All 0.6s ease-in-out;-moz-transition:All 0.6s ease-in-out;-o-transition:All 0.6s ease-in-out;}
+.product-item4 .product-item-img {background-image: url(../images/item4.png);transition:All 0.6s ease-in-out;-webkit-transition:All 0.6s ease-in-out;-moz-transition:All 0.6s ease-in-out;-o-transition:All 0.6s ease-in-out;}
+.product-item5 .product-item-img {background-image: url(../images/item5.png);transition:All 0.6s ease-in-out;-webkit-transition:All 0.6s ease-in-out;-moz-transition:All 0.6s ease-in-out;-o-transition:All 0.6s ease-in-out;}
+.product-item6 .product-item-img {background-image: url(../images/item6.png);transition:All 0.6s ease-in-out;-webkit-transition:All 0.6s ease-in-out;-moz-transition:All 0.6s ease-in-out;-o-transition:All 0.6s ease-in-out;}
+.product-item7 .product-item-img {background-image: url(../images/item7.png);transition:All 0.6s ease-in-out;-webkit-transition:All 0.6s ease-in-out;-moz-transition:All 0.6s ease-in-out;-o-transition:All 0.6s ease-in-out;}
+.product-item8 .product-item-img {background-image: url(../images/item8.png);transition:All 0.6s ease-in-out;-webkit-transition:All 0.6s ease-in-out;-moz-transition:All 0.6s ease-in-out;-o-transition:All 0.6s ease-in-out;}
+.product-item9 .product-item-img {background-image: url(../images/item9.png);transition:All 0.6s ease-in-out;-webkit-transition:All 0.6s ease-in-out;-moz-transition:All 0.6s ease-in-out;-o-transition:All 0.6s ease-in-out;}
+
+.product-item1:hover{background:#07cf8b;border:1px solid #07cf8b;}
+.product-item2:hover{background:#108bed;border:1px solid #108bed;}
+.product-item3:hover{background:#89d04f;border:1px solid #89d04f;}
+.product-item4:hover{background:#fd6a7f;border:1px solid #fd6a7f;}
+.product-item5:hover{background:#13d0d2;border:1px solid #13d0d2;}
+.product-item6:hover{background:#70c3ff;border:1px solid #70c3ff;}
+.product-item7:hover{background:#13d0d2;border:1px solid #13d0d2;}
+.product-item8:hover{background:#70c3ff;border:1px solid #70c3ff;}
+.product-item9:hover{background:#89d04f;border:1px solid #89d04f;}
+
+.product-item1:hover .product-item-img {background-image: url(../images/item1-a-h.png)}
+.product-item2:hover .product-item-img {background-image: url(../images/item2-a-h.png)}
+.product-item3:hover .product-item-img {background-image: url(../images/item3-a-h.png)}
+.product-item4:hover .product-item-img {background-image: url(../images/item4-a-h.png)}
+.product-item5:hover .product-item-img {background-image: url(../images/item5-a-h.png)}
+.product-item6:hover .product-item-img {background-image: url(../images/item6-a-h.png)}
+.product-item7:hover .product-item-img {background-image: url(../images/item7-a-h.png)}
+.product-item8:hover .product-item-img {background-image: url(../images/item8-a-h.png)}
+.product-item9:hover .product-item-img {background-image: url(../images/item9-a-h.png)}
+
+.product-item-tit {
+ font-size: 22px;
+ font-weight: 400;
+ color: #0f1830;
+ margin:-20px 0 35px;
+ transition:All 0.5s ease-in-out;
+ -webkit-transition:All 0.5s ease-in-out;
+ -moz-transition:All 0.5s ease-in-out;
+ -o-transition:All 0.5s ease-in-out;
+}
+
+.product-item:hover .product-item-tit{
+ color:#fff;
+}
+
+.product-item-tit-en {
+ margin-top: 10px;
+ margin-bottom: 30px;
+ font-size: 12px
+}
+
+.product-item-txt {
+ line-height: 2em
+}
+
+.productmsg-item{display: none;}
+.productmsg-item img{display: block;width:50%;margin:0 auto;}
+.productmsg-item h6{display: block;font-size: 22px;line-height: 50px;color:#0f1830;text-align: center;}
+.productmsg-item span{display: block;text-align: center;font-size: 16px;line-height: 50px;color:#108bed;background:#fafbfc;width:80%;margin:0 auto;}
+.productmsg-item p{display: block;width:80%;margin:20px auto;font-size: 16px;line-height: 30px;}
+.productmsg-item p:first-letter{margin:0 0 0 3rem;}
+.productmsg-sitem h6{font-size: 26px;line-height: 60px;display: block;text-align: center;color:#0f1830;}
+.productmsg-sitem span{display: block;width:90%;font-size: 16px;line-height: 50px;background: #fafbfc;color:#108bed;margin:0 auto;text-align: center;}
+.productmsg-sitem p{display: block;width:80%;margin:20px auto;font-size: 16px;line-height: 30px;}
+.productmsg-sitem p:first-letter{margin:0 0 0 3rem;}
+
+.solution-item {
+ padding-top: 100px
+}
+
+.solution-item-tit,.solution-item-txt {
+ font-family: '黑体';
+ font-weight: 400;
+ color: #464a53
+}
+
+.solution-item-tit {
+ font-size: 40px
+}
+
+.solution-item-txt {
+ margin: 16px 0 20px;
+ display: block;
+ font-size: 30px
+}
+
+.solution-item-txt-en {
+ margin-bottom: 36px;
+ font-size: 12px;
+ line-height: 1.425em
+}
+
+.case-box {
+ padding-bottom: 0
+}
+.nop-box{
+ padding:0;
+}
+
+.case-item {
+ position: relative;
+ overflow: hidden;
+ display: block;
+ padding-left: 0;
+ padding-right: 0
+}
+
+.case-item-img {
+ display: block!important;
+ width: 100%
+}
+
+.case-item-tit {
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ display: block;
+ padding: 0 10px;
+ width: 100%;
+ height: 50px;
+ line-height: 50px;
+ font-size: 14px;
+ font-weight: 400;
+ color: #fff;
+ text-align: center;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ background-color: rgba(0,0,0,.5)
+}
+
+.case-item-tit,.case-item-pop,.case-item-mask {
+ transition: all .3s cubic-bezier(0.215,.61,.355,1);
+ -moz-transition: all .3s cubic-bezier(0.215,.61,.355,1);
+ -webkit-transition: all .3s cubic-bezier(0.215,.61,.355,1)
+}
+
+.case-item:hover .case-item-tit {
+ bottom: -50px
+}
+
+.case-item:hover .case-item-pop {
+ top: 50%;
+ opacity: 1
+}
+
+.case-item:hover .case-item-mask {
+ background-color: rgba(0,0,0,.2)
+}
+
+.case-item-mask {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(0,0,0,0)
+}
+
+.case-item-pop {
+ position: absolute;
+ opacity: 0;
+ left: 0;
+ top: 150%;
+ margin-top: -98px;
+ padding: 38px 10px 50px;
+ width: 100%;
+ height: 196px;
+ color: #fff;
+ text-align: center;
+ background-color: #108bed;
+}
+
+.case-item-pop-tit {
+ display: block;
+ font-size: 16px;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis
+}
+
+.case-item-pop-txt {
+ margin: 15px 0;
+ height: 40px;
+ font-size: 12px;
+ line-height: 20px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical
+}
+
+.case-item-pop-btn {
+ border: 1px solid #fff
+}
+
+.case-item-pop-btn:after {
+ background-repeat: no-repeat;
+}
+
+.news-box-nav {
+ display: inline-block
+}
+
+.news-box-tit {
+ float: left;
+ margin: 0 25px;
+ padding: 8px 10px;
+ font-size: 16px;
+ color: #0f1830;
+ border-radius: 3px;
+}
+
+.news-box-tit:hover,.news-box-tit.cur {
+ background: #108bed;
+ color:#fff;
+}
+
+.news-item {
+ margin-left: auto;
+ margin-right: auto;
+ padding: 28px 20px 34px;
+ display: block;
+ max-width: 350px;
+ border-top: 5px solid transparent;
+}
+.diynews{
+ background: #fff;
+ margin-bottom: 20px;
+}
+
+.news-item,.news-item:hover .more-btn {
+ transition: all .6s cubic-bezier(0.215,.61,.355,1);
+ -moz-transition: all .6s cubic-bezier(0.215,.61,.355,1);
+ -webkit-transition: all .6s cubic-bezier(0.215,.61,.355,1)
+}
+
+.news-item:hover {
+ border-top-color: #f5f5f5;
+}
+
+.news-item:hover .news-item-tit{
+ color:#108bed;
+}
+
+.news-item-img {
+ width: 310px;
+ height: 130px;
+ border-radius: 3px
+}
+
+.news-item-tit {
+ margin: 20px 0 16px;
+ display: block;
+ line-height: 20px;
+ font-size: 16px;
+ font-weight: bold;
+ color: #0f1830;
+ display: block;
+ overflow: hidden;
+ text-overflow:ellipsis;
+ white-space: nowrap;
+}
+
+.news-item-txt {
+ height: 66px;
+ line-height: 22px;
+ overflow: hidden;
+ font-size: 14px;
+ color:#555;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical
+}
+
+.news-item-info {
+ margin-top: 26px;
+ color: #b0b0b0
+}
+
+.news-item-month {
+ margin-bottom: 8px;
+ display: block;
+ font-size: 24px
+}
+
+.news-item-year {
+ font-size: 12px
+}
+
+.news-container {
+ margin-top: 50px
+}
+
+.news-box .owl-carousel .owl-stage-outer {
+ margin: -10px -10px 0 -10px;
+ padding: 10px 10px 0
+}
+
+.news-container .owl-prev,.news-container .owl-next {
+ position: absolute;
+ left: -50px;
+ top: 50%;
+ margin-top: -20px;
+ padding: 13px 0 0 16px;
+ width: 40px;
+ height: 40px;
+ border-radius: 40px;
+ border: 1px solid #d1d1d1;
+ transition: all .2s cubic-bezier(0.215,.61,.355,1);
+ -moz-transition: all .2s cubic-bezier(0.215,.61,.355,1);
+ -webkit-transition: all .2s cubic-bezier(0.215,.61,.355,1)
+}
+
+.news-container .owl-next {
+ left: auto;
+ right: -50px;
+ padding: 13px 0 0 9px
+}
+
+.news-container .owl-prev:hover,.news-container .owl-next:hover {
+ border-color: #79b9e5;
+ background-color: #79b9e5
+}
+
+.news-container .owl-prev:hover:after,.news-container .owl-next:hover:after {
+ border-color: #fff
+}
+
+.news-container .owl-prev:after,.news-container .owl-next:after {
+ content: '';
+ display: block;
+ width: 14px;
+ height: 14px;
+ border: 1px solid #b6b6b6;
+ border-right: 0;
+ border-bottom: 0;
+ transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ -webkit-transform: rotate(-45deg);
+ transition: all .2s cubic-bezier(0.215,.61,.355,1);
+ -moz-transition: all .2s cubic-bezier(0.215,.61,.355,1);
+ -webkit-transition: all .2s cubic-bezier(0.215,.61,.355,1)
+}
+
+.news-container .owl-next:after {
+ transform: rotate(135deg);
+ -moz-transform: rotate(135deg);
+ -ms-transform: rotate(135deg);
+ -webkit-transform: rotate(135deg)
+}
+
+.leader-item-people {
+ position: relative
+}
+
+.leader-wraper .item {
+ padding-top: 36px;
+ padding-bottom: 36px
+}
+
+.leader-item-line {
+ position: absolute;
+ right: 0;
+ top: 50%;
+ margin-top: -50px;
+ width: 1px;
+ height: 100px;
+ background-color: #eff3f7
+}
+
+.leaders-item:hover .leader-item-line {
+ background-color: #489fda
+}
+
+.leader-item-portrait,.leader-item-infos {
+ display: inline-block
+}
+
+.leader-item-infos {
+ margin-top: 45px
+}
+
+.leader-item-portrait {
+ margin-right: 30px;
+ padding: 9px;
+ width: 176px;
+ height: 176px;
+ text-align: center;
+ vertical-align: top;
+ border-radius: 176px;
+ background-color: #eeeef2;
+ transition: all .6s cubic-bezier(0.215,.61,.355,1);
+ -moz-transition: all .6s cubic-bezier(0.215,.61,.355,1);
+ -webkit-transition: all .6s cubic-bezier(0.215,.61,.355,1)
+}
+
+.leader-item-bg {
+ overflow: hidden;
+ width: 100%;
+ height: 100%;
+ border-radius: 158px;
+}
+
+.leader-item-img {
+ width: 158px;
+ height: 158px;
+ border-radius: 158px
+}
+
+.leader-item-name {
+ display: block;
+ margin-bottom: 16px;
+ font-size: 20px;
+ color: #464a53
+}
+
+.leader-item-info {
+ font-size: 12px
+}
+
+.leader-item-introduce {
+ margin-top: 62px;
+ line-height: 24px;
+ font-size: 12px
+}
+
+.leaders-item,.leader-item-name,.leader-item-info,.leader-item-introduce {
+ transition: all .2s cubic-bezier(0.215,.61,.355,1);
+ -moz-transition: all .2s cubic-bezier(0.215,.61,.355,1);
+ -webkit-transition: all .2s cubic-bezier(0.215,.61,.355,1)
+}
+
+.leaders-item {
+ display: block
+}
+
+.leaders-item:hover {
+ padding-left: 0;
+ background-color: #208bd3
+}
+
+.leaders-item:hover .leader-item-name,.leaders-item:hover .leader-item-info,.leaders-item:hover .leader-item-introduce {
+ color: #fff
+}
+
+.contactus-item-info {
+ margin-bottom: 100px
+}
+
+.contactus-icon-address,.contactus-icon-phone,.contactus-icon-email {
+ display: inline-block;
+ background-repeat: no-repeat
+}
+
+.contactus-box .popbox-inputbox {
+ padding-left: 15px;
+ padding-right: 15px
+}
+
+.contactus-box .input-message-box {
+ padding: 0
+}
+
+.contactus-box .popbox-con {
+ margin: auto;
+ width: auto
+}
+
+.contactus-box .popbox-input-tip {
+ color: red
+}
+
+.contactus-box input[type=text],textarea {
+ color: #444
+}
+
+.contactus-icon-box {
+ display: block;
+ height: 75px
+}
+
+.contactus-icon-address {
+ width: 49px;
+ height: 57px;
+ background-repeat: no-repeat;
+}
+
+.contactus-icon-phone {
+ margin-top: 4px;
+ width: 54px;
+ height: 53px;
+ background-repeat: no-repeat;
+}
+
+.contactus-icon-email {
+ margin-top: 10px;
+ width: 53px;
+ height: 47px;
+ background-repeat: no-repeat;
+}
+
+.contactus-item-txt {
+ font-size: 16px;
+ line-height: 20px;
+ color: #464a53
+}
+
+.input-name,.input-tel,.input-email,.input-message {
+ padding: 10px;
+ width: 100%;
+ height: 43px;
+ line-height: 22px;
+ border: 0;
+ border-bottom: 1px solid #b8b8b8
+}
+
+.input-message {
+ margin-top: 76px
+}
+
+.submit-btn {
+ margin: 40px auto 0;
+ display: block;
+ width: 210px;
+ height: 50px;
+ line-height: 50px;
+ font-size: 16px;
+ color: #464a53;
+ text-align: center;
+ border-radius: 50px;
+ border: 1px solid #666970
+}
+
+.submit-btn:hover {
+ color: #fff;
+ border-color: #208bd3;
+ background-color: #208bd3
+}
+
+.map-box {
+ overflow: hidden;
+ width: 100%;
+ height: 380px;
+ border-style: solid;
+ border-width: 1px 0;
+ border-color: #ccc;
+ background-color: #fafafb
+}
+
+.map-con,#mapContainer {
+ height: 380px;
+ width: 100%
+}
+
+.info-title {
+ color: #fff;
+ font-size: 14px;
+ background-color: #427BBB;
+ line-height: 26px;
+ padding: 0 0 0 6px;
+ font-weight: lighter;
+ letter-spacing: 1px
+}
+
+.info-content {
+ font: 12px Helvetica,'Hiragino Sans GB','Microsoft Yahei','微软雅黑',Arial;
+ padding: 4px;
+ color: #666;
+ line-height: 23px
+}
+
+.info-content img {
+ float: left;
+ margin: 3px
+}
+
+.cooperation-owl {
+ margin: 60px 0
+}
+
+.cooperation-owl .owl-stage-outer {
+ height: 40px
+}
+
+.cooperation-item {
+ margin: 0 10px;
+ display: block;
+ width: 200px;
+ height: 40px
+}
+
+.cooperation-item-img {
+ margin: 0 auto;
+ max-height: 40px
+}
+
+.cooperation-owl .owl-prev,.cooperation-owl .owl-next {
+ position: absolute;
+ left: -30px;
+ top: 8px;
+ display: block;
+ width: 24px;
+ height: 24px;
+ border: 2px solid #c5c8cb;
+ border-right: 0;
+ border-bottom: 0;
+ transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ -webkit-transform: rotate(-45deg)
+}
+
+.cooperation-owl .owl-next {
+ left: auto;
+ right: -30px;
+ transform: rotate(135deg);
+ -moz-transform: rotate(135deg);
+ -ms-transform: rotate(135deg);
+ -webkit-transform: rotate(135deg)
+}
+
+.cooperation-owl .owl-prev:hover,.cooperation-owl .owl-next:hover {
+ border-color: #208bd3
+}
+
+.footer {
+ padding-top: 50px;
+ font-size: 12px;
+ background-color: #28292c
+}
+
+.footer,.footer-icp {
+ color: #5e6164
+}
+
+.footer-logo {
+ margin-right: 28px;
+ width: 167px;
+ height: 38px
+}
+
+.footer-logo-img {
+ width: 167px;
+ height: 38px
+}
+
+.footer-item {
+ color: #878c91
+}
+
+.footer a:hover {
+ color: #ccc
+}
+
+.footer-slogan {
+ margin-top: 8px
+}
+
+.footer-icon {
+ float: left;
+ display: inline-block;
+ width: 36px;
+ height: 36px;
+ background-repeat: no-repeat
+}
+
+.icon-wb,.icon-wx {
+ margin-left: 15px
+}
+
+.icon-qq {
+ background-repeat: no-repeat;
+}
+
+.icon-qq:hover {
+ background-repeat: no-repeat;
+}
+
+.icon-wx {
+ background-repeat: no-repeat;
+}
+
+.icon-wx:hover {
+ background-repeat: no-repeat;
+}
+
+.icon-wb {
+ background-repeat: no-repeat;
+}
+
+.icon-wb:hover {
+ background-repeat: no-repeat;
+}
+
+.footer-copyright {
+ overflow: hidden;
+ padding: 22px 0;
+ line-height: 21px;
+ border-top: 1px solid #2e2f32
+}
+
+.cmmi {
+ overflow: hidden;
+ margin: 40px 0 20px
+}
+
+.cmmi img {
+ height: 38px;
+ display: inline-block!important
+}
+
+.cmmi img,.cmmi span {
+ float: left
+}
+
+.cmmi span {
+ margin-left: 14px;
+ line-height: 38px
+}
+
+.footer-info {
+ padding: 10px 0
+}
+
+.footer-login {
+ padding: 0 15px;
+ height: 30px;
+ line-height: 28px;
+ border-radius: 3px;
+ border: 1px solid #5e6164
+}
+
+.icon-hotline,.icon-user {
+ display: inline-block;
+ width: 21px;
+ height: 21px;
+ vertical-align: top;
+ background-repeat: no-repeat;
+}
+
+.icon-user {
+ margin-right: 10px;
+ width: 36px;
+ height: 36px;
+ background-repeat: no-repeat;
+}
+
+.footer-user {
+ line-height: 36px
+}
+
+.footer-social-item {
+ position: relative;
+ display: inline-block;
+ font-size: 0;
+ z-index: 1
+}
+
+.footer-code {
+ position: absolute;
+ display: none;
+ left: 3px;
+ top: -150px;
+ width: 131px;
+ height: 140px;
+ z-index: 1
+}
+
+.back-top {
+ position: fixed;
+ display: none;
+ right: 50px;
+ bottom: 19px;
+ padding: 16px 13px 10px;
+ text-align: center;
+ border-radius: 5px;
+ color: #fff;
+ background: rgba(0,0,0,.4);
+ z-index: 10000
+}
+
+.back-top:hover {
+ background: rgba(0,0,0,.5)
+}
+
+.back-top-icon {
+ display: block;
+ width: 12px;
+ height: 12px;
+ border: 2px solid #fff;
+ border-right: 0;
+ border-bottom: 0;
+ transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ -webkit-transform: rotate(45deg)
+}
+
+.popbox {
+ position: fixed;
+ z-index: 999;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(0,0,0,.5)
+}
+
+.popbox-wrap,.agreement-wrap {
+ position: absolute;
+ z-index: 1000;
+ left: 0;
+ top: 50px;
+ padding: 70px 0;
+ width: 100%;
+ background-color: #3196da
+}
+
+.agreement-wrap {
+ padding: 30px;
+ color: #000;
+ font-size: 14px;
+ line-height: 1.6;
+ background-color: #fff
+}
+
+.indent2 {
+ text-indent: 2em
+}
+
+.agreement-wrap h2 {
+ padding-bottom: 30px;
+ font-size: 20px;
+ text-align: center
+}
+
+.agreement-wrap h3 {
+ margin-bottom: 12px;
+ font-size: 14px
+}
+
+.agreement-wrap h2,.agreement-wrap h3,.agreement-wrap b,.agreement-wrap strong {
+ font-weight: 700
+}
+
+.agreement-wrap strong {
+ display: block
+}
+
+.agreement-wrap p,.agreement-wrap strong {
+ margin-bottom: 8px
+}
+
+.popbox-close,.agreement-close {
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 60px;
+ height: 60px;
+ color: #ccc;
+ font-size: 50px;
+ text-align: center
+}
+
+.agreement-close-btn {
+ color: #8c8c8c;
+ font-size: 16px
+}
+
+.agreement-close-btn:hover {
+ color: #666
+}
+
+.popbox-close:hover {
+ color: #fff
+}
+
+.agreement-close:hover {
+ color: #aaa
+}
+
+.popbox-header {
+ margin: 0 auto 60px;
+ display: block;
+ height: 107px;
+ max-width: 500px;
+}
+
+.popbox-con {
+ margin: 0 auto;
+ width: 430px
+}
+
+.popbox-inputbox {
+ position: relative;
+ color: #3e60b8
+}
+
+.popbox-inputbox,.popbox-forgot {
+ padding: 0 15px 15px
+}
+
+.popbox-input,.popbox-login-btn,.popbox-getcode {
+ padding: 0 15px 0 52px;
+ height: 48px;
+ width: 100%;
+ line-height: 48px;
+ border-radius: 3px;
+ background-color: #fff
+}
+
+.popbox-input.popbox-input-no,.popbox-getcode {
+ padding-left: 15px
+}
+
+.popbox-forgot {
+ padding-top: 15px;
+ padding-bottom: 10px;
+ font-size: 12px;
+ color: #add5f2
+}
+
+.popbox-forgot-btn,.popbox-login-a {
+ color: #add5f2;
+ text-decoration: underline
+}
+
+.popbox-forgot-btn:hover,.popbox-login-a:hover {
+ color: #fff
+}
+
+.popbox-code {
+ width: 222px
+}
+
+.popbox-code-img {
+ width: 144px;
+ height: 48px;
+ border-radius: 3px
+}
+
+.popbox-login-btn,.popbox-getcode {
+ padding-left: 0;
+ padding-right: 0;
+ display: block;
+ font-size: 18px;
+ line-height: 48px;
+ color: #fffefe;
+ text-align: center;
+ background-color: #00dbaa
+}
+
+.popbox-inputbox-f .popbox-input {
+ border: 1px solid #1585d4;
+ box-shadow: inset 0 0 5px 0 rgba(19,141,227,.004)
+}
+
+.popbox-inputbox-f .icon-email {
+ background-repeat: no-repeat;
+}
+
+.popbox-inputbox-f .icon-password {
+ background-repeat: no-repeat;
+}
+
+.popbox-login-btn:hover {
+ color: #fff;
+ background-color: #00cc9e
+}
+
+.pop-icon {
+ position: absolute;
+ left: 30px;
+ display: block;
+ width: 23px;
+ background-repeat: no-repeat;
+ background-position: 0 0
+}
+
+.icon-email {
+ top: 14px;
+ height: 20px;
+ background-repeat: no-repeat;
+}
+
+.icon-password {
+ top: 11px;
+ height: 26px;
+ background-repeat: no-repeat;
+}
+
+.popbox-input-tip {
+ display: none;
+ clear: both;
+ padding: 6px 12px 0;
+ line-height: 16px;
+ font-size: 12px;
+ color: #e2f0ff
+}
+
+.popbox-input-tip:before {
+ content: '!';
+ margin-right: 8px;
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+ color: #3196da;
+ text-align: center;
+ border-radius: 16px;
+ background-color: #e1efff
+}
+
+.popbox-login-href {
+ padding-top: 20px;
+ text-align: center
+}
+
+.popbox-login-a {
+ font-size: 12px
+}
+
+.popbox-getcode-box {
+ padding-bottom: 40px
+}
+
+.popbox-getcode {
+ width: 144px;
+ font-size: 14px;
+ background-color: #5bb3f3
+}
+
+.popbox-getcode.cur {
+ cursor: default;
+ background-color: #9AACB9
+}
+
+.popbox-getcode.cur:hover {
+ color: #fffefe;
+ background-color: #9AACB9
+}
+
+.popbox-getcode:hover {
+ color: #fff;
+ background-color: #4eabef
+}
+
+.reset-password {
+ margin: 0 auto 25px;
+ display: block;
+ height: 38px;
+ max-width: 291px
+}
+
+.reset-password-two {
+ display: none
+}
+
+
+.agreement-btn {
+ color: #add5f2;
+ text-decoration: underline
+}
+
+.agreement-btn:hover {
+ color: #fff
+}
+
+.tip-pop {
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ padding: 10px 30px;
+ font-size: 16px;
+ line-height: 1.25;
+ color: #fff;
+ opacity: 0;
+ border-radius: 5px;
+ background-color: #5cb85c;
+ z-index: 1001
+}
+
+.tip-pop.err-pop {
+ background-color: #ec971f
+}
+
+@-webkit-keyframes fadeInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0,100%,0);
+ transform: translate3d(0,100%,0)
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none
+ }
+}
+
+@keyframes fadeInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0,100%,0);
+ transform: translate3d(0,100%,0)
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none
+ }
+}
+
+@-webkit-keyframes fadeInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0,-100%,0);
+ transform: translate3d(0,-100%,0)
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none
+ }
+}
+
+@keyframes fadeInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0,-100%,0);
+ transform: translate3d(0,-100%,0)
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none
+ }
+}
+
+@-webkit-keyframes fadeInRight {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(100%,0,0);
+ transform: translate3d(100%,0,0)
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none
+ }
+}
+
+@keyframes fadeInRight {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(100%,0,0);
+ transform: translate3d(100%,0,0)
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none
+ }
+}
+
+@-webkit-keyframes fadeInLeft {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%,0,0);
+ transform: translate3d(-100%,0,0)
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none
+ }
+}
+
+@keyframes fadeInLeft {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%,0,0);
+ transform: translate3d(-100%,0,0)
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none
+ }
+}
+
+.more-btn:after {
+ background-position: -33px 0px
+}
+
+.news-item:hover .more-btn:after,.news-one:hover .more-btn:after,.more-btn:hover:after {
+ background-position: -33px -10px
+}
+
+.case-item-pop-btn:after {
+ background-position: -33px -10px
+}
+
+.contactus-icon-address {
+ background-position: -5px -20px
+}
+
+.contactus-icon-phone {
+ background-position: 0px -80px
+}
+
+.contactus-icon-email {
+ background-position: -1px -136px
+}
+
+.icon-qq {
+ background-position: -18px -186px
+}
+
+.icon-qq:hover {
+ background-position: -18px -225px
+}
+
+.icon-wx {
+ background-position: -18px -264px
+}
+
+.icon-wx:hover {
+ background-position: -18px -303px
+}
+
+.icon-wb {
+ background-position: -18px -342px
+}
+
+.icon-wb:hover {
+ background-position: -18px -381px
+}
+
+.icon-hotline,.icon-user {
+ background-position: -33px -420px
+}
+
+.icon-user {
+ background-position: -18px -444px
+}
+
+.popbox-inputbox-f .icon-email {
+ background-position: -31px -483px
+}
+
+.popbox-inputbox-f .icon-password {
+ background-position: -31px -506px
+}
+
+.icon-email {
+ background-position: -31px -535px
+}
+
+.icon-password {
+ background-position: -31px -558px
+}
+
+.more-btn:after,.news-item:hover .more-btn:after,.news-one:hover .more-btn:after,.more-btn:hover:after,.case-item-pop-btn:after,.contactus-icon-address,.contactus-icon-phone,.contactus-icon-email,.icon-qq,.icon-qq:hover,.icon-wx,.icon-wx:hover,.icon-wb,.icon-wb:hover,.icon-hotline,.icon-user,.popbox-inputbox-f .icon-email,.popbox-inputbox-f .icon-password,.icon-email,.icon-password {
+ background-image: url(../images/common_z.png)
+}
+
+.log-li{width:140px;}
+.log-li:hover{background: none;border:none;}
+.log-li a{float:left;margin: 28px 9px;font-size: 16px;padding:0 10px;line-height: 25px;text-align: center;}
+.log-a{display: block;color: #555;}
+.log-a:hover{color:#f30;}
+.log-b{display: block;color: #fff;border-radius: 3px;background: #108bed;}
+.log-b:hover{background: #f30;}
+.ysright, .ysleft{padding:28px 30px;transition:All 0.4s ease-in-out;-webkit-transition:All 0.4s ease-in-out;-moz-transition:All 0.4s ease-in-out;-o-transition:All 0.4s ease-in-out;}
+.ysright dl, .ysleft dl{border: 2px solid #108bed;border-radius: 100px;background: #fafbfc;margin: 0 20px;}
+.ysright:hover span, .ysleft:hover span{color:#fd6a7f;}
+.ysright:hover p, .ysleft:hover p{color:#555;}
+.ysright dl{float:right;}
+.ysright dd{float:right;}
+.ysright span{text-align: right;}
+.ysright p{text-align: right;}
+.ysleft dl{float:left;}
+.ysleft dd{float:left;}
+.ysleft span{text-align: left;}
+.ysleft p{text-align: left;}
+.ysrdl1{margin-left:100px!important;}
+.ysrdl2{margin-left:160px!important;}
+.ysldl1{margin-right:100px!important;}
+.ysldl2{margin-right:160px!important;}
+.solution-box{margin-top:-560px!important;}
+.solution-box span{display: block;font-size: 18px;font-weight: bold;color:#0f1830;line-height: 35px;margin-top:15px;}
+.solution-box p{display: block;font-size: 14px;line-height: 20px;}
+.solution-box img{margin:20px;transition:All 0.6s ease-in-out;-webkit-transition:All 0.6s ease-in-out;-moz-transition:All 0.6s ease-in-out;-o-transition:All 0.6s ease-in-out;}
+.ysright:hover img, .ysleft:hover img{transform:rotateY(360deg);-webkit-transform:rotateY(360deg);-moz-transform:rotateY(360deg);-o-transform:rotateY(360deg);-ms-transform:rotateY(360deg);}
+.guangdiv{width:100%;height:400px;background: url(../images/guangbg.jpg) no-repeat;background-position: 50%;overflow: hidden;}
+.guangdiv h6{color:#fff;font-size: 30px;display: block;text-align: center;margin:90px 0 0 0;line-height: 80px;}
+.guangdiv span{display: block;text-align: center;line-height: 30px;font-size: 18px;color:#fff;}
+.guangdiv a{border-radius: 50px;display: block;width:120px;font-size: 18px;line-height: 40px;text-align: center;color:#0c45b6;margin:50px auto;background:rgba(255,255,255,0.8);}
+.guangdiv a:hover{background: #fff;}
+.guangdiv b{color:#89d04f;}
+.hbpic{border-top:1px dashed #eee;border-right:1px dashed #eee;}
+.hbpic div{background:#fff;border-bottom: 1px dashed #eee;border-left: 1px dashed #eee;}
+.hbpic img{width:80%;margin:10px auto;display:block;transition:All 0.4s ease-in-out;-webkit-transition:All 0.4s ease-in-out;-moz-transition:All 0.4s ease-in-out;-o-transition:All 0.4s ease-in-out;}
+.hbpic img:hover{z-index:1;transform:scale(1.1);-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-o-transform:scale(1.1);-ms-transform:scale(1.1);}
+.footxxdiv{margin:0 0 50px;}
+.ksdhdd{font-size: 14px;line-height: 30px;}
+.ksdhdd a{padding:0 10px;}
+.ksdhdd a:hover{background: #555;}
+.yqljdd{font-size: 14px;line-height: 30px;}
+.yqljdd a{background: #555;padding:0 10px;}
+.lxfsdd{font-size: 14px;line-height: 30px;}
+.lxfsdd p{color:#85888e;}
+
+
+
+.aside {
+ position: fixed;
+ top: 0;
+ right: 0;
+ width: 0px;
+ height: 100%;
+ z-index: 18;
+ background: url(../images/aside.jpg) center top repeat;
+ box-shadow: -2px 0 10px rgba(0, 0, 0, 0.1);
+}
+.aside ul {
+ margin-top: 100px;
+}
+.aside ul li a {
+ display: block;
+ margin-top: 30px;
+ text-align: center;
+ color: #fff;
+}
+.aside ul li img {
+ display: block;
+ text-align: center;
+ margin: 0 auto;
+}
+.aside ul li.consulting .img2 {
+ display: none;
+}
+.aside ul li.consulting span {
+ display: inline-block;
+ margin: 0 2px;
+ width: 5px;
+ height: 5px;
+ border-radius: 100%;
+ background: #fff;
+}
+.aside ul li.consulting span:nth-child(1) {
+ -webkit-animation: consulting 0.6s 0.07s infinite ease-in-out;
+ animation: consulting 0.6s 0.07s infinite ease-in-out;
+}
+.aside ul li.consulting span:nth-child(2) {
+ -webkit-animation: consulting 0.6s 0.14s infinite ease-in-out;
+ animation: consulting 0.6s 0.14s infinite ease-in-out;
+}
+.aside ul li.consulting span:nth-child(3) {
+ -webkit-animation: consulting 0.6s 0.21s infinite ease-in-out;
+ animation: consulting 0.6s 0.21s infinite ease-in-out;
+}
+ @keyframes consulting {
+ 33% {
+ -webkit-transform: translateY(5px);
+ transform: translateY(5px);
+}
+ 66% {
+ -webkit-transform: translateY(-5px);
+ transform: translateY(-5px);
+}
+ 100% {
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+}
+}
+ @-webkit-keyframes consulting {
+ 33% {
+ -webkit-transform: translateY(5px);
+ transform: translateY(5px);
+}
+ 66% {
+ -webkit-transform: translateY(-5px);
+ transform: translateY(-5px);
+}
+ 100% {
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+}
+}
+.aside ul li.consulting.active {
+ background: #fff;
+ transition: 0.5s all;
+ -webkit-transition: 0.5s all;
+}
+.aside ul li.consulting.active a {
+ color: #3F82ED;
+}
+.aside ul li.consulting.active span {
+ background: #3F82ED;
+}
+.aside ul li.consulting.active .img1 {
+ display: none;
+}
+.aside ul li.consulting.active .img2 {
+ display: block;
+}
+.consulting_box {
+ width: 250px;
+ height: 100%;
+ background: #fff;
+ overflow: hidden;
+ z-index: 15;
+ position: fixed;
+ top: 0;
+ right: -250px;
+ box-shadow: -2px 0 10px rgba(0, 0, 0, .1);
+ transition: 0.8s all;
+ -webkit-transition: 0.8s all;
+}
+.consulting_box .title {
+ background: url(../images/002.png) center top no-repeat;
+ text-align: center;
+ padding: 26px 0 2px 0;
+ color: #fff;
+}
+.consulting_box .title_t1 {
+ font-size: 12px;
+}
+.consulting_box .title_t2 {
+ font-size: 16px;
+ margin: 5px 0;
+}
+.consulting_type {
+ padding: 40px 0;
+ border-bottom: solid 1px #399BEC;
+}
+.consulting_type_title {
+ padding-left: 30px;
+ font-size: 16px;
+ color: #333;
+}
+.consulting_type ul {
+ margin: 30px 0 20px 0;
+}
+.consulting_type ul li a {
+ display: block;
+ height: 40px;
+ line-height: 40px;
+ text-indent: 30px;
+ z-index: 2;
+ position: relative;
+ color: #666;
+ margin: 0;
+ text-align: left;
+ transition: 0.3s all;
+ -webkit-transition: 0.3s all;
+}
+.consulting_type ul li a img {
+ margin: 0;
+ display: inline-block;
+ padding-right: 30px;
+}
+.consulting_type ul li a .img2 {
+ display: none;
+}
+.consulting_type ul li a:before {
+ z-index: -1;
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: #3c9af2;
+ opacity: 0;
+ -webkit-transform: scale3d(1, 0.1, 1);
+ transform: scale3d(1, 0.1, 1);
+ -webkit-transition: -webkit-transform 0.4s, opacity 0.4s;
+ transition: transform 0.4s, opacity 0.4s;
+ -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
+}
+.consulting_type ul li a, .consulting_type ul li a:before {
+ -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
+}
+.consulting_type ul li a:hover:before {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+}
+.consulting_type ul li a:hover {
+ color: #fff;
+}
+.consulting_type ul li a:hover .img2 {
+ display: inline-block;
+}
+.consulting_type ul li a:hover .img1 {
+ display: none;
+}
+.consulting_box .problem {
+ padding-top: 40px;
+}
+.consulting_box .problem_title {
+ padding-left: 30px;
+ font-size: 16px;
+ color: #333;
+}
+.consulting_box .problem ul {
+ padding: 20px 0 0 30px;
+}
+.consulting_box .problem ul li {
+ margin-bottom: 8px;
+}
+.consulting_box .problem ul li a {
+ display: inline-block;
+}
+.consulting_box .problem ul li span {
+ display: inline-block;
+ width: 3px;
+ height: 3px;
+ border-radius: 100%;
+ background: #3c9af2;
+ margin: 3px 10px 3px 0;
+ animation: none;
+}
+.consulting_box .problem ul li a {
+ font-size: 12px;
+ color: #818181;
+}
+.consulting_box .problem ul li a:hover {
+ color: #3c9af2;
+}
+.consulting_type .time {
+ color: #818181;
+ font-size: 12px;
+ padding-left: 30px;
+}
+.consulting_box .close {
+ position: absolute;
+ top: 5px;
+ right: 8px;
+ cursor: pointer;
+}
+.consulting_box .close img {
+ transition: 0.4s all;
+ -webkit-transition: 0.4s all;
+}
+.consulting_box .close:hover img {
+ transform: rotate(180deg);
+ -webkit-transform: rotate(180deg);
+}
+
+#close {
+ cursor: pointer;
+ position: fixed;
+ bottom: 18px;
+ right: 0;
+ width: 0px;
+ height: 40px;
+ z-index: 100;
+ /*background: #fff;*/
+ background: url(../images/right-menu-icons.png) no-repeat -776px -15%;
+ -webkit-transition: all 0.4s;
+ transition: all 0.4s;
+}
+#show {
+ cursor: pointer;
+ position: fixed;
+ bottom: 18px;
+ right: 0;
+ width: 40px;
+ height: 40px;
+ z-index: 100;
+ /*background: #fff;*/
+ background: url(../images/icon-list.jpg) no-repeat 0 -762px;
+ -webkit-transition: all 0.4s;
+ transition: all 0.4s;
+}
+#close:hover {
+ background: url(../images/right-menu-icons.png) no-repeat -776px -93px;
+ background-color: #fff;
+}
+
+
+
+
+
+.kzf-mod-title p{line-height: 30px;}
+.case_show_brief_title{margin-top:20px;font-size:18px;}
+.glyphicon-paperclip{background: url(../images/hxz.png) no-repeat;background-position: 50%;display: block;height:100%;}
+.introduce_list_title{line-height: 26px;}
+.introduce_list_text{line-height: 25px;}
+.mapdec{text-align: left;}
+.mapdec .text{overflow: hidden;margin-top:35px;}
+.mapdec .text h5{font-size: 18px;line-height: 35px;color:#0f1830;margin:0 0 0 40px;}
+.mapdec .text span{font-size: 14px;line-height: 30px;display: block;margin-top:10px;overflow: hidden;}
+.mapdec i{float:left;margin-right:10px;display:block;width:30px;height:30px;background:url(../images/contimg.png) no-repeat;background-size: 100% auto;}
+.mapdec i.lx_dz{background-position: 0 0;}
+.mapdec i.lx_dh{background-position: 0 -30px;}
+.mapdec i.lx_yx{background-position: 0 -60px;}
+.mapdec i.lx_wz{background-position: 0 -90px;}
+.mapdec i.lx_gjz{background-position: 0 -120px;}
+.mapdec .buslink{overflow: hidden;margin:20px 0 0 0;}
+.buslink dd{display: block;overflow: hidden;font-size: 16px;line-height: 30px;color:#0f1830;}
+.buslink b{display: block;font-size: 16px;line-height: 30px;margin:10px 0 0 40px;}
+.buslink p{display: block;font-size: 16px;line-height: 25px;margin:0 0 0 40px;}
+.technical_support_box_z_info{line-height: 22px;}
+
+.newspagelist{width:100%;overflow: hidden;}
+.newspagelist a{display: block;overflow: hidden;padding:15px 0;-webkit-transition: all .5s;-moz-transition: all .5s;-ms-transition: all .5s;transition: all .5s;}
+.newspagelist a:hover{background: #108bed;}
+.newspagelist .kzf-mod-new-time-box{float:left;width:20%;margin:0 4% 0 0;}
+.newspagelist .kzf-mod-new-time-date{font-size: 24px;font-weight: bold;color:#ccc;line-height: 40px;text-align: center;}
+.newspagelist .kzf-mod-new-time-year{font-size: 16px;color:#ccc;line-height: 22px;text-align: center;}
+.newspagelist .kzf-mod-new-box{float:left;width:70%;padding:0 0 0 4%;border-left:1px solid #eee;}
+.newspagelist .kzf-mod-new-title{font-size: 16px;color: #0f1830;line-height: 30px;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;}
+.newspagelist .kzf-mod-new-text{font-size: 12px;line-height: 20px;color: #888;height: 40px;overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 3;-webkit-box-orient: vertical;}
+.newspagelist a:hover .kzf-mod-new-time-date{color:#fff;}
+.newspagelist a:hover .kzf-mod-new-time-year{color:#fff;}
+.newspagelist a:hover .kzf-mod-new-title{color:#fff;}
+.newspagelist a:hover .kzf-mod-new-text{color:#fff;}
+
+.contactipt{width:100%;margin:50px 0 0 0;overflow: hidden;background: #fafafa;}
+.contactipt h6{display: block;font-size:20px;line-height: 50px;background: #108bed;color:#fff;}
+.contactipt dl{width:100%;overflow: hidden;margin:20px 0 0 0;}
+.contactipt span{display: block;font-size:16px;color:#0f1830;line-height: 30px;text-align: left;width:96%;margin:0 auto;}
+.contactipt .contipt{width:96%;border:1px solid #ddd;padding:0 5px;font-size: 14px;color:#0f1830;line-height: 30px;}
+.contactipt .conttext{width:96%;border:1px solid #ddd;padding:0 5px;font-size: 14px;color:#0f1830;line-height: 28px;height:114px;}
+.contactipt .contbut{display: block;width:200px;font-size: 16px;color:#fff;background: #108bed;border:1px solid #108bed;border-radius: 3px;margin:30px auto;line-height: 35px;}
+.contactipt .contbut:hover{background: #fff;background:transparent;color: #108bed;}
+
+.txfwitem{padding:20px 0;overflow: hidden;}
+.txfwitem:nth-child(2n){background:#fafafa;}
+.txfwitem img{display: block;width:80%;margin:0 auto;border:1px solid #eee;transition:All 0.6s ease-in-out;-webkit-transition:All 0.6s ease-in-out;-moz-transition:All 0.6s ease-in-out;-o-transition:All 0.6s ease-in-out;}
+.txfwitem img:hover{transform:scale(1.1);-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-o-transform:scale(1.1);-ms-transform:scale(1.1);}
+.txfwitem h6{display: block;font-size: 26px;line-height: 50px;color:#108bed;font-weight: bold;margin:50px 0 0 0;text-align: center;}
+.txfwitem p{display: block;font-size: 14px;line-height: 25px;color: #818181;margin:15px 0 0 0;}
+.txfwitem p:first-letter{margin:0 0 0 2.5rem;}
+
+.pull-left{width:180px;height:80px;overflow: hidden;}
+
+.teseul li{overflow: hidden;height:193px;margin-bottom: 30px;}
+.teseul img{display: block;margin:0 auto;}
+.teseul span{font-size: 16px;color:#0f1830;line-height: 40px;text-align: center;display: block;}
+.teseul p{font-size:14px;color:#0f1830;line-height:25px;position: absolute;width: 100%;height:193px;padding: 69px 20px 0;display: block;top:-193px;left: 0;border-top: 5px solid #f5f5f5;background: #fafbfc;text-align: center;-webkit-transition: all .5s;-moz-transition: all .5s;-ms-transition: all .5s;transition: all .5s;}
+.teseul li:hover p{top:0;}
+
+.ggchidiv{width:100%;height:120px;background: url(../images/ggbg.jpg) center center no-repeat;margin:50px 0 0 0;transition:All 0.6s ease-in-out;-webkit-transition:All 0.6s ease-in-out;-moz-transition:All 0.6s ease-in-out;-o-transition:All 0.6s ease-in-out;}
+.ggchidiv:hover{opacity: 0.8;}
+.ggchidiv span{font-size:16px;color:#fff;line-height: 30px;display: block;text-align: center;padding:29px 0 0 0;}
+
+.indexnews .newdivtit{width:100%;border-radius: 15px;overflow: hidden;position: relative;}
+.newdivtit img{margin:0 auto;max-height:180px;width:100%;display: block;border-radius: 15px;}
+.newdivtit span{position: absolute;top:180px;left:0;width:100%;height:100%;background:rgba(10,70,180,0.7);padding-top:60px;line-height: 40px;font-size: 25px;text-align: center;color:#fff;transition:All 0.6s ease-in-out;-webkit-transition:All 0.6s ease-in-out;-moz-transition:All 0.6s ease-in-out;-o-transition:All 0.6s ease-in-out;}
+.newdivtit i{display: block;font-size: 16px;font-style: normal;line-height: 30px;font-weight: normal;}
+.newdivtit:hover span{top:0;}
+.indexnews ul{width:100%;margin:20px 0 0;max-height:246px;overflow: hidden;}
+.indexnews li{width:100%;background: #fff;margin:0 0 1px;padding:0;}
+.indexnews li a{padding:0 5%;width:100%;max-width:500px!important;margin:0;font-size: 16px;line-height:40px;color:#0f1830;border:none;display: block;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;}
+.indexnews li a:hover{border:none;background: #f5f5f5;color:#108bed;}
+.indexnews li a span{color:#888!important;}
+.indexnews .newsmore{width:100%;background: #f5f5f5;font-size: 16px;line-height: 40px;text-align: center;color:#0f1830;display: block;}
+.indexnews .newsmore:hover{background: #108bed;color:#fff;}
+
+.coop_show_list{width: 100%;height: 330px;background: #FFFFFF;border:1px solid #fff;box-shadow: 0 2px 15px 0 rgba(151,151,151,0.50);border-radius: 4px;margin: 30px 0 0 0;padding: 0;}
+.coop_show_list:hover{box-shadow: 0 2px 15px 0 rgba(151,151,151,0.80);border:1px solid #eee;}
+.coop-content-left {display: inline-block;height: 100%;padding: 15px 30px 0 0;}
+.coop-content-left>p>span:nth-of-type(1) {display: block;font-size: 30px;color: #23242D;line-height: 42px;margin-bottom: 20px;}
+.coop-content-left>p>span:nth-of-type(2) {color: #23242D;line-height: 30px;}
+.coop-content-left-aDiv {position: absolute;width: 95%;height: 65px;border-top: 0.5px solid #D3D3D3;bottom: 10px;padding: 0 0 0 3px;font-size: 12px;font-weight: 600;line-height: 50px;}
+.coop-content-right {display: inline-block;height: 100%;padding: 0;}
+.coop-mch-logo {position: relative;width: 153px;height: 65px;top: 15px;right: -20px;box-shadow: 0 2px 5px 0 rgba(125, 125, 125, 0.53);}
+.mch-back1 {background: url(../images/mch-back-1.png);background-size: cover;-webkit-background-size: cover;}
+.mch-logo1 {background: url(../images/mch-logo-1.png);background-size: cover;-webkit-background-size: cover;}
+.mch-back2 {background: url(../images/mch-back-2.png);background-size: cover;-webkit-background-size: cover;}
+.mch-logo2 {background: url(../images/mch-logo-2.png);background-size: cover;-webkit-background-size: cover;}
+.mch-back3 {background: url(../images/mch-back-3.png);background-size: cover;-webkit-background-size: cover;}
+.mch-logo3 {background: url(../images/mch-logo-3.png);background-size: cover;-webkit-background-size: cover;}
+.mch-back4 {background: url(../images/mch-back-4.png);background-size: cover;-webkit-background-size: cover;}
+.mch-logo4 {background: url(../images/mch-logo-4.png);background-size: cover;-webkit-background-size: cover;}
+.mch-back5 {background: url(../images/mch-back-5.png);background-size: cover;-webkit-background-size: cover;}
+.mch-logo5 {background: url(../images/mch-logo-5.png);background-size: cover;-webkit-background-size: cover;}
+.mch-back6 {background: url(../images/mch-back-6.png);background-size: cover;-webkit-background-size: cover;}
+.mch-logo6 {background: url(../images/mch-logo-6.png);background-size: cover;-webkit-background-size: cover;}
+.morecase{margin: 20px auto 0;}
+.morecase h6{font-size: 22px;line-height: 70px;color: #0f1830;text-align: center;}
+.morecase .row{border-top:1px dashed #eee;border-left: 1px dashed #eee;}
+.morecase .row div{border-right:1px dashed #eee;border-bottom:1px dashed #eee;}
+.morecase img{display: block;margin:10px auto;max-width: 90%;opacity: 0.7;-webkit-filter: grayscale(100%);-moz-filter: grayscale(100%);-ms-filter: grayscale(100%);-o-filter: grayscale(100%);filter: grayscale(100%);filter: gray;}
+.morecase img:hover{opacity: 1;-webkit-filter: grayscale(0%);-moz-filter: grayscale(0%);-ms-filter: grayscale(0%);-o-filter: grayscale(0%);filter: grayscale(0%);}
+
+.newcpcon{overflow: hidden;}
+.newcplist{overflow: hidden;text-align: left;}
+.newcplist:nth-child(2n){margin:30px 0;padding:30px 0;border-top: 5px solid #fcfcfc;border-bottom: 5px solid #fcfcfc;}
+.newcplist img{display: block;margin:0 auto;}
+.newcplist h6{font-size: 18px;font-weight: bold;color:#0f1830;margin:30px 0 0 0;}
+.newcplist h6:first-letter, .newcplist p:first-letter{margin:0 0 0 2.5rem;}
+.newcplist p{font-size: 14px;line-height: 25px;padding:10px 20px;background: #f9f9f9;color:#888;margin:20px 0;}
+.newcplist ul{overflow: hidden;width:95%;padding:0 0 0 5%;}
+.newcplist li{float: left;width:50%;font-size: 14px;color: #0f1830;line-height: 25px;}
+
+.newfwcon{width:100%;overflow: hidden;background: url(../images/ggbg.jpg) top center no-repeat;padding:50px 0;}
+.newfwcon .kzf-mod-product-list-title{font-size: 16px;font-weight: bold;color:#fff;text-align: center;}
+.newfwcon:hover .kzf-mod-product-list-title{color:#fff;}
+.newfwcon p{font-size: 12px;color:#fff;text-align: center;}
+.newfwcon img{display: block;margin:0 auto;}
+
+.zspage{width:100%;overflow: hidden;}
+.zsp_g .zsp_g_top.container, .zsp_e .container, .zsp_b .container{padding:0 0;}
+.zspage .zsp_a{width:100%;overflow: hidden;background: #ff5b28;padding:30px 0;}
+.zsp_a .a1{float: left;width:50%;margin:110px 0 0 0;}
+.zsp_a .a2{float: right;width:45%;margin:0 0 0 0;}
+.zspage .zsp_b{width:100%;overflow: hidden;background: url(../images/b4.png) no-repeat;background-position: 50%;background-size: 80%;padding:50px 0;}
+.zsp_b .zsp_bt{display: block;margin: 0 auto;float: none;}
+.zspage .zsp_c{padding:50px 0 0 0;}
+.zspage .zsp_d{padding:50px 0;}
+.zsp_d .zsp_d_con{margin:15px 0 0 0;}
+.zspage .zsp_e{padding:50px 0;width:100%;overflow: hidden;background: #ffa628;}
+.zspage .zsp_f{padding:50px 0;}
+.zspage .zsp_g{padding:50px 0;background: #f0f1f3;width:100%;overflow: hidden;}
+.zsp_g .zsp_g_con{margin:20px 0;}
+.zsp_g_con img{margin:15px 0;}
+.zsp_g .zsp_wd{display: block;margin: 0 auto;float: none;}
+.zsp_g .zsp_wen{background: #ff5b28;border-radius: 10px;padding:20px 0 30px;}
+.zsp_g .zsp_da{background: #58c1f0;border-radius: 10px;padding:20px 0 30px;}
+.zsp_g span{display: block;font-size: 22px;line-height: 40px;color:#fff;font-weight: bold;}
+.zsp_g span em{font-size: 30px;line-height: 40px;font-style: normal;color:#fff;margin:0 10px 0 0;}
+.zsp_g i{display: block;font-size: 16px;line-height: 22px;padding:0 0 0 40px;text-align: left;font-style: normal;color:#fff;}
+.zspage .zsp_h{padding:30px 0;overflow: hidden;}
+.zsp_h .zsp_h_con{overflow: hidden;}
+.zsp_h_con h6{display: block;font-size: 35px;line-height: 60px;color: #474747;text-align: center;font-weight: bold;}
+.zsp_h_con dl{width:100%;overflow: hidden;margin:15px 0 0;border:2px solid #f0f1f3;}
+.zsp_h_con dl span{float: left;width:35%;display: block;background: #f0f1f3;font-size: 16px;line-height: 46px;color: #474747;text-align: center;}
+.zsp_h_con dl .contipt, .zsp_h_con dl .conttext{float: left;border:none;width: 65%;line-height: 46px;font-size: 16px;color: #474747;padding:0 5%;}
+.zsp_h_con .contbut{width:100%;background: #108bed;font-size: 20px;color: #fff;line-height: 50px;border:none;margin:20px 0 0;}
+.zsp_pic{width:100%;overflow: hidden;background: #f0f1f3;padding:30px 0;}
+.zsp_pic div{width: 100%;height: 310px;overflow: hidden;position: relative;margin:0 auto;}
+.zsp_pic ul{position: absolute;left: 0;top: 0;}
+.zsp_pic ul li{float:left;border:5px solid #fff;margin: 0 0 0 20px;}
+.zsp_pic ul li img{height: 300px;display: block;}
+.zspage h6{display: block;font-size: 35px;line-height: 60px;color: #474747;text-align: center;font-weight: bold;}
+.zspage p{display: block;font-size: 22px;line-height: 35px;color: #999;text-align: center;margin:15px 0;}
+.zspage p em{color:#ff5b28;font-style: normal;}
+
+@media (max-width:1199px) {
+ #close {display: none;}
+ .box {padding-top: 30px!important;padding-bottom: 30px!important;}
+ .tit-en {font-size: 30px;}
+ .owl-nav {display: none!important;}
+ .footer {padding-top: 30px;}
+ .footer-copyright {padding: 15px 0;}
+ .product-item-bda,.product-item-bdm,.tit {margin-top: 40px;}
+ .tit {padding-left: 15px;padding-right: 15px;}
+ .solution-box {text-align: center;}
+ .solution-item .more-btn {float: none!important;}
+ .news-container {margin-top: 30px;}
+ .news-box-tit {margin: 0 15px;}
+ .leader-item-people {text-align: center;}
+ .input-message {margin-top: 60px;}
+ .submit-btn {margin-top: 30px;}
+ .contactus-item {margin-bottom: 30px;}
+ .contactus-item-info {margin-bottom: 50px;}
+ .nav-item, .nav-item-child{width:90px;}
+ .log-li{width:130px;}
+ .log-li a{margin:28px 6px;}
+
+ .ystit{height:auto;width:auto;border:0;border-radius: 0;margin:auto;}
+ .solution-box{margin-top:0!important;}
+ .ystit p{margin:0;}
+ .productmsg-sitem{margin:35px 0 0 0;}
+
+ .ysleft dl,.ysright dl{margin:0 20px!important;}
+}
+
+@media (max-width:1090px) {
+ .nav-item.cur,.nav-item:hover,.nav-item-child .nav-item-a:hover,.nav-item-child .nav-item-a.cur {background-color: #fff;}
+ .nav-item.cur>.nav-item-a,.nav-item:hover>.nav-item-a,.nav-item-child .nav-item-a:hover,.nav-item-child .nav-item-a.cur,.nav-item-child .nav-item-a:hover>.nav-item-en,.nav-item-child .nav-item-a.cur>.nav-item-en,.nav-item.cur>.nav-item-a>.nav-item-en,.nav-item:hover>.nav-item-a>.nav-item-en {color: #075bb9;}
+ .header,.nav-item,.nav-item-a {height: 80px;}
+ .nav-item-child {top: 80px;}
+ .nav-item-child .nav-item-a {border-top: 0;border-bottom: 1px solid #e7eff4;}
+ .nav-item-zh {white-space: nowrap;}
+ .pull-left{width:160px;height:80px;}
+ .header-logo-img{margin:22.5px 0;height:35px;}
+}
+
+@media (max-width:992px) {
+ .leader-item-line {display: none;}
+ .banner-item {height: 375px;}
+ .header {-webkit-box-shadow: 0 2px 10px rgba(0,0,0,.2);-moz-box-shadow: 0 2px 10px rgba(0,0,0,.2);box-shadow: 0 2px 10px rgba(0,0,0,.2);}
+ .nav-item {float: none;z-index: 2;width: 100%;}
+ .header {height: 56px;}
+ .nav-item,.nav-item-a {height: auto;}
+ .nav-item-a {padding: 0;line-height: 50px;color: #cceaff;}
+ .nav-item.cur,.nav-item:hover,.nav-item.cur>.nav-item-a,.nav-item:hover>.nav-item-a,.nav-item-child .nav-item-a:hover,.nav-item-child .nav-item-a.cur,.nav-item-child .nav-item-a:hover>.nav-item-en,.nav-item-child .nav-item-a.cur>.nav-item-en,.nav-item.cur>.nav-item-a>.nav-item-en,.nav-item:hover>.nav-item-a>.nav-item-en {font-weight: normal;color: #fff;background: rgba(20,140,240,1);border:none;}
+ .nav-item-child .nav-item-a {border: 0;background: rgba(20,140,240,1);}
+ .header-more {display: block!important;}
+ .nav {position: absolute;display: none;overflow: hidden;height: auto;left: 0;top: 56px;width: 100%;}
+ .nav-item-a {margin: 0;}
+ .nav-item {background: rgba(0,0,0,.7);}
+ .nav-item-child {position: static;width: 100%;background-color: transparent;}
+ .log-li{overflow: hidden;background: rgba(20,140,240,0.8);}
+ li.nav-item.log-li a{width:30%;margin:20px 10%;color:#fff;line-height: 30px;}
+ li.nav-item.log-li a.log-a{border:1px solid #fff;border-radius: 3px;}
+ li.nav-item.log-li a.log-b{background:rgba(0,0,0,.7);border:1px solid rgba(0,0,0,.7);}
+ .pull-left{height:56px;}
+ .header-logo-img{margin:10px 0;}
+ .nav-item-en{display: none;}
+}
+
+@media (max-width:799px) {
+ .footer-social,.footer-items,.footer-icon,.footer-copyright .pull-right,.footer-copyright .pull-left {float: none!important;text-align: center;}
+ .footer-logo {margin-right: 10px;margin-bottom: 10px;vertical-align: top;}
+ .footer-logo,.footer-nav {float: none!important;display: inline-block;text-align: left;}
+ .footer-social {margin-bottom: 15px;}
+ .cmmi {margin: 10px 0;text-align: center;}
+ .cmmi img {float: none;}
+ .cmmi span {float: none;}
+}
+
+@media (max-width:768px) {
+ .agreement-wrap {padding: 30px 15px;}
+ .aside{display:none;}
+ .banner-item {height: 275px;}
+}
+
+@media (max-width:499px) {
+ .footer-slogan {text-align: center;}
+}
+
+@media (max-width:430px) {
+ #show{display: none;}
+ .back-top{right:19px;}
+
+ .popbox-close,.agreement-close {width: 40px;height: 40px;font-size: 34px;}
+ .popbox-con {width: 100%;}
+ .popbox-code {margin-bottom: 15px;width: 100%;}
+
+
+ .swiper-container{height:260px!important;}
+ .inner{width:100%!important;height:260px!important;}
+ .slide1 .xt1{width:90%!important;top:100px!important;}
+ .slide1 .bs2{left: 20%!important; top:40%!important;width:60%!important;}
+ .slide1 .bs3{left: 20%!important; top:54%!important;width:60%!important;}
+ .slide1 .y1{right:0%!important;top:40%!important;width:50%!important}
+ .slide1 .y2{left:0%!important;top:25%!important;width:50%!important;}
+ .slide1 .y3{top:-10%!important;left:30%!important;width:50%!important}
+ .slide2 .s0{width:60%!important;top:30%!important;left:20%!important;}
+ .slide2 .s1{width:60%!important;top:60%!important;left:20%!important;}
+ .slide2 .s3, .slide2 .s4{width:50%!important;height:auto!important;}
+ .slide2 .s5{width:20%!important;right:3%!important;}
+ .slide3 .zh-a-1{top:25%!important;width:60%!important;left:20%!important;}
+ .slide3 .zh-a-2{left:0!important;height:260px!important;}
+ .slide3 .zh-a-3{top:60%!important;left:20%!important;width:60%!important;}
+ .slide4 .b-y-1{top:10%!important;left:15%!important;}
+ .slide4 .b-y-2{width:40%!important;top:10%!important;left:55%!important;}
+ .slide4 .b-y-3{width:45%!important;top:10%!important;}
+ .slide4 .b-1{width:60%!important;top:30%!important;left:20%!important;}
+ .slide4 .b-3{width:60%!important;top:63%!important;left:20%!important;}
+ .slide4 .b-s-1{left:0!important;width:20%!important;}
+ .slide4 .b-s-2{left:15%!important;width:10%!important;}
+ .slide4 .b-s-3{left:40%!important;width:25%!important;}
+ .slide4 .b-s-4{left:30%!important;width:15%!important;}
+ .slide4 .b-s-5{left:70%!important;width:15%!important;}
+ .slide4 .b-s-6{left:80%!important;width:30%!important;}
+ .slide6 .ny1{width:50%!important;right:0!important;bottom:0!important;}
+ .slide6 .ny2{left:5%!important;top:25%!important;width:45%!important;}
+ .slide6 .ny3{left:10%!important;top:65%!important;width:37%!important;}
+ .slide7 .yx1{width:80%!important;right:7%!important;}
+ .slide7 .yx2{left:0!important;width:40%!important;}
+ .slide7 .yx3{right:0!important;width:40%!important;}
+ .slide7 .yx4{top:30%!important;left:15%!important;width:75%!important;}
+ .slide7 .yx5{left:0!important;width:35%!important;}
+ .slide8 .zs1{left:10%!important;top:26%!important;width:80%!important;}
+ .slide8 .zs2{display: none;}
+
+ .banwuright{display: none!important;}
+ .banwuleft{top:15%!important;left:10%!important;}
+ .banwuleft span{text-align: center!important;}
+ .banwuleft a{margin:20px auto!important;}
+
+ .product-item-img{width:100%;height:110px;}
+ .product-item{margin-top:0;}
+ .product-item-tit{font-size: 18px;}
+ .productmsg-sitem h6{line-height: 35px;margin:15px auto;}
+ .productmsg-sitem span{width:100%;}
+ .productmsg-sitem p{width:100%;}
+ .productmsg-item span{width:100%;}
+ .productmsg-item p{width:100%;}
+
+ .ysright, .ysleft{padding:0;overflow: hidden;}
+ .solution-box img{margin:10px auto;display: block;float:none;}
+ .solution-box dd{float: none;}
+ .solution-box span{text-align: center;margin-top:0;}
+ .solution-box p{text-align: center;}
+
+ .guangdiv h6{font-size: 18px;}
+ .guangdiv span{font-size: 12px;}
+
+ .kzf-mod-product{padding:20px 0;}
+ .mapdec .text{margin:0;}
+
+ .footxxdiv{margin:0 0 15px;}
+
+ .page .main{padding:0!important;}
+ .price-section .section-heading{margin:0;}
+ .vcenter{margin-top:20px;}
+ .price-section{z-index: 0;}
+ .technical_support_box ul li a .text{width:100%;}
+
+ .mapdec .text h5{font-size: 18px;line-height: 35px;color:#0f1830;margin:0 0 0 40px;}
+ .mapdec .text span{font-size: 15px;line-height: 20px;display: block;margin-top:10px;overflow: hidden;}
+ .mapdec i{float:left;margin-right:10px;display:block;width:20px;height:20px;background:url(../images/contimg.png) no-repeat;background-size: 100% auto;}
+ .mapdec i.lx_dz{background-position: 0 0;}
+ .mapdec i.lx_dh{background-position: 0 -20px;}
+ .mapdec i.lx_yx{background-position: 0 -40px;}
+ .mapdec i.lx_wz{background-position: 0 -60px;}
+ .mapdec i.lx_gjz{background-position: 0 -80px;}
+ .mapdec .buslink{overflow: hidden;margin:20px 0 0 0;}
+ .buslink dd{display: block;overflow: hidden;font-size: 16px;line-height: 20px;color:#0f1830;}
+ .buslink b{display: block;font-size: 16px;line-height: 20px;margin:10px 0 0 40px;}
+ .buslink p{display: block;font-size: 16px;line-height: 20px;margin:0 0 0 40px;}
+
+ .newspagelist .kzf-mod-new-time-date{font-size: 16px;}
+
+ .txfwitem h6{margin:0;}
+ .txfwitem img{margin:1rem auto;}
+
+ .ggchidiv{margin:0;height:210px;background: url(../images/ggbg.jpg);}
+
+ .news-container .row{margin:0!important;}
+
+ .product-item-tit{overflow: hidden;text-overflow:ellipsis;white-space: nowrap;}
+
+ .ysright dl,.ysleft dl{float:none;border:none;}
+
+ .news-box-tit{margin:0 12px;}
+
+ .indexnews .newsmore{margin:0 0 20px;}
+
+ .coop-content-left>p>span:nth-of-type(1){margin:0;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;}
+ .coop-content-left>p>span:nth-of-type(2){line-height: 22px!important;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 8;overflow: hidden;}
+ .coop-mch-logo{right:30px;}
+
+ .newfwcon{padding:35px 0;}
+
+ .zsp_a .a1{margin:40px 0 0 0;}
+ .zspage .zsp_b, .zspage .zsp_c{padding:20px 0;}
+ .zspage h6{display: block;font-size: 25px;line-height: 45px;color: #474747;text-align: center;font-weight: bold;}
+ .zspage p{display: block;font-size: 14px;line-height: 22px;color: #999;text-align: center;margin:8px 0;}
+
+}
+
+@media (max-width:399px) {
+ .cmmi span {display: block;margin-left: 0;}
+}
+
+@media (min-width:993px) {
+ .nav {display: block!important;}
+ .productmsg-sitem{margin:80px 0 0 0;}
+}
+
+@media (min-width:640px) {
+ .leaders-item {padding-left: 40px;}
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/template/index3/assets/css/idangerous.swiper2.7.6.css b/template/index3/assets/css/idangerous.swiper2.7.6.css
new file mode 100644
index 0000000..96f2e86
--- /dev/null
+++ b/template/index3/assets/css/idangerous.swiper2.7.6.css
@@ -0,0 +1,125 @@
+/*
+ * Swiper 2.7.6
+ * Mobile touch slider and framework with hardware accelerated transitions
+ *
+ * http://www.idangero.us/sliders/swiper/
+ *
+ * Copyright 2010-2015, Vladimir Kharlampidi
+ * The iDangero.us
+ * http://www.idangero.us/
+ *
+ * Licensed under GPL & MIT
+ *
+ * Released on: February 11, 2015
+*/
+/* ===============================================================
+Basic Swiper Styles
+================================================================*/
+.swiper-container {
+ margin:0 auto;
+ position:relative;
+ overflow:hidden;
+ direction:ltr;
+ -webkit-backface-visibility:hidden;
+ -moz-backface-visibility:hidden;
+ -ms-backface-visibility:hidden;
+ -o-backface-visibility:hidden;
+ backface-visibility:hidden;
+ /* Fix of Webkit flickering */
+ z-index:1;
+}
+.swiper-wrapper {
+ position:relative;
+ width:100%;
+ -webkit-transition-property:-webkit-transform, left, top;
+ -webkit-transition-duration:0s;
+ -webkit-transform:translate3d(0px,0,0);
+ -webkit-transition-timing-function:ease;
+
+ -moz-transition-property:-moz-transform, left, top;
+ -moz-transition-duration:0s;
+ -moz-transform:translate3d(0px,0,0);
+ -moz-transition-timing-function:ease;
+
+ -o-transition-property:-o-transform, left, top;
+ -o-transition-duration:0s;
+ -o-transform:translate3d(0px,0,0);
+ -o-transition-timing-function:ease;
+ -o-transform:translate(0px,0px);
+
+ -ms-transition-property:-ms-transform, left, top;
+ -ms-transition-duration:0s;
+ -ms-transform:translate3d(0px,0,0);
+ -ms-transition-timing-function:ease;
+
+ transition-property:transform, left, top;
+ transition-duration:0s;
+ transform:translate3d(0px,0,0);
+ transition-timing-function:ease;
+
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+.swiper-free-mode > .swiper-wrapper {
+ -webkit-transition-timing-function: ease-out;
+ -moz-transition-timing-function: ease-out;
+ -ms-transition-timing-function: ease-out;
+ -o-transition-timing-function: ease-out;
+ transition-timing-function: ease-out;
+ margin: 0 auto;
+}
+.swiper-slide {
+ float: left;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+
+/* IE10 Windows Phone 8 Fixes */
+.swiper-wp8-horizontal {
+ -ms-touch-action: pan-y;
+}
+.swiper-wp8-vertical {
+ -ms-touch-action: pan-x;
+}
+
+/* ===============================================================
+Your custom styles, here you need to specify container's and slide's
+sizes, pagination, etc.
+================================================================*/
+.swiper-container {
+ /* Specify Swiper's Size: */
+
+ /*width:200px;
+ height: 100px;*/
+}
+.swiper-slide {
+ /* Specify Slides's Size: */
+
+ /*width: 100%;
+ height: 100%;*/
+}
+.swiper-slide-active {
+ /* Specific active slide styling: */
+
+}
+.swiper-slide-visible {
+ /* Specific visible slide styling: */
+
+}
+/* ===============================================================
+Pagination Styles
+================================================================*/
+.swiper-pagination-switch {
+ /* Stylize pagination button: */
+
+}
+.swiper-active-switch {
+ /* Specific active button style: */
+
+}
+.swiper-visible-switch {
+ /* Specific visible button style: */
+
+}
diff --git a/template/index3/assets/css/owl.carousel_1107.css b/template/index3/assets/css/owl.carousel_1107.css
new file mode 100644
index 0000000..e53501e
--- /dev/null
+++ b/template/index3/assets/css/owl.carousel_1107.css
@@ -0,0 +1 @@
+.owl-carousel .animated{-webkit-animation-duration:1000ms;animation-duration:1000ms;-webkit-animation-fill-mode:both;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{-webkit-transition:height 500ms ease-in-out;-moz-transition:height 500ms ease-in-out;-ms-transition:height 500ms ease-in-out;-o-transition:height 500ms ease-in-out;transition:height 500ms ease-in-out}.owl-carousel{display:none;width:100%;-webkit-tap-highlight-color:transparent;position:relative;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0px,0,0)}.owl-carousel .owl-controls .owl-nav .owl-prev,.owl-carousel .owl-controls .owl-nav .owl-next,.owl-carousel .owl-controls .owl-dot{cursor:pointer;cursor:hand;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-loaded{display:block}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel .owl-refresh .owl-item{display:none}.owl-carousel .owl-item{position:relative;min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel .owl-item img{display:block;-webkit-transform-style:preserve-3d}.owl-carousel.owl-text-select-on .owl-item{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.owl-carousel .owl-grab{cursor:move;cursor:-webkit-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.no-js .owl-carousel{display:block}.owl-carousel .owl-item .owl-lazy{opacity:0;-webkit-transition:opacity 400ms ease;-moz-transition:opacity 400ms ease;-ms-transition:opacity 400ms ease;-o-transition:opacity 400ms ease;transition:opacity 400ms ease}.owl-carousel .owl-item img{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(../images/owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;-webkit-transition:scale 100ms ease;-moz-transition:scale 100ms ease;-ms-transition:scale 100ms ease;-o-transition:scale 100ms ease;transition:scale 100ms ease}.owl-carousel .owl-video-play-icon:hover{-webkit-transition:scale(1.3,1.3);-moz-transition:scale(1.3,1.3);-ms-transition:scale(1.3,1.3);-o-transition:scale(1.3,1.3);transition:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-tn,.owl-carousel .owl-video-playing .owl-video-play-icon{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;-webkit-background-size:contain;-moz-background-size:contain;-o-background-size:contain;background-size:contain;-webkit-transition:opacity 400ms ease;-moz-transition:opacity 400ms ease;-ms-transition:opacity 400ms ease;-o-transition:opacity 400ms ease;transition:opacity 400ms ease}.owl-carousel .owl-video-frame{position:relative;z-index:1}
\ No newline at end of file
diff --git a/template/index3/assets/css/style.css b/template/index3/assets/css/style.css
new file mode 100644
index 0000000..4b4f556
--- /dev/null
+++ b/template/index3/assets/css/style.css
@@ -0,0 +1,258 @@
+@charset "utf-8";
+/* CSS Document */
+*{
+ padding:0;
+ margin:0;
+}
+.wrap_top {
+ width: 100%;
+ overflow: hidden;
+ border-bottom: 1px solid #e5e5e5;
+ background: #f7f7f7;
+}
+.swiper-container{
+ height:500px;
+}
+.arrow-left {
+ background: url(../images/arrows.png) no-repeat left top;
+ position: absolute;
+ left: 10px;
+ top: 50%;
+ margin-top: -15px;
+ width: 17px;
+ height: 30px;
+ z-index:10;
+}
+.arrow-right {
+ background: url(../images/arrows.png) no-repeat left bottom;
+ position: absolute;
+ right: 10px;
+ top: 50%;
+ margin-top: -15px;
+ width: 17px;
+ height: 30px;
+ z-index:10;
+}
+.pagination {
+ position: absolute;
+ left: 0;
+ text-align: center;
+ bottom:5px;
+ width: 100%;
+}
+.swiper-pagination-switch {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ border-radius: 10px;
+ background: #108bed;
+ margin: 0 3px;
+ cursor: pointer;
+}
+.swiper-active-switch {
+ background: #fff;
+}
+.swiper-slide{
+ position:relative;
+ opacity:0;
+ transition: opacity 0.7s ease-in-out;
+}
+.swiper-slide-active{
+ opacity:1;
+}
+.swiper-slide .img{
+ position:absolute;
+}
+.inner{
+ position:relative;
+ display:block;
+ width:1000px;
+ height:500px;
+ margin:0 auto;
+}
+.slide1{
+ background:url(../images/bannerbg.jpg) top center no-repeat;
+}
+.slide2{
+ background-color: #07cf8b;
+}
+.slide3{
+ background-color: #108ced;
+}
+.slide4{
+ background-color: #13d0d2;
+}
+.slide5{
+ background:url(../images/banbg2.jpg) top center no-repeat;
+}
+.slide6{
+ background:#e63030 url(../images/ny_bg.png) top center no-repeat;
+}
+.slide7{
+ background:url(../images/yx_0.jpg) top center no-repeat;
+}
+.slide8{
+ background: #ff5b28;
+}
+.slide1 .xt1{left: 5%; top:150px;width:900px;}
+.slide1 .bs2{left: 20%; top:170px;width:600px;}
+.slide1 .bs3{left: 20%; top:260px;width:600px;}
+.slide2 .s0{left: 25%; top:130px;width:500px;}
+.slide2 .s1{left: 25%;top:300px;width:500px;}
+.slide2 .s2{left: 50%;margin-left: -435px;top: 280px;}
+.slide2 .s3{left: 0;bottom: 0px;z-index: 5;height:190px;}
+.slide2 .s4{right: 0;bottom: 0px;z-index: 0;height: 160px;}
+.slide2 .s5{right: 0;top: 10px;width:200px;}
+.slide3 .zh-a-1{left: 25%;top: 130px;z-index: 9;width:500px;}
+.slide3 .zh-a-3{left: 25%;top: 330px;width:500px;}
+.slide3 .zh-a-2{left: 15%;top: 0;height:500px;}
+.slide4 .b-1{left:25%;top: 130px;width:500px;}
+.slide4 .b-2{left: 90px;top: 180px;}
+.slide4 .b-3{left: 25%;top: 320px;width:500px;}
+.slide4 .b-s-1{width: 100px; left: 50px; bottom:0px;}
+.slide4 .b-s-2{left: 160px;width: 160px;bottom:0px;}
+.slide4 .b-s-3{left: 390px;width: 58px;bottom:0px;}
+.slide4 .b-s-4{right: 359px; width: 103px;bottom:0px;}
+.slide4 .b-s-5{right: 250px;width: 150px;bottom:0px;}
+.slide4 .b-s-6{right: 0;width: 65px;bottom:0px;}
+.slide4 .b-y-1{top:40px;left:50%;}
+.slide4 .b-y-2{top:40px;left:60%}
+.slide4 .b-y-3{top:40px;left:0%;}
+.slide6 .ny1{bottom:0;right:0;}
+.slide6 .ny2{top:100px;left:0;}
+.slide6 .ny3{top:340px;left:60px;}
+.slide7 .yx1{bottom:0;right:80px;}
+.slide7 .yx2{top:0;left:-100px;}
+.slide7 .yx3{top:0;right:-100px;}
+.slide7 .yx4{top:130px;left:180px;}
+.slide7 .yx5{bottom:0;left:20px;}
+.slide8 .zs1{left:0;top:140px;width:560px;}
+.slide8 .zs2{right:0;top:50px;}
+
+.banwuleft{
+ top: 33%;
+ left: 0;
+ width: 300px;
+ position: absolute;
+}
+.banwuleft span{
+ display: block;
+ font-size: 40px;
+ line-height: 50px;
+ color: #fff;
+}
+.banwuleft a{
+ width: 180px;
+ background: rgba(255,255,255,0.8);
+ display: block;
+ text-align: center;
+ border-radius: 30px;
+ line-height: 35px;
+ font-size: 16px;
+ color: #108bed;
+ margin-top: 20px;
+ transition:All 0.6s ease-in-out;
+ -webkit-transition:All 0.6s ease-in-out;
+ -moz-transition:All 0.6s ease-in-out;
+ -o-transition:All 0.6s ease-in-out;
+}
+.banwuleft a:hover{
+ background: #fff;
+ color:#108bed;
+}
+.banwuright{
+ position: absolute;
+ top: 23%;
+ right: 0;
+ width: 570px;
+ background:rgba(80,170,240,0.7);
+ padding: 30px 20px;
+ border-radius: 10px;
+ box-shadow:5px 5px 10px rgba(10,110,190,0.2);
+}
+.banwuright h6{
+ font-size: 40px;
+ color: #fff;
+ padding-bottom: 20px;
+ display: block;
+ border-bottom: 1px solid #73c3ff;
+ line-height: 50px;
+}
+.banwuright span{
+ font-size: 16px;
+ color: #fff;
+ font-weight: 700;
+ margin-top: 10px;
+ line-height: 35px;
+ display: block;
+}
+.banwuright p{
+ font-size: 16px;
+ color: #fff;
+ line-height: 20px;
+ display: block;
+}
+.banwuright a{
+ display: block;
+ width: 250px;
+ text-align: center;
+ background: #f1d025;
+ border-radius: 20px;
+ font-size: 16px;
+ color: #fff;
+ line-height: 35px;
+ margin-top: 30px;
+ transition:All 0.6s ease-in-out;
+ -webkit-transition:All 0.6s ease-in-out;
+ -moz-transition:All 0.6s ease-in-out;
+ -o-transition:All 0.6s ease-in-out;
+}
+.banwuright a:hover{
+ background: #f6a90d;
+ color:#fff;
+}
+
+.loop{
+ animation-iteration-count: infinite;/*无限*/
+ animation-timing-function:linear;/*平滑*/
+}
+.targetBtn {
+ margin-top: 20px;
+ position: absolute;
+ bottom: 60px;
+ left: 352px;
+ z-index: 999;
+}
+.targetBtn a{
+ height:50px;
+ border-radius:50px;
+ background:rgba(0,0,0,.5);
+ float:left;
+ line-height:50px;
+ text-align:center;
+ color:#fff;
+ text-decoration:none;
+ }
+.targetBtn .a1{
+ width:110px;
+ }
+.targetBtn .a2{
+ width:170px;
+ margin-left:15px;
+ }
+/*自定义CSS动画*/
+.moveRight{-webkit-animation-name:moveRight;animation-name:moveRight}
+@-webkit-keyframes moveRight{0%{opacity: 0;left:0px;}
+10%{opacity: 1;}
+100%{opacity: 1;left:550px;}}
+@keyframes moveRight{0%{opacity: 0;left:0px;}
+10%{opacity: 1;}
+100%{opacity: 1;left:550px;}}
+
+.moveLeft{-webkit-animation-name:moveLeft;animation-name:moveLeft}
+@-webkit-keyframes moveLeft{0%{opacity:0;left:390px;}
+10%{opacity:1;}
+100%{opacity:1;left:-370px;}}
+@keyframes moveLeft{0%{opacity:0;left:390px;}
+10%{opacity:1;}
+100%{opacity:1;left:-370px;}}
\ No newline at end of file
diff --git a/template/index3/assets/images/002.png b/template/index3/assets/images/002.png
new file mode 100644
index 0000000..a8cbf44
Binary files /dev/null and b/template/index3/assets/images/002.png differ
diff --git a/template/index3/assets/images/arrows.png b/template/index3/assets/images/arrows.png
new file mode 100644
index 0000000..c4f0633
Binary files /dev/null and b/template/index3/assets/images/arrows.png differ
diff --git a/template/index3/assets/images/aside.jpg b/template/index3/assets/images/aside.jpg
new file mode 100644
index 0000000..ac3bd49
Binary files /dev/null and b/template/index3/assets/images/aside.jpg differ
diff --git a/template/index3/assets/images/b4.png b/template/index3/assets/images/b4.png
new file mode 100644
index 0000000..85e49e2
Binary files /dev/null and b/template/index3/assets/images/b4.png differ
diff --git a/template/index3/assets/images/banbg2.jpg b/template/index3/assets/images/banbg2.jpg
new file mode 100644
index 0000000..4ebeb8a
Binary files /dev/null and b/template/index3/assets/images/banbg2.jpg differ
diff --git a/template/index3/assets/images/bannerbg.jpg b/template/index3/assets/images/bannerbg.jpg
new file mode 100644
index 0000000..69c05aa
Binary files /dev/null and b/template/index3/assets/images/bannerbg.jpg differ
diff --git a/template/index3/assets/images/common_z.png b/template/index3/assets/images/common_z.png
new file mode 100644
index 0000000..2555c5d
Binary files /dev/null and b/template/index3/assets/images/common_z.png differ
diff --git a/template/index3/assets/images/contimg.png b/template/index3/assets/images/contimg.png
new file mode 100644
index 0000000..9062a60
Binary files /dev/null and b/template/index3/assets/images/contimg.png differ
diff --git a/template/index3/assets/images/ggbg.jpg b/template/index3/assets/images/ggbg.jpg
new file mode 100644
index 0000000..ba4f44e
Binary files /dev/null and b/template/index3/assets/images/ggbg.jpg differ
diff --git a/template/index3/assets/images/guangbg.jpg b/template/index3/assets/images/guangbg.jpg
new file mode 100644
index 0000000..a8f408e
Binary files /dev/null and b/template/index3/assets/images/guangbg.jpg differ
diff --git a/template/index3/assets/images/hxz.png b/template/index3/assets/images/hxz.png
new file mode 100644
index 0000000..3b7571f
Binary files /dev/null and b/template/index3/assets/images/hxz.png differ
diff --git a/template/index3/assets/images/icon-list.jpg b/template/index3/assets/images/icon-list.jpg
new file mode 100644
index 0000000..8193506
Binary files /dev/null and b/template/index3/assets/images/icon-list.jpg differ
diff --git a/template/index3/assets/images/item1-a-h.png b/template/index3/assets/images/item1-a-h.png
new file mode 100644
index 0000000..d4ba766
Binary files /dev/null and b/template/index3/assets/images/item1-a-h.png differ
diff --git a/template/index3/assets/images/item1.png b/template/index3/assets/images/item1.png
new file mode 100644
index 0000000..38864df
Binary files /dev/null and b/template/index3/assets/images/item1.png differ
diff --git a/template/index3/assets/images/item2-a-h.png b/template/index3/assets/images/item2-a-h.png
new file mode 100644
index 0000000..4238bb8
Binary files /dev/null and b/template/index3/assets/images/item2-a-h.png differ
diff --git a/template/index3/assets/images/item2.png b/template/index3/assets/images/item2.png
new file mode 100644
index 0000000..b589061
Binary files /dev/null and b/template/index3/assets/images/item2.png differ
diff --git a/template/index3/assets/images/item3-a-h.png b/template/index3/assets/images/item3-a-h.png
new file mode 100644
index 0000000..e67baa5
Binary files /dev/null and b/template/index3/assets/images/item3-a-h.png differ
diff --git a/template/index3/assets/images/item3.png b/template/index3/assets/images/item3.png
new file mode 100644
index 0000000..64f04eb
Binary files /dev/null and b/template/index3/assets/images/item3.png differ
diff --git a/template/index3/assets/images/item4-a-h.png b/template/index3/assets/images/item4-a-h.png
new file mode 100644
index 0000000..67ae098
Binary files /dev/null and b/template/index3/assets/images/item4-a-h.png differ
diff --git a/template/index3/assets/images/item4.png b/template/index3/assets/images/item4.png
new file mode 100644
index 0000000..3c2f0a5
Binary files /dev/null and b/template/index3/assets/images/item4.png differ
diff --git a/template/index3/assets/images/item5-a-h.png b/template/index3/assets/images/item5-a-h.png
new file mode 100644
index 0000000..0008a29
Binary files /dev/null and b/template/index3/assets/images/item5-a-h.png differ
diff --git a/template/index3/assets/images/item5.png b/template/index3/assets/images/item5.png
new file mode 100644
index 0000000..16537f6
Binary files /dev/null and b/template/index3/assets/images/item5.png differ
diff --git a/template/index3/assets/images/item6-a-h.png b/template/index3/assets/images/item6-a-h.png
new file mode 100644
index 0000000..b733c34
Binary files /dev/null and b/template/index3/assets/images/item6-a-h.png differ
diff --git a/template/index3/assets/images/item6.png b/template/index3/assets/images/item6.png
new file mode 100644
index 0000000..9a0f1c3
Binary files /dev/null and b/template/index3/assets/images/item6.png differ
diff --git a/template/index3/assets/images/item7-a-h.png b/template/index3/assets/images/item7-a-h.png
new file mode 100644
index 0000000..0ec45f8
Binary files /dev/null and b/template/index3/assets/images/item7-a-h.png differ
diff --git a/template/index3/assets/images/item7.png b/template/index3/assets/images/item7.png
new file mode 100644
index 0000000..6159c47
Binary files /dev/null and b/template/index3/assets/images/item7.png differ
diff --git a/template/index3/assets/images/item8-a-h.png b/template/index3/assets/images/item8-a-h.png
new file mode 100644
index 0000000..b53a076
Binary files /dev/null and b/template/index3/assets/images/item8-a-h.png differ
diff --git a/template/index3/assets/images/item8.png b/template/index3/assets/images/item8.png
new file mode 100644
index 0000000..49b5cb9
Binary files /dev/null and b/template/index3/assets/images/item8.png differ
diff --git a/template/index3/assets/images/item9-a-h.png b/template/index3/assets/images/item9-a-h.png
new file mode 100644
index 0000000..18601f8
Binary files /dev/null and b/template/index3/assets/images/item9-a-h.png differ
diff --git a/template/index3/assets/images/item9.png b/template/index3/assets/images/item9.png
new file mode 100644
index 0000000..e0db918
Binary files /dev/null and b/template/index3/assets/images/item9.png differ
diff --git a/template/index3/assets/images/ny_bg.png b/template/index3/assets/images/ny_bg.png
new file mode 100644
index 0000000..9cf8771
Binary files /dev/null and b/template/index3/assets/images/ny_bg.png differ
diff --git a/template/index3/assets/images/right-menu-icons.png b/template/index3/assets/images/right-menu-icons.png
new file mode 100644
index 0000000..973a261
Binary files /dev/null and b/template/index3/assets/images/right-menu-icons.png differ
diff --git a/template/index3/assets/images/yx_0.jpg b/template/index3/assets/images/yx_0.jpg
new file mode 100644
index 0000000..dfb71f7
Binary files /dev/null and b/template/index3/assets/images/yx_0.jpg differ
diff --git a/template/index3/assets/js/idangerous.swiper2.7.6.min.js b/template/index3/assets/js/idangerous.swiper2.7.6.min.js
new file mode 100644
index 0000000..1392d50
--- /dev/null
+++ b/template/index3/assets/js/idangerous.swiper2.7.6.min.js
@@ -0,0 +1,16 @@
+/*
+ * Swiper 2.7.6
+ * Mobile touch slider and framework with hardware accelerated transitions
+ *
+ * http://www.idangero.us/sliders/swiper/
+ *
+ * Copyright 2010-2015, Vladimir Kharlampidi
+ * The iDangero.us
+ * http://www.idangero.us/
+ *
+ * Licensed under GPL & MIT
+ *
+ * Released on: February 11, 2015
+*/
+var Swiper=function(a,b){"use strict";function c(a,b){return document.querySelectorAll?(b||document).querySelectorAll(a):jQuery(a,b)}function d(a){return"[object Array]"===Object.prototype.toString.apply(a)?!0:!1}function e(){var a=G-J;return b.freeMode&&(a=G-J),b.slidesPerView>D.slides.length&&!b.centeredSlides&&(a=0),0>a&&(a=0),a}function f(){function a(a){var c,d,e=function(){"undefined"!=typeof D&&null!==D&&(void 0!==D.imagesLoaded&&D.imagesLoaded++,D.imagesLoaded===D.imagesToLoad.length&&(D.reInit(),b.onImagesReady&&D.fireCallback(b.onImagesReady,D)))};a.complete?e():(d=a.currentSrc||a.getAttribute("src"),d?(c=new Image,c.onload=e,c.onerror=e,c.src=d):e())}var d=D.h.addEventListener,e="wrapper"===b.eventTarget?D.wrapper:D.container;if(D.browser.ie10||D.browser.ie11?(d(e,D.touchEvents.touchStart,p),d(document,D.touchEvents.touchMove,q),d(document,D.touchEvents.touchEnd,r)):(D.support.touch&&(d(e,"touchstart",p),d(e,"touchmove",q),d(e,"touchend",r)),b.simulateTouch&&(d(e,"mousedown",p),d(document,"mousemove",q),d(document,"mouseup",r))),b.autoResize&&d(window,"resize",D.resizeFix),g(),D._wheelEvent=!1,b.mousewheelControl){if(void 0!==document.onmousewheel&&(D._wheelEvent="mousewheel"),!D._wheelEvent)try{new WheelEvent("wheel"),D._wheelEvent="wheel"}catch(f){}D._wheelEvent||(D._wheelEvent="DOMMouseScroll"),D._wheelEvent&&d(D.container,D._wheelEvent,j)}if(b.keyboardControl&&d(document,"keydown",i),b.updateOnImagesReady){D.imagesToLoad=c("img",D.container);for(var h=0;h=e&&k[0]<=e+g&&k[1]>=f&&k[1]<=f+h&&(c=!0)}if(!c)return}N?((37===b||39===b)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),39===b&&D.swipeNext(),37===b&&D.swipePrev()):((38===b||40===b)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),40===b&&D.swipeNext(),38===b&&D.swipePrev())}}function j(a){var c=D._wheelEvent,d=0;if(a.detail)d=-a.detail;else if("mousewheel"===c)if(b.mousewheelControlForceToAxis)if(N){if(!(Math.abs(a.wheelDeltaX)>Math.abs(a.wheelDeltaY)))return;d=a.wheelDeltaX}else{if(!(Math.abs(a.wheelDeltaY)>Math.abs(a.wheelDeltaX)))return;d=a.wheelDeltaY}else d=a.wheelDelta;else if("DOMMouseScroll"===c)d=-a.detail;else if("wheel"===c)if(b.mousewheelControlForceToAxis)if(N){if(!(Math.abs(a.deltaX)>Math.abs(a.deltaY)))return;d=-a.deltaX}else{if(!(Math.abs(a.deltaY)>Math.abs(a.deltaX)))return;d=-a.deltaY}else d=Math.abs(a.deltaX)>Math.abs(a.deltaY)?-a.deltaX:-a.deltaY;if(b.freeMode){var f=D.getWrapperTranslate()+d;if(f>0&&(f=0),f<-e()&&(f=-e()),D.setWrapperTransition(0),D.setWrapperTranslate(f),D.updateActiveSlide(f),0===f||f===-e())return}else(new Date).getTime()-V>60&&(0>d?D.swipeNext():D.swipePrev()),V=(new Date).getTime();return b.autoplay&&D.stopAutoplay(!0),a.preventDefault?a.preventDefault():a.returnValue=!1,!1}function k(a){D.allowSlideClick&&(m(a),D.fireCallback(b.onSlideClick,D,a))}function l(a){m(a),D.fireCallback(b.onSlideTouch,D,a)}function m(a){if(a.currentTarget)D.clickedSlide=a.currentTarget;else{var c=a.srcElement;do{if(c.className.indexOf(b.slideClass)>-1)break;c=c.parentNode}while(c);D.clickedSlide=c}D.clickedSlideIndex=D.slides.indexOf(D.clickedSlide),D.clickedSlideLoopIndex=D.clickedSlideIndex-(D.loopedSlides||0)}function n(a){return D.allowLinks?void 0:(a.preventDefault?a.preventDefault():a.returnValue=!1,b.preventLinksPropagation&&"stopPropagation"in a&&a.stopPropagation(),!1)}function o(a){return a.stopPropagation?a.stopPropagation():a.returnValue=!1,!1}function p(a){if(b.preventLinks&&(D.allowLinks=!0),D.isTouched||b.onlyExternal)return!1;var c=a.target||a.srcElement;document.activeElement&&document.activeElement!==document.body&&document.activeElement!==c&&document.activeElement.blur();var d="input select textarea".split(" ");if(b.noSwiping&&c&&t(c))return!1;if(_=!1,D.isTouched=!0,$="touchstart"===a.type,!$&&"which"in a&&3===a.which)return D.isTouched=!1,!1;if(!$||1===a.targetTouches.length){D.callPlugins("onTouchStartBegin"),!$&&!D.isAndroid&&d.indexOf(c.tagName.toLowerCase())<0&&(a.preventDefault?a.preventDefault():a.returnValue=!1);var e=$?a.targetTouches[0].pageX:a.pageX||a.clientX,f=$?a.targetTouches[0].pageY:a.pageY||a.clientY;D.touches.startX=D.touches.currentX=e,D.touches.startY=D.touches.currentY=f,D.touches.start=D.touches.current=N?e:f,D.setWrapperTransition(0),D.positions.start=D.positions.current=D.getWrapperTranslate(),D.setWrapperTranslate(D.positions.start),D.times.start=(new Date).getTime(),I=void 0,b.moveStartThreshold>0&&(X=!1),b.onTouchStart&&D.fireCallback(b.onTouchStart,D,a),D.callPlugins("onTouchStartEnd")}}function q(a){if(D.isTouched&&!b.onlyExternal&&(!$||"mousemove"!==a.type)){var c=$?a.targetTouches[0].pageX:a.pageX||a.clientX,d=$?a.targetTouches[0].pageY:a.pageY||a.clientY;if("undefined"==typeof I&&N&&(I=!!(I||Math.abs(d-D.touches.startY)>Math.abs(c-D.touches.startX))),"undefined"!=typeof I||N||(I=!!(I||Math.abs(d-D.touches.startY)D.touches.startX)return}else if(!b.swipeToNext&&dD.touches.startY)return;if(a.assignedToSwiper)return void(D.isTouched=!1);if(a.assignedToSwiper=!0,b.preventLinks&&(D.allowLinks=!1),b.onSlideClick&&(D.allowSlideClick=!1),b.autoplay&&D.stopAutoplay(!0),!$||1===a.touches.length){if(D.isMoved||(D.callPlugins("onTouchMoveStart"),b.loop&&(D.fixLoop(),D.positions.start=D.getWrapperTranslate()),b.onTouchMoveStart&&D.fireCallback(b.onTouchMoveStart,D)),D.isMoved=!0,a.preventDefault?a.preventDefault():a.returnValue=!1,D.touches.current=N?c:d,D.positions.current=(D.touches.current-D.touches.start)*b.touchRatio+D.positions.start,D.positions.current>0&&b.onResistanceBefore&&D.fireCallback(b.onResistanceBefore,D,D.positions.current),D.positions.current<-e()&&b.onResistanceAfter&&D.fireCallback(b.onResistanceAfter,D,Math.abs(D.positions.current+e())),b.resistance&&"100%"!==b.resistance){var f;if(D.positions.current>0&&(f=1-D.positions.current/J/2,D.positions.current=.5>f?J/2:D.positions.current*f),D.positions.current<-e()){var g=(D.touches.current-D.touches.start)*b.touchRatio+(e()+D.positions.start);f=(J+g)/J;var h=D.positions.current-g*(1-f)/2,i=-e()-J/2;D.positions.current=i>h||0>=f?i:h}}if(b.resistance&&"100%"===b.resistance&&(D.positions.current>0&&(!b.freeMode||b.freeModeFluid)&&(D.positions.current=0),D.positions.current<-e()&&(!b.freeMode||b.freeModeFluid)&&(D.positions.current=-e())),!b.followFinger)return;if(b.moveStartThreshold)if(Math.abs(D.touches.current-D.touches.start)>b.moveStartThreshold||X){if(!X)return X=!0,void(D.touches.start=D.touches.current);D.setWrapperTranslate(D.positions.current)}else D.positions.current=D.positions.start;else D.setWrapperTranslate(D.positions.current);return(b.freeMode||b.watchActiveIndex)&&D.updateActiveSlide(D.positions.current),b.grabCursor&&(D.container.style.cursor="move",D.container.style.cursor="grabbing",D.container.style.cursor="-moz-grabbin",D.container.style.cursor="-webkit-grabbing"),Y||(Y=D.touches.current),Z||(Z=(new Date).getTime()),D.velocity=(D.touches.current-Y)/((new Date).getTime()-Z)/2,Math.abs(D.touches.current-Y)<2&&(D.velocity=0),Y=D.touches.current,Z=(new Date).getTime(),D.callPlugins("onTouchMoveEnd"),b.onTouchMove&&D.fireCallback(b.onTouchMove,D,a),!1}}}function r(a){if(I&&D.swipeReset(),!b.onlyExternal&&D.isTouched){D.isTouched=!1,b.grabCursor&&(D.container.style.cursor="move",D.container.style.cursor="grab",D.container.style.cursor="-moz-grab",D.container.style.cursor="-webkit-grab"),D.positions.current||0===D.positions.current||(D.positions.current=D.positions.start),b.followFinger&&D.setWrapperTranslate(D.positions.current),D.times.end=(new Date).getTime(),D.touches.diff=D.touches.current-D.touches.start,D.touches.abs=Math.abs(D.touches.diff),D.positions.diff=D.positions.current-D.positions.start,D.positions.abs=Math.abs(D.positions.diff);var c=D.positions.diff,d=D.positions.abs,f=D.times.end-D.times.start;5>d&&300>f&&D.allowLinks===!1&&(b.freeMode||0===d||D.swipeReset(),b.preventLinks&&(D.allowLinks=!0),b.onSlideClick&&(D.allowSlideClick=!0)),setTimeout(function(){"undefined"!=typeof D&&null!==D&&(b.preventLinks&&(D.allowLinks=!0),b.onSlideClick&&(D.allowSlideClick=!0))},100);var g=e();if(!D.isMoved&&b.freeMode)return D.isMoved=!1,b.onTouchEnd&&D.fireCallback(b.onTouchEnd,D,a),void D.callPlugins("onTouchEnd");if(!D.isMoved||D.positions.current>0||D.positions.current<-g)return D.swipeReset(),b.onTouchEnd&&D.fireCallback(b.onTouchEnd,D,a),void D.callPlugins("onTouchEnd");if(D.isMoved=!1,b.freeMode){if(b.freeModeFluid){var h,i=1e3*b.momentumRatio,j=D.velocity*i,k=D.positions.current+j,l=!1,m=20*Math.abs(D.velocity)*b.momentumBounceRatio;-g>k&&(b.momentumBounce&&D.support.transitions?(-m>k+g&&(k=-g-m),h=-g,l=!0,_=!0):k=-g),k>0&&(b.momentumBounce&&D.support.transitions?(k>m&&(k=m),h=0,l=!0,_=!0):k=0),0!==D.velocity&&(i=Math.abs((k-D.positions.current)/D.velocity)),D.setWrapperTranslate(k),D.setWrapperTransition(i),b.momentumBounce&&l&&D.wrapperTransitionEnd(function(){_&&(b.onMomentumBounce&&D.fireCallback(b.onMomentumBounce,D),D.callPlugins("onMomentumBounce"),D.setWrapperTranslate(h),D.setWrapperTransition(300))}),D.updateActiveSlide(k)}return(!b.freeModeFluid||f>=300)&&D.updateActiveSlide(D.positions.current),b.onTouchEnd&&D.fireCallback(b.onTouchEnd,D,a),void D.callPlugins("onTouchEnd")}H=0>c?"toNext":"toPrev","toNext"===H&&300>=f&&(30>d||!b.shortSwipes?D.swipeReset():D.swipeNext(!0,!0)),"toPrev"===H&&300>=f&&(30>d||!b.shortSwipes?D.swipeReset():D.swipePrev(!0,!0));var n=0;if("auto"===b.slidesPerView){for(var o,p=Math.abs(D.getWrapperTranslate()),q=0,r=0;rp){n=o;break}n>J&&(n=J)}else n=F*b.slidesPerView;"toNext"===H&&f>300&&(d>=n*b.longSwipesRatio?D.swipeNext(!0,!0):D.swipeReset()),"toPrev"===H&&f>300&&(d>=n*b.longSwipesRatio?D.swipePrev(!0,!0):D.swipeReset()),b.onTouchEnd&&D.fireCallback(b.onTouchEnd,D,a),D.callPlugins("onTouchEnd")}}function s(a,b){return a&&a.getAttribute("class")&&a.getAttribute("class").indexOf(b)>-1}function t(a){var c=!1;do s(a,b.noSwipingClass)&&(c=!0),a=a.parentElement;while(!c&&a.parentElement&&!s(a,b.wrapperClass));return!c&&s(a,b.wrapperClass)&&s(a,b.noSwipingClass)&&(c=!0),c}function u(a,b){var c,d=document.createElement("div");return d.innerHTML=b,c=d.firstChild,c.className+=" "+a,c.outerHTML}function v(a,c,d){function e(){var f=+new Date,l=f-g;h+=i*l/(1e3/60),k="toNext"===j?h>a:a>h,k?(D.setWrapperTranslate(Math.ceil(h)),D._DOMAnimating=!0,window.setTimeout(function(){e()},1e3/60)):(b.onSlideChangeEnd&&("to"===c?d.runCallbacks===!0&&D.fireCallback(b.onSlideChangeEnd,D,j):D.fireCallback(b.onSlideChangeEnd,D,j)),D.setWrapperTranslate(a),D._DOMAnimating=!1)}var f="to"===c&&d.speed>=0?d.speed:b.speed,g=+new Date;if(D.support.transitions||!b.DOMAnimation)D.setWrapperTranslate(a),D.setWrapperTransition(f);else{var h=D.getWrapperTranslate(),i=Math.ceil((a-h)/f*(1e3/60)),j=h>a?"toNext":"toPrev",k="toNext"===j?h>a:a>h;if(D._DOMAnimating)return;e()}D.updateActiveSlide(a),b.onSlideNext&&"next"===c&&d.runCallbacks===!0&&D.fireCallback(b.onSlideNext,D,a),b.onSlidePrev&&"prev"===c&&d.runCallbacks===!0&&D.fireCallback(b.onSlidePrev,D,a),b.onSlideReset&&"reset"===c&&d.runCallbacks===!0&&D.fireCallback(b.onSlideReset,D,a),"next"!==c&&"prev"!==c&&"to"!==c||d.runCallbacks!==!0||w(c)}function w(a){if(D.callPlugins("onSlideChangeStart"),b.onSlideChangeStart)if(b.queueStartCallbacks&&D.support.transitions){if(D._queueStartCallbacks)return;D._queueStartCallbacks=!0,D.fireCallback(b.onSlideChangeStart,D,a),D.wrapperTransitionEnd(function(){D._queueStartCallbacks=!1})}else D.fireCallback(b.onSlideChangeStart,D,a);if(b.onSlideChangeEnd)if(D.support.transitions)if(b.queueEndCallbacks){if(D._queueEndCallbacks)return;D._queueEndCallbacks=!0,D.wrapperTransitionEnd(function(c){D.fireCallback(b.onSlideChangeEnd,c,a)})}else D.wrapperTransitionEnd(function(c){D.fireCallback(b.onSlideChangeEnd,c,a)});else b.DOMAnimation||setTimeout(function(){D.fireCallback(b.onSlideChangeEnd,D,a)},10)}function x(){var a=D.paginationButtons;if(a)for(var b=0;b0&&0===D.slides.length&&D.loadSlides(),b.loop&&D.createLoop(),D.init(),f(),b.pagination&&D.createPagination(!0),b.loop||b.initialSlide>0?D.swipeTo(b.initialSlide,0,!1):D.updateActiveSlide(0),b.autoplay&&D.startAutoplay(),D.centerIndex=D.activeIndex,b.onSwiperCreated&&D.fireCallback(b.onSwiperCreated,D),D.callPlugins("onSwiperCreated")}if(!document.body.outerHTML&&document.body.__defineGetter__&&HTMLElement){var C=HTMLElement.prototype;C.__defineGetter__&&C.__defineGetter__("outerHTML",function(){return(new XMLSerializer).serializeToString(this)})}if(window.getComputedStyle||(window.getComputedStyle=function(a){return this.el=a,this.getPropertyValue=function(b){var c=/(\-([a-z]){1})/g;return"float"===b&&(b="styleFloat"),c.test(b)&&(b=b.replace(c,function(){return arguments[2].toUpperCase()})),a.currentStyle[b]?a.currentStyle[b]:null},this}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){for(var c=b||0,d=this.length;d>c;c++)if(this[c]===a)return c;return-1}),(document.querySelectorAll||window.jQuery)&&"undefined"!=typeof a&&(a.nodeType||0!==c(a).length)){var D=this;D.touches={start:0,startX:0,startY:0,current:0,currentX:0,currentY:0,diff:0,abs:0},D.positions={start:0,abs:0,diff:0,current:0},D.times={start:0,end:0},D.id=(new Date).getTime(),D.container=a.nodeType?a:c(a)[0],D.isTouched=!1,D.isMoved=!1,D.activeIndex=0,D.centerIndex=0,D.activeLoaderIndex=0,D.activeLoopIndex=0,D.previousIndex=null,D.velocity=0,D.snapGrid=[],D.slidesGrid=[],D.imagesToLoad=[],D.imagesLoaded=0,D.wrapperLeft=0,D.wrapperRight=0,D.wrapperTop=0,D.wrapperBottom=0,D.isAndroid=navigator.userAgent.toLowerCase().indexOf("android")>=0;var E,F,G,H,I,J,K={eventTarget:"wrapper",mode:"horizontal",touchRatio:1,speed:300,freeMode:!1,freeModeFluid:!1,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,slidesPerView:1,slidesPerGroup:1,slidesPerViewFit:!0,simulateTouch:!0,followFinger:!0,shortSwipes:!0,longSwipesRatio:.5,moveStartThreshold:!1,onlyExternal:!1,createPagination:!0,pagination:!1,paginationElement:"span",paginationClickable:!1,paginationAsRange:!0,resistance:!0,scrollContainer:!1,preventLinks:!0,preventLinksPropagation:!1,noSwiping:!1,noSwipingClass:"swiper-no-swiping",initialSlide:0,keyboardControl:!1,mousewheelControl:!1,mousewheelControlForceToAxis:!1,useCSS3Transforms:!0,autoplay:!1,autoplayDisableOnInteraction:!0,autoplayStopOnLast:!1,loop:!1,loopAdditionalSlides:0,roundLengths:!1,calculateHeight:!1,cssWidthAndHeight:!1,updateOnImagesReady:!0,releaseFormElements:!0,watchActiveIndex:!1,visibilityFullFit:!1,offsetPxBefore:0,offsetPxAfter:0,offsetSlidesBefore:0,offsetSlidesAfter:0,centeredSlides:!1,queueStartCallbacks:!1,queueEndCallbacks:!1,autoResize:!0,resizeReInit:!1,DOMAnimation:!0,loader:{slides:[],slidesHTMLType:"inner",surroundGroups:1,logic:"reload",loadAllSlides:!1},swipeToPrev:!0,swipeToNext:!0,slideElement:"div",slideClass:"swiper-slide",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",wrapperClass:"swiper-wrapper",paginationElementClass:"swiper-pagination-switch",paginationActiveClass:"swiper-active-switch",paginationVisibleClass:"swiper-visible-switch"};b=b||{};for(var L in K)if(L in b&&"object"==typeof b[L])for(var M in K[L])M in b[L]||(b[L][M]=K[L][M]);else L in b||(b[L]=K[L]);D.params=b,b.scrollContainer&&(b.freeMode=!0,b.freeModeFluid=!0),b.loop&&(b.resistance="100%");var N="horizontal"===b.mode,O=["mousedown","mousemove","mouseup"];D.browser.ie10&&(O=["MSPointerDown","MSPointerMove","MSPointerUp"]),D.browser.ie11&&(O=["pointerdown","pointermove","pointerup"]),D.touchEvents={touchStart:D.support.touch||!b.simulateTouch?"touchstart":O[0],touchMove:D.support.touch||!b.simulateTouch?"touchmove":O[1],touchEnd:D.support.touch||!b.simulateTouch?"touchend":O[2]};for(var P=D.container.childNodes.length-1;P>=0;P--)if(D.container.childNodes[P].className)for(var Q=D.container.childNodes[P].className.split(/\s+/),R=0;R=0;c--)a===D.slides[c]&&(b=c);return b},a.isActive=function(){return a.index()===D.activeIndex?!0:!1},a.swiperSlideDataStorage||(a.swiperSlideDataStorage={}),a.getData=function(b){return a.swiperSlideDataStorage[b]},a.setData=function(b,c){return a.swiperSlideDataStorage[b]=c,a},a.data=function(b,c){return"undefined"==typeof c?a.getAttribute("data-"+b):(a.setAttribute("data-"+b,c),a)},a.getWidth=function(b,c){return D.h.getWidth(a,b,c)},a.getHeight=function(b,c){return D.h.getHeight(a,b,c)},a.getOffset=function(){return D.h.getOffset(a)},a},D.calcSlides=function(a){var c=D.slides?D.slides.length:!1;D.slides=[],D.displaySlides=[];for(var d=0;d=0;d--)D._extendSwiperSlide(D.slides[d]);c!==!1&&(c!==D.slides.length||a)&&(h(),g(),D.updateActiveSlide(),D.params.pagination&&D.createPagination(),D.callPlugins("numberOfSlidesChanged"))},D.createSlide=function(a,c,d){c=c||D.params.slideClass,d=d||b.slideElement;var e=document.createElement(d);return e.innerHTML=a||"",e.className=c,D._extendSwiperSlide(e)},D.appendSlide=function(a,b,c){return a?a.nodeType?D._extendSwiperSlide(a).append():D.createSlide(a,b,c).append():void 0},D.prependSlide=function(a,b,c){return a?a.nodeType?D._extendSwiperSlide(a).prepend():D.createSlide(a,b,c).prepend():void 0},D.insertSlideAfter=function(a,b,c,d){return"undefined"==typeof a?!1:b.nodeType?D._extendSwiperSlide(b).insertAfter(a):D.createSlide(b,c,d).insertAfter(a)},D.removeSlide=function(a){if(D.slides[a]){if(b.loop){if(!D.slides[a+D.loopedSlides])return!1;D.slides[a+D.loopedSlides].remove(),D.removeLoopedSlides(),D.calcSlides(),D.createLoop()}else D.slides[a].remove();return!0}return!1},D.removeLastSlide=function(){return D.slides.length>0?(b.loop?(D.slides[D.slides.length-1-D.loopedSlides].remove(),D.removeLoopedSlides(),D.calcSlides(),D.createLoop()):D.slides[D.slides.length-1].remove(),!0):!1},D.removeAllSlides=function(){for(var a=D.slides.length,b=D.slides.length-1;b>=0;b--)D.slides[b].remove(),b===a-1&&D.setWrapperTranslate(0)},D.getSlide=function(a){return D.slides[a]},D.getLastSlide=function(){return D.slides[D.slides.length-1]},D.getFirstSlide=function(){return D.slides[0]},D.activeSlide=function(){return D.slides[D.activeIndex]},D.fireCallback=function(){var a=arguments[0];if("[object Array]"===Object.prototype.toString.call(a))for(var c=0;c0&&(m.style.paddingLeft="",m.style.paddingRight="",m.style.paddingTop="",m.style.paddingBottom=""),m.style.width="",m.style.height="",b.offsetPxBefore>0&&(N?D.wrapperLeft=b.offsetPxBefore:D.wrapperTop=b.offsetPxBefore),b.offsetPxAfter>0&&(N?D.wrapperRight=b.offsetPxAfter:D.wrapperBottom=b.offsetPxAfter),b.centeredSlides&&(N?(D.wrapperLeft=(J-this.slides[0].getWidth(!0,b.roundLengths))/2,D.wrapperRight=(J-D.slides[D.slides.length-1].getWidth(!0,b.roundLengths))/2):(D.wrapperTop=(J-D.slides[0].getHeight(!0,b.roundLengths))/2,D.wrapperBottom=(J-D.slides[D.slides.length-1].getHeight(!0,b.roundLengths))/2)),N?(D.wrapperLeft>=0&&(m.style.paddingLeft=D.wrapperLeft+"px"),D.wrapperRight>=0&&(m.style.paddingRight=D.wrapperRight+"px")):(D.wrapperTop>=0&&(m.style.paddingTop=D.wrapperTop+"px"),D.wrapperBottom>=0&&(m.style.paddingBottom=D.wrapperBottom+"px")),k=0;var p=0;for(D.snapGrid=[],D.slidesGrid=[],h=0,l=0;lJ){if(b.slidesPerViewFit)D.snapGrid.push(k+D.wrapperLeft),D.snapGrid.push(k+q-J+D.wrapperLeft);else for(var u=0;u<=Math.floor(q/(J+D.wrapperLeft));u++)D.snapGrid.push(0===u?k+D.wrapperLeft:k+D.wrapperLeft+J*u);D.slidesGrid.push(k+D.wrapperLeft)}else D.snapGrid.push(p),D.slidesGrid.push(p);p+=q/2+t/2}else{if(q>J)if(b.slidesPerViewFit)D.snapGrid.push(k),D.snapGrid.push(k+q-J);else if(0!==J)for(var v=0;v<=Math.floor(q/J);v++)D.snapGrid.push(k+J*v);else D.snapGrid.push(k);else D.snapGrid.push(k);D.slidesGrid.push(k)}k+=q,n+=f,o+=g}b.calculateHeight&&(D.height=h),N?(G=n+D.wrapperRight+D.wrapperLeft,b.cssWidthAndHeight&&"height"!==b.cssWidthAndHeight||(m.style.width=n+"px"),b.cssWidthAndHeight&&"width"!==b.cssWidthAndHeight||(m.style.height=D.height+"px")):(b.cssWidthAndHeight&&"height"!==b.cssWidthAndHeight||(m.style.width=D.width+"px"),b.cssWidthAndHeight&&"width"!==b.cssWidthAndHeight||(m.style.height=o+"px"),G=o+D.wrapperTop+D.wrapperBottom)}else if(b.scrollContainer)m.style.width="",m.style.height="",i=D.slides[0].getWidth(!0,b.roundLengths),j=D.slides[0].getHeight(!0,b.roundLengths),G=N?i:j,m.style.width=i+"px",m.style.height=j+"px",F=N?i:j;else{if(b.calculateHeight){for(h=0,j=0,N||(D.container.style.height=""),m.style.height="",l=0;l0&&(N?D.wrapperLeft=F*b.offsetSlidesBefore:D.wrapperTop=F*b.offsetSlidesBefore),b.offsetSlidesAfter>0&&(N?D.wrapperRight=F*b.offsetSlidesAfter:D.wrapperBottom=F*b.offsetSlidesAfter),b.offsetPxBefore>0&&(N?D.wrapperLeft=b.offsetPxBefore:D.wrapperTop=b.offsetPxBefore),b.offsetPxAfter>0&&(N?D.wrapperRight=b.offsetPxAfter:D.wrapperBottom=b.offsetPxAfter),b.centeredSlides&&(N?(D.wrapperLeft=(J-F)/2,D.wrapperRight=(J-F)/2):(D.wrapperTop=(J-F)/2,D.wrapperBottom=(J-F)/2)),N?(D.wrapperLeft>0&&(m.style.paddingLeft=D.wrapperLeft+"px"),D.wrapperRight>0&&(m.style.paddingRight=D.wrapperRight+"px")):(D.wrapperTop>0&&(m.style.paddingTop=D.wrapperTop+"px"),D.wrapperBottom>0&&(m.style.paddingBottom=D.wrapperBottom+"px")),G=N?i+D.wrapperRight+D.wrapperLeft:j+D.wrapperTop+D.wrapperBottom,parseFloat(i)>0&&(!b.cssWidthAndHeight||"height"===b.cssWidthAndHeight)&&(m.style.width=i+"px"),parseFloat(j)>0&&(!b.cssWidthAndHeight||"width"===b.cssWidthAndHeight)&&(m.style.height=j+"px"),k=0,D.snapGrid=[],D.slidesGrid=[],l=0;l0&&(!b.cssWidthAndHeight||"height"===b.cssWidthAndHeight)&&(D.slides[l].style.width=f+"px"),parseFloat(g)>0&&(!b.cssWidthAndHeight||"width"===b.cssWidthAndHeight)&&(D.slides[l].style.height=g+"px")}D.initialized?(D.callPlugins("onInit"),b.onInit&&D.fireCallback(b.onInit,D)):(D.callPlugins("onFirstInit"),b.onFirstInit&&D.fireCallback(b.onFirstInit,D)),D.initialized=!0}},D.reInit=function(a){D.init(!0,a)},D.resizeFix=function(a){D.callPlugins("beforeResizeFix"),D.init(b.resizeReInit||a),b.freeMode?D.getWrapperTranslate()<-e()&&(D.setWrapperTransition(0),D.setWrapperTranslate(-e())):(D.swipeTo(b.loop?D.activeLoopIndex:D.activeIndex,0,!1),b.autoplay&&(D.support.transitions&&"undefined"!=typeof ab?"undefined"!=typeof ab&&(clearTimeout(ab),ab=void 0,D.startAutoplay()):"undefined"!=typeof bb&&(clearInterval(bb),bb=void 0,D.startAutoplay()))),D.callPlugins("afterResizeFix")},D.destroy=function(a){var c=D.h.removeEventListener,d="wrapper"===b.eventTarget?D.wrapper:D.container;if(D.browser.ie10||D.browser.ie11?(c(d,D.touchEvents.touchStart,p),c(document,D.touchEvents.touchMove,q),c(document,D.touchEvents.touchEnd,r)):(D.support.touch&&(c(d,"touchstart",p),c(d,"touchmove",q),c(d,"touchend",r)),b.simulateTouch&&(c(d,"mousedown",p),c(document,"mousemove",q),c(document,"mouseup",r))),b.autoResize&&c(window,"resize",D.resizeFix),h(),b.paginationClickable&&x(),b.mousewheelControl&&D._wheelEvent&&c(D.container,D._wheelEvent,j),b.keyboardControl&&c(document,"keydown",i),b.autoplay&&D.stopAutoplay(),a){D.wrapper.removeAttribute("style");for(var e=0;e=D.snapGrid[g].toFixed(2)&&-dD.snapGrid[f]&&-e0&&(d=0),d===e?!1:(v(d,"prev",{runCallbacks:a}),!0)},D.swipeReset=function(a){"undefined"==typeof a&&(a=!0),D.callPlugins("onSwipeReset");{var c,d=D.getWrapperTranslate(),f=F*b.slidesPerGroup;-e()}if("auto"===b.slidesPerView){c=0;for(var g=0;g=D.snapGrid[g]&&-d0?-D.snapGrid[g+1]:-D.snapGrid[g];break}}-d>=D.snapGrid[D.snapGrid.length-1]&&(c=-D.snapGrid[D.snapGrid.length-1]),d<=-e()&&(c=-e())}else c=0>d?Math.round(d/f)*f:0,d<=-e()&&(c=-e());return b.scrollContainer&&(c=0>d?d:0),c<-e()&&(c=-e()),b.scrollContainer&&J>F&&(c=0),c===d?!1:(v(c,"reset",{runCallbacks:a}),!0)},D.swipeTo=function(a,c,d){a=parseInt(a,10),D.callPlugins("onSwipeTo",{index:a,speed:c}),b.loop&&(a+=D.loopedSlides);var f=D.getWrapperTranslate();if(!(!isFinite(a)||a>D.slides.length-1||0>a)){var g;return g="auto"===b.slidesPerView?-D.slidesGrid[a]:-a*F,g<-e()&&(g=-e()),g===f?!1:("undefined"==typeof d&&(d=!0),v(g,"to",{index:a,speed:c,runCallbacks:d}),!0)}},D._queueStartCallbacks=!1,D._queueEndCallbacks=!1,D.updateActiveSlide=function(a){if(D.initialized&&0!==D.slides.length){D.previousIndex=D.activeIndex,"undefined"==typeof a&&(a=D.getWrapperTranslate()),a>0&&(a=0);var c;if("auto"===b.slidesPerView){if(D.activeIndex=D.slidesGrid.indexOf(-a),D.activeIndex<0){for(c=0;cD.slidesGrid[c]&&-a=d?c:c+1}}else D.activeIndex=Math[b.visibilityFullFit?"ceil":"round"](-a/F);if(D.activeIndex===D.slides.length&&(D.activeIndex=D.slides.length-1),D.activeIndex<0&&(D.activeIndex=0),D.slides[D.activeIndex]){if(D.calcVisibleSlides(a),D.support.classList){var f;for(c=0;c=0?f.classList.add(b.slideVisibleClass):f.classList.remove(b.slideVisibleClass);D.slides[D.activeIndex].classList.add(b.slideActiveClass)}else{var g=new RegExp("\\s*"+b.slideActiveClass),h=new RegExp("\\s*"+b.slideVisibleClass);for(c=0;c=0&&(D.slides[c].className+=" "+b.slideVisibleClass);D.slides[D.activeIndex].className+=" "+b.slideActiveClass}if(b.loop){var i=D.loopedSlides;D.activeLoopIndex=D.activeIndex-i,D.activeLoopIndex>=D.slides.length-2*i&&(D.activeLoopIndex=D.slides.length-2*i-D.activeLoopIndex),D.activeLoopIndex<0&&(D.activeLoopIndex=D.slides.length-2*i+D.activeLoopIndex),D.activeLoopIndex<0&&(D.activeLoopIndex=0)}else D.activeLoopIndex=D.activeIndex;b.pagination&&D.updatePagination(a)}}},D.createPagination=function(a){if(b.paginationClickable&&D.paginationButtons&&x(),D.paginationContainer=b.pagination.nodeType?b.pagination:c(b.pagination)[0],b.createPagination){var d="",e=D.slides.length,f=e;b.loop&&(f-=2*D.loopedSlides);for(var g=0;f>g;g++)d+="<"+b.paginationElement+' class="'+b.paginationElementClass+'">'+b.paginationElement+">";D.paginationContainer.innerHTML=d}D.paginationButtons=c("."+b.paginationElementClass,D.paginationContainer),a||D.updatePagination(),D.callPlugins("onCreatePagination"),b.paginationClickable&&y()},D.updatePagination=function(a){if(b.pagination&&!(D.slides.length<1)){var d=c("."+b.paginationActiveClass,D.paginationContainer);if(d){var e=D.paginationButtons;if(0!==e.length){for(var f=0;fj&&(j=D.slides.length-2*D.loopedSlides+j),b.loop&&j>=D.slides.length-2*D.loopedSlides&&(j=D.slides.length-2*D.loopedSlides-j,j=Math.abs(j)),i.push(j)}for(h=0;h0&&(a+=D.wrapperLeft),!N&&D.wrapperTop>0&&(a+=D.wrapperTop);for(var g=0;g=-a&&-a+J>=f&&(h=!0),-a>=d&&f>=-a+J&&(h=!0)):(f>-a&&-a+J>=f&&(h=!0),d>=-a&&-a+J>d&&(h=!0),-a>d&&f>-a+J&&(h=!0)),h&&c.push(D.slides[g])}0===c.length&&(c=[D.slides[D.activeIndex]]),D.visibleSlides=c};var ab,bb;D.startAutoplay=function(){if(D.support.transitions){if("undefined"!=typeof ab)return!1;if(!b.autoplay)return;D.callPlugins("onAutoplayStart"),b.onAutoplayStart&&D.fireCallback(b.onAutoplayStart,D),A()}else{if("undefined"!=typeof bb)return!1;if(!b.autoplay)return;D.callPlugins("onAutoplayStart"),b.onAutoplayStart&&D.fireCallback(b.onAutoplayStart,D),bb=setInterval(function(){b.loop?(D.fixLoop(),D.swipeNext(!0,!0)):D.swipeNext(!0,!0)||(b.autoplayStopOnLast?(clearInterval(bb),bb=void 0):D.swipeTo(0))},b.autoplay)}},D.stopAutoplay=function(a){if(D.support.transitions){if(!ab)return;ab&&clearTimeout(ab),ab=void 0,a&&!b.autoplayDisableOnInteraction&&D.wrapperTransitionEnd(function(){A()}),D.callPlugins("onAutoplayStop"),b.onAutoplayStop&&D.fireCallback(b.onAutoplayStop,D)}else bb&&clearInterval(bb),bb=void 0,D.callPlugins("onAutoplayStop"),b.onAutoplayStop&&D.fireCallback(b.onAutoplayStop,D)},D.loopCreated=!1,D.removeLoopedSlides=function(){if(D.loopCreated)for(var a=0;aD.slides.length&&(D.loopedSlides=D.slides.length);var a,c="",d="",e="",f=D.slides.length,g=Math.floor(D.loopedSlides/f),h=D.loopedSlides%f;for(a=0;g*f>a;a++){var i=a;if(a>=f){var j=Math.floor(a/f);i=a-f*j}e+=D.slides[i].outerHTML}for(a=0;h>a;a++)d+=u(b.slideDuplicateClass,D.slides[a].outerHTML);for(a=f-h;f>a;a++)c+=u(b.slideDuplicateClass,D.slides[a].outerHTML);var k=c+e+E.innerHTML+e+d;for(E.innerHTML=k,D.loopCreated=!0,D.calcSlides(),a=0;a=D.slides.length-D.loopedSlides)&&D.slides[a].setData("looped",!0);D.callPlugins("onCreateLoop")}},D.fixLoop=function(){var a;D.activeIndex=2*D.loopedSlides||D.activeIndex>D.slides.length-2*b.slidesPerView)&&(a=-D.slides.length+D.activeIndex+D.loopedSlides,D.swipeTo(a,0,!1))},D.loadSlides=function(){var a="";D.activeLoaderIndex=0;for(var c=b.loader.slides,d=b.loader.loadAllSlides?c.length:b.slidesPerView*(1+b.loader.surroundGroups),e=0;d>e;e++)a+="outer"===b.loader.slidesHTMLType?c[e]:"<"+b.slideElement+' class="'+b.slideClass+'" data-swiperindex="'+e+'">'+c[e]+""+b.slideElement+">";D.wrapper.innerHTML=a,D.calcSlides(!0),b.loader.loadAllSlides||D.wrapperTransitionEnd(D.reloadSlides,!0)},D.reloadSlides=function(){var a=b.loader.slides,c=parseInt(D.activeSlide().data("swiperindex"),10);if(!(0>c||c>a.length-1)){D.activeLoaderIndex=c;var d=Math.max(0,c-b.slidesPerView*b.loader.surroundGroups),e=Math.min(c+b.slidesPerView*(1+b.loader.surroundGroups)-1,a.length-1);if(c>0){var f=-F*(c-d);D.setWrapperTranslate(f),D.setWrapperTransition(0)}var g;if("reload"===b.loader.logic){D.wrapper.innerHTML="";var h="";for(g=d;e>=g;g++)h+="outer"===b.loader.slidesHTMLType?a[g]:"<"+b.slideElement+' class="'+b.slideClass+'" data-swiperindex="'+g+'">'+a[g]+""+b.slideElement+">";D.wrapper.innerHTML=h}else{var i=1e3,j=0;for(g=0;gk||k>e?D.wrapper.removeChild(D.slides[g]):(i=Math.min(k,i),j=Math.max(k,j))}for(g=d;e>=g;g++){var l;i>g&&(l=document.createElement(b.slideElement),l.className=b.slideClass,l.setAttribute("data-swiperindex",g),l.innerHTML=a[g],D.wrapper.insertBefore(l,D.wrapper.firstChild)),g>j&&(l=document.createElement(b.slideElement),l.className=b.slideClass,l.setAttribute("data-swiperindex",g),l.innerHTML=a[g],D.wrapper.appendChild(l))}}D.reInit(!0)}},B()}};Swiper.prototype={plugins:{},wrapperTransitionEnd:function(a,b){"use strict";function c(h){if(h.target===f&&(a(e),e.params.queueEndCallbacks&&(e._queueEndCallbacks=!1),!b))for(d=0;d0||0>e)&&(e=a.offsetWidth-parseFloat(window.getComputedStyle(a,null).getPropertyValue("padding-left"))-parseFloat(window.getComputedStyle(a,null).getPropertyValue("padding-right"))),b&&(e+=parseFloat(window.getComputedStyle(a,null).getPropertyValue("padding-left"))+parseFloat(window.getComputedStyle(a,null).getPropertyValue("padding-right"))),c?Math.ceil(e):e},getHeight:function(a,b,c){"use strict";if(b)return a.offsetHeight;var d=window.getComputedStyle(a,null).getPropertyValue("height"),e=parseFloat(d);return(isNaN(e)||d.indexOf("%")>0||0>e)&&(e=a.offsetHeight-parseFloat(window.getComputedStyle(a,null).getPropertyValue("padding-top"))-parseFloat(window.getComputedStyle(a,null).getPropertyValue("padding-bottom"))),b&&(e+=parseFloat(window.getComputedStyle(a,null).getPropertyValue("padding-top"))+parseFloat(window.getComputedStyle(a,null).getPropertyValue("padding-bottom"))),c?Math.ceil(e):e},getOffset:function(a){"use strict";var b=a.getBoundingClientRect(),c=document.body,d=a.clientTop||c.clientTop||0,e=a.clientLeft||c.clientLeft||0,f=window.pageYOffset||a.scrollTop,g=window.pageXOffset||a.scrollLeft;return document.documentElement&&!window.pageYOffset&&(f=document.documentElement.scrollTop,g=document.documentElement.scrollLeft),{top:b.top+f-d,left:b.left+g-e}},windowWidth:function(){"use strict";return window.innerWidth?window.innerWidth:document.documentElement&&document.documentElement.clientWidth?document.documentElement.clientWidth:void 0},windowHeight:function(){"use strict";return window.innerHeight?window.innerHeight:document.documentElement&&document.documentElement.clientHeight?document.documentElement.clientHeight:void 0},windowScroll:function(){"use strict";return"undefined"!=typeof pageYOffset?{left:window.pageXOffset,top:window.pageYOffset}:document.documentElement?{left:document.documentElement.scrollLeft,top:document.documentElement.scrollTop}:void 0},addEventListener:function(a,b,c,d){"use strict";"undefined"==typeof d&&(d=!1),a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)},removeEventListener:function(a,b,c,d){"use strict";"undefined"==typeof d&&(d=!1),a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent("on"+b,c)}},setTransform:function(a,b){"use strict";var c=a.style;c.webkitTransform=c.MsTransform=c.msTransform=c.MozTransform=c.OTransform=c.transform=b},setTranslate:function(a,b){"use strict";var c=a.style,d={x:b.x||0,y:b.y||0,z:b.z||0},e=this.support.transforms3d?"translate3d("+d.x+"px,"+d.y+"px,"+d.z+"px)":"translate("+d.x+"px,"+d.y+"px)";c.webkitTransform=c.MsTransform=c.msTransform=c.MozTransform=c.OTransform=c.transform=e,this.support.transforms||(c.left=d.x+"px",c.top=d.y+"px")},setTransition:function(a,b){"use strict";var c=a.style;c.webkitTransitionDuration=c.MsTransitionDuration=c.msTransitionDuration=c.MozTransitionDuration=c.OTransitionDuration=c.transitionDuration=b+"ms"},support:{touch:window.Modernizr&&Modernizr.touch===!0||function(){"use strict";return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)}(),transforms3d:window.Modernizr&&Modernizr.csstransforms3d===!0||function(){"use strict";var a=document.createElement("div").style;return"webkitPerspective"in a||"MozPerspective"in a||"OPerspective"in a||"MsPerspective"in a||"perspective"in a}(),transforms:window.Modernizr&&Modernizr.csstransforms===!0||function(){"use strict";var a=document.createElement("div").style;return"transform"in a||"WebkitTransform"in a||"MozTransform"in a||"msTransform"in a||"MsTransform"in a||"OTransform"in a}(),transitions:window.Modernizr&&Modernizr.csstransitions===!0||function(){"use strict";var a=document.createElement("div").style;return"transition"in a||"WebkitTransition"in a||"MozTransition"in a||"msTransition"in a||"MsTransition"in a||"OTransition"in a}(),classList:function(){"use strict";var a=document.createElement("div");return"classList"in a}()},browser:{ie8:function(){"use strict";var a=-1;if("Microsoft Internet Explorer"===navigator.appName){var b=navigator.userAgent,c=new RegExp(/MSIE ([0-9]{1,}[\.0-9]{0,})/);null!==c.exec(b)&&(a=parseFloat(RegExp.$1))}return-1!==a&&9>a}(),ie10:window.navigator.msPointerEnabled,ie11:window.navigator.pointerEnabled}},(window.jQuery||window.Zepto)&&!function(a){"use strict";a.fn.swiper=function(b){var c;return this.each(function(d){var e=a(this),f=new Swiper(e[0],b);d||(c=f),e.data("swiper",f)}),c}}(window.jQuery||window.Zepto),"undefined"!=typeof module?module.exports=Swiper:"function"==typeof define&&define.amd&&define([],function(){"use strict";return Swiper});
\ No newline at end of file
diff --git a/template/index3/assets/js/jquery.lazyload_1107.js b/template/index3/assets/js/jquery.lazyload_1107.js
new file mode 100644
index 0000000..356b7d3
--- /dev/null
+++ b/template/index3/assets/js/jquery.lazyload_1107.js
@@ -0,0 +1 @@
+!function(e,t,n,i){var o=e(t);e.fn.lazyload=function(r){function f(){var t=0;l.each(function(){var n=e(this);if(!h.skip_invisible||n.is(":visible"))if(e.abovethetop(this,h));else if(e.belowthefold(this,h)){if(++t>h.failure_limit)return!1}else n.trigger("appear"),t=0})}var a,l=this,h={threshold:0,failure_limit:0,event:"scroll",effect:"show",container:t,data_attribute:"original",skip_invisible:!0,appear:null,load:null,placeholder:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC"};return r&&(i!==r.failurelimit&&(r.failure_limit=r.failurelimit,delete r.failurelimit),i!==r.effectspeed&&(r.effect_speed=r.effectspeed,delete r.effectspeed),e.extend(h,r)),a=h.container===i||h.container===t?o:e(h.container),0===h.event.indexOf("scroll")&&a.bind(h.event,function(){return f()}),this.each(function(){var t=this,n=e(t);t.loaded=!1,(n.attr("src")===i||n.attr("src")===!1)&&n.is("img")&&n.attr("src",h.placeholder),n.one("appear",function(){if(!this.loaded){if(h.appear){var i=l.length;h.appear.call(t,i,h)}e(" ").bind("load",function(){var i=n.attr("data-"+h.data_attribute);n.hide(),n.is("img")?n.attr("src",i):n.css("background-image","url('"+i+"')"),n[h.effect](h.effect_speed),t.loaded=!0;var o=e.grep(l,function(e){return!e.loaded});if(l=e(o),h.load){var r=l.length;h.load.call(t,r,h)}}).attr("src",n.attr("data-"+h.data_attribute))}}),0!==h.event.indexOf("scroll")&&n.bind(h.event,function(){t.loaded||n.trigger("appear")})}),o.bind("resize",function(){f()}),/(?:iphone|ipod|ipad).*os 5/gi.test(navigator.appVersion)&&o.bind("pageshow",function(t){t.originalEvent&&t.originalEvent.persisted&&l.each(function(){e(this).trigger("appear")})}),e(n).ready(function(){f()}),this},e.belowthefold=function(n,r){var f;return f=r.container===i||r.container===t?(t.innerHeight?t.innerHeight:o.height())+o.scrollTop():e(r.container).offset().top+e(r.container).height(),f<=e(n).offset().top-r.threshold},e.rightoffold=function(n,r){var f;return f=r.container===i||r.container===t?o.width()+o.scrollLeft():e(r.container).offset().left+e(r.container).width(),f<=e(n).offset().left-r.threshold},e.abovethetop=function(n,r){var f;return f=r.container===i||r.container===t?o.scrollTop():e(r.container).offset().top,f>=e(n).offset().top+r.threshold+e(n).height()},e.leftofbegin=function(n,r){var f;return f=r.container===i||r.container===t?o.scrollLeft():e(r.container).offset().left,f>=e(n).offset().left+r.threshold+e(n).width()},e.inviewport=function(t,n){return!(e.rightoffold(t,n)||e.leftofbegin(t,n)||e.belowthefold(t,n)||e.abovethetop(t,n))},e.extend(e.expr[":"],{"below-the-fold":function(t){return e.belowthefold(t,{threshold:0})},"above-the-top":function(t){return!e.belowthefold(t,{threshold:0})},"right-of-screen":function(t){return e.rightoffold(t,{threshold:0})},"left-of-screen":function(t){return!e.rightoffold(t,{threshold:0})},"in-viewport":function(t){return e.inviewport(t,{threshold:0})},"above-the-fold":function(t){return!e.belowthefold(t,{threshold:0})},"right-of-fold":function(t){return e.rightoffold(t,{threshold:0})},"left-of-fold":function(t){return!e.rightoffold(t,{threshold:0})}})}(jQuery,window,document);
\ No newline at end of file
diff --git a/template/index3/assets/js/jquery_1107.js b/template/index3/assets/js/jquery_1107.js
new file mode 100644
index 0000000..9154efe
--- /dev/null
+++ b/template/index3/assets/js/jquery_1107.js
@@ -0,0 +1,4 @@
+!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=!!e&&"length"in e&&e.length,n=pt.type(e);return"function"===n||pt.isWindow(e)?!1:"array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e}function r(e,t,n){if(pt.isFunction(t))return pt.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return pt.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(Ct.test(t))return pt.filter(t,e,n);t=pt.filter(t,e)}return pt.grep(e,function(e){return pt.inArray(e,t)>-1!==n})}function i(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t={};return pt.each(e.match(Dt)||[],function(e,n){t[n]=!0}),t}function a(){rt.addEventListener?(rt.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s)):(rt.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(rt.addEventListener||"load"===e.event.type||"complete"===rt.readyState)&&(a(),pt.ready())}function u(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(Mt,"-$1").toLowerCase();if(n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:qt.test(n)?pt.parseJSON(n):n}catch(i){}pt.data(e,t,n)}else n=void 0}return n}function l(e){var t;for(t in e)if(("data"!==t||!pt.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function c(e,t,n,r){if(Ht(e)){var i,o,a=pt.expando,s=e.nodeType,u=s?pt.cache:e,l=s?e[a]:e[a]&&a;if(l&&u[l]&&(r||u[l].data)||void 0!==n||"string"!=typeof t)return l||(l=s?e[a]=nt.pop()||pt.guid++:a),u[l]||(u[l]=s?{}:{toJSON:pt.noop}),("object"==typeof t||"function"==typeof t)&&(r?u[l]=pt.extend(u[l],t):u[l].data=pt.extend(u[l].data,t)),o=u[l],r||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[pt.camelCase(t)]=n),"string"==typeof t?(i=o[t],null==i&&(i=o[pt.camelCase(t)])):i=o,i}}function d(e,t,n){if(Ht(e)){var r,i,o=e.nodeType,a=o?pt.cache:e,s=o?e[pt.expando]:pt.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){pt.isArray(t)?t=t.concat(pt.map(t,pt.camelCase)):t in r?t=[t]:(t=pt.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;for(;i--;)delete r[t[i]];if(n?!l(r):!pt.isEmptyObject(r))return}(n||(delete a[s].data,l(a[s])))&&(o?pt.cleanData([e],!0):dt.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}function f(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return pt.css(e,t,"")},u=s(),l=n&&n[3]||(pt.cssNumber[t]?"":"px"),c=(pt.cssNumber[t]||"px"!==l&&+u)&&Ft.exec(pt.css(e,t));if(c&&c[3]!==l){l=l||c[3],n=n||[],c=+u||1;do o=o||".5",c/=o,pt.style(e,t,c+l);while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}function p(e){var t=zt.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||pt.nodeName(r,t)?o.push(r):pt.merge(o,h(r,t));return void 0===t||t&&pt.nodeName(e,t)?pt.merge([e],o):o}function m(e,t){for(var n,r=0;null!=(n=e[r]);r++)pt._data(n,"globalEval",!t||pt._data(t[r],"globalEval"))}function g(e){Bt.test(e.type)&&(e.defaultChecked=e.checked)}function v(e,t,n,r,i){for(var o,a,s,u,l,c,d,f=e.length,v=p(t),y=[],x=0;f>x;x++)if(a=e[x],a||0===a)if("object"===pt.type(a))pt.merge(y,a.nodeType?[a]:a);else if(Ut.test(a)){for(u=u||v.appendChild(t.createElement("div")),l=(Wt.exec(a)||["",""])[1].toLowerCase(),d=Xt[l]||Xt._default,u.innerHTML=d[1]+pt.htmlPrefilter(a)+d[2],o=d[0];o--;)u=u.lastChild;if(!dt.leadingWhitespace&&$t.test(a)&&y.push(t.createTextNode($t.exec(a)[0])),!dt.tbody)for(a="table"!==l||Vt.test(a)?""!==d[1]||Vt.test(a)?0:u:u.firstChild,o=a&&a.childNodes.length;o--;)pt.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(pt.merge(y,u.childNodes),u.textContent="";u.firstChild;)u.removeChild(u.firstChild);u=v.lastChild}else y.push(t.createTextNode(a));for(u&&v.removeChild(u),dt.appendChecked||pt.grep(h(y,"input"),g),x=0;a=y[x++];)if(r&&pt.inArray(a,r)>-1)i&&i.push(a);else if(s=pt.contains(a.ownerDocument,a),u=h(v.appendChild(a),"script"),s&&m(u),n)for(o=0;a=u[o++];)It.test(a.type||"")&&n.push(a);return u=null,v}function y(){return!0}function x(){return!1}function b(){try{return rt.activeElement}catch(e){}}function w(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)w(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),i===!1)i=x;else if(!i)return e;return 1===o&&(a=i,i=function(e){return pt().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=pt.guid++)),e.each(function(){pt.event.add(this,t,i,r,n)})}function T(e,t){return pt.nodeName(e,"table")&&pt.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function C(e){return e.type=(null!==pt.find.attr(e,"type"))+"/"+e.type,e}function E(e){var t=on.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function N(e,t){if(1===t.nodeType&&pt.hasData(e)){var n,r,i,o=pt._data(e),a=pt._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)pt.event.add(t,n,s[n][r])}a.data&&(a.data=pt.extend({},a.data))}}function k(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!dt.noCloneEvent&&t[pt.expando]){i=pt._data(t);for(r in i.events)pt.removeEvent(t,r,i.handle);t.removeAttribute(pt.expando)}"script"===n&&t.text!==e.text?(C(t).text=e.text,E(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),dt.html5Clone&&e.innerHTML&&!pt.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Bt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function S(e,t,n,r){t=ot.apply([],t);var i,o,a,s,u,l,c=0,d=e.length,f=d-1,p=t[0],m=pt.isFunction(p);if(m||d>1&&"string"==typeof p&&!dt.checkClone&&rn.test(p))return e.each(function(i){var o=e.eq(i);m&&(t[0]=p.call(this,i,o.html())),S(o,t,n,r)});if(d&&(l=v(t,e[0].ownerDocument,!1,e,r),i=l.firstChild,1===l.childNodes.length&&(l=i),i||r)){for(s=pt.map(h(l,"script"),C),a=s.length;d>c;c++)o=l,c!==f&&(o=pt.clone(o,!0,!0),a&&pt.merge(s,h(o,"script"))),n.call(e[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,pt.map(s,E),c=0;a>c;c++)o=s[c],It.test(o.type||"")&&!pt._data(o,"globalEval")&&pt.contains(u,o)&&(o.src?pt._evalUrl&&pt._evalUrl(o.src):pt.globalEval((o.text||o.textContent||o.innerHTML||"").replace(an,"")));l=i=null}return e}function A(e,t,n){for(var r,i=t?pt.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||pt.cleanData(h(r)),r.parentNode&&(n&&pt.contains(r.ownerDocument,r)&&m(h(r,"script")),r.parentNode.removeChild(r));return e}function D(e,t){var n=pt(t.createElement(e)).appendTo(t.body),r=pt.css(n[0],"display");return n.detach(),r}function L(e){var t=rt,n=cn[e];return n||(n=D(e,t),"none"!==n&&n||(ln=(ln||pt("")).appendTo(t.documentElement),t=(ln[0].contentWindow||ln[0].contentDocument).document,t.write(),t.close(),n=D(e,t),ln.detach()),cn[e]=n),n}function j(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function H(e){if(e in Nn)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=En.length;n--;)if(e=En[n]+t,e in Nn)return e}function q(e,t){for(var n,r,i,o=[],a=0,s=e.length;s>a;a++)r=e[a],r.style&&(o[a]=pt._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&Rt(r)&&(o[a]=pt._data(r,"olddisplay",L(r.nodeName)))):(i=Rt(r),(n&&"none"!==n||!i)&&pt._data(r,"olddisplay",i?n:pt.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}function M(e,t,n){var r=wn.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function _(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=pt.css(e,n+Ot[o],!0,i)),r?("content"===n&&(a-=pt.css(e,"padding"+Ot[o],!0,i)),"margin"!==n&&(a-=pt.css(e,"border"+Ot[o]+"Width",!0,i))):(a+=pt.css(e,"padding"+Ot[o],!0,i),"padding"!==n&&(a+=pt.css(e,"border"+Ot[o]+"Width",!0,i)));return a}function F(t,n,r){var i=!0,o="width"===n?t.offsetWidth:t.offsetHeight,a=mn(t),s=dt.boxSizing&&"border-box"===pt.css(t,"boxSizing",!1,a);if(rt.msFullscreenElement&&e.top!==e&&t.getClientRects().length&&(o=Math.round(100*t.getBoundingClientRect()[n])),0>=o||null==o){if(o=gn(t,n,a),(0>o||null==o)&&(o=t.style[n]),fn.test(o))return o;i=s&&(dt.boxSizingReliable()||o===t.style[n]),o=parseFloat(o)||0}return o+_(t,n,r||(s?"border":"content"),i,a)+"px"}function O(e,t,n,r,i){return new O.prototype.init(e,t,n,r,i)}function R(){return e.setTimeout(function(){kn=void 0}),kn=pt.now()}function P(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Ot[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function B(e,t,n){for(var r,i=($.tweeners[t]||[]).concat($.tweeners["*"]),o=0,a=i.length;a>o;o++)if(r=i[o].call(n,t,e))return r}function W(e,t,n){var r,i,o,a,s,u,l,c,d=this,f={},p=e.style,h=e.nodeType&&Rt(e),m=pt._data(e,"fxshow");n.queue||(s=pt._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,u=s.empty.fire,s.empty.fire=function(){s.unqueued||u()}),s.unqueued++,d.always(function(){d.always(function(){s.unqueued--,pt.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],l=pt.css(e,"display"),c="none"===l?pt._data(e,"olddisplay")||L(e.nodeName):l,"inline"===c&&"none"===pt.css(e,"float")&&(dt.inlineBlockNeedsLayout&&"inline"!==L(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",dt.shrinkWrapBlocks()||d.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],An.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(h?"hide":"show")){if("show"!==i||!m||void 0===m[r])continue;h=!0}f[r]=m&&m[r]||pt.style(e,r)}else l=void 0;if(pt.isEmptyObject(f))"inline"===("none"===l?L(e.nodeName):l)&&(p.display=l);else{m?"hidden"in m&&(h=m.hidden):m=pt._data(e,"fxshow",{}),o&&(m.hidden=!h),h?pt(e).show():d.done(function(){pt(e).hide()}),d.done(function(){var t;pt._removeData(e,"fxshow");for(t in f)pt.style(e,t,f[t])});for(r in f)a=B(h?m[r]:0,r,d),r in m||(m[r]=a.start,h&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function I(e,t){var n,r,i,o,a;for(n in e)if(r=pt.camelCase(n),i=t[r],o=e[n],pt.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=pt.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function $(e,t,n){var r,i,o=0,a=$.prefilters.length,s=pt.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=kn||R(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:pt.extend({},t),opts:pt.extend(!0,{specialEasing:{},easing:pt.easing._default},n),originalProperties:t,originalOptions:n,startTime:kn||R(),duration:n.duration,tweens:[],createTween:function(t,n){var r=pt.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(I(c,l.opts.specialEasing);a>o;o++)if(r=$.prefilters[o].call(l,e,c,l.opts))return pt.isFunction(r.stop)&&(pt._queueHooks(l.elem,l.opts.queue).stop=pt.proxy(r.stop,r)),r;return pt.map(c,B,l),pt.isFunction(l.opts.start)&&l.opts.start.call(e,l),pt.fx.timer(pt.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function z(e){return pt.attr(e,"class")||""}function X(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(Dt)||[];if(pt.isFunction(n))for(;r=o[i++];)"+"===r.charAt(0)?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function U(e,t,n,r){function i(s){var u;return o[s]=!0,pt.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||a||o[l]?a?!(u=l):void 0:(t.dataTypes.unshift(l),i(l),!1)}),u}var o={},a=e===Kn;return i(t.dataTypes[0])||!o["*"]&&i("*")}function V(e,t){var n,r,i=pt.ajaxSettings.flatOptions||{};for(r in t)void 0!==t[r]&&((i[r]?e:n||(n={}))[r]=t[r]);return n&&pt.extend(!0,e,n),e}function Y(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===i&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(a in s)if(s[a]&&s[a].test(i)){u.unshift(a);break}if(u[0]in n)o=u[0];else{for(a in n){if(!u[0]||e.converters[a+" "+u[0]]){o=a;break}r||(r=a)}o=o||r}return o?(o!==u[0]&&u.unshift(o),n[o]):void 0}function J(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(a=l[u+" "+o]||l["* "+o],!a)for(i in l)if(s=i.split(" "),s[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){a===!0?a=l[i]:l[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(d){return{state:"parsererror",error:a?d:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}function G(e){return e.style&&e.style.display||pt.css(e,"display")}function Q(e){for(;e&&1===e.nodeType;){if("none"===G(e)||"hidden"===e.type)return!0;e=e.parentNode}return!1}function K(e,t,n,r){var i;if(pt.isArray(t))pt.each(t,function(t,i){n||rr.test(e)?r(e,i):K(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==pt.type(t))r(e,t);else for(i in t)K(e+"["+i+"]",t[i],n,r)}function Z(){try{return new e.XMLHttpRequest}catch(t){}}function et(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function tt(e){return pt.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}var nt=[],rt=e.document,it=nt.slice,ot=nt.concat,at=nt.push,st=nt.indexOf,ut={},lt=ut.toString,ct=ut.hasOwnProperty,dt={},ft="1.12.1",pt=function(e,t){return new pt.fn.init(e,t)},ht=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,mt=/^-ms-/,gt=/-([\da-z])/gi,vt=function(e,t){return t.toUpperCase()};pt.fn=pt.prototype={jquery:ft,constructor:pt,selector:"",length:0,toArray:function(){return it.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:it.call(this)},pushStack:function(e){var t=pt.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e){return pt.each(this,e)},map:function(e){return this.pushStack(pt.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(it.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:at,sort:nt.sort,splice:nt.splice},pt.extend=pt.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||pt.isFunction(a)||(a={}),s===u&&(a=this,s--);u>s;s++)if(null!=(i=arguments[s]))for(r in i)e=a[r],n=i[r],a!==n&&(l&&n&&(pt.isPlainObject(n)||(t=pt.isArray(n)))?(t?(t=!1,o=e&&pt.isArray(e)?e:[]):o=e&&pt.isPlainObject(e)?e:{},a[r]=pt.extend(l,o,n)):void 0!==n&&(a[r]=n));return a},pt.extend({expando:"jQuery"+(ft+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===pt.type(e)},isArray:Array.isArray||function(e){return"array"===pt.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){var t=e&&e.toString();return!pt.isArray(e)&&t-parseFloat(t)+1>=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==pt.type(e)||e.nodeType||pt.isWindow(e))return!1;try{if(e.constructor&&!ct.call(e,"constructor")&&!ct.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(!dt.ownFirst)for(t in e)return ct.call(e,t);for(t in e);return void 0===t||ct.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?ut[lt.call(e)]||"object":typeof e},globalEval:function(t){t&&pt.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(mt,"ms-").replace(gt,vt)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var r,i=0;if(n(e))for(r=e.length;r>i&&t.call(e[i],i,e[i])!==!1;i++);else for(i in e)if(t.call(e[i],i,e[i])===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(ht,"")},makeArray:function(e,t){var r=t||[];return null!=e&&(n(Object(e))?pt.merge(r,"string"==typeof e?[e]:e):at.call(r,e)),r},inArray:function(e,t,n){var r;if(t){if(st)return st.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;n>r;)e[i++]=t[r++];if(n!==n)for(;void 0!==t[r];)e[i++]=t[r++];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;a>o;o++)r=!t(e[o],o),r!==s&&i.push(e[o]);return i},map:function(e,t,r){var i,o,a=0,s=[];if(n(e))for(i=e.length;i>a;a++)o=t(e[a],a,r),null!=o&&s.push(o);else for(a in e)o=t(e[a],a,r),null!=o&&s.push(o);return ot.apply([],s)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(i=e[t],t=e,e=i),pt.isFunction(e)?(n=it.call(arguments,2),r=function(){return e.apply(t||this,n.concat(it.call(arguments)))},r.guid=e.guid=e.guid||pt.guid++,r):void 0},now:function(){return+new Date},support:dt}),"function"==typeof Symbol&&(pt.fn[Symbol.iterator]=nt[Symbol.iterator]),pt.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){ut["[object "+t+"]"]=t.toLowerCase()});var yt=function(e){function t(e,t,n,r){var i,o,a,s,u,l,d,p,h=t&&t.ownerDocument,m=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==m&&9!==m&&11!==m)return n;if(!r&&((t?t.ownerDocument||t:B)!==H&&j(t),t=t||H,M)){if(11!==m&&(l=vt.exec(e)))if(i=l[1]){if(9===m){if(!(a=t.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(h&&(a=h.getElementById(i))&&R(t,a)&&a.id===i)return n.push(a),n}else{if(l[2])return K.apply(n,t.getElementsByTagName(e)),n;if((i=l[3])&&w.getElementsByClassName&&t.getElementsByClassName)return K.apply(n,t.getElementsByClassName(i)),n}if(!(!w.qsa||X[e+" "]||_&&_.test(e))){if(1!==m)h=t,p=e;else if("object"!==t.nodeName.toLowerCase()){for((s=t.getAttribute("id"))?s=s.replace(xt,"\\$&"):t.setAttribute("id",s=P),d=N(e),o=d.length,u=ft.test(s)?"#"+s:"[id='"+s+"']";o--;)d[o]=u+" "+f(d[o]);p=d.join(","),h=yt.test(e)&&c(t.parentNode)||t}if(p)try{return K.apply(n,h.querySelectorAll(p)),n}catch(g){}finally{s===P&&t.removeAttribute("id")}}}return S(e.replace(st,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>T.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[P]=!0,e}function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)T.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||V)-(~e.sourceIndex||V);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function d(){}function f(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function p(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=I++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,u,l,c=[W,o];if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i){if(l=t[P]||(t[P]={}),u=l[t.uniqueID]||(l[t.uniqueID]={}),(s=u[r])&&s[0]===W&&s[1]===o)return c[2]=s[2];if(u[r]=c,c[2]=e(t,n,a))return!0}}}function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(e,n,r){for(var i=0,o=n.length;o>i;i++)t(e,n[i],r);return r}function g(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function v(e,t,n,i,o,a){return i&&!i[P]&&(i=v(i)),o&&!o[P]&&(o=v(o,a)),r(function(r,a,s,u){var l,c,d,f=[],p=[],h=a.length,v=r||m(t||"*",s.nodeType?[s]:s,[]),y=!e||!r&&t?v:g(v,f,e,s,u),x=n?o||(r?e:h||i)?[]:a:y;if(n&&n(y,x,s,u),i)for(l=g(x,p),i(l,[],s,u),c=l.length;c--;)(d=l[c])&&(x[p[c]]=!(y[p[c]]=d));if(r){if(o||e){if(o){for(l=[],c=x.length;c--;)(d=x[c])&&l.push(y[c]=d);o(null,x=[],l,u)}for(c=x.length;c--;)(d=x[c])&&(l=o?et(r,d):f[c])>-1&&(r[l]=!(a[l]=d))}}else x=g(x===a?x.splice(h,x.length):x),o?o(null,a,x,u):K.apply(a,x)})}function y(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],a=o||T.relative[" "],s=o?1:0,u=p(function(e){return e===t},a,!0),l=p(function(e){return et(t,e)>-1},a,!0),c=[function(e,n,r){var i=!o&&(r||n!==A)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,i}];i>s;s++)if(n=T.relative[e[s].type])c=[p(h(c),n)];else{if(n=T.filter[e[s].type].apply(null,e[s].matches),n[P]){for(r=++s;i>r&&!T.relative[e[r].type];r++);return v(s>1&&h(c),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(st,"$1"),n,r>s&&y(e.slice(s,r)),i>r&&y(e=e.slice(r)),i>r&&f(e))}c.push(n)}return h(c)}function x(e,n){var i=n.length>0,o=e.length>0,a=function(r,a,s,u,l){var c,d,f,p=0,h="0",m=r&&[],v=[],y=A,x=r||o&&T.find.TAG("*",l),b=W+=null==y?1:Math.random()||.1,w=x.length;for(l&&(A=a===H||a||l);h!==w&&null!=(c=x[h]);h++){if(o&&c){for(d=0,a||c.ownerDocument===H||(j(c),s=!M);f=e[d++];)if(f(c,a||H,s)){u.push(c);break}l&&(W=b)}i&&((c=!f&&c)&&p--,r&&m.push(c))}if(p+=h,i&&h!==p){for(d=0;f=n[d++];)f(m,v,a,s);if(r){if(p>0)for(;h--;)m[h]||v[h]||(v[h]=G.call(u));v=g(v)}K.apply(u,v),l&&!r&&v.length>0&&p+n.length>1&&t.uniqueSort(u)}return l&&(W=b,A=y),m};return i?r(a):a}var b,w,T,C,E,N,k,S,A,D,L,j,H,q,M,_,F,O,R,P="sizzle"+1*new Date,B=e.document,W=0,I=0,$=n(),z=n(),X=n(),U=function(e,t){return e===t&&(L=!0),0},V=1<<31,Y={}.hasOwnProperty,J=[],G=J.pop,Q=J.push,K=J.push,Z=J.slice,et=function(e,t){for(var n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1},tt="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",nt="[\\x20\\t\\r\\n\\f]",rt="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",it="\\["+nt+"*("+rt+")(?:"+nt+"*([*^$|!~]?=)"+nt+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+rt+"))|)"+nt+"*\\]",ot=":("+rt+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+it+")*)|.*)\\)|)",at=new RegExp(nt+"+","g"),st=new RegExp("^"+nt+"+|((?:^|[^\\\\])(?:\\\\.)*)"+nt+"+$","g"),ut=new RegExp("^"+nt+"*,"+nt+"*"),lt=new RegExp("^"+nt+"*([>+~]|"+nt+")"+nt+"*"),ct=new RegExp("="+nt+"*([^\\]'\"]*?)"+nt+"*\\]","g"),dt=new RegExp(ot),ft=new RegExp("^"+rt+"$"),pt={ID:new RegExp("^#("+rt+")"),CLASS:new RegExp("^\\.("+rt+")"),TAG:new RegExp("^("+rt+"|[*])"),ATTR:new RegExp("^"+it),PSEUDO:new RegExp("^"+ot),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+nt+"*(even|odd|(([+-]|)(\\d*)n|)"+nt+"*(?:([+-]|)"+nt+"*(\\d+)|))"+nt+"*\\)|)","i"),bool:new RegExp("^(?:"+tt+")$","i"),needsContext:new RegExp("^"+nt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+nt+"*((?:-\\d)?\\d*)"+nt+"*\\)|)(?=[^-]|$)","i")},ht=/^(?:input|select|textarea|button)$/i,mt=/^h\d$/i,gt=/^[^{]+\{\s*\[native \w/,vt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,yt=/[+~]/,xt=/'|\\/g,bt=new RegExp("\\\\([\\da-f]{1,6}"+nt+"?|("+nt+")|.)","ig"),wt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},Tt=function(){j()};try{K.apply(J=Z.call(B.childNodes),B.childNodes),J[B.childNodes.length].nodeType}catch(Ct){K={apply:J.length?function(e,t){Q.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},E=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},j=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:B;return r!==H&&9===r.nodeType&&r.documentElement?(H=r,q=H.documentElement,M=!E(H),(n=H.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Tt,!1):n.attachEvent&&n.attachEvent("onunload",Tt)),w.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=i(function(e){return e.appendChild(H.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=gt.test(H.getElementsByClassName),w.getById=i(function(e){return q.appendChild(e).id=P,!H.getElementsByName||!H.getElementsByName(P).length}),w.getById?(T.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&M){var n=t.getElementById(e);return n?[n]:[]}},T.filter.ID=function(e){var t=e.replace(bt,wt);return function(e){return e.getAttribute("id")===t}}):(delete T.find.ID,T.filter.ID=function(e){var t=e.replace(bt,wt);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),T.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},T.find.CLASS=w.getElementsByClassName&&function(e,t){return"undefined"!=typeof t.getElementsByClassName&&M?t.getElementsByClassName(e):void 0},F=[],_=[],(w.qsa=gt.test(H.querySelectorAll))&&(i(function(e){q.appendChild(e).innerHTML=" ",e.querySelectorAll("[msallowcapture^='']").length&&_.push("[*^$]="+nt+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||_.push("\\["+nt+"*(?:value|"+tt+")"),e.querySelectorAll("[id~="+P+"-]").length||_.push("~="),e.querySelectorAll(":checked").length||_.push(":checked"),e.querySelectorAll("a#"+P+"+*").length||_.push(".#.+[+~]")}),i(function(e){var t=H.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&_.push("name"+nt+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||_.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),_.push(",.*:")})),(w.matchesSelector=gt.test(O=q.matches||q.webkitMatchesSelector||q.mozMatchesSelector||q.oMatchesSelector||q.msMatchesSelector))&&i(function(e){w.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),F.push("!=",ot)}),_=_.length&&new RegExp(_.join("|")),F=F.length&&new RegExp(F.join("|")),t=gt.test(q.compareDocumentPosition),R=t||gt.test(q.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},U=t?function(e,t){if(e===t)return L=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===H||e.ownerDocument===B&&R(B,e)?-1:t===H||t.ownerDocument===B&&R(B,t)?1:D?et(D,e)-et(D,t):0:4&n?-1:1)}:function(e,t){if(e===t)return L=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],u=[t];if(!i||!o)return e===H?-1:t===H?1:i?-1:o?1:D?et(D,e)-et(D,t):0;if(i===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;s[r]===u[r];)r++;return r?a(s[r],u[r]):s[r]===B?-1:u[r]===B?1:0},H):H},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==H&&j(e),n=n.replace(ct,"='$1']"),!(!w.matchesSelector||!M||X[n+" "]||F&&F.test(n)||_&&_.test(n)))try{var r=O.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,H,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==H&&j(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==H&&j(e);var n=T.attrHandle[t.toLowerCase()],r=n&&Y.call(T.attrHandle,t.toLowerCase())?n(e,t,!M):void 0;return void 0!==r?r:w.attributes||!M?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(L=!w.detectDuplicates,D=!w.sortStable&&e.slice(0),e.sort(U),L){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return D=null,e},C=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=C(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=C(t);return n},T=t.selectors={cacheLength:50,createPseudo:r,match:pt,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(bt,wt),e[3]=(e[3]||e[4]||e[5]||"").replace(bt,wt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pt.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&dt.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(bt,wt).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=$[e+" "];return t||(t=new RegExp("(^|"+nt+")"+e+"("+nt+"|$)"))&&$(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:n?(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(at," ")+" ").indexOf(r)>-1:"|="===n?o===r||o.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,d,f,p,h,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!u&&!s,x=!1;if(g){if(o){for(;m;){for(f=t;f=f[m];)if(s?f.nodeName.toLowerCase()===v:1===f.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&y){for(f=g,d=f[P]||(f[P]={}),c=d[f.uniqueID]||(d[f.uniqueID]={}),l=c[e]||[],p=l[0]===W&&l[1],x=p&&l[2],f=p&&g.childNodes[p];f=++p&&f&&f[m]||(x=p=0)||h.pop();)if(1===f.nodeType&&++x&&f===t){c[e]=[W,p,x];
+break}}else if(y&&(f=t,d=f[P]||(f[P]={}),c=d[f.uniqueID]||(d[f.uniqueID]={}),l=c[e]||[],p=l[0]===W&&l[1],x=p),x===!1)for(;(f=++p&&f&&f[m]||(x=p=0)||h.pop())&&((s?f.nodeName.toLowerCase()!==v:1!==f.nodeType)||!++x||(y&&(d=f[P]||(f[P]={}),c=d[f.uniqueID]||(d[f.uniqueID]={}),c[e]=[W,x]),f!==t)););return x-=i,x===r||x%r===0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=T.pseudos[e]||T.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[P]?o(n):o.length>1?(i=[e,e,"",n],T.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=et(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=k(e.replace(st,"$1"));return i[P]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(bt,wt),function(t){return(t.textContent||t.innerText||C(t)).indexOf(e)>-1}}),lang:r(function(e){return ft.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(bt,wt).toLowerCase(),function(t){var n;do if(n=M?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===q},focus:function(e){return e===H.activeElement&&(!H.hasFocus||H.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!T.pseudos.empty(e)},header:function(e){return mt.test(e.nodeName)},input:function(e){return ht.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[0>n?n+t:n]}),even:l(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:l(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:l(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=0>n?n+t:n;++r2&&"ID"===(a=o[0]).type&&w.getById&&9===t.nodeType&&M&&T.relative[o[1].type]){if(t=(T.find.ID(a.matches[0].replace(bt,wt),t)||[])[0],!t)return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pt.needsContext.test(e)?0:o.length;i--&&(a=o[i],!T.relative[s=a.type]);)if((u=T.find[s])&&(r=u(a.matches[0].replace(bt,wt),yt.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&f(o),!e)return K.apply(n,r),n;break}}return(l||k(e,d))(r,t,!M,n,!t||yt.test(e)&&c(t.parentNode)||t),n},w.sortStable=P.split("").sort(U).join("")===P,w.detectDuplicates=!!L,j(),w.sortDetached=i(function(e){return 1&e.compareDocumentPosition(H.createElement("div"))}),i(function(e){return e.innerHTML=" ","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&i(function(e){return e.innerHTML=" ",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(tt,function(e,t,n){var r;return n?void 0:e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);pt.find=yt,pt.expr=yt.selectors,pt.expr[":"]=pt.expr.pseudos,pt.uniqueSort=pt.unique=yt.uniqueSort,pt.text=yt.getText,pt.isXMLDoc=yt.isXML,pt.contains=yt.contains;var xt=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&pt(e).is(n))break;r.push(e)}return r},bt=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},wt=pt.expr.match.needsContext,Tt=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Ct=/^.[^:#\[\.,]*$/;pt.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?pt.find.matchesSelector(r,e)?[r]:[]:pt.find.matches(e,pt.grep(t,function(e){return 1===e.nodeType}))},pt.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(pt(e).filter(function(){for(t=0;i>t;t++)if(pt.contains(r[t],this))return!0}));for(t=0;i>t;t++)pt.find(e,r[t],n);return n=this.pushStack(i>1?pt.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(r(this,e||[],!1))},not:function(e){return this.pushStack(r(this,e||[],!0))},is:function(e){return!!r(this,"string"==typeof e&&wt.test(e)?pt(e):e||[],!1).length}});var Et,Nt=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,kt=pt.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||Et,"string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:Nt.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof pt?t[0]:t,pt.merge(this,pt.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:rt,!0)),Tt.test(r[1])&&pt.isPlainObject(t))for(r in t)pt.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}if(i=rt.getElementById(r[2]),i&&i.parentNode){if(i.id!==r[2])return Et.find(e);this.length=1,this[0]=i}return this.context=rt,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):pt.isFunction(e)?"undefined"!=typeof n.ready?n.ready(e):e(pt):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),pt.makeArray(e,this))};kt.prototype=pt.fn,Et=pt(rt);var St=/^(?:parents|prev(?:Until|All))/,At={children:!0,contents:!0,next:!0,prev:!0};pt.fn.extend({has:function(e){var t,n=pt(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(pt.contains(this,n[t]))return!0})},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=wt.test(e)||"string"!=typeof e?pt(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&pt.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?pt.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?pt.inArray(this[0],pt(e)):pt.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(pt.uniqueSort(pt.merge(this.get(),pt(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),pt.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return xt(e,"parentNode")},parentsUntil:function(e,t,n){return xt(e,"parentNode",n)},next:function(e){return i(e,"nextSibling")},prev:function(e){return i(e,"previousSibling")},nextAll:function(e){return xt(e,"nextSibling")},prevAll:function(e){return xt(e,"previousSibling")},nextUntil:function(e,t,n){return xt(e,"nextSibling",n)},prevUntil:function(e,t,n){return xt(e,"previousSibling",n)},siblings:function(e){return bt((e.parentNode||{}).firstChild,e)},children:function(e){return bt(e.firstChild)},contents:function(e){return pt.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:pt.merge([],e.childNodes)}},function(e,t){pt.fn[e]=function(n,r){var i=pt.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=pt.filter(r,i)),this.length>1&&(At[e]||(i=pt.uniqueSort(i)),St.test(e)&&(i=i.reverse())),this.pushStack(i)}});var Dt=/\S+/g;pt.Callbacks=function(e){e="string"==typeof e?o(e):pt.extend({},e);var t,n,r,i,a=[],s=[],u=-1,l=function(){for(i=e.once,r=t=!0;s.length;u=-1)for(n=s.shift();++u-1;)a.splice(n,1),u>=n&&u--}),this},has:function(e){return e?pt.inArray(e,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return i=s=[],a=n="",this},disabled:function(){return!a},lock:function(){return i=!0,n||c.disable(),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],s.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},pt.extend({Deferred:function(e){var t=[["resolve","done",pt.Callbacks("once memory"),"resolved"],["reject","fail",pt.Callbacks("once memory"),"rejected"],["notify","progress",pt.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return pt.Deferred(function(n){pt.each(t,function(t,o){var a=pt.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&pt.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?pt.extend(e,r):r}},i={};return r.pipe=r.then,pt.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=it.call(arguments),a=o.length,s=1!==a||e&&pt.isFunction(e.promise)?a:0,u=1===s?e:pt.Deferred(),l=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?it.call(arguments):i,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);a>i;i++)o[i]&&pt.isFunction(o[i].promise)?o[i].promise().progress(l(i,n,t)).done(l(i,r,o)).fail(u.reject):--s;return s||u.resolveWith(r,o),u.promise()}});var Lt;pt.fn.ready=function(e){return pt.ready.promise().done(e),this},pt.extend({isReady:!1,readyWait:1,holdReady:function(e){e?pt.readyWait++:pt.ready(!0)},ready:function(e){(e===!0?--pt.readyWait:pt.isReady)||(pt.isReady=!0,e!==!0&&--pt.readyWait>0||(Lt.resolveWith(rt,[pt]),pt.fn.triggerHandler&&(pt(rt).triggerHandler("ready"),pt(rt).off("ready"))))}}),pt.ready.promise=function(t){if(!Lt)if(Lt=pt.Deferred(),"complete"===rt.readyState||"loading"!==rt.readyState&&!rt.documentElement.doScroll)e.setTimeout(pt.ready);else if(rt.addEventListener)rt.addEventListener("DOMContentLoaded",s),e.addEventListener("load",s);else{rt.attachEvent("onreadystatechange",s),e.attachEvent("onload",s);var n=!1;try{n=null==e.frameElement&&rt.documentElement}catch(r){}n&&n.doScroll&&!function i(){if(!pt.isReady){try{n.doScroll("left")}catch(t){return e.setTimeout(i,50)}a(),pt.ready()}}()}return Lt.promise(t)},pt.ready.promise();var jt;for(jt in pt(dt))break;dt.ownFirst="0"===jt,dt.inlineBlockNeedsLayout=!1,pt(function(){var e,t,n,r;n=rt.getElementsByTagName("body")[0],n&&n.style&&(t=rt.createElement("div"),r=rt.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),"undefined"!=typeof t.style.zoom&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",dt.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(r))}),function(){var e=rt.createElement("div");dt.deleteExpando=!0;try{delete e.test}catch(t){dt.deleteExpando=!1}e=null}();var Ht=function(e){var t=pt.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return 1!==n&&9!==n?!1:!t||t!==!0&&e.getAttribute("classid")===t},qt=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Mt=/([A-Z])/g;pt.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?pt.cache[e[pt.expando]]:e[pt.expando],!!e&&!l(e)},data:function(e,t,n){return c(e,t,n)},removeData:function(e,t){return d(e,t)},_data:function(e,t,n){return c(e,t,n,!0)},_removeData:function(e,t){return d(e,t,!0)}}),pt.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=pt.data(o),1===o.nodeType&&!pt._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(r=a[n].name,0===r.indexOf("data-")&&(r=pt.camelCase(r.slice(5)),u(o,r,i[r])));pt._data(o,"parsedAttrs",!0)}return i}return"object"==typeof e?this.each(function(){pt.data(this,e)}):arguments.length>1?this.each(function(){pt.data(this,e,t)}):o?u(o,e,pt.data(o,e)):void 0},removeData:function(e){return this.each(function(){pt.removeData(this,e)})}}),pt.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=pt._data(e,t),n&&(!r||pt.isArray(n)?r=pt._data(e,t,pt.makeArray(n)):r.push(n)),r||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=pt.queue(e,t),r=n.length,i=n.shift(),o=pt._queueHooks(e,t),a=function(){pt.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return pt._data(e,n)||pt._data(e,n,{empty:pt.Callbacks("once memory").add(function(){pt._removeData(e,t+"queue"),pt._removeData(e,n)})})}}),pt.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.lengths;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},Bt=/^(?:checkbox|radio)$/i,Wt=/<([\w:-]+)/,It=/^$|\/(?:java|ecma)script/i,$t=/^\s+/,zt="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";!function(){var e=rt.createElement("div"),t=rt.createDocumentFragment(),n=rt.createElement("input");e.innerHTML=" a ",dt.leadingWhitespace=3===e.firstChild.nodeType,dt.tbody=!e.getElementsByTagName("tbody").length,dt.htmlSerialize=!!e.getElementsByTagName("link").length,dt.html5Clone="<:nav>"!==rt.createElement("nav").cloneNode(!0).outerHTML,n.type="checkbox",n.checked=!0,t.appendChild(n),dt.appendChecked=n.checked,e.innerHTML="",dt.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue,t.appendChild(e),n=rt.createElement("input"),n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),dt.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,dt.noCloneEvent=!!e.addEventListener,e[pt.expando]=1,dt.attributes=!e.getAttribute(pt.expando)}();var Xt={option:[1,""," "],legend:[1,""," "],area:[1,""," "],param:[1,""," "],thead:[1,""],tr:[2,""],col:[2,""],td:[3,""],_default:dt.htmlSerialize?[0,"",""]:[1,"X","
"]};Xt.optgroup=Xt.option,Xt.tbody=Xt.tfoot=Xt.colgroup=Xt.caption=Xt.thead,Xt.th=Xt.td;var Ut=/<|?\w+;/,Vt=/-1&&(h=p.split("."),p=h.shift(),h.sort()),a=p.indexOf(":")<0&&"on"+p,t=t[pt.expando]?t:new pt.Event(p,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:pt.makeArray(n,[t]),l=pt.event.special[p]||{},i||!l.trigger||l.trigger.apply(r,n)!==!1)){if(!i&&!l.noBubble&&!pt.isWindow(r)){for(u=l.delegateType||p,Qt.test(u+p)||(s=s.parentNode);s;s=s.parentNode)f.push(s),c=s;c===(r.ownerDocument||rt)&&f.push(c.defaultView||c.parentWindow||e)}for(d=0;(s=f[d++])&&!t.isPropagationStopped();)t.type=d>1?u:l.bindType||p,o=(pt._data(s,"events")||{})[t.type]&&pt._data(s,"handle"),o&&o.apply(s,n),o=a&&s[a],o&&o.apply&&Ht(s)&&(t.result=o.apply(s,n),t.result===!1&&t.preventDefault());if(t.type=p,!i&&!t.isDefaultPrevented()&&(!l._default||l._default.apply(f.pop(),n)===!1)&&Ht(r)&&a&&r[p]&&!pt.isWindow(r)){c=r[a],c&&(r[a]=null),pt.event.triggered=p;try{r[p]()}catch(m){}pt.event.triggered=void 0,c&&(r[a]=c)}return t.result}},dispatch:function(e){e=pt.event.fix(e);var t,n,r,i,o,a=[],s=it.call(arguments),u=(pt._data(this,"events")||{})[e.type]||[],l=pt.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){for(a=pt.event.handlers.call(this,e,u),t=0;(i=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!e.isImmediatePropagationStopped();)(!e.rnamespace||e.rnamespace.test(o.namespace))&&(e.handleObj=o,e.data=o.data,r=((pt.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s),void 0!==r&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(r=[],n=0;s>n;n++)o=t[n],i=o.selector+" ",void 0===r[i]&&(r[i]=o.needsContext?pt(i,this).index(u)>-1:pt.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&a.push({elem:u,handlers:r})}return s ]","i"),tn=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,nn=/
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/template/index3/preview.png b/template/index3/preview.png
new file mode 100644
index 0000000..c4525d8
Binary files /dev/null and b/template/index3/preview.png differ
diff --git a/template/index4/assets/css/app.min.css b/template/index4/assets/css/app.min.css
new file mode 100644
index 0000000..ec129a7
--- /dev/null
+++ b/template/index4/assets/css/app.min.css
@@ -0,0 +1,5 @@
+@charset 'UTF-8';/*!
+*/:root{--blue:#5e72e4;--indigo:#5603ad;--purple:#8965e0;--pink:#f3a4b5;--red:#f5365c;--orange:#fb6340;--yellow:#ffd600;--green:#2dce89;--teal:#11cdef;--cyan:#2bffc6;--white:#fff;--gray:#8898aa;--gray-dark:#32325d;--light:#ced4da;--lighter:#e9ecef;--primary:#5e72e4;--secondary:#f7fafc;--success:#2dce89;--info:#11cdef;--warning:#fb6340;--danger:#f5365c;--light:#adb5bd;--dark:#212529;--default:#172b4d;--white:#fff;--neutral:#fff;--darker:black;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:Open Sans,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{font-family:Open Sans,sans-serif;font-size:1rem;font-weight:400;line-height:1.5;margin:0;text-align:left;color:#525f7f;background-color:#f8f9fe}[tabindex='-1']:focus{outline:0!important}hr{overflow:visible;box-sizing:content-box;height:0}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{cursor:help;text-decoration:underline;text-decoration:underline dotted;border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit;margin-bottom:1rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:600}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{text-decoration:none;color:#5e72e4;background-color:transparent}a:hover{text-decoration:none;color:#233dd2}a:not([href]):not([tabindex]){text-decoration:none;color:inherit}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{text-decoration:none;color:inherit}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:1em}pre{overflow:auto;margin-top:0;margin-bottom:1rem}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:1rem;padding-bottom:1rem;caption-side:bottom;text-align:left;color:#8898aa}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{font-size:1.5rem;line-height:inherit;display:block;width:100%;max-width:100%;margin-bottom:.5rem;padding:0;white-space:normal;color:inherit}@media (max-width:1200px){legend{font-size:calc(1.275rem + .3vw)}}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:600;line-height:1.5;margin-bottom:.5rem;color:#32325d}.h1,h1{font-size:1.625rem}@media (max-width:1200px){.h1,h1{font-size:calc(1.2875rem + .45vw)}}.h2,h2{font-size:1.25rem}.h3,h3{font-size:1.0625rem}.h4,h4{font-size:.9375rem}.h5,h5{font-size:.8125rem}.h6,h6{font-size:.625rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:3.3rem;font-weight:600;line-height:1.5}@media (max-width:1200px){.display-1{font-size:calc(1.455rem + 2.46vw)}}.display-2{font-size:2.75rem;font-weight:600;line-height:1.5}@media (max-width:1200px){.display-2{font-size:calc(1.4rem + 1.8vw)}}.display-3{font-size:2.1875rem;font-weight:600;line-height:1.5}@media (max-width:1200px){.display-3{font-size:calc(1.34375rem + 1.125vw)}}.display-4{font-size:1.6275rem;font-weight:600;line-height:1.5}@media (max-width:1200px){.display-4{font-size:calc(1.28775rem + .453vw)}}hr{margin-top:2rem;margin-bottom:2rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{font-size:1.25rem;margin-bottom:1rem}.blockquote-footer{font-size:80%;display:block;color:#8898aa}.blockquote-footer::before{content:'\2014\00A0'}.img-fluid{max-width:100%;height:auto}.img-thumbnail{max-width:100%;height:auto;padding:.25rem;border:1px solid #dee2e6;border-radius:.375rem;background-color:#f8f9fe;box-shadow:0 1px 2px rgba(0,0,0,.075)}.figure{display:inline-block}.figure-img{line-height:1;margin-bottom:.5rem}.figure-caption{font-size:90%;color:#8898aa}code{font-size:87.5%;word-break:break-word;color:#f3a4b5}a>code{color:inherit}kbd{font-size:87.5%;padding:.2rem .4rem;color:#fff;border-radius:.25rem;background-color:#212529;box-shadow:inset 0 -.1rem 0 rgba(0,0,0,.25)}kbd kbd{font-size:100%;font-weight:600;padding:0;box-shadow:none}pre{font-size:87.5%;display:block;color:#212529}pre code{font-size:inherit;word-break:normal;color:inherit}.pre-scrollable{overflow-y:scroll;max-height:340px}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:15px;padding-left:15px}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;margin-right:auto;margin-left:auto;padding-right:15px;padding-left:15px}.row{display:flex;margin-right:-15px;margin-left:-15px;flex-wrap:wrap}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{max-width:100%;flex-basis:0;flex-grow:1}.col-auto{width:auto;max-width:100%;flex:0 0 auto}.col-1{max-width:8.33333%;flex:0 0 8.33333%}.col-2{max-width:16.66667%;flex:0 0 16.66667%}.col-3{max-width:25%;flex:0 0 25%}.col-4{max-width:33.33333%;flex:0 0 33.33333%}.col-5{max-width:41.66667%;flex:0 0 41.66667%}.col-6{max-width:50%;flex:0 0 50%}.col-7{max-width:58.33333%;flex:0 0 58.33333%}.col-8{max-width:66.66667%;flex:0 0 66.66667%}.col-9{max-width:75%;flex:0 0 75%}.col-10{max-width:83.33333%;flex:0 0 83.33333%}.col-11{max-width:91.66667%;flex:0 0 91.66667%}.col-12{max-width:100%;flex:0 0 100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}@media (min-width:576px){.col-sm{max-width:100%;flex-basis:0;flex-grow:1}.col-sm-auto{width:auto;max-width:100%;flex:0 0 auto}.col-sm-1{max-width:8.33333%;flex:0 0 8.33333%}.col-sm-2{max-width:16.66667%;flex:0 0 16.66667%}.col-sm-3{max-width:25%;flex:0 0 25%}.col-sm-4{max-width:33.33333%;flex:0 0 33.33333%}.col-sm-5{max-width:41.66667%;flex:0 0 41.66667%}.col-sm-6{max-width:50%;flex:0 0 50%}.col-sm-7{max-width:58.33333%;flex:0 0 58.33333%}.col-sm-8{max-width:66.66667%;flex:0 0 66.66667%}.col-sm-9{max-width:75%;flex:0 0 75%}.col-sm-10{max-width:83.33333%;flex:0 0 83.33333%}.col-sm-11{max-width:91.66667%;flex:0 0 91.66667%}.col-sm-12{max-width:100%;flex:0 0 100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}}@media (min-width:768px){.col-md{max-width:100%;flex-basis:0;flex-grow:1}.col-md-auto{width:auto;max-width:100%;flex:0 0 auto}.col-md-1{max-width:8.33333%;flex:0 0 8.33333%}.col-md-2{max-width:16.66667%;flex:0 0 16.66667%}.col-md-3{max-width:25%;flex:0 0 25%}.col-md-4{max-width:33.33333%;flex:0 0 33.33333%}.col-md-5{max-width:41.66667%;flex:0 0 41.66667%}.col-md-6{max-width:50%;flex:0 0 50%}.col-md-7{max-width:58.33333%;flex:0 0 58.33333%}.col-md-8{max-width:66.66667%;flex:0 0 66.66667%}.col-md-9{max-width:75%;flex:0 0 75%}.col-md-10{max-width:83.33333%;flex:0 0 83.33333%}.col-md-11{max-width:91.66667%;flex:0 0 91.66667%}.col-md-12{max-width:100%;flex:0 0 100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}}@media (min-width:992px){.col-lg{max-width:100%;flex-basis:0;flex-grow:1}.col-lg-auto{width:auto;max-width:100%;flex:0 0 auto}.col-lg-1{max-width:8.33333%;flex:0 0 8.33333%}.col-lg-2{max-width:16.66667%;flex:0 0 16.66667%}.col-lg-3{max-width:25%;flex:0 0 25%}.col-lg-4{max-width:33.33333%;flex:0 0 33.33333%}.col-lg-5{max-width:41.66667%;flex:0 0 41.66667%}.col-lg-6{max-width:50%;flex:0 0 50%}.col-lg-7{max-width:58.33333%;flex:0 0 58.33333%}.col-lg-8{max-width:66.66667%;flex:0 0 66.66667%}.col-lg-9{max-width:75%;flex:0 0 75%}.col-lg-10{max-width:83.33333%;flex:0 0 83.33333%}.col-lg-11{max-width:91.66667%;flex:0 0 91.66667%}.col-lg-12{max-width:100%;flex:0 0 100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}}@media (min-width:1200px){.col-xl{max-width:100%;flex-basis:0;flex-grow:1}.col-xl-auto{width:auto;max-width:100%;flex:0 0 auto}.col-xl-1{max-width:8.33333%;flex:0 0 8.33333%}.col-xl-2{max-width:16.66667%;flex:0 0 16.66667%}.col-xl-3{max-width:25%;flex:0 0 25%}.col-xl-4{max-width:33.33333%;flex:0 0 33.33333%}.col-xl-5{max-width:41.66667%;flex:0 0 41.66667%}.col-xl-6{max-width:50%;flex:0 0 50%}.col-xl-7{max-width:58.33333%;flex:0 0 58.33333%}.col-xl-8{max-width:66.66667%;flex:0 0 66.66667%}.col-xl-9{max-width:75%;flex:0 0 75%}.col-xl-10{max-width:83.33333%;flex:0 0 83.33333%}.col-xl-11{max-width:91.66667%;flex:0 0 91.66667%}.col-xl-12{max-width:100%;flex:0 0 100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}}.table{width:100%;margin-bottom:1rem;color:#525f7f;background-color:transparent}.table td,.table th{padding:1rem;vertical-align:top;border-top:1px solid #e9ecef}.table thead th{vertical-align:bottom;border-bottom:2px solid #e9ecef}.table tbody+tbody{border-top:2px solid #e9ecef}.table-sm td,.table-sm th{padding:.5rem}.table-bordered{border:1px solid #e9ecef}.table-bordered td,.table-bordered th{border:1px solid #e9ecef}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(246,249,252,.3)}.table-hover tbody tr:hover{color:#525f7f;background-color:#f6f9fc}.table-primary,.table-primary>td,.table-primary>th{background-color:#d2d8f7}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#abb6f1}.table-hover .table-primary:hover{background-color:#bcc5f3}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#bcc5f3}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#fdfefe}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#fbfcfd}.table-hover .table-secondary:hover{background-color:#ecf6f6}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#ecf6f6}.table-success,.table-success>td,.table-success>th{background-color:#c4f1de}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#92e6c2}.table-hover .table-success:hover{background-color:#afecd2}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#afecd2}.table-info,.table-info>td,.table-info>th{background-color:#bcf1fb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#83e5f7}.table-hover .table-info:hover{background-color:#a4ecfa}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#a4ecfa}.table-warning,.table-warning>td,.table-warning>th{background-color:#fed3ca}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#fdae9c}.table-hover .table-warning:hover{background-color:#febeb1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#febeb1}.table-danger,.table-danger>td,.table-danger>th{background-color:#fcc7d1}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#fa96aa}.table-hover .table-danger:hover{background-color:#fbafbd}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#fbafbd}.table-light,.table-light>td,.table-light>th{background-color:#e8eaed}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#d4d9dd}.table-hover .table-light:hover{background-color:#dadde2}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#dadde2}.table-dark,.table-dark>td,.table-dark>th{background-color:#c1c2c3}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#8c8e90}.table-hover .table-dark:hover{background-color:#b4b5b6}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b4b5b6}.table-default,.table-default>td,.table-default>th{background-color:#bec4cd}.table-default tbody+tbody,.table-default td,.table-default th,.table-default thead th{border-color:#8691a2}.table-hover .table-default:hover{background-color:#b0b7c2}.table-hover .table-default:hover>td,.table-hover .table-default:hover>th{background-color:#b0b7c2}.table-white,.table-white>td,.table-white>th{background-color:#fff}.table-white tbody+tbody,.table-white td,.table-white th,.table-white thead th{border-color:#fff}.table-hover .table-white:hover{background-color:#f2f2f2}.table-hover .table-white:hover>td,.table-hover .table-white:hover>th{background-color:#f2f2f2}.table-neutral,.table-neutral>td,.table-neutral>th{background-color:#fff}.table-neutral tbody+tbody,.table-neutral td,.table-neutral th,.table-neutral thead th{border-color:#fff}.table-hover .table-neutral:hover{background-color:#f2f2f2}.table-hover .table-neutral:hover>td,.table-hover .table-neutral:hover>th{background-color:#f2f2f2}.table-darker,.table-darker>td,.table-darker>th{background-color:#b8b8b8}.table-darker tbody+tbody,.table-darker td,.table-darker th,.table-darker thead th{border-color:#7a7a7a}.table-hover .table-darker:hover{background-color:#ababab}.table-hover .table-darker:hover>td,.table-hover .table-darker:hover>th{background-color:#ababab}.table-active,.table-active>td,.table-active>th{background-color:#f6f9fc}.table-hover .table-active:hover{background-color:#e3ecf6}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:#e3ecf6}.table .thead-dark th{color:#f8f9fe;border-color:#1f3a68;background-color:#172b4d}.table .thead-light th{color:#8898aa;border-color:#e9ecef;background-color:#f6f9fc}.table-dark{color:#f8f9fe;background-color:#172b4d}.table-dark td,.table-dark th,.table-dark thead th{border-color:#1f3a68}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#f8f9fe;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-input{font-size:.700rem;font-weight:400;line-height:1.5;padding:.625rem .75rem;transition:all .15s cubic-bezier(.68,-.55,.265,1.55);color:#8898aa;border:1px solid #dee2e6;border-radius:.25rem;background-color:#fff;background-clip:padding-box;box-shadow:0 3px 2px rgba(233,236,239,.05)}.form-control{font-size:.875rem;font-weight:400;line-height:1.5;display:block;width:100%;height:calc(1.5em + 1.25rem + 2px);padding:.625rem .75rem;transition:all .15s cubic-bezier(.68,-.55,.265,1.55);color:#8898aa;border:1px solid #dee2e6;border-radius:.25rem;background-color:#fff;background-clip:padding-box;box-shadow:0 3px 2px rgba(233,236,239,.05)}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{border:0;background-color:transparent}.form-control:focus{color:#8898aa;border-color:#5e72e4;outline:0;background-color:#fff;box-shadow:0 3px 9px rgba(50,50,9,0),3px 4px 8px rgba(94,114,228,.1)}.form-control::-ms-input-placeholder{opacity:1;color:#adb5bd}.form-control::placeholder{opacity:1;color:#adb5bd}.form-control:disabled,.form-control[readonly]{opacity:1;background-color:#e9ecef}select.form-control:focus::-ms-value{color:#8898aa;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{font-size:inherit;line-height:1.5;margin-bottom:0;padding-top:calc(.625rem + 1px);padding-bottom:calc(.625rem + 1px)}.col-form-label-lg{font-size:.875rem;line-height:1.5;padding-top:calc(.875rem + 1px);padding-bottom:calc(.875rem + 1px)}.col-form-label-sm{font-size:.75rem;line-height:1.5;padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px)}.form-control-plaintext{line-height:1.5;display:block;width:100%;margin-bottom:0;padding-top:.625rem;padding-bottom:.625rem;color:#525f7f;border:solid transparent;border-width:1px 0;background-color:transparent}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{font-size:.75rem;line-height:1.5;height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;border-radius:.25rem}.form-control-lg{font-size:.875rem;line-height:1.5;height:calc(1.5em + 1.75rem + 2px);padding:.875rem 1rem;border-radius:.4375rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1.5rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;margin-right:-5px;margin-left:-5px;flex-wrap:wrap}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#8898aa}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;margin-right:.75rem;padding-left:0;align-items:center}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{font-size:80%;display:none;width:100%;margin-top:.25rem;color:#2dce89}.valid-tooltip{font-size:.875rem;line-height:1;position:absolute;z-index:5;top:100%;display:none;max-width:100%;margin-top:.1rem;padding:.5rem;color:#fff;border-radius:.2rem;background-color:rgba(45,206,137,.8)}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#2dce89}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#2dce89}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#2dce89}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#2dce89}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#93e7c3;background-color:#93e7c3}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#93e7c3;background-color:#54daa1}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #f8f9fe,0 0 0 0 rgba(45,206,137,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#2dce89}.custom-file-input.is-valid~.custom-file-label::before,.was-validated .custom-file-input:valid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 0 rgba(45,206,137,.25)}.invalid-feedback{font-size:80%;display:none;width:100%;margin-top:.25rem;color:#fb6340}.invalid-tooltip{font-size:.875rem;line-height:1;position:absolute;z-index:5;top:100%;display:none;max-width:100%;margin-top:.1rem;padding:.5rem;color:#fff;border-radius:.2rem;background-color:rgba(251,99,64,.8)}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#fb6340}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#fb6340}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#fb6340}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#fb6340}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#fec9bd;background-color:#fec9bd}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#fec9bd;background-color:#fc8c72}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #f8f9fe,0 0 0 0 rgba(251,99,64,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#fb6340}.custom-file-input.is-invalid~.custom-file-label::before,.was-validated .custom-file-input:invalid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 0 rgba(251,99,64,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:flex;margin-bottom:0;align-items:center;justify-content:center}.form-inline .form-group{display:flex;margin-bottom:0;flex:0 0 auto;flex-flow:row wrap;align-items:center}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;width:auto;padding-left:0;align-items:center;justify-content:center}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0;flex-shrink:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{font-size:.875rem;font-weight:600;line-height:1.5;display:inline-block;padding:.625rem 1.25rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;text-align:center;vertical-align:middle;color:#525f7f;border:1px solid transparent;border-radius:.25rem;background-color:transparent}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{text-decoration:none;color:#525f7f}.btn.focus,.btn:focus{outline:0;box-shadow:0 7px 14px rgba(50,50,93,.1),0 3px 6px rgba(0,0,0,.08)}.btn.disabled,.btn:disabled{opacity:.65;box-shadow:none}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{box-shadow:none}.btn:not(:disabled):not(.disabled).active:focus,.btn:not(:disabled):not(.disabled):active:focus{box-shadow:0 7px 14px rgba(50,50,93,.1),0 3px 6px rgba(0,0,0,.08)}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;border-color:#5e72e4;background-color:#5e72e4;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-primary:hover{color:#fff;border-color:#5e72e4;background-color:#5e72e4}.btn-primary.focus,.btn-primary:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(94,114,228,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;border-color:#5e72e4;background-color:#5e72e4}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;border-color:#5e72e4;background-color:#324cdd}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(94,114,228,.5)}.btn-secondary{color:#212529;border-color:#f7fafc;background-color:#f7fafc;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-secondary:hover{color:#212529;border-color:#f7fafc;background-color:#f7fafc}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(247,250,252,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#212529;border-color:#f7fafc;background-color:#f7fafc}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#212529;border-color:#f7fafc;background-color:#d2e3ee}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(247,250,252,.5)}.btn-success{color:#fff;border-color:#2dce89;background-color:#2dce89;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-success:hover{color:#fff;border-color:#2dce89;background-color:#2dce89}.btn-success.focus,.btn-success:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(45,206,137,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;border-color:#2dce89;background-color:#2dce89}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;border-color:#2dce89;background-color:#24a46d}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(45,206,137,.5)}.btn-info{color:#fff;border-color:#11cdef;background-color:#11cdef;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-info:hover{color:#fff;border-color:#11cdef;background-color:#11cdef}.btn-info.focus,.btn-info:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(17,205,239,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;border-color:#11cdef;background-color:#11cdef}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;border-color:#11cdef;background-color:#0da5c0}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(17,205,239,.5)}.btn-warning{color:#fff;border-color:#fb6340;background-color:#fb6340;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-warning:hover{color:#fff;border-color:#fb6340;background-color:#fb6340}.btn-warning.focus,.btn-warning:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(251,99,64,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#fff;border-color:#fb6340;background-color:#fb6340}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#fff;border-color:#fb6340;background-color:#fa3a0e}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(251,99,64,.5)}.btn-danger{color:#fff;border-color:#f5365c;background-color:#f5365c;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-danger:hover{color:#fff;border-color:#f5365c;background-color:#f5365c}.btn-danger.focus,.btn-danger:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(245,54,92,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;border-color:#f5365c;background-color:#f5365c}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;border-color:#f5365c;background-color:#ec0c38}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(245,54,92,.5)}.btn-light{color:#fff;border-color:#adb5bd;background-color:#adb5bd;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-light:hover{color:#fff;border-color:#adb5bd;background-color:#adb5bd}.btn-light.focus,.btn-light:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(173,181,189,.5)}.btn-light.disabled,.btn-light:disabled{color:#fff;border-color:#adb5bd;background-color:#adb5bd}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#fff;border-color:#adb5bd;background-color:#919ca6}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(173,181,189,.5)}.btn-dark{color:#fff;border-color:#212529;background-color:#212529;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-dark:hover{color:#fff;border-color:#212529;background-color:#212529}.btn-dark.focus,.btn-dark:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(33,37,41,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;border-color:#212529;background-color:#212529}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;border-color:#212529;background-color:#0a0c0d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(33,37,41,.5)}.btn-default{color:#fff;border-color:#172b4d;background-color:#172b4d;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-default:hover{color:#fff;border-color:#172b4d;background-color:#172b4d}.btn-default.focus,.btn-default:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(23,43,77,.5)}.btn-default.disabled,.btn-default:disabled{color:#fff;border-color:#172b4d;background-color:#172b4d}.btn-default:not(:disabled):not(.disabled).active,.btn-default:not(:disabled):not(.disabled):active,.show>.btn-default.dropdown-toggle{color:#fff;border-color:#172b4d;background-color:#0b1526}.btn-default:not(:disabled):not(.disabled).active:focus,.btn-default:not(:disabled):not(.disabled):active:focus,.show>.btn-default.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(23,43,77,.5)}.btn-white{color:#212529;border-color:#fff;background-color:#fff;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-white:hover{color:#212529;border-color:#fff;background-color:#fff}.btn-white.focus,.btn-white:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(255,255,255,.5)}.btn-white.disabled,.btn-white:disabled{color:#212529;border-color:#fff;background-color:#fff}.btn-white:not(:disabled):not(.disabled).active,.btn-white:not(:disabled):not(.disabled):active,.show>.btn-white.dropdown-toggle{color:#212529;border-color:#fff;background-color:#e6e6e6}.btn-white:not(:disabled):not(.disabled).active:focus,.btn-white:not(:disabled):not(.disabled):active:focus,.show>.btn-white.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(255,255,255,.5)}.btn-neutral{color:#212529;border-color:#fff;background-color:#fff;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-neutral:hover{color:#212529;border-color:#fff;background-color:#fff}.btn-neutral.focus,.btn-neutral:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(255,255,255,.5)}.btn-neutral.disabled,.btn-neutral:disabled{color:#212529;border-color:#fff;background-color:#fff}.btn-neutral:not(:disabled):not(.disabled).active,.btn-neutral:not(:disabled):not(.disabled):active,.show>.btn-neutral.dropdown-toggle{color:#212529;border-color:#fff;background-color:#e6e6e6}.btn-neutral:not(:disabled):not(.disabled).active:focus,.btn-neutral:not(:disabled):not(.disabled):active:focus,.show>.btn-neutral.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(255,255,255,.5)}.btn-darker{color:#fff;border-color:#000;background-color:#000;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-darker:hover{color:#fff;border-color:#000;background-color:#000}.btn-darker.focus,.btn-darker:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(0,0,0,.5)}.btn-darker.disabled,.btn-darker:disabled{color:#fff;border-color:#000;background-color:#000}.btn-darker:not(:disabled):not(.disabled).active,.btn-darker:not(:disabled):not(.disabled):active,.show>.btn-darker.dropdown-toggle{color:#fff;border-color:#000;background-color:#000}.btn-darker:not(:disabled):not(.disabled).active:focus,.btn-darker:not(:disabled):not(.disabled):active:focus,.show>.btn-darker.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(0,0,0,.5)}.btn-outline-primary{color:#5e72e4;border-color:#5e72e4;background-color:transparent;background-image:none}.btn-outline-primary:hover{color:#fff;border-color:#5e72e4;background-color:#5e72e4}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 0 rgba(94,114,228,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#5e72e4;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;border-color:#5e72e4;background-color:#5e72e4}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(94,114,228,.5)}.btn-outline-secondary{color:#f7fafc;border-color:#f7fafc;background-color:transparent;background-image:none}.btn-outline-secondary:hover{color:#212529;border-color:#f7fafc;background-color:#f7fafc}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 0 rgba(247,250,252,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#f7fafc;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#212529;border-color:#f7fafc;background-color:#f7fafc}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(247,250,252,.5)}.btn-outline-success{color:#2dce89;border-color:#2dce89;background-color:transparent;background-image:none}.btn-outline-success:hover{color:#fff;border-color:#2dce89;background-color:#2dce89}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 0 rgba(45,206,137,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#2dce89;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;border-color:#2dce89;background-color:#2dce89}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(45,206,137,.5)}.btn-outline-info{color:#11cdef;border-color:#11cdef;background-color:transparent;background-image:none}.btn-outline-info:hover{color:#fff;border-color:#11cdef;background-color:#11cdef}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 0 rgba(17,205,239,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#11cdef;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;border-color:#11cdef;background-color:#11cdef}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(17,205,239,.5)}.btn-outline-warning{color:#fb6340;border-color:#fb6340;background-color:transparent;background-image:none}.btn-outline-warning:hover{color:#fff;border-color:#fb6340;background-color:#fb6340}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 0 rgba(251,99,64,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#fb6340;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#fff;border-color:#fb6340;background-color:#fb6340}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(251,99,64,.5)}.btn-outline-danger{color:#f5365c;border-color:#f5365c;background-color:transparent;background-image:none}.btn-outline-danger:hover{color:#fff;border-color:#f5365c;background-color:#f5365c}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 0 rgba(245,54,92,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#f5365c;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;border-color:#f5365c;background-color:#f5365c}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(245,54,92,.5)}.btn-outline-light{color:#adb5bd;border-color:#adb5bd;background-color:transparent;background-image:none}.btn-outline-light:hover{color:#fff;border-color:#adb5bd;background-color:#adb5bd}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 0 rgba(173,181,189,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#adb5bd;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#fff;border-color:#adb5bd;background-color:#adb5bd}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(173,181,189,.5)}.btn-outline-dark{color:#212529;border-color:#212529;background-color:transparent;background-image:none}.btn-outline-dark:hover{color:#fff;border-color:#212529;background-color:#212529}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 0 rgba(33,37,41,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;border-color:#212529;background-color:#212529}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(33,37,41,.5)}.btn-outline-default{color:#172b4d;border-color:#172b4d;background-color:transparent;background-image:none}.btn-outline-default:hover{color:#fff;border-color:#172b4d;background-color:#172b4d}.btn-outline-default.focus,.btn-outline-default:focus{box-shadow:0 0 0 0 rgba(23,43,77,.5)}.btn-outline-default.disabled,.btn-outline-default:disabled{color:#172b4d;background-color:transparent}.btn-outline-default:not(:disabled):not(.disabled).active,.btn-outline-default:not(:disabled):not(.disabled):active,.show>.btn-outline-default.dropdown-toggle{color:#fff;border-color:#172b4d;background-color:#172b4d}.btn-outline-default:not(:disabled):not(.disabled).active:focus,.btn-outline-default:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-default.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(23,43,77,.5)}.btn-outline-white{color:#fff;border-color:#fff;background-color:transparent;background-image:none}.btn-outline-white:hover{color:#212529;border-color:#fff;background-color:#fff}.btn-outline-white.focus,.btn-outline-white:focus{box-shadow:0 0 0 0 rgba(255,255,255,.5)}.btn-outline-white.disabled,.btn-outline-white:disabled{color:#fff;background-color:transparent}.btn-outline-white:not(:disabled):not(.disabled).active,.btn-outline-white:not(:disabled):not(.disabled):active,.show>.btn-outline-white.dropdown-toggle{color:#212529;border-color:#fff;background-color:#fff}.btn-outline-white:not(:disabled):not(.disabled).active:focus,.btn-outline-white:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-white.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(255,255,255,.5)}.btn-outline-neutral{color:#fff;border-color:#fff;background-color:transparent;background-image:none}.btn-outline-neutral:hover{color:#212529;border-color:#fff;background-color:#fff}.btn-outline-neutral.focus,.btn-outline-neutral:focus{box-shadow:0 0 0 0 rgba(255,255,255,.5)}.btn-outline-neutral.disabled,.btn-outline-neutral:disabled{color:#fff;background-color:transparent}.btn-outline-neutral:not(:disabled):not(.disabled).active,.btn-outline-neutral:not(:disabled):not(.disabled):active,.show>.btn-outline-neutral.dropdown-toggle{color:#212529;border-color:#fff;background-color:#fff}.btn-outline-neutral:not(:disabled):not(.disabled).active:focus,.btn-outline-neutral:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-neutral.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(255,255,255,.5)}.btn-outline-darker{color:#000;border-color:#000;background-color:transparent;background-image:none}.btn-outline-darker:hover{color:#fff;border-color:#000;background-color:#000}.btn-outline-darker.focus,.btn-outline-darker:focus{box-shadow:0 0 0 0 rgba(0,0,0,.5)}.btn-outline-darker.disabled,.btn-outline-darker:disabled{color:#000;background-color:transparent}.btn-outline-darker:not(:disabled):not(.disabled).active,.btn-outline-darker:not(:disabled):not(.disabled):active,.show>.btn-outline-darker.dropdown-toggle{color:#fff;border-color:#000;background-color:#000}.btn-outline-darker:not(:disabled):not(.disabled).active:focus,.btn-outline-darker:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-darker.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(0,0,0,.5)}.btn-link{font-weight:400;text-decoration:none;color:#5e72e4}.btn-link:hover{text-decoration:none;color:#233dd2}.btn-link.focus,.btn-link:focus{text-decoration:none;box-shadow:none}.btn-link.disabled,.btn-link:disabled{pointer-events:none;color:#8898aa}.btn-group-lg>.btn,.btn-lg{font-size:.875rem;line-height:1.5;padding:.875rem 1rem;border-radius:.4375rem}.btn-group-sm>.btn,.btn-sm{font-size:.75rem;line-height:1.5;padding:.25rem .5rem;border-radius:.25rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;overflow:hidden;height:0;transition:height .3s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;content:'';vertical-align:.255em;border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{font-size:1rem;position:absolute;z-index:1000;top:100%;left:0;display:none;float:left;min-width:10rem;margin:.125rem 0 0;padding:.5rem 0;list-style:none;text-align:left;color:#525f7f;border:0 solid rgba(0,0,0,.15);border-radius:.4375rem;background-color:#fff;background-clip:padding-box;box-shadow:0 50px 100px rgba(50,50,93,.1),0 15px 35px rgba(50,50,93,.15),0 5px 15px rgba(0,0,0,.1)}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;content:'';vertical-align:.255em;border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;content:'';vertical-align:.255em;border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;content:'';vertical-align:.255em}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;content:'';vertical-align:.255em;border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{overflow:hidden;height:0;margin:.5rem 0;border-top:1px solid #e9ecef}.dropdown-item{font-weight:400;display:block;clear:both;width:100%;padding:.5rem 1rem;text-align:inherit;white-space:nowrap;color:#212529;border:0;background-color:transparent}.dropdown-item:focus,.dropdown-item:hover{text-decoration:none;color:#16181b;background-color:#f6f9fc}.dropdown-item.active,.dropdown-item:active{text-decoration:none;color:#16181b;background-color:transparent}.dropdown-item.disabled,.dropdown-item:disabled{pointer-events:none;color:#8898aa;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{font-size:.875rem;display:block;margin-bottom:0;padding:.5rem 1rem;white-space:nowrap;color:#8898aa}.dropdown-item-text{display:block;padding:.5rem 1rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.9375rem;padding-left:.9375rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group.show .dropdown-toggle{box-shadow:none}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;width:100%;flex-wrap:wrap;align-items:stretch}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;width:1%;margin-bottom:0;flex:1 1 auto}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{font-size:.875rem;font-weight:400;line-height:1.5;display:flex;margin-bottom:0;padding:.625rem .75rem;text-align:center;white-space:nowrap;color:#adb5bd;border:1px solid #dee2e6;border-radius:.25rem;background-color:#fff;align-items:center}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1.75rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{font-size:.875rem;line-height:1.5;padding:.875rem 1rem;border-radius:.4375rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{font-size:.75rem;line-height:1.5;padding:.25rem .5rem;border-radius:.25rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:2.75rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#5e72e4;background-color:#5e72e4;box-shadow:0 3px 2px rgba(233,236,239,.05)}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 3px 2px rgba(233,236,239,.05),0 3px 9px rgba(50,50,9,0),3px 4px 8px rgba(94,114,228,.1)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#5e72e4}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;border-color:#5e72e4;background-color:#5e72e4;box-shadow:0 3px 2px rgba(233,236,239,.05)}.custom-control-input:disabled~.custom-control-label{color:#8898aa}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-2.75rem;display:block;width:1rem;height:1rem;content:'';pointer-events:none;border:#dee2e6 solid 1px;background-color:#fff;box-shadow:0 3px 2px rgba(233,236,239,.05)}.custom-control-label::after{position:absolute;top:.25rem;left:-2.75rem;display:block;width:1rem;height:1rem;content:'';background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url('data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%23fff\' d=\'M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z\'/%3e%3c/svg%3e')}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#5e72e4;background-color:#5e72e4;box-shadow:none}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url('data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 4\'%3e%3cpath stroke=\'%23fff\' d=\'M0 2h4\'/%3e%3c/svg%3e')}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(94,114,228,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(94,114,228,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url('data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'-4 -4 8 8\'%3e%3ccircle r=\'3\' fill=\'%23fff\'/%3e%3c/svg%3e')}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(94,114,228,.5)}.custom-switch{padding-left:3.5rem}.custom-switch .custom-control-label::before{left:-3.5rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-3.5rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;border-radius:.5rem;background-color:#dee2e6}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{transform:translateX(.75rem);background-color:#fff}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(94,114,228,.5)}.custom-select{font-size:.875rem;font-weight:400;line-height:1.5;display:inline-block;width:100%;height:calc(1.5em + 1.25rem + 2px);padding:.625rem 1.75rem .625rem .75rem;vertical-align:middle;color:#8898aa;border:1px solid #dee2e6;border-radius:.375rem;background:url('data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%2332325d\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e') no-repeat right .75rem center/8px 10px;background-color:#fff;box-shadow:inset 0 1px 2px rgba(0,0,0,.075);-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#5e72e4;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 0 0 #5e72e4}.custom-select:focus::-ms-value{color:#8898aa;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size='1']){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#8898aa;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select-sm{font-size:.75rem;height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem}.custom-select-lg{font-size:.875rem;height:calc(1.5em + 1.75rem + 2px);padding-top:.875rem;padding-bottom:.875rem;padding-left:1rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + 1.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + 1.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#5e72e4;box-shadow:0 3px 9px rgba(50,50,9,0),3px 4px 8px rgba(94,114,228,.1)}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:'Browse'}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{font-weight:400;line-height:1.5;position:absolute;z-index:1;top:0;right:0;left:0;height:calc(1.5em + 1.25rem + 2px);padding:.625rem .75rem;color:#8898aa;border:1px solid #dee2e6;border-radius:.25rem;background-color:#fff;box-shadow:0 3px 2px rgba(233,236,239,.05)}.custom-file-label::after{line-height:1.5;position:absolute;z-index:3;top:0;right:0;bottom:0;display:block;height:calc(1.5em + 1.25rem);padding:.625rem .75rem;content:'Browse';color:#8898aa;border-left:inherit;border-radius:0 .25rem .25rem 0;background-color:#fff}.custom-range{width:100%;height:calc(1rem + 0);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #f8f9fe,0 3px 9px rgba(50,50,9,0),3px 4px 8px rgba(94,114,228,.1)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #f8f9fe,0 3px 9px rgba(50,50,9,0),3px 4px 8px rgba(94,114,228,.1)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #f8f9fe,0 3px 9px rgba(50,50,9,0),3px 4px 8px rgba(94,114,228,.1)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;border:0;border-radius:1rem;background-color:#5e72e4;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#f7f8fe}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;cursor:pointer;color:transparent;border-color:transparent;border-radius:1rem;background-color:#dee2e6;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-moz-range-thumb{width:1rem;height:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;border:0;border-radius:1rem;background-color:#5e72e4;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#f7f8fe}.custom-range::-moz-range-track{width:100%;height:.5rem;cursor:pointer;color:transparent;border-color:transparent;border-radius:1rem;background-color:#dee2e6;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:0;margin-left:0;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;border:0;border-radius:1rem;background-color:#5e72e4;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#f7f8fe}.custom-range::-ms-track{width:100%;height:.5rem;cursor:pointer;color:transparent;border-width:.5rem;border-color:transparent;background-color:transparent;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-ms-fill-lower{border-radius:1rem;background-color:#dee2e6}.custom-range::-ms-fill-upper{margin-right:15px;border-radius:1rem;background-color:#dee2e6}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;margin-bottom:0;padding-left:0;list-style:none;flex-wrap:wrap}.nav-link{display:block;padding:.25rem .75rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{cursor:default;pointer-events:none;color:#8898aa}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.375rem;border-top-right-radius:.375rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#8898aa;border-color:transparent;background-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#525f7f;border-color:#dee2e6 #dee2e6 #f8f9fe;background-color:#f8f9fe}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.375rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#5e72e4}.nav-fill .nav-item{text-align:center;flex:1 1 auto}.nav-justified .nav-item{text-align:center;flex-basis:0;flex-grow:1}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;padding:1rem 1rem;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{font-size:1.25rem;line-height:inherit;display:inline-block;margin-right:1rem;padding-top:.0625rem;padding-bottom:.0625rem;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;margin-bottom:0;padding-left:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.25rem;padding-bottom:.25rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{font-size:1.25rem;line-height:1;padding:.25rem .75rem;border:1px solid transparent;border-radius:.25rem;background-color:transparent}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;content:'';vertical-align:middle;background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:1rem;padding-left:1rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:1rem;padding-left:1rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:1rem;padding-left:1rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:1rem;padding-left:1rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:1rem;padding-left:1rem}.navbar-expand>.container,.navbar-expand>.container-fluid{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.6)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.6);border-color:transparent}.navbar-light .navbar-toggler-icon{background-image:url('data:image/svg+xml,%3csvg viewBox=\'0 0 30 30\' xmlns=\'http://www.w3.org/2000/svg\'%3e%3cpath stroke=\'rgba(0, 0, 0, 0.6)\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e')}.navbar-light .navbar-text{color:rgba(0,0,0,.6)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:rgba(255,255,255,.65)}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:rgba(255,255,255,.65)}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.95)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.65)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:rgba(255,255,255,.65)}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.95);border-color:transparent}.navbar-dark .navbar-toggler-icon{background-image:url('data:image/svg+xml,%3csvg viewBox=\'0 0 30 30\' xmlns=\'http://www.w3.org/2000/svg\'%3e%3cpath stroke=\'rgba(255, 255, 255, 0.95)\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e')}.navbar-dark .navbar-text{color:rgba(255,255,255,.95)}.navbar-dark .navbar-text a{color:rgba(255,255,255,.65)}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:rgba(255,255,255,.65)}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;border:1px solid rgba(0,0,0,.05);border-radius:.375rem;background-color:#fff;background-clip:border-box}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.card-body{padding:1.5rem;flex:1 1 auto}.card-title{margin-bottom:1.25rem}.card-subtitle{margin-top:-.625rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.5rem}.card-header{margin-bottom:0;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(0,0,0,.05);background-color:#fff}.card-header:first-child{border-radius:calc(.375rem - 1px) calc(.375rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:1.25rem 1.5rem;border-top:1px solid rgba(0,0,0,.05);background-color:#fff}.card-footer:last-child{border-radius:0 0 calc(.375rem - 1px) calc(.375rem - 1px)}.card-header-tabs{margin-right:-.75rem;margin-bottom:-1.25rem;margin-left:-.75rem;border-bottom:0}.card-header-pills{margin-right:-.75rem;margin-left:-.75rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.375rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.375rem - 1px);border-top-right-radius:calc(.375rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.375rem - 1px);border-bottom-left-radius:calc(.375rem - 1px)}.card-deck{display:flex;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{margin-right:-15px;margin-left:-15px;flex-flow:row wrap}.card-deck .card{display:flex;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px;flex:1 0}}.card-group{display:flex;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{flex-flow:row wrap}.card-group>.card{margin-bottom:0;flex:1 0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:1.25rem}@media (min-width:576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:flex;margin-bottom:1rem;padding:.5rem 1rem;list-style:none;border-radius:.375rem;background-color:#f6f9fc;flex-wrap:wrap}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;content:'-';color:#8898aa}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#8898aa}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.375rem}.page-link{line-height:1.25;position:relative;display:block;margin-left:-1px;padding:.5rem .75rem;color:#8898aa;border:1px solid #dee2e6;background-color:#fff}.page-link:hover{z-index:2;text-decoration:none;color:#8898aa;border-color:#dee2e6;background-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:none}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.page-item:last-child .page-link{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.page-item.active .page-link{z-index:1;color:#fff;border-color:#5e72e4;background-color:#5e72e4}.page-item.disabled .page-link{cursor:auto;pointer-events:none;color:#8898aa;border-color:#dee2e6;background-color:#fff}.pagination-lg .page-link{font-size:1.25rem;line-height:1.5;padding:.75rem 1.5rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.4375rem;border-bottom-left-radius:.4375rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.4375rem;border-bottom-right-radius:.4375rem}.pagination-sm .page-link{font-size:.875rem;line-height:1.5;padding:.25rem .5rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.badge{font-size:66%;font-weight:600;line-height:1;display:inline-block;padding:.35rem .375rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;text-align:center;vertical-align:baseline;white-space:nowrap;border-radius:.375rem}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.875em;padding-left:.875em;border-radius:10rem}.badge-primary{color:#2643e9;background-color:#eaecfb}.badge-primary[href]:focus,.badge-primary[href]:hover{text-decoration:none;color:#fff;background-color:#2a44db}.badge-secondary{color:#cfe3f1;background-color:#fff}.badge-secondary[href]:focus,.badge-secondary[href]:hover{text-decoration:none;color:#212529;background-color:#cadeeb}.badge-success{color:#1aae6f;background-color:#b0eed3}.badge-success[href]:focus,.badge-success[href]:hover{text-decoration:none;color:#fff;background-color:#229c68}.badge-info{color:#03acca;background-color:#aaedf9}.badge-info[href]:focus,.badge-info[href]:hover{text-decoration:none;color:#fff;background-color:#0c9cb7}.badge-warning{color:#ff3709;background-color:#fee6e0}.badge-warning[href]:focus,.badge-warning[href]:hover{text-decoration:none;color:#fff;background-color:#f93305}.badge-danger{color:#f80031;background-color:#fdd1da}.badge-danger[href]:focus,.badge-danger[href]:hover{text-decoration:none;color:#fff;background-color:#e30b36}.badge-light{color:#879cb0;background-color:#fff}.badge-light[href]:focus,.badge-light[href]:hover{text-decoration:none;color:#fff;background-color:#8b96a2}.badge-dark{color:#090c0e;background-color:#6a7783}.badge-dark[href]:focus,.badge-dark[href]:hover{text-decoration:none;color:#fff;background-color:#060607}.badge-default{color:#091428;background-color:#4172c6}.badge-default[href]:focus,.badge-default[href]:hover{text-decoration:none;color:#fff;background-color:#09111e}.badge-white{color:#e8e3e3;background-color:#fff}.badge-white[href]:focus,.badge-white[href]:hover{text-decoration:none;color:#212529;background-color:#e0e0e0}.badge-neutral{color:#e8e3e3;background-color:#fff}.badge-neutral[href]:focus,.badge-neutral[href]:hover{text-decoration:none;color:#212529;background-color:#e0e0e0}.badge-darker{color:#000;background-color:#525252}.badge-darker[href]:focus,.badge-darker[href]:hover{text-decoration:none;color:#fff;background-color:#000}.jumbotron{margin-bottom:2rem;padding:2rem 1rem;border-radius:.4375rem;background-color:#e9ecef}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;margin-bottom:1rem;padding:1rem 1.5rem;border:1px solid transparent;border-radius:.375rem}.alert-heading{color:inherit}.alert-link{font-weight:600}.alert-dismissible{padding-right:4.5rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:1rem 1.5rem;color:inherit}.alert-primary{color:#fff;border-color:#7889e8;background-color:#7889e8}.alert-primary a{font-weight:600;color:#1d32aa}.alert-primary a:hover{color:#fff}.alert-primary hr{border-top-color:#6276e4}.alert-primary .alert-link{color:#324cdd}.alert-secondary{color:#212529;border-color:#f8fbfc;background-color:#f8fbfc}.alert-secondary a{font-weight:600;color:#8dbece}.alert-secondary a:hover{color:#212529}.alert-secondary hr{border-top-color:#e6f1f4}.alert-secondary .alert-link{color:#d2e3ee}.alert-success{color:#fff;border-color:#4fd69c;background-color:#4fd69c}.alert-success a{font-weight:600;color:#1a724c}.alert-success a:hover{color:#fff}.alert-success hr{border-top-color:#3ad190}.alert-success .alert-link{color:#24a46d}.alert-info{color:#fff;border-color:#37d5f2;background-color:#37d5f2}.alert-info a{font-weight:600;color:#097487}.alert-info a:hover{color:#fff}.alert-info hr{border-top-color:#1fd0f0}.alert-info .alert-link{color:#0da5c0}.alert-warning{color:#fff;border-color:#fc7c5f;background-color:#fc7c5f}.alert-warning a{font-weight:600;color:#be2604}.alert-warning a:hover{color:#fff}.alert-warning hr{border-top-color:#fc6846}.alert-warning .alert-link{color:#fa3a0e}.alert-danger{color:#fff;border-color:#f75676;background-color:#f75676}.alert-danger a{font-weight:600;color:#ac0829}.alert-danger a:hover{color:#fff}.alert-danger hr{border-top-color:#f63e62}.alert-danger .alert-link{color:#ec0c38}.alert-light{color:#fff;border-color:#bac1c8;background-color:#bac1c8}.alert-light a{font-weight:600;color:#677582}.alert-light a:hover{color:#fff}.alert-light hr{border-top-color:#acb4bd}.alert-light .alert-link{color:#919ca6}.alert-dark{color:#fff;border-color:#45484b;background-color:#45484b}.alert-dark a{font-weight:600;color:#000}.alert-dark a:hover{color:#fff}.alert-dark hr{border-top-color:#393b3e}.alert-dark .alert-link{color:#0a0c0d}.alert-default{color:#fff;border-color:#3c4d69;background-color:#3c4d69}.alert-default a{font-weight:600;color:#040608}.alert-default a:hover{color:#fff}.alert-default hr{border-top-color:#334159}.alert-default .alert-link{color:#0b1526}.alert-white{color:#212529;border-color:#fff;background-color:#fff}.alert-white a{font-weight:600;color:#b3b3b3}.alert-white a:hover{color:#212529}.alert-white hr{border-top-color:#f2f2f2}.alert-white .alert-link{color:#e6e6e6}.alert-neutral{color:#212529;border-color:#fff;background-color:#fff}.alert-neutral a{font-weight:600;color:#b3b3b3}.alert-neutral a:hover{color:#212529}.alert-neutral hr{border-top-color:#f2f2f2}.alert-neutral .alert-link{color:#e6e6e6}.alert-darker{color:#fff;border-color:#292929;background-color:#292929}.alert-darker a{font-weight:600;color:#000}.alert-darker a:hover{color:#fff}.alert-darker hr{border-top-color:#1c1c1c}.alert-darker .alert-link{color:#000}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{font-size:.75rem;display:flex;overflow:hidden;height:1rem;border-radius:.375rem;background-color:#e9ecef;box-shadow:inset 0 .1rem .1rem rgba(0,0,0,.1)}.progress-bar{display:flex;flex-direction:column;transition:width .6s ease;text-align:center;white-space:nowrap;color:#fff;background-color:#5e72e4;justify-content:center}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1 1}.list-group{display:flex;flex-direction:column;margin-bottom:0;padding-left:0}.list-group-item-action{width:100%;text-align:inherit;color:#525f7f}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;text-decoration:none;color:#525f7f;background-color:#f6f9fc}.list-group-item-action:active{color:#525f7f;background-color:#e9ecef}.list-group-item{position:relative;display:block;margin-bottom:-1px;padding:1rem 1rem;border:1px solid #e9ecef;background-color:#fff}.list-group-item:first-child{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.list-group-item.disabled,.list-group-item:disabled{pointer-events:none;color:#8898aa;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;border-color:#5e72e4;background-color:#5e72e4}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.375rem;border-top-right-radius:0;border-bottom-left-radius:.375rem}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.375rem;border-top-right-radius:0;border-bottom-left-radius:.375rem}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.375rem;border-top-right-radius:0;border-bottom-left-radius:.375rem}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.375rem;border-top-right-radius:0;border-bottom-left-radius:.375rem}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.375rem;border-top-right-radius:0;border-bottom-left-radius:.375rem}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#313b77;background-color:#d2d8f7}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#313b77;background-color:#bcc5f3}.list-group-item-primary.list-group-item-action.active{color:#fff;border-color:#313b77;background-color:#313b77}.list-group-item-secondary{color:#808283;background-color:#fdfefe}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#808283;background-color:#ecf6f6}.list-group-item-secondary.list-group-item-action.active{color:#fff;border-color:#808283;background-color:#808283}.list-group-item-success{color:#176b47;background-color:#c4f1de}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#176b47;background-color:#afecd2}.list-group-item-success.list-group-item-action.active{color:#fff;border-color:#176b47;background-color:#176b47}.list-group-item-info{color:#096b7c;background-color:#bcf1fb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#096b7c;background-color:#a4ecfa}.list-group-item-info.list-group-item-action.active{color:#fff;border-color:#096b7c;background-color:#096b7c}.list-group-item-warning{color:#833321;background-color:#fed3ca}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#833321;background-color:#febeb1}.list-group-item-warning.list-group-item-action.active{color:#fff;border-color:#833321;background-color:#833321}.list-group-item-danger{color:#7f1c30;background-color:#fcc7d1}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#7f1c30;background-color:#fbafbd}.list-group-item-danger.list-group-item-action.active{color:#fff;border-color:#7f1c30;background-color:#7f1c30}.list-group-item-light{color:#5a5e62;background-color:#e8eaed}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#5a5e62;background-color:#dadde2}.list-group-item-light.list-group-item-action.active{color:#fff;border-color:#5a5e62;background-color:#5a5e62}.list-group-item-dark{color:#111315;background-color:#c1c2c3}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#111315;background-color:#b4b5b6}.list-group-item-dark.list-group-item-action.active{color:#fff;border-color:#111315;background-color:#111315}.list-group-item-default{color:#0c1628;background-color:#bec4cd}.list-group-item-default.list-group-item-action:focus,.list-group-item-default.list-group-item-action:hover{color:#0c1628;background-color:#b0b7c2}.list-group-item-default.list-group-item-action.active{color:#fff;border-color:#0c1628;background-color:#0c1628}.list-group-item-white{color:#858585;background-color:#fff}.list-group-item-white.list-group-item-action:focus,.list-group-item-white.list-group-item-action:hover{color:#858585;background-color:#f2f2f2}.list-group-item-white.list-group-item-action.active{color:#fff;border-color:#858585;background-color:#858585}.list-group-item-neutral{color:#858585;background-color:#fff}.list-group-item-neutral.list-group-item-action:focus,.list-group-item-neutral.list-group-item-action:hover{color:#858585;background-color:#f2f2f2}.list-group-item-neutral.list-group-item-action.active{color:#fff;border-color:#858585;background-color:#858585}.list-group-item-darker{color:#000;background-color:#b8b8b8}.list-group-item-darker.list-group-item-action:focus,.list-group-item-darker.list-group-item-action:hover{color:#000;background-color:#ababab}.list-group-item-darker.list-group-item-action.active{color:#fff;border-color:#000;background-color:#000}.close{font-size:1.5rem;font-weight:600;line-height:1;float:right;opacity:.5;color:rgba(0,0,0,.6);text-shadow:none}@media (max-width:1200px){.close{font-size:calc(1.275rem + .3vw)}}.close:hover{text-decoration:none;color:rgba(0,0,0,.6)}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;border:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;z-index:1050;top:0;left:0;display:none;overflow:hidden;width:100%;height:100%;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{overflow:hidden;max-height:calc(100vh - 1rem)}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;min-height:calc(100% - 1rem);align-items:center}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:''}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;height:100%;justify-content:center}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;border:0 solid rgba(0,0,0,.2);border-radius:.4375rem;outline:0;background-color:#fff;background-clip:padding-box;box-shadow:0 15px 35px rgba(50,50,93,.2),0 5px 15px rgba(0,0,0,.17)}.modal-backdrop{position:fixed;z-index:1040;top:0;left:0;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.16}.modal-header{display:flex;padding:1.25rem;border-bottom:0 solid #e9ecef;border-top-left-radius:.4375rem;border-top-right-radius:.4375rem;align-items:flex-start;justify-content:space-between}.modal-header .close{margin:-1rem -1rem -1rem auto;padding:1.25rem}.modal-title{line-height:1.1;margin-bottom:0}.modal-body{position:relative;padding:1.5rem;flex:1 1 auto}.modal-footer{display:flex;padding:1.5rem;border-top:0 solid #e9ecef;border-bottom-right-radius:.4375rem;border-bottom-left-radius:.4375rem;align-items:center;justify-content:flex-end}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;overflow:scroll;width:50px;height:50px}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-content{box-shadow:0 15px 35px rgba(50,50,93,.2),0 5px 15px rgba(0,0,0,.17)}.modal-sm{max-width:380px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{font-family:Open Sans,sans-serif;font-size:.875rem;font-weight:400;font-style:normal;line-height:1.5;position:absolute;z-index:1070;display:block;margin:0;text-align:left;text-align:start;white-space:normal;text-decoration:none;letter-spacing:normal;word-spacing:normal;text-transform:none;word-wrap:break-word;word-break:normal;opacity:0;text-shadow:none;line-break:auto}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:'';border-style:solid;border-color:transparent}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;text-align:center;color:#fff;border-radius:.375rem;background-color:#000}.popover{font-family:Open Sans,sans-serif;font-size:.875rem;font-weight:400;font-style:normal;line-height:1.5;position:absolute;z-index:1060;top:0;left:0;display:block;max-width:276px;text-align:left;text-align:start;white-space:normal;text-decoration:none;letter-spacing:normal;word-spacing:normal;text-transform:none;word-wrap:break-word;word-break:normal;border:1px solid rgba(0,0,0,.05);border-radius:.4375rem;background-color:#fff;background-clip:padding-box;box-shadow:0 .5rem 2rem 0 rgba(0,0,0,.2);text-shadow:none;line-break:auto}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .4375rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:'';border-style:solid;border-color:transparent}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:transparent}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.4375rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:transparent}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:transparent}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:'';border-bottom:1px solid #fff}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.4375rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:transparent}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{font-size:1rem;margin-bottom:0;padding:.5rem .95rem;color:#32325d;border-bottom:1px solid #f2f2f2;border-top-left-radius:calc(.4375rem - 1px);border-top-right-radius:calc(.4375rem - 1px);background-color:#fff}.popover-header:empty{display:none}.popover-body{padding:.5rem .95rem;color:#525f7f}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner::after{display:block;clear:both;content:''}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{transition-property:opacity;transform:none;opacity:0}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;transition:0s .6s opacity;opacity:0}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;z-index:1;top:0;bottom:0;display:flex;width:15%;transition:opacity .15s ease;text-align:center;opacity:.5;color:#fff;align-items:center;justify-content:center}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{text-decoration:none;opacity:.9;color:#fff;outline:0}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url('data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' viewBox=\'0 0 8 8\'%3e%3cpath d=\'M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z\'/%3e%3c/svg%3e')}.carousel-control-next-icon{background-image:url('data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' viewBox=\'0 0 8 8\'%3e%3cpath d=\'M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z\'/%3e%3c/svg%3e')}.carousel-indicators{position:absolute;z-index:15;right:0;bottom:0;left:0;display:flex;margin-right:15%;margin-left:15%;padding-left:0;list-style:none;justify-content:center}.carousel-indicators li{box-sizing:content-box;width:30px;height:3px;margin-right:3px;margin-left:3px;cursor:pointer;transition:opacity .6s ease;text-indent:-999px;opacity:.5;border-top:10px solid transparent;border-bottom:10px solid transparent;background-color:#fff;background-clip:padding-box;flex:0 1 auto}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;z-index:10;right:15%;bottom:20px;left:15%;padding-top:20px;padding-bottom:20px;text-align:center;color:#fff}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#5e72e4!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#324cdd!important}.bg-secondary{background-color:#f7fafc!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#d2e3ee!important}.bg-success{background-color:#2dce89!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#24a46d!important}.bg-info{background-color:#11cdef!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#0da5c0!important}.bg-warning{background-color:#fb6340!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#fa3a0e!important}.bg-danger{background-color:#f5365c!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#ec0c38!important}.bg-light{background-color:#adb5bd!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#919ca6!important}.bg-dark{background-color:#212529!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#0a0c0d!important}.bg-default{background-color:#172b4d!important}a.bg-default:focus,a.bg-default:hover,button.bg-default:focus,button.bg-default:hover{background-color:#0b1526!important}.bg-white{background-color:#fff!important}a.bg-white:focus,a.bg-white:hover,button.bg-white:focus,button.bg-white:hover{background-color:#e6e6e6!important}.bg-neutral{background-color:#fff!important}a.bg-neutral:focus,a.bg-neutral:hover,button.bg-neutral:focus,button.bg-neutral:hover{background-color:#e6e6e6!important}.bg-darker{background-color:#000!important}a.bg-darker:focus,a.bg-darker:hover,button.bg-darker:focus,button.bg-darker:hover{background-color:#000!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #e9ecef!important}.border-top{border-top:1px solid #e9ecef!important}.border-right{border-right:1px solid #e9ecef!important}.border-bottom{border-bottom:1px solid #e9ecef!important}.border-left{border-left:1px solid #e9ecef!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#5e72e4!important}.border-secondary{border-color:#f7fafc!important}.border-success{border-color:#2dce89!important}.border-info{border-color:#11cdef!important}.border-warning{border-color:#fb6340!important}.border-danger{border-color:#f5365c!important}.border-light{border-color:#adb5bd!important}.border-dark{border-color:#212529!important}.border-default{border-color:#172b4d!important}.border-white{border-color:#fff!important}.border-neutral{border-color:#fff!important}.border-darker{border-color:#000!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.25rem!important}.rounded{border-radius:.375rem!important}.rounded-top{border-top-left-radius:.375rem!important;border-top-right-radius:.375rem!important}.rounded-right{border-top-right-radius:.375rem!important;border-bottom-right-radius:.375rem!important}.rounded-bottom{border-bottom-right-radius:.375rem!important;border-bottom-left-radius:.375rem!important}.rounded-left{border-top-left-radius:.375rem!important;border-bottom-left-radius:.375rem!important}.rounded-lg{border-radius:.4375rem!important}.avatar.rounded-circle img,.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:''}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;overflow:hidden;width:100%;padding:0}.embed-responsive::before{display:block;content:''}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.85714%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.embed-responsive-21by9::before{padding-top:42.85714%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;z-index:1030;top:0;right:0;left:0}.fixed-bottom{position:fixed;z-index:1030;right:0;bottom:0;left:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;z-index:1020;top:0}}.sr-only{position:absolute;overflow:hidden;clip:rect(0,0,0,0);width:1px;height:1px;padding:0;white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;overflow:visible;clip:auto;width:auto;height:auto;white-space:normal}.shadow-sm{box-shadow:0 0 .5rem rgba(136,152,170,.075)!important}.shadow{box-shadow:0 0 2rem 0 rgba(136,152,170,.15)!important}.shadow-lg{box-shadow:0 0 3rem rgba(136,152,170,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;content:'';pointer-events:auto;background-color:rgba(0,0,0,0)}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.m--9{margin:-10rem!important}.mt--9,.my--9{margin-top:-10rem!important}.mr--9,.mx--9{margin-right:-10rem!important}.mb--9,.my--9{margin-bottom:-10rem!important}.ml--9,.mx--9{margin-left:-10rem!important}.m--8{margin:-8rem!important}.mt--8,.my--8{margin-top:-8rem!important}.mr--8,.mx--8{margin-right:-8rem!important}.mb--8,.my--8{margin-bottom:-8rem!important}.ml--8,.mx--8{margin-left:-8rem!important}.m--7{margin:-6rem!important}.mt--7,.my--7{margin-top:-6rem!important}.mr--7,.mx--7{margin-right:-6rem!important}.mb--7,.my--7{margin-bottom:-6rem!important}.ml--7,.mx--7{margin-left:-6rem!important}.m--6{margin:-4.5rem!important}.mt--6,.my--6{margin-top:-4.5rem!important}.mr--6,.mx--6{margin-right:-4.5rem!important}.mb--6,.my--6{margin-bottom:-4.5rem!important}.ml--6,.mx--6{margin-left:-4.5rem!important}.m--5{margin:-3rem!important}.mt--5,.my--5{margin-top:-3rem!important}.mr--5,.mx--5{margin-right:-3rem!important}.mb--5,.my--5{margin-bottom:-3rem!important}.ml--5,.mx--5{margin-left:-3rem!important}.m--4{margin:-1.5rem!important}.mt--4,.my--4{margin-top:-1.5rem!important}.mr--4,.mx--4{margin-right:-1.5rem!important}.mb--4,.my--4{margin-bottom:-1.5rem!important}.ml--4,.mx--4{margin-left:-1.5rem!important}.m--3{margin:-1rem!important}.mt--3,.my--3{margin-top:-1rem!important}.mr--3,.mx--3{margin-right:-1rem!important}.mb--3,.my--3{margin-bottom:-1rem!important}.ml--3,.mx--3{margin-left:-1rem!important}.m--2{margin:-.5rem!important}.mt--2,.my--2{margin-top:-.5rem!important}.mr--2,.mx--2{margin-right:-.5rem!important}.mb--2,.my--2{margin-bottom:-.5rem!important}.ml--2,.mx--2{margin-left:-.5rem!important}.m--1{margin:-.25rem!important}.mt--1,.my--1{margin-top:-.25rem!important}.mr--1,.mx--1{margin-right:-.25rem!important}.mb--1,.my--1{margin-bottom:-.25rem!important}.ml--1,.mx--1{margin-left:-.25rem!important}.m-6{margin:4.5rem!important}.mt-6,.my-6{margin-top:4.5rem!important}.mr-6,.mx-6{margin-right:4.5rem!important}.mb-6,.my-6{margin-bottom:4.5rem!important}.ml-6,.mx-6{margin-left:4.5rem!important}.m-7{margin:6rem!important}.mt-7,.my-7{margin-top:6rem!important}.mr-7,.mx-7{margin-right:6rem!important}.mb-7,.my-7{margin-bottom:6rem!important}.ml-7,.mx-7{margin-left:6rem!important}.m-8{margin:8rem!important}.mt-8,.my-8{margin-top:8rem!important}.mr-8,.mx-8{margin-right:8rem!important}.mb-8,.my-8{margin-bottom:8rem!important}.ml-8,.mx-8{margin-left:8rem!important}.m-9{margin:10rem!important}.mt-9,.my-9{margin-top:10rem!important}.mr-9,.mx-9{margin-right:10rem!important}.mb-9,.my-9{margin-bottom:10rem!important}.ml-9,.mx-9{margin-left:10rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.p-6{padding:4.5rem!important}.pt-6,.py-6{padding-top:4.5rem!important}.pr-6,.px-6{padding-right:4.5rem!important}.pb-6,.py-6{padding-bottom:4.5rem!important}.pl-6,.px-6{padding-left:4.5rem!important}.p-7{padding:6rem!important}.pt-7,.py-7{padding-top:6rem!important}.pr-7,.px-7{padding-right:6rem!important}.pb-7,.py-7{padding-bottom:6rem!important}.pl-7,.px-7{padding-left:6rem!important}.p-8{padding:8rem!important}.pt-8,.py-8{padding-top:8rem!important}.pr-8,.px-8{padding-right:8rem!important}.pb-8,.py-8{padding-bottom:8rem!important}.pl-8,.px-8{padding-left:8rem!important}.p-9{padding:10rem!important}.pt-9,.py-9{padding-top:10rem!important}.pr-9,.px-9{padding-right:10rem!important}.pb-9,.py-9{padding-bottom:10rem!important}.pl-9,.px-9{padding-left:10rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-n-9{margin:10rem!important}.mt-n-9,.my-n-9{margin-top:10rem!important}.mr-n-9,.mx-n-9{margin-right:10rem!important}.mb-n-9,.my-n-9{margin-bottom:10rem!important}.ml-n-9,.mx-n-9{margin-left:10rem!important}.m-n-8{margin:8rem!important}.mt-n-8,.my-n-8{margin-top:8rem!important}.mr-n-8,.mx-n-8{margin-right:8rem!important}.mb-n-8,.my-n-8{margin-bottom:8rem!important}.ml-n-8,.mx-n-8{margin-left:8rem!important}.m-n-7{margin:6rem!important}.mt-n-7,.my-n-7{margin-top:6rem!important}.mr-n-7,.mx-n-7{margin-right:6rem!important}.mb-n-7,.my-n-7{margin-bottom:6rem!important}.ml-n-7,.mx-n-7{margin-left:6rem!important}.m-n-6{margin:4.5rem!important}.mt-n-6,.my-n-6{margin-top:4.5rem!important}.mr-n-6,.mx-n-6{margin-right:4.5rem!important}.mb-n-6,.my-n-6{margin-bottom:4.5rem!important}.ml-n-6,.mx-n-6{margin-left:4.5rem!important}.m-n-5{margin:3rem!important}.mt-n-5,.my-n-5{margin-top:3rem!important}.mr-n-5,.mx-n-5{margin-right:3rem!important}.mb-n-5,.my-n-5{margin-bottom:3rem!important}.ml-n-5,.mx-n-5{margin-left:3rem!important}.m-n-4{margin:1.5rem!important}.mt-n-4,.my-n-4{margin-top:1.5rem!important}.mr-n-4,.mx-n-4{margin-right:1.5rem!important}.mb-n-4,.my-n-4{margin-bottom:1.5rem!important}.ml-n-4,.mx-n-4{margin-left:1.5rem!important}.m-n-3{margin:1rem!important}.mt-n-3,.my-n-3{margin-top:1rem!important}.mr-n-3,.mx-n-3{margin-right:1rem!important}.mb-n-3,.my-n-3{margin-bottom:1rem!important}.ml-n-3,.mx-n-3{margin-left:1rem!important}.m-n-2{margin:.5rem!important}.mt-n-2,.my-n-2{margin-top:.5rem!important}.mr-n-2,.mx-n-2{margin-right:.5rem!important}.mb-n-2,.my-n-2{margin-bottom:.5rem!important}.ml-n-2,.mx-n-2{margin-left:.5rem!important}.m-n-1{margin:.25rem!important}.mt-n-1,.my-n-1{margin-top:.25rem!important}.mr-n-1,.mx-n-1{margin-right:.25rem!important}.mb-n-1,.my-n-1{margin-bottom:.25rem!important}.ml-n-1,.mx-n-1{margin-left:.25rem!important}.m-n6{margin:-4.5rem!important}.mt-n6,.my-n6{margin-top:-4.5rem!important}.mr-n6,.mx-n6{margin-right:-4.5rem!important}.mb-n6,.my-n6{margin-bottom:-4.5rem!important}.ml-n6,.mx-n6{margin-left:-4.5rem!important}.m-n7{margin:-6rem!important}.mt-n7,.my-n7{margin-top:-6rem!important}.mr-n7,.mx-n7{margin-right:-6rem!important}.mb-n7,.my-n7{margin-bottom:-6rem!important}.ml-n7,.mx-n7{margin-left:-6rem!important}.m-n8{margin:-8rem!important}.mt-n8,.my-n8{margin-top:-8rem!important}.mr-n8,.mx-n8{margin-right:-8rem!important}.mb-n8,.my-n8{margin-bottom:-8rem!important}.ml-n8,.mx-n8{margin-left:-8rem!important}.m-n9{margin:-10rem!important}.mt-n9,.my-n9{margin-top:-10rem!important}.mr-n9,.mx-n9{margin-right:-10rem!important}.mb-n9,.my-n9{margin-bottom:-10rem!important}.ml-n9,.mx-n9{margin-left:-10rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.m-sm--9{margin:-10rem!important}.mt-sm--9,.my-sm--9{margin-top:-10rem!important}.mr-sm--9,.mx-sm--9{margin-right:-10rem!important}.mb-sm--9,.my-sm--9{margin-bottom:-10rem!important}.ml-sm--9,.mx-sm--9{margin-left:-10rem!important}.m-sm--8{margin:-8rem!important}.mt-sm--8,.my-sm--8{margin-top:-8rem!important}.mr-sm--8,.mx-sm--8{margin-right:-8rem!important}.mb-sm--8,.my-sm--8{margin-bottom:-8rem!important}.ml-sm--8,.mx-sm--8{margin-left:-8rem!important}.m-sm--7{margin:-6rem!important}.mt-sm--7,.my-sm--7{margin-top:-6rem!important}.mr-sm--7,.mx-sm--7{margin-right:-6rem!important}.mb-sm--7,.my-sm--7{margin-bottom:-6rem!important}.ml-sm--7,.mx-sm--7{margin-left:-6rem!important}.m-sm--6{margin:-4.5rem!important}.mt-sm--6,.my-sm--6{margin-top:-4.5rem!important}.mr-sm--6,.mx-sm--6{margin-right:-4.5rem!important}.mb-sm--6,.my-sm--6{margin-bottom:-4.5rem!important}.ml-sm--6,.mx-sm--6{margin-left:-4.5rem!important}.m-sm--5{margin:-3rem!important}.mt-sm--5,.my-sm--5{margin-top:-3rem!important}.mr-sm--5,.mx-sm--5{margin-right:-3rem!important}.mb-sm--5,.my-sm--5{margin-bottom:-3rem!important}.ml-sm--5,.mx-sm--5{margin-left:-3rem!important}.m-sm--4{margin:-1.5rem!important}.mt-sm--4,.my-sm--4{margin-top:-1.5rem!important}.mr-sm--4,.mx-sm--4{margin-right:-1.5rem!important}.mb-sm--4,.my-sm--4{margin-bottom:-1.5rem!important}.ml-sm--4,.mx-sm--4{margin-left:-1.5rem!important}.m-sm--3{margin:-1rem!important}.mt-sm--3,.my-sm--3{margin-top:-1rem!important}.mr-sm--3,.mx-sm--3{margin-right:-1rem!important}.mb-sm--3,.my-sm--3{margin-bottom:-1rem!important}.ml-sm--3,.mx-sm--3{margin-left:-1rem!important}.m-sm--2{margin:-.5rem!important}.mt-sm--2,.my-sm--2{margin-top:-.5rem!important}.mr-sm--2,.mx-sm--2{margin-right:-.5rem!important}.mb-sm--2,.my-sm--2{margin-bottom:-.5rem!important}.ml-sm--2,.mx-sm--2{margin-left:-.5rem!important}.m-sm--1{margin:-.25rem!important}.mt-sm--1,.my-sm--1{margin-top:-.25rem!important}.mr-sm--1,.mx-sm--1{margin-right:-.25rem!important}.mb-sm--1,.my-sm--1{margin-bottom:-.25rem!important}.ml-sm--1,.mx-sm--1{margin-left:-.25rem!important}.m-sm-6{margin:4.5rem!important}.mt-sm-6,.my-sm-6{margin-top:4.5rem!important}.mr-sm-6,.mx-sm-6{margin-right:4.5rem!important}.mb-sm-6,.my-sm-6{margin-bottom:4.5rem!important}.ml-sm-6,.mx-sm-6{margin-left:4.5rem!important}.m-sm-7{margin:6rem!important}.mt-sm-7,.my-sm-7{margin-top:6rem!important}.mr-sm-7,.mx-sm-7{margin-right:6rem!important}.mb-sm-7,.my-sm-7{margin-bottom:6rem!important}.ml-sm-7,.mx-sm-7{margin-left:6rem!important}.m-sm-8{margin:8rem!important}.mt-sm-8,.my-sm-8{margin-top:8rem!important}.mr-sm-8,.mx-sm-8{margin-right:8rem!important}.mb-sm-8,.my-sm-8{margin-bottom:8rem!important}.ml-sm-8,.mx-sm-8{margin-left:8rem!important}.m-sm-9{margin:10rem!important}.mt-sm-9,.my-sm-9{margin-top:10rem!important}.mr-sm-9,.mx-sm-9{margin-right:10rem!important}.mb-sm-9,.my-sm-9{margin-bottom:10rem!important}.ml-sm-9,.mx-sm-9{margin-left:10rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.p-sm-6{padding:4.5rem!important}.pt-sm-6,.py-sm-6{padding-top:4.5rem!important}.pr-sm-6,.px-sm-6{padding-right:4.5rem!important}.pb-sm-6,.py-sm-6{padding-bottom:4.5rem!important}.pl-sm-6,.px-sm-6{padding-left:4.5rem!important}.p-sm-7{padding:6rem!important}.pt-sm-7,.py-sm-7{padding-top:6rem!important}.pr-sm-7,.px-sm-7{padding-right:6rem!important}.pb-sm-7,.py-sm-7{padding-bottom:6rem!important}.pl-sm-7,.px-sm-7{padding-left:6rem!important}.p-sm-8{padding:8rem!important}.pt-sm-8,.py-sm-8{padding-top:8rem!important}.pr-sm-8,.px-sm-8{padding-right:8rem!important}.pb-sm-8,.py-sm-8{padding-bottom:8rem!important}.pl-sm-8,.px-sm-8{padding-left:8rem!important}.p-sm-9{padding:10rem!important}.pt-sm-9,.py-sm-9{padding-top:10rem!important}.pr-sm-9,.px-sm-9{padding-right:10rem!important}.pb-sm-9,.py-sm-9{padding-bottom:10rem!important}.pl-sm-9,.px-sm-9{padding-left:10rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-n-9{margin:10rem!important}.mt-sm-n-9,.my-sm-n-9{margin-top:10rem!important}.mr-sm-n-9,.mx-sm-n-9{margin-right:10rem!important}.mb-sm-n-9,.my-sm-n-9{margin-bottom:10rem!important}.ml-sm-n-9,.mx-sm-n-9{margin-left:10rem!important}.m-sm-n-8{margin:8rem!important}.mt-sm-n-8,.my-sm-n-8{margin-top:8rem!important}.mr-sm-n-8,.mx-sm-n-8{margin-right:8rem!important}.mb-sm-n-8,.my-sm-n-8{margin-bottom:8rem!important}.ml-sm-n-8,.mx-sm-n-8{margin-left:8rem!important}.m-sm-n-7{margin:6rem!important}.mt-sm-n-7,.my-sm-n-7{margin-top:6rem!important}.mr-sm-n-7,.mx-sm-n-7{margin-right:6rem!important}.mb-sm-n-7,.my-sm-n-7{margin-bottom:6rem!important}.ml-sm-n-7,.mx-sm-n-7{margin-left:6rem!important}.m-sm-n-6{margin:4.5rem!important}.mt-sm-n-6,.my-sm-n-6{margin-top:4.5rem!important}.mr-sm-n-6,.mx-sm-n-6{margin-right:4.5rem!important}.mb-sm-n-6,.my-sm-n-6{margin-bottom:4.5rem!important}.ml-sm-n-6,.mx-sm-n-6{margin-left:4.5rem!important}.m-sm-n-5{margin:3rem!important}.mt-sm-n-5,.my-sm-n-5{margin-top:3rem!important}.mr-sm-n-5,.mx-sm-n-5{margin-right:3rem!important}.mb-sm-n-5,.my-sm-n-5{margin-bottom:3rem!important}.ml-sm-n-5,.mx-sm-n-5{margin-left:3rem!important}.m-sm-n-4{margin:1.5rem!important}.mt-sm-n-4,.my-sm-n-4{margin-top:1.5rem!important}.mr-sm-n-4,.mx-sm-n-4{margin-right:1.5rem!important}.mb-sm-n-4,.my-sm-n-4{margin-bottom:1.5rem!important}.ml-sm-n-4,.mx-sm-n-4{margin-left:1.5rem!important}.m-sm-n-3{margin:1rem!important}.mt-sm-n-3,.my-sm-n-3{margin-top:1rem!important}.mr-sm-n-3,.mx-sm-n-3{margin-right:1rem!important}.mb-sm-n-3,.my-sm-n-3{margin-bottom:1rem!important}.ml-sm-n-3,.mx-sm-n-3{margin-left:1rem!important}.m-sm-n-2{margin:.5rem!important}.mt-sm-n-2,.my-sm-n-2{margin-top:.5rem!important}.mr-sm-n-2,.mx-sm-n-2{margin-right:.5rem!important}.mb-sm-n-2,.my-sm-n-2{margin-bottom:.5rem!important}.ml-sm-n-2,.mx-sm-n-2{margin-left:.5rem!important}.m-sm-n-1{margin:.25rem!important}.mt-sm-n-1,.my-sm-n-1{margin-top:.25rem!important}.mr-sm-n-1,.mx-sm-n-1{margin-right:.25rem!important}.mb-sm-n-1,.my-sm-n-1{margin-bottom:.25rem!important}.ml-sm-n-1,.mx-sm-n-1{margin-left:.25rem!important}.m-sm-n6{margin:-4.5rem!important}.mt-sm-n6,.my-sm-n6{margin-top:-4.5rem!important}.mr-sm-n6,.mx-sm-n6{margin-right:-4.5rem!important}.mb-sm-n6,.my-sm-n6{margin-bottom:-4.5rem!important}.ml-sm-n6,.mx-sm-n6{margin-left:-4.5rem!important}.m-sm-n7{margin:-6rem!important}.mt-sm-n7,.my-sm-n7{margin-top:-6rem!important}.mr-sm-n7,.mx-sm-n7{margin-right:-6rem!important}.mb-sm-n7,.my-sm-n7{margin-bottom:-6rem!important}.ml-sm-n7,.mx-sm-n7{margin-left:-6rem!important}.m-sm-n8{margin:-8rem!important}.mt-sm-n8,.my-sm-n8{margin-top:-8rem!important}.mr-sm-n8,.mx-sm-n8{margin-right:-8rem!important}.mb-sm-n8,.my-sm-n8{margin-bottom:-8rem!important}.ml-sm-n8,.mx-sm-n8{margin-left:-8rem!important}.m-sm-n9{margin:-10rem!important}.mt-sm-n9,.my-sm-n9{margin-top:-10rem!important}.mr-sm-n9,.mx-sm-n9{margin-right:-10rem!important}.mb-sm-n9,.my-sm-n9{margin-bottom:-10rem!important}.ml-sm-n9,.mx-sm-n9{margin-left:-10rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.m-md--9{margin:-10rem!important}.mt-md--9,.my-md--9{margin-top:-10rem!important}.mr-md--9,.mx-md--9{margin-right:-10rem!important}.mb-md--9,.my-md--9{margin-bottom:-10rem!important}.ml-md--9,.mx-md--9{margin-left:-10rem!important}.m-md--8{margin:-8rem!important}.mt-md--8,.my-md--8{margin-top:-8rem!important}.mr-md--8,.mx-md--8{margin-right:-8rem!important}.mb-md--8,.my-md--8{margin-bottom:-8rem!important}.ml-md--8,.mx-md--8{margin-left:-8rem!important}.m-md--7{margin:-6rem!important}.mt-md--7,.my-md--7{margin-top:-6rem!important}.mr-md--7,.mx-md--7{margin-right:-6rem!important}.mb-md--7,.my-md--7{margin-bottom:-6rem!important}.ml-md--7,.mx-md--7{margin-left:-6rem!important}.m-md--6{margin:-4.5rem!important}.mt-md--6,.my-md--6{margin-top:-4.5rem!important}.mr-md--6,.mx-md--6{margin-right:-4.5rem!important}.mb-md--6,.my-md--6{margin-bottom:-4.5rem!important}.ml-md--6,.mx-md--6{margin-left:-4.5rem!important}.m-md--5{margin:-3rem!important}.mt-md--5,.my-md--5{margin-top:-3rem!important}.mr-md--5,.mx-md--5{margin-right:-3rem!important}.mb-md--5,.my-md--5{margin-bottom:-3rem!important}.ml-md--5,.mx-md--5{margin-left:-3rem!important}.m-md--4{margin:-1.5rem!important}.mt-md--4,.my-md--4{margin-top:-1.5rem!important}.mr-md--4,.mx-md--4{margin-right:-1.5rem!important}.mb-md--4,.my-md--4{margin-bottom:-1.5rem!important}.ml-md--4,.mx-md--4{margin-left:-1.5rem!important}.m-md--3{margin:-1rem!important}.mt-md--3,.my-md--3{margin-top:-1rem!important}.mr-md--3,.mx-md--3{margin-right:-1rem!important}.mb-md--3,.my-md--3{margin-bottom:-1rem!important}.ml-md--3,.mx-md--3{margin-left:-1rem!important}.m-md--2{margin:-.5rem!important}.mt-md--2,.my-md--2{margin-top:-.5rem!important}.mr-md--2,.mx-md--2{margin-right:-.5rem!important}.mb-md--2,.my-md--2{margin-bottom:-.5rem!important}.ml-md--2,.mx-md--2{margin-left:-.5rem!important}.m-md--1{margin:-.25rem!important}.mt-md--1,.my-md--1{margin-top:-.25rem!important}.mr-md--1,.mx-md--1{margin-right:-.25rem!important}.mb-md--1,.my-md--1{margin-bottom:-.25rem!important}.ml-md--1,.mx-md--1{margin-left:-.25rem!important}.m-md-6{margin:4.5rem!important}.mt-md-6,.my-md-6{margin-top:4.5rem!important}.mr-md-6,.mx-md-6{margin-right:4.5rem!important}.mb-md-6,.my-md-6{margin-bottom:4.5rem!important}.ml-md-6,.mx-md-6{margin-left:4.5rem!important}.m-md-7{margin:6rem!important}.mt-md-7,.my-md-7{margin-top:6rem!important}.mr-md-7,.mx-md-7{margin-right:6rem!important}.mb-md-7,.my-md-7{margin-bottom:6rem!important}.ml-md-7,.mx-md-7{margin-left:6rem!important}.m-md-8{margin:8rem!important}.mt-md-8,.my-md-8{margin-top:8rem!important}.mr-md-8,.mx-md-8{margin-right:8rem!important}.mb-md-8,.my-md-8{margin-bottom:8rem!important}.ml-md-8,.mx-md-8{margin-left:8rem!important}.m-md-9{margin:10rem!important}.mt-md-9,.my-md-9{margin-top:10rem!important}.mr-md-9,.mx-md-9{margin-right:10rem!important}.mb-md-9,.my-md-9{margin-bottom:10rem!important}.ml-md-9,.mx-md-9{margin-left:10rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.p-md-6{padding:4.5rem!important}.pt-md-6,.py-md-6{padding-top:4.5rem!important}.pr-md-6,.px-md-6{padding-right:4.5rem!important}.pb-md-6,.py-md-6{padding-bottom:4.5rem!important}.pl-md-6,.px-md-6{padding-left:4.5rem!important}.p-md-7{padding:6rem!important}.pt-md-7,.py-md-7{padding-top:6rem!important}.pr-md-7,.px-md-7{padding-right:6rem!important}.pb-md-7,.py-md-7{padding-bottom:6rem!important}.pl-md-7,.px-md-7{padding-left:6rem!important}.p-md-8{padding:8rem!important}.pt-md-8,.py-md-8{padding-top:8rem!important}.pr-md-8,.px-md-8{padding-right:8rem!important}.pb-md-8,.py-md-8{padding-bottom:8rem!important}.pl-md-8,.px-md-8{padding-left:8rem!important}.p-md-9{padding:10rem!important}.pt-md-9,.py-md-9{padding-top:10rem!important}.pr-md-9,.px-md-9{padding-right:10rem!important}.pb-md-9,.py-md-9{padding-bottom:10rem!important}.pl-md-9,.px-md-9{padding-left:10rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-n-9{margin:10rem!important}.mt-md-n-9,.my-md-n-9{margin-top:10rem!important}.mr-md-n-9,.mx-md-n-9{margin-right:10rem!important}.mb-md-n-9,.my-md-n-9{margin-bottom:10rem!important}.ml-md-n-9,.mx-md-n-9{margin-left:10rem!important}.m-md-n-8{margin:8rem!important}.mt-md-n-8,.my-md-n-8{margin-top:8rem!important}.mr-md-n-8,.mx-md-n-8{margin-right:8rem!important}.mb-md-n-8,.my-md-n-8{margin-bottom:8rem!important}.ml-md-n-8,.mx-md-n-8{margin-left:8rem!important}.m-md-n-7{margin:6rem!important}.mt-md-n-7,.my-md-n-7{margin-top:6rem!important}.mr-md-n-7,.mx-md-n-7{margin-right:6rem!important}.mb-md-n-7,.my-md-n-7{margin-bottom:6rem!important}.ml-md-n-7,.mx-md-n-7{margin-left:6rem!important}.m-md-n-6{margin:4.5rem!important}.mt-md-n-6,.my-md-n-6{margin-top:4.5rem!important}.mr-md-n-6,.mx-md-n-6{margin-right:4.5rem!important}.mb-md-n-6,.my-md-n-6{margin-bottom:4.5rem!important}.ml-md-n-6,.mx-md-n-6{margin-left:4.5rem!important}.m-md-n-5{margin:3rem!important}.mt-md-n-5,.my-md-n-5{margin-top:3rem!important}.mr-md-n-5,.mx-md-n-5{margin-right:3rem!important}.mb-md-n-5,.my-md-n-5{margin-bottom:3rem!important}.ml-md-n-5,.mx-md-n-5{margin-left:3rem!important}.m-md-n-4{margin:1.5rem!important}.mt-md-n-4,.my-md-n-4{margin-top:1.5rem!important}.mr-md-n-4,.mx-md-n-4{margin-right:1.5rem!important}.mb-md-n-4,.my-md-n-4{margin-bottom:1.5rem!important}.ml-md-n-4,.mx-md-n-4{margin-left:1.5rem!important}.m-md-n-3{margin:1rem!important}.mt-md-n-3,.my-md-n-3{margin-top:1rem!important}.mr-md-n-3,.mx-md-n-3{margin-right:1rem!important}.mb-md-n-3,.my-md-n-3{margin-bottom:1rem!important}.ml-md-n-3,.mx-md-n-3{margin-left:1rem!important}.m-md-n-2{margin:.5rem!important}.mt-md-n-2,.my-md-n-2{margin-top:.5rem!important}.mr-md-n-2,.mx-md-n-2{margin-right:.5rem!important}.mb-md-n-2,.my-md-n-2{margin-bottom:.5rem!important}.ml-md-n-2,.mx-md-n-2{margin-left:.5rem!important}.m-md-n-1{margin:.25rem!important}.mt-md-n-1,.my-md-n-1{margin-top:.25rem!important}.mr-md-n-1,.mx-md-n-1{margin-right:.25rem!important}.mb-md-n-1,.my-md-n-1{margin-bottom:.25rem!important}.ml-md-n-1,.mx-md-n-1{margin-left:.25rem!important}.m-md-n6{margin:-4.5rem!important}.mt-md-n6,.my-md-n6{margin-top:-4.5rem!important}.mr-md-n6,.mx-md-n6{margin-right:-4.5rem!important}.mb-md-n6,.my-md-n6{margin-bottom:-4.5rem!important}.ml-md-n6,.mx-md-n6{margin-left:-4.5rem!important}.m-md-n7{margin:-6rem!important}.mt-md-n7,.my-md-n7{margin-top:-6rem!important}.mr-md-n7,.mx-md-n7{margin-right:-6rem!important}.mb-md-n7,.my-md-n7{margin-bottom:-6rem!important}.ml-md-n7,.mx-md-n7{margin-left:-6rem!important}.m-md-n8{margin:-8rem!important}.mt-md-n8,.my-md-n8{margin-top:-8rem!important}.mr-md-n8,.mx-md-n8{margin-right:-8rem!important}.mb-md-n8,.my-md-n8{margin-bottom:-8rem!important}.ml-md-n8,.mx-md-n8{margin-left:-8rem!important}.m-md-n9{margin:-10rem!important}.mt-md-n9,.my-md-n9{margin-top:-10rem!important}.mr-md-n9,.mx-md-n9{margin-right:-10rem!important}.mb-md-n9,.my-md-n9{margin-bottom:-10rem!important}.ml-md-n9,.mx-md-n9{margin-left:-10rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.m-lg--9{margin:-10rem!important}.mt-lg--9,.my-lg--9{margin-top:-10rem!important}.mr-lg--9,.mx-lg--9{margin-right:-10rem!important}.mb-lg--9,.my-lg--9{margin-bottom:-10rem!important}.ml-lg--9,.mx-lg--9{margin-left:-10rem!important}.m-lg--8{margin:-8rem!important}.mt-lg--8,.my-lg--8{margin-top:-8rem!important}.mr-lg--8,.mx-lg--8{margin-right:-8rem!important}.mb-lg--8,.my-lg--8{margin-bottom:-8rem!important}.ml-lg--8,.mx-lg--8{margin-left:-8rem!important}.m-lg--7{margin:-6rem!important}.mt-lg--7,.my-lg--7{margin-top:-6rem!important}.mr-lg--7,.mx-lg--7{margin-right:-6rem!important}.mb-lg--7,.my-lg--7{margin-bottom:-6rem!important}.ml-lg--7,.mx-lg--7{margin-left:-6rem!important}.m-lg--6{margin:-4.5rem!important}.mt-lg--6,.my-lg--6{margin-top:-4.5rem!important}.mr-lg--6,.mx-lg--6{margin-right:-4.5rem!important}.mb-lg--6,.my-lg--6{margin-bottom:-4.5rem!important}.ml-lg--6,.mx-lg--6{margin-left:-4.5rem!important}.m-lg--5{margin:-3rem!important}.mt-lg--5,.my-lg--5{margin-top:-3rem!important}.mr-lg--5,.mx-lg--5{margin-right:-3rem!important}.mb-lg--5,.my-lg--5{margin-bottom:-3rem!important}.ml-lg--5,.mx-lg--5{margin-left:-3rem!important}.m-lg--4{margin:-1.5rem!important}.mt-lg--4,.my-lg--4{margin-top:-1.5rem!important}.mr-lg--4,.mx-lg--4{margin-right:-1.5rem!important}.mb-lg--4,.my-lg--4{margin-bottom:-1.5rem!important}.ml-lg--4,.mx-lg--4{margin-left:-1.5rem!important}.m-lg--3{margin:-1rem!important}.mt-lg--3,.my-lg--3{margin-top:-1rem!important}.mr-lg--3,.mx-lg--3{margin-right:-1rem!important}.mb-lg--3,.my-lg--3{margin-bottom:-1rem!important}.ml-lg--3,.mx-lg--3{margin-left:-1rem!important}.m-lg--2{margin:-.5rem!important}.mt-lg--2,.my-lg--2{margin-top:-.5rem!important}.mr-lg--2,.mx-lg--2{margin-right:-.5rem!important}.mb-lg--2,.my-lg--2{margin-bottom:-.5rem!important}.ml-lg--2,.mx-lg--2{margin-left:-.5rem!important}.m-lg--1{margin:-.25rem!important}.mt-lg--1,.my-lg--1{margin-top:-.25rem!important}.mr-lg--1,.mx-lg--1{margin-right:-.25rem!important}.mb-lg--1,.my-lg--1{margin-bottom:-.25rem!important}.ml-lg--1,.mx-lg--1{margin-left:-.25rem!important}.m-lg-6{margin:4.5rem!important}.mt-lg-6,.my-lg-6{margin-top:4.5rem!important}.mr-lg-6,.mx-lg-6{margin-right:4.5rem!important}.mb-lg-6,.my-lg-6{margin-bottom:4.5rem!important}.ml-lg-6,.mx-lg-6{margin-left:4.5rem!important}.m-lg-7{margin:6rem!important}.mt-lg-7,.my-lg-7{margin-top:6rem!important}.mr-lg-7,.mx-lg-7{margin-right:6rem!important}.mb-lg-7,.my-lg-7{margin-bottom:6rem!important}.ml-lg-7,.mx-lg-7{margin-left:6rem!important}.m-lg-8{margin:8rem!important}.mt-lg-8,.my-lg-8{margin-top:8rem!important}.mr-lg-8,.mx-lg-8{margin-right:8rem!important}.mb-lg-8,.my-lg-8{margin-bottom:8rem!important}.ml-lg-8,.mx-lg-8{margin-left:8rem!important}.m-lg-9{margin:10rem!important}.mt-lg-9,.my-lg-9{margin-top:10rem!important}.mr-lg-9,.mx-lg-9{margin-right:10rem!important}.mb-lg-9,.my-lg-9{margin-bottom:10rem!important}.ml-lg-9,.mx-lg-9{margin-left:10rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.p-lg-6{padding:4.5rem!important}.pt-lg-6,.py-lg-6{padding-top:4.5rem!important}.pr-lg-6,.px-lg-6{padding-right:4.5rem!important}.pb-lg-6,.py-lg-6{padding-bottom:4.5rem!important}.pl-lg-6,.px-lg-6{padding-left:4.5rem!important}.p-lg-7{padding:6rem!important}.pt-lg-7,.py-lg-7{padding-top:6rem!important}.pr-lg-7,.px-lg-7{padding-right:6rem!important}.pb-lg-7,.py-lg-7{padding-bottom:6rem!important}.pl-lg-7,.px-lg-7{padding-left:6rem!important}.p-lg-8{padding:8rem!important}.pt-lg-8,.py-lg-8{padding-top:8rem!important}.pr-lg-8,.px-lg-8{padding-right:8rem!important}.pb-lg-8,.py-lg-8{padding-bottom:8rem!important}.pl-lg-8,.px-lg-8{padding-left:8rem!important}.p-lg-9{padding:10rem!important}.pt-lg-9,.py-lg-9{padding-top:10rem!important}.pr-lg-9,.px-lg-9{padding-right:10rem!important}.pb-lg-9,.py-lg-9{padding-bottom:10rem!important}.pl-lg-9,.px-lg-9{padding-left:10rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-n-9{margin:10rem!important}.mt-lg-n-9,.my-lg-n-9{margin-top:10rem!important}.mr-lg-n-9,.mx-lg-n-9{margin-right:10rem!important}.mb-lg-n-9,.my-lg-n-9{margin-bottom:10rem!important}.ml-lg-n-9,.mx-lg-n-9{margin-left:10rem!important}.m-lg-n-8{margin:8rem!important}.mt-lg-n-8,.my-lg-n-8{margin-top:8rem!important}.mr-lg-n-8,.mx-lg-n-8{margin-right:8rem!important}.mb-lg-n-8,.my-lg-n-8{margin-bottom:8rem!important}.ml-lg-n-8,.mx-lg-n-8{margin-left:8rem!important}.m-lg-n-7{margin:6rem!important}.mt-lg-n-7,.my-lg-n-7{margin-top:6rem!important}.mr-lg-n-7,.mx-lg-n-7{margin-right:6rem!important}.mb-lg-n-7,.my-lg-n-7{margin-bottom:6rem!important}.ml-lg-n-7,.mx-lg-n-7{margin-left:6rem!important}.m-lg-n-6{margin:4.5rem!important}.mt-lg-n-6,.my-lg-n-6{margin-top:4.5rem!important}.mr-lg-n-6,.mx-lg-n-6{margin-right:4.5rem!important}.mb-lg-n-6,.my-lg-n-6{margin-bottom:4.5rem!important}.ml-lg-n-6,.mx-lg-n-6{margin-left:4.5rem!important}.m-lg-n-5{margin:3rem!important}.mt-lg-n-5,.my-lg-n-5{margin-top:3rem!important}.mr-lg-n-5,.mx-lg-n-5{margin-right:3rem!important}.mb-lg-n-5,.my-lg-n-5{margin-bottom:3rem!important}.ml-lg-n-5,.mx-lg-n-5{margin-left:3rem!important}.m-lg-n-4{margin:1.5rem!important}.mt-lg-n-4,.my-lg-n-4{margin-top:1.5rem!important}.mr-lg-n-4,.mx-lg-n-4{margin-right:1.5rem!important}.mb-lg-n-4,.my-lg-n-4{margin-bottom:1.5rem!important}.ml-lg-n-4,.mx-lg-n-4{margin-left:1.5rem!important}.m-lg-n-3{margin:1rem!important}.mt-lg-n-3,.my-lg-n-3{margin-top:1rem!important}.mr-lg-n-3,.mx-lg-n-3{margin-right:1rem!important}.mb-lg-n-3,.my-lg-n-3{margin-bottom:1rem!important}.ml-lg-n-3,.mx-lg-n-3{margin-left:1rem!important}.m-lg-n-2{margin:.5rem!important}.mt-lg-n-2,.my-lg-n-2{margin-top:.5rem!important}.mr-lg-n-2,.mx-lg-n-2{margin-right:.5rem!important}.mb-lg-n-2,.my-lg-n-2{margin-bottom:.5rem!important}.ml-lg-n-2,.mx-lg-n-2{margin-left:.5rem!important}.m-lg-n-1{margin:.25rem!important}.mt-lg-n-1,.my-lg-n-1{margin-top:.25rem!important}.mr-lg-n-1,.mx-lg-n-1{margin-right:.25rem!important}.mb-lg-n-1,.my-lg-n-1{margin-bottom:.25rem!important}.ml-lg-n-1,.mx-lg-n-1{margin-left:.25rem!important}.m-lg-n6{margin:-4.5rem!important}.mt-lg-n6,.my-lg-n6{margin-top:-4.5rem!important}.mr-lg-n6,.mx-lg-n6{margin-right:-4.5rem!important}.mb-lg-n6,.my-lg-n6{margin-bottom:-4.5rem!important}.ml-lg-n6,.mx-lg-n6{margin-left:-4.5rem!important}.m-lg-n7{margin:-6rem!important}.mt-lg-n7,.my-lg-n7{margin-top:-6rem!important}.mr-lg-n7,.mx-lg-n7{margin-right:-6rem!important}.mb-lg-n7,.my-lg-n7{margin-bottom:-6rem!important}.ml-lg-n7,.mx-lg-n7{margin-left:-6rem!important}.m-lg-n8{margin:-8rem!important}.mt-lg-n8,.my-lg-n8{margin-top:-8rem!important}.mr-lg-n8,.mx-lg-n8{margin-right:-8rem!important}.mb-lg-n8,.my-lg-n8{margin-bottom:-8rem!important}.ml-lg-n8,.mx-lg-n8{margin-left:-8rem!important}.m-lg-n9{margin:-10rem!important}.mt-lg-n9,.my-lg-n9{margin-top:-10rem!important}.mr-lg-n9,.mx-lg-n9{margin-right:-10rem!important}.mb-lg-n9,.my-lg-n9{margin-bottom:-10rem!important}.ml-lg-n9,.mx-lg-n9{margin-left:-10rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.m-xl--9{margin:-10rem!important}.mt-xl--9,.my-xl--9{margin-top:-10rem!important}.mr-xl--9,.mx-xl--9{margin-right:-10rem!important}.mb-xl--9,.my-xl--9{margin-bottom:-10rem!important}.ml-xl--9,.mx-xl--9{margin-left:-10rem!important}.m-xl--8{margin:-8rem!important}.mt-xl--8,.my-xl--8{margin-top:-8rem!important}.mr-xl--8,.mx-xl--8{margin-right:-8rem!important}.mb-xl--8,.my-xl--8{margin-bottom:-8rem!important}.ml-xl--8,.mx-xl--8{margin-left:-8rem!important}.m-xl--7{margin:-6rem!important}.mt-xl--7,.my-xl--7{margin-top:-6rem!important}.mr-xl--7,.mx-xl--7{margin-right:-6rem!important}.mb-xl--7,.my-xl--7{margin-bottom:-6rem!important}.ml-xl--7,.mx-xl--7{margin-left:-6rem!important}.m-xl--6{margin:-4.5rem!important}.mt-xl--6,.my-xl--6{margin-top:-4.5rem!important}.mr-xl--6,.mx-xl--6{margin-right:-4.5rem!important}.mb-xl--6,.my-xl--6{margin-bottom:-4.5rem!important}.ml-xl--6,.mx-xl--6{margin-left:-4.5rem!important}.m-xl--5{margin:-3rem!important}.mt-xl--5,.my-xl--5{margin-top:-3rem!important}.mr-xl--5,.mx-xl--5{margin-right:-3rem!important}.mb-xl--5,.my-xl--5{margin-bottom:-3rem!important}.ml-xl--5,.mx-xl--5{margin-left:-3rem!important}.m-xl--4{margin:-1.5rem!important}.mt-xl--4,.my-xl--4{margin-top:-1.5rem!important}.mr-xl--4,.mx-xl--4{margin-right:-1.5rem!important}.mb-xl--4,.my-xl--4{margin-bottom:-1.5rem!important}.ml-xl--4,.mx-xl--4{margin-left:-1.5rem!important}.m-xl--3{margin:-1rem!important}.mt-xl--3,.my-xl--3{margin-top:-1rem!important}.mr-xl--3,.mx-xl--3{margin-right:-1rem!important}.mb-xl--3,.my-xl--3{margin-bottom:-1rem!important}.ml-xl--3,.mx-xl--3{margin-left:-1rem!important}.m-xl--2{margin:-.5rem!important}.mt-xl--2,.my-xl--2{margin-top:-.5rem!important}.mr-xl--2,.mx-xl--2{margin-right:-.5rem!important}.mb-xl--2,.my-xl--2{margin-bottom:-.5rem!important}.ml-xl--2,.mx-xl--2{margin-left:-.5rem!important}.m-xl--1{margin:-.25rem!important}.mt-xl--1,.my-xl--1{margin-top:-.25rem!important}.mr-xl--1,.mx-xl--1{margin-right:-.25rem!important}.mb-xl--1,.my-xl--1{margin-bottom:-.25rem!important}.ml-xl--1,.mx-xl--1{margin-left:-.25rem!important}.m-xl-6{margin:4.5rem!important}.mt-xl-6,.my-xl-6{margin-top:4.5rem!important}.mr-xl-6,.mx-xl-6{margin-right:4.5rem!important}.mb-xl-6,.my-xl-6{margin-bottom:4.5rem!important}.ml-xl-6,.mx-xl-6{margin-left:4.5rem!important}.m-xl-7{margin:6rem!important}.mt-xl-7,.my-xl-7{margin-top:6rem!important}.mr-xl-7,.mx-xl-7{margin-right:6rem!important}.mb-xl-7,.my-xl-7{margin-bottom:6rem!important}.ml-xl-7,.mx-xl-7{margin-left:6rem!important}.m-xl-8{margin:8rem!important}.mt-xl-8,.my-xl-8{margin-top:8rem!important}.mr-xl-8,.mx-xl-8{margin-right:8rem!important}.mb-xl-8,.my-xl-8{margin-bottom:8rem!important}.ml-xl-8,.mx-xl-8{margin-left:8rem!important}.m-xl-9{margin:10rem!important}.mt-xl-9,.my-xl-9{margin-top:10rem!important}.mr-xl-9,.mx-xl-9{margin-right:10rem!important}.mb-xl-9,.my-xl-9{margin-bottom:10rem!important}.ml-xl-9,.mx-xl-9{margin-left:10rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.p-xl-6{padding:4.5rem!important}.pt-xl-6,.py-xl-6{padding-top:4.5rem!important}.pr-xl-6,.px-xl-6{padding-right:4.5rem!important}.pb-xl-6,.py-xl-6{padding-bottom:4.5rem!important}.pl-xl-6,.px-xl-6{padding-left:4.5rem!important}.p-xl-7{padding:6rem!important}.pt-xl-7,.py-xl-7{padding-top:6rem!important}.pr-xl-7,.px-xl-7{padding-right:6rem!important}.pb-xl-7,.py-xl-7{padding-bottom:6rem!important}.pl-xl-7,.px-xl-7{padding-left:6rem!important}.p-xl-8{padding:8rem!important}.pt-xl-8,.py-xl-8{padding-top:8rem!important}.pr-xl-8,.px-xl-8{padding-right:8rem!important}.pb-xl-8,.py-xl-8{padding-bottom:8rem!important}.pl-xl-8,.px-xl-8{padding-left:8rem!important}.p-xl-9{padding:10rem!important}.pt-xl-9,.py-xl-9{padding-top:10rem!important}.pr-xl-9,.px-xl-9{padding-right:10rem!important}.pb-xl-9,.py-xl-9{padding-bottom:10rem!important}.pl-xl-9,.px-xl-9{padding-left:10rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-n-9{margin:10rem!important}.mt-xl-n-9,.my-xl-n-9{margin-top:10rem!important}.mr-xl-n-9,.mx-xl-n-9{margin-right:10rem!important}.mb-xl-n-9,.my-xl-n-9{margin-bottom:10rem!important}.ml-xl-n-9,.mx-xl-n-9{margin-left:10rem!important}.m-xl-n-8{margin:8rem!important}.mt-xl-n-8,.my-xl-n-8{margin-top:8rem!important}.mr-xl-n-8,.mx-xl-n-8{margin-right:8rem!important}.mb-xl-n-8,.my-xl-n-8{margin-bottom:8rem!important}.ml-xl-n-8,.mx-xl-n-8{margin-left:8rem!important}.m-xl-n-7{margin:6rem!important}.mt-xl-n-7,.my-xl-n-7{margin-top:6rem!important}.mr-xl-n-7,.mx-xl-n-7{margin-right:6rem!important}.mb-xl-n-7,.my-xl-n-7{margin-bottom:6rem!important}.ml-xl-n-7,.mx-xl-n-7{margin-left:6rem!important}.m-xl-n-6{margin:4.5rem!important}.mt-xl-n-6,.my-xl-n-6{margin-top:4.5rem!important}.mr-xl-n-6,.mx-xl-n-6{margin-right:4.5rem!important}.mb-xl-n-6,.my-xl-n-6{margin-bottom:4.5rem!important}.ml-xl-n-6,.mx-xl-n-6{margin-left:4.5rem!important}.m-xl-n-5{margin:3rem!important}.mt-xl-n-5,.my-xl-n-5{margin-top:3rem!important}.mr-xl-n-5,.mx-xl-n-5{margin-right:3rem!important}.mb-xl-n-5,.my-xl-n-5{margin-bottom:3rem!important}.ml-xl-n-5,.mx-xl-n-5{margin-left:3rem!important}.m-xl-n-4{margin:1.5rem!important}.mt-xl-n-4,.my-xl-n-4{margin-top:1.5rem!important}.mr-xl-n-4,.mx-xl-n-4{margin-right:1.5rem!important}.mb-xl-n-4,.my-xl-n-4{margin-bottom:1.5rem!important}.ml-xl-n-4,.mx-xl-n-4{margin-left:1.5rem!important}.m-xl-n-3{margin:1rem!important}.mt-xl-n-3,.my-xl-n-3{margin-top:1rem!important}.mr-xl-n-3,.mx-xl-n-3{margin-right:1rem!important}.mb-xl-n-3,.my-xl-n-3{margin-bottom:1rem!important}.ml-xl-n-3,.mx-xl-n-3{margin-left:1rem!important}.m-xl-n-2{margin:.5rem!important}.mt-xl-n-2,.my-xl-n-2{margin-top:.5rem!important}.mr-xl-n-2,.mx-xl-n-2{margin-right:.5rem!important}.mb-xl-n-2,.my-xl-n-2{margin-bottom:.5rem!important}.ml-xl-n-2,.mx-xl-n-2{margin-left:.5rem!important}.m-xl-n-1{margin:.25rem!important}.mt-xl-n-1,.my-xl-n-1{margin-top:.25rem!important}.mr-xl-n-1,.mx-xl-n-1{margin-right:.25rem!important}.mb-xl-n-1,.my-xl-n-1{margin-bottom:.25rem!important}.ml-xl-n-1,.mx-xl-n-1{margin-left:.25rem!important}.m-xl-n6{margin:-4.5rem!important}.mt-xl-n6,.my-xl-n6{margin-top:-4.5rem!important}.mr-xl-n6,.mx-xl-n6{margin-right:-4.5rem!important}.mb-xl-n6,.my-xl-n6{margin-bottom:-4.5rem!important}.ml-xl-n6,.mx-xl-n6{margin-left:-4.5rem!important}.m-xl-n7{margin:-6rem!important}.mt-xl-n7,.my-xl-n7{margin-top:-6rem!important}.mr-xl-n7,.mx-xl-n7{margin-right:-6rem!important}.mb-xl-n7,.my-xl-n7{margin-bottom:-6rem!important}.ml-xl-n7,.mx-xl-n7{margin-left:-6rem!important}.m-xl-n8{margin:-8rem!important}.mt-xl-n8,.my-xl-n8{margin-top:-8rem!important}.mr-xl-n8,.mx-xl-n8{margin-right:-8rem!important}.mb-xl-n8,.my-xl-n8{margin-bottom:-8rem!important}.ml-xl-n8,.mx-xl-n8{margin-left:-8rem!important}.m-xl-n9{margin:-10rem!important}.mt-xl-n9,.my-xl-n9{margin-top:-10rem!important}.mr-xl-n9,.mx-xl-n9{margin-right:-10rem!important}.mb-xl-n9,.my-xl-n9{margin-bottom:-10rem!important}.ml-xl-n9,.mx-xl-n9{margin-left:-10rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:600!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#5e72e4!important}a.text-primary:focus,a.text-primary:hover{color:#233dd2!important}.text-secondary{color:#f7fafc!important}a.text-secondary:focus,a.text-secondary:hover{color:#bfd7e7!important}.text-success{color:#2dce89!important}a.text-success:focus,a.text-success:hover{color:#1f8f5f!important}.text-info{color:#11cdef!important}a.text-info:focus,a.text-info:hover{color:#0b90a8!important}.text-warning{color:#fb6340!important}a.text-warning:focus,a.text-warning:hover{color:#ea3005!important}.text-danger{color:#f5365c!important}a.text-danger:focus,a.text-danger:hover{color:#d40b33!important}.text-light{color:#adb5bd!important}a.text-light:focus,a.text-light:hover{color:#838f9b!important}.text-dark{color:#212529!important}a.text-dark:focus,a.text-dark:hover{color:#000!important}.text-default{color:#172b4d!important}a.text-default:focus,a.text-default:hover{color:#050a12!important}.text-white{color:#fff!important}a.text-white:focus,a.text-white:hover{color:#d9d9d9!important}.text-neutral{color:#fff!important}a.text-neutral:focus,a.text-neutral:hover{color:#d9d9d9!important}.text-darker{color:#000!important}a.text-darker:focus,a.text-darker:hover{color:#000!important}.text-body{color:#525f7f!important}.text-muted{color:#8898aa!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;border:0;background-color:transparent;text-shadow:none}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{box-shadow:none!important;text-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:' (' attr(title) ')'}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#e9ecef}.table .thead-dark th{color:inherit;border-color:#e9ecef}}.alert{font-size:.875rem}.alert-heading{font-size:.9375rem;font-weight:600;margin-top:.15rem}.alert-icon{font-size:1.25rem;display:inline-block;margin-right:1.25rem;vertical-align:middle}.alert-icon i.ni{position:relative;top:2px}.alert-text{display:inline-block;vertical-align:middle}[class*=alert-] .alert-link{color:#fff;border-bottom:1px dotted rgba(255,255,255,.5)}.alert-dismissible .close{top:50%;right:1.5rem;padding:0;transform:translateY(-50%);opacity:1}@media (max-width:575.98px){.alert-dismissible .close{top:1rem;right:.5rem}}.alert-dismissible .close>span:not(.sr-only){font-size:1.5rem;color:rgba(255,255,255,.6);background-color:transparent}.alert-dismissible .close:focus>span:not(.sr-only),.alert-dismissible .close:hover>span:not(.sr-only){color:#fff;background-color:transparent}.alert-secondary .close>span:not(.sr-only){color:rgba(23,43,77,.6)}.alert-secondary .close:focus>span:not(.sr-only),.alert-secondary .close:hover>span:not(.sr-only){color:#172b4d}.alert-notify{display:flex!important;width:calc(100% - 30px);max-width:600px;padding-right:80px;color:rgba(255,255,255,.85);box-shadow:0 3px 10px rgba(0,0,0,.15)}.alert-notify:hover{z-index:1081!important}.alert-notify:not(.alert-info):not(.alert-success):not(.alert-warning):not(.alert-danger){background-color:rgba(0,0,0,.95)}.alert-notify:not(.alert-info):not(.alert-success):not(.alert-warning):not(.alert-danger) .alert-notify-close{color:#ffd600}.alert-notify:not(.alert-info):not(.alert-success):not(.alert-warning):not(.alert-danger) .alert-notify-close:hover{opacity:.8}.alert-notify .alert-icon.ni{position:relative;top:4px}.alert-notify .alert-title{font-size:1rem;font-weight:600;display:block}.alert-notify .close{top:1rem!important;right:1.5rem!important;transform:translateY(0)}.avatar{font-size:1rem;display:inline-flex;width:48px;height:48px;color:#fff;border-radius:.375rem;background-color:#adb5bd;align-items:center;justify-content:center}.avatar img{width:100%;border-radius:.375rem}.avatar+.avatar-content{display:inline-block;margin-left:.75rem}.avatar-xl{width:74px;height:74px}.avatar-lg{font-size:.875rem;width:58px;height:58px}.avatar-sm{font-size:.875rem;width:36px;height:36px}.avatar-xs{font-size:.75rem;width:24px;height:24px}.avatar-group .avatar{position:relative;z-index:2;border:2px solid #fff}.avatar-group .avatar:hover{z-index:3}.avatar-group .avatar+.avatar{margin-left:-1rem}.badge{text-transform:uppercase}.badge a{color:#fff}.badge-md{padding:.65em 1em}.badge-lg{padding:.85em 1.375em}.badge-inline{margin-right:.625rem}.badge-inline+span{position:relative;top:2px}.badge-inline+span>a{text-decoration:underline}.badge-default{color:#fff}.badge-secondary{color:#212529;background-color:#f7fafc}.btn .badge:not(:first-child){margin-left:.5rem}.btn .badge:not(:last-child){margin-right:.5rem}.badge-circle{font-size:.75rem;font-weight:600;display:inline-flex;width:1.25rem;height:1.25rem;padding:0!important;text-align:center;border-radius:50%;align-items:center;justify-content:center}.badge-circle.badge-md{width:1.5rem;height:1.5rem}.badge-circle.badge-lg{width:2rem;height:2rem}.badge-dot{font-size:.875rem;font-weight:400;padding-right:0;padding-left:0;text-transform:none;background:0 0}.badge-dot strong{color:#32325d}.badge-dot i{display:inline-block;width:.375rem;height:.375rem;margin-right:.375rem;vertical-align:middle;border-radius:50%}.badge-dot.badge-md i{width:.5rem;height:.5rem}.badge-dot.badge-lg i{width:.625rem;height:.625rem}.btn .badge-floating{position:absolute;top:-50%;transform:translateY(50%);border:3px solid}.btn .badge-floating.badge:not(.badge-circle){transform:translate(147%,50%)}.breadcrumb-item{font-size:.875rem}.breadcrumb-dark{background-color:#172b4d}.breadcrumb-dark .breadcrumb-item{font-weight:600}.breadcrumb-dark .breadcrumb-item a{color:#f6f9fc}.breadcrumb-dark .breadcrumb-item a:hover{color:#fff}.breadcrumb-dark .breadcrumb-item+.breadcrumb-item::before{color:#adb5bd}.breadcrumb-dark .breadcrumb-item.active{color:#dee2e6}.breadcrumb-links{margin:0;padding:0;background:0 0}.btn{font-size:.875rem;position:relative;transition:all .15s ease;letter-spacing:.025em;text-transform:none;will-change:transform}.btn:hover{transform:translateY(-1px);box-shadow:0 7px 14px rgba(50,50,93,.1),0 3px 6px rgba(0,0,0,.08)}.btn:not(:last-child){margin-right:.5rem}.btn i:not(:first-child),.btn svg:not(:first-child){margin-left:.5rem}.btn i:not(:last-child),.btn svg:not(:last-child){margin-right:.5rem}.btn-group .btn,.input-group .btn{margin-right:0;transform:translateY(0)}.btn-group-sm>.btn,.btn-sm{font-size:.75rem}.btn-group-lg>.btn,.btn-lg{font-size:.875rem}[class*=btn-outline-]{border-width:1px}.btn-outline-secondary{color:#4385b1}.btn-inner--icon i:not(.fas):not(.fab){position:relative;top:2px}.btn-link{font-weight:600;box-shadow:none}.btn-link:hover{transform:none;box-shadow:none}.btn-neutral{color:#5e72e4}.btn-facebook{color:#fff;border-color:#3b5999;background-color:#3b5999;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-facebook:hover{color:#fff;border-color:#3b5999;background-color:#3b5999}.btn-facebook.focus,.btn-facebook:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(59,89,153,.5)}.btn-facebook.disabled,.btn-facebook:disabled{color:#fff;border-color:#3b5999;background-color:#3b5999}.btn-facebook:not(:disabled):not(.disabled).active,.btn-facebook:not(:disabled):not(.disabled):active,.show>.btn-facebook.dropdown-toggle{color:#fff;border-color:#3b5999;background-color:#2d4474}.btn-facebook:not(:disabled):not(.disabled).active:focus,.btn-facebook:not(:disabled):not(.disabled):active:focus,.show>.btn-facebook.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(59,89,153,.5)}.btn-twitter{color:#fff;border-color:#1da1f2;background-color:#1da1f2;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-twitter:hover{color:#fff;border-color:#1da1f2;background-color:#1da1f2}.btn-twitter.focus,.btn-twitter:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(29,161,242,.5)}.btn-twitter.disabled,.btn-twitter:disabled{color:#fff;border-color:#1da1f2;background-color:#1da1f2}.btn-twitter:not(:disabled):not(.disabled).active,.btn-twitter:not(:disabled):not(.disabled):active,.show>.btn-twitter.dropdown-toggle{color:#fff;border-color:#1da1f2;background-color:#0c85d0}.btn-twitter:not(:disabled):not(.disabled).active:focus,.btn-twitter:not(:disabled):not(.disabled):active:focus,.show>.btn-twitter.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(29,161,242,.5)}.btn-google-plus{color:#fff;border-color:#dd4b39;background-color:#dd4b39;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-google-plus:hover{color:#fff;border-color:#dd4b39;background-color:#dd4b39}.btn-google-plus.focus,.btn-google-plus:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(221,75,57,.5)}.btn-google-plus.disabled,.btn-google-plus:disabled{color:#fff;border-color:#dd4b39;background-color:#dd4b39}.btn-google-plus:not(:disabled):not(.disabled).active,.btn-google-plus:not(:disabled):not(.disabled):active,.show>.btn-google-plus.dropdown-toggle{color:#fff;border-color:#dd4b39;background-color:#c23321}.btn-google-plus:not(:disabled):not(.disabled).active:focus,.btn-google-plus:not(:disabled):not(.disabled):active:focus,.show>.btn-google-plus.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(221,75,57,.5)}.btn-instagram{color:#fff;border-color:#e4405f;background-color:#e4405f;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-instagram:hover{color:#fff;border-color:#e4405f;background-color:#e4405f}.btn-instagram.focus,.btn-instagram:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(228,64,95,.5)}.btn-instagram.disabled,.btn-instagram:disabled{color:#fff;border-color:#e4405f;background-color:#e4405f}.btn-instagram:not(:disabled):not(.disabled).active,.btn-instagram:not(:disabled):not(.disabled):active,.show>.btn-instagram.dropdown-toggle{color:#fff;border-color:#e4405f;background-color:#d31e40}.btn-instagram:not(:disabled):not(.disabled).active:focus,.btn-instagram:not(:disabled):not(.disabled):active:focus,.show>.btn-instagram.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(228,64,95,.5)}.btn-pinterest{color:#fff;border-color:#bd081c;background-color:#bd081c;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-pinterest:hover{color:#fff;border-color:#bd081c;background-color:#bd081c}.btn-pinterest.focus,.btn-pinterest:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(189,8,28,.5)}.btn-pinterest.disabled,.btn-pinterest:disabled{color:#fff;border-color:#bd081c;background-color:#bd081c}.btn-pinterest:not(:disabled):not(.disabled).active,.btn-pinterest:not(:disabled):not(.disabled):active,.show>.btn-pinterest.dropdown-toggle{color:#fff;border-color:#bd081c;background-color:#8c0615}.btn-pinterest:not(:disabled):not(.disabled).active:focus,.btn-pinterest:not(:disabled):not(.disabled):active:focus,.show>.btn-pinterest.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(189,8,28,.5)}.btn-youtube{color:#fff;border-color:#cd201f;background-color:#cd201f;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-youtube:hover{color:#fff;border-color:#cd201f;background-color:#cd201f}.btn-youtube.focus,.btn-youtube:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(205,32,31,.5)}.btn-youtube.disabled,.btn-youtube:disabled{color:#fff;border-color:#cd201f;background-color:#cd201f}.btn-youtube:not(:disabled):not(.disabled).active,.btn-youtube:not(:disabled):not(.disabled):active,.show>.btn-youtube.dropdown-toggle{color:#fff;border-color:#cd201f;background-color:#a11918}.btn-youtube:not(:disabled):not(.disabled).active:focus,.btn-youtube:not(:disabled):not(.disabled):active:focus,.show>.btn-youtube.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(205,32,31,.5)}.btn-slack{color:#fff;border-color:#3aaf85;background-color:#3aaf85;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-slack:hover{color:#fff;border-color:#3aaf85;background-color:#3aaf85}.btn-slack.focus,.btn-slack:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(58,175,133,.5)}.btn-slack.disabled,.btn-slack:disabled{color:#fff;border-color:#3aaf85;background-color:#3aaf85}.btn-slack:not(:disabled):not(.disabled).active,.btn-slack:not(:disabled):not(.disabled):active,.show>.btn-slack.dropdown-toggle{color:#fff;border-color:#3aaf85;background-color:#2d8968}.btn-slack:not(:disabled):not(.disabled).active:focus,.btn-slack:not(:disabled):not(.disabled):active:focus,.show>.btn-slack.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(58,175,133,.5)}.btn-dribbble{color:#fff;border-color:#ea4c89;background-color:#ea4c89;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-dribbble:hover{color:#fff;border-color:#ea4c89;background-color:#ea4c89}.btn-dribbble.focus,.btn-dribbble:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(234,76,137,.5)}.btn-dribbble.disabled,.btn-dribbble:disabled{color:#fff;border-color:#ea4c89;background-color:#ea4c89}.btn-dribbble:not(:disabled):not(.disabled).active,.btn-dribbble:not(:disabled):not(.disabled):active,.show>.btn-dribbble.dropdown-toggle{color:#fff;border-color:#ea4c89;background-color:#e51e6b}.btn-dribbble:not(:disabled):not(.disabled).active:focus,.btn-dribbble:not(:disabled):not(.disabled):active:focus,.show>.btn-dribbble.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(234,76,137,.5)}.btn-github{color:#fff;border-color:#222;background-color:#222;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-github:hover{color:#fff;border-color:#222;background-color:#222}.btn-github.focus,.btn-github:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(34,34,34,.5)}.btn-github.disabled,.btn-github:disabled{color:#fff;border-color:#222;background-color:#222}.btn-github:not(:disabled):not(.disabled).active,.btn-github:not(:disabled):not(.disabled):active,.show>.btn-github.dropdown-toggle{color:#fff;border-color:#222;background-color:#090909}.btn-github:not(:disabled):not(.disabled).active:focus,.btn-github:not(:disabled):not(.disabled):active:focus,.show>.btn-github.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(34,34,34,.5)}.btn-vimeo{color:#fff;border-color:#04a0f0;background-color:#04a0f0;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.btn-vimeo:hover{color:#fff;border-color:#04a0f0;background-color:#04a0f0}.btn-vimeo.focus,.btn-vimeo:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(4,160,240,.5)}.btn-vimeo.disabled,.btn-vimeo:disabled{color:#fff;border-color:#04a0f0;background-color:#04a0f0}.btn-vimeo:not(:disabled):not(.disabled).active,.btn-vimeo:not(:disabled):not(.disabled):active,.show>.btn-vimeo.dropdown-toggle{color:#fff;border-color:#04a0f0;background-color:#037fbe}.btn-vimeo:not(:disabled):not(.disabled).active:focus,.btn-vimeo:not(:disabled):not(.disabled):active:focus,.show>.btn-vimeo.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(4,160,240,.5)}.btn-group .btn{box-shadow:none}[data-toggle=buttons]:not(.btn-group-colors)>.btn{margin:0;cursor:pointer;border:0;background-color:#f6f9fc;box-shadow:none}[data-toggle=buttons]:not(.btn-group-colors)>.btn:not(.active){color:#525f7f}[data-toggle=buttons]:not(.btn-group-colors)>.btn.active{color:#fff;background-color:#5e72e4}.btn-group-colors>.btn{position:relative;width:30px;height:30px;margin-right:.5rem;margin-bottom:.25rem;padding:0;border-radius:50%!important;box-shadow:none}.btn-group-colors>.btn:not([class*=bg-]){border-color:#f6f9fc!important}.btn-group-colors>.btn:before{font-family:NucleoIcons,sans-serif;font-size:14px;line-height:28px;position:absolute;top:0;left:0;width:100%;height:100%;content:'';transition:transform .2s,opacity .2s;transform:scale(0);opacity:0;color:#fff}@media (prefers-reduced-motion:reduce){.btn-group-colors>.btn:before{transition:none}}.btn-group-colors>.btn.btn:not([class*=bg-]){border:1px solid #cfd5db}.btn-group-colors>.btn.btn:not([class*=bg-]):before{color:#525f7f}.btn-group-colors>.btn.active:before{transform:scale(1);opacity:1}.btn-icon .btn-inner--icon img{width:20px}.btn-icon .btn-inner--text:not(:first-child){margin-left:.75em}.btn-icon .btn-inner--text:not(:last-child){margin-right:.75em}.btn-icon-only{width:2.375rem;height:2.375rem;padding:0}a.btn-icon-only{line-height:2.5}.btn-group-sm>.btn-icon-only.btn,.btn-icon-only.btn-sm{width:2rem;height:2rem}.btn-icon-clipboard{font-family:inherit;font-size:1rem;font-weight:400;line-height:1.25;display:inline-block;width:100%;margin:0;margin:.5rem 0;padding:1.5rem;cursor:pointer;text-align:left;vertical-align:middle;text-decoration:none;color:#32325d;border:0;border-radius:.375rem;background-color:#f6f9fc;-moz-appearance:none}.btn-icon-clipboard:hover{background-color:#fff;box-shadow:rgba(0,0,0,.1) 0 0 0 1px,rgba(0,0,0,.1) 0 4px 16px}.btn-icon-clipboard>div{display:flex;align-items:center}.btn-icon-clipboard i{font-size:1.5rem;box-sizing:content-box;vertical-align:middle;color:#5e72e4}.btn-icon-clipboard span{font-size:.875rem;line-height:1.5;display:inline-block;overflow:hidden;margin-left:16px;vertical-align:middle;white-space:nowrap;text-overflow:ellipsis}.card{margin-bottom:30px;border:0;box-shadow:0 0 2rem 0 rgba(136,152,170,.15)}.card-translucent{background-color:rgba(18,91,152,.08)}.card-deck .card{margin-bottom:30px}.card.shadow{border:0!important}@media (min-width:576px){.card-columns{column-count:1}}@media (min-width:768px){.card-columns{column-count:2}}@media (min-width:1200px){.card-columns{column-count:3;column-gap:1.25rem}}.card-lift--hover:hover{transition:all .15s ease;transform:translateY(-20px)}@media (prefers-reduced-motion:reduce){.card-lift--hover:hover{transition:none}}.card-blockquote{position:relative;padding:2rem}.card-blockquote .svg-bg{position:absolute;top:-94px;left:0;display:block;width:100%;height:95px}.card-serial-number{font-size:1.625rem;display:flex;justify-content:space-between}.card-serial-number>div:not(:last-child){display:flex;flex:1 1 auto}.card-serial-number>div:not(:last-child):after{position:relative;left:-2px;content:'-';text-align:center;flex:1 1 auto}@media (max-width:575.98px){.card-serial-number{font-size:1.0625rem}}.card-pricing .card-header{padding-top:1.25rem;padding-bottom:1.25rem}.card-pricing .list-unstyled li{padding:.5rem 0;color:#8898aa}.card-pricing.popular{z-index:1;border:3px solid #5e72e4!important}@media (min-width:768px){.card-pricing.zoom-in{z-index:1;transform:scale(1.1)}}.card-profile-image{position:relative}.card-profile-image img{position:absolute;left:50%;max-width:140px;transition:all .15s ease;transform:translate(-50%,-50%) scale(1);border:3px solid #fff;border-radius:.375rem}.card-profile-image img:hover{transform:translate(-50%,-50%) scale(1.03)}.card-profile-stats{padding:1rem 0}.card-profile-stats>div{margin-right:1rem;padding:.875rem;text-align:center}.card-profile-stats>div:last-child{margin-right:0}.card-profile-stats>div .heading{font-size:1.1rem;font-weight:700;display:block}.card-profile-stats>div .description{font-size:.875rem;color:#adb5bd}.card-profile-actions{padding:.875rem}.card-stats .card-body{padding:1rem 1.5rem}.card-stats .card-status-bullet{position:absolute;top:0;right:0;transform:translate(50%,-50%)}.chart{position:relative;height:350px}.chart-sm{height:230px}.chart-legend{font-size:.875rem;display:flex;margin-top:2.5rem;text-align:center;color:#8898aa;justify-content:center}.chart-legend-item{display:inline-flex;align-items:center}.chart-legend-item+.chart-legend-item{margin-left:1rem}.chart-legend-indicator{display:inline-block;width:.5rem;height:.5rem;margin-right:.375rem;border-radius:50%}#chart-tooltip{z-index:0}#chart-tooltip .arrow{top:100%;left:50%;transform:translateX(-50%) translateX(-.5rem)}.chart-info-overlay{position:absolute;z-index:1;top:0;left:5%;max-width:350px;padding:20px}.close{transition:all .15s ease}.close>span:not(.sr-only){font-size:1.25rem;line-height:17px;display:block;width:1.25rem;height:1.25rem;transition:all .15s ease;color:rgba(0,0,0,.6);border-radius:50%;background-color:transparent}.close:focus,.close:hover{color:rgba(0,0,0,.9);outline:0;background-color:transparent}.close:focus span:not(.sr-only),.close:hover span:not(.sr-only){background-color:transparent}.close-dark>span:not(.sr-only){color:rgba(255,255,255,.8)}.close-dark:focus>span:not(.sr-only),.close-dark:hover>span:not(.sr-only){color:#fff}.accordion .card-header{position:relative;cursor:pointer}.accordion .card-header:after{font:normal normal normal 14px/1 NucleoIcons;line-height:0;position:absolute;top:50%;right:1.5rem;content:'\ea0f';transition:all .15s cubic-bezier(.68,-.55,.265,1.55);transform:translateY(-50%)}@media (prefers-reduced-motion:reduce){.accordion .card-header:after{transition:none}}.accordion .card-header[aria-expanded=false]:after{content:'\ea0f'}.accordion .card-header[aria-expanded=true]:after{transform:rotate(180deg)}.accordion .card-header[aria-expanded=true] .heading{color:#5e72e4}.main-content{position:relative}.main-content .navbar-top{padding-right:0!important;padding-left:0!important}@media (min-width:768px){.main-content .container-fluid{padding-right:30px!important;padding-left:30px!important}}.custom-checkbox .custom-control-input~.custom-control-label{font-size:.875rem;cursor:pointer}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{border-color:#5e72e4}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url('data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%23fff\' d=\'M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z\'/%3e%3c/svg%3e')}.custom-checkbox .custom-control-input:disabled~.custom-control-label::before{border-color:#e9ecef}.custom-checkbox .custom-control-input:disabled:checked::before{border-color:rgba(94,114,228,.5)}.custom-control-label::before{top:.25rem;left:-1.75rem;transition:all .15s cubic-bezier(.68,-.55,.265,1.55);border:1px solid #dee2e6}@media (prefers-reduced-motion:reduce){.custom-control-label::before{transition:none}}.custom-control-label::after{top:.25rem;left:-1.75rem}.custom-control-label span{position:relative;top:2px}.custom-control-label{margin-bottom:0}.custom-control-alternative .custom-control-label::before{border:0;box-shadow:0 1px 3px rgba(50,50,93,.15),0 1px 0 rgba(0,0,0,.02)}.custom-control-alternative .custom-control-input:checked~.custom-control-label::before{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.custom-control-alternative .custom-control-input:active~.custom-control-label::before,.custom-control-alternative .custom-control-input:focus~.custom-control-label::before{box-shadow:0 1px 3px rgba(50,50,93,.15),0 1px 0 rgba(0,0,0,.02)}.custom-checkbox .custom-control-input~.custom-control-label{font-size:.875rem;height:1rem;cursor:pointer}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{border-color:#5e72e4}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url('data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%23fff\' d=\'M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z\'/%3e%3c/svg%3e')}.custom-checkbox .custom-control-input:disabled~.custom-control-label::before{border-color:#e9ecef}.custom-checkbox .custom-control-input:disabled:checked::before{border-color:rgba(94,114,228,.5)}.custom-checkbox-primary .custom-control-input:checked~.custom-control-label::before{border-color:#5e72e4;background-color:#5e72e4}.custom-checkbox-primary .custom-control-input:checked~.custom-control-label::after{background-image:#5e72e4}.custom-checkbox-secondary .custom-control-input:checked~.custom-control-label::before{border-color:#f7fafc;background-color:#f7fafc}.custom-checkbox-secondary .custom-control-input:checked~.custom-control-label::after{background-image:#f7fafc}.custom-checkbox-success .custom-control-input:checked~.custom-control-label::before{border-color:#2dce89;background-color:#2dce89}.custom-checkbox-success .custom-control-input:checked~.custom-control-label::after{background-image:#2dce89}.custom-checkbox-info .custom-control-input:checked~.custom-control-label::before{border-color:#11cdef;background-color:#11cdef}.custom-checkbox-info .custom-control-input:checked~.custom-control-label::after{background-image:#11cdef}.custom-checkbox-warning .custom-control-input:checked~.custom-control-label::before{border-color:#fb6340;background-color:#fb6340}.custom-checkbox-warning .custom-control-input:checked~.custom-control-label::after{background-image:#fb6340}.custom-checkbox-danger .custom-control-input:checked~.custom-control-label::before{border-color:#f5365c;background-color:#f5365c}.custom-checkbox-danger .custom-control-input:checked~.custom-control-label::after{background-image:#f5365c}.custom-checkbox-light .custom-control-input:checked~.custom-control-label::before{border-color:#adb5bd;background-color:#adb5bd}.custom-checkbox-light .custom-control-input:checked~.custom-control-label::after{background-image:#adb5bd}.custom-checkbox-dark .custom-control-input:checked~.custom-control-label::before{border-color:#212529;background-color:#212529}.custom-checkbox-dark .custom-control-input:checked~.custom-control-label::after{background-image:#212529}.custom-checkbox-default .custom-control-input:checked~.custom-control-label::before{border-color:#172b4d;background-color:#172b4d}.custom-checkbox-default .custom-control-input:checked~.custom-control-label::after{background-image:#172b4d}.custom-checkbox-white .custom-control-input:checked~.custom-control-label::before{border-color:#fff;background-color:#fff}.custom-checkbox-white .custom-control-input:checked~.custom-control-label::after{background-image:#fff}.custom-checkbox-neutral .custom-control-input:checked~.custom-control-label::before{border-color:#fff;background-color:#fff}.custom-checkbox-neutral .custom-control-input:checked~.custom-control-label::after{background-image:#fff}.custom-checkbox-darker .custom-control-input:checked~.custom-control-label::before{border-color:#000;background-color:#000}.custom-checkbox-darker .custom-control-input:checked~.custom-control-label::after{background-image:#000}.custom-radio .custom-control-input~.custom-control-label{font-size:.875rem;height:1rem;cursor:pointer}.custom-radio .custom-control-input:checked~.custom-control-label::before{border-color:#5e72e4}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url('data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'-4 -4 8 8\'%3e%3ccircle r=\'3\' fill=\'%23fff\'/%3e%3c/svg%3e')}.custom-radio .custom-control-input:disabled~.custom-control-label::before{border-color:#e9ecef}.custom-radio .custom-control-input:disabled:checked::before{border-color:rgba(94,114,228,.5)}.custom-toggle{position:relative;display:inherit;display:inline-block;width:52px;height:1.5rem;margin:0}.custom-toggle input{display:none}.custom-toggle input:checked+.custom-toggle-slider{border:1px solid #5e72e4}.custom-toggle input:checked+.custom-toggle-slider:before{transform:translateX(28px);background:#5e72e4}.custom-toggle input:disabled+.custom-toggle-slider{border:1px solid #e9ecef}.custom-toggle input:disabled:checked+.custom-toggle-slider{border:1px solid #e9ecef}.custom-toggle input:disabled:checked+.custom-toggle-slider:before{background-color:#8a98eb}.custom-toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;cursor:pointer;border:1px solid #ced4da;border-radius:34px!important;background-color:transparent}.custom-toggle-slider:before{position:absolute;bottom:2px;left:2px;width:18px;height:18px;content:'';transition:all .15s cubic-bezier(.68,-.55,.265,1.55);border-radius:50%!important;background-color:#e9ecef}.custom-toggle-wrapper .custom-toggle+.custom-toggle{margin-left:1rem!important}.custom-toggle input:checked+.custom-toggle-slider:after{right:auto;left:0;content:attr(data-label-on);color:#5e72e4}.custom-toggle-slider:after{font-family:inherit;font-size:.75rem;font-weight:600;line-height:24px;position:absolute;top:0;right:0;display:block;overflow:hidden;min-width:1.66667rem;margin:0 .21667rem;content:attr(data-label-off);transition:all .15s ease;text-align:center;color:#ced4da}@media (prefers-reduced-motion:reduce){.custom-toggle-slider:after{transition:none}}.custom-toggle-primary input:checked+.custom-toggle-slider{border-color:#5e72e4}.custom-toggle-primary input:checked+.custom-toggle-slider:before{background:#5e72e4}.custom-toggle-primary input:checked+.custom-toggle-slider:after{color:#5e72e4}.custom-toggle-primary input:disabled:checked+.custom-toggle-slider{border-color:#5e72e4}.custom-toggle-primary input:disabled:checked+.custom-toggle-slider:before{background-color:#8a98eb}.custom-toggle-secondary input:checked+.custom-toggle-slider{border-color:#f7fafc}.custom-toggle-secondary input:checked+.custom-toggle-slider:before{background:#f7fafc}.custom-toggle-secondary input:checked+.custom-toggle-slider:after{color:#f7fafc}.custom-toggle-secondary input:disabled:checked+.custom-toggle-slider{border-color:#f7fafc}.custom-toggle-secondary input:disabled:checked+.custom-toggle-slider:before{background-color:#fff}.custom-toggle-success input:checked+.custom-toggle-slider{border-color:#2dce89}.custom-toggle-success input:checked+.custom-toggle-slider:before{background:#2dce89}.custom-toggle-success input:checked+.custom-toggle-slider:after{color:#2dce89}.custom-toggle-success input:disabled:checked+.custom-toggle-slider{border-color:#2dce89}.custom-toggle-success input:disabled:checked+.custom-toggle-slider:before{background-color:#54daa1}.custom-toggle-info input:checked+.custom-toggle-slider{border-color:#11cdef}.custom-toggle-info input:checked+.custom-toggle-slider:before{background:#11cdef}.custom-toggle-info input:checked+.custom-toggle-slider:after{color:#11cdef}.custom-toggle-info input:disabled:checked+.custom-toggle-slider{border-color:#11cdef}.custom-toggle-info input:disabled:checked+.custom-toggle-slider:before{background-color:#41d7f2}.custom-toggle-warning input:checked+.custom-toggle-slider{border-color:#fb6340}.custom-toggle-warning input:checked+.custom-toggle-slider:before{background:#fb6340}.custom-toggle-warning input:checked+.custom-toggle-slider:after{color:#fb6340}.custom-toggle-warning input:disabled:checked+.custom-toggle-slider{border-color:#fb6340}.custom-toggle-warning input:disabled:checked+.custom-toggle-slider:before{background-color:#fc8c72}.custom-toggle-danger input:checked+.custom-toggle-slider{border-color:#f5365c}.custom-toggle-danger input:checked+.custom-toggle-slider:before{background:#f5365c}.custom-toggle-danger input:checked+.custom-toggle-slider:after{color:#f5365c}.custom-toggle-danger input:disabled:checked+.custom-toggle-slider{border-color:#f5365c}.custom-toggle-danger input:disabled:checked+.custom-toggle-slider:before{background-color:#f76783}.custom-toggle-light input:checked+.custom-toggle-slider{border-color:#adb5bd}.custom-toggle-light input:checked+.custom-toggle-slider:before{background:#adb5bd}.custom-toggle-light input:checked+.custom-toggle-slider:after{color:#adb5bd}.custom-toggle-light input:disabled:checked+.custom-toggle-slider{border-color:#adb5bd}.custom-toggle-light input:disabled:checked+.custom-toggle-slider:before{background-color:#c9cfd4}.custom-toggle-dark input:checked+.custom-toggle-slider{border-color:#212529}.custom-toggle-dark input:checked+.custom-toggle-slider:before{background:#212529}.custom-toggle-dark input:checked+.custom-toggle-slider:after{color:#212529}.custom-toggle-dark input:disabled:checked+.custom-toggle-slider{border-color:#212529}.custom-toggle-dark input:disabled:checked+.custom-toggle-slider:before{background-color:#383f45}.custom-toggle-default input:checked+.custom-toggle-slider{border-color:#172b4d}.custom-toggle-default input:checked+.custom-toggle-slider:before{background:#172b4d}.custom-toggle-default input:checked+.custom-toggle-slider:after{color:#172b4d}.custom-toggle-default input:disabled:checked+.custom-toggle-slider{border-color:#172b4d}.custom-toggle-default input:disabled:checked+.custom-toggle-slider:before{background-color:#234174}.custom-toggle-white input:checked+.custom-toggle-slider{border-color:#fff}.custom-toggle-white input:checked+.custom-toggle-slider:before{background:#fff}.custom-toggle-white input:checked+.custom-toggle-slider:after{color:#fff}.custom-toggle-white input:disabled:checked+.custom-toggle-slider{border-color:#fff}.custom-toggle-white input:disabled:checked+.custom-toggle-slider:before{background-color:#fff}.custom-toggle-neutral input:checked+.custom-toggle-slider{border-color:#fff}.custom-toggle-neutral input:checked+.custom-toggle-slider:before{background:#fff}.custom-toggle-neutral input:checked+.custom-toggle-slider:after{color:#fff}.custom-toggle-neutral input:disabled:checked+.custom-toggle-slider{border-color:#fff}.custom-toggle-neutral input:disabled:checked+.custom-toggle-slider:before{background-color:#fff}.custom-toggle-darker input:checked+.custom-toggle-slider{border-color:#000}.custom-toggle-darker input:checked+.custom-toggle-slider:before{background:#000}.custom-toggle-darker input:checked+.custom-toggle-slider:after{color:#000}.custom-toggle-darker input:disabled:checked+.custom-toggle-slider{border-color:#000}.custom-toggle-darker input:disabled:checked+.custom-toggle-slider:before{background-color:#1a1a1a}.dropdown,.dropleft,.dropright,.dropup{display:inline-block}.dropdown-menu{min-width:12rem}.dropdown-menu .dropdown-item{font-size:.875rem;padding:.5rem 1rem}.dropdown-menu .dropdown-item>i,.dropdown-menu .dropdown-item>svg{font-size:1rem;margin-right:1rem;vertical-align:-17%}.dropdown-menu .dropdown-item img{margin-right:.5rem}.dropdown-header{font-size:.625rem;font-weight:700;padding-right:1rem;padding-left:1rem;text-transform:uppercase}.dropdown-menu a.media>div:first-child{line-height:1}.dropdown-menu a.media p{color:#8898aa}.dropdown-menu a.media:hover .heading,.dropdown-menu a.media:hover p{color:#172b4d!important}.dropdown-menu-dark .h1,.dropdown-menu-dark .h2,.dropdown-menu-dark .h3,.dropdown-menu-dark .h4,.dropdown-menu-dark .h5,.dropdown-menu-dark .h6,.dropdown-menu-dark a{color:#fff}.dropdown-menu-sm{min-width:100px;border:.4375rem}.dropdown-menu-lg{min-width:320px;border-radius:.4375rem}.dropdown-menu-xl{min-width:420px;border-radius:.4375rem}.footer{padding:30px 0;background:#f8f9fe}.footer .col-footer .heading{font-size:.875rem;font-weight:600;margin-bottom:1rem;letter-spacing:0;text-transform:uppercase;color:#8898aa}.footer .footer-link,.footer .nav .nav-item .nav-link{color:#8898aa!important}.footer .footer-link:hover,.footer .nav .nav-item .nav-link:hover{color:#525f7f!important}.footer .list-unstyled li a{font-size:.85rem;display:inline-block;padding:.125rem 0;color:#8898aa}.footer .list-unstyled li a:hover{color:#525f7f}.footer .copyright{font-size:.875rem}.footer-dark .col-footer .heading{color:#fff}.nav-footer .nav-link{font-size:.875rem}.nav-footer .nav-item:last-child .nav-link{padding-right:0}.footer.has-cards{position:relative;overflow:hidden;margin-top:-420px;padding-top:500px;pointer-events:none;background:0 0}.footer.has-cards:before{position:absolute;top:600px;right:0;left:0;height:2000px;content:'';transform:skew(0,-8deg);background:#f7fafc}.footer.has-cards .container{position:relative;pointer-events:auto}.footer-auto-bottom{position:absolute;bottom:0;width:100%}.form-control-label{font-size:.875rem;font-weight:600;color:#525f7f}.form-control{font-size:.875rem;height:calc(1.5em + 1.25rem + 5px);transition:all .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control:focus::-ms-input-placeholder{color:#adb5bd}.form-control:focus::placeholder{color:#adb5bd}.form-control-lg{height:calc(2.25em + 1.25rem + 5px)}.form-control-sm{height:calc(.45em + 1.25rem + 5px)}.form-control-flush{padding:0;border-width:0;background-color:transparent;box-shadow:none}.form-control-flush:focus{border-width:0;background-color:transparent;box-shadow:none}textarea[resize=none]{resize:none!important}textarea[resize=both]{resize:both!important}textarea[resize=vertical]{resize:vertical!important}textarea[resize=horizontal]{resize:horizontal!important}.form-control-muted{border-color:#f7fafe;background-color:#f7fafe;box-shadow:none}.form-control-muted:focus{background-color:#fcfdff}.form-control-alternative{transition:box-shadow .15s ease;border:0;box-shadow:0 1px 3px rgba(50,50,93,.15),0 1px 0 rgba(0,0,0,.02)}.form-control-alternative:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.form-control-lg,.input-group-lg .form-control,.input-group-text{font-size:1rem!important}.custom-control{padding-left:1.75rem}.input-group{transition:all .15s ease-in-out;border-radius:.25rem;box-shadow:0 3px 2px rgba(233,236,239,.05)}@media (prefers-reduced-motion:reduce){.input-group{transition:none}}.input-group .form-control{box-shadow:none}.input-group .form-control:focus{box-shadow:none}.input-group-text{transition:all .15s cubic-bezier(.68,-.55,.265,1.55)}@media (prefers-reduced-motion:reduce){.input-group-text{transition:none}}.input-group-text i{font-size:.875rem}.input-group-text .custom-control{line-height:1}.input-group-prepend .input-group-text{border-right:0}.input-group-append .input-group-text{border-left:0}.input-group-merge .form-control:not(:first-child){padding-left:0;border-left:0}.input-group-merge .form-control:not(:last-child){padding-right:0;border-right:0}.input-group-alternative{transition:box-shadow .15s ease;border:0;box-shadow:0 1px 3px rgba(50,50,93,.15),0 1px 0 rgba(0,0,0,.02)}.input-group-alternative .form-control,.input-group-alternative .input-group-text{border:0;box-shadow:none}.focused .input-group-alternative{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)!important}.input-group-flush{box-shadow:none}.input-group-flush>.form-control{padding:0;border-width:0;background-color:transparent}.input-group-flush>.input-group-append>.input-group-text,.input-group-flush>.input-group-prepend>.input-group-text{padding:0;padding-right:1rem;border-width:0;background-color:transparent}.focused .input-group{box-shadow:0 3px 9px rgba(50,50,9,0),3px 4px 8px rgba(94,114,228,.1)}.focused .input-group-text{color:#8898aa;border-color:#5e72e4;background-color:#fff}.focused .form-control{border-color:#5e72e4}.focused .input-group-flush{box-shadow:none}.form-primary .form-control{color:#fff;border-color:#324cdd;background-color:rgba(50,76,221,.5)}.form-primary .form-control:focus{border:1px solid #2a44db;background-color:rgba(42,68,219,.7)}.form-primary .form-control::-ms-input-placeholder{color:rgba(255,255,255,.8)}.form-primary .form-control::placeholder{color:rgba(255,255,255,.8)}.form-primary .input-group-text{color:#fff;border-color:#324cdd;background-color:rgba(50,76,221,.5)}.form-primary .focused .input-group-text{color:#fff;border-color:#2a44db;background-color:rgba(42,68,219,.7)}.has-danger,.has-success{position:relative}.has-danger:after,.has-success:after{font-family:NucleoIcons;font-size:9px;line-height:19px;position:absolute;top:50%;right:15px;display:none;width:19px;height:19px;transform:translateY(-50%);text-align:center;opacity:1;border-radius:50%}.has-danger .input-group-prepend .input-group-text,.has-success .input-group-prepend .input-group-text{border-color:red}.has-success:after{content:'\ea26';color:#1d8357;background-color:#69deac}.has-success .form-control{background-color:#fff}.has-success .form-control::-ms-input-placeholder{color:#2dce89}.has-success .form-control::placeholder{color:#2dce89}.has-danger:after{content:'\ea53';color:#db2d05;background-color:#fda08b}.has-danger .form-control{background-color:#fff}.has-danger .form-control::-ms-input-placeholder{color:#fb6340}.has-danger .form-control::placeholder{color:#fb6340}.row-example>.col span,.row-example>[class^=col-] span{font-size:.875rem;display:block;margin:1rem 0;padding:.75rem;color:#393f49;border-radius:.25rem;background-color:#fff;box-shadow:rgba(0,0,0,.1) 0 0 0 1px,rgba(0,0,0,.1) 0 4px 16px}.no-gutters>.col span,.no-gutters>[class^=col-] span{border-radius:0}.header{position:relative}.icon{width:3rem;height:3rem}.icon i,.icon svg{font-size:2.25rem}.icon+.icon-text{width:calc(100% - 3rem - 1);padding-left:1rem}.icon-xl{width:5rem;height:5rem}.icon-xl i,.icon-xl svg{font-size:4.25rem}.icon-xl+.icon-text{width:calc(100% - 5rem - 1)}.icon-lg{width:4rem;height:4rem}.icon-lg i,.icon-lg svg{font-size:3.25rem}.icon-lg+.icon-text{width:calc(100% - $icon-size-lg - 1)}.icon-sm{width:2rem;height:2rem}.icon-sm i,.icon-sm svg{font-size:1.25rem}.icon-sm+.icon-text{width:calc(100% - $icon-size-sm - 1)}.icon-xs{width:1.25rem;height:1.25rem}.icon-xs i,.icon-xs svg{font-size:.5rem}.icon-xs+.icon-text{width:calc(100% - $icon-size-xs - 1)}.icon-actions>a{font-size:.875rem;display:inline-block;margin-right:.75rem;color:#8898aa}.icon-actions>a:last-of-type{margin-right:0}.icon-actions>a span{font-weight:600;margin-left:.1875rem;color:#8898aa}.icon-actions>a:hover span{color:#6a7e95}.icon-actions>a,.icon-actions>a.active,.icon-actions>a:hover{color:#32325d}.icon-actions>.favorite.active,.icon-actions>.favorite:hover{color:#ffd600}.icon-actions>.love.active,.icon-actions>.love:hover{color:#f5365c}.icon-actions>.like.active,.icon-actions>.like:hover{color:#5e72e4}.icon-actions-lg a{font-size:1.25rem;margin-right:.875rem}.icon-shape{display:inline-flex;padding:12px;text-align:center;border-radius:50%;align-items:center;justify-content:center}.icon-shape i,.icon-shape svg{font-size:1.25rem}.icon-shape.icon-lg i,.icon-shape.icon-lg svg{font-size:1.625rem}.icon-shape.icon-sm i,.icon-shape.icon-sm svg{font-size:.875rem}.icon-shape.icon-xs i,.icon-shape.icon-xs svg{font-size:.6rem}.icon-shape svg{width:30px;height:30px}.icon-shape-primary{color:#2643e9;background-color:rgba(138,152,235,.5)}.icon-shape-secondary{color:#cfe3f1;background-color:rgba(255,255,255,.5)}.icon-shape-success{color:#1aae6f;background-color:rgba(84,218,161,.5)}.icon-shape-info{color:#03acca;background-color:rgba(65,215,242,.5)}.icon-shape-warning{color:#ff3709;background-color:rgba(252,140,114,.5)}.icon-shape-danger{color:#f80031;background-color:rgba(247,103,131,.5)}.icon-shape-light{color:#879cb0;background-color:rgba(201,207,212,.5)}.icon-shape-dark{color:#090c0e;background-color:rgba(56,63,69,.5)}.icon-shape-default{color:#091428;background-color:rgba(35,65,116,.5)}.icon-shape-white{color:#e8e3e3;background-color:rgba(255,255,255,.5)}.icon-shape-neutral{color:#e8e3e3;background-color:rgba(255,255,255,.5)}.icon-shape-darker{color:#000;background-color:rgba(26,26,26,.5)}.list-group-space .list-group-item{margin-bottom:1.5rem;border-radius:.375rem}.list-group-img{width:3rem;height:3rem;margin:-.1rem 1.2rem 0 -.2rem;vertical-align:top;border-radius:50%}.list-group-content{min-width:0;flex:1 1}.list-group-content>p{line-height:1.5;margin:.2rem 0 0;color:#adb5bd}.list-group-heading{font-size:1rem;color:#32325d}.list-group-heading>small{font-weight:500;float:right;color:#adb5bd}.checklist-item{position:relative;display:flex;padding-left:.75rem;justify-content:space-between;align-items:center}.checklist-item:before{position:absolute;top:0;left:0;width:3px;height:100%;content:'';border-radius:8px;background-color:#5e72e4}.checklist-item-checked .checklist-info *{text-decoration:line-through}.checklist-item-primary:before{background-color:#5e72e4}.checklist-item-secondary:before{background-color:#f7fafc}.checklist-item-success:before{background-color:#2dce89}.checklist-item-info:before{background-color:#11cdef}.checklist-item-warning:before{background-color:#fb6340}.checklist-item-danger:before{background-color:#f5365c}.checklist-item-light:before{background-color:#adb5bd}.checklist-item-dark:before{background-color:#212529}.checklist-item-default:before{background-color:#172b4d}.checklist-item-white:before{background-color:#fff}.checklist-item-neutral:before{background-color:#fff}.checklist-item-darker:before{background-color:#000}.map-canvas{position:relative;width:100%;height:500px;border-radius:.375rem}.mask{position:absolute;top:0;left:0;width:100%;height:100%;transition:all .15s ease}@media (prefers-reduced-motion:reduce){.mask{transition:none}}.backdrop{position:fixed;z-index:1040;top:0;left:0;width:100%;height:100%;cursor:pointer}.backdrop-dark{background:rgba(0,0,0,.3)}.backdrop-light{background:rgba(255,255,255,.3)}.media-comment{margin-top:2rem}.media-comment-avatar{position:relative;z-index:1;margin-top:-1rem;margin-right:-2rem;transition:all .15s ease;border:4px solid #fff}@media (prefers-reduced-motion:reduce){.media-comment-avatar{transition:none}}.media-comment-text{position:relative;padding:1rem 1.25rem 1rem 2.5rem;border-radius:.4375rem;border-top-left-radius:0;background-color:#f6f9fc}.media-comment:hover .media-comment-avatar{transform:scale(1.1)}.modal-title{font-size:1.0625rem}.modal-fluid .modal-dialog{margin-top:0;margin-bottom:0}.modal-fluid .modal-content{border-radius:0}.modal-primary .modal-title{color:#fff}.modal-primary .modal-footer,.modal-primary .modal-header{border-color:rgba(255,255,255,.075)}.modal-primary .modal-content{color:#fff;background-color:#5e72e4}.modal-primary .modal-content .heading{color:#fff}.modal-primary .close>span:not(.sr-only){color:#fff}.modal-secondary .modal-title{color:#212529}.modal-secondary .modal-footer,.modal-secondary .modal-header{border-color:rgba(33,37,41,.075)}.modal-secondary .modal-content{color:#212529;background-color:#f7fafc}.modal-secondary .modal-content .heading{color:#212529}.modal-secondary .close>span:not(.sr-only){color:#fff}.modal-success .modal-title{color:#fff}.modal-success .modal-footer,.modal-success .modal-header{border-color:rgba(255,255,255,.075)}.modal-success .modal-content{color:#fff;background-color:#2dce89}.modal-success .modal-content .heading{color:#fff}.modal-success .close>span:not(.sr-only){color:#fff}.modal-info .modal-title{color:#fff}.modal-info .modal-footer,.modal-info .modal-header{border-color:rgba(255,255,255,.075)}.modal-info .modal-content{color:#fff;background-color:#11cdef}.modal-info .modal-content .heading{color:#fff}.modal-info .close>span:not(.sr-only){color:#fff}.modal-warning .modal-title{color:#fff}.modal-warning .modal-footer,.modal-warning .modal-header{border-color:rgba(255,255,255,.075)}.modal-warning .modal-content{color:#fff;background-color:#fb6340}.modal-warning .modal-content .heading{color:#fff}.modal-warning .close>span:not(.sr-only){color:#fff}.modal-danger .modal-title{color:#fff}.modal-danger .modal-footer,.modal-danger .modal-header{border-color:rgba(255,255,255,.075)}.modal-danger .modal-content{color:#fff;background-color:#f5365c}.modal-danger .modal-content .heading{color:#fff}.modal-danger .close>span:not(.sr-only){color:#fff}.modal-light .modal-title{color:#fff}.modal-light .modal-footer,.modal-light .modal-header{border-color:rgba(255,255,255,.075)}.modal-light .modal-content{color:#fff;background-color:#adb5bd}.modal-light .modal-content .heading{color:#fff}.modal-light .close>span:not(.sr-only){color:#fff}.modal-dark .modal-title{color:#fff}.modal-dark .modal-footer,.modal-dark .modal-header{border-color:rgba(255,255,255,.075)}.modal-dark .modal-content{color:#fff;background-color:#212529}.modal-dark .modal-content .heading{color:#fff}.modal-dark .close>span:not(.sr-only){color:#fff}.modal-default .modal-title{color:#fff}.modal-default .modal-footer,.modal-default .modal-header{border-color:rgba(255,255,255,.075)}.modal-default .modal-content{color:#fff;background-color:#172b4d}.modal-default .modal-content .heading{color:#fff}.modal-default .close>span:not(.sr-only){color:#fff}.modal-white .modal-title{color:#212529}.modal-white .modal-footer,.modal-white .modal-header{border-color:rgba(33,37,41,.075)}.modal-white .modal-content{color:#212529;background-color:#fff}.modal-white .modal-content .heading{color:#212529}.modal-white .close>span:not(.sr-only){color:#fff}.modal-neutral .modal-title{color:#212529}.modal-neutral .modal-footer,.modal-neutral .modal-header{border-color:rgba(33,37,41,.075)}.modal-neutral .modal-content{color:#212529;background-color:#fff}.modal-neutral .modal-content .heading{color:#212529}.modal-neutral .close>span:not(.sr-only){color:#fff}.modal-darker .modal-title{color:#fff}.modal-darker .modal-footer,.modal-darker .modal-header{border-color:rgba(255,255,255,.075)}.modal-darker .modal-content{color:#fff;background-color:#000}.modal-darker .modal-content .heading{color:#fff}.modal-darker .close>span:not(.sr-only){color:#fff}.navbar-horizontal .navbar-nav .nav-link{font-size:.875rem;font-weight:500;letter-spacing:0;text-transform:normal}.navbar-horizontal .navbar-nav .nav-link .nav-link-inner--text{margin-left:.25rem}.navbar-horizontal .navbar-brand{font-size:.875rem;font-size:.875rem;font-weight:600;letter-spacing:.05px;text-transform:uppercase}.navbar-horizontal .navbar-brand img{height:30px}.navbar-horizontal .navbar-dark .navbar-brand{color:#fff}.navbar-horizontal .navbar-light .navbar-brand{color:#32325d}.navbar-horizontal .navbar-nav .nav-item .media:not(:last-child){margin-bottom:1.5rem}@media (min-width:992px){.navbar-horizontal .navbar-nav .nav-item{margin-right:.5rem}.navbar-horizontal .navbar-nav .nav-item [data-toggle=dropdown]::after{transition:all .15s ease}.navbar-horizontal .navbar-nav .nav-item.show [data-toggle=dropdown]::after{transform:rotate(180deg)}.navbar-horizontal .navbar-nav .nav-link{padding-top:1rem;padding-bottom:1rem;border-radius:.375rem}.navbar-horizontal .navbar-nav .nav-link i{margin-right:.625rem}.navbar-horizontal .navbar-nav .nav-link-icon{font-size:1rem;padding-right:.5rem!important;padding-left:.5rem!important;border-radius:.375rem}.navbar-horizontal .navbar-nav .nav-link-icon i{margin-right:0}.navbar-horizontal .navbar-nav .dropdown-menu{margin:0;pointer-events:none;opacity:0}.navbar-horizontal .navbar-nav .dropdown-menu:before{position:absolute;z-index:-5;bottom:100%;left:20px;display:block;width:16px;height:16px;content:'';transform:rotate(-45deg) translateY(1rem);border-radius:.25rem;background:#fff;box-shadow:none}.navbar-horizontal .navbar-nav .dropdown-menu-right:before{right:20px;left:auto}.navbar-horizontal .navbar-nav:not(.navbar-nav-hover) .dropdown-menu.show{animation:show-navbar-dropdown .25s ease forwards;pointer-events:auto;opacity:1}.navbar-horizontal .navbar-nav:not(.navbar-nav-hover) .dropdown-menu.close{display:block;animation:hide-navbar-dropdown .15s ease backwards}.navbar-horizontal .navbar-nav.navbar-nav-hover .dropdown-menu{display:block;transition:visibility .25s,opacity .25s,transform .25s;transform:translate(0,10px) perspective(200px) rotateX(-2deg);pointer-events:none;opacity:0}.navbar-horizontal .navbar-nav.navbar-nav-hover .nav-item.dropdown:hover>.dropdown-menu{display:block;visibility:visible;transform:translate(0,0);animation:none;pointer-events:auto;opacity:1}.navbar-horizontal .navbar-nav .dropdown-menu-inner{position:relative;padding:1rem}}.navbar-horizontal.navbar-transparent{position:absolute;z-index:100;top:0;width:100%;border:0;background-color:transparent;box-shadow:none}.navbar-horizontal.navbar-transparent .navbar-brand{color:#fff}.navbar-horizontal.navbar-transparent .navbar-toggler{color:#fff}.navbar-horizontal.navbar-transparent .navbar-toggler-icon{background-image:url('data:image/svg+xml,%3csvg viewBox=\'0 0 30 30\' xmlns=\'http://www.w3.org/2000/svg\'%3e%3cpath stroke=\'rgba(255, 255, 255, 0.95)\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e')}@media (min-width:768px){.navbar-horizontal.navbar-transparent .navbar-nav .nav-link{color:rgba(255,255,255,.95)}.navbar-horizontal.navbar-transparent .navbar-nav .nav-link:focus,.navbar-horizontal.navbar-transparent .navbar-nav .nav-link:hover{color:rgba(255,255,255,.65)}.navbar-horizontal.navbar-transparent .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-horizontal.navbar-transparent .navbar-nav .active>.nav-link,.navbar-horizontal.navbar-transparent .navbar-nav .nav-link.active,.navbar-horizontal.navbar-transparent .navbar-nav .nav-link.show,.navbar-horizontal.navbar-transparent .navbar-nav .show>.nav-link{color:rgba(255,255,255,.65)}.navbar-horizontal.navbar-transparent .navbar-brand{color:rgba(255,255,255,.95)}.navbar-horizontal.navbar-transparent .navbar-brand:focus,.navbar-horizontal.navbar-transparent .navbar-brand:hover{color:rgba(255,255,255,.95)}}.navbar-horizontal .navbar-collapse-header{display:none}@media (max-width:991.98px){.navbar-horizontal .navbar-nav .nav-link{padding:.625rem 0;color:#172b4d!important}.navbar-horizontal .navbar-nav .dropdown-menu{min-width:auto;box-shadow:none}.navbar-horizontal .navbar-nav .dropdown-menu .media svg{width:30px}.navbar-horizontal .navbar-collapse{position:absolute;z-index:1050;top:0;right:0;left:0;overflow-y:auto;width:calc(100% - 1.4rem);height:auto!important;margin:.7rem;opacity:0}.navbar-horizontal .navbar-collapse .navbar-toggler{position:relative;display:inline-block;width:20px;height:20px;padding:0;cursor:pointer}.navbar-horizontal .navbar-collapse .navbar-toggler span{position:absolute;display:block;width:100%;height:2px;opacity:1;border-radius:2px;background:#283448}.navbar-horizontal .navbar-collapse .navbar-toggler :nth-child(1){transform:rotate(135deg)}.navbar-horizontal .navbar-collapse .navbar-toggler :nth-child(2){transform:rotate(-135deg)}.navbar-horizontal .navbar-collapse .navbar-collapse-header{display:block;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid rgba(0,0,0,.1)}.navbar-horizontal .navbar-collapse .collapse-brand img{height:36px}.navbar-horizontal .navbar-collapse .collapse-close{text-align:right}.navbar-horizontal .navbar-collapse.collapsing,.navbar-horizontal .navbar-collapse.show{padding:1.5rem;animation:show-navbar-collapse .2s ease forwards;border-radius:.375rem;background:#fff;box-shadow:0 50px 100px rgba(50,50,93,.1),0 15px 35px rgba(50,50,93,.15),0 5px 15px rgba(0,0,0,.1)}.navbar-horizontal .navbar-collapse.collapsing-out{animation:hide-navbar-collapse .2s ease forwards}}@keyframes show-navbar-collapse{0%{transform:scale(.95);transform-origin:100% 0;opacity:0}100%{transform:scale(1);opacity:1}}@keyframes hide-navbar-collapse{from{transform:scale(1);transform-origin:100% 0;opacity:1}to{transform:scale(.95);opacity:0}}@keyframes show-navbar-dropdown{0%{transition:visibility .25s,opacity .25s,transform .25s;transform:translate(0,10px) perspective(200px) rotateX(-2deg);opacity:0}100%{transform:translate(0,0);opacity:1}}@keyframes hide-navbar-dropdown{from{opacity:1}to{transform:translate(0,10px);opacity:0}}.navbar-floating-wrapper{position:absolute;z-index:1;top:0;left:0;width:100%;padding-top:1rem;padding-bottom:1rem}.navbar-floating-wrapper .navbar{border-radius:.375rem}.navbar-vertical{padding-top:0;border-width:0 0 1px 0;border-style:solid;box-shadow:0 0 2rem 0 rgba(136,152,170,.15)}.navbar-vertical.navbar-light{border-color:rgba(0,0,0,.05);background-color:#f6f9fc}.navbar-vertical.navbar-dark{border-color:rgba(255,255,255,.1);background-color:transparent}.navbar-vertical .navbar-brand{margin-right:0}.navbar-vertical .navbar-brand-img,.navbar-vertical .navbar-brand>img{max-width:100%;max-height:2rem}@media (min-width:768px){.navbar-vertical .navbar-collapse{margin-right:-1rem;margin-left:-1rem}.navbar-vertical .navbar-collapse:before{display:block;margin:.5rem;content:''}}.navbar-vertical .navbar-nav{margin-right:-1rem;margin-left:-1rem}.navbar-vertical .navbar-nav .nav-link{font-size:.875rem;font-weight:500;padding-right:1rem;padding-left:1rem}.navbar-vertical .navbar-nav .nav-link.active{position:relative}.navbar-vertical .navbar-nav .nav-link>i{font-size:.9375rem;line-height:1.5rem;min-width:2rem}.navbar-vertical .navbar-nav .nav-link .dropdown-menu{border:none}.navbar-vertical .navbar-nav .nav-link .dropdown-menu .dropdown-menu{margin-left:.5rem}.navbar-vertical .navbar-nav .nav-sm .nav-link{font-size:.8125rem}.navbar-vertical .navbar-nav .nav-link{display:flex;align-items:center}.navbar-vertical .navbar-nav .nav-link[data-toggle=collapse]:after{font-family:'Font Awesome 5 Free';font-weight:700;font-style:normal;font-variant:normal;display:inline-block;margin-left:auto;content:'\f105';transition:all .15s ease;color:#ced4da;text-rendering:auto;-webkit-font-smoothing:antialiased}@media (prefers-reduced-motion:reduce){.navbar-vertical .navbar-nav .nav-link[data-toggle=collapse]:after{transition:none}}.navbar-vertical .navbar-nav .nav-link[data-toggle=collapse][aria-expanded=true]:after{transform:rotate(90deg);color:#5e72e4}.navbar-vertical .navbar-nav .nav .nav-link{padding-left:3rem}.navbar-vertical .navbar-nav .nav .nav .nav-link{padding-left:3.5rem}.navbar-vertical .navbar-heading{font-size:.75rem;padding-top:.25rem;padding-bottom:.25rem;letter-spacing:.04em;text-transform:uppercase}.navbar-vertical.navbar-expand-xs{position:fixed;top:0;bottom:0;display:block;overflow-y:auto;width:100%;max-width:62px;padding-right:0;padding-left:0}.navbar-vertical.navbar-expand-xs .navbar-inner{padding-right:1.5rem;padding-left:1.5rem}.navbar-vertical.navbar-expand-xs>[class*=container]{flex-direction:column;min-height:100%;padding-right:0;padding-left:0;align-items:stretch}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.navbar-vertical.navbar-expand-xs>[class*=container]{height:100%;min-height:none}}.navbar-vertical.navbar-expand-xs.fixed-left{left:0;border-width:0 1px 0 0}.navbar-vertical.navbar-expand-xs.fixed-right{right:0;border-width:0 0 0 1px}.navbar-vertical.navbar-expand-xs .navbar-collapse{display:flex;flex-direction:column;margin-right:-1.5rem;margin-left:-1.5rem;padding-right:1.5rem;padding-left:1.5rem;flex:1 1;align-items:stretch}.navbar-vertical.navbar-expand-xs .navbar-collapse>*{min-width:100%}.navbar-vertical.navbar-expand-xs .navbar-nav{flex-direction:column;margin-right:-1.5rem;margin-left:-1.5rem}.navbar-vertical.navbar-expand-xs .navbar-nav .nav-link{padding:.675rem 1.5rem}.navbar-vertical.navbar-expand-xs .navbar-nav>.nav-item{margin-top:2px}.navbar-vertical.navbar-expand-xs .navbar-nav>.nav-item>.nav-link.active{margin-right:.5rem;margin-left:.5rem;padding-right:1rem;padding-left:1rem;border-radius:.375rem;background:#f6f9fc}.navbar-vertical.navbar-expand-xs .lavalamp-object{width:calc(100% - 1rem)!important;margin-right:.5rem;margin-left:.5rem;padding-right:1rem;padding-left:1rem;color:#fff;border-radius:.375rem;background:#5e72e4}.navbar-vertical.navbar-expand-xs .navbar-nav .nav .nav-link{padding-top:.45rem;padding-bottom:.45rem;padding-left:3.5rem}.navbar-vertical.navbar-expand-xs .navbar-nav .nav .nav .nav-link{padding-left:4.25rem}@media (min-width:576px){.navbar-vertical.navbar-expand-sm{position:fixed;top:0;bottom:0;display:block;overflow-y:auto;width:100%;max-width:62px;padding-right:0;padding-left:0}.navbar-vertical.navbar-expand-sm .navbar-inner{padding-right:1.5rem;padding-left:1.5rem}.navbar-vertical.navbar-expand-sm>[class*=container]{flex-direction:column;min-height:100%;padding-right:0;padding-left:0;align-items:stretch}}@media all and (min-width:576px) and (-ms-high-contrast:none),(min-width:576px) and (-ms-high-contrast:active){.navbar-vertical.navbar-expand-sm>[class*=container]{height:100%;min-height:none}}@media (min-width:576px){.navbar-vertical.navbar-expand-sm.fixed-left{left:0;border-width:0 1px 0 0}.navbar-vertical.navbar-expand-sm.fixed-right{right:0;border-width:0 0 0 1px}.navbar-vertical.navbar-expand-sm .navbar-collapse{display:flex;flex-direction:column;margin-right:-1.5rem;margin-left:-1.5rem;padding-right:1.5rem;padding-left:1.5rem;flex:1 1;align-items:stretch}.navbar-vertical.navbar-expand-sm .navbar-collapse>*{min-width:100%}.navbar-vertical.navbar-expand-sm .navbar-nav{flex-direction:column;margin-right:-1.5rem;margin-left:-1.5rem}.navbar-vertical.navbar-expand-sm .navbar-nav .nav-link{padding:.675rem 1.5rem}.navbar-vertical.navbar-expand-sm .navbar-nav>.nav-item{margin-top:2px}.navbar-vertical.navbar-expand-sm .navbar-nav>.nav-item>.nav-link.active{margin-right:.5rem;margin-left:.5rem;padding-right:1rem;padding-left:1rem;border-radius:.375rem;background:#f6f9fc}.navbar-vertical.navbar-expand-sm .lavalamp-object{width:calc(100% - 1rem)!important;margin-right:.5rem;margin-left:.5rem;padding-right:1rem;padding-left:1rem;color:#fff;border-radius:.375rem;background:#5e72e4}.navbar-vertical.navbar-expand-sm .navbar-nav .nav .nav-link{padding-top:.45rem;padding-bottom:.45rem;padding-left:3.5rem}.navbar-vertical.navbar-expand-sm .navbar-nav .nav .nav .nav-link{padding-left:4.25rem}}@media (min-width:768px){.navbar-vertical.navbar-expand-md{position:fixed;top:0;bottom:0;display:block;overflow-y:auto;width:100%;max-width:62px;padding-right:0;padding-left:0}.navbar-vertical.navbar-expand-md .navbar-inner{padding-right:1.5rem;padding-left:1.5rem}.navbar-vertical.navbar-expand-md>[class*=container]{flex-direction:column;min-height:100%;padding-right:0;padding-left:0;align-items:stretch}}@media all and (min-width:768px) and (-ms-high-contrast:none),(min-width:768px) and (-ms-high-contrast:active){.navbar-vertical.navbar-expand-md>[class*=container]{height:100%;min-height:none}}@media (min-width:768px){.navbar-vertical.navbar-expand-md.fixed-left{left:0;border-width:0 1px 0 0}.navbar-vertical.navbar-expand-md.fixed-right{right:0;border-width:0 0 0 1px}.navbar-vertical.navbar-expand-md .navbar-collapse{display:flex;flex-direction:column;margin-right:-1.5rem;margin-left:-1.5rem;padding-right:1.5rem;padding-left:1.5rem;flex:1 1;align-items:stretch}.navbar-vertical.navbar-expand-md .navbar-collapse>*{min-width:100%}.navbar-vertical.navbar-expand-md .navbar-nav{flex-direction:column;margin-right:-1.5rem;margin-left:-1.5rem}.navbar-vertical.navbar-expand-md .navbar-nav .nav-link{padding:.675rem 1.5rem}.navbar-vertical.navbar-expand-md .navbar-nav>.nav-item{margin-top:2px}.navbar-vertical.navbar-expand-md .navbar-nav>.nav-item>.nav-link.active{margin-right:.5rem;margin-left:.5rem;padding-right:1rem;padding-left:1rem;border-radius:.375rem;background:#f6f9fc}.navbar-vertical.navbar-expand-md .lavalamp-object{width:calc(100% - 1rem)!important;margin-right:.5rem;margin-left:.5rem;padding-right:1rem;padding-left:1rem;color:#fff;border-radius:.375rem;background:#5e72e4}.navbar-vertical.navbar-expand-md .navbar-nav .nav .nav-link{padding-top:.45rem;padding-bottom:.45rem;padding-left:3.5rem}.navbar-vertical.navbar-expand-md .navbar-nav .nav .nav .nav-link{padding-left:4.25rem}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg{position:fixed;top:0;bottom:0;display:block;overflow-y:auto;width:100%;max-width:62px;padding-right:0;padding-left:0}.navbar-vertical.navbar-expand-lg .navbar-inner{padding-right:1.5rem;padding-left:1.5rem}.navbar-vertical.navbar-expand-lg>[class*=container]{flex-direction:column;min-height:100%;padding-right:0;padding-left:0;align-items:stretch}}@media all and (min-width:992px) and (-ms-high-contrast:none),(min-width:992px) and (-ms-high-contrast:active){.navbar-vertical.navbar-expand-lg>[class*=container]{height:100%;min-height:none}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg.fixed-left{left:0;border-width:0 1px 0 0}.navbar-vertical.navbar-expand-lg.fixed-right{right:0;border-width:0 0 0 1px}.navbar-vertical.navbar-expand-lg .navbar-collapse{display:flex;flex-direction:column;margin-right:-1.5rem;margin-left:-1.5rem;padding-right:1.5rem;padding-left:1.5rem;flex:1 1;align-items:stretch}.navbar-vertical.navbar-expand-lg .navbar-collapse>*{min-width:100%}.navbar-vertical.navbar-expand-lg .navbar-nav{flex-direction:column;margin-right:-1.5rem;margin-left:-1.5rem}.navbar-vertical.navbar-expand-lg .navbar-nav .nav-link{padding:.675rem 1.5rem}.navbar-vertical.navbar-expand-lg .navbar-nav>.nav-item{margin-top:2px}.navbar-vertical.navbar-expand-lg .navbar-nav>.nav-item>.nav-link.active{margin-right:.5rem;margin-left:.5rem;padding-right:1rem;padding-left:1rem;border-radius:.375rem;background:#f6f9fc}.navbar-vertical.navbar-expand-lg .lavalamp-object{width:calc(100% - 1rem)!important;margin-right:.5rem;margin-left:.5rem;padding-right:1rem;padding-left:1rem;color:#fff;border-radius:.375rem;background:#5e72e4}.navbar-vertical.navbar-expand-lg .navbar-nav .nav .nav-link{padding-top:.45rem;padding-bottom:.45rem;padding-left:3.5rem}.navbar-vertical.navbar-expand-lg .navbar-nav .nav .nav .nav-link{padding-left:4.25rem}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl{position:fixed;top:0;bottom:0;display:block;overflow-y:auto;width:100%;max-width:62px;padding-right:0;padding-left:0}.navbar-vertical.navbar-expand-xl .navbar-inner{padding-right:1.5rem;padding-left:1.5rem}.navbar-vertical.navbar-expand-xl>[class*=container]{flex-direction:column;min-height:100%;padding-right:0;padding-left:0;align-items:stretch}}@media all and (min-width:1200px) and (-ms-high-contrast:none),(min-width:1200px) and (-ms-high-contrast:active){.navbar-vertical.navbar-expand-xl>[class*=container]{height:100%;min-height:none}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl.fixed-left{left:0;border-width:0 1px 0 0}.navbar-vertical.navbar-expand-xl.fixed-right{right:0;border-width:0 0 0 1px}.navbar-vertical.navbar-expand-xl .navbar-collapse{display:flex;flex-direction:column;margin-right:-1.5rem;margin-left:-1.5rem;padding-right:1.5rem;padding-left:1.5rem;flex:1 1;align-items:stretch}.navbar-vertical.navbar-expand-xl .navbar-collapse>*{min-width:100%}.navbar-vertical.navbar-expand-xl .navbar-nav{flex-direction:column;margin-right:-1.5rem;margin-left:-1.5rem}.navbar-vertical.navbar-expand-xl .navbar-nav .nav-link{padding:.675rem 1.5rem}.navbar-vertical.navbar-expand-xl .navbar-nav>.nav-item{margin-top:2px}.navbar-vertical.navbar-expand-xl .navbar-nav>.nav-item>.nav-link.active{margin-right:.5rem;margin-left:.5rem;padding-right:1rem;padding-left:1rem;border-radius:.375rem;background:#f6f9fc}.navbar-vertical.navbar-expand-xl .lavalamp-object{width:calc(100% - 1rem)!important;margin-right:.5rem;margin-left:.5rem;padding-right:1rem;padding-left:1rem;color:#fff;border-radius:.375rem;background:#5e72e4}.navbar-vertical.navbar-expand-xl .navbar-nav .nav .nav-link{padding-top:.45rem;padding-bottom:.45rem;padding-left:3.5rem}.navbar-vertical.navbar-expand-xl .navbar-nav .nav .nav .nav-link{padding-left:4.25rem}}.navbar-vertical.navbar-expand-xs.fixed-left+.main-content{margin-left:62px}.navbar-vertical.navbar-expand-xs.fixed-right+.main-content{margin-right:62px}@media (min-width:576px){.navbar-vertical.navbar-expand-sm.fixed-left+.main-content{margin-left:62px}.navbar-vertical.navbar-expand-sm.fixed-right+.main-content{margin-right:62px}}@media (min-width:768px){.navbar-vertical.navbar-expand-md.fixed-left+.main-content{margin-left:62px}.navbar-vertical.navbar-expand-md.fixed-right+.main-content{margin-right:62px}}@media (min-width:992px){.navbar-vertical.navbar-expand-lg.fixed-left+.main-content{margin-left:62px}.navbar-vertical.navbar-expand-lg.fixed-right+.main-content{margin-right:62px}}@media (min-width:1200px){.navbar-vertical.navbar-expand-xl.fixed-left+.main-content{margin-left:62px}.navbar-vertical.navbar-expand-xl.fixed-right+.main-content{margin-right:62px}}.sidenav.fixed-left+.main-content{margin-left:62px;transition:all .15s ease}@media (prefers-reduced-motion:reduce){.sidenav.fixed-left+.main-content{transition:none}}.sidenav.fixed-right+.main-content{margin-right:62px;transition:all .15s ease}@media (prefers-reduced-motion:reduce){.sidenav.fixed-right+.main-content{transition:none}}@media (min-width:1200px){.g-sidenav-pinned .sidenav.fixed-left+.main-content{margin-left:250px}.g-sidenav-pinned .sidenav.fixed-right+.main-content{margin-right:250px}}.sidenav{z-index:1050;transition:all .15s ease}@media (prefers-reduced-motion:reduce){.sidenav{transition:none}}@media (min-width:1200px){.sidenav:hover{max-width:250px}.sidenav .sidenav-toggler{padding:1.5rem}}.sidenav .navbar-brand,.sidenav .navbar-heading{display:none;padding:1.5rem}.sidenav-header{height:78px}.g-sidenav-show .sidenav .navbar-brand,.g-sidenav-show .sidenav .navbar-heading{display:block}.g-sidenav-show .sidenav .nav-item .collapse{height:auto;transition:all .15s ease}@media (prefers-reduced-motion:reduce){.g-sidenav-show .sidenav .nav-item .collapse{transition:none}}.g-sidenav-pinned .sidenav{max-width:250px!important}.g-sidenav-pinned .sidenav .navbar-brand,.g-sidenav-pinned .sidenav .navbar-heading{display:block}.g-sidenav-hidden:not(.g-sidenav-show) .sidenav .navbar-nav>.nav-item>.nav-link:after{content:''}.g-sidenav-hidden:not(.g-sidenav-show) .sidenav .nav-item .collapse{display:none!important}.g-sidenav-hidden:not(.g-sidenav-show) .sidenav .nav-link-text{display:none!important}.g-sidenav-hide .sidenav .navbar-nav>.nav-item>.nav-link:after{content:''}.g-sidenav-hide .sidenav .nav-item .collapse{display:none!important}.g-sidenav-hide .sidenav .nav-link-text{display:none!important}@media (max-width:1199.98px){.sidenav{transform:translateX(-62px)}.sidenav.fixed-left+.main-content{margin-left:0!important}.g-sidenav-pinned .sidenav{transform:translateX(0)}}.sidenav-toggler-inner,.sidenav-toggler-line{width:18px;transition:all .15s ease}@media (prefers-reduced-motion:reduce){.sidenav-toggler-inner,.sidenav-toggler-line{transition:none}}.sidenav-toggler-inner{position:relative}.sidenav-toggler-inner:before{position:absolute;top:-14px;left:-11px;width:40px;height:40px;content:'';transition:all .15s cubic-bezier(.68,-.55,.265,1.55);transform:scale(0);border-radius:50%}@media (prefers-reduced-motion:reduce){.sidenav-toggler-inner:before{transition:none}}.sidenav-toggler-line{position:relative;display:block;height:2px;background-color:#172b4d}.sidenav-toggler-line:not(:last-child){margin-bottom:3px}.sidenav-toggler-dark .sidenav-toggler-line{background-color:#fff}.sidenav-toggler{cursor:pointer}.sidenav-toggler.active .sidenav-toggler-inner:before{transform:scale(1)}.sidenav-toggler.active .sidenav-toggler-line:first-child{width:13px;transform:translateX(5px)}.sidenav-toggler.active .sidenav-toggler-line:last-child{width:13px;transform:translateX(5px)}.navbar-search .input-group{transition:background-color .3s linear;transition-delay:.15s;border:0 solid;border-radius:2rem}@media (prefers-reduced-motion:reduce){.navbar-search .input-group{transition:none}}.navbar-search .input-group .input-group-text{padding-left:1rem;border:0;background-color:transparent}.navbar-search .form-control{width:250px;transition:all .15s cubic-bezier(.68,-.55,.265,1.55);border:0;background-color:transparent}@media (prefers-reduced-motion:reduce){.navbar-search .form-control{transition:none}}.navbar-search .focused .input-group .form-control{width:380px}.navbar-search .close{display:none}.navbar-search-dark .input-group{border-color:rgba(255,255,255,.6);background-color:rgba(23,43,77,.8)}.navbar-search-dark .input-group-text{color:rgba(255,255,255,.6)}.navbar-search-dark .form-control{color:rgba(255,255,255,.9)}.navbar-search-dark .form-control::-ms-input-placeholder{color:rgba(255,255,255,.6)}.navbar-search-dark .form-control::placeholder{color:rgba(255,255,255,.6)}.navbar-search-dark .focused .input-group{border-color:rgba(255,255,255,.9);background-color:rgba(23,43,77,.9)}.navbar-search-light .input-group{border-color:rgba(0,0,0,.6);background-color:rgba(255,255,255,.9)}.navbar-search-light .input-group-text{color:rgba(0,0,0,.6)}.navbar-search-light .form-control{color:rgba(0,0,0,.9)}.navbar-search-light .form-control::-ms-input-placeholder{color:rgba(0,0,0,.6)}.navbar-search-light .form-control::placeholder{color:rgba(0,0,0,.6)}.navbar-search-light .focused .input-group{border-color:rgba(0,0,0,.9);background-color:#fff}@media (max-width:575.98px){.navbar-search{display:none;width:100%;transition:all .15s cubic-bezier(.68,-.55,.265,1.55);transform:translateX(-150%)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.navbar-search{transition:none}}@media (max-width:575.98px){.navbar-search .form-group{width:100%}.navbar-search .form-control{width:auto}.navbar-search .focused .input-group .form-control{width:auto}.navbar-search .close{display:none;opacity:0}.navbar-search .close span{width:auto;height:auto}.navbar-top .navbar-nav{transition:all .15s ease}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.navbar-top .navbar-nav{transition:none}}@media (max-width:575.98px){.g-navbar-search-showing .navbar-search .close{display:block}.g-navbar-search-showing .navbar-top .navbar-nav{display:flex;transform:translateX(150%);opacity:1}.g-navbar-search-show .navbar-search{display:block}.g-navbar-search-show .navbar-search .form-control{width:auto}.g-navbar-search-show .navbar-search .close{line-height:46px;position:absolute;top:0;right:0;width:46px;height:46px;cursor:pointer;text-align:center;color:#fff}.g-navbar-search-show .navbar-top .navbar-nav{display:none}.g-navbar-search-show .navbar-top .navbar-collapse{width:100%}.g-navbar-search-shown .navbar-search{transform:translateX(0)}.g-navbar-search-shown .navbar-search .close{display:block;opacity:1}.g-navbar-search-hiding .navbar-top .navbar-nav{display:flex;transform:translateX(150%);opacity:0}.g-navbar-search-hidden .navbar-top .navbar-nav{transform:translateX(0);opacity:1}}.navbar .dropdown-menu{margin:0;pointer-events:none;opacity:0}.navbar .dropdown-menu-arrow:before{position:absolute;z-index:-5;bottom:100%;left:20px;display:block;width:12px;height:12px;content:'';transform:rotate(-45deg) translateY(12px);border-radius:2px;background:#fff;box-shadow:none}.navbar .dropdown-menu-right:before{right:20px;left:auto}.navbar:not(.navbar-nav-hover) .dropdown-menu.show{animation:show-navbar-dropdown .25s ease forwards;pointer-events:auto;opacity:1}.navbar:not(.navbar-nav-hover) .dropdown-menu.close{display:block;animation:hide-navbar-dropdown .15s ease backwards}.navbar.navbar-nav-hover .dropdown-menu{display:block;transition:visibility .25s,opacity .25s,transform .25s;transform:translate(0,10px) perspective(200px) rotateX(-2deg);pointer-events:none;opacity:0}.navbar.navbar-nav-hover .nav-item.dropdown:hover>.dropdown-menu{display:block;visibility:visible;transform:translate(0,0);animation:none;pointer-events:auto;opacity:1}.navbar .dropdown-menu-inner{position:relative;padding:1rem}@keyframes show-navbar-dropdown{0%{transition:visibility .25s,opacity .25s,transform .25s;transform:translate(0,10px) perspective(200px);opacity:0}100%{transform:translate(0,0);opacity:1}}@keyframes hide-navbar-dropdown{from{opacity:1}to{transform:translate(0,10px);opacity:0}}.navbar-collapse-header{display:none}@keyframes show-navbar-collapse{0%{transform:scale(.95);transform-origin:100% 0;opacity:0}100%{transform:scale(1);opacity:1}}@keyframes hide-navbar-collapse{from{transform:scale(1);transform-origin:100% 0;opacity:1}to{transform:scale(.95);opacity:0}}.navbar-top{padding-right:1rem;padding-left:1rem;border:0}.navbar-top .container,.navbar-top .container-fluid{padding-right:15px;padding-left:15px}@media (min-width:576px){.navbar-top .navbar-brand{display:none}}@media (max-width:575.98px){.navbar-top .navbar-collapse{width:100%}.navbar-top .nav-item{position:static}.navbar-top .nav-item .dropdown-menu{position:absolute;right:auto;left:3%;width:94%;min-width:auto}}.navbar-top.border-bottom.navbar-dark{border-color:rgba(255,255,255,.08)!important}.navbar-top.border-bottom.navbar-light{border-color:rgba(0,0,0,.04)!important}.sidenav-pinned .navbar-top .navbar-brand{display:none}.nav-wrapper{padding:1rem 0;border-top-left-radius:.375rem;border-top-right-radius:.375rem}.nav-wrapper+.card{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.nav-link{color:#525f7f}.nav-link:hover{color:#5e72e4}.nav-link i.ni{position:relative;top:2px}.nav-pills .nav-item:not(:last-child){padding-right:1rem}.nav-pills .nav-link{font-size:.875rem;font-weight:500;padding:.75rem 1rem;transition:all .15s ease;color:#5e72e4;background-color:#fff;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.nav-pills .nav-link:hover{color:#485fe0}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#5e72e4}@media (max-width:575.98px){.nav-pills .nav-item{margin-bottom:1rem}}@media (max-width:767.98px){.nav-pills:not(.nav-pills-circle) .nav-item{padding-right:0}}.nav-pills-circle .nav-link{line-height:60px;width:60px;height:60px;padding:0;text-align:center;border-radius:50%}.nav-pills-circle .nav-link-icon i,.nav-pills-circle .nav-link-icon svg{font-size:1rem}.page-item.active .page-link{box-shadow:0 7px 14px rgba(50,50,93,.1),0 3px 6px rgba(0,0,0,.08)}.page-item .page-link,.page-item span{font-size:.875rem;display:flex;width:36px;height:36px;margin:0 3px;padding:0;border-radius:50%!important;align-items:center;justify-content:center}.pagination-lg .page-item .page-link,.pagination-lg .page-item span{line-height:46px;width:46px;height:46px}.pagination-sm .page-item .page-link,.pagination-sm .page-item span{line-height:30px;width:30px;height:30px}.popover{border:0}.popover-header{font-weight:600}.popover-primary{background-color:#5e72e4}.popover-primary .popover-header{color:#fff;background-color:#5e72e4}.popover-primary .popover-body{color:#fff}.popover-primary .popover-header{border-color:rgba(255,255,255,.2)}.popover-primary.bs-popover-auto[x-placement^=top] .arrow::after,.popover-primary.bs-popover-top .arrow::after{border-top-color:#5e72e4}.popover-primary.bs-popover-auto[x-placement^=right] .arrow::after,.popover-primary.bs-popover-right .arrow::after{border-right-color:#5e72e4}.popover-primary.bs-popover-auto[x-placement^=bottom] .arrow::after,.popover-primary.bs-popover-bottom .arrow::after{border-bottom-color:#5e72e4}.popover-primary.bs-popover-auto[x-placement^=left] .arrow::after,.popover-primary.bs-popover-left .arrow::after{border-left-color:#5e72e4}.popover-secondary{background-color:#f7fafc}.popover-secondary .popover-header{color:#212529;background-color:#f7fafc}.popover-secondary .popover-body{color:#212529}.popover-secondary .popover-header{border-color:rgba(33,37,41,.2)}.popover-secondary.bs-popover-auto[x-placement^=top] .arrow::after,.popover-secondary.bs-popover-top .arrow::after{border-top-color:#f7fafc}.popover-secondary.bs-popover-auto[x-placement^=right] .arrow::after,.popover-secondary.bs-popover-right .arrow::after{border-right-color:#f7fafc}.popover-secondary.bs-popover-auto[x-placement^=bottom] .arrow::after,.popover-secondary.bs-popover-bottom .arrow::after{border-bottom-color:#f7fafc}.popover-secondary.bs-popover-auto[x-placement^=left] .arrow::after,.popover-secondary.bs-popover-left .arrow::after{border-left-color:#f7fafc}.popover-success{background-color:#2dce89}.popover-success .popover-header{color:#fff;background-color:#2dce89}.popover-success .popover-body{color:#fff}.popover-success .popover-header{border-color:rgba(255,255,255,.2)}.popover-success.bs-popover-auto[x-placement^=top] .arrow::after,.popover-success.bs-popover-top .arrow::after{border-top-color:#2dce89}.popover-success.bs-popover-auto[x-placement^=right] .arrow::after,.popover-success.bs-popover-right .arrow::after{border-right-color:#2dce89}.popover-success.bs-popover-auto[x-placement^=bottom] .arrow::after,.popover-success.bs-popover-bottom .arrow::after{border-bottom-color:#2dce89}.popover-success.bs-popover-auto[x-placement^=left] .arrow::after,.popover-success.bs-popover-left .arrow::after{border-left-color:#2dce89}.popover-info{background-color:#11cdef}.popover-info .popover-header{color:#fff;background-color:#11cdef}.popover-info .popover-body{color:#fff}.popover-info .popover-header{border-color:rgba(255,255,255,.2)}.popover-info.bs-popover-auto[x-placement^=top] .arrow::after,.popover-info.bs-popover-top .arrow::after{border-top-color:#11cdef}.popover-info.bs-popover-auto[x-placement^=right] .arrow::after,.popover-info.bs-popover-right .arrow::after{border-right-color:#11cdef}.popover-info.bs-popover-auto[x-placement^=bottom] .arrow::after,.popover-info.bs-popover-bottom .arrow::after{border-bottom-color:#11cdef}.popover-info.bs-popover-auto[x-placement^=left] .arrow::after,.popover-info.bs-popover-left .arrow::after{border-left-color:#11cdef}.popover-warning{background-color:#fb6340}.popover-warning .popover-header{color:#fff;background-color:#fb6340}.popover-warning .popover-body{color:#fff}.popover-warning .popover-header{border-color:rgba(255,255,255,.2)}.popover-warning.bs-popover-auto[x-placement^=top] .arrow::after,.popover-warning.bs-popover-top .arrow::after{border-top-color:#fb6340}.popover-warning.bs-popover-auto[x-placement^=right] .arrow::after,.popover-warning.bs-popover-right .arrow::after{border-right-color:#fb6340}.popover-warning.bs-popover-auto[x-placement^=bottom] .arrow::after,.popover-warning.bs-popover-bottom .arrow::after{border-bottom-color:#fb6340}.popover-warning.bs-popover-auto[x-placement^=left] .arrow::after,.popover-warning.bs-popover-left .arrow::after{border-left-color:#fb6340}.popover-danger{background-color:#f5365c}.popover-danger .popover-header{color:#fff;background-color:#f5365c}.popover-danger .popover-body{color:#fff}.popover-danger .popover-header{border-color:rgba(255,255,255,.2)}.popover-danger.bs-popover-auto[x-placement^=top] .arrow::after,.popover-danger.bs-popover-top .arrow::after{border-top-color:#f5365c}.popover-danger.bs-popover-auto[x-placement^=right] .arrow::after,.popover-danger.bs-popover-right .arrow::after{border-right-color:#f5365c}.popover-danger.bs-popover-auto[x-placement^=bottom] .arrow::after,.popover-danger.bs-popover-bottom .arrow::after{border-bottom-color:#f5365c}.popover-danger.bs-popover-auto[x-placement^=left] .arrow::after,.popover-danger.bs-popover-left .arrow::after{border-left-color:#f5365c}.popover-light{background-color:#adb5bd}.popover-light .popover-header{color:#fff;background-color:#adb5bd}.popover-light .popover-body{color:#fff}.popover-light .popover-header{border-color:rgba(255,255,255,.2)}.popover-light.bs-popover-auto[x-placement^=top] .arrow::after,.popover-light.bs-popover-top .arrow::after{border-top-color:#adb5bd}.popover-light.bs-popover-auto[x-placement^=right] .arrow::after,.popover-light.bs-popover-right .arrow::after{border-right-color:#adb5bd}.popover-light.bs-popover-auto[x-placement^=bottom] .arrow::after,.popover-light.bs-popover-bottom .arrow::after{border-bottom-color:#adb5bd}.popover-light.bs-popover-auto[x-placement^=left] .arrow::after,.popover-light.bs-popover-left .arrow::after{border-left-color:#adb5bd}.popover-dark{background-color:#212529}.popover-dark .popover-header{color:#fff;background-color:#212529}.popover-dark .popover-body{color:#fff}.popover-dark .popover-header{border-color:rgba(255,255,255,.2)}.popover-dark.bs-popover-auto[x-placement^=top] .arrow::after,.popover-dark.bs-popover-top .arrow::after{border-top-color:#212529}.popover-dark.bs-popover-auto[x-placement^=right] .arrow::after,.popover-dark.bs-popover-right .arrow::after{border-right-color:#212529}.popover-dark.bs-popover-auto[x-placement^=bottom] .arrow::after,.popover-dark.bs-popover-bottom .arrow::after{border-bottom-color:#212529}.popover-dark.bs-popover-auto[x-placement^=left] .arrow::after,.popover-dark.bs-popover-left .arrow::after{border-left-color:#212529}.popover-default{background-color:#172b4d}.popover-default .popover-header{color:#fff;background-color:#172b4d}.popover-default .popover-body{color:#fff}.popover-default .popover-header{border-color:rgba(255,255,255,.2)}.popover-default.bs-popover-auto[x-placement^=top] .arrow::after,.popover-default.bs-popover-top .arrow::after{border-top-color:#172b4d}.popover-default.bs-popover-auto[x-placement^=right] .arrow::after,.popover-default.bs-popover-right .arrow::after{border-right-color:#172b4d}.popover-default.bs-popover-auto[x-placement^=bottom] .arrow::after,.popover-default.bs-popover-bottom .arrow::after{border-bottom-color:#172b4d}.popover-default.bs-popover-auto[x-placement^=left] .arrow::after,.popover-default.bs-popover-left .arrow::after{border-left-color:#172b4d}.popover-white{background-color:#fff}.popover-white .popover-header{color:#212529;background-color:#fff}.popover-white .popover-body{color:#212529}.popover-white .popover-header{border-color:rgba(33,37,41,.2)}.popover-white.bs-popover-auto[x-placement^=top] .arrow::after,.popover-white.bs-popover-top .arrow::after{border-top-color:#fff}.popover-white.bs-popover-auto[x-placement^=right] .arrow::after,.popover-white.bs-popover-right .arrow::after{border-right-color:#fff}.popover-white.bs-popover-auto[x-placement^=bottom] .arrow::after,.popover-white.bs-popover-bottom .arrow::after{border-bottom-color:#fff}.popover-white.bs-popover-auto[x-placement^=left] .arrow::after,.popover-white.bs-popover-left .arrow::after{border-left-color:#fff}.popover-neutral{background-color:#fff}.popover-neutral .popover-header{color:#212529;background-color:#fff}.popover-neutral .popover-body{color:#212529}.popover-neutral .popover-header{border-color:rgba(33,37,41,.2)}.popover-neutral.bs-popover-auto[x-placement^=top] .arrow::after,.popover-neutral.bs-popover-top .arrow::after{border-top-color:#fff}.popover-neutral.bs-popover-auto[x-placement^=right] .arrow::after,.popover-neutral.bs-popover-right .arrow::after{border-right-color:#fff}.popover-neutral.bs-popover-auto[x-placement^=bottom] .arrow::after,.popover-neutral.bs-popover-bottom .arrow::after{border-bottom-color:#fff}.popover-neutral.bs-popover-auto[x-placement^=left] .arrow::after,.popover-neutral.bs-popover-left .arrow::after{border-left-color:#fff}.popover-darker{background-color:#000}.popover-darker .popover-header{color:#fff;background-color:#000}.popover-darker .popover-body{color:#fff}.popover-darker .popover-header{border-color:rgba(255,255,255,.2)}.popover-darker.bs-popover-auto[x-placement^=top] .arrow::after,.popover-darker.bs-popover-top .arrow::after{border-top-color:#000}.popover-darker.bs-popover-auto[x-placement^=right] .arrow::after,.popover-darker.bs-popover-right .arrow::after{border-right-color:#000}.popover-darker.bs-popover-auto[x-placement^=bottom] .arrow::after,.popover-darker.bs-popover-bottom .arrow::after{border-bottom-color:#000}.popover-darker.bs-popover-auto[x-placement^=left] .arrow::after,.popover-darker.bs-popover-left .arrow::after{border-left-color:#000}.progress-wrapper{position:relative;padding-top:1.5rem}.progress{overflow:hidden;height:8px;margin-bottom:1rem;border-radius:.25rem;background-color:#e9ecef;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress .sr-only{font-size:13px;line-height:20px;left:0;clip:auto;width:auto;height:20px;margin:0 0 0 30px}.progress-sm{height:5px}.progress-xs{height:3px}.progress-heading{font-size:14px;font-weight:500;margin:0 0 2px;padding:0}.progress-bar{height:auto;border-radius:0;box-shadow:none}.progress-info{display:flex;margin-bottom:.5rem;align-items:center;justify-content:space-between}.progress-label span{font-size:.625rem;font-weight:600;display:inline-block;padding:.25rem 1rem;text-transform:uppercase;color:#5e72e4;border-radius:30px;background:rgba(94,114,228,.1)}.progress-percentage{text-align:right}.progress-percentage span{font-size:.875rem;font-weight:600;display:inline-block;color:#8898aa}.separator{position:absolute;top:auto;right:0;left:0;overflow:hidden;width:100%;height:150px;transform:translateZ(0);pointer-events:none}.separator svg{position:absolute;pointer-events:none}.separator-top{top:0;bottom:auto}.separator-top svg{top:0}.separator-bottom{top:auto;bottom:0}.separator-bottom svg{bottom:0}.separator-inverse{transform:rotate(180deg)}.separator-skew{height:60px}@media (min-width:1200px){.separator-skew{height:70px}}.section-nucleo-icons{--icon-size:5rem;--icon-sm-size:3.75rem;--gutter:7rem}.section-nucleo-icons .icons-container{position:relative;z-index:1;max-width:100%;height:360px;margin:0 auto}.section-nucleo-icons .icons-container i{position:absolute;z-index:1;display:inline-flex;transition:all .2s cubic-bezier(.25,.65,.9,.75);transform:translate(-50%,-50%);border-radius:50%;background:#fff;box-shadow:0 0 2rem 0 rgba(136,152,170,.15);align-items:center;justify-content:center}.section-nucleo-icons .icons-container i.icon{font-size:1.7em;width:var(--icon-size);height:var(--icon-size)}.section-nucleo-icons .icons-container i.icon-sm{font-size:1.5em;width:var(--icon-sm-size);height:var(--icon-sm-size)}.section-nucleo-icons .icons-container i:nth-child(1){font-size:42px;z-index:2;color:#fb6340}.section-nucleo-icons .icons-container i{opacity:1}.section-nucleo-icons .icons-container i:nth-child(1){font-size:42px;top:50%;left:50%;color:#fb6340}.section-nucleo-icons .icons-container i:nth-child(2){top:50%;left:calc(50% + (var(--gutter) * 1.7))}.section-nucleo-icons .icons-container i:nth-child(3){top:calc(50% + var(--gutter));left:calc(50% + var(--gutter))}.section-nucleo-icons .icons-container i:nth-child(4){top:calc(50% - var(--gutter));left:calc(50% + var(--gutter))}.section-nucleo-icons .icons-container i:nth-child(5){top:50%;left:calc(50% + (var(--gutter) * 4))}.section-nucleo-icons .icons-container i:nth-child(6){top:calc(50% + (var(--gutter) * 1.5));left:calc(50% + (var(--gutter) * 2.7))}.section-nucleo-icons .icons-container i:nth-child(7){top:calc(50% - (var(--gutter) * 1.5));left:calc(50% + (var(--gutter) * 2.7))}.section-nucleo-icons .icons-container i:nth-child(8){top:50%;left:calc(50% - (var(--gutter) * 1.7))}.section-nucleo-icons .icons-container i:nth-child(9){top:calc(50% + var(--gutter));left:calc(50% - var(--gutter))}.section-nucleo-icons .icons-container i:nth-child(10){top:calc(50% - var(--gutter));left:calc(50% - var(--gutter))}.section-nucleo-icons .icons-container i:nth-child(11){top:50%;left:calc(50% - (var(--gutter) * 4))}.section-nucleo-icons .icons-container i:nth-child(12){top:calc(50% + (var(--gutter) * 1.5));left:calc(50% - (var(--gutter) * 2.7))}.section-nucleo-icons .icons-container i:nth-child(13){top:calc(50% - (var(--gutter) * 1.5));left:calc(50% - (var(--gutter) * 2.7))}.shortcut-media{transition:all .15s cubic-bezier(.68,-.55,.265,1.55)}@media (prefers-reduced-motion:reduce){.shortcut-media{transition:none}}.shortcut-item{padding-top:1rem;padding-bottom:1rem;text-align:center}.shortcut-item small{font-size:.8125rem;font-weight:600;display:block;margin-top:.75rem}.shortcut-item:hover .shortcut-media{transform:scale(1.1)}.table thead th{font-size:.65rem;padding-top:.75rem;padding-bottom:.75rem;letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid #e9ecef}.table th{font-weight:600}.table td .progress{width:120px;height:3px;margin:0}.table td,.table th{font-size:.8125rem;white-space:nowrap}.table.align-items-center td,.table.align-items-center th{vertical-align:middle}.table .thead-dark th{color:#4d7bca;background-color:#1c345d}.table .thead-dark th a{color:#4d7bca}.table .thead-light th{color:#8898aa;background-color:#f6f9fc}.table .thead-light th a{color:#8898aa}.table-hover tr{transition:all .15s ease}@media (prefers-reduced-motion:reduce){.table-hover tr{transition:none}}.table-flush td,.table-flush th{border-right:0;border-left:0}.table-flush tbody tr:first-child td,.table-flush tbody tr:first-child th{border-top:0}.table-flush tbody tr:last-child td,.table-flush tbody tr:last-child th{border-bottom:0}.card .table{margin-bottom:0}.card .table td,.card .table th{padding-right:1.5rem;padding-left:1.5rem}.table .custom-toggle{display:block}.table-action{font-size:.875rem;margin:0 .25rem;color:#adb5bd}.table-action:hover{color:#919ca6}.table-action-delete:hover{color:#f5365c}.table-dark .table-action{color:#4d7bca}.table [data-sort]{cursor:pointer}.table .thead-dark [data-sort]::after{margin-left:.25rem;content:url('data:image/svg+xml;utf8, ')}.table .thead-light [data-sort]::after{margin-left:.25rem;content:url('data:image/svg+xml;utf8, ')}.timeline{position:relative}.timeline:before{position:absolute;top:0;left:1rem;height:100%;content:'';border-right:2px solid #e9ecef}[data-timeline-axis-style=dashed]:before{border-right-style:dashed!important}[data-timeline-axis-style=dotted]:before{border-right-style:dotted!important}.timeline-block{position:relative;margin:2em 0}.timeline-block:after{display:table;clear:both;content:''}.timeline-block:first-child{margin-top:0}.timeline-block:last-child{margin-bottom:0}.timeline-step{font-size:1rem;font-weight:600;position:absolute;z-index:1;left:0;display:inline-flex;width:33px;height:33px;transform:translateX(-50%);text-align:center;border-radius:50%;align-items:center;justify-content:center}.timeline-step i,.timeline-step svg{line-height:1.4}.timeline-step-icon{border:2px solid #e9ecef;background:#fff}.timeline-step-xs{font-size:.75rem;width:17px;height:17px}.timeline-step-sm{font-size:.75rem;width:23px;height:23px}.timeline-step-lg{font-size:1.75rem;width:47px;height:47px}.timeline-content{position:relative;position:relative;top:-6px;margin-left:60px;padding-top:.5rem}.timeline-content:after{display:table;clear:both;content:''}.timeline-body{padding:1.5rem}@media (min-width:992px){.timeline:before{left:50%;margin-left:-2px}.timeline-step{left:50%}.timeline-content{width:38%}.timeline-body{padding:1.5rem}.timeline-block:nth-child(even) .timeline-content{float:right}[data-timeline-axis-color=primary]:before{border-color:#5e72e4}[data-timeline-axis-color=secondary]:before{border-color:#f7fafc}[data-timeline-axis-color=success]:before{border-color:#2dce89}[data-timeline-axis-color=info]:before{border-color:#11cdef}[data-timeline-axis-color=warning]:before{border-color:#fb6340}[data-timeline-axis-color=danger]:before{border-color:#f5365c}[data-timeline-axis-color=light]:before{border-color:#adb5bd}[data-timeline-axis-color=dark]:before{border-color:#212529}[data-timeline-axis-color=default]:before{border-color:#172b4d}[data-timeline-axis-color=white]:before{border-color:#fff}[data-timeline-axis-color=neutral]:before{border-color:#fff}[data-timeline-axis-color=darker]:before{border-color:#000}}.timeline-one-side:before{left:1rem}.timeline-one-side .timeline-step{left:1rem}.timeline-one-side .timeline-content{width:auto}@media (min-width:992px){.timeline-one-side .timeline-content{max-width:30rem}}.timeline-one-side .timeline-block:nth-child(even) .timeline-content{float:none}p{font-size:1rem;font-weight:300;line-height:1.7}.lead{font-size:1.25rem;font-weight:300;line-height:1.7;margin-top:1.5rem}.lead+.btn-wrapper{margin-top:3rem}.description{font-size:.875rem}article h4:not(:first-child),article h5:not(:first-child){margin-top:3rem}article h4,article h5{margin-bottom:1.5rem}article figure{margin:3rem 0}article h5+figure{margin-top:0}.display-1 span,.display-2 span,.display-3 span,.display-4 span{font-weight:300;display:block}h1>a,h2>a,h3>a,h4>a,h5>a,h6>a{color:inherit}.heading{font-size:.95rem;font-weight:600;letter-spacing:.025em;text-transform:uppercase}.heading-small{font-size:.75rem;padding-top:.25rem;padding-bottom:.25rem;letter-spacing:.04em;text-transform:uppercase}.heading-title{font-size:1.375rem;font-weight:600;letter-spacing:.025em;text-transform:uppercase}.heading-section{font-size:1.375rem;font-weight:600;letter-spacing:.025em;text-transform:uppercase}.heading-section img{display:block;width:72px;height:72px;margin-bottom:1.5rem}.heading-section.text-center img{margin-right:auto;margin-left:auto}.surtitle{margin-bottom:0;letter-spacing:2px;text-transform:uppercase;color:#8898aa}.bg-blue{background-color:#5e72e4!important}a.bg-blue:focus,a.bg-blue:hover,button.bg-blue:focus,button.bg-blue:hover{background-color:#324cdd!important}.bg-indigo{background-color:#5603ad!important}a.bg-indigo:focus,a.bg-indigo:hover,button.bg-indigo:focus,button.bg-indigo:hover{background-color:#3d027b!important}.bg-purple{background-color:#8965e0!important}a.bg-purple:focus,a.bg-purple:hover,button.bg-purple:focus,button.bg-purple:hover{background-color:#683bd7!important}.bg-pink{background-color:#f3a4b5!important}a.bg-pink:focus,a.bg-pink:hover,button.bg-pink:focus,button.bg-pink:hover{background-color:#ed7790!important}.bg-red{background-color:#f5365c!important}a.bg-red:focus,a.bg-red:hover,button.bg-red:focus,button.bg-red:hover{background-color:#ec0c38!important}.bg-orange{background-color:#fb6340!important}a.bg-orange:focus,a.bg-orange:hover,button.bg-orange:focus,button.bg-orange:hover{background-color:#fa3a0e!important}.bg-yellow{background-color:#ffd600!important}a.bg-yellow:focus,a.bg-yellow:hover,button.bg-yellow:focus,button.bg-yellow:hover{background-color:#ccab00!important}.bg-green{background-color:#2dce89!important}a.bg-green:focus,a.bg-green:hover,button.bg-green:focus,button.bg-green:hover{background-color:#24a46d!important}.bg-teal{background-color:#11cdef!important}a.bg-teal:focus,a.bg-teal:hover,button.bg-teal:focus,button.bg-teal:hover{background-color:#0da5c0!important}.bg-cyan{background-color:#2bffc6!important}a.bg-cyan:focus,a.bg-cyan:hover,button.bg-cyan:focus,button.bg-cyan:hover{background-color:#00f7b5!important}.bg-white{background-color:#fff!important}a.bg-white:focus,a.bg-white:hover,button.bg-white:focus,button.bg-white:hover{background-color:#e6e6e6!important}.bg-gray{background-color:#8898aa!important}a.bg-gray:focus,a.bg-gray:hover,button.bg-gray:focus,button.bg-gray:hover{background-color:#6a7e95!important}.bg-gray-dark{background-color:#32325d!important}a.bg-gray-dark:focus,a.bg-gray-dark:hover,button.bg-gray-dark:focus,button.bg-gray-dark:hover{background-color:#20203c!important}.bg-light{background-color:#ced4da!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#b1bbc4!important}.bg-lighter{background-color:#e9ecef!important}a.bg-lighter:focus,a.bg-lighter:hover,button.bg-lighter:focus,button.bg-lighter:hover{background-color:#cbd3da!important}.bg-as{background:linear-gradient(to right,#5E72E4,#FA8BFF,#2BD2FF,#2BFF88,#172B4D,#F5365C,#fb6340);background-size:2000%;animation:gradientBackground 30s alternate ease-in-out;animation-iteration-count:infinite;}.bg-gradient-as{background:linear-gradient(to right,#5E72E4,#FA8BFF,#2BD2FF,#2BFF88,#172B4D,#F5365C,#fb6340);background-size:2000%;animation:gradientBackground 30s alternate ease-in-out;animation-iteration-count:infinite;}.bg-gradient-primary{background:linear-gradient(87deg,#5e72e4 0,#825ee4 100%)!important}.bg-gradient-secondary{background:linear-gradient(87deg,#f7fafc 0,#f7f8fc 100%)!important}.bg-gradient-success{background:linear-gradient(87deg,#2dce89 0,#2dcecc 100%)!important}.bg-gradient-info{background:linear-gradient(87deg,#11cdef 0,#1171ef 100%)!important}.bg-gradient-warning{background:linear-gradient(87deg,#fb6340 0,#fbb140 100%)!important}.bg-gradient-danger{background:linear-gradient(87deg,#f5365c 0,#f56036 100%)!important}.bg-gradient-light{background:linear-gradient(87deg,#adb5bd 0,#adaebd 100%)!important}.bg-gradient-dark{background:linear-gradient(87deg,#212529 0,#212229 100%)!important}.bg-gradient-default{background:linear-gradient(87deg,#172b4d 0,#1a174d 100%)!important}.bg-gradient-white{background:linear-gradient(87deg,#fff 0,#fff 100%)!important}.bg-gradient-neutral{background:linear-gradient(87deg,#fff 0,#fff 100%)!important}.bg-gradient-darker{background:linear-gradient(87deg,#000 0,#000 100%)!important}.bg-gradient-blue{background:linear-gradient(87deg,#5e72e4 0,#825ee4 100%)!important}.bg-gradient-indigo{background:linear-gradient(87deg,#5603ad 0,#9d03ad 100%)!important}.bg-gradient-purple{background:linear-gradient(87deg,#8965e0 0,#bc65e0 100%)!important}.bg-gradient-pink{background:linear-gradient(87deg,#f3a4b5 0,#f3b4a4 100%)!important}.bg-gradient-red{background:linear-gradient(87deg,#f5365c 0,#f56036 100%)!important}.bg-gradient-orange{background:linear-gradient(87deg,#fb6340 0,#fbb140 100%)!important}.bg-gradient-yellow{background:linear-gradient(87deg,#ffd600 0,#beff00 100%)!important}.bg-gradient-green{background:linear-gradient(87deg,#2dce89 0,#2dcecc 100%)!important}.bg-gradient-teal{background:linear-gradient(87deg,#11cdef 0,#1171ef 100%)!important}.bg-gradient-cyan{background:linear-gradient(87deg,#2bffc6 0,#2be0ff 100%)!important}.bg-gradient-white{background:linear-gradient(87deg,#fff 0,#fff 100%)!important}.bg-gradient-gray{background:linear-gradient(87deg,#8898aa 0,#888aaa 100%)!important}.bg-gradient-gray-dark{background:linear-gradient(87deg,#32325d 0,#44325d 100%)!important}.bg-gradient-light{background:linear-gradient(87deg,#ced4da 0,#cecfda 100%)!important}.bg-gradient-lighter{background:linear-gradient(87deg,#e9ecef 0,#e9eaef 100%)!important}.bg-translucent-primary{background-color:rgba(63,87,223,.6)!important}a.bg-translucent-primary:focus,a.bg-translucent-primary:hover,button.bg-translucent-primary:focus,button.bg-translucent-primary:hover{background-color:rgba(42,68,219,.6)!important}.bg-translucent-secondary{background-color:rgba(221,234,242,.6)!important}a.bg-translucent-secondary:focus,a.bg-translucent-secondary:hover,button.bg-translucent-secondary:focus,button.bg-translucent-secondary:hover{background-color:rgba(202,222,235,.6)!important}.bg-translucent-success{background-color:rgba(39,177,118,.6)!important}a.bg-translucent-success:focus,a.bg-translucent-success:hover,button.bg-translucent-success:focus,button.bg-translucent-success:hover{background-color:rgba(34,156,104,.6)!important}.bg-translucent-info{background-color:rgba(14,177,206,.6)!important}a.bg-translucent-info:focus,a.bg-translucent-info:hover,button.bg-translucent-info:focus,button.bg-translucent-info:hover{background-color:rgba(12,156,183,.6)!important}.bg-translucent-warning{background-color:rgba(250,70,29,.6)!important}a.bg-translucent-warning:focus,a.bg-translucent-warning:hover,button.bg-translucent-warning:focus,button.bg-translucent-warning:hover{background-color:rgba(249,51,5,.6)!important}.bg-translucent-danger{background-color:rgba(243,20,64,.6)!important}a.bg-translucent-danger:focus,a.bg-translucent-danger:hover,button.bg-translucent-danger:focus,button.bg-translucent-danger:hover{background-color:rgba(227,11,54,.6)!important}.bg-translucent-light{background-color:rgba(153,163,173,.6)!important}a.bg-translucent-light:focus,a.bg-translucent-light:hover,button.bg-translucent-light:focus,button.bg-translucent-light:hover{background-color:rgba(139,150,162,.6)!important}.bg-translucent-dark{background-color:rgba(17,19,21,.6)!important}a.bg-translucent-dark:focus,a.bg-translucent-dark:hover,button.bg-translucent-dark:focus,button.bg-translucent-dark:hover{background-color:rgba(6,6,7,.6)!important}.bg-translucent-default{background-color:rgba(15,28,50,.6)!important}a.bg-translucent-default:focus,a.bg-translucent-default:hover,button.bg-translucent-default:focus,button.bg-translucent-default:hover{background-color:rgba(9,17,30,.6)!important}.bg-translucent-white{background-color:rgba(237,237,237,.6)!important}a.bg-translucent-white:focus,a.bg-translucent-white:hover,button.bg-translucent-white:focus,button.bg-translucent-white:hover{background-color:rgba(224,224,224,.6)!important}.bg-translucent-neutral{background-color:rgba(237,237,237,.6)!important}a.bg-translucent-neutral:focus,a.bg-translucent-neutral:hover,button.bg-translucent-neutral:focus,button.bg-translucent-neutral:hover{background-color:rgba(224,224,224,.6)!important}.bg-translucent-darker{background-color:rgba(0,0,0,.6)!important}a.bg-translucent-darker:focus,a.bg-translucent-darker:hover,button.bg-translucent-darker:focus,button.bg-translucent-darker:hover{background-color:rgba(0,0,0,.6)!important}.section-primary{background-color:#f8f9fe!important}a.section-primary:focus,a.section-primary:hover,button.section-primary:focus,button.section-primary:hover{background-color:#cbd3f8!important}.section-secondary{background-color:#f7fafc!important}a.section-secondary:focus,a.section-secondary:hover,button.section-secondary:focus,button.section-secondary:hover{background-color:#d2e3ee!important}.section-light{background-color:#ced4da!important}a.section-light:focus,a.section-light:hover,button.section-light:focus,button.section-light:hover{background-color:#b1bbc4!important}.section-dark{background-color:#212529!important}a.section-dark:focus,a.section-dark:hover,button.section-dark:focus,button.section-dark:hover{background-color:#0a0c0d!important}.section-darker{background-color:#000!important}a.section-darker:focus,a.section-darker:hover,button.section-darker:focus,button.section-darker:hover{background-color:#000!important}.bg-gradient-primary{background:linear-gradient(87deg,#5e72e4 0,#825ee4 100%)!important}.bg-gradient-secondary{background:linear-gradient(87deg,#f7fafc 0,#f7f8fc 100%)!important}.bg-gradient-success{background:linear-gradient(87deg,#2dce89 0,#2dcecc 100%)!important}.bg-gradient-info{background:linear-gradient(87deg,#11cdef 0,#1171ef 100%)!important}.bg-gradient-warning{background:linear-gradient(87deg,#fb6340 0,#fbb140 100%)!important}.bg-gradient-danger{background:linear-gradient(87deg,#f5365c 0,#f56036 100%)!important}.bg-gradient-light{background:linear-gradient(87deg,#adb5bd 0,#adaebd 100%)!important}.bg-gradient-dark{background:linear-gradient(87deg,#212529 0,#212229 100%)!important}.bg-gradient-default{background:linear-gradient(87deg,#172b4d 0,#1a174d 100%)!important}.bg-gradient-white{background:linear-gradient(87deg,#fff 0,#fff 100%)!important}.bg-gradient-neutral{background:linear-gradient(87deg,#fff 0,#fff 100%)!important}.bg-gradient-darker{background:linear-gradient(87deg,#000 0,#000 100%)!important}.fill-primary{fill:#5e72e4}.stroke-primary{stroke:#5e72e4}.fill-secondary{fill:#f7fafc}.stroke-secondary{stroke:#f7fafc}.fill-success{fill:#2dce89}.stroke-success{stroke:#2dce89}.fill-info{fill:#11cdef}.stroke-info{stroke:#11cdef}.fill-warning{fill:#fb6340}.stroke-warning{stroke:#fb6340}.fill-danger{fill:#f5365c}.stroke-danger{stroke:#f5365c}.fill-light{fill:#adb5bd}.stroke-light{stroke:#adb5bd}.fill-dark{fill:#212529}.stroke-dark{stroke:#212529}.fill-default{fill:#172b4d}.stroke-default{stroke:#172b4d}.fill-white{fill:#fff}.stroke-white{stroke:#fff}.fill-neutral{fill:#fff}.stroke-neutral{stroke:#fff}.fill-darker{fill:#000}.stroke-darker{stroke:#000}.fill-opacity-8{fill-opacity:.8}.blur--hover{position:relative}.blur--hover .blur-item{transition:1s cubic-bezier(.19,1,.22,1);opacity:1;will-change:transform;filter:blur(0)}.blur--hover .blur-hidden{position:absolute;z-index:100;top:calc(50% + 7px);left:50%;transition:all .15s ease;transform:translate(-50%,-50%);opacity:0}.blur--hover:hover .blur-item{z-index:1;transform:scale(.95);opacity:.8;filter:blur(10px)}.blur--hover:hover .blur-hidden{top:50%;opacity:1}.floating{animation:floating 3s ease infinite;will-change:transform}.floating:hover{animation-play-state:paused}.floating-lg{animation:floating-lg 3s ease infinite}.floating-sm{animation:floating-sm 3s ease infinite}@keyframes floating-lg{0%{transform:translateY(0)}50%{transform:translateY(15px)}100%{transform:translateY(0)}}@keyframes floating{0%{transform:translateY(0)}50%{transform:translateY(10px)}100%{transform:translateY(0)}}@keyframes floating-sm{0%{transform:translateY(0)}50%{transform:translateY(5px)}100%{transform:translateY(0)}}.floatfix:after,.floatfix:before{display:table;content:''}.floatfix:after{clear:both}.img-center{display:block;margin-right:auto;margin-left:auto}.opacity-1{opacity:.1!important}.opacity-2{opacity:.2!important}.opacity-3{opacity:.3!important}.opacity-4{opacity:.4!important}.opacity-5{opacity:.5!important}.opacity-6{opacity:.6!important}.opacity-7{opacity:.7!important}.opacity-8{opacity:.8!important}.opacity-8{opacity:.9!important}.opacity-10{opacity:1!important}.overflow-visible{overflow:visible!important}.overflow-hidden{overflow:hidden!important}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-1{top:.25rem}.right-1{right:.25rem}.bottom-1{bottom:.25rem}.left-1{left:.25rem}.top-2{top:.5rem}.right-2{right:.5rem}.bottom-2{bottom:.5rem}.left-2{left:.5rem}.top-3{top:1rem}.right-3{right:1rem}.bottom-3{bottom:1rem}.left-3{left:1rem}.top-4{top:1.5rem}.right-4{right:1.5rem}.bottom-4{bottom:1.5rem}.left-4{left:1.5rem}.top-5{top:3rem}.right-5{right:3rem}.bottom-5{bottom:3rem}.left-5{left:3rem}.top--9{top:-10rem}.right--9{right:-10rem}.bottom--9{bottom:-10rem}.left--9{left:-10rem}.top--8{top:-8rem}.right--8{right:-8rem}.bottom--8{bottom:-8rem}.left--8{left:-8rem}.top--7{top:-6rem}.right--7{right:-6rem}.bottom--7{bottom:-6rem}.left--7{left:-6rem}.top--6{top:-4.5rem}.right--6{right:-4.5rem}.bottom--6{bottom:-4.5rem}.left--6{left:-4.5rem}.top--5{top:-3rem}.right--5{right:-3rem}.bottom--5{bottom:-3rem}.left--5{left:-3rem}.top--4{top:-1.5rem}.right--4{right:-1.5rem}.bottom--4{bottom:-1.5rem}.left--4{left:-1.5rem}.top--3{top:-1rem}.right--3{right:-1rem}.bottom--3{bottom:-1rem}.left--3{left:-1rem}.top--2{top:-.5rem}.right--2{right:-.5rem}.bottom--2{bottom:-.5rem}.left--2{left:-.5rem}.top--1{top:-.25rem}.right--1{right:-.25rem}.bottom--1{bottom:-.25rem}.left--1{left:-.25rem}.top-6{top:4.5rem}.right-6{right:4.5rem}.bottom-6{bottom:4.5rem}.left-6{left:4.5rem}.top-7{top:6rem}.right-7{right:6rem}.bottom-7{bottom:6rem}.left-7{left:6rem}.top-8{top:8rem}.right-8{right:8rem}.bottom-8{bottom:8rem}.left-8{left:8rem}.top-9{top:10rem}.right-9{right:10rem}.bottom-9{bottom:10rem}.left-9{left:10rem}.center{left:50%;transform:translateX(-50%)}[class*=shadow]{transition:all .15s ease}.shadow-sm--hover:hover{box-shadow:0 0 .5rem rgba(136,152,170,.075)!important}.shadow--hover:hover{box-shadow:0 0 2rem 0 rgba(136,152,170,.15)!important}.shadow-lg--hover:hover{box-shadow:0 0 3rem rgba(136,152,170,.175)!important}.shadow-none--hover:hover{box-shadow:none!important}.h-100vh{height:100vh!important}.row.row-grid>[class*=col-]+[class*=col-]{margin-top:3rem}@media (min-width:992px){.row.row-grid>[class*=col-lg-]+[class*=col-lg-]{margin-top:0}}@media (min-width:768px){.row.row-grid>[class*=col-md-]+[class*=col-md-]{margin-top:0}}@media (min-width:576px){.row.row-grid>[class*=col-sm-]+[class*=col-sm-]{margin-top:0}}.row-grid+.row-grid{margin-top:3rem}@media (min-width:992px){.mt--100{margin-top:-100px!important}.mr--100{margin-right:-100px!important}.mb--100{margin-bottom:-100px!important}.ml--100{margin-left:-100px!important}.mt--150{margin-top:-150px!important}.mb--150{margin-bottom:-150px!important}.mt--200{margin-top:-200px!important}.mb--200{margin-bottom:-200px!important}.mt--300{margin-top:-300px!important}.mb--300{margin-bottom:-300px!important}.pt-100{padding-top:100px!important}.pb-100{padding-bottom:100px!important}.pt-150{padding-top:150px!important}.pb-150{padding-bottom:150px!important}.pt-200{padding-top:200px!important}.pb-200{padding-bottom:200px!important}.pt-250{padding-top:250px!important}.pb-250{padding-bottom:250px!important}.pt-300{padding-top:300px!important}.pb-300{padding-bottom:300px!important}}.font-weight-300{font-weight:300!important}.font-weight-400{font-weight:400!important}.font-weight-500{font-weight:500!important}.font-weight-600{font-weight:600!important}.font-weight-700{font-weight:700!important}.font-weight-800{font-weight:800!important}.font-weight-900{font-weight:900!important}.text-underline{text-decoration:underline}.text-through{text-decoration:line-through}.text-xs{font-size:.75rem!important}.text-sm{font-size:.875rem!important}.text-lg{font-size:1.25rem!important}.text-xl{font-size:1.5rem!important}.lh-100{line-height:1}.lh-110{line-height:1.1}.lh-120{line-height:1.2}.lh-130{line-height:1.3}.lh-140{line-height:1.4}.lh-150{line-height:1.5}.lh-160{line-height:1.6}.lh-170{line-height:1.7}.lh-180{line-height:1.8}.ls-1{letter-spacing:.0625rem}.ls-15{letter-spacing:.09375rem}.ls-2{letter-spacing:.125rem}.text-blue{color:#5e72e4!important}a.text-blue:focus,a.text-blue:hover{color:#233dd2!important}.text-indigo{color:#5603ad!important}a.text-indigo:focus,a.text-indigo:hover{color:#310262!important}.text-purple{color:#8965e0!important}a.text-purple:focus,a.text-purple:hover{color:#5a2acf!important}.text-pink{color:#f3a4b5!important}a.text-pink:focus,a.text-pink:hover{color:#ea607e!important}.text-red{color:#f5365c!important}a.text-red:focus,a.text-red:hover{color:#d40b33!important}.text-orange{color:#fb6340!important}a.text-orange:focus,a.text-orange:hover{color:#ea3005!important}.text-yellow{color:#ffd600!important}a.text-yellow:focus,a.text-yellow:hover{color:#b39600!important}.text-green{color:#2dce89!important}a.text-green:focus,a.text-green:hover{color:#1f8f5f!important}.text-teal{color:#11cdef!important}a.text-teal:focus,a.text-teal:hover{color:#0b90a8!important}.text-cyan{color:#2bffc6!important}a.text-cyan:focus,a.text-cyan:hover{color:#00dea2!important}.text-white{color:#fff!important}a.text-white:focus,a.text-white:hover{color:#d9d9d9!important}.text-gray{color:#8898aa!important}a.text-gray:focus,a.text-gray:hover{color:#607286!important}.text-gray-dark{color:#32325d!important}a.text-gray-dark:focus,a.text-gray-dark:hover{color:#17172b!important}.text-light{color:#ced4da!important}a.text-light:focus,a.text-light:hover{color:#a2aeb9!important}.text-lighter{color:#e9ecef!important}a.text-lighter:focus,a.text-lighter:hover{color:#bdc6cf!important}@media (min-width:992px){.transform-perspective-right{transform:scale(1) perspective(1040px) rotateY(-11deg) rotateX(2deg) rotate(2deg)}.transform-perspective-left{transform:scale(1) perspective(2000px) rotateY(11deg) rotateX(2deg) rotate(-2deg)}}.datepicker{border-radius:.375rem;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0;padding:20px 22px;box-shadow:0 50px 100px rgba(50,50,93,.1),0 15px 35px rgba(50,50,93,.15),0 5px 15px rgba(0,0,0,.1)}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-top:7px solid #fff;border-bottom:0}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-top:6px solid #fff;border-bottom:0}.datepicker table{margin:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.datepicker table tr td{border-radius:50%}.datepicker table tr th{font-weight:500;border-radius:.375rem}.datepicker table tr td,.datepicker table tr th{font-size:.875rem;width:36px;height:36px;transition:all .15s ease;text-align:center;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.new,.datepicker table tr td.old{color:#adb5bd}.datepicker table tr td.day:hover,.datepicker table tr td.focused{cursor:pointer;background:#fff}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{cursor:default;color:#dee2e6;background:0 0}.datepicker table tr td.highlighted{border-radius:0}.datepicker table tr td.highlighted.focused{background:#5e72e4}.datepicker table tr td.highlighted.disabled,.datepicker table tr td.highlighted.disabled:active{color:#ced4da;background:#5e72e4}.datepicker table tr td.today{background:#fff}.datepicker table tr td.today.focused{background:#fff}.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:active{color:#8898aa;background:#fff}.datepicker table tr td.range{color:#fff;border-radius:0;background:#5e72e4}.datepicker table tr td.range.focused{background:#3b53de}.datepicker table tr td.range.day.disabled:hover,.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:active{color:#8a98eb;background:#324cdd}.datepicker table tr td.range.highlighted.focused{background:#cbd3da}.datepicker table tr td.range.highlighted.disabled,.datepicker table tr td.range.highlighted.disabled:active{color:#dee2e6;background:#e9ecef}.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:active{color:#fff;background:#5e72e4}.datepicker table tr td.day.range-start{border-top-right-radius:0;border-bottom-right-radius:0}.datepicker table tr td.day.range-end{border-top-left-radius:0;border-bottom-left-radius:0}.datepicker table tr td.day.range-start.range-end{border-radius:50%}.datepicker table tr td.day.range:hover,.datepicker table tr td.selected,.datepicker table tr td.selected.highlighted,.datepicker table tr td.selected.highlighted:hover,.datepicker table tr td.selected:hover{color:#fff;background:#5e72e4}.datepicker table tr td.active,.datepicker table tr td.active.highlighted,.datepicker table tr td.active.highlighted:hover,.datepicker table tr td.active:hover{color:#fff;background:#5e72e4;box-shadow:none}.datepicker table tr td span{line-height:54px;display:block;float:left;width:23%;height:54px;margin:1%;cursor:pointer;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#e9ecef}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{cursor:default;color:#dee2e6;background:0 0}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#8898aa}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#e9ecef}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.bootstrap-tagsinput{display:inline-block;max-width:100%;padding:.25rem;cursor:text;vertical-align:middle;color:#8898aa;border:0 solid transparent;border-radius:.25rem;background-color:#fff}.bootstrap-tagsinput input{width:auto;max-width:inherit;margin:0;padding:0 6px;border:none;outline:0;background-color:transparent;box-shadow:none}.bootstrap-tagsinput input::-ms-input-placeholder{opacity:1;color:#adb5bd}.bootstrap-tagsinput input::placeholder{opacity:1;color:#adb5bd}.bootstrap-tagsinput input:focus{border:none;box-shadow:none}.bootstrap-tagsinput .badge{line-height:1.5;position:relative;margin:.125rem;padding:.625rem .625rem .5rem;transition:all .15s ease;color:#fff;border-radius:.25rem;background:#172b4d;box-shadow:0 1px 2px rgba(68,68,68,.25)}@media (prefers-reduced-motion:reduce){.bootstrap-tagsinput .badge{transition:none}}.bootstrap-tagsinput .badge:hover{padding-right:1.5rem}.bootstrap-tagsinput [data-role=remove]{position:absolute;top:50%;margin-left:10px;cursor:pointer;transform:translate(0,-50%);color:#fff}.bootstrap-tagsinput [data-role=remove]:after{font-size:16px;content:'×'}#chartjs-tooltip{position:absolute;transition:all .1s ease;transform:translate(-50%,0);pointer-events:none;opacity:1;color:#fff;border-radius:3px;background:rgba(0,0,0,.7)}.chartjs-tooltip-key{display:inline-block;width:10px;height:10px;margin-right:10px}.dataTables_wrapper{font-size:.875rem}table.dataTable{margin-bottom:1.25rem!important;border-bottom:1px solid #e9ecef}table.dataTable tbody>tr.selected{background-color:#5e72e4}.dataTables_info,.dataTables_length,.dt-buttons{padding-left:1.5rem}.dataTables_length .form-control{margin:0 .375rem}.dataTables_filter{display:inline-block;float:right;padding-right:1.5rem}.dataTables_paginate{padding-right:1.5rem}.dropzone{position:relative;display:flex;flex-direction:column}.dz-message{z-index:999;padding:5rem 1rem;cursor:pointer;transition:all .15s ease;text-align:center;color:#8898aa;border:1px dashed #dee2e6;border-radius:.375rem;background-color:#fff;order:-1}.dz-message:hover{color:#525f7f;border-color:#8898aa}.dz-drag-hover .dz-message{color:#5e72e4;border-color:#5e72e4}.dropzone-multiple .dz-message{padding-top:2rem;padding-bottom:2rem}.dropzone-single.dz-max-files-reached .dz-message{opacity:0;color:#fff;background-color:rgba(0,0,0,.9)}.dropzone-single.dz-max-files-reached .dz-message:hover{opacity:1}.dz-preview-single{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:.375rem}.dz-preview-cover{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:.375rem}.dz-preview-img{width:100%;height:100%;border-radius:.375rem;-o-object-fit:cover;object-fit:cover}.dz-preview-multiple .list-group-item:last-child{padding-bottom:0;border-bottom:0}[data-dz-size] strong{font-weight:400}.fc-header-toolbar{display:none}.fc-scroller{height:auto!important}.fc th{font-size:.75rem;font-weight:600;padding:.75rem 1rem;text-transform:uppercase;color:#8898aa}.fc div.fc-row{margin-right:0;border:0}.fc button .fc-icon{top:-5px}.fc-unthemed td.fc-today{background-color:transparent}.fc-unthemed td.fc-today span{color:#fb6340}.fc-event{font-size:.75rem;padding:0;border:0;border-radius:.25rem}.fc-event .fc-title{font-weight:600;display:block;overflow:hidden;padding:.4rem .5rem;white-space:nowrap;text-overflow:ellipsis;color:#fff}.fc-event .fc-time{float:left;margin:0 0 0 -1px;padding:2px 6px;background:rgba(0,0,0,.2)}.fc-view,.fc-view>table{overflow:hidden;border:0}.fc-view>table>tbody>tr .ui-widget-content{border-top:0}.fc-body{border:0}.fc-icon{font-family:NucleoIcons,sans-serif;font-size:1rem;line-height:35px;width:35px;height:35px;border-radius:50%}.fc-icon:hover{color:#5e72e4}.fc-button{border:0;background:0 0;box-shadow:none}.fc-button:active,.fc-button:focus{outline:0}.calendar{z-index:0}.calendar td,.calendar th{border-color:#eff1f3}.calendar .fc-toolbar{position:relative;z-index:2;height:250px;margin-bottom:-2px;border-radius:.375rem .375rem 0 0;background-color:#fff}@media (max-width:575.98px){.calendar .fc-toolbar{height:135px}}.calendar .fc-day-number{box-sizing:border-box;width:100%;padding:.5rem 1rem}@media (min-width:576px){.calendar .fc-day-number{font-size:.875rem;font-weight:600;color:#67779d}}.calendar .fc-day-header{text-align:left}.calendar .fc-day-grid-event{margin:1px 9px}[data-calendar-month]{transition:background-image .3s;background-size:contain}@media (prefers-reduced-motion:reduce){[data-calendar-month]{transition:none}}[data-calendar-month='0']{background-image:url(../img/calendar/january.jpg)}[data-calendar-month='1']{background-image:url(../img/calendar/february.jpg)}[data-calendar-month='2']{background-image:url(../img/calendar/march.jpg)}[data-calendar-month='3']{background-image:url(../img/calendar/april.jpg)}[data-calendar-month='4']{background-image:url(../img/calendar/may.jpg)}[data-calendar-month='5']{background-image:url(../img/calendar/june.jpg)}[data-calendar-month='6']{background-image:url(../img/calendar/july.jpg)}[data-calendar-month='7']{background-image:url(../img/calendar/august.jpg)}[data-calendar-month='8']{background-image:url(../img/calendar/september.jpg)}[data-calendar-month='9']{background-image:url(../img/calendar/october.jpg)}[data-calendar-month='10']{background-image:url(../img/calendar/november.jpg)}[data-calendar-month='11']{background-image:url(../img/calendar/december.jpg)}.card-calendar .card-header{border-bottom:0}.card-calendar table{background:0 0}.card-calendar table tr>td:first-child{border-left-width:0}.card-calendar table tr>td:last-child{border-right-width:0}.widget-calendar{position:relative;z-index:0}.widget-calendar td,.widget-calendar th{text-align:center;border-color:transparent}.widget-calendar .fc-toolbar{margin-top:1.25rem}.widget-calendar .fc-toolbar h2{font-size:1rem}.widget-calendar .fc-day-number{width:100%;padding:0;text-align:center}.widget-calendar .fc table{font-size:.875rem}.widget-calendar .fc th{font-size:.75rem;padding:.75rem .5rem}.vector-map{position:relative;height:600px}.vector-map-sm{height:280px}.jvectormap-container{width:100%;height:100%}.jvectormap-zoomin,.jvectormap-zoomout{position:absolute;bottom:0;left:0}.jvectormap-zoomin{bottom:4.25rem}.jvectormap-zoomout{bottom:2rem}.hide{display:none;}/*!
+ * Lavalamp
+ * http://lavalamp.magicmediamuse.com/
+ */.lavalamp{position:relative}.lavalamp-item{position:relative;z-index:5}.lavalamp-object{position:absolute;top:0;left:0}.lavalamp .lavalamp-object{transition-property:transform,width,height}.lavalamp .lavalamp-object.ease{transition-timing-function:ease}.lavalamp .lavalamp-object.ease-in{transition-timing-function:ease-in}.lavalamp .lavalamp-object.ease-out{transition-timing-function:ease-out}.lavalamp .lavalamp-object.ease-in-out{transition-timing-function:ease-in-out}.lavalamp .lavalamp-object.linear{transition-timing-function:linear}.lavalamp .lavalamp-object.easeInQuad{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}.lavalamp .lavalamp-object.easeInCubic{transition-timing-function:cubic-bezier(.55,.055,.675,.19)}.lavalamp .lavalamp-object.easeInQuart{transition-timing-function:cubic-bezier(.895,.03,.685,.22)}.lavalamp .lavalamp-object.easeInQuint{transition-timing-function:cubic-bezier(.755,.05,.855,.06)}.lavalamp .lavalamp-object.easeInSine{transition-timing-function:cubic-bezier(.47,0,.745,.715)}.lavalamp .lavalamp-object.easeInExpo{transition-timing-function:cubic-bezier(.95,.05,.795,.035)}.lavalamp .lavalamp-object.easeInCirc{transition-timing-function:cubic-bezier(.6,.04,.98,.335)}.lavalamp .lavalamp-object.easeInBack{transition-timing-function:cubic-bezier(.6,-.28,.735,.045)}.lavalamp .lavalamp-object.easeOutQuad{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}.lavalamp .lavalamp-object.easeOutCubic{transition-timing-function:cubic-bezier(.215,.61,.355,1)}.lavalamp .lavalamp-object.easeOutQuart{transition-timing-function:cubic-bezier(.165,.84,.44,1)}.lavalamp .lavalamp-object.easeOutQuint{transition-timing-function:cubic-bezier(.23,1,.32,1)}.lavalamp .lavalamp-object.easeOutSine{transition-timing-function:cubic-bezier(.39,.575,.565,1)}.lavalamp .lavalamp-object.easeOutExpo{transition-timing-function:cubic-bezier(.19,1,.22,1)}.lavalamp .lavalamp-object.easeOutCirc{transition-timing-function:cubic-bezier(.075,.82,.165,1)}.lavalamp .lavalamp-object.easeOutBack{transition-timing-function:cubic-bezier(.175,.885,.32,1.275)}.lavalamp .lavalamp-object.easeInOutQuad{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}.lavalamp .lavalamp-object.easeInOutCubic{transition-timing-function:cubic-bezier(.645,.045,.355,1)}.lavalamp .lavalamp-object.easeInOutQuart{transition-timing-function:cubic-bezier(.645,.045,.355,1)}.lavalamp .lavalamp-object.easeInOutQuint{transition-timing-function:cubic-bezier(.86,0,.07,1)}.lavalamp .lavalamp-object.easeInOutSine{transition-timing-function:cubic-bezier(.445,.05,.55,.95)}.lavalamp .lavalamp-object.easeInOutExpo{transition-timing-function:cubic-bezier(1,0,0,1)}.lavalamp .lavalamp-object.easeInOutCirc{transition-timing-function:cubic-bezier(.785,.135,.15,.86)}.lavalamp .lavalamp-object.easeInOutBack{transition-timing-function:cubic-bezier(.68,-.55,.265,1.55)}.noUi-target,.noUi-target *{box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:none}.noUi-target{position:relative;direction:ltr}.noUi-base,.noUi-connects{position:relative;z-index:1;width:100%;height:100%}.noUi-connects{z-index:0;overflow:hidden}.noUi-connect,.noUi-origin{position:absolute;z-index:1;top:0;left:0;width:100%;height:100%;transform-origin:0 0;will-change:transform}html:not([dir=rtl]) .noUi-horizontal .noUi-origin{right:0;left:auto}.noUi-vertical .noUi-origin{width:0}.noUi-horizontal .noUi-origin{height:0}.noUi-handle{position:absolute}.noUi-state-tap .noUi-connect,.noUi-state-tap .noUi-origin{transition:transform .3s}.noUi-state-drag *{cursor:inherit!important}.noUi-horizontal{height:5px}.noUi-horizontal .noUi-handle{top:-6px;left:-17px;width:34px;height:28px}.noUi-vertical{width:5px}.noUi-vertical .noUi-handle{top:-17px;left:-6px;width:28px;height:34px}html:not([dir=rtl]) .noUi-horizontal .noUi-handle{right:-17px;left:auto}.noUi-connects{border-radius:3px}.noUi-connect{background:#5e72e4}.noUi-draggable{cursor:ew-resize}.noUi-vertical .noUi-draggable{cursor:ns-resize}.noUi-handle{cursor:default;border:1px solid #d9d9d9;border-radius:3px;outline:0;background:#fff;box-shadow:inset 0 0 1px #fff,inset 0 1px 7px #ebebeb,0 3px 6px -3px #bbb}.noUi-active{outline:0}[disabled] .noUi-connect{background:#b8b8b8}[disabled] .noUi-handle,[disabled].noUi-handle,[disabled].noUi-target{cursor:not-allowed}.noUi-pips,.noUi-pips *{box-sizing:border-box}.noUi-pips{position:absolute;color:#999}.noUi-value{position:absolute;text-align:center;white-space:nowrap}.noUi-value-sub{font-size:10px;color:#ccc}.noUi-marker{position:absolute;background:#ccc}.noUi-marker-sub{background:#aaa}.noUi-marker-large{background:#aaa}.noUi-pips-horizontal{top:100%;left:0;width:100%;height:80px;padding:10px 0}.noUi-value-horizontal{transform:translate(-50%,50%)}.noUi-rtl .noUi-value-horizontal{transform:translate(50%,50%)}.noUi-marker-horizontal.noUi-marker{width:2px;height:5px;margin-left:-1px}.noUi-marker-horizontal.noUi-marker-sub{height:10px}.noUi-marker-horizontal.noUi-marker-large{height:15px}.noUi-pips-vertical{top:0;left:100%;height:100%;padding:0 10px}.noUi-value-vertical{padding-left:25px;transform:translate(0,-50%,0)}.noUi-rtl .noUi-value-vertical{transform:translate(0,50%)}.noUi-marker-vertical.noUi-marker{width:5px;height:2px;margin-top:-1px}.noUi-marker-vertical.noUi-marker-sub{width:10px}.noUi-marker-vertical.noUi-marker-large{width:15px}.noUi-tooltip{position:absolute;display:block;padding:5px;text-align:center;white-space:nowrap;color:#000;border:1px solid #d9d9d9;border-radius:3px;background:#fff}.noUi-horizontal .noUi-tooltip{bottom:120%;left:50%;transform:translate(-50%,0)}.noUi-vertical .noUi-tooltip{top:50%;right:120%;transform:translate(0,-50%)}.noUi-target{margin:15px 0;cursor:pointer;border:0;border-radius:5px;background:#eceeef;box-shadow:inset 0 1px 2px rgba(90,97,105,.1)}.noUi-horizontal{height:5px}html:not([dir=rtl]) .noUi-horizontal .noUi-handle{right:-10px}.noUi-vertical{width:5px}.noUi-connect{background:#5e72e4;box-shadow:none}.noUi-horizontal .noUi-handle,.noUi-vertical .noUi-handle{top:-5px;width:15px;height:15px;cursor:pointer;transition:box-shadow .15s,transform .15s;border:0;border-radius:100%;background-color:#5e72e4;box-shadow:none}.noUi-horizontal .noUi-handle.noUi-active,.noUi-vertical .noUi-handle.noUi-active{box-shadow:0 0 0 2px #5e72e4}.input-slider--cyan .noUi-connect{background:#2bffc6}[disabled] .noUi-connect,[disabled].noUi-connect{background:#b2b2b2}[disabled] .noUi-handle,[disabled].noUi-origin{cursor:not-allowed}.range-slider-value{font-size:.75rem;font-weight:500;padding:.4em .8em .3em .85em;color:#fff;border-radius:10px;background-color:rgba(33,37,41,.7)}.range-slider-wrapper .upper-info{font-weight:400;margin-bottom:5px}.input-slider-value-output{font-size:11px;position:relative;top:12px;padding:4px 8px;color:#fff;border-radius:2px;background:#333}.input-slider-value-output:after{position:absolute;bottom:100%;left:10px;width:0;height:0;margin-left:-4px;content:' ';pointer-events:none;border:solid transparent;border-width:4px;border-color:rgba(136,183,213,0);border-bottom-color:#333}.input-slider-value-output.left:after{right:auto;left:10px}.input-slider-value-output.right:after{right:10px;left:auto}.ql-container{font-family:Open Sans,sans-serif}.ql-toolbar{position:relative;padding:.625rem .75rem;color:#8898aa;border:1px solid #dee2e6;border-radius:.25rem .25rem 0 0;background-color:#fff}.ql-toolbar+.ql-container{margin-top:-1px}.ql-toolbar+.ql-container .ql-editor{border-top-left-radius:0;border-top-right-radius:0}.ql-editor{font-size:1rem;line-height:1.5;display:block;width:100%;min-height:6rem;padding:.625rem .75rem;transition:all .15s cubic-bezier(.68,-.55,.265,1.55);color:#8898aa;border:1px solid #dee2e6;border-radius:.25rem;background-color:#fff;background-clip:padding-box;box-shadow:0 3px 2px rgba(233,236,239,.05)}@media (prefers-reduced-motion:reduce){.ql-editor{transition:none}}.ql-editor::-ms-expand{border:0;background-color:transparent}.ql-editor:focus{color:#8898aa;border-color:#5e72e4;outline:0;background-color:#fff;box-shadow:0 3px 9px rgba(50,50,9,0),3px 4px 8px rgba(94,114,228,.1)}.ql-editor:focus{border-color:#dee2e6}.ql-hidden{position:absolute;transform:scale(0)}.ql-editor.ql-blank::before{font-style:normal;top:.625rem;left:.75rem;color:#adb5bd}.ql-editor:focus::before{display:none}.ql-formats{padding-right:.5rem;padding-left:.5rem}.ql-formats:first-child{padding-left:0}.ql-formats:last-child{padding-right:0}.ql-toolbar button{padding:0 .25rem;cursor:pointer;transition:all .15s ease;color:#525f7f;border:none;background:0 0}.ql-toolbar button:hover{color:#5e72e4}.ql-toolbar button:first-child{margin-left:-.25rem}.ql-toolbar .ql-active{color:#5e72e4}.ql-toolbar button svg{width:1.25rem;height:1.25rem}.ql-toolbar .ql-stroke{stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}.ql-toolbar .ql-thin{stroke-width:1}.ql-toolbar .ql-fill{fill:currentColor}.ql-toolbar input.ql-image{position:absolute;transform:scale(0)}.ql-tooltip{position:absolute;display:flex;width:18.5rem;margin-top:.6rem;padding:.625rem .75rem;border:1px solid rgba(0,0,0,.05);border-radius:.4375rem;background-color:#fff;box-shadow:0 .5rem 2rem 0 rgba(0,0,0,.2);flex-wrap:nowrap}.ql-tooltip:after,.ql-tooltip:before{position:absolute;bottom:100%;left:50%;content:'';transform:translateX(-50%)}.ql-tooltip:before{border-right:.6rem solid transparent;border-bottom:.6rem solid rgba(0,0,0,.05);border-left:.6rem solid transparent}.ql-tooltip:after{border-right:.5rem solid transparent;border-bottom:.5rem solid #fff;border-left:.5rem solid transparent}.ql-container .ql-tooltip:hover{display:flex!important}.ql-tooltip .ql-preview{font-size:.875rem;line-height:1.5;width:100%;padding:.25rem .5rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;border-radius:.25rem}@media (prefers-reduced-motion:reduce){.ql-tooltip .ql-preview{transition:none}}.ql-tooltip.ql-editing .ql-preview{display:none}.ql-tooltip input{font-size:.875rem;line-height:1.5;display:none;width:100%;padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);color:#8898aa;border:none;background-color:transparent}.ql-tooltip input:focus{outline:0}.ql-tooltip.ql-editing input{display:block}.ql-tooltip .ql-action,.ql-tooltip .ql-remove{margin-left:.25rem}.ql-tooltip .ql-action::before,.ql-tooltip .ql-remove::before{font-size:.875rem;font-weight:600;line-height:1.5;display:inline-block;padding:.25rem .5rem;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;text-align:center;vertical-align:middle;white-space:nowrap;border:1px solid transparent;border-radius:.25rem}@media (prefers-reduced-motion:reduce){.ql-tooltip .ql-action::before,.ql-tooltip .ql-remove::before{transition:none}}.ql-tooltip .ql-action::before:focus,.ql-tooltip .ql-action::before:hover,.ql-tooltip .ql-remove::before:focus,.ql-tooltip .ql-remove::before:hover{text-decoration:none}.ql-tooltip .ql-action::before.focus,.ql-tooltip .ql-action::before:focus,.ql-tooltip .ql-remove::before.focus,.ql-tooltip .ql-remove::before:focus{outline:0;box-shadow:0 7px 14px rgba(50,50,93,.1),0 3px 6px rgba(0,0,0,.08)}.ql-tooltip .ql-action::before,.ql-tooltip.ql-editing .ql-action::before{color:#fff;border-color:#5e72e4;background-color:#5e72e4;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.ql-tooltip .ql-action::before:hover,.ql-tooltip.ql-editing .ql-action::before:hover{color:#fff;border-color:#5e72e4;background-color:#5e72e4}.ql-tooltip .ql-action::before.focus,.ql-tooltip .ql-action::before:focus,.ql-tooltip.ql-editing .ql-action::before.focus,.ql-tooltip.ql-editing .ql-action::before:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(94,114,228,.5)}.ql-tooltip .ql-action::before.disabled,.ql-tooltip .ql-action::before:disabled,.ql-tooltip.ql-editing .ql-action::before.disabled,.ql-tooltip.ql-editing .ql-action::before:disabled{color:#fff;border-color:#5e72e4;background-color:#5e72e4}.ql-tooltip .ql-action::before:not(:disabled):not(.disabled).active,.ql-tooltip .ql-action::before:not(:disabled):not(.disabled):active,.ql-tooltip.ql-editing .ql-action::before:not(:disabled):not(.disabled).active,.ql-tooltip.ql-editing .ql-action::before:not(:disabled):not(.disabled):active,.show>.ql-tooltip .ql-action::before.dropdown-toggle,.show>.ql-tooltip.ql-editing .ql-action::before.dropdown-toggle{color:#fff;border-color:#5e72e4;background-color:#324cdd}.ql-tooltip .ql-action::before:not(:disabled):not(.disabled).active:focus,.ql-tooltip .ql-action::before:not(:disabled):not(.disabled):active:focus,.ql-tooltip.ql-editing .ql-action::before:not(:disabled):not(.disabled).active:focus,.ql-tooltip.ql-editing .ql-action::before:not(:disabled):not(.disabled):active:focus,.show>.ql-tooltip .ql-action::before.dropdown-toggle:focus,.show>.ql-tooltip.ql-editing .ql-action::before.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(94,114,228,.5)}.ql-tooltip .ql-action::before{content:'Edit'}.ql-tooltip.ql-editing .ql-action::before{content:'Save'}.ql-tooltip .ql-remove::before{content:'Remove';color:#212529;border-color:#fff;border-color:#dee2e6;background-color:#fff;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}.ql-tooltip .ql-remove::before:hover{color:#212529;border-color:#fff;background-color:#fff}.ql-tooltip .ql-remove::before.focus,.ql-tooltip .ql-remove::before:focus{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08),0 0 0 0 rgba(255,255,255,.5)}.ql-tooltip .ql-remove::before.disabled,.ql-tooltip .ql-remove::before:disabled{color:#212529;border-color:#fff;background-color:#fff}.ql-tooltip .ql-remove::before:not(:disabled):not(.disabled).active,.ql-tooltip .ql-remove::before:not(:disabled):not(.disabled):active,.show>.ql-tooltip .ql-remove::before.dropdown-toggle{color:#212529;border-color:#fff;background-color:#e6e6e6}.ql-tooltip .ql-remove::before:not(:disabled):not(.disabled).active:focus,.ql-tooltip .ql-remove::before:not(:disabled):not(.disabled):active:focus,.show>.ql-tooltip .ql-remove::before.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(255,255,255,.5)}.ql-tooltip.ql-editing .ql-remove::before{display:none}.ql-editor blockquote{font-size:1.25rem;margin-bottom:1rem}.ql-editor img{max-width:100%;height:auto}.scroll-wrapper{position:relative;overflow:hidden!important;padding:0!important}.scroll-wrapper>.scroll-content{position:relative!important;top:0;left:0;overflow:scroll!important;box-sizing:content-box!important;width:auto!important;max-width:none!important;height:auto;max-height:none;margin:0;padding:0;border:none!important}.scroll-wrapper>.scroll-content::-webkit-scrollbar{width:0;height:0}.scroll-wrapper.scroll--rtl{direction:rtl}.scroll-element{display:none;box-sizing:content-box}.scroll-element div{box-sizing:content-box}.scroll-element .scroll-arrow,.scroll-element .scroll-bar{cursor:default}.scroll-element.scroll-x.scroll-scrollx_visible,.scroll-element.scroll-y.scroll-scrolly_visible{display:block}.scroll-textarea{border:1px solid #ccc;border-top-color:#999}.scroll-textarea>.scroll-content{overflow:hidden!important}.scroll-textarea>.scroll-content>textarea{position:relative!important;top:0;overflow:scroll!important;box-sizing:border-box;width:100%!important;max-width:none!important;height:100%!important;max-height:none!important;margin:0;padding:2px;border:none!important;outline:0}.scroll-textarea>.scroll-content>textarea::-webkit-scrollbar{width:0;height:0}.scrollbar-inner>.scroll-element,.scrollbar-inner>.scroll-element div{position:absolute;z-index:10;margin:0;padding:0;border:none}.scrollbar-inner>.scroll-element div{top:0;left:0;display:block;width:100%;height:100%}.scrollbar-inner>.scroll-element.scroll-x{bottom:2px;left:0;width:100%;height:8px}.scrollbar-inner>.scroll-element.scroll-y{top:0;right:2px;width:8px;height:100%}.scrollbar-inner>.scroll-element .scroll-element_outer{overflow:hidden}.scrollbar-inner>.scroll-element .scroll-bar,.scrollbar-inner>.scroll-element .scroll-element_outer,.scrollbar-inner>.scroll-element .scroll-element_track{border-radius:8px}.scrollbar-inner>.scroll-element .scroll-bar,.scrollbar-inner>.scroll-element .scroll-element_track{opacity:.4}.scrollbar-inner>.scroll-element .scroll-element_track{background-color:#e0e0e0}.scrollbar-inner>.scroll-element .scroll-bar{background-color:#c2c2c2}.scrollbar-inner>.scroll-element:hover .scroll-bar{background-color:#919191}.scrollbar-inner>.scroll-element.scroll-draggable .scroll-bar{background-color:#919191}.scrollbar-inner>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track{left:-12px}.scrollbar-inner>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track{top:-12px}.scrollbar-inner>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size{left:-12px}.scrollbar-inner>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size{top:-12px}.scrollbar-outer>.scroll-element,.scrollbar-outer>.scroll-element div{position:absolute;z-index:10;margin:0;padding:0;border:none}.scrollbar-outer>.scroll-element{background-color:#fff}.scrollbar-outer>.scroll-element div{top:0;left:0;display:block;width:100%;height:100%}.scrollbar-outer>.scroll-element.scroll-x{bottom:0;left:0;width:100%;height:12px}.scrollbar-outer>.scroll-element.scroll-y{top:0;right:0;width:12px;height:100%}.scrollbar-outer>.scroll-element.scroll-x .scroll-element_outer{top:2px;height:8px}.scrollbar-outer>.scroll-element.scroll-y .scroll-element_outer{left:2px;width:8px}.scrollbar-outer>.scroll-element .scroll-element_outer{overflow:hidden}.scrollbar-outer>.scroll-element .scroll-element_track{background-color:#eee}.scrollbar-outer>.scroll-element .scroll-bar,.scrollbar-outer>.scroll-element .scroll-element_outer,.scrollbar-outer>.scroll-element .scroll-element_track{border-radius:8px}.scrollbar-outer>.scroll-element .scroll-bar{background-color:#d9d9d9}.scrollbar-outer>.scroll-element .scroll-bar:hover{background-color:#c2c2c2}.scrollbar-outer>.scroll-element.scroll-draggable .scroll-bar{background-color:#919191}.scrollbar-outer>.scroll-content.scroll-scrolly_visible{left:-12px;margin-left:12px}.scrollbar-outer>.scroll-content.scroll-scrollx_visible{top:-12px;margin-top:12px}.scrollbar-outer>.scroll-element.scroll-x .scroll-bar{min-width:10px}.scrollbar-outer>.scroll-element.scroll-y .scroll-bar{min-height:10px}.scrollbar-outer>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track{left:-14px}.scrollbar-outer>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track{top:-14px}.scrollbar-outer>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size{left:-14px}.scrollbar-outer>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size{top:-14px}.scrollbar-macosx>.scroll-element,.scrollbar-macosx>.scroll-element div{position:absolute;z-index:10;margin:0;padding:0;border:none;background:0 0}.scrollbar-macosx>.scroll-element div{top:0;left:0;display:block;width:100%;height:100%}.scrollbar-macosx>.scroll-element .scroll-element_track{display:none}.scrollbar-macosx>.scroll-element .scroll-bar{display:block;transition:opacity .2s linear;opacity:0;border-radius:7px;background-color:#6c6e71}.scrollbar-macosx:hover>.scroll-element .scroll-bar,.scrollbar-macosx>.scroll-element.scroll-draggable .scroll-bar{opacity:.7}.scrollbar-macosx>.scroll-element.scroll-x{bottom:0;left:0;overflow:visible;width:100%;min-width:100%;height:0}.scrollbar-macosx>.scroll-element.scroll-y{top:0;right:0;width:0;height:100%;min-height:100%}.scrollbar-macosx>.scroll-element.scroll-x .scroll-bar{top:-9px;min-width:10px;height:7px}.scrollbar-macosx>.scroll-element.scroll-y .scroll-bar{left:-9px;width:7px;min-height:10px}.scrollbar-macosx>.scroll-element.scroll-x .scroll-element_outer{left:2px}.scrollbar-macosx>.scroll-element.scroll-x .scroll-element_size{left:-4px}.scrollbar-macosx>.scroll-element.scroll-y .scroll-element_outer{top:2px}.scrollbar-macosx>.scroll-element.scroll-y .scroll-element_size{top:-4px}.scrollbar-macosx>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size{left:-11px}.scrollbar-macosx>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size{top:-11px}.scrollbar-light>.scroll-element,.scrollbar-light>.scroll-element div{position:absolute;z-index:10;overflow:hidden;margin:0;padding:0;border:none}.scrollbar-light>.scroll-element{background-color:#fff}.scrollbar-light>.scroll-element div{top:0;left:0;display:block;width:100%;height:100%}.scrollbar-light>.scroll-element .scroll-element_outer{border-radius:10px}.scrollbar-light>.scroll-element .scroll-element_size{border-radius:10px;background:#dbdbdb;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2RiZGJkYiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlOGU4ZTgiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);background:linear-gradient(to right,#dbdbdb 0,#e8e8e8 100%)}.scrollbar-light>.scroll-element.scroll-x{bottom:0;left:0;width:100%;min-width:100%;height:17px}.scrollbar-light>.scroll-element.scroll-y{top:0;right:0;width:17px;height:100%;min-height:100%}.scrollbar-light>.scroll-element .scroll-bar{border:1px solid #dbdbdb;border-radius:10px;background:#fefefe;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZlZmVmZSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNWY1ZjUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);background:linear-gradient(to right,#fefefe 0,#f5f5f5 100%)}.scrollbar-light>.scroll-content.scroll-scrolly_visible{left:-17px;margin-left:17px}.scrollbar-light>.scroll-content.scroll-scrollx_visible{top:-17px;margin-top:17px}.scrollbar-light>.scroll-element.scroll-x .scroll-bar{top:0;min-width:10px;height:10px}.scrollbar-light>.scroll-element.scroll-y .scroll-bar{left:0;width:10px;min-height:10px}.scrollbar-light>.scroll-element.scroll-x .scroll-element_outer{top:2px;left:2px;height:12px}.scrollbar-light>.scroll-element.scroll-x .scroll-element_size{left:-4px}.scrollbar-light>.scroll-element.scroll-y .scroll-element_outer{top:2px;left:2px;width:12px}.scrollbar-light>.scroll-element.scroll-y .scroll-element_size{top:-4px}.scrollbar-light>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size{left:-19px}.scrollbar-light>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size{top:-19px}.scrollbar-light>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track{left:-19px}.scrollbar-light>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track{top:-19px}.scrollbar-rail>.scroll-element,.scrollbar-rail>.scroll-element div{position:absolute;z-index:10;overflow:hidden;margin:0;padding:0;border:none}.scrollbar-rail>.scroll-element{background-color:#fff}.scrollbar-rail>.scroll-element div{top:0;left:0;display:block;width:100%;height:100%}.scrollbar-rail>.scroll-element .scroll-element_size{background-color:#999;background-color:rgba(0,0,0,.3)}.scrollbar-rail>.scroll-element .scroll-element_outer:hover .scroll-element_size{background-color:#666;background-color:rgba(0,0,0,.5)}.scrollbar-rail>.scroll-element.scroll-x{bottom:0;left:0;width:100%;min-width:100%;height:12px;padding:3px 0 2px}.scrollbar-rail>.scroll-element.scroll-y{top:0;right:0;width:12px;height:100%;min-height:100%;padding:0 2px 0 3px}.scrollbar-rail>.scroll-element .scroll-bar{border-radius:2px;background-color:#d0b9a0;box-shadow:1px 1px 3px rgba(0,0,0,.5)}.scrollbar-rail>.scroll-element .scroll-element_outer:hover .scroll-bar{box-shadow:1px 1px 3px rgba(0,0,0,.6)}.scrollbar-rail>.scroll-content.scroll-scrolly_visible{left:-17px;margin-left:17px}.scrollbar-rail>.scroll-content.scroll-scrollx_visible{top:-17px;margin-top:17px}.scrollbar-rail>.scroll-element.scroll-x .scroll-bar{top:1px;min-width:10px;height:10px}.scrollbar-rail>.scroll-element.scroll-y .scroll-bar{left:1px;width:10px;min-height:10px}.scrollbar-rail>.scroll-element.scroll-x .scroll-element_outer{left:5px;height:15px}.scrollbar-rail>.scroll-element.scroll-x .scroll-element_size{top:5px;left:-10px;height:2px}.scrollbar-rail>.scroll-element.scroll-y .scroll-element_outer{top:5px;width:15px}.scrollbar-rail>.scroll-element.scroll-y .scroll-element_size{top:-10px;left:5px;width:2px}.scrollbar-rail>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size{left:-25px}.scrollbar-rail>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size{top:-25px}.scrollbar-rail>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track{left:-25px}.scrollbar-rail>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track{top:-25px}.scrollbar-dynamic>.scroll-element,.scrollbar-dynamic>.scroll-element div{position:absolute;z-index:10;margin:0;padding:0;border:none;background:0 0}.scrollbar-dynamic>.scroll-element div{top:0;left:0;display:block;width:100%;height:100%}.scrollbar-dynamic>.scroll-element.scroll-x{bottom:2px;left:0;width:100%;min-width:100%;height:7px}.scrollbar-dynamic>.scroll-element.scroll-y{top:0;right:2px;width:7px;height:100%;min-height:100%}.scrollbar-dynamic>.scroll-element .scroll-element_outer{opacity:.3;border-radius:12px}.scrollbar-dynamic>.scroll-element .scroll-element_size{transition:opacity .2s;opacity:0;border-radius:12px;background-color:#ccc}.scrollbar-dynamic>.scroll-element .scroll-bar{border-radius:7px;background-color:#6c6e71}.scrollbar-dynamic>.scroll-element.scroll-x .scroll-bar{top:auto;bottom:0;min-width:24px;height:7px}.scrollbar-dynamic>.scroll-element.scroll-y .scroll-bar{right:0;left:auto;width:7px;min-height:24px}.scrollbar-dynamic>.scroll-element.scroll-x .scroll-element_outer{top:auto;bottom:0;left:2px;transition:height .2s}.scrollbar-dynamic>.scroll-element.scroll-y .scroll-element_outer{top:2px;right:0;left:auto;transition:width .2s}.scrollbar-dynamic>.scroll-element.scroll-x .scroll-element_size{left:-4px}.scrollbar-dynamic>.scroll-element.scroll-y .scroll-element_size{top:-4px}.scrollbar-dynamic>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size{left:-11px}.scrollbar-dynamic>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size{top:-11px}.scrollbar-dynamic>.scroll-element.scroll-draggable .scroll-element_outer,.scrollbar-dynamic>.scroll-element:hover .scroll-element_outer{overflow:hidden;opacity:.7}.scrollbar-dynamic>.scroll-element.scroll-draggable .scroll-element_outer .scroll-element_size,.scrollbar-dynamic>.scroll-element:hover .scroll-element_outer .scroll-element_size{opacity:1}.scrollbar-dynamic>.scroll-element.scroll-draggable .scroll-element_outer .scroll-bar,.scrollbar-dynamic>.scroll-element:hover .scroll-element_outer .scroll-bar{width:100%;height:100%;border-radius:12px}.scrollbar-dynamic>.scroll-element.scroll-x.scroll-draggable .scroll-element_outer,.scrollbar-dynamic>.scroll-element.scroll-x:hover .scroll-element_outer{height:20px;min-height:7px}.scrollbar-dynamic>.scroll-element.scroll-y.scroll-draggable .scroll-element_outer,.scrollbar-dynamic>.scroll-element.scroll-y:hover .scroll-element_outer{width:20px;min-width:7px}.scrollbar-chrome>.scroll-element,.scrollbar-chrome>.scroll-element div{position:absolute;z-index:10;overflow:hidden;margin:0;padding:0;border:none}.scrollbar-chrome>.scroll-element{background-color:#fff}.scrollbar-chrome>.scroll-element div{top:0;left:0;display:block;width:100%;height:100%}.scrollbar-chrome>.scroll-element .scroll-element_track{border:1px solid #dbdbdb;background:#f1f1f1}.scrollbar-chrome>.scroll-element.scroll-x{bottom:0;left:0;width:100%;min-width:100%;height:16px}.scrollbar-chrome>.scroll-element.scroll-y{top:0;right:0;width:16px;height:100%;min-height:100%}.scrollbar-chrome>.scroll-element .scroll-bar{cursor:default;border:1px solid #bdbdbd;border-radius:2px;background-color:#d9d9d9}.scrollbar-chrome>.scroll-element .scroll-bar:hover{border-color:#a9a9a9;background-color:#c2c2c2}.scrollbar-chrome>.scroll-element.scroll-draggable .scroll-bar{border-color:#7e7e7e;background-color:#919191}.scrollbar-chrome>.scroll-content.scroll-scrolly_visible{left:-16px;margin-left:16px}.scrollbar-chrome>.scroll-content.scroll-scrollx_visible{top:-16px;margin-top:16px}.scrollbar-chrome>.scroll-element.scroll-x .scroll-bar{top:3px;min-width:10px;height:8px}.scrollbar-chrome>.scroll-element.scroll-y .scroll-bar{left:3px;width:8px;min-height:10px}.scrollbar-chrome>.scroll-element.scroll-x .scroll-element_outer{border-left:1px solid #dbdbdb}.scrollbar-chrome>.scroll-element.scroll-x .scroll-element_track{left:-3px;height:14px}.scrollbar-chrome>.scroll-element.scroll-x .scroll-element_size{left:-4px;height:14px}.scrollbar-chrome>.scroll-element.scroll-y .scroll-element_outer{border-top:1px solid #dbdbdb}.scrollbar-chrome>.scroll-element.scroll-y .scroll-element_track{top:-3px;width:14px}.scrollbar-chrome>.scroll-element.scroll-y .scroll-element_size{top:-4px;width:14px}.scrollbar-chrome>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size{left:-19px}.scrollbar-chrome>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size{top:-19px}.scrollbar-chrome>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track{left:-19px}.scrollbar-chrome>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track{top:-19px}.scrollbar-inner{height:100%}.scrollbar-inner:not(:hover) .scroll-element{opacity:0}.scrollbar-inner .scroll-element{margin-right:2px;transition:opacity .3s}.scrollbar-inner .scroll-element .scroll-bar,.scrollbar-inner .scroll-element .scroll-element_track{transition:background-color .3s}.scrollbar-inner .scroll-element .scroll-element_track{background-color:transparent}.scrollbar-inner .scroll-element:hover{width:4px}.scrollbar-inner .scroll-element.scroll-y{right:0;width:3px}.scrollbar-inner .scroll-element.scroll-x{bottom:0;height:3px}.select2-selection__arrow{display:none}.select2.select2-container{width:100%!important}.select2-container .select2-selection--single,.select2-container--default .select2-search--dropdown .select2-search__field,.select2-container--default .select2-selection--multiple,.select2-container--default.select2-container--focus .select2-selection--multiple{font-size:1rem;line-height:1.5;display:block;width:100%;height:calc(1.5em + 1.25rem + 2px);padding:.625rem .75rem;transition:all .15s cubic-bezier(.68,-.55,.265,1.55);color:#8898aa;border:1px solid #dee2e6;border-radius:.25rem;background-color:#fff;background-clip:padding-box;box-shadow:0 3px 2px rgba(233,236,239,.05)}@media (prefers-reduced-motion:reduce){.select2-container .select2-selection--single,.select2-container--default .select2-search--dropdown .select2-search__field,.select2-container--default .select2-selection--multiple,.select2-container--default.select2-container--focus .select2-selection--multiple{transition:none}}.select2-container .select2-selection--single::-ms-expand,.select2-container--default .select2-search--dropdown .select2-search__field::-ms-expand,.select2-container--default .select2-selection--multiple::-ms-expand,.select2-container--default.select2-container--focus .select2-selection--multiple::-ms-expand{border:0;background-color:transparent}.select2-container .select2-selection--single:focus,.select2-container--default .select2-search--dropdown .select2-search__field:focus,.select2-container--default .select2-selection--multiple:focus,.select2-container--default.select2-container--focus .select2-selection--multiple:focus{color:#8898aa;border-color:#5e72e4;outline:0;background-color:#fff;box-shadow:0 3px 9px rgba(50,50,9,0),3px 4px 8px rgba(94,114,228,.1)}.select2-container .select2-selection--single::-ms-input-placeholder,.select2-container--default .select2-search--dropdown .select2-search__field::-ms-input-placeholder,.select2-container--default .select2-selection--multiple::-ms-input-placeholder,.select2-container--default.select2-container--focus .select2-selection--multiple::-ms-input-placeholder{opacity:1;color:#adb5bd}.select2-container .select2-selection--single::placeholder,.select2-container--default .select2-search--dropdown .select2-search__field::placeholder,.select2-container--default .select2-selection--multiple::placeholder,.select2-container--default.select2-container--focus .select2-selection--multiple::placeholder{opacity:1;color:#adb5bd}.select2-container .select2-selection--single:disabled,.select2-container .select2-selection--single[readonly],.select2-container--default .select2-search--dropdown .select2-search__field:disabled,.select2-container--default .select2-search--dropdown .select2-search__field[readonly],.select2-container--default .select2-selection--multiple:disabled,.select2-container--default .select2-selection--multiple[readonly],.select2-container--default.select2-container--focus .select2-selection--multiple:disabled,.select2-container--default.select2-container--focus .select2-selection--multiple[readonly]{opacity:1;background-color:#e9ecef}.select2-container .select2-selection--single .select2-selection__rendered{overflow:inherit;padding:0;white-space:inherit;text-overflow:inherit}.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:inherit;color:inherit}.select2-dropdown{padding:.5rem 0;border:1px solid #dee2e6;border-radius:.4375rem;background-color:#fff}.select2-results__option{font-size:.875rem;padding:.5rem .75rem;color:#212529;background-color:#fff}.select2-results__option:focus,.select2-results__option:hover{text-decoration:none;color:#16181b;background-color:#f6f9fc}.select2-container--default .select2-results__option--highlighted[aria-selected],.select2-container--default .select2-results__option[aria-selected=true]{color:#16181b;background-color:transparent}.select2-container--default .select2-results__option[aria-disabled=true]{color:#8898aa}.select2-container--default .select2-selection--multiple,.select2-container--default.select2-container--focus .select2-selection--multiple{height:auto;min-height:calc(1.5em + 1.25rem + 2px)}.select2-container--default .select2-selection--multiple .select2-selection__rendered{display:block;margin:0 0 -.25rem -.25rem;padding:0}.select2-container--default .select2-selection--multiple .select2-selection__choice{font-size:.875rem;line-height:1.5rem;display:inline-flex;margin:0 0 .25rem .25rem;padding:0 .5rem;color:#8898aa;border:none;border-radius:.25rem;background-color:#adb5bd}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{margin-left:.5rem;color:#8898aa;order:2}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#525f7f}.select2-container .select2-search--inline{display:none}.select2-selection[aria-expanded=true]{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.select2-search--dropdown{padding:.5rem .75rem}.select2-container--default .select2-search--dropdown .select2-search__field{font-size:.875rem;line-height:1.5;padding:.25rem .5rem;border-radius:.25rem}.form-control-sm+.select2-container .select2-selection--single,.form-control-sm+.select2-container--default .select2-selection--multiple,.form-control-sm+.select2-container--default.select2-container--focus .select2-selection--multiple{font-size:.875rem;line-height:1.5;height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;border-radius:.25rem}.form-control-sm+.select2-container--default .select2-selection--multiple,.form-control-sm+.select2-container--default.select2-container--focus .select2-selection--multiple{min-height:calc(1.5em + .5rem + 2px)}.form-control-sm+.select2-container--default .select2-selection--multiple .select2-selection__choice{line-height:1.3125rem}.form-control-lg+.select2-container .select2-selection--single,.form-control-lg+.select2-container--default .select2-selection--multiple,.form-control-lg+.select2-container--default.select2-container--focus .select2-selection--multiple{font-size:1.25rem;line-height:1.5;height:calc(1.5em + 1.75rem + 2px);padding:.875rem 1rem;border-radius:.4375rem}.form-control-lg+.select2-container--default .select2-selection--multiple,.form-control-lg+.select2-container--default.select2-container--focus .select2-selection--multiple{min-height:calc(1.5em + 1.75rem + 2px)}.form-control-lg+.select2-container--default .select2-selection--multiple .select2-selection__choice{line-height:1.875rem}.swal2-popup{padding:1.5rem}.swal2-popup .swal2-title{font-size:1.5rem}.swal2-popup .swal2-content{font-size:.875rem}.swal2-popup .swal2-image{max-width:200px}.ct-navbar{padding-top:.5rem;padding-bottom:.5rem;background-color:#5e72e4;box-shadow:rgba(116,129,141,.1) 0 1px 1px 0}@media (max-width:991.98px){.ct-navbar{padding-right:.5rem;padding-left:.5rem}.ct-navbar .navbar-nav-scroll{font-size:.875rem;overflow:hidden;max-width:100%;height:2.5rem;margin-top:.25rem}.ct-navbar .navbar-nav-scroll .navbar-nav{overflow-x:auto;padding-bottom:2rem;white-space:nowrap;-webkit-overflow-scrolling:touch}}@media (min-width:768px){@supports ((position:-webkit-sticky) or (position:sticky)){.ct-navbar{position:-webkit-sticky;position:sticky;z-index:1071;top:0}}}.ct-navbar .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem;color:rgba(255,255,255,.9)!important}.ct-navbar .navbar-nav .nav-link.active,.ct-navbar .navbar-nav .nav-link:hover{color:#fff!important;background-color:transparent!important}.ct-navbar .navbar-nav .nav-link.active{font-weight:500}.ct-navbar .navbar-nav-svg{display:inline-block;width:1rem;height:1rem;vertical-align:text-top}.ct-navbar .dropdown-menu{font-size:.875rem}.ct-navbar .dropdown-item.active{font-weight:500;padding-left:25px;color:#212529;background-color:transparent;background-image:url('data:image/svg+xml;charset=utf8,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3E%3Cpath fill=\'%23292b2c\' d=\'M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z\'/%3E%3C/svg%3E');background-repeat:no-repeat;background-position:.4rem .87rem;background-size:.75rem .75rem}.github-corner{position:fixed;z-index:1080;right:0}.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}.github-corner svg{color:#5e72e4;fill:#fff}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}.ct-clipboard{position:relative;display:none;float:right}.ct-clipboard+.highlight{margin-top:0}.btn-clipboard{font-size:75%;position:absolute;z-index:10;top:1rem;right:1rem;display:block;padding:.25rem .5rem;cursor:pointer;color:#fff;border:0;border-radius:.25rem;background-color:transparent;background-color:#5e72e4}.btn-clipboard:hover{color:#fff;background-color:#324cdd}@media (min-width:768px){.ct-clipboard{display:block}}.ct-example-row .row>.col span,.ct-example-row .row>[class^=col-] span{font-size:.875rem;display:block;margin:1rem 0;padding:.75rem;color:#393f49;border-radius:.25rem;background-color:#fff;box-shadow:rgba(0,0,0,.1) 0 0 0 1px,rgba(0,0,0,.1) 0 4px 16px}.ct-example-row .no-gutters>.col span,.ct-example-row .no-gutters>[class^=col-] span{border-radius:0}.ct-example-row .flex-items-bottom,.ct-example-row .flex-items-middle,.ct-example-row .flex-items-top{min-height:6rem;background-color:rgba(255,0,0,.1)}.ct-example-row-flex-cols .row{min-height:10rem;background-color:rgba(255,0,0,.1)}.ct-example-row-flex-cols .row+.row{margin-top:1rem}.ct-highlight{border:1px solid rgba(94,114,228,.15);background-color:rgba(94,114,228,.15)}.example-container{width:800px;width:100%;margin-right:auto;margin-left:auto;padding-right:15px;padding-left:15px}.example-row{display:flex;margin-right:-15px;margin-left:-15px;flex-wrap:wrap}.example-content-main{position:relative;width:100%;padding-right:15px;padding-left:15px}@media (min-width:576px){.example-content-main{max-width:50%;flex:0 0 50%}}@media (min-width:992px){.example-content-main{max-width:66.66667%;flex:0 0 66.66667%}}.example-content-secondary{position:relative;width:100%;padding-right:15px;padding-left:15px}@media (min-width:576px){.example-content-secondary{max-width:50%;flex:0 0 50%}}@media (min-width:992px){.example-content-secondary{max-width:33.33333%;flex:0 0 33.33333%}}.ct-example-container{min-width:16rem;max-width:25rem;margin-right:auto;margin-left:auto}.ct-example-container-header{height:3rem;margin-bottom:.5rem;border-radius:.25rem;background-color:#fff}.ct-example-container-sidebar{float:right;width:4rem;height:8rem;border-radius:.25rem;background-color:#cbd2f6}.ct-example-container-body{height:8rem;margin-right:4.5rem;border-radius:.25rem;background-color:#cbd2f6}.ct-example-container-fluid{max-width:none}.ct-example{position:relative;margin:1rem -15px 0}.ct-example::after{display:block;clear:both;content:''}@media (min-width:576px){.ct-example{margin-right:0;margin-left:0}}.ct-example+.clipboard+.highlight,.ct-example+.highlight{margin-top:0}.ct-example+p{margin-top:2rem}.ct-example .pos-f-t{position:relative;margin:-1rem}@media (min-width:576px){.ct-example .pos-f-t{margin:-1.5rem}}.ct-example .custom-file-input:lang(es)~.custom-file-label::after{content:'Elegir'}.ct-example>.form-control+.form-control{margin-top:.5rem}.ct-example .badge,.ct-example .btn,.ct-example .form-control,.ct-example>.alert+.alert,.ct-example>.nav+.nav,.ct-example>.navbar+.navbar,.ct-example>.progress+.btn,.ct-example>.progress+.progress{margin-top:.5rem;margin-bottom:.5rem}.ct-example .input-group .btn,.ct-example .input-group .form-control{margin-top:0;margin-bottom:0}.ct-example .btn .badge{margin-top:0;margin-bottom:0}.ct-example .btn-group{margin-top:.5rem;margin-bottom:.5rem}.ct-example .btn-group .btn{margin:0}.ct-example .alert{margin:0}.ct-example .alert+.alert{margin-top:1.25rem}.ct-example>.dropdown-menu:first-child{position:static;display:block}.ct-example>.form-group:last-child{margin-bottom:0}.ct-example>.close{float:none}.ct-example-type .table .type-info{vertical-align:middle;color:#999}.ct-example-type .table td{padding:1rem 0;border-color:#eee}.ct-example-type .table tr:first-child td{border-top:0}.ct-example-type h1,.ct-example-type h2,.ct-example-type h3,.ct-example-type h4,.ct-example-type h5,.ct-example-type h6{margin-top:0;margin-bottom:0}.ct-example-bg-classes p{padding:1rem}.ct-example>img+img{margin-left:.5rem}.ct-example>.btn-group{margin-top:.25rem;margin-bottom:.25rem}.ct-example>.btn-toolbar+.btn-toolbar{margin-top:.5rem}.ct-example-control-sizing input[type=text]+input[type=text],.ct-example-control-sizing select{margin-top:.5rem}.ct-example-form .input-group{margin-bottom:.5rem}.ct-example>textarea.form-control{resize:vertical}.ct-example>.list-group{max-width:400px}.ct-example .fixed-top,.ct-example .sticky-top{position:static;margin:-1rem -1rem 1rem}.ct-example .fixed-bottom{position:static;margin:1rem -1rem -1rem}@media (min-width:576px){.ct-example .fixed-top,.ct-example .sticky-top{margin:-1.5rem -1.5rem 1rem}.ct-example .fixed-bottom{margin:1rem -1.5rem -1.5rem}}.ct-example .pagination{margin-top:.5rem;margin-bottom:.5rem}.modal{z-index:1072}.modal .popover,.modal .tooltip{z-index:1073}.modal-backdrop{z-index:1071}.ct-example-modal{background-color:#fafafa}.ct-example-modal .modal{position:relative;z-index:1;top:auto;right:auto;bottom:auto;left:auto;display:block}.ct-example-modal .modal-dialog{left:auto;margin-right:auto;margin-left:auto}.ct-example-tabs .nav-tabs{margin-bottom:1rem}.ct-example-popover-static{padding-bottom:1.5rem;background-color:#f9f9f9}.ct-example-popover-static .popover{position:relative;display:block;float:left;width:260px;margin:1.25rem}.tooltip-demo a{white-space:nowrap}.ct-example-tooltip-static .tooltip{position:relative;display:inline-block;margin:10px 20px;opacity:1}.scrollspy-example{position:relative;overflow:auto;height:200px;margin-top:.5rem}.scrollspy-example-2{position:relative;overflow:auto;height:350px}.ct-example-border-utils [class^=border]{display:inline-block;width:5rem;height:5rem;margin:.25rem;background-color:#f5f5f5}.ct-example-border-utils-0 [class^=border]{border:1px solid #e9ecef}.highlight{margin-top:1rem;padding:0;-ms-overflow-style:-ms-autohiding-scrollbar}@media (min-width:576px){.highlight{padding:0}}.ct-content .highlight{margin-right:-15px;margin-left:-15px}@media (min-width:576px){.ct-content .highlight{margin-right:0;margin-left:0}}.ct-example:not(:last-child){margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e9ecef}.ct-example .tab-content .tab-example-result{padding:1.25rem;border:1px solid #e6ecf1;border-radius:.25rem;background-color:#fff}.ct-example .nav-tabs-code{margin-bottom:.375rem}.ct-example .nav-tabs-code .nav-link{font-size:.875rem}.ct-example .nav-tabs-code .nav-link.active,.ct-example .nav-tabs-code .nav-link:active{color:#5e72e4}.icon-examples{margin-top:1rem}.btn-icon-clipboard{font-family:inherit;font-size:16px;font-weight:400;line-height:1.25;display:inline-block;width:100%;margin:0;margin:.5rem 0;padding:24px;cursor:pointer;text-align:left;vertical-align:middle;text-decoration:none;color:#393f49;border:0 none;border-radius:4px;background-color:#f8f9fa;-moz-appearance:none}.btn-icon-clipboard:hover{background-color:#fff;box-shadow:rgba(0,0,0,.1) 0 0 0 1px,rgba(0,0,0,.1) 0 4px 16px}.btn-icon-clipboard>div{display:flex;align-items:center}.btn-icon-clipboard i{font-size:1.5rem;box-sizing:content-box;vertical-align:middle;color:#393f49}.btn-icon-clipboard span{font-size:.875rem;line-height:1.5;display:inline-block;overflow:hidden;margin-left:16px;vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;color:#393f49}code[class*=language-],pre[class*=language-]{font-family:Consolas,Menlo,Monaco,'Andale Mono WT','Andale Mono','Lucida Console','Lucida Sans Typewriter','DejaVu Sans Mono','Bitstream Vera Sans Mono','Liberation Mono','Nimbus Mono L','Courier New',Courier,monospace;font-size:14px;line-height:1.375;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none;color:#5e6687;border-radius:.25rem;background:#f5f7ff;direction:ltr;-ms-hyphens:none}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{background:#dfe2f1;text-shadow:none}pre[class*=language-]{overflow:auto;margin:0;padding:1.25rem}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#898ea4}.token.punctuation{color:#5e6687}.token.namespace{opacity:.7}.token.boolean,.token.number,.token.operator{color:#c76b29}.token.property{color:#c08b30}.token.tag{color:#3d8fd1}.token.string{color:#22a2c9}.token.selector{color:#6679cc}.token.attr-name{color:#c76b29}.language-css .token.string,.style .token.string,.token.entity,.token.url{color:#22a2c9}.token.attr-value,.token.control,.token.directive,.token.keyword,.token.unit{color:#ac9739}.token.atrule,.token.regex,.token.statement{color:#22a2c9}.token.placeholder,.token.variable{color:#3d8fd1}.token.deleted{text-decoration:line-through}.token.inserted{text-decoration:none;border-bottom:1px dotted #202746}.token.italic{font-style:italic}.token.bold,.token.important{font-weight:700}.token.important{color:#c94922}.token.entity{cursor:help}pre>code.highlight{outline:.4em solid #c94922;outline-offset:.4em}.line-numbers .line-numbers-rows{border-right-color:#dfe2f1}.line-numbers-rows>span:before{color:#979db4}.line-highlight{background:rgba(107,115,148,.2);background:linear-gradient(to right,rgba(107,115,148,.2) 70%,rgba(107,115,148,0))}.docs{background:#fff}.docs h6{font-size:1rem;font-weight:600}.ct-content{order:1}.ct-content>h2[id],.ct-content>h3[id],.ct-content>h4[id]{pointer-events:none}.ct-content>h2[id]>a,.ct-content>h2[id]>div,.ct-content>h3[id]>a,.ct-content>h3[id]>div,.ct-content>h4[id]>a,.ct-content>h4[id]>div{pointer-events:auto}.ct-content>h2[id]::before,.ct-content>h3[id]::before,.ct-content>h4[id]::before{display:block;visibility:hidden;height:6rem;margin-top:-6rem;content:''}.ct-content>table{width:100%;max-width:100%;margin-bottom:1rem}@media (max-width:991.98px){.ct-content>table{display:block;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar}.ct-content>table.table-bordered{border:0}}.ct-content>table>tbody>tr>td,.ct-content>table>tbody>tr>th,.ct-content>table>tfoot>tr>td,.ct-content>table>tfoot>tr>th,.ct-content>table>thead>tr>td,.ct-content>table>thead>tr>th{padding:1rem;vertical-align:top;border:1px solid #e9ecef}.ct-content>table>tbody>tr>td>p:last-child,.ct-content>table>tbody>tr>th>p:last-child,.ct-content>table>tfoot>tr>td>p:last-child,.ct-content>table>tfoot>tr>th>p:last-child,.ct-content>table>thead>tr>td>p:last-child,.ct-content>table>thead>tr>th>p:last-child{margin-bottom:0}.ct-content>table td:first-child>code{white-space:nowrap}.ct-content>h2:not(:first-child){font-size:1.5rem;font-weight:600;margin-top:3rem}.ct-content>h3{font-size:1.25rem;font-weight:600;margin-top:2.5rem}.ct-content>ol li,.ct-content>ul li{margin-bottom:.25rem}@media (min-width:992px){.ct-content>ol,.ct-content>p,.ct-content>ul{max-width:80%}}.ct-page-title{margin-bottom:1.5rem;padding-left:1.25rem;border-left:2px solid #5e72e4}.ct-title{font-weight:300;margin-top:1rem;margin-bottom:.5rem}@media (min-width:576px){.ct-title{font-size:1.5rem;font-weight:600}}.ct-lead{font-weight:500;color:#3b454e}@media (min-width:576px){.ct-lead{font-size:.875rem;max-width:80%;margin-bottom:1rem}}.ct-text-purple{color:#5e72e4}.ct-text-purple-bright{color:#9da9f2}.ct-tabs-example .nav-link i{margin-right:5px}.color-swatch{margin:1rem 0;border-radius:.25rem;background-color:#f4f5f7}.color-swatch:after{display:table;clear:both;content:' '}.color-swatch-header{position:relative;height:0;padding-bottom:50%;border:1px solid transparent;border-radius:.25rem .25rem 0 0}.color-swatch-header.is-light{border-color:#c1c7d0}.color-swatch-header .pass-fail{position:absolute;bottom:0;width:100%}.color-swatch-header .pass-fail-item-wrap{position:relative;left:50%;float:left;transform:translateX(-50%)}.color-swatch-header .pass-fail-item-group{display:inline-block;padding:0 5px}.color-swatch-header .pass-fail-item{display:inline-block;float:left;padding:2px;text-align:center}.color-swatch-header .pass-fail-item.white .example{color:#fff}.color-swatch-header .pass-fail-item.small .example{font-size:10px}.color-swatch-header .pass-fail-item .lozenge{font-size:11px;font-weight:600;line-height:10px;padding:2px 4px;letter-spacing:.05em;text-transform:uppercase;color:#fff;border-radius:4px;background:#000}.color-swatch-body{position:relative;left:50%;float:left;padding:10px 0;transform:translateX(-50%)}.color-swatch-body .prop-item-wrap{float:left;min-width:65px;padding:0 15px}.color-swatch-body .prop-item{padding:15px 0}.color-swatch-body .prop-item .label{font-size:11px;line-height:16px;text-transform:uppercase;color:#62748c}.color-swatch-body .prop-item .value{font-size:14px}.table-colors{font-size:16px;font-weight:600;width:100%}.table-colors td,.table-colors td:first-child,.table-colors td:last-child,.table-colors:first-child td,.table-colors:first-child td:first-child,.table-colors:first-child td:last-child{padding:10px;border-bottom:1px solid rgba(0,0,0,.1);background:rgba(255,255,255,.9)}.table-colors tr:last-child td,.table-colors:first-child tr:last-child td{border-bottom:none}.table-colors td:nth-child(1),.table-colors:first-child td:nth-child(1){line-height:40px}.table-colors .swatch,.table-colors:first-child .swatch{display:inline-block;float:left;width:40px;height:40px;margin-right:20px;border:1px solid transparent;border-radius:4px}.table-colors .swatch.is-light,.table-colors:first-child .swatch.is-light{border-color:#c1c7d0}.table-colors .lozenge,.table-colors:first-child .lozenge{font-size:10px;font-weight:600;line-height:10px;display:inline-block;float:left;margin:5px 10px 0 0;padding:2px 4px;letter-spacing:.05em;text-transform:uppercase;color:#042a53;border-radius:4px;background:#97a0af}.ct-toc{font-size:.875rem;padding-top:2rem;padding-bottom:1.5rem;order:2}@supports ((position:-webkit-sticky) or (position:sticky)){.ct-toc{position:-webkit-sticky;position:sticky;top:4rem;overflow-y:auto;height:calc(100vh - 4rem)}}.section-nav{padding-left:0;border-left:1px solid #eee}.section-nav ul{padding-left:1rem}.section-nav ul ul{display:none}.toc-entry{font-size:1rem;display:block}.toc-entry a{font-size:90%;display:block;padding:.125rem 1.5rem;color:#99979c}.toc-entry a:hover{text-decoration:none;color:#5e72e4}.ct-sidebar{border-bottom:1px solid #e6ecf1;background-color:#f5f7f9;order:0}@media (min-width:768px){.ct-sidebar{border-right:1px solid #e6ecf1}@supports ((position:-webkit-sticky) or (position:sticky)){.ct-sidebar{position:-webkit-sticky;position:sticky;z-index:1000;top:4rem;height:calc(100vh - 4rem)}}}@media (min-width:1200px){.ct-sidebar{flex:0 1 320px}}.ct-links{margin-right:-15px;margin-left:-15px;padding-top:2rem;padding-bottom:1rem}@media (min-width:768px){@supports ((position:-webkit-sticky) or (position:sticky)){.ct-links{overflow-y:auto;max-height:calc(100vh - 5rem)}}}@media (min-width:768px){.ct-links{display:block!important}}.ct-search{position:relative;margin-right:-15px;margin-left:-15px;padding:1rem 15px;border-bottom:1px solid rgba(0,0,0,.05)}.ct-search .form-control:focus{border-color:#9da9f2;box-shadow:0 0 0 3px rgba(157,169,242,.25)}.ct-search-docs-toggle{line-height:1;color:#212529}.ct-sidenav{display:none}.ct-toc-link{font-size:.875rem;font-weight:600;display:block;padding:.25rem 1.5rem;color:#0d2b3e}.ct-toc-link:hover{text-decoration:none;color:rgba(0,0,0,.85)}.ct-toc-item.active{margin-bottom:1rem}.ct-toc-item.active:not(:first-child){margin-top:1rem}.ct-toc-item.active>.ct-toc-link{color:rgba(0,0,0,.85)}.ct-toc-item.active>.ct-toc-link:hover{background-color:transparent}.ct-toc-item.active>.ct-sidenav{display:block}.ct-sidebar .nav>li>a{font-size:84%;display:block;padding:.25rem 1.5rem;color:#4c555a}.ct-sidebar .nav>li>a:hover{text-decoration:none;color:rgba(0,0,0,.85);background-color:transparent}.ct-sidebar .nav>.active>a{font-weight:500;position:relative;padding-left:2rem;color:#0099e5;background-color:transparent}.ct-sidebar .nav>.active>a:before{position:absolute;top:50%;left:1.5rem;width:2px;height:16px;content:'';transform:translateY(-50%);background-color:#0099e5}.ct-sidebar .nav>.active:hover>a{color:#0099e5}.scrollbar-inner{height:100%}.scrollbar-inner:not(:hover) .scroll-element{opacity:0}.scrollbar-inner .scroll-element{margin-right:2px;transition:opacity .3s}.scrollbar-inner .scroll-element .scroll-bar,.scrollbar-inner .scroll-element .scroll-element_track{transition:background-color .3s}.scrollbar-inner .scroll-element .scroll-element_track{background-color:transparent}.scrollbar-inner .scroll-element.scroll-y{right:0;width:3px}.scrollbar-inner .scroll-element.scroll-x{bottom:0;height:3px}.ct-footer{font-size:85%;text-align:center;background-color:#f7f7f7}.ct-footer a{font-weight:500;color:#525f7f}.ct-footer a:focus,.ct-footer a:hover{color:#5e72e4}.ct-footer p{margin-bottom:0}@media (min-width:576px){.ct-footer{text-align:left}}.ct-footer-links{margin-bottom:1rem;padding-left:0}.ct-footer-links li{display:inline-block}.ct-footer-links li+li{margin-left:1rem}@keyframes gradientBackground{0%{background-position:left;}100%{background-position:right;}}
\ No newline at end of file
diff --git a/template/index4/assets/css/nucleo.css b/template/index4/assets/css/nucleo.css
new file mode 100644
index 0000000..f95f46d
--- /dev/null
+++ b/template/index4/assets/css/nucleo.css
@@ -0,0 +1 @@
+@font-face{font-family:'NucleoIcons';src:url('../fonts/nucleo-icons.eot');src:url('../fonts/nucleo-icons.eot') format('embedded-opentype'),url('../fonts/nucleo-icons.woff2') format('woff2'),url('../fonts/nucleo-icons.woff') format('woff'),url('../fonts/nucleo-icons.ttf') format('truetype'),url('../fonts/nucleo-icons.svg') format('svg');font-weight:normal;font-style:normal;}.ni{display:inline-block;font:normal normal normal 14px/1 NucleoIcons;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.ni-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%;}.ni-2x{font-size:2em;}.ni-3x{font-size:3em;}.ni-4x{font-size:4em;}.ni-5x{font-size:5em;}.ni.square,.ni.circle{padding:.33333333em;vertical-align:-16%;background-color:#eee;}.ni.circle{border-radius:50%;}.ni-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none;}.ni-ul>li{position:relative;}.ni-ul>li>.ni{position:absolute;left:-1.57142857em;top:.14285714em;text-align:center;}.ni-ul>li>.ni.lg{top:0;left:-1.35714286em;}.ni-ul>li>.ni.circle,.ni-ul>li>.ni.square{top:-0.19047619em;left:-1.9047619em;}.ni.spin{-webkit-animation:nc-spin 2s infinite linear;-moz-animation:nc-spin 2s infinite linear;animation:nc-spin 2s infinite linear;}@-webkit-keyframes nc-spin{0%{-webkit-transform:rotate(0deg);}100%{-webkit-transform:rotate(360deg);}}@-moz-keyframes nc-spin{0%{-moz-transform:rotate(0deg);}100%{-moz-transform:rotate(360deg);}}@keyframes nc-spin{0%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg);}}.ni.rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);}.ni.rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);}.ni.rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);}.ni.flip-y{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1,1);-moz-transform:scale(-1,1);-ms-transform:scale(-1,1);-o-transform:scale(-1,1);transform:scale(-1,1);}.ni.flip-x{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1);}.ni-active-40::before{content:"\ea02";}.ni-air-baloon::before{content:"\ea03";}.ni-album-2::before{content:"\ea04";}.ni-align-center::before{content:"\ea05";}.ni-align-left-2::before{content:"\ea06";}.ni-ambulance::before{content:"\ea07";}.ni-app::before{content:"\ea08";}.ni-archive-2::before{content:"\ea09";}.ni-atom::before{content:"\ea0a";}.ni-badge::before{content:"\ea0b";}.ni-bag-17::before{content:"\ea0c";}.ni-basket::before{content:"\ea0d";}.ni-bell-55::before{content:"\ea0e";}.ni-bold-down::before{content:"\ea0f";}.ni-bold-left::before{content:"\ea10";}.ni-bold-right::before{content:"\ea11";}.ni-bold-up::before{content:"\ea12";}.ni-bold::before{content:"\ea13";}.ni-book-bookmark::before{content:"\ea14";}.ni-books::before{content:"\ea15";}.ni-box-2::before{content:"\ea16";}.ni-briefcase-24::before{content:"\ea17";}.ni-building::before{content:"\ea18";}.ni-bulb-61::before{content:"\ea19";}.ni-bullet-list-67::before{content:"\ea1a";}.ni-bus-front-12::before{content:"\ea1b";}.ni-button-pause::before{content:"\ea1c";}.ni-button-play::before{content:"\ea1d";}.ni-button-power::before{content:"\ea1e";}.ni-calendar-grid-58::before{content:"\ea1f";}.ni-camera-compact::before{content:"\ea20";}.ni-caps-small::before{content:"\ea21";}.ni-cart::before{content:"\ea22";}.ni-chart-bar-32::before{content:"\ea23";}.ni-chart-pie-35::before{content:"\ea24";}.ni-chat-round::before{content:"\ea25";}.ni-check-bold::before{content:"\ea26";}.ni-circle-08::before{content:"\ea27";}.ni-cloud-download-95::before{content:"\ea28";}.ni-cloud-upload-96::before{content:"\ea29";}.ni-compass-04::before{content:"\ea2a";}.ni-controller::before{content:"\ea2b";}.ni-credit-card::before{content:"\ea2c";}.ni-curved-next::before{content:"\ea2d";}.ni-delivery-fast::before{content:"\ea2e";}.ni-diamond::before{content:"\ea2f";}.ni-email-83::before{content:"\ea30";}.ni-fat-add::before{content:"\ea31";}.ni-fat-delete::before{content:"\ea32";}.ni-fat-remove::before{content:"\ea33";}.ni-favourite-28::before{content:"\ea34";}.ni-folder-17::before{content:"\ea35";}.ni-glasses-2::before{content:"\ea36";}.ni-hat-3::before{content:"\ea37";}.ni-headphones::before{content:"\ea38";}.ni-html5::before{content:"\ea39";}.ni-istanbul::before{content:"\ea3a";}.ni-key-25::before{content:"\ea3b";}.ni-laptop::before{content:"\ea3c";}.ni-like-2::before{content:"\ea3d";}.ni-lock-circle-open::before{content:"\ea3e";}.ni-map-big::before{content:"\ea3f";}.ni-mobile-button::before{content:"\ea40";}.ni-money-coins::before{content:"\ea41";}.ni-note-03::before{content:"\ea42";}.ni-notification-70::before{content:"\ea43";}.ni-palette::before{content:"\ea44";}.ni-paper-diploma::before{content:"\ea45";}.ni-pin-3::before{content:"\ea46";}.ni-planet::before{content:"\ea47";}.ni-ruler-pencil::before{content:"\ea48";}.ni-satisfied::before{content:"\ea49";}.ni-scissors::before{content:"\ea4a";}.ni-send::before{content:"\ea4b";}.ni-settings-gear-65::before{content:"\ea4c";}.ni-settings::before{content:"\ea4d";}.ni-single-02::before{content:"\ea4e";}.ni-single-copy-04::before{content:"\ea4f";}.ni-sound-wave::before{content:"\ea50";}.ni-spaceship::before{content:"\ea51";}.ni-square-pin::before{content:"\ea52";}.ni-support-16::before{content:"\ea53";}.ni-tablet-button::before{content:"\ea54";}.ni-tag::before{content:"\ea55";}.ni-tie-bow::before{content:"\ea56";}.ni-time-alarm::before{content:"\ea57";}.ni-trophy::before{content:"\ea58";}.ni-tv-2::before{content:"\ea59";}.ni-umbrella-13::before{content:"\ea5a";}.ni-user-run::before{content:"\ea5b";}.ni-vector::before{content:"\ea5c";}.ni-watch-time::before{content:"\ea5d";}.ni-world::before{content:"\ea5e";}.ni-zoom-split-in::before{content:"\ea5f";}.ni-collection::before{content:"\ea60";}.ni-image::before{content:"\ea61";}.ni-shop::before{content:"\ea62";}.ni-ungroup::before{content:"\ea63";}.ni-world-2::before{content:"\ea64";}.ni-ui-04::before{content:"\ea65";}
\ No newline at end of file
diff --git a/template/index4/assets/fonts/nucleo-icons.ttf b/template/index4/assets/fonts/nucleo-icons.ttf
new file mode 100644
index 0000000..1a55985
Binary files /dev/null and b/template/index4/assets/fonts/nucleo-icons.ttf differ
diff --git a/template/index4/assets/fonts/nucleo-icons.woff b/template/index4/assets/fonts/nucleo-icons.woff
new file mode 100644
index 0000000..cb19247
Binary files /dev/null and b/template/index4/assets/fonts/nucleo-icons.woff differ
diff --git a/template/index4/assets/fonts/nucleo-icons.woff2 b/template/index4/assets/fonts/nucleo-icons.woff2
new file mode 100644
index 0000000..e294e08
Binary files /dev/null and b/template/index4/assets/fonts/nucleo-icons.woff2 differ
diff --git a/template/index4/assets/images/bg-admin.jpg b/template/index4/assets/images/bg-admin.jpg
new file mode 100644
index 0000000..87cca24
Binary files /dev/null and b/template/index4/assets/images/bg-admin.jpg differ
diff --git a/template/index4/assets/images/bg-uaspay5.jpg b/template/index4/assets/images/bg-uaspay5.jpg
new file mode 100644
index 0000000..c719af9
Binary files /dev/null and b/template/index4/assets/images/bg-uaspay5.jpg differ
diff --git a/template/index4/assets/images/img-1-1000x600.jpg b/template/index4/assets/images/img-1-1000x600.jpg
new file mode 100644
index 0000000..f7be1cc
Binary files /dev/null and b/template/index4/assets/images/img-1-1000x600.jpg differ
diff --git a/template/index4/assets/images/landing-1.jpg b/template/index4/assets/images/landing-1.jpg
new file mode 100644
index 0000000..ca04f32
Binary files /dev/null and b/template/index4/assets/images/landing-1.jpg differ
diff --git a/template/index4/assets/images/landing-2.jpg b/template/index4/assets/images/landing-2.jpg
new file mode 100644
index 0000000..bf33750
Binary files /dev/null and b/template/index4/assets/images/landing-2.jpg differ
diff --git a/template/index4/assets/images/landing-3.jpg b/template/index4/assets/images/landing-3.jpg
new file mode 100644
index 0000000..09e148a
Binary files /dev/null and b/template/index4/assets/images/landing-3.jpg differ
diff --git a/template/index4/assets/js/app.min.js b/template/index4/assets/js/app.min.js
new file mode 100644
index 0000000..1fc5332
--- /dev/null
+++ b/template/index4/assets/js/app.min.js
@@ -0,0 +1 @@
+"use strict";var Layout=function(){function e(){$(".sidenav-toggler").addClass("active"),$(".sidenav-toggler").data("action","sidenav-unpin"),$("body").removeClass("g-sidenav-hidden").addClass("g-sidenav-show g-sidenav-pinned"),$("body").append('1&&(l+='
'+i+" "),l+='
'+t+o+n+" "}}}(e,t),t.update()}return window.Chart&&o(Chart,(e={defaults:{global:{responsive:!0,maintainAspectRatio:!1,defaultColor:"dark"==t?i.gray[700]:i.gray[600],defaultFontColor:"dark"==t?i.gray[700]:i.gray[600],defaultFontFamily:n.base,defaultFontSize:13,layout:{padding:0},legend:{display:!1,position:"bottom",labels:{usePointStyle:!0,padding:16}},elements:{point:{radius:0,backgroundColor:i.theme.primary},line:{tension:.4,borderWidth:4,borderColor:i.theme.primary,backgroundColor:i.transparent,borderCapStyle:"rounded"},rectangle:{backgroundColor:i.theme.warning},arc:{backgroundColor:i.theme.primary,borderColor:"dark"==t?i.gray[800]:i.white,borderWidth:4}},tooltips:{enabled:!0,mode:"index",intersect:!1}},doughnut:{cutoutPercentage:83,legendCallback:function(e){var a=e.data,t="";return a.labels.forEach(function(e,n){var i=a.datasets[0].backgroundColor[n];t+='
',t+=' ',t+=e,t+=" "}),t}}}},Chart.scaleService.updateScaleDefaults("linear",{gridLines:{borderDash:[2],borderDashOffset:[2],color:"dark"==t?i.gray[900]:i.gray[300],drawBorder:!1,drawTicks:!1,drawOnChartArea:!0,zeroLineWidth:0,zeroLineColor:"rgba(0,0,0,0)",zeroLineBorderDash:[2],zeroLineBorderDashOffset:[2]},ticks:{beginAtZero:!0,padding:10,callback:function(e){if(!(e%10))return e}}}),Chart.scaleService.updateScaleDefaults("category",{gridLines:{drawBorder:!1,drawOnChartArea:!1,drawTicks:!1},ticks:{padding:20},maxBarThickness:10}),e)),a.on({change:function(){var e=$(this);e.is("[data-add]")&&l(e)},click:function(){var e=$(this);e.is("[data-update]")&&r(e)}}),{colors:i,fonts:n,mode:t}}(),CopyIcon=function(){var e,a=".btn-icon-clipboard",t=$(a);t.length&&((e=t).tooltip().on("mouseleave",function(){e.tooltip("hide")}),new ClipboardJS(a).on("success",function(e){$(e.trigger).attr("title","Copied!").tooltip("_fixTitle").tooltip("show").attr("title","Copy to clipboard").tooltip("_fixTitle"),e.clearSelection()}))}(),Navbar=function(){var e=$(".navbar-nav, .navbar-nav .nav"),a=$(".navbar .collapse"),t=$(".navbar .dropdown");a.on({"show.bs.collapse":function(){var t;(t=$(this)).closest(e).find(a).not(t).collapse("hide")}}),t.on({"hide.bs.dropdown":function(){var e,a;e=$(this),(a=e.find(".dropdown-menu")).addClass("close"),setTimeout(function(){a.removeClass("close")},200)}})}(),NavbarCollapse=function(){$(".navbar-nav");var e=$(".navbar .navbar-custom-collapse");e.length&&(e.on({"hide.bs.collapse":function(){e.addClass("collapsing-out")}}),e.on({"hidden.bs.collapse":function(){e.removeClass("collapsing-out")}}))}(),Popover=function(){var e=$('[data-toggle="popover"]'),a="";e.length&&e.each(function(){!function(e){e.data("color")&&(a="popover-"+e.data("color"));var t={trigger:"focus",template:'
'};e.popover(t)}($(this))})}(),ScrollTo=function(){var e=$(".scroll-me, [data-scroll-to], .toc-entry a");function a(e){var a=e.attr("href"),t=e.data("scroll-to-offset")?e.data("scroll-to-offset"):0,n={scrollTop:$(a).offset().top-t};$("html, body").stop(!0,!0).animate(n,600),event.preventDefault()}e.length&&e.on("click",function(e){a($(this))})}(),Tooltip=function(){var e=$('[data-toggle="tooltip"]');e.length&&e.tooltip()}(),Checklist=function(){var e=$('[data-toggle="checklist"]');function a(e){e.is(":checked")?e.closest(".checklist-item").addClass("checklist-item-checked"):e.closest(".checklist-item").removeClass("checklist-item-checked")}e.length&&(e.each(function(){$(this).find('.checklist-entry input[type="checkbox"]').each(function(){a($(this))})}),e.find('input[type="checkbox"]').on("change",function(){a($(this))}))}(),FormControl=function(){var e=$(".form-control");e.length&&e.on("focus blur",function(e){$(this).parents(".form-group").toggleClass("focused","focus"===e.type)}).trigger("blur")}(),color="#5e72e4";function initMap(){map=document.getElementById("map-default"),lat=map.getAttribute("data-lat"),lng=map.getAttribute("data-lng");var e=new google.maps.LatLng(lat,lng),a={zoom:12,scrollwheel:!1,center:e,mapTypeId:google.maps.MapTypeId.ROADMAP};map=new google.maps.Map(map,a);var t=new google.maps.Marker({position:e,map:map,animation:google.maps.Animation.DROP,title:"Hello World!"}),n=new google.maps.InfoWindow({content:'
Argon Dashboard PRO A beautiful premium dashboard for Bootstrap 4.
'});google.maps.event.addListener(t,"click",function(){n.open(map,t)})}($map=$("#map-default")).length&&google.maps.event.addDomListener(window,"load",initMap);var $map,map,lat,lng;color="#5e72e4";function initMap(){map=document.getElementById("map-custom"),lat=map.getAttribute("data-lat"),lng=map.getAttribute("data-lng");var e=new google.maps.LatLng(lat,lng),a={zoom:12,scrollwheel:!1,center:e,mapTypeId:google.maps.MapTypeId.ROADMAP,styles:[{featureType:"administrative",elementType:"labels.text.fill",stylers:[{color:"#444444"}]},{featureType:"landscape",elementType:"all",stylers:[{color:"#f2f2f2"}]},{featureType:"poi",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"road",elementType:"all",stylers:[{saturation:-100},{lightness:45}]},{featureType:"road.highway",elementType:"all",stylers:[{visibility:"simplified"}]},{featureType:"road.arterial",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"water",elementType:"all",stylers:[{color:color},{visibility:"on"}]}]};map=new google.maps.Map(map,a);var t=new google.maps.Marker({position:e,map:map,animation:google.maps.Animation.DROP,title:"Hello World!"}),n=new google.maps.InfoWindow({content:'
Argon Dashboard PRO A beautiful premium dashboard for Bootstrap 4.
'});google.maps.event.addListener(t,"click",function(){n.open(map,t)})}($map=$("#map-custom")).length&&google.maps.event.addDomListener(window,"load",initMap);var BarStackedChart=function(){var e,a,t,n,i=$("#chart-bar-stacked");i.length&&(e=i,a=function(){return Math.round(100*Math.random())},t={labels:["January","February","March","April","May","June","July"],datasets:[{label:"Dataset 1",backgroundColor:Charts.colors.theme.danger,data:[a(),a(),a(),a(),a(),a(),a()]},{label:"Dataset 2",backgroundColor:Charts.colors.theme.primary,data:[a(),a(),a(),a(),a(),a(),a()]},{label:"Dataset 3",backgroundColor:Charts.colors.theme.success,data:[a(),a(),a(),a(),a(),a(),a()]}]},n=new Chart(e,{type:"bar",data:t,options:{tooltips:{mode:"index",intersect:!1},responsive:!0,scales:{xAxes:[{stacked:!0}],yAxes:[{stacked:!0}]}}}),e.data("chart",n))}(),DoughnutChart=function(){var e,a,t,n=$("#chart-doughnut");n.length&&(e=n,a=function(){return Math.round(100*Math.random())},t=new Chart(e,{type:"doughnut",data:{labels:["Danger","Warning","Success","Primary","Info"],datasets:[{data:[a(),a(),a(),a(),a()],backgroundColor:[Charts.colors.theme.danger,Charts.colors.theme.warning,Charts.colors.theme.success,Charts.colors.theme.primary,Charts.colors.theme.info],label:"Dataset 1"}]},options:{responsive:!0,legend:{position:"top"},animation:{animateScale:!0,animateRotate:!0}}}),e.data("chart",t))}(),PieChart=function(){var e,a,t,n=$("#chart-pie");n.length&&(e=n,a=function(){return Math.round(100*Math.random())},t=new Chart(e,{type:"pie",data:{labels:["Danger","Warning","Success","Primary","Info"],datasets:[{data:[a(),a(),a(),a(),a()],backgroundColor:[Charts.colors.theme.danger,Charts.colors.theme.warning,Charts.colors.theme.success,Charts.colors.theme.primary,Charts.colors.theme.info],label:"Dataset 1"}]},options:{responsive:!0,legend:{position:"top"},animation:{animateScale:!0,animateRotate:!0}}}),e.data("chart",t))}(),PointsChart=function(){var e,a,t=$("#chart-points");t.length&&(e=t,a=new Chart(e,{type:"line",options:{scales:{yAxes:[{gridLines:{color:Charts.colors.gray[200],zeroLineColor:Charts.colors.gray[200]},ticks:{}}]}},data:{labels:["May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],datasets:[{label:"Performance",data:[10,18,28,23,28,40,36,46,52],pointRadius:10,pointHoverRadius:15,showLine:!1}]}}),e.data("chart",a))}(),SalesChart=function(){var e,a,t=$("#chart-sales-dark");t.length&&(e=t,a=new Chart(e,{type:"line",options:{scales:{yAxes:[{gridLines:{color:Charts.colors.gray[700],zeroLineColor:Charts.colors.gray[700]},ticks:{}}]}},data:{labels:["May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],datasets:[{label:"Performance",data:[0,20,10,30,15,40,20,60,60]}]}}),e.data("chart",a))}(),BarsChart=(SalesChart=function(){var e,a,t=$("#chart-sales");t.length&&(e=t,a=new Chart(e,{type:"line",options:{scales:{yAxes:[{gridLines:{color:Charts.colors.gray[200],zeroLineColor:Charts.colors.gray[200]},ticks:{}}]}},data:{labels:["May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],datasets:[{label:"Performance",data:[0,20,10,30,15,40,20,60,60]}]}}),e.data("chart",a))}(),function(){var e=$("#chart-bars");e.length&&function(e){var a=new Chart(e,{type:"bar",data:{labels:["Jul","Aug","Sep","Oct","Nov","Dec"],datasets:[{label:"Sales",data:[25,20,30,22,17,29]}]}});e.data("chart",a)}(e)}()),LineChart=function(){var e,a,t=$("#chart-line");t.length&&(e=t,a=new Chart(e,{type:"line",options:{scales:{yAxes:[{gridLines:{color:Charts.colors.gray[200],zeroLineColor:Charts.colors.gray[200]},ticks:{}}]}},data:{labels:["May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],datasets:[{label:"Performance",data:[0,20,10,30,15,40,20,60,60]}]}}),e.data("chart",a))}();if($('[data-toggle="widget-calendar"]')[0]){$('[data-toggle="widget-calendar"]').fullCalendar({contentHeight:"auto",theme:!1,buttonIcons:{prev:" ni ni-bold-left",next:" ni ni-bold-right"},header:{right:"next",center:"title, ",left:"prev"},defaultDate:"2018-12-01",editable:!0,events:[{title:"Call with Dave",start:"2018-11-18",end:"2018-11-18",className:"bg-red"},{title:"Lunch meeting",start:"2018-11-21",end:"2018-11-22",className:"bg-orange"},{title:"All day conference",start:"2018-11-29",end:"2018-11-29",className:"bg-green"},{title:"Meeting with Mary",start:"2018-12-01",end:"2018-12-01",className:"bg-blue"},{title:"Winter Hackaton",start:"2018-12-03",end:"2018-12-03",className:"bg-red"},{title:"Digital event",start:"2018-12-07",end:"2018-12-09",className:"bg-warning"},{title:"Marketing event",start:"2018-12-10",end:"2018-12-10",className:"bg-purple"},{title:"Dinner with Family",start:"2018-12-19",end:"2018-12-19",className:"bg-red"},{title:"Black Friday",start:"2018-12-23",end:"2018-12-23",className:"bg-blue"},{title:"Cyber Week",start:"2018-12-02",end:"2018-12-02",className:"bg-yellow"}]});var mYear=moment().format("YYYY"),mDay=moment().format("dddd, MMM D");$(".widget-calendar-year").html(mYear),$(".widget-calendar-day").html(mDay)}var DatatableBasic=function(){var e=$("#datatable-basic");e.length&&e.on("init.dt",function(){$("div.dataTables_length select").removeClass("custom-select custom-select-sm")}).DataTable({keys:!0,select:{style:"multi"},language:{paginate:{previous:"
",next:""}}})}(),DatatableBasic=function(){var e=$("#datatable-as");e.length&&e.on("init.dt",function(){$("div.dataTables_length select").removeClass("custom-select custom-select-sm")}).DataTable({order:["0","desc"],language:{paginate:{previous:"",next:""}}})}(),DatatableBasic=function(){var e=$("#datatable-asdd");e.length&&e.on("init.dt",function(){$("div.dataTables_length select").removeClass("custom-select custom-select-sm")}).DataTable({order:["4","desc"],language:{paginate:{previous:"",next:""}}})}(),DatatableButtons=function(){var e,a=$("#datatable-buttons");a.length&&(e={lengthChange:!1,dom:"Bfrtip",buttons:["copy","print"],language:{paginate:{previous:"",next:""}}},a.on("init.dt",function(){$(".dt-buttons .btn").removeClass("btn-secondary").addClass("btn-sm btn-default")}).DataTable(e))}(),Dropzones=function(){var e=$('[data-toggle="dropzone"]'),a=$(".dz-preview");e.length&&(Dropzone.autoDiscover=!1,e.each(function(){var e,t,n,i,o;e=$(this),t=void 0!==e.data("dropzone-multiple"),n=e.find(a),i=void 0,o={url:e.data("dropzone-url"),thumbnailWidth:null,thumbnailHeight:null,previewsContainer:n.get(0),previewTemplate:n.html(),maxFiles:t?null:1,acceptedFiles:t?null:"image/*",init:function(){this.on("addedfile",function(e){!t&&i&&this.removeFile(i),i=e})}},n.html(""),e.dropzone(o)}))}(),Datepicker=function(){var e=$(".datepicker");e.length&&e.each(function(){$(this).datepicker({disableTouchKeyboard:!0,autoclose:!1})})}(),noUiSlider=function(){if($(".input-slider-container")[0]&&$(".input-slider-container").each(function(){var e=$(this).find(".input-slider"),a=e.attr("id"),t=e.data("range-value-min"),n=e.data("range-value-max"),i=$(this).find(".range-slider-value"),o=i.attr("id"),l=i.data("range-value-low"),r=document.getElementById(a),s=document.getElementById(o);noUiSlider.create(r,{start:[parseInt(l)],connect:[!0,!1],range:{min:[parseInt(t)],max:[parseInt(n)]}}),r.noUiSlider.on("update",function(e,a){s.textContent=e[a]})}),$("#input-slider-range")[0]){var e=document.getElementById("input-slider-range"),a=document.getElementById("input-slider-range-value-low"),t=document.getElementById("input-slider-range-value-high"),n=[a,t];noUiSlider.create(e,{start:[parseInt(a.getAttribute("data-range-value-low")),parseInt(t.getAttribute("data-range-value-high"))],connect:!0,range:{min:parseInt(e.getAttribute("data-range-value-min")),max:parseInt(e.getAttribute("data-range-value-max"))}}),e.noUiSlider.on("update",function(e,a){n[a].textContent=e[a]})}}(),Scrollbar=function(){var e=$(".scrollbar-inner");e.length&&e.scrollbar().scrollLock()}(),Fullcalendar=function(){var e,a,t=$('[data-toggle="calendar"]');t.length&&(a={header:{right:"",center:"",left:""},buttonIcons:{prev:"calendar--prev",next:"calendar--next"},theme:!1,selectable:!0,selectHelper:!0,editable:!0,events:[{id:1,title:"Call with Dave",start:"2018-11-18",allDay:!0,className:"bg-red",description:"Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."},{id:2,title:"Lunch meeting",start:"2018-11-21",allDay:!0,className:"bg-orange",description:"Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."},{id:3,title:"All day conference",start:"2018-11-29",allDay:!0,className:"bg-green",description:"Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."},{id:4,title:"Meeting with Mary",start:"2018-12-01",allDay:!0,className:"bg-blue",description:"Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."},{id:5,title:"Winter Hackaton",start:"2018-12-03",allDay:!0,className:"bg-red",description:"Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."},{id:6,title:"Digital event",start:"2018-12-07",allDay:!0,className:"bg-warning",description:"Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."},{id:7,title:"Marketing event",start:"2018-12-10",allDay:!0,className:"bg-purple",description:"Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."},{id:8,title:"Dinner with Family",start:"2018-12-19",allDay:!0,className:"bg-red",description:"Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."},{id:9,title:"Black Friday",start:"2018-12-23",allDay:!0,className:"bg-blue",description:"Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."},{id:10,title:"Cyber Week",start:"2018-12-02",allDay:!0,className:"bg-yellow",description:"Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."}],dayClick:function(e){var a=moment(e).toISOString();$("#new-event").modal("show"),$(".new-event--title").val(""),$(".new-event--start").val(a),$(".new-event--end").val(a)},viewRender:function(a){e.fullCalendar("getDate").month(),$(".fullcalendar-title").html(a.title)},eventClick:function(e,a){$("#edit-event input[value="+e.className+"]").prop("checked",!0),$("#edit-event").modal("show"),$(".edit-event--id").val(e.id),$(".edit-event--title").val(e.title),$(".edit-event--description").val(e.description)}},(e=t).fullCalendar(a),$("body").on("click",".new-event--add",function(){var a=$(".new-event--title").val(),t={Stored:[],Job:function(){var e=Date.now().toString().substr(6);return this.Check(e)?this.Job():(this.Stored.push(e),e)},Check:function(e){for(var a=0;a{a.value&&(e.fullCalendar("removeEvents",t),swal({title:"Deleted!",text:"The event has been deleted.",type:"success",buttonsStyling:!1,confirmButtonClass:"btn btn-primary"}))})},200))}),$("body").on("click","[data-calendar-view]",function(a){a.preventDefault(),$("[data-calendar-view]").removeClass("active"),$(this).addClass("active");var t=$(this).attr("data-calendar-view");e.fullCalendar("changeView",t)}),$("body").on("click",".fullcalendar-btn-next",function(a){a.preventDefault(),e.fullCalendar("next")}),$("body").on("click",".fullcalendar-btn-prev",function(a){a.preventDefault(),e.fullCalendar("prev")}))}(),VectorMap=function(){var e=$('[data-toggle="vectormap"]'),a={gray:{100:"#f6f9fc",200:"#e9ecef",300:"#dee2e6",400:"#ced4da",500:"#adb5bd",600:"#8898aa",700:"#525f7f",800:"#32325d",900:"#212529"},theme:{default:"#172b4d",primary:"#5e72e4",secondary:"#f4f5f7",info:"#11cdef",success:"#2dce89",danger:"#f5365c",warning:"#fb6340"},black:"#12263F",white:"#FFFFFF",transparent:"transparent"};e.length&&e.each(function(){var e,t;e=$(this),t={map:e.data("map"),zoomOnScroll:!1,scaleColors:["#f00","#0071A4"],normalizeFunction:"polynomial",hoverOpacity:.7,hoverColor:!1,backgroundColor:a.transparent,regionStyle:{initial:{fill:a.gray[200],"fill-opacity":.8,stroke:"none","stroke-width":0,"stroke-opacity":1},hover:{fill:a.gray[300],"fill-opacity":.8,cursor:"pointer"},selected:{fill:"yellow"},selectedHover:{}},markerStyle:{initial:{fill:a.theme.warning,"stroke-width":0},hover:{fill:a.theme.info,"stroke-width":0}},markers:[{latLng:[41.9,12.45],name:"Vatican City"},{latLng:[43.73,7.41],name:"Monaco"},{latLng:[35.88,14.5],name:"Malta"},{latLng:[1.3,103.8],name:"Singapore"},{latLng:[1.46,173.03],name:"Kiribati"},{latLng:[-21.13,-175.2],name:"Tonga"},{latLng:[15.3,-61.38],name:"Dominica"},{latLng:[-20.2,57.5],name:"Mauritius"},{latLng:[26.02,50.55],name:"Bahrain"}],series:{regions:[{values:{AU:760,BR:550,CA:120,DE:1300,FR:540,GB:690,GE:200,IN:200,RO:600,RU:300,US:2920},scale:[a.gray[400],a.gray[500]],normalizeFunction:"polynomial"}]}},e.vectorMap(t),e.find(".jvectormap-zoomin").addClass("btn btn-sm btn-primary"),e.find(".jvectormap-zoomout").addClass("btn btn-sm btn-primary")})}(),Lavalamp=function(){var e=$('[data-toggle="lavalamp"]');e.length&&e.each(function(){$(this).lavalamp({setOnClick:!1,enableHover:!0,margins:!0,autoUpdate:!0,duration:200})})}(),SortList=function(){var e=$('[data-toggle="list"]'),a=$("[data-sort]");e.length&&e.each(function(){var e;e=$(this),new List(e.get(0),function(e){return{valueNames:e.data("list-values"),listClass:e.data("list-class")?e.data("list-class"):"list"}}(e))}),a.on("click",function(){return!1})}(),Notify=function(){var e=$('[data-toggle="notify"]');e.length&&e.on("click",function(e){e.preventDefault(),function(e,a,t,n,i,o){$.notify({icon:t,title:" Bootstrap Notify",message:"Turning standard Bootstrap alerts into awesome notifications",url:""},{element:"body",type:n,allow_dismiss:!0,placement:{from:e,align:a},offset:{x:15,y:15},spacing:10,z_index:1080,delay:2500,timer:25e3,url_target:"_blank",mouse_over:!1,animate:{enter:i,exit:o},template:''})}($(this).attr("data-placement"),$(this).attr("data-align"),$(this).attr("data-icon"),$(this).attr("data-type"),$(this).attr("data-animation-in"),$(this).attr("data-animation-out"))})}(),OnScreen=function(){var e,a=$('[data-toggle="on-screen"]');a.length&&(e={container:window,direction:"vertical",doIn:function(){},doOut:function(){},tolerance:200,throttle:50,toggleClass:"on-screen",debug:!1},a.onScreen(e))}(),QuillEditor=function(){var e=$('[data-toggle="quill"]');e.length&&e.each(function(){var e,a;e=$(this),a=e.data("quill-placeholder"),new Quill(e.get(0),{modules:{toolbar:[["bold","italic"],["link","blockquote","code","image"],[{list:"ordered"},{list:"bullet"}]]},placeholder:a,theme:"snow"})})}(),Select2=function(){var e=$('[data-toggle="select"]');e.length&&e.each(function(){$(this).select2({})})}(),Tags=function(){var e=$('[data-toggle="tags"]');e.length&&e.each(function(){$(this).tagsinput({tagClass:"badge badge-primary"})})}();
\ No newline at end of file
diff --git a/template/index4/assets/js/bootstrap.bundle.min.js b/template/index4/assets/js/bootstrap.bundle.min.js
new file mode 100644
index 0000000..c843b0e
--- /dev/null
+++ b/template/index4/assets/js/bootstrap.bundle.min.js
@@ -0,0 +1,6 @@
+/*!
+ * =======================================================
+ * Opao易支付系统:opao.kucat.cn AuthQQ:9098603
+ * =======================================================
+*/
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("jquery")):"function"==typeof define&&define.amd?define(["exports","jquery"],t):t(e.bootstrap={},e.jQuery)}(this,function(e,t){"use strict";function i(e,t){for(var n=0;nthis._items.length-1||e<0))if(this._isSliding)k(this._element).one(q.SLID,function(){return t.to(e)});else{if(n===e)return this.pause(),void this.cycle();var i=n=i.clientWidth&&n>=i.clientHeight}),u=0l[e]&&!i.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),Ve({},t,n)}};return c.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=ze({},u,f[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,i=t.reference,r=e.placement.split("-")[0],o=Math.floor,s=-1!==["top","bottom"].indexOf(r),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]o(i[a])&&(e.offsets.popper[l]=o(i[a])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var n;if(!pt(e.instance.modifiers,"arrow","keepTogether"))return e;var i=t.element;if("string"==typeof i){if(!(i=e.instance.popper.querySelector(i)))return e}else if(!e.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],o=e.offsets,s=o.popper,a=o.reference,l=-1!==["left","right"].indexOf(r),c=l?"height":"width",u=l?"Top":"Left",f=u.toLowerCase(),h=l?"left":"top",d=l?"bottom":"right",p=nt(i)[c];a[d]-ps[d]&&(e.offsets.popper[f]+=a[f]+p-s[d]),e.offsets.popper=Ge(e.offsets.popper);var m=a[f]+a[c]/2-p/2,g=Pe(e.instance.popper),_=parseFloat(g["margin"+u],10),v=parseFloat(g["border"+u+"Width"],10),y=m-e.offsets.popper[f]-_-v;return y=Math.max(Math.min(s[c]-p,y),0),e.arrowElement=i,e.offsets.arrow=(Ve(n={},f,Math.round(y)),Ve(n,h,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(p,m){if(at(p.instance.modifiers,"inner"))return p;if(p.flipped&&p.placement===p.originalPlacement)return p;var g=$e(p.instance.popper,p.instance.reference,m.padding,m.boundariesElement,p.positionFixed),_=p.placement.split("-")[0],v=it(_),y=p.placement.split("-")[1]||"",E=[];switch(m.behavior){case vt:E=[_,v];break;case yt:E=_t(_);break;case Et:E=_t(_,!0);break;default:E=m.behavior}return E.forEach(function(e,t){if(_!==e||E.length===t+1)return p;_=p.placement.split("-")[0],v=it(_);var n,i=p.offsets.popper,r=p.offsets.reference,o=Math.floor,s="left"===_&&o(i.right)>o(r.left)||"right"===_&&o(i.left)o(r.top)||"bottom"===_&&o(i.top)o(g.right),c=o(i.top)o(g.bottom),f="left"===_&&a||"right"===_&&l||"top"===_&&c||"bottom"===_&&u,h=-1!==["top","bottom"].indexOf(_),d=!!m.flipVariations&&(h&&"start"===y&&a||h&&"end"===y&&l||!h&&"start"===y&&c||!h&&"end"===y&&u);(s||f||d)&&(p.flipped=!0,(s||f)&&(_=E[t+1]),d&&(y="end"===(n=y)?"start":"start"===n?"end":n),p.placement=_+(y?"-"+y:""),p.offsets.popper=ze({},p.offsets.popper,rt(p.instance.popper,p.offsets.reference,p.placement)),p=st(p.instance.modifiers,p,"flip"))}),p},behavior:"flip",padding:5,boundariesElement:"viewport"},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],i=e.offsets,r=i.popper,o=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return r[s?"left":"top"]=o[n]-(a?r[s?"width":"height"]:0),e.placement=it(t),e.offsets.popper=Ge(r),e}},hide:{order:800,enabled:!0,fn:function(e){if(!pt(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=ot(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.rightdocument.documentElement.clientHeight;!this._isBodyOverflowing&&e&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!e&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var e=document.body.getBoundingClientRect();this._isBodyOverflowing=e.left+e.right
',trigger:"hover focus",title:"",delay:0,html:!(An={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"}),selector:!(Dn={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"}),placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},Nn="out",kn={HIDE:"hide"+wn,HIDDEN:"hidden"+wn,SHOW:(On="show")+wn,SHOWN:"shown"+wn,INSERTED:"inserted"+wn,CLICK:"click"+wn,FOCUSIN:"focusin"+wn,FOCUSOUT:"focusout"+wn,MOUSEENTER:"mouseenter"+wn,MOUSELEAVE:"mouseleave"+wn},xn="fade",Pn="show",Ln=".tooltip-inner",jn=".arrow",Hn="hover",Mn="focus",Fn="click",Wn="manual",Rn=function(){function i(e,t){if("undefined"==typeof Ct)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=e,this.config=this._getConfig(t),this.tip=null,this._setListeners()}var e=i.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(e){if(this._isEnabled)if(e){var t=this.constructor.DATA_KEY,n=yn(e.currentTarget).data(t);n||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),yn(e.currentTarget).data(t,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(yn(this.getTipElement()).hasClass(Pn))return void this._leave(null,this);this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),yn.removeData(this.element,this.constructor.DATA_KEY),yn(this.element).off(this.constructor.EVENT_KEY),yn(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&yn(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},e.show=function(){var t=this;if("none"===yn(this.element).css("display"))throw new Error("Please use show on visible elements");var e=yn.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){yn(this.element).trigger(e);var n=yn.contains(this.element.ownerDocument.documentElement,this.element);if(e.isDefaultPrevented()||!n)return;var i=this.getTipElement(),r=we.getUID(this.constructor.NAME);i.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&yn(i).addClass(xn);var o="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,s=this._getAttachment(o);this.addAttachmentClass(s);var a=!1===this.config.container?document.body:yn(document).find(this.config.container);yn(i).data(this.constructor.DATA_KEY,this),yn.contains(this.element.ownerDocument.documentElement,this.tip)||yn(i).appendTo(a),yn(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new Ct(this.element,i,{placement:s,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:jn},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){t._handlePopperPlacementChange(e)}}),yn(i).addClass(Pn),"ontouchstart"in document.documentElement&&yn(document.body).children().on("mouseover",null,yn.noop);var l=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,yn(t.element).trigger(t.constructor.Event.SHOWN),e===Nn&&t._leave(null,t)};if(yn(this.tip).hasClass(xn)){var c=we.getTransitionDurationFromElement(this.tip);yn(this.tip).one(we.TRANSITION_END,l).emulateTransitionEnd(c)}else l()}},e.hide=function(e){var t=this,n=this.getTipElement(),i=yn.Event(this.constructor.Event.HIDE),r=function(){t._hoverState!==On&&n.parentNode&&n.parentNode.removeChild(n),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),yn(t.element).trigger(t.constructor.Event.HIDDEN),null!==t._popper&&t._popper.destroy(),e&&e()};if(yn(this.element).trigger(i),!i.isDefaultPrevented()){if(yn(n).removeClass(Pn),"ontouchstart"in document.documentElement&&yn(document.body).children().off("mouseover",null,yn.noop),this._activeTrigger[Fn]=!1,this._activeTrigger[Mn]=!1,this._activeTrigger[Hn]=!1,yn(this.tip).hasClass(xn)){var o=we.getTransitionDurationFromElement(n);yn(n).one(we.TRANSITION_END,r).emulateTransitionEnd(o)}else r();this._hoverState=""}},e.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.addAttachmentClass=function(e){yn(this.getTipElement()).addClass(Tn+"-"+e)},e.getTipElement=function(){return this.tip=this.tip||yn(this.config.template)[0],this.tip},e.setContent=function(){var e=this.getTipElement();this.setElementContent(yn(e.querySelectorAll(Ln)),this.getTitle()),yn(e).removeClass(xn+" "+Pn)},e.setElementContent=function(e,t){var n=this.config.html;"object"==typeof t&&(t.nodeType||t.jquery)?n?yn(t).parent().is(e)||e.empty().append(t):e.text(yn(t).text()):e[n?"html":"text"](t)},e.getTitle=function(){var e=this.element.getAttribute("data-original-title");return e||(e="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),e},e._getAttachment=function(e){return An[e.toUpperCase()]},e._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(e){if("click"===e)yn(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(e){return i.toggle(e)});else if(e!==Wn){var t=e===Hn?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=e===Hn?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;yn(i.element).on(t,i.config.selector,function(e){return i._enter(e)}).on(n,i.config.selector,function(e){return i._leave(e)})}yn(i.element).closest(".modal").on("hide.bs.modal",function(){return i.hide()})}),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._fixTitle=function(){var e=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==e)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},e._enter=function(e,t){var n=this.constructor.DATA_KEY;(t=t||yn(e.currentTarget).data(n))||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),yn(e.currentTarget).data(n,t)),e&&(t._activeTrigger["focusin"===e.type?Mn:Hn]=!0),yn(t.getTipElement()).hasClass(Pn)||t._hoverState===On?t._hoverState=On:(clearTimeout(t._timeout),t._hoverState=On,t.config.delay&&t.config.delay.show?t._timeout=setTimeout(function(){t._hoverState===On&&t.show()},t.config.delay.show):t.show())},e._leave=function(e,t){var n=this.constructor.DATA_KEY;(t=t||yn(e.currentTarget).data(n))||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),yn(e.currentTarget).data(n,t)),e&&(t._activeTrigger["focusout"===e.type?Mn:Hn]=!1),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=Nn,t.config.delay&&t.config.delay.hide?t._timeout=setTimeout(function(){t._hoverState===Nn&&t.hide()},t.config.delay.hide):t.hide())},e._isWithActiveTrigger=function(){for(var e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1},e._getConfig=function(e){return"number"==typeof(e=l({},this.constructor.Default,yn(this.element).data(),"object"==typeof e&&e?e:{})).delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),we.typeCheckConfig(En,e,this.constructor.DefaultType),e},e._getDelegateConfig=function(){var e={};if(this.config)for(var t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e},e._cleanTipClass=function(){var e=yn(this.getTipElement()),t=e.attr("class").match(Sn);null!==t&&t.length&&e.removeClass(t.join(""))},e._handlePopperPlacementChange=function(e){var t=e.instance;this.tip=t.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(e.placement))},e._fixTransition=function(){var e=this.getTipElement(),t=this.config.animation;null===e.getAttribute("x-placement")&&(yn(e).removeClass(xn),this.config.animation=!1,this.hide(),this.show(),this.config.animation=t)},i._jQueryInterface=function(n){return this.each(function(){var e=yn(this).data(bn),t="object"==typeof n&&n;if((e||!/dispose|hide/.test(n))&&(e||(e=new i(this,t),yn(this).data(bn,e)),"string"==typeof n)){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return In}},{key:"NAME",get:function(){return En}},{key:"DATA_KEY",get:function(){return bn}},{key:"Event",get:function(){return kn}},{key:"EVENT_KEY",get:function(){return wn}},{key:"DefaultType",get:function(){return Dn}}]),i}(),yn.fn[En]=Rn._jQueryInterface,yn.fn[En].Constructor=Rn,yn.fn[En].noConflict=function(){return yn.fn[En]=Cn,Rn._jQueryInterface},Rn),Qi=(Bn="popover",Kn="."+(qn="bs.popover"),Qn=(Un=t).fn[Bn],Yn="bs-popover",Vn=new RegExp("(^|\\s)"+Yn+"\\S+","g"),zn=l({},Ki.Default,{placement:"right",trigger:"click",content:"",template:''}),Gn=l({},Ki.DefaultType,{content:"(string|element|function)"}),Jn="fade",Xn=".popover-header",$n=".popover-body",ei={HIDE:"hide"+Kn,HIDDEN:"hidden"+Kn,SHOW:(Zn="show")+Kn,SHOWN:"shown"+Kn,INSERTED:"inserted"+Kn,CLICK:"click"+Kn,FOCUSIN:"focusin"+Kn,FOCUSOUT:"focusout"+Kn,MOUSEENTER:"mouseenter"+Kn,MOUSELEAVE:"mouseleave"+Kn},ti=function(e){var t,n;function i(){return e.apply(this,arguments)||this}n=e,(t=i).prototype=Object.create(n.prototype),(t.prototype.constructor=t).__proto__=n;var r=i.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(e){Un(this.getTipElement()).addClass(Yn+"-"+e)},r.getTipElement=function(){return this.tip=this.tip||Un(this.config.template)[0],this.tip},r.setContent=function(){var e=Un(this.getTipElement());this.setElementContent(e.find(Xn),this.getTitle());var t=this._getContent();"function"==typeof t&&(t=t.call(this.element)),this.setElementContent(e.find($n),t),e.removeClass(Jn+" "+Zn)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var e=Un(this.getTipElement()),t=e.attr("class").match(Vn);null!==t&&0=this._offsets[r]&&("undefined"==typeof this._offsets[r+1]||e li > .active",Fi='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Wi=".dropdown-toggle",Ri="> .dropdown-menu .active",Ui=function(){function i(e){this._element=e}var e=i.prototype;return e.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&Ti(this._element).hasClass(Ni)||Ti(this._element).hasClass(ki))){var e,i,t=Ti(this._element).closest(ji)[0],r=we.getSelectorFromElement(this._element);if(t){var o="UL"===t.nodeName?Mi:Hi;i=(i=Ti.makeArray(Ti(t).find(o)))[i.length-1]}var s=Ti.Event(Ii.HIDE,{relatedTarget:this._element}),a=Ti.Event(Ii.SHOW,{relatedTarget:i});if(i&&Ti(i).trigger(s),Ti(this._element).trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){r&&(e=document.querySelector(r)),this._activate(this._element,t);var l=function(){var e=Ti.Event(Ii.HIDDEN,{relatedTarget:n._element}),t=Ti.Event(Ii.SHOWN,{relatedTarget:i});Ti(i).trigger(e),Ti(n._element).trigger(t)};e?this._activate(e,e.parentNode,l):l()}}},e.dispose=function(){Ti.removeData(this._element,Si),this._element=null},e._activate=function(e,t,n){var i=this,r=("UL"===t.nodeName?Ti(t).find(Mi):Ti(t).children(Hi))[0],o=n&&r&&Ti(r).hasClass(xi),s=function(){return i._transitionComplete(e,r,n)};if(r&&o){var a=we.getTransitionDurationFromElement(r);Ti(r).one(we.TRANSITION_END,s).emulateTransitionEnd(a)}else s()},e._transitionComplete=function(e,t,n){if(t){Ti(t).removeClass(Pi+" "+Ni);var i=Ti(t.parentNode).find(Ri)[0];i&&Ti(i).removeClass(Ni),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}if(Ti(e).addClass(Ni),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),we.reflow(e),Ti(e).addClass(Pi),e.parentNode&&Ti(e.parentNode).hasClass(Oi)){var r=Ti(e).closest(Li)[0];if(r){var o=[].slice.call(r.querySelectorAll(Wi));Ti(o).addClass(Ni)}e.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var e=Ti(this),t=e.data(Si);if(t||(t=new i(this),e.data(Si,t)),"string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}}]),i}(),Ti(document).on(Ii.CLICK_DATA_API,Fi,function(e){e.preventDefault(),Ui._jQueryInterface.call(Ti(this),"show")}),Ti.fn.tab=Ui._jQueryInterface,Ti.fn.tab.Constructor=Ui,Ti.fn.tab.noConflict=function(){return Ti.fn.tab=Ai,Ui._jQueryInterface},Ui);!function(e){if("undefined"==typeof e)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||4<=t[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(t),e.Util=we,e.Alert=Ce,e.Button=Te,e.Carousel=Se,e.Collapse=De,e.Dropdown=Bi,e.Modal=qi,e.Popover=Qi,e.Scrollspy=Yi,e.Tab=Vi,e.Tooltip=Ki,Object.defineProperty(e,"__esModule",{value:!0})});
\ No newline at end of file
diff --git a/template/index4/assets/js/jquery-scrollLock.min.js b/template/index4/assets/js/jquery-scrollLock.min.js
new file mode 100644
index 0000000..e715ff8
--- /dev/null
+++ b/template/index4/assets/js/jquery-scrollLock.min.js
@@ -0,0 +1,6 @@
+/*!
+ * =======================================================
+ * Opao易支付系统:opao.kucat.cn AuthQQ:9098603
+ * =======================================================
+*/
+(function(n){typeof define=="function"&&define.amd?define(["jquery"],n):n(jQuery)})(function(n){"use strict";var i={space:32,pageup:33,pagedown:34,end:35,home:36,up:38,down:40},r=function(t,i){var u=i.scrollTop(),h=i.prop("scrollHeight"),c=i.prop("clientHeight"),f=t.originalEvent.wheelDelta||-1*t.originalEvent.detail||-1*t.originalEvent.deltaY,r=0,e,o,s;return t.type==="wheel"?(e=i.height()/n(window).height(),r=t.originalEvent.deltaY*e):this.options.touch&&t.type==="touchmove"&&(f=t.originalEvent.changedTouches[0].clientY-this.startClientY),s=(o=f>0&&u+r<=0)||f<0&&u+r>=h-c,{prevent:s,top:o,scrollTop:u,deltaY:r}},u=function(n,t){var u=t.scrollTop(),r={top:!1,bottom:!1},f,e;return r.top=u===0&&(n.keyCode===i.pageup||n.keyCode===i.home||n.keyCode===i.up),r.top||(f=t.prop("scrollHeight"),e=t.prop("clientHeight"),r.bottom=f===u+e&&(n.keyCode===i.space||n.keyCode===i.pagedown||n.keyCode===i.end||n.keyCode===i.down)),r},t=function(i,r){if(this.$element=i,this.options=n.extend({},t.DEFAULTS,this.$element.data(),r),this.enabled=!0,this.startClientY=0,this.options.unblock)this.$element.on(t.CORE.wheelEventName+t.NAMESPACE,this.options.unblock,n.proxy(t.CORE.unblockHandler,this));this.$element.on(t.CORE.wheelEventName+t.NAMESPACE,this.options.selector,n.proxy(t.CORE.handler,this));if(this.options.touch){this.$element.on("touchstart"+t.NAMESPACE,this.options.selector,n.proxy(t.CORE.touchHandler,this));this.$element.on("touchmove"+t.NAMESPACE,this.options.selector,n.proxy(t.CORE.handler,this));if(this.options.unblock)this.$element.on("touchmove"+t.NAMESPACE,this.options.unblock,n.proxy(t.CORE.unblockHandler,this))}if(this.options.keyboard){this.$element.attr("tabindex",this.options.keyboard.tabindex||0);this.$element.on("keydown"+t.NAMESPACE,this.options.selector,n.proxy(t.CORE.keyboardHandler,this));if(this.options.unblock)this.$element.on("keydown"+t.NAMESPACE,this.options.unblock,n.proxy(t.CORE.unblockHandler,this))}},f;t.NAME="ScrollLock";t.VERSION="3.1.2";t.NAMESPACE=".scrollLock";t.ANIMATION_NAMESPACE=t.NAMESPACE+".effect";t.DEFAULTS={strict:!1,strictFn:function(n){return n.prop("scrollHeight")>n.prop("clientHeight")},selector:!1,animation:!1,touch:"ontouchstart"in window,keyboard:!1,unblock:!1};t.CORE={wheelEventName:"onwheel"in document.createElement("div")?"wheel":document.onmousewheel!==undefined?"mousewheel":"DOMMouseScroll",animationEventName:["webkitAnimationEnd","mozAnimationEnd","MSAnimationEnd","oanimationend","animationend"].join(t.ANIMATION_NAMESPACE+" ")+t.ANIMATION_NAMESPACE,unblockHandler:function(n){n.__currentTarget=n.currentTarget},handler:function(i){var f,u,e;this.enabled&&!i.ctrlKey&&(f=n(i.currentTarget),(this.options.strict!==!0||this.options.strictFn(f))&&(i.stopPropagation(),u=n.proxy(r,this)(i,f),i.__currentTarget&&(u.prevent&=n.proxy(r,this)(i,n(i.__currentTarget)).prevent),u.prevent&&(i.preventDefault(),u.deltaY&&f.scrollTop(u.scrollTop+u.deltaY),e=u.top?"top":"bottom",this.options.animation&&setTimeout(t.CORE.animationHandler.bind(this,f,e),0),f.trigger(n.Event(e+t.NAMESPACE)))))},touchHandler:function(n){this.startClientY=n.originalEvent.touches[0].clientY},animationHandler:function(n,i){var r=this.options.animation[i],u=this.options.animation.top+" "+this.options.animation.bottom;n.off(t.ANIMATION_NAMESPACE).removeClass(u).addClass(r).one(t.CORE.animationEventName,function(){n.removeClass(r)})},keyboardHandler:function(i){var r=n(i.currentTarget),o=r.scrollTop(),f=u(i,r),e;return(i.__currentTarget&&(e=u(i,n(i.__currentTarget)),f.top&=e.top,f.bottom&=e.bottom),f.top)?(r.trigger(n.Event("top"+t.NAMESPACE)),this.options.animation&&setTimeout(t.CORE.animationHandler.bind(this,r,"top"),0),!1):f.bottom?(r.trigger(n.Event("bottom"+t.NAMESPACE)),this.options.animation&&setTimeout(t.CORE.animationHandler.bind(this,r,"bottom"),0),!1):void 0}};t.prototype.toggleStrict=function(){this.options.strict=!this.options.strict};t.prototype.enable=function(){this.enabled=!0};t.prototype.disable=function(){this.enabled=!1};t.prototype.destroy=function(){this.disable();this.$element.off(t.NAMESPACE);this.$element=null;this.options=null};f=n.fn.scrollLock;n.fn.scrollLock=function(i){return this.each(function(){var u=n(this),f=typeof i=="object"&&i,r=u.data(t.NAME);(r||"destroy"!==i)&&(r||u.data(t.NAME,r=new t(u,f)),typeof i=="string"&&r[i]())})};n.fn.scrollLock.defaults=t.DEFAULTS;n.fn.scrollLock.noConflict=function(){return n.fn.scrollLock=f,this}});
\ No newline at end of file
diff --git a/template/index4/assets/js/jquery.lavalamp.min.js b/template/index4/assets/js/jquery.lavalamp.min.js
new file mode 100644
index 0000000..1513678
--- /dev/null
+++ b/template/index4/assets/js/jquery.lavalamp.min.js
@@ -0,0 +1,6 @@
+/*!
+ * =======================================================
+ * Opao易支付系统:opao.kucat.cn AuthQQ:9098603
+ * =======================================================
+*/
+!function(a){"use strict";var t={init:function(t){var o={easing:"ease",duration:700,margins:!1,setOnClick:!1,activeObj:".active",autoUpdate:!1,updateTime:100,enableHover:!0,delayOn:0,delayOff:0,enableFocus:!1,deepFocus:!1};return t=a.extend({},o,t),this.each(function(){var o=t.margins,s=t.setOnClick,m=t.activeObj,r=t.autoUpdate,p=t.updateTime,u=t.enableHover,v=t.delayOn,c=t.delayOff,d=t.enableFocus,f=t.deepFocus,h=t.duration,g=t.easing,b=a(this),T=b.children(),y=b.children(m);0===y.length&&(y=T.eq(0)),b.addClass("lavalamp").data({lavalampActive:y,isAnim:!1,settings:t});var A=a('
').prependTo(b);T.addClass("lavalamp-item"),A.css({WebkitTransitionDuration:h/1e3+"s",msTransitionDuration:h/1e3+"s",MozTransitionDuration:h/1e3+"s",OTransitionDuration:h/1e3+"s",transitionDuration:h/1e3+"s"});var j=y.outerWidth(o),I=y.outerHeight(o),O=y.position().top,C=y.position().left,x=y.css("marginTop"),D=y.css("marginLeft");o||(D=parseInt(D),x=parseInt(x),C+=D,O+=x),A.css({width:j,height:I,transform:"translate("+C+"px,"+O+"px)"});var F=!1,H=!0;if(e=function(){var t=a(this);F=!0,setTimeout(function(){F&&H&&b.lavalamp("anim",t)},v)},i=function(a){a=b.data("lavalampActive"),F=!1,setTimeout(function(){!F&&H&&b.lavalamp("anim",a)},c)},n=function(){var t=a(this);t.hasClass("lavalamp-item")||(t=t.parents(".lavalamp-item")),H=!1,setTimeout(function(){b.lavalamp("anim",t)},v)},l=function(){H=!0;var a=b.data("lavalampActive");setTimeout(function(){b.lavalamp("anim",a)},c)},u&&(b.on("mouseenter",".lavalamp-item",e),b.on("mouseleave",".lavalamp-item",i)),d&&(b.on("focusin",".lavalamp-item",n),b.on("focusout",".lavalamp-item",l)),f&&(b.on("focusin",".lavalamp-item *",n),b.on("focusout",".lavalamp-item *",l)),s&&T.click(function(){y=a(this),b.data("lavalampActive",y).lavalamp("update")}),r){var k=setInterval(function(){var a=b.data("isAnim");F||a||b.lavalamp("update")},p);b.data("updateInterval",k)}})},destroy:function(){return this.each(function(){var t=a(this),o=t.data("settings"),s=t.children(".lavalamp-item"),m=o.enableHover,r=o.enableFocus,p=o.deepFocus,u=o.autoUpdate;if(m&&(t.off("mouseenter",".lavalamp-item",e),t.off("mouseleave",".lavalamp-item",i)),r&&(t.off("focusin",".lavalamp-item",n),t.off("focusout",".lavalamp-item",l)),p&&(t.off("focusin",".lavalamp-item *",n),t.off("focusout",".lavalamp-item *",l)),t.removeClass("lavalamp"),s.removeClass("lavalamp-item"),u){var v=t.data("updateInterval");clearInterval(v)}t.children(".lavalamp-object").remove(),t.removeData()})},update:function(){return this.each(function(){var t=a(this),e=t.children(":not(.lavalamp-object)"),i=t.data("lavalampActive");e.addClass("lavalamp-item").css({zIndex:5,position:"relative"}),t.lavalamp("anim",i)})},anim:function(a){var t=this,e=t.data("settings"),i=e.duration,n=e.margins,l=t.children(".lavalamp-object"),o=a.outerWidth(n),s=a.outerHeight(n),m=a.position().top,r=a.position().left,p=a.css("marginTop"),u=a.css("marginLeft");n||(u=parseInt(u),p=parseInt(p),r+=u,m+=p),t.data("isAnim",!0),l.css({width:o,height:s,transform:"translate("+r+"px,"+m+"px)"}),setTimeout(function(){t.data("isAnim",!1)},i)}};a.fn.lavalamp=function(e){return t[e]?t[e].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof e&&e?void a.error("Method "+e+" does not exist on jQuery.lavalamp"):t.init.apply(this,arguments)};var e,i,n,l}(jQuery);
\ No newline at end of file
diff --git a/template/index4/assets/js/jquery.min.js b/template/index4/assets/js/jquery.min.js
new file mode 100644
index 0000000..0755675
--- /dev/null
+++ b/template/index4/assets/js/jquery.min.js
@@ -0,0 +1,6 @@
+/*!
+ * =======================================================
+ * Opao易支付系统:opao.kucat.cn AuthQQ:9098603
+ * =======================================================
+*/
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML=" ",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML=" ";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML=" ","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML=" ",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""," "],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/
+
+
+
+
+
+
+