pengchanglu пре 3 година
родитељ
комит
fbbb7259c6

+ 6 - 0
application/index/controller/Index.php

@@ -16,4 +16,10 @@ class Index extends Frontend
         return $this->view->fetch();
     }
 
+    public function code()
+    {
+        $code = $this->request->request('code');
+        echo $code;
+        return $this->view->fetch();
+    }
 }

Разлика између датотеке није приказан због своје велике величине
+ 255 - 0
application/index/view/index/code.html


+ 3181 - 0
public/assets/code/animate.css

@@ -0,0 +1,3181 @@
+@charset "UTF-8";
+
+/*!
+Animate.css - http://daneden.me/animate
+Licensed under the MIT license - http://opensource.org/licenses/MIT
+
+Copyright (c) 2015 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;
+}
+
+.animated.bounceIn,
+.animated.bounceOut {
+  -webkit-animation-duration: .75s;
+  animation-duration: .75s;
+}
+
+.animated.flipOutX,
+.animated.flipOutY {
+  -webkit-animation-duration: .75s;
+  animation-duration: .75s;
+}
+
+@-webkit-keyframes bounce {
+  0%, 20%, 53%, 80%, 100% {
+    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+    -webkit-transform: translate3d(0,0,0);
+    transform: translate3d(0,0,0);
+  }
+
+  40%, 43% {
+    -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+    transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+    -webkit-transform: translate3d(0, -30px, 0);
+    transform: translate3d(0, -30px, 0);
+  }
+
+  70% {
+    -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+    transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.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%, 20%, 53%, 80%, 100% {
+    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+    -webkit-transform: translate3d(0,0,0);
+    transform: translate3d(0,0,0);
+  }
+
+  40%, 43% {
+    -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+    transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+    -webkit-transform: translate3d(0, -30px, 0);
+    transform: translate3d(0, -30px, 0);
+  }
+
+  70% {
+    -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+    transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+    -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 {
+  0%, 50%, 100% {
+    opacity: 1;
+  }
+
+  25%, 75% {
+    opacity: 0;
+  }
+}
+
+@keyframes flash {
+  0%, 50%, 100% {
+    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 {
+  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);
+    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);
+  }
+}
+
+.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, 0.75, 1);
+    transform: scale3d(1.25, 0.75, 1);
+  }
+
+  40% {
+    -webkit-transform: scale3d(0.75, 1.25, 1);
+    transform: scale3d(0.75, 1.25, 1);
+  }
+
+  50% {
+    -webkit-transform: scale3d(1.15, 0.85, 1);
+    transform: scale3d(1.15, 0.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);
+    transform: scale3d(1, 1, 1);
+  }
+
+  30% {
+    -webkit-transform: scale3d(1.25, 0.75, 1);
+    transform: scale3d(1.25, 0.75, 1);
+  }
+
+  40% {
+    -webkit-transform: scale3d(0.75, 1.25, 1);
+    transform: scale3d(0.75, 1.25, 1);
+  }
+
+  50% {
+    -webkit-transform: scale3d(1.15, 0.85, 1);
+    transform: scale3d(1.15, 0.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);
+  }
+}
+
+.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);
+    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 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);
+    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);
+  }
+}
+
+.swing {
+  -webkit-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);
+    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);
+  }
+}
+
+.tada {
+  -webkit-animation-name: tada;
+  animation-name: tada;
+}
+
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+@-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;
+    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;
+  }
+}
+
+.wobble {
+  -webkit-animation-name: wobble;
+  animation-name: wobble;
+}
+
+@-webkit-keyframes bounceIn {
+  0%, 20%, 40%, 60%, 80%, 100% {
+    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+  }
+
+  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%, 20%, 40%, 60%, 80%, 100% {
+    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+  }
+
+  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);
+  }
+}
+
+.bounceIn {
+  -webkit-animation-name: bounceIn;
+  animation-name: bounceIn;
+}
+
+@-webkit-keyframes bounceInDown {
+  0%, 60%, 75%, 90%, 100% {
+    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+  }
+
+  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%, 60%, 75%, 90%, 100% {
+    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+  }
+
+  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;
+  }
+}
+
+.bounceInDown {
+  -webkit-animation-name: bounceInDown;
+  animation-name: bounceInDown;
+}
+
+@-webkit-keyframes bounceInLeft {
+  0%, 60%, 75%, 90%, 100% {
+    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+  }
+
+  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%, 60%, 75%, 90%, 100% {
+    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+  }
+
+  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;
+  }
+}
+
+.bounceInLeft {
+  -webkit-animation-name: bounceInLeft;
+  animation-name: bounceInLeft;
+}
+
+@-webkit-keyframes bounceInRight {
+  0%, 60%, 75%, 90%, 100% {
+    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+  }
+
+  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%, 60%, 75%, 90%, 100% {
+    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+  }
+
+  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;
+  }
+}
+
+.bounceInRight {
+  -webkit-animation-name: bounceInRight;
+  animation-name: bounceInRight;
+}
+
+@-webkit-keyframes bounceInUp {
+  0%, 60%, 75%, 90%, 100% {
+    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+  }
+
+  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%, 60%, 75%, 90%, 100% {
+    -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+  }
+
+  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);
+  }
+}
+
+.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);
+    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);
+  }
+}
+
+.bounceOut {
+  -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);
+  }
+
+  100% {
+    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);
+  }
+
+  100% {
+    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);
+  }
+
+  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);
+    transform: translate3d(20px, 0, 0);
+  }
+
+  100% {
+    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);
+  }
+
+  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);
+    transform: translate3d(-20px, 0, 0);
+  }
+
+  100% {
+    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);
+  }
+
+  100% {
+    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);
+  }
+
+  100% {
+    opacity: 0;
+    -webkit-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);
+    transform: translate3d(0, -100%, 0);
+  }
+
+  100% {
+    opacity: 1;
+    -webkit-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);
+    transform: translate3d(0, -2000px, 0);
+  }
+
+  100% {
+    opacity: 1;
+    -webkit-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);
+    transform: translate3d(-100%, 0, 0);
+  }
+
+  100% {
+    opacity: 1;
+    -webkit-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);
+    transform: translate3d(-2000px, 0, 0);
+  }
+
+  100% {
+    opacity: 1;
+    -webkit-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);
+    transform: translate3d(100%, 0, 0);
+  }
+
+  100% {
+    opacity: 1;
+    -webkit-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);
+    transform: translate3d(2000px, 0, 0);
+  }
+
+  100% {
+    opacity: 1;
+    -webkit-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);
+    transform: translate3d(0, 100%, 0);
+  }
+
+  100% {
+    opacity: 1;
+    -webkit-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);
+    transform: translate3d(0, 2000px, 0);
+  }
+
+  100% {
+    opacity: 1;
+    -webkit-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);
+    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);
+    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);
+    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);
+    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);
+    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);
+    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);
+    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);
+    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);
+    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;
+  }
+}
+
+.animated.flip {
+  -webkit-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);
+    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);
+  }
+}
+
+.flipInX {
+  -webkit-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);
+    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);
+  }
+}
+
+.flipInY {
+  -webkit-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);
+    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;
+  }
+}
+
+.flipOutX {
+  -webkit-animation-name: flipOutX;
+  animation-name: flipOutX;
+  -webkit-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);
+    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;
+  }
+}
+
+.flipOutY {
+  -webkit-backface-visibility: visible !important;
+  backface-visibility: visible !important;
+  -webkit-animation-name: flipOutY;
+  animation-name: flipOutY;
+}
+
+@-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);
+    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;
+  }
+}
+
+.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);
+    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;
+    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;
+  }
+}
+
+.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;
+    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;
+  }
+}
+
+.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;
+    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;
+  }
+}
+
+.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;
+    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;
+  }
+}
+
+.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;
+    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;
+  }
+}
+
+.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;
+    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;
+  }
+}
+
+.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: rotate3d(0, 0, 1, 45deg);
+    transform: rotate3d(0, 0, 1, 45deg);
+    opacity: 0;
+  }
+}
+
+@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: rotate3d(0, 0, 1, 45deg);
+    transform: rotate3d(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;
+    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;
+  }
+}
+
+.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;
+    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;
+  }
+}
+
+.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;
+    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;
+  }
+}
+
+.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;
+    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;
+  }
+}
+
+.hinge {
+  -webkit-animation-name: hinge;
+  animation-name: hinge;
+}
+
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+@-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);
+    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
+  }
+
+  100% {
+    opacity: 1;
+    -webkit-transform: none;
+    transform: none;
+  }
+}
+
+.rollIn {
+  -webkit-animation-name: rollIn;
+  animation-name: rollIn;
+}
+
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+@-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);
+    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);
+    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.550, 0.055, 0.675, 0.190);
+    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+  }
+
+  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, 0.885, 0.320, 1);
+    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+  }
+}
+
+@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.550, 0.055, 0.675, 0.190);
+    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+  }
+
+  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, 0.885, 0.320, 1);
+    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 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.550, 0.055, 0.675, 0.190);
+    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+  }
+
+  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, 0.885, 0.320, 1);
+    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+  }
+}
+
+@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.550, 0.055, 0.675, 0.190);
+    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+  }
+
+  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, 0.885, 0.320, 1);
+    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 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.550, 0.055, 0.675, 0.190);
+    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+  }
+
+  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, 0.885, 0.320, 1);
+    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+  }
+}
+
+@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.550, 0.055, 0.675, 0.190);
+    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+  }
+
+  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, 0.885, 0.320, 1);
+    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 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.550, 0.055, 0.675, 0.190);
+    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+  }
+
+  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, 0.885, 0.320, 1);
+    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+  }
+}
+
+@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.550, 0.055, 0.675, 0.190);
+    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+  }
+
+  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, 0.885, 0.320, 1);
+    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 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);
+    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.550, 0.055, 0.675, 0.190);
+    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+  }
+
+  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, 0.885, 0.320, 1);
+    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+  }
+}
+
+@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.550, 0.055, 0.675, 0.190);
+    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+  }
+
+  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, 0.885, 0.320, 1);
+    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 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);
+    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;
+  }
+}
+
+.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);
+    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;
+  }
+}
+
+.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.550, 0.055, 0.675, 0.190);
+    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+  }
+
+  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, 0.885, 0.320, 1);
+    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+  }
+}
+
+@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.550, 0.055, 0.675, 0.190);
+    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+  }
+
+  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, 0.885, 0.320, 1);
+    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+  }
+}
+
+.zoomOutUp {
+  -webkit-animation-name: zoomOutUp;
+  animation-name: zoomOutUp;
+}
+
+@-webkit-keyframes slideInDown {
+  0% {
+    -webkit-transform: translate3d(0, -100%, 0);
+    transform: translate3d(0, -100%, 0);
+    visibility: visible;
+  }
+
+  100% {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+}
+
+@keyframes slideInDown {
+  0% {
+    -webkit-transform: translate3d(0, -100%, 0);
+    transform: translate3d(0, -100%, 0);
+    visibility: visible;
+  }
+
+  100% {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+}
+
+.slideInDown {
+  -webkit-animation-name: slideInDown;
+  animation-name: slideInDown;
+}
+
+@-webkit-keyframes slideInLeft {
+  0% {
+    -webkit-transform: translate3d(-100%, 0, 0);
+    transform: translate3d(-100%, 0, 0);
+    visibility: visible;
+  }
+
+  100% {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+}
+
+@keyframes slideInLeft {
+  0% {
+    -webkit-transform: translate3d(-100%, 0, 0);
+    transform: translate3d(-100%, 0, 0);
+    visibility: visible;
+  }
+
+  100% {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+}
+
+.slideInLeft {
+  -webkit-animation-name: slideInLeft;
+  animation-name: slideInLeft;
+}
+
+@-webkit-keyframes slideInRight {
+  0% {
+    -webkit-transform: translate3d(100%, 0, 0);
+    transform: translate3d(100%, 0, 0);
+    visibility: visible;
+  }
+
+  100% {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+}
+
+@keyframes slideInRight {
+  0% {
+    -webkit-transform: translate3d(100%, 0, 0);
+    transform: translate3d(100%, 0, 0);
+    visibility: visible;
+  }
+
+  100% {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+}
+
+.slideInRight {
+  -webkit-animation-name: slideInRight;
+  animation-name: slideInRight;
+}
+
+@-webkit-keyframes slideInUp {
+  0% {
+    -webkit-transform: translate3d(0, 100%, 0);
+    transform: translate3d(0, 100%, 0);
+    visibility: visible;
+  }
+
+  100% {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+}
+
+@keyframes slideInUp {
+  0% {
+    -webkit-transform: translate3d(0, 100%, 0);
+    transform: translate3d(0, 100%, 0);
+    visibility: visible;
+  }
+
+  100% {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+}
+
+.slideInUp {
+  -webkit-animation-name: slideInUp;
+  animation-name: slideInUp;
+}
+
+@-webkit-keyframes slideOutDown {
+  0% {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+
+  100% {
+    visibility: hidden;
+    -webkit-transform: translate3d(0, 100%, 0);
+    transform: translate3d(0, 100%, 0);
+  }
+}
+
+@keyframes slideOutDown {
+  0% {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+
+  100% {
+    visibility: hidden;
+    -webkit-transform: translate3d(0, 100%, 0);
+    transform: translate3d(0, 100%, 0);
+  }
+}
+
+.slideOutDown {
+  -webkit-animation-name: slideOutDown;
+  animation-name: slideOutDown;
+}
+
+@-webkit-keyframes slideOutLeft {
+  0% {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+
+  100% {
+    visibility: hidden;
+    -webkit-transform: translate3d(-100%, 0, 0);
+    transform: translate3d(-100%, 0, 0);
+  }
+}
+
+@keyframes slideOutLeft {
+  0% {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+
+  100% {
+    visibility: hidden;
+    -webkit-transform: translate3d(-100%, 0, 0);
+    transform: translate3d(-100%, 0, 0);
+  }
+}
+
+.slideOutLeft {
+  -webkit-animation-name: slideOutLeft;
+  animation-name: slideOutLeft;
+}
+
+@-webkit-keyframes slideOutRight {
+  0% {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+
+  100% {
+    visibility: hidden;
+    -webkit-transform: translate3d(100%, 0, 0);
+    transform: translate3d(100%, 0, 0);
+  }
+}
+
+@keyframes slideOutRight {
+  0% {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+
+  100% {
+    visibility: hidden;
+    -webkit-transform: translate3d(100%, 0, 0);
+    transform: translate3d(100%, 0, 0);
+  }
+}
+
+.slideOutRight {
+  -webkit-animation-name: slideOutRight;
+  animation-name: slideOutRight;
+}
+
+@-webkit-keyframes slideOutUp {
+  0% {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+
+  100% {
+    visibility: hidden;
+    -webkit-transform: translate3d(0, -100%, 0);
+    transform: translate3d(0, -100%, 0);
+  }
+}
+
+@keyframes slideOutUp {
+  0% {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+
+  100% {
+    visibility: hidden;
+    -webkit-transform: translate3d(0, -100%, 0);
+    transform: translate3d(0, -100%, 0);
+  }
+}
+
+.slideOutUp {
+  -webkit-animation-name: slideOutUp;
+  animation-name: slideOutUp;
+}

+ 214 - 0
public/assets/code/api.html

@@ -0,0 +1,214 @@
+<!DOCTYPE html>
+<!-- saved from url=(0113)https://tianqiapi.com/api.php?style=tg&skin=pitaya&city=%E8%8B%8F%E5%B7%9E&align=center&paddingtop=15&fontsize=14 -->
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta content="width=device-width,initial-scale=1.0,maximum-scale=1,minimum-scale=1,user-scalable=no" name="viewport">
+    <title>苏州天气预报 - TianqiAPI.com</title>
+    <style type="text/css">
+        body {
+            margin: auto 0px;
+            font-size: 14px;
+            padding-top: 15px;
+            color: #333;
+        }
+
+        ul {
+            list-style-type: none;
+            margin: 0;
+            padding: 0;
+        }
+
+        li {
+            list-style-type: none;
+        }
+
+        #mobile5 {
+            width: 420px;
+            text-align: center;
+            height: 80px;
+            margin-top: 5px
+        }
+
+        #mobile5 a {
+            color: #000;
+        }
+
+        #mobile5 .mobile5_tdw {
+            float: left;
+        }
+
+        #mobile5 .wt, #mobile5 .img {
+            margin: 0 auto;
+            float: none;
+        }
+
+        #mobile5 .wtmid {
+            height: 22px;
+            padding-top: 2px;
+            margin-top: 2px;
+            margin-bottom: 2px;
+            width: 120px;
+        }
+
+        #mobile05 {
+            width: auto;
+            height: 45px;
+            text-align: center;
+            overflow: hidden;
+        }
+
+        #mobile05 .mleft {
+            width: 110px;
+            overflow: hidden;
+            float: left;
+            line-height: 20px;
+            border-right: 1px dotted #ebebeb;
+        }
+
+        #mobile05 .wtname {
+            height: 20px;
+            overflow: hidden;
+            padding-top: 0px;
+        }
+
+        #mobile05 .wtname a {
+            font-size: 14px;
+            font-weight: bold;
+        }
+
+        #mobile05 .order {
+            padding-top: 0px;
+            height: 20px;
+        }
+
+        #mobile05 .wt {
+            float: left;
+        }
+
+        #mobile05 .wt .img {
+            float: left;
+            padding: 0px 4px 0 5px;
+        }
+
+        #mobile05 .mright {
+            width: 150px;
+            float: left;
+            position: relative;
+            padding: 0 5px;
+        }
+
+        #mobile05 .taday02 {
+            height: 45px;
+            display: block;
+            overflow: hidden;
+            text-align: left;
+            padding: 0px 0 0 0;
+            _width: 140px;
+        }
+
+        #mobile05 .taday02 li {
+            height: 20px;
+            line-height: 20px;
+            padding: 2px 0 0;
+            overflow: hidden;
+        }
+
+        #mobile05 .taday02 .day {
+            height: 20px;
+            padding: 0 3px 0 0;
+        }
+
+        #mobile05 .taday02 .bt {
+            height: 20px;
+            /*padding: 0 3px 0 0;*/
+            width: 36px;
+            overflow: hidden;
+        }
+
+        #mobile05 .taday02 .wtpath {
+            height: 20px;
+            overflow: hidden;
+        }
+
+        #mobile05 .zl {
+            float: left;
+            line-height: 20px;
+            position: absolute;
+            left: 60px;
+            top: 22px;
+        }
+
+        #mobile05 .zl .f1 {
+            background: #54A932;
+            color: #fff;
+            line-height: 12px;
+            padding: 1px 2px 2px;
+        }
+        .liang {
+            background-color: #eec50b;
+            color: #fff;padding:0 2px 0 0;
+        }
+    </style>
+</head>
+
+<body marginwidth="0" marginheight="0" style="background-color:transparent; font-family: Helvetica Neue,Helvetica,Arial,sans-serif;">
+
+<div id="mobile05" style=" padding-top:0px; padding-bottom:0px;">
+    <div class="mleft">
+        <div class="wtname">
+            <a>苏州</a>
+        </div>
+        <div class="order"><i class="liang">&nbsp;良&nbsp;</i></div>
+    </div>
+    <div class="mright">
+        <a nowrap="true">
+            <div name="wt" class="wt" id="day_1">
+                <div class="img">
+                    <img class="pngtqico" align="absmiddle" src="./yun.png" style="border:0;width:42px;height:42px"></div>
+                <div class="taday02">
+                    <ul>
+                        <li>
+                            <span class="day">今天</span>
+                            <span class="bt">多云转阴</span>
+                        </li>
+                    </ul>
+                </div>
+            </div>
+        </a>
+        <div class="zl">
+            <a>5℃~8℃ </a>
+        </div>
+    </div>
+    <div class="mright" style="width: 170px;">
+        <a nowrap="true">
+            <div name="wt" class="wt" id="day_1">
+                <div class="img">
+                    <img class="pngtqico" align="absmiddle" src="./yun.png" style="border:0;width:42px;height:42px"></div>
+                <div class="taday02">
+                    <ul>
+                        <li>
+                            <span class="day">明天</span>
+                            <span class="wtpath">多云</span></li>
+                        <li>4℃~8℃</li>
+                    </ul>
+                </div>
+            </div>
+        </a>
+    </div>
+        </div>
+
+<p style="display: none">
+    <script src="./hm.js.下载"></script><script>
+        var _hmt = _hmt || [];
+        (function() {
+            var hm = document.createElement("script");
+            hm.src = "https://hm.baidu.com/hm.js?9c221af010a163bdd2a5ae2cde8b62dc";
+            var s = document.getElementsByTagName("script")[0];
+            s.parentNode.insertBefore(hm, s);
+        })();
+    </script>
+</p>
+
+
+<audio controls="controls" style="display: none;"></audio></body><style type="text/css">#yddContainer{display:block;font-family:Microsoft YaHei;position:relative;width:100%;height:100%;top:-4px;left:-4px;font-size:12px;border:1px solid}#yddTop{display:block;height:22px}#yddTopBorderlr{display:block;position:static;height:17px;padding:2px 28px;line-height:17px;font-size:12px;color:#5079bb;font-weight:bold;border-style:none solid;border-width:1px}#yddTopBorderlr .ydd-sp{position:absolute;top:2px;height:0;overflow:hidden}.ydd-icon{left:5px;width:17px;padding:0px 0px 0px 0px;padding-top:17px;background-position:-16px -44px}.ydd-close{right:5px;width:16px;padding-top:16px;background-position:left -44px}#yddKeyTitle{float:left;text-decoration:none}#yddMiddle{display:block;margin-bottom:10px}.ydd-tabs{display:block;margin:5px 0;padding:0 5px;height:18px;border-bottom:1px solid}.ydd-tab{display:block;float:left;height:18px;margin:0 5px -1px 0;padding:0 4px;line-height:18px;border:1px solid;border-bottom:none}.ydd-trans-container{display:block;line-height:160%}.ydd-trans-container a{text-decoration:none;}#yddBottom{position:absolute;bottom:0;left:0;width:100%;height:22px;line-height:22px;overflow:hidden;background-position:left -22px}.ydd-padding010{padding:0 10px}#yddWrapper{color:#252525;z-index:10001;background:url(chrome-extension://eopjamdnofihpioajgfdikhhbobonhbb/ab20.png);}#yddContainer{background:#fff;border-color:#4b7598}#yddTopBorderlr{border-color:#f0f8fc}#yddWrapper .ydd-sp{background-image:url(chrome-extension://eopjamdnofihpioajgfdikhhbobonhbb/ydd-sprite.png)}#yddWrapper a,#yddWrapper a:hover,#yddWrapper a:visited{color:#50799b}#yddWrapper .ydd-tabs{color:#959595}.ydd-tabs,.ydd-tab{background:#fff;border-color:#d5e7f3}#yddBottom{color:#363636}#yddWrapper{min-width:250px;max-width:400px;}</style></html>

BIN
public/assets/code/banner1.jpg


+ 236 - 0
public/assets/code/base.js

@@ -0,0 +1,236 @@
+
+function _BASE(code, companyId, traceType) {
+    var tips = function (msg) {
+        alert(msg);
+    };
+    if (!code) {
+        tips('身份码不能为空');
+        return;
+    }
+    if (!companyId) {
+        tips('企业信息不能为空');
+        return;
+    }
+    if (!traceType) {
+        tips('查询类型不能为空');
+        return;
+    }
+    var base = {
+        _apiUrl: (window.location.origin.indexOf("localhost") > 0 ? "http://localhost:25585" : window.location.origin) + "/api",
+        tips: tips,
+        audioPlayed: false,
+        requestSuccess: function (res, callback) {
+            if (res.code === 200) {
+                callback && callback(res.data);
+            }
+            else if (res.code === 400) {
+                base.tips(res.info);
+            }
+            else if (res.code === 500) {
+                base.tips('服务端异常,请联系管理员');
+                console.error(res.info);
+            }
+        },
+		getArmBlockChainInfo: function (callback, armId) {
+			COMMON.ajax({
+				url: this._apiUrl + "/Arm/GetBlockChainInfo?armid=" + armId,
+				type: "get",
+				dataType: "json",
+                success: function (res) {
+                    base.requestSuccess(res, callback);
+                }
+			});
+		},
+        getCodeInfo: function (callback) {
+            COMMON.ajax({
+                url: this._apiUrl + "/Trace/GetCodeInfo",
+                data: { Code: code, CompanyId: companyId, TraceType: traceType },
+                type: "get",
+                dataType: "json",
+                success: function (res) {
+                    base.requestSuccess(res, callback);
+                }
+            });
+        },
+        getCodeQueryData: function (callback, queryInfoId, queryDataId, needFilingInfo) {
+            COMMON.ajax({
+                url: this._apiUrl + "/Trace/GetCodeQueryData",
+                data: { Code: code, CompanyId: companyId, TraceType: traceType, queryInfoId: queryInfoId, queryDataId: queryDataId, needFilingInfo: needFilingInfo },
+                type: "get",
+                dataType: "json",
+                success: function (res) {
+                    base.requestSuccess(res, callback);
+                }
+            });
+        },
+        getData: function (callback, encryptStr, params) {
+            COMMON.ajax({
+                url: this._apiUrl + "/Trace/GetData",
+                data: { companyId: companyId, encryptStr: encryptStr, paramStr: params ? JSON.stringify(params): '' },
+                type: "get",
+                dataType: "json",
+                success: function (res) {
+                    base.requestSuccess(res, callback);
+                }
+            });
+        },
+        getCodeQueryRecord: function (callback) {
+            COMMON.ajax({
+                url: this._apiUrl + "/Trace/GetCodeQueryRecord",
+                data: { Code: code, TraceType: traceType },
+                type: "get",
+                dataType: "json",
+                success: function (res) {
+                    base.requestSuccess(res, callback);
+                }
+            });
+        },
+        checkSecurityCode: function (secCode, callback) {
+            if (!secCode) {
+                base.tips('防伪码不能为空');
+                return;
+            }
+            COMMON.ajax({
+                url: this._apiUrl + "/Trace/CheckSecurityCode",
+                data: { Code: code, SecurityCode: secCode, CompanyId: companyId },
+                type: "post",
+                dataType: "json",
+                success: function (res) {
+                    base.requestSuccess(res, callback);
+                }
+            });
+        },
+        initAudio: function (text) {
+            var ele = document.createElement("audio");
+            ele.preload = true;
+            ele.id = "queryAudio";
+            ele.src = base.getAudioUrl(text);
+            document.body.append(ele);
+            base.audioPlay();
+        },
+        audioPlay: function (e) {
+            try { 
+                if (!base.audioPlayed) {
+                    document.getElementById('queryAudio').play().then(function () {
+                        base.audioPlayed = true;
+                        document.removeEventListener("WeixinJSBridgeReady", base.audioPlay, false);
+                        document.removeEventListener('YixinJSBridgeReady', base.audioPlay, false);
+                        document.removeEventListener("touchstart", base.audioPlay, false);
+                    }, function () {
+                        document.addEventListener("WeixinJSBridgeReady", base.audioPlay, false);
+                        document.addEventListener('YixinJSBridgeReady', base.audioPlay, false);
+                        document.addEventListener("touchstart", base.audioPlay, false);
+                    });
+                    }
+                }
+            catch (err) {
+            }
+        },
+        getFileUrl: function (fileId) {
+            if (!fileId) return '';
+            //thumbnail缩图 128 默认  256 512 1024
+            return this._apiUrl + '/File/Download?thumbnail=512&fileId=' + fileId;
+        },
+        getQueryType: function (value) {
+            if (!value) return '';
+            switch (value) {
+                case 1: return "Web查询";
+                case 2: return "扫码查询";
+                default: return "";
+            }
+        },
+        datetimeFormat: function (value, format) {
+            if (!value) return '';
+            var date = new Date(value.replace('T', ' ').replace(/-/g, '/'));
+            return date.Format(format || 'yyyy-MM-dd hh:mm');
+        },
+        getDataItem: function (value, field) {
+            if (!value) return '';
+            if (!field.DataSource) return value;
+            var text = '';
+            value.split(',').forEach(val => {
+                var item = field.DataSource.find((i) => { return i.Value === val; });
+                item && (text += ',' + item.Text);
+            });
+            text && (text = text.substring(1));
+            return text;
+        },
+        getFileInfos: function (fileIds, callback) {
+            if (!fileIds) return;
+            COMMON.ajax({
+                url: this._apiUrl + "/File/GetMultipleFileInfo",
+                data: { FileIdList: fileIds },
+                type: "POST",
+                dataType: "json",
+                success: function (res) {
+                    base.requestSuccess(res, callback);
+                }
+            });
+        },
+        getAreaName: function (areaIds, callback) {
+            if (!areaIds) return '';
+            COMMON.ajax({
+                url: this._apiUrl + "/Trace/getAreaName",
+                data: { areaIds: areaIds },
+                type: "GET",
+                dataType: "json",
+                success: function (res) {
+                    base.requestSuccess(res, callback);
+                }
+            });
+        },
+        getDataItemName: function (itemCode, itemValue, callback) {
+            if (!itemCode) return '';
+            COMMON.ajax({
+                url: this._apiUrl + "/Trace/GetDataItemName",
+                data: { itemCode: itemCode, itemValue: itemValue },
+                type: "GET",
+                dataType: "json",
+                success: function (res) {
+                    base.requestSuccess(res, callback);
+                }
+            });
+        },
+        GetEncryptStr: function (callback) {
+            COMMON.ajax({
+                url: this._apiUrl + "/Trace/GetEncryptStr?str={'':''}",
+                type: "GET",
+                dataType: "json",
+                success: function (res) {
+                    base.requestSuccess(res, callback);
+                }
+            });
+        },
+        getQualityPic: function (code, callback) {
+            COMMON.ajax({
+                url: this._apiUrl + "/ProductCertInfo/GetQualityPath",
+                data: { code: code },
+                type: "GET",
+                dataType: "json",
+                success: function (res) {
+                    base.requestSuccess(res, callback);
+                }
+            });
+        },
+        GetCertType: function (certificlass, callback) {
+            COMMON.ajax({
+                url: this._apiUrl + "/CertifiCate/GetCertType?itemCode=" + certificlass,
+                type: "get",
+                dataType: "json",
+                success: function (res) {
+                    base.requestSuccess(res, callback);
+                }
+            });
+        },
+        getAudioUrl: function (text) {
+            if (text == null || text.length === 0) return '';
+            var url = "http://yy.org315.cn/speech/Synthesis?appname=xztsc&text=";
+            return url += encodeURI(text);
+        }
+
+    };
+
+    return base;
+}
+
+

+ 16 - 0
public/assets/code/checkurl.js

@@ -0,0 +1,16 @@
+//禁止查看网址
+	function stopDrop() {
+	    var lastY;//最后一次y坐标点
+	    $(document.body).on('touchstart', function(event) {
+	        lastY = event.originalEvent.changedTouches[0].clientY;//点击屏幕时记录最后一次Y度坐标。
+	    });
+	    $(document.body).on('touchmove', function(event) {
+	        var y = event.originalEvent.changedTouches[0].clientY;
+	        var st = $(this).scrollTop(); //滚动条高度
+	        if (y >= lastY && st <= 10) {//如果滚动条高度小于0,可以理解为到顶了,且是下拉情况下,阻止touchmove事件。
+	            lastY = y;
+	            event.preventDefault();
+	        }
+	        lastY = y;
+	    });
+	}

+ 118 - 0
public/assets/code/common.js

@@ -0,0 +1,118 @@
+// 对Date的扩展,将 Date 转化为指定格式的String 
+// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, 
+// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
+// 例子: 
+// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 
+// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18 
+Date.prototype.Format = function (fmt) { //author: meizz 
+    var o = {
+        "M+": this.getMonth() + 1,                 //月份 
+        "d+": this.getDate(),                    //日 
+        "h+": this.getHours(),                   //小时 
+        "m+": this.getMinutes(),                 //分 
+        "s+": this.getSeconds(),                 //秒 
+        "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
+        "S": this.getMilliseconds()             //毫秒 
+    };
+    if (/(y+)/.test(fmt))
+        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
+    for (var k in o)
+        if (new RegExp("(" + k + ")").test(fmt))
+            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
+    return fmt;
+};
+
+function _COMMON() {
+    var common = {
+        request: function (d) {
+            for (var c = location.search.slice(1).split("&"), a = 0; a < c.length; a++) {
+                var b = c[a].split("=");
+                if (b[0] === d)
+                    if ("undefined" === decodeURIComponent(b[1]))
+                        break;
+                    else return decodeURIComponent(b[1]);
+            }
+            return "";
+        },
+        isMobile: function () {
+            var userAgentInfo = navigator.userAgent;
+            var Agents = ["Android", "iPhone",
+                "SymbianOS", "Windows Phone",
+                "iPad", "iPod"];
+            var flag = false;
+            for (var v = 0; v < Agents.length; v++) {
+                if (userAgentInfo.indexOf(Agents[v]) > 0) {
+                    flag = true;
+                    break;
+                }
+            }
+            return flag;
+        },
+        ajax: function () {
+            var ajaxData = {
+                type: arguments[0].type || "GET",
+                url: arguments[0].url || "",
+                async: arguments[0].async || true,
+                data: arguments[0].data || null,
+                dataType: arguments[0].dataType || "text",
+                contentType: arguments[0].contentType || "application/x-www-form-urlencoded",
+                beforeSend: arguments[0].beforeSend || function () { },
+                success: arguments[0].success || function () { },
+                error: arguments[0].error || function () { }
+            };
+            ajaxData.beforeSend();
+            var xhr = createxmlHttpRequest();
+            xhr.responseType = ajaxData.dataType;
+            var data = convertData(ajaxData.data);
+            if (ajaxData.type.toLowerCase() === 'get') {
+                ajaxData.url = ajaxData.url + (ajaxData.url.indexOf('?') > 0 ? '&' : '?') + (data || '');
+                data = null;
+            }
+            xhr.open(ajaxData.type, ajaxData.url, ajaxData.async);
+            xhr.setRequestHeader("Content-Type", ajaxData.contentType);
+            xhr.send(data);
+            xhr.onreadystatechange = function () {
+                if (xhr.readyState === 4) {
+                    if (xhr.status === 200) {
+                        ajaxData.success(xhr.response);
+                    } else {
+                        ajaxData.error();
+                    }
+                }
+            };
+        },
+        getFileSize: function (fileByte) {
+            var fileSizeByte = fileByte;
+            var fileSizeMsg = "";
+            if (fileSizeByte < 1048576) fileSizeMsg = (fileSizeByte / 1024).toFixed(2) + "KB";
+            else if (fileSizeByte == 1048576) fileSizeMsg = "1MB";
+            else if (fileSizeByte > 1048576 && fileSizeByte < 1073741824) fileSizeMsg = (fileSizeByte / (1024 * 1024)).toFixed(2) + "MB";
+            else if (fileSizeByte > 1048576 && fileSizeByte == 1073741824) fileSizeMsg = "1GB";
+            else if (fileSizeByte > 1073741824 && fileSizeByte < 1099511627776) fileSizeMsg = (fileSizeByte / (1024 * 1024 * 1024)).toFixed(2) + "GB";
+            else fileSizeMsg = "文件超过1TB";
+            return fileSizeMsg;
+        }
+    };
+
+    function createxmlHttpRequest() {
+        if (window.ActiveXObject) {
+            return new ActiveXObject("Microsoft.XMLHTTP");
+        } else if (window.XMLHttpRequest) {
+            return new XMLHttpRequest();
+        }
+    }
+
+    function convertData(data) {
+        if (typeof data === 'object') {
+            var convertResult = "";
+            for (var c in data) {
+                convertResult += c + "=" + data[c] + "&";
+            }
+            convertResult = convertResult.substring(0, convertResult.length - 1);
+            return convertResult;
+        } else {
+            return data;
+        }
+    }
+    return common;
+}

+ 128 - 0
public/assets/code/flexible.js

@@ -0,0 +1,128 @@
+//这里750是原始设计果图大小
+var fontSizeAuto = function(oriWidth){
+	return function(){
+		var viewportWidth = document.documentElement.clientWidth;
+		if(viewportWidth > oriWidth){ viewportWidth = oriWidth; }
+		if(viewportWidth < 320){ viewportWidth = 320; }
+		document.documentElement.style.fontSize = viewportWidth/(oriWidth/75) +'px';	
+	}
+}
+	fontSizeAuto(750)();
+	window.onresize = fontSizeAuto(750);
+// ;(function(win, lib) {
+//     var doc = win.document;
+//     var docEl = doc.documentElement;
+//     var metaEl = doc.querySelector('meta[name="viewport"]');
+//     var flexibleEl = doc.querySelector('meta[name="flexible"]');
+//     var dpr = 0;
+//     var scale = 0;
+//     var tid;
+//     var flexible = lib.flexible || (lib.flexible = {});
+
+//     if (metaEl) {
+//         //console.warn('将根据已有的meta标签来设置缩放比例');
+//         var match = metaEl.getAttribute('content').match(/initial\-scale=([\d\.]+)/);
+//         if (match) {
+//             scale = parseFloat(match[1]);
+//             dpr = parseInt(1 / scale);
+//         }
+//     } else if (flexibleEl) {
+//         var content = flexibleEl.getAttribute('content');
+//         if (content) {
+//             var initialDpr = content.match(/initial\-dpr=([\d\.]+)/);
+//             var maximumDpr = content.match(/maximum\-dpr=([\d\.]+)/);
+//             if (initialDpr) {
+//                 dpr = parseFloat(initialDpr[1]);
+//                 scale = parseFloat((1 / dpr).toFixed(2));
+//             }
+//             if (maximumDpr) {
+//                 dpr = parseFloat(maximumDpr[1]);
+//                 scale = parseFloat((1 / dpr).toFixed(2));
+//             }
+//         }
+//     }
+
+//     if (!dpr && !scale) {
+//         var isAndroid = win.navigator.appVersion.match(/android/gi);
+//         var isIPhone = win.navigator.appVersion.match(/iphone/gi);
+//         var devicePixelRatio = win.devicePixelRatio;
+//         if (isIPhone) {
+//             // iOS下,对于2和3的屏,用2倍的方案,其余的用1倍方案
+//             if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) {
+//                 dpr = 3;
+//             } else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)){
+//                 dpr = 2;
+//             } else {
+//                 dpr = 1;
+//             }
+//         } else {
+//             // 其他设备下,仍旧使用1倍的方案
+//             dpr = 1;
+//         }
+//         scale = 1 / dpr;
+//     }
+
+//     docEl.setAttribute('data-dpr', dpr);
+//     if (!metaEl) {
+//         metaEl = doc.createElement('meta');
+//         metaEl.setAttribute('name', 'viewport');
+//         metaEl.setAttribute('content', 'initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no');
+//         if (docEl.firstElementChild) {
+//             docEl.firstElementChild.appendChild(metaEl);
+//         } else {
+//             var wrap = doc.createElement('div');
+//             wrap.appendChild(metaEl);
+//             doc.write(wrap.innerHTML);
+//         }
+//     }
+
+//     function refreshRem(){
+//         var width = docEl.getBoundingClientRect().width;
+//         if (width / dpr > 540) {
+//             width = 540 * dpr;
+//         }
+//         var rem = width / 10;
+//         docEl.style.fontSize = rem + 'px';
+//         flexible.rem = win.rem = rem;
+//     }
+
+//     win.addEventListener('resize', function() {
+//         clearTimeout(tid);
+//         tid = setTimeout(refreshRem, 300);
+//     }, false);
+//     win.addEventListener('pageshow', function(e) {
+//         if (e.persisted) {
+//             clearTimeout(tid);
+//             tid = setTimeout(refreshRem, 300);
+//         }
+//     }, false);
+
+//     if (doc.readyState === 'complete') {
+//         doc.body.style.fontSize = 12 * dpr + 'px';
+//     } else {
+//         doc.addEventListener('DOMContentLoaded', function(e) {
+//             doc.body.style.fontSize = 12 * dpr + 'px';
+//         }, false);
+//     }
+
+
+//     refreshRem();
+
+//     flexible.dpr = win.dpr = dpr;
+//     flexible.refreshRem = refreshRem;
+//     flexible.rem2px = function(d) {
+//         var val = parseFloat(d) * this.rem;
+//         if (typeof d === 'string' && d.match(/rem$/)) {
+//             val += 'px';
+//         }
+//         return val;
+//     }
+//     flexible.px2rem = function(d) {
+//         var val = parseFloat(d) / this.rem;
+//         if (typeof d === 'string' && d.match(/px$/)) {
+//             val += 'rem';
+//         }
+//         return val;
+//     }
+
+// })(window, window['lib'] || (window['lib'] = {}));

+ 81 - 0
public/assets/code/hm.js

@@ -0,0 +1,81 @@
+(function(){var h={},mt={},c={id:"9c221af010a163bdd2a5ae2cde8b62dc",dm:["tianqiapi.com"],js:"tongji.baidu.com/hm-web/js/",etrk:[],cetrk:[],cptrk:[],icon:'',ctrk:[],nv:-1,vdur:1800000,age:31536000000,rec:0,rp:[],trust:0,vcard:0,qiao:0,lxb:0,kbtrk:0,pt:0,spa:0,oc:0,aet:'',hca:'445490A41598901E',conv:0,med:0,cvcc:'',cvcf:[],apps:''};var r=void 0,u=!0,v=null,w=!1;mt.cookie={};mt.cookie.set=function(a,b,g){var e;g.N&&(e=new Date,e.setTime(e.getTime()+g.N));document.cookie=a+"="+b+(g.domain?"; domain="+g.domain:"")+(g.path?"; path="+g.path:"")+(e?"; expires="+e.toGMTString():"")+(g.Gc?"; secure":"")};mt.cookie.get=function(a){return(a=RegExp("(^| )"+a+"=([^;]*)(;|$)").exec(document.cookie))?a[2]:v};
+mt.cookie.ac=function(a,b){try{var g="Hm_ck_"+ +new Date;mt.cookie.set(g,"is-cookie-enabled",{domain:a,path:b,N:r});var e="is-cookie-enabled"===mt.cookie.get(g)?"1":"0";mt.cookie.set(g,"",{domain:a,path:b,N:-1});return e}catch(d){return"0"}};mt.lang={};mt.lang.d=function(a,b){return"[object "+b+"]"==={}.toString.call(a)};mt.lang.Ta=function(a){return mt.lang.d(a,"Number")&&isFinite(a)};mt.lang.F=function(a){return mt.lang.d(a,"String")};mt.lang.isArray=function(a){return mt.lang.d(a,"Array")};
+mt.lang.h=function(a){return a.replace?a.replace(/'/g,"'0").replace(/\*/g,"'1").replace(/!/g,"'2"):a};mt.lang.trim=function(a){return a.replace(/^\s+|\s+$/g,"")};mt.lang.D=function(a,b){var g=w;if(a==v||!mt.lang.d(a,"Array")||b===r)return g;if(Array.prototype.indexOf)g=-1!==a.indexOf(b);else for(var e=0;e<a.length;e++)if(a[e]===b){g=u;break}return g};mt.url={};mt.url.j=function(a,b){var g=a.match(RegExp("(^|&|\\?|#)("+b+")=([^&#]*)(&|$|#)",""));return g?g[3]:v};
+mt.url.Bc=function(a){return(a=a.match(/^(https?:)\/\//))?a[1]:v};mt.url.Gb=function(a){return(a=a.match(/^(https?:\/\/)?([^\/\?#]*)/))?a[2].replace(/.*@/,""):v};mt.url.Q=function(a){return(a=mt.url.Gb(a))?a.replace(/:\d+$/,""):a};mt.url.pa=function(a){return(a=a.match(/^(https?:\/\/)?[^\/]*(.*)/))?a[2].replace(/[\?#].*/,"").replace(/^$/,"/"):v};mt.url.Ua=function(a,b){a=a.replace(/^https?:\/\//,"");return 0===a.indexOf(b)};
+mt.url.wa=function(a,b){a="."+a.replace(/:\d+/,"");b="."+b.replace(/:\d+/,"");var g=a.indexOf(b);return-1<g&&g+b.length===a.length};
+(function(){var a=mt.lang,b=mt.url;mt.g={};mt.g.yb=function(a){return document.getElementById(a)};mt.g.na=function(a){if(!a)return v;try{a=String(a);if(0===a.indexOf("!HMCQ!"))return a;if(0===a.indexOf("!HMCC!"))return document.querySelector(a.substring(6,a.length));for(var e=a.split(">"),b=document.body,n=e.length-1;0<=n;n--)if(-1<e[n].indexOf("#")){var f=e[n].split("#")[1];(b=document.getElementById(f))||(b=document.getElementById(decodeURIComponent(f)));e=e.splice(n+1,e.length-(n+1));break}for(a=
+0;b&&a<e.length;){var l=String(e[a]).toLowerCase();if(!("html"===l||"body"===l)){var n=0,q=e[a].match(/\[(\d+)\]/i),f=[];if(q)n=q[1]-1,l=l.split("[")[0];else if(1!==b.childNodes.length){for(var s=0,t=0,m=b.childNodes.length;t<m;t++){var x=b.childNodes[t];1===x.nodeType&&x.nodeName.toLowerCase()===l&&s++;if(1<s)return v}if(1!==s)return v}for(s=0;s<b.childNodes.length;s++)1===b.childNodes[s].nodeType&&b.childNodes[s].nodeName.toLowerCase()===l&&f.push(b.childNodes[s]);if(!f[n])return v;b=f[n]}a++}return b}catch(k){return v}};
+mt.g.pa=function(a,e){var b=[],n=[];if(!a)return n;for(;a.parentNode!=v;){for(var f=0,l=0,q=a.parentNode.childNodes.length,s=0;s<q;s++){var t=a.parentNode.childNodes[s];if(t.nodeName===a.nodeName&&(f++,t===a&&(l=f),0<l&&1<f))break}if((q=""!==a.id)&&e){b.unshift("#"+encodeURIComponent(a.id));break}else q&&(q="#"+encodeURIComponent(a.id),q=0<b.length?q+">"+b.join(">"):q,n.push(q)),b.unshift(encodeURIComponent(String(a.nodeName).toLowerCase())+(1<f?"["+l+"]":""));a=a.parentNode}n.push(b.join(">"));return n};
+mt.g.qa=function(a){return(a=mt.g.pa(a,u))&&a.length?String(a[0]):""};mt.g.Jb=function(a){return mt.g.pa(a,w)};mt.g.zb=function(a){var e;for(e="A";(a=a.parentNode)&&1==a.nodeType;)if(a.tagName==e)return a;return v};mt.g.Cb=function(a){return 9===a.nodeType?a:a.ownerDocument||a.document};mt.g.Hb=function(a){var e={top:0,left:0};if(!a)return e;var b=mt.g.Cb(a).documentElement;"undefined"!==typeof a.getBoundingClientRect&&(e=a.getBoundingClientRect());return{top:e.top+(window.pageYOffset||b.scrollTop)-
+(b.clientTop||0),left:e.left+(window.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}};mt.g.getAttribute=function(a,e){var b=a.getAttribute&&a.getAttribute(e)||v;if(!b&&a.attributes&&a.attributes.length)for(var n=a.attributes,f=n.length,l=0;l<f;l++)n[l].nodeName===e&&(b=n[l].nodeValue);return b};mt.g.P=function(a){var b="document";a.tagName!==r&&(b=a.tagName);return b.toLowerCase()};mt.g.Nb=function(b){var e="";b.textContent?e=a.trim(b.textContent):b.innerText&&(e=a.trim(b.innerText));e&&(e=e.replace(/\s+/g,
+" ").substring(0,255));return e};mt.g.O=function(g,e){var d;a.F(g)&&0===String(g).indexOf("!HMCQ!")?(d=String(g),d=b.j(document.location.href,d.substring(6,d.length))):a.F(g)||(d=mt.g.P(g),"input"===d&&e&&("button"===g.type||"submit"===g.type)?d=a.trim(g.value)||"":"input"===d&&!e&&"password"!==g.type?d=a.trim(g.value)||"":"img"===d?(d=mt.g.getAttribute,d=d(g,"alt")||d(g,"title")||d(g,"src")):d="body"===d||"html"===d?["(hm-default-content-for-",d,")"].join(""):mt.g.Nb(g));return String(d||"").substring(0,
+255)};(function(){(mt.g.ec=function(){function a(){if(!a.ba){a.ba=u;for(var b=0,e=n.length;b<e;b++)n[b]()}}function b(){try{document.documentElement.doScroll("left")}catch(d){setTimeout(b,1);return}a()}var d=w,n=[],f;document.addEventListener?f=function(){document.removeEventListener("DOMContentLoaded",f,w);a()}:document.attachEvent&&(f=function(){"complete"===document.readyState&&(document.detachEvent("onreadystatechange",f),a())});(function(){if(!d)if(d=u,"complete"===document.readyState)a.ba=u;
+else if(document.addEventListener)document.addEventListener("DOMContentLoaded",f,w),window.addEventListener("load",a,w);else if(document.attachEvent){document.attachEvent("onreadystatechange",f);window.attachEvent("onload",a);var l=w;try{l=window.frameElement==v}catch(q){}document.documentElement.doScroll&&l&&b()}})();return function(b){a.ba?b():n.push(b)}}()).ba=w})();return mt.g})();mt.event={};
+mt.event.e=function(a,b,g){a.attachEvent?a.attachEvent("on"+b,function(b){g.call(a,b)}):a.addEventListener&&a.addEventListener(b,g,w)};mt.event.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=w};
+(function(){var a=mt.event;mt.f={};mt.f.Sa=/msie (\d+\.\d+)/i.test(navigator.userAgent);mt.f.Ac=function(){if(document.documentMode)return document.documentMode;var a=/msie (\d+\.\d+)/i.exec(navigator.userAgent);return a?+a[1]||0:0};mt.f.Dc=function(){try{return!!navigator.userAgent.match(/safari/i)&&!navigator.userAgent.match(/chrome/i)&&"undefined"!==typeof document.body.style.webkitFilter&&!window.chrome}catch(a){return w}};mt.f.cookieEnabled=navigator.cookieEnabled;mt.f.javaEnabled=navigator.javaEnabled();
+mt.f.language=navigator.language||navigator.browserLanguage||navigator.systemLanguage||navigator.userLanguage||"";mt.f.gc=(window.screen.width||0)+"x"+(window.screen.height||0);mt.f.colorDepth=window.screen.colorDepth||0;mt.f.Lb=function(){var a;a=a||document;return parseInt(window.pageYOffset||a.documentElement.scrollTop||a.body&&a.body.scrollTop||0,10)};mt.f.Pa=function(){var a=document;return parseInt(window.innerHeight||a.documentElement.clientHeight||a.body&&a.body.clientHeight||0,10)};mt.f.C=
+function(){return mt.f.Lb()+mt.f.Pa()};mt.f.ib=0;mt.f.Pb=function(){var a=document;return parseInt(window.innerWidth||a.documentElement.clientWidth||a.body.offsetWidth||0,10)};mt.f.orientation=0;(function(){function b(){var a=0;window.orientation!==r&&(a=window.orientation);screen&&(screen.orientation&&screen.orientation.angle!==r)&&(a=screen.orientation.angle);mt.f.orientation=a;mt.f.ib=mt.f.Pb()}b();a.e(window,"orientationchange",b)})();return mt.f})();mt.G={};
+mt.G.parse=function(a){return(new Function("return ("+a+")"))()};
+mt.G.stringify=function(){function a(a){/["\\\x00-\x1f]/.test(a)&&(a=a.replace(/["\\\x00-\x1f]/g,function(a){var b=g[a];if(b)return b;b=a.charCodeAt();return"\\u00"+Math.floor(b/16).toString(16)+(b%16).toString(16)}));return'"'+a+'"'}function b(a){return 10>a?"0"+a:a}var g={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};return function(e){switch(typeof e){case "undefined":return"undefined";case "number":return isFinite(e)?String(e):"null";case "string":return a(e);case "boolean":return String(e);
+default:if(e===v)return"null";if(e instanceof Array){var d=["["],n=e.length,f,l,q;for(l=0;l<n;l++)switch(q=e[l],typeof q){case "undefined":case "function":case "unknown":break;default:f&&d.push(","),d.push(mt.G.stringify(q)),f=1}d.push("]");return d.join("")}if(e instanceof Date)return'"'+e.getFullYear()+"-"+b(e.getMonth()+1)+"-"+b(e.getDate())+"T"+b(e.getHours())+":"+b(e.getMinutes())+":"+b(e.getSeconds())+'"';f=["{"];l=mt.G.stringify;for(n in e)if(Object.prototype.hasOwnProperty.call(e,n))switch(q=
+e[n],typeof q){case "undefined":case "unknown":case "function":break;default:d&&f.push(","),d=1,f.push(l(n)+":"+l(q))}f.push("}");return f.join("")}}}();mt.localStorage={};mt.localStorage.ga=function(){if(!mt.localStorage.l)try{mt.localStorage.l=document.createElement("input"),mt.localStorage.l.type="hidden",mt.localStorage.l.style.display="none",mt.localStorage.l.addBehavior("#default#userData"),document.getElementsByTagName("head")[0].appendChild(mt.localStorage.l)}catch(a){return w}return u};
+mt.localStorage.set=function(a,b,g){var e=new Date;e.setTime(e.getTime()+g||31536E6);try{window.localStorage?(b=e.getTime()+"|"+b,window.localStorage.setItem(a,b)):mt.localStorage.ga()&&(mt.localStorage.l.expires=e.toUTCString(),mt.localStorage.l.load(document.location.hostname),mt.localStorage.l.setAttribute(a,b),mt.localStorage.l.save(document.location.hostname))}catch(d){}};
+mt.localStorage.get=function(a){if(window.localStorage){if(a=window.localStorage.getItem(a)){var b=a.indexOf("|"),g=a.substring(0,b)-0;if(g&&g>(new Date).getTime())return a.substring(b+1)}}else if(mt.localStorage.ga())try{return mt.localStorage.l.load(document.location.hostname),mt.localStorage.l.getAttribute(a)}catch(e){}return v};
+mt.localStorage.remove=function(a){if(window.localStorage)window.localStorage.removeItem(a);else if(mt.localStorage.ga())try{mt.localStorage.l.load(document.location.hostname),mt.localStorage.l.removeAttribute(a),mt.localStorage.l.save(document.location.hostname)}catch(b){}};mt.sessionStorage={};mt.sessionStorage.set=function(a,b){try{window.sessionStorage&&window.sessionStorage.setItem(a,b)}catch(g){}};
+mt.sessionStorage.get=function(a){try{return window.sessionStorage?window.sessionStorage.getItem(a):v}catch(b){return v}};mt.sessionStorage.remove=function(a){try{window.sessionStorage&&window.sessionStorage.removeItem(a)}catch(b){}};mt.fb={};mt.fb.log=function(a,b){var g=new Image,e="mini_tangram_log_"+Math.floor(2147483648*Math.random()).toString(36);window[e]=g;g.onload=function(){g.onload=v;g=window[e]=v;b&&b(a)};g.src=a};mt.gb={};
+mt.gb.Ob=function(){var a="";if(navigator.plugins&&navigator.mimeTypes.length){var b=navigator.plugins["Shockwave Flash"];b&&b.description&&(a=b.description.replace(/^.*\s+(\S+)\s+\S+$/,"$1"))}else if(window.ActiveXObject)try{if(b=new ActiveXObject("ShockwaveFlash.ShockwaveFlash"))(a=b.GetVariable("$version"))&&(a=a.replace(/^.*\s+(\d+),(\d+).*$/,"$1.$2"))}catch(g){}return a};
+h.A={Cc:"http://tongji.baidu.com/hm-web/welcome/ico",ab:"hm.baidu.com/hm.gif",ob:/^(tongji|hmcdn).baidu.com$/,rc:"tongji.baidu.com",Tb:"hmmd",Ub:"hmpl",uc:"utm_medium",Sb:"hmkw",wc:"utm_term",Qb:"hmci",tc:"utm_content",Vb:"hmsr",vc:"utm_source",Rb:"hmcu",sc:"utm_campaign",M:0,J:Math.round(+new Date/1E3),protocol:"https:"===document.location.protocol?"https:":"http:",xa:"https:",Ec:0,yc:6E5,Fc:6E5,hc:5E3,zc:5,Ma:1024,xc:1,za:2147483647,hb:"hca kb cc cf ci ck cl cm cp cu cw ds vl ep et fl ja ln lo lt rnd si su v cv lv api sn r ww p ct u tt".split(" "),
+R:u,Ja:["a","input","button"],Ga:{id:"data-hm-id",W:"data-hm-class",V:"data-hm-xpath",content:"data-hm-content",da:"data-hm-tag",link:"data-hm-link"},Ia:"data-hm-enabled",Ha:"data-hm-disabled",dc:"https://hmcdn.baidu.com/static/tongji/plugins/",$a:["UrlChangeTracker","OcpcCbHm"]};(function(){var a={B:{},e:function(a,g){this.B[a]=this.B[a]||[];this.B[a].push(g)},K:function(a,g){this.B[a]=this.B[a]||[];for(var e=this.B[a].length,d=0;d<e;d++)this.B[a][d](g)}};return h.t=a})();
+(function(){var a=mt.lang,b=/^https?:\/\//,g={Bb:function(a){var b;try{b=JSON.parse(decodeURIComponent(a[0]))}catch(n){}return b},Va:function(a,b){return g.Wa(h.c&&h.c.b&&h.c.b.u,a,b)||g.Wa(document.location.href,a,b)},Wa:function(a,d,n){if(a===r)return w;b.test(d)||(a=a.replace(b,""));d=d.replace(/\/$/,"");a=a.replace(/\/$/,"");n&&(a=a.replace(/^(https?:\/\/)?www\./,"$1"));return RegExp("^"+d.replace(/[?.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*")+"$").test(a)},Z:function(b,d){var n=g.Bb(b);if(!a.d(n,
+"Undefined")){if(a.d(n,"Array")){for(var f=0;f<n.length;f++)if(g.Va(n[f],d))return u;return w}if(a.d(n,"Object")){var f=[],l;for(l in n)n.hasOwnProperty(l)&&g.Va(l,d)&&(f=f.concat(n[l]));return f}}}};return h.ka=g})();
+(function(){function a(a,e){var d=document.createElement("script");d.charset="utf-8";b.d(e,"Function")&&(d.readyState?d.onreadystatechange=function(){if("loaded"===d.readyState||"complete"===d.readyState)d.onreadystatechange=v,e()}:d.onload=function(){e()});d.src=a;var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(d,n)}var b=mt.lang;return h.load=a})();
+(function(){var a=mt.url,b=mt.cookie,g=mt.localStorage,e=mt.sessionStorage,d={getData:function(a){try{return b.get(a)||e.get(a)||g.get(a)}catch(f){}},setData:function(a,f,l){try{b.set(a,f,{domain:d.$(),path:d.ma(),N:l}),l?g.set(a,f,l):e.set(a,f)}catch(q){}},removeData:function(a){try{b.set(a,"",{domain:d.$(),path:d.ma(),N:-1}),e.remove(a),g.remove(a)}catch(f){}},$:function(){for(var b=document.location.hostname,e=0,d=c.dm.length;e<d;e++)if(a.wa(b,c.dm[e]))return c.dm[e].replace(/(:\d+)?[/?#].*/,"");
+return b},ma:function(){for(var b=0,e=c.dm.length;b<e;b++){var d=c.dm[b];if(-1<d.indexOf("/")&&a.Ua(document.location.href,d))return d.replace(/^[^/]+(\/.*)/,"$1")+"/"}return"/"}};return h.X=d})();
+(function(){var a=mt.lang,b=mt.G,g=h.X,e={pageview:{},session:{},autoEventTracking:{},customEvent:{},user:{}},d={user:1,session:2,pageview:3,autoEventTracking:3,customEvent:3,others:3},n=["session","user"],f="Hm_up_"+c.id,l={init:function(){l.Yb()},Yb:function(){try{var d=b.parse(decodeURIComponent(g.getData(f)));a.d(d,"Object")&&(e.user=d)}catch(s){}},s:function(a){var b={};e[a]!==r&&(b=e[a]);a=this.ra();for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);return a},ra:function(){for(var a={},b,d=n.length-
+1;0<=d;d--){b=e[n[d]];for(var m in b)b.hasOwnProperty(m)&&(a[m]=b[m])}return a},setProperty:function(d,f,g){var m=e[d];if(a.d(m,"Object")&&a.d(f,"Object")){for(var x in f)if(f.hasOwnProperty(x)){var k=a.h(String(x));if(g||!/^_/.test(k)&&!/_$/.test(k)||/^(_iden|ei_|ec_|ex_|en_|et_|el_)$/.test(k)){var p=f[x];if(p==v)delete m[k];else{if(a.d(p,"Object")||a.d(p,"Array"))p=b.stringify(p);p=a.h(String(p));l.$b(d,k,p)&&(m[k]={value:p,scope:l.Oa(d)})}}}"user"===d&&l.Ba()}},n:function(b){b!==r&&("userId"===
+b&&a.d(e.user,"Object")?(delete e.user.uid_,l.Ba()):"user"===b&&a.d(e.user,"Object")?(b=e.user.uid_,e.user=b===r?{}:{uid_:b},l.Ba()):e[b]!==r&&(e[b]={}))},Ba:function(){try{g.setData(f,encodeURIComponent(b.stringify(e.user)),c.age)}catch(a){}},$b:function(a,b,d){var m=u,f=e[a];if(256<encodeURIComponent(String(b)).length||256<encodeURIComponent(String(d)).length)m=w;else{var k=f[b];f[b]={value:d,scope:l.Oa(a)};a=l.I(l.s(a));2048<encodeURIComponent(a).length&&(k!==r?f[b]=k:delete f[b],m=w)}return m},
+I:function(a){var b=[],e,m;for(m in a)a.hasOwnProperty(m)&&(e=[m,a[m].value],(1===a[m].scope||2===a[m].scope)&&e.push(a[m].scope),b.push(e.join("*")));return b.join("!")},Oa:function(a){a=d[a];return a!==r?a:d.others}};return h.L=l})();
+(function(){var a=mt.g,b=mt.lang,g=h.t,e=h.ka,d=h.L,n=d.I;if(b.isArray(c.cptrk)&&0<c.cptrk.length){var f={Za:{},ea:{},init:function(){for(var a,d=e.Z(c.cptrk)||[],g=0;g<d.length;g++)if(a=d[g],a.a!==r&&b.d(a.a,"Object")){a=a.a;for(var n in a)a.hasOwnProperty(n)&&(f.ea[n]=String(a[n]))}},Ya:function(){var b,e,d;for(d in f.ea)if(f.ea.hasOwnProperty(d)&&f.Za[d]===r&&(b=f.ea[d],b=a.na(b)))e=e===r?{}:e,e[d]=a.O(b,w),f.Za[d]=u;return e},ta:function(){var a=f.Ya();a&&f.jc(a)},Xb:function(){"MutationObserver"in
+window&&document.body?(new MutationObserver(f.ta)).observe(document.body,{childList:u,subtree:u}):window.setInterval(f.ta,15E3)},jc:function(a){if(b.d(a,"Object")){d.setProperty("pageview",a);a=h.c.b.p;var e=h.c.b.ep;h.c.b.et=9;h.c.b.ep="";h.c.b.p=n(d.s("pageview"));h.c.m();h.c.b.p=a;h.c.b.ep=e;d.n("pageview")}}};f.init();g.e("pv-b",function(){var a=f.Ya();a&&d.setProperty("pageview",a)});f.Xb();a.ec(f.ta)}})();
+(function(){var a=mt.lang,b=mt.g,g=h.ka,e={Y:function(a,n){return function(f){var l=f.target||f.srcElement;if(l){var q=g.Z(n)||[],s=l.getAttribute(a.fa);f=f.clientX+":"+f.clientY;if(s&&s===f)l.removeAttribute(a.fa);else if(0<q.length&&(l=b.Jb(l))&&l.length)if(q=l.length,s=l[l.length-1],1E4>q*s.split(">").length)for(s=0;s<q;s++)e.eb(a,l[s]);else e.eb(a,s)}}},eb:function(b,e){for(var f={},g=String(e).split(">").length,q=0;q<g;q++)f[e]="",e=e.substring(0,e.lastIndexOf(">"));b&&(a.d(b,"Object")&&b.Ka)&&
+b.Ka(f)},fc:function(a,b){return function(e){(e.target||e.srcElement).setAttribute(a.fa,e.clientX+":"+e.clientY);a&&a.o&&(b?a.o(b):a.o("#"+encodeURIComponent(this.id),e.type))}}};return h.ub=e})();
+(function(){var a=mt.g,b=mt.event,g=mt.lang,e=h.A,d=h.ka,n=h.ub,f=h.L,l=f.I,q={fa:"HM_ce",jb:function(){if(c.cetrk&&0<c.cetrk.length){b.e(document,"click",n.Y(q,c.cetrk));for(var e=d.Z(c.cetrk)||[],f=0,m=e.length;f<m;f++){var g=e[f],k=g.p||"";-1===k.indexOf(">")&&(0===k.indexOf("#")&&(k=k.substring(1)),(k=a.yb(k))&&b.e(k,"click",n.fc(q,g)))}}},Ka:function(a){for(var b=d.Z(c.cetrk)||[],e=0;e<b.length;e++){var f=b[e],k=q.Eb(f.p,a);k&&q.o(f,k)}},Eb:function(a,b){a=String(a);if(0<a.indexOf("*")){var e=
+RegExp("^"+a.replace(/\[/g,"\\[").replace(/\]/g,"\\]").replace(/\*/,"\\d+")+"$"),d;for(d in b)if(b.hasOwnProperty(d)&&e.test(d))return d;return v}return b.hasOwnProperty(a)?a:v},o:function(b,e){h.c.b.et=7;var d=b&&b.k||"",d=g.h(d),x={};if(b&&b.a&&g.d(b.a,"Object")){var k=b.a,p;for(p in k)if(k.hasOwnProperty(p)){var y=q.Kb(k[p]||"",e),y=y?a.O(y,w):"";x[p]=y}}x=q.Ab(x,e||b&&b.p);x._iden=d;f.setProperty("customEvent",x);h.c.b.ep="";h.c.b.p=l(f.s("customEvent"));h.c.m();h.c.b.p="";f.n("customEvent")},
+Ab:function(b,d){var m=a.na(d),f=e.Ga;m&&(c.aet&&c.aet.length?(b.ei_=a.getAttribute(m,f.id)||a.getAttribute(m,"id")||"",b.ec_=a.getAttribute(m,f.W)||a.getAttribute(m,"class")||"",b.ex_=a.getAttribute(m,f.V)||a.qa(m),b.en_=a.getAttribute(m,f.content)||a.O(m,u),b.et_=a.getAttribute(m,f.da)||a.P(m),b.el_=a.getAttribute(m,f.link)||a.getAttribute(m,"href")||""):(b.ex_=a.getAttribute(m,f.V)||a.qa(m),b.en_=a.getAttribute(m,f.content)||a.O(m,u)));return b},Kb:function(b,e){b=String(b);e=String(e);if(0<b.indexOf("*")){var d=
+/.*\[(\d+)\]$/.exec(e);b=b.replace("*",d?d[1]:"1")}return a.na(b)}};h.t.e("pv-b",q.jb);return q})();
+(function(){var a=mt.lang,b=mt.g,g=mt.event,e=mt.f,d=h.A,n=h.t,f=h.L,l=f.I,q=+new Date,s=[],t={Y:function(){return function(e){if(h.c&&h.c.R&&c.aet&&c.aet.length){var f=e.target||e.srcElement;if(f){var k=h.c.Ja,p=b.getAttribute(f,d.Ia)!=v?u:w;if(b.getAttribute(f,d.Ha)==v)if(p)t.ha(t.oa(f,e));else{var g=b.P(f);if(a.D(k,"*")||a.D(k,g))t.ha(t.oa(f,e));else for(;f.parentNode!=v;){var p=f.parentNode,g=b.P(p),z="a"===g&&a.D(k,"a")?u:w,g="button"===g&&a.D(k,"button")?u:w,A=b.getAttribute(p,d.Ia)!=v?u:w;
+if(b.getAttribute(p,d.Ha)==v&&(z||g||A)){t.ha(t.oa(p,e));break}f=f.parentNode}}}}}},oa:function(f,g){var k={},p=d.Ga;k.id=b.getAttribute(f,p.id)||b.getAttribute(f,"id")||"";k.W=b.getAttribute(f,p.W)||b.getAttribute(f,"class")||"";k.V=b.getAttribute(f,p.V)||b.qa(f);k.content=b.getAttribute(f,p.content)||b.O(f,u);k.da=b.getAttribute(f,p.da)||b.P(f);k.link=b.getAttribute(f,p.link)||b.getAttribute(f,"href")||"";k.type=g.type||"click";p=a.Ta(f.offsetTop)?f.offsetTop:0;"click"===g.type?p=e.Sa?g.clientY+
+Math.max(document.documentElement.scrollTop,document.body.scrollTop):g.pageY:"touchend"===g.type&&(g.Xa&&g.Xa.changedTouches)&&(p=g.Xa.changedTouches[0].pageY);k.qc=p;p=this.Db(g);k.ya=p.ya||0;k.Aa=p.Aa||0;k.Fa=p.Fa||0;k.sa=p.sa||0;k.Da=p.Da||"b";return k},Db:function(f){var d=f.target||f.srcElement,k;if(e.Sa){var p=Math.max(document.documentElement.scrollTop,document.body.scrollTop);k=Math.max(document.documentElement.scrollLeft,document.body.scrollLeft);k=f.clientX+k;f=f.clientY+p}else k=f.pageX,
+f=f.pageY;var g=p=0,z=0,A=0;if(d&&(p=d.offsetWidth||d.clientWidth,g=d.offsetHeight||d.clientHeight,A=b.Hb(d),z=A.left,A=A.top,a.d(d.getBBox,"Function")&&(g=d.getBBox(),p=g.width,g=g.height),"html"===(d.tagName||"").toLowerCase()))p=Math.max(p,d.clientWidth),g=Math.max(g,d.clientHeight);return{ya:Math.round(100*((k-z)/p)),Aa:Math.round(100*((f-A)/g)),Fa:p,sa:g,Da:("a"===(d.tagName||"").toLowerCase()?d:b.zb(d))?"a":"b"}},ha:function(b){var e=a.h;b=[+new Date-(h.c.S!==r?h.c.S:q),e(b.id),e(b.W),e(b.da),
+e(b.V),e(b.link),e(b.content),b.type,b.qc,b.ya,b.Aa,b.Fa,b.sa,b.Da].join("*");t.ia(b);a.d(this.U(),"Function")&&this.U()()},ia:function(a){var b=d.Ma;a.length>b||(encodeURIComponent(s.join("!")+a).length>b&&0<s.length&&(t.o(s.join("!")),s=[]),s.push(a))},o:function(a){h.c.b.et=5;h.c.b.ep=a;f.setProperty("autoEventTracking",{view_h_:e.C()},u);h.c.b.p=l(f.s("autoEventTracking"));h.c.m();h.c.b.p="";f.setProperty("autoEventTracking",{view_h_:v},u)},U:function(){return function(){s&&s.length&&(t.o(s.join("!")),
+s=[])}}};a.F(c.aet)&&""!==c.aet&&n.e("pv-b",function(){g.e(document,"click",t.Y());"ontouchend"in document&&g.e(window,"touchend",t.Y());g.e(window,"unload",t.U())});return t})();
+(function(){var a=mt.lang,b=mt.event,g=mt.f,e=h.A,d=h.t,n=h.L,f=n.I,l=+new Date,q=[],s=v,t={mb:function(){a.F(c.aet)&&""!==c.aet&&setInterval(t.cb,e.hc)},cb:function(){var a=g.C();0<a-h.c.b.vl&&(h.c.b.vl=a)}},m={tb:function(){return function(){h.c&&(h.c.R&&c.aet&&c.aet.length)&&(window.clearTimeout(s),s=window.setTimeout(function(){m.lb(g.C())},150))}},lb:function(a){m.ia([+new Date-(h.c.S!==r?h.c.S:l),a].join("*"))},ia:function(a){if(encodeURIComponent(q.join("!")+a).length>e.Ma||3<q.length)m.o(q.join("!")),
+q=[];q.push(a)},o:function(a){t.cb();h.c.b.et=6;h.c.b.vh=g.Pa();h.c.b.ep=a;n.setProperty("autoEventTracking",{view_h_:g.C()},u);h.c.b.p=f(n.s("autoEventTracking"));h.c.m();h.c.b.p="";n.setProperty("autoEventTracking",{view_h_:v},u)},U:function(){return function(){q&&q.length&&(m.o(q.join("!")),q=[])}}};a.F(c.aet)&&""!==c.aet&&d.e("pv-b",function(){b.e(window,"scroll",m.tb());b.e(window,"unload",m.U());t.mb()});return m})();
+(function(){function a(){return function(){h.c.b.nv=0;h.c.b.st=4;h.c.b.et=3;h.c.b.ep=h.la.Ib()+","+h.la.Fb();h.c.b.hca=c.hca;h.c.m()}}function b(){clearTimeout(z);var a;p&&(a="visible"==document[p]);y&&(a=!document[y]);l="undefined"==typeof a?u:a;if((!f||!q)&&l&&s)k=u,m=+new Date;else if(f&&q&&(!l||!s))k=w,x+=+new Date-m;f=l;q=s;z=setTimeout(b,100)}function g(a){var b=document,p="";if(a in b)p=a;else for(var e=["webkit","ms","moz","o"],f=0;f<e.length;f++){var d=e[f]+a.charAt(0).toUpperCase()+a.slice(1);
+if(d in b){p=d;break}}return p}function e(a){if(!("focus"==a.type||"blur"==a.type)||!(a.target&&a.target!=window))s="focus"==a.type||"focusin"==a.type?u:w,b()}var d=mt.event,n=h.t,f=u,l=u,q=u,s=u,t=+new Date,m=t,x=0,k=u,p=g("visibilityState"),y=g("hidden"),z;b();(function(){var a=p.replace(/[vV]isibilityState/,"visibilitychange");d.e(document,a,b);d.e(window,"pageshow",b);d.e(window,"pagehide",b);"object"==typeof document.onfocusin?(d.e(document,"focusin",e),d.e(document,"focusout",e)):(d.e(window,
+"focus",e),d.e(window,"blur",e))})();h.la={Ib:function(){return+new Date-t},Fb:function(){return k?+new Date-m+x:x}};n.e("pv-b",function(){d.e(window,"unload",a())});n.e("duration-send",a());n.e("duration-done",function(){m=t=+new Date;x=0});return h.la})();
+(function(){var a=mt.lang,b=h.A,g=h.load,e=h.X,d={Wb:function(d){if((window._dxt===r||a.d(window._dxt,"Array"))&&"undefined"!==typeof h.c){var f=e.$();g([b.protocol,"//datax.baidu.com/x.js?si=",c.id,"&dm=",encodeURIComponent(f)].join(""),d)}},pc:function(b){if(a.d(b,"String")||a.d(b,"Number"))window._dxt=window._dxt||[],window._dxt.push(["_setUserId",b])}};return h.rb=d})();
+(function(){function a(a,b,e,f){if(!(a===r||b===r||f===r)){if(""===a)return[b,e,f].join("*");a=String(a).split("!");for(var d,k=w,g=0;g<a.length;g++)if(d=a[g].split("*"),String(b)===d[0]){d[1]=e;d[2]=f;a[g]=d.join("*");k=u;break}k||a.push([b,e,f].join("*"));return a.join("!")}}function b(a){for(var f in a)if({}.hasOwnProperty.call(a,f)){var d=a[f];e.d(d,"Object")||e.d(d,"Array")?b(d):a[f]=String(d)}}var g=mt.url,e=mt.lang,d=mt.G,n=mt.f,f=h.A,l=h.t,q=h.rb,s=h.load,t=h.X,m=h.L,x=m.I,k={T:[],ca:0,va:w,
+z:{Ea:"",page:""},init:function(){k.i=0;m.init();l.e("pv-b",function(){k.sb();k.vb()});l.e("pv-d",function(){k.wb();k.z.page=""});l.e("stag-b",function(){h.c.b.api=k.i||k.ca?k.i+"_"+k.ca:"";h.c.b.ct=[decodeURIComponent(t.getData("Hm_ct_"+c.id)||""),k.z.Ea,k.z.page].join("!")});l.e("stag-d",function(){h.c.b.api=0;k.i=0;k.ca=0})},sb:function(){var a=window._hmt||[];if(!a||e.d(a,"Array"))window._hmt={id:c.id,cmd:{},push:function(){for(var a=window._hmt,b=0;b<arguments.length;b++){var p=arguments[b];
+e.d(p,"Array")&&(a.cmd[a.id].push(p),"_setAccount"===p[0]&&(1<p.length&&/^[0-9a-f]{31,32}$/.test(p[1]))&&(p=p[1],a.id=p,a.cmd[p]=a.cmd[p]||[]))}}},window._hmt.cmd[c.id]=[],window._hmt.push.apply(window._hmt,a)},vb:function(){var a=window._hmt;if(a&&a.cmd&&a.cmd[c.id])for(var b=a.cmd[c.id],e=/^_track(Event|MobConv|Order)$/,f=0,d=b.length;f<d;f++){var g=b[f];e.test(g[0])?k.T.push(g):k.Ca(g)}a.cmd[c.id]={push:k.Ca}},wb:function(){if(0<k.T.length)for(var a=0,b=k.T.length;a<b;a++)k.Ca(k.T[a]);k.T=v},Ca:function(a){var b=
+a[0];if(k.hasOwnProperty(b)&&e.d(k[b],"Function"))k[b](a)},_setAccount:function(a){1<a.length&&/^[0-9a-f]{31,32}$/.test(a[1])&&(k.i|=1)},_setAutoPageview:function(a){if(1<a.length&&(a=a[1],w===a||u===a))k.i|=2,h.c.Qa=a},_trackPageview:function(a){1<a.length&&(a[1].charAt&&"/"===a[1].charAt(0))&&(k.i|=4,h.c.b.sn=h.c.Na(),h.c.b.et=0,h.c.b.ep="",h.c.b.vl=n.C(),h.c.b.kb=0,h.c.ua?(h.c.b.nv=0,h.c.b.st=4):h.c.ua=u,k.va||(h.c.b.su=h.c.b.u||document.location.href),h.c.b.u=f.protocol+"//"+document.location.host+
+a[1],h.c.b.p=x(m.s("pageview")),h.c.m(),h.c.b.p="",h.c.S=+new Date,m.n("pageview"))},_trackEvent:function(a){2<a.length&&(k.i|=8,h.c.b.nv=0,h.c.b.st=4,h.c.b.et=4,h.c.b.ep=e.h(a[1])+"*"+e.h(a[2])+(a[3]?"*"+e.h(a[3]):"")+(a[4]?"*"+e.h(a[4]):""),h.c.b.p=x(m.ra()),h.c.m(),h.c.b.p="")},_setCustomVar:function(a){if(!(4>a.length)){var b=a[1],f=a[4]||3;if(0<b&&6>b&&0<f&&4>f){k.ca++;for(var d=(h.c.b.cv||"*").split("!"),g=d.length;g<b-1;g++)d.push("*");d[b-1]=f+"*"+e.h(a[2])+"*"+e.h(a[3]);h.c.b.cv=d.join("!");
+a=h.c.b.cv.replace(/[^1](\*[^!]*){2}/g,"*").replace(/((^|!)\*)+$/g,"");""!==a?t.setData("Hm_cv_"+c.id,encodeURIComponent(a),c.age):t.removeData("Hm_cv_"+c.id)}}},_setUserTag:function(b){if(!(3>b.length)){var f=e.h(b[1]);b=e.h(b[2]);if(f!==r&&b!==r){var d=decodeURIComponent(t.getData("Hm_ct_"+c.id)||""),d=a(d,f,1,b);t.setData("Hm_ct_"+c.id,encodeURIComponent(d),c.age)}}},_setVisitTag:function(b){if(!(3>b.length)){var f=e.h(b[1]);b=e.h(b[2]);if(f!==r&&b!==r){var d=k.z.Ea,d=a(d,f,2,b);k.z.Ea=d}}},_setPageTag:function(b){if(!(3>
+b.length)){var d=e.h(b[1]);b=e.h(b[2]);if(d!==r&&b!==r){var f=k.z.page,f=a(f,d,3,b);k.z.page=f}}},_setReferrerOverride:function(a){1<a.length&&(a=a[1],e.d(a,"String")?(h.c.b.su="/"===a.charAt(0)?f.protocol+"//"+window.location.host+a:a,k.va=u):k.va=w)},_trackOrder:function(a){a=a[1];e.d(a,"Object")&&(b(a),k.i|=16,h.c.b.nv=0,h.c.b.st=4,h.c.b.et=94,h.c.b.ep=d.stringify(a),h.c.b.p=x(m.ra()),h.c.m(),h.c.b.p="")},_trackMobConv:function(a){if(a={webim:1,tel:2,map:3,sms:4,callback:5,share:6}[a[1]])k.i|=
+32,h.c.b.et=93,h.c.b.ep=a,h.c.m()},_setDataxId:function(a){a=a[1];q.Wb();q.pc(a)},_setUserId:function(a){a=a[1];if(a!==r&&(e.F(a)||e.Ta(a))){var b=m.s("user").uid_;if(!(b&&b.value===e.h(String(a)))){var b=h.c.b.p,f=h.c.b.ep;h.c.b.et=8;h.c.b.ep="";h.c.b.p="uid_*"+e.h(String(a));h.c.m();var d={};d.uid_=a;m.setProperty("user",d,u);h.c.b.p=b;h.c.b.ep=f}}},_clearUserId:function(a){1<a.length&&u===a[1]&&m.n("userId")},_setUserProperty:function(a){a=a[1];e.d(a,"Object")&&m.setProperty("user",a)},_clearUserProperty:function(a){1<
+a.length&&u===a[1]&&m.n("user")},_setSessionProperty:function(a){a=a[1];e.d(a,"Object")&&m.setProperty("session",a)},_clearSessionProperty:function(a){1<a.length&&u===a[1]&&m.n("session")},_setPageviewProperty:function(a){a=a[1];e.d(a,"Object")&&m.setProperty("pageview",a)},_clearPageviewProperty:function(a){1<a.length&&u===a[1]&&m.n("pageview")},_setAutoEventTrackingProperty:function(a){a=a[1];e.d(a,"Object")&&m.setProperty("autoEventTracking",a)},_clearAutoEventTrackingProperty:function(a){1<a.length&&
+u===a[1]&&m.n("autoEventTracking")},_setAutoTracking:function(a){if(1<a.length&&(a=a[1],w===a||u===a))h.c.Ra=a},_setAutoEventTracking:function(a){if(1<a.length&&(a=a[1],w===a||u===a))h.c.R=a},_trackPageDuration:function(a){1<a.length?(a=a[1],2===String(a).split(",").length&&(h.c.b.et=3,h.c.b.ep=a,h.c.m())):l.K("duration-send");l.K("duration-done")},_require:function(a){1<a.length&&(a=a[1],f.ob.test(g.Q(a))&&s(a))},_providePlugin:function(a){if(1<a.length){var b=window._hmt,d=a[1];a=a[2];if(e.D(f.$a,
+d)&&e.d(a,"Function")&&(b.plugins=b.plugins||{},b.H=b.H||{},b.plugins[d]=a,b.w=b.w||[],a=b.w.slice(),d&&a.length&&a[0][1]===d))for(var g=0,k=a.length;g<k;g++){var l=a[g][2]||{};if(b.plugins[d]&&!b.H[d])b.H[d]=new b.plugins[d](l),b.w.shift();else break}}},_requirePlugin:function(a){if(1<a.length){var b=window._hmt,d=a[1],g=a[2]||{};if(e.D(f.$a,d))if(b.plugins=b.plugins||{},b.H=b.H||{},b.plugins[d]&&!b.H[d])b.H[d]=new b.plugins[d](g);else{b.w=b.w||[];for(var g=0,l=b.w.length;g<l;g++)if(b.w[g][1]===
+d)return;b.w.push(a);k._require([v,f.dc+d+".js"])}}},_trackCustomEvent:function(a){if(1<a.length){var b=a[1];a=a[2];e.d(a,"Object")||(a={});a._iden=b;m.setProperty("customEvent",a);h.c.b.et=7;h.c.b.ep="";h.c.b.p=x(m.s("customEvent"));h.c.m();h.c.b.p="";m.n("customEvent")}}};k.init();h.pb=k;return h.pb})();
+(function(){var a=h.t;c.spa!==r&&"1"===String(c.spa)&&(window._hmt=window._hmt||[],window._hmt.push(["_requirePlugin","UrlChangeTracker"]),a.e("pv-b",function(){""!==window.location.hash&&(h.c.b.u=window.location.href)}))})();
+(function(){function a(){"undefined"===typeof window["_bdhm_loaded_"+c.id]&&(window["_bdhm_loaded_"+c.id]=u,this.b={},this.Ra=this.Qa=u,this.R=k.R,this.Ja=d.F(c.aet)&&0<c.aet.length?c.aet.split(","):"",this.ua=w,this.init())}var b=mt.url,g=mt.fb,e=mt.gb,d=mt.lang,n=mt.cookie,f=mt.f,l=mt.sessionStorage,q=mt.G,s=mt.event,t=h.X,m=h.L,x=m.I,k=h.A,p=h.load,y=h.t;a.prototype={aa:function(a){for(var e=0;e<c.dm.length;e++)if(-1<c.dm[e].indexOf("/")){if(b.Ua(a,c.dm[e]))return u}else{var d=b.Q(a);if(d&&b.wa(d,
+c.dm[e]))return u}return w},Mb:function(){if(!document.referrer)return k.J-k.M>c.vdur?1:4;var a=w;this.aa(document.referrer)&&this.aa(document.location.href)?a=u:(a=b.Q(document.referrer),a=b.wa(a||"",document.location.hostname));return a?k.J-k.M>c.vdur?1:4:3},mc:function(){var a,b,e,d,f,g;k.M=t.getData("Hm_lpvt_"+c.id)||0;13===k.M.length&&(k.M=Math.round(k.M/1E3));b=this.Mb();a=4!==b?1:0;if(g=t.getData("Hm_lvt_"+c.id)){d=g.split(",");for(f=d.length-1;0<=f;f--)13===d[f].length&&(d[f]=""+Math.round(d[f]/
+1E3));for(;2592E3<k.J-d[0];)d.shift();f=4>d.length?2:3;for(1===a&&d.push(k.J);4<d.length;)d.shift();g=d.join(",");d=d[d.length-1]}else g=k.J,d="",f=1;this.Zb()?(t.setData("Hm_lvt_"+c.id,g,c.age),t.setData("Hm_lpvt_"+c.id,k.J),e=n.ac(t.$(),t.ma())):this.xb();if(0===c.nv&&this.aa(document.location.href)&&(""===document.referrer||this.aa(document.referrer)))a=0,b=4;this.b.nv=a;this.b.st=b;this.b.cc=e;this.b.lt=d;this.b.lv=f},Zb:function(){var a=b.Q(document.location.href);return!d.D("sjh.baidu.com isite.baidu.com ls.wejianzhan.com bs.wejianzhan.com product.weijianzhan.com qianhu.weijianzhan.com aisite.wejianzhan.com".split(" "),
+a)},xb:function(){for(var a=document.cookie.split(";"),b=0;b<a.length;b++){var d=a[b].split("=");d.length&&/Hm_(up|ct|cv|lp?vt)_[0-9a-f]{31}/.test(String(d[0]))&&t.removeData(d[0]);d.length&&/Hm_ck_[0-9]{13}/.test(String(d[0]))&&t.removeData(d[0])}},lc:function(){for(var a=[],b=this.b.et,d=0,e=k.hb.length;d<e;d++){var f=k.hb[d],g=this.b[f];"undefined"!==typeof g&&""!==g&&("tt"!==f||"tt"===f&&0===b)&&("ct"!==f||"ct"===f&&0===b)&&a.push(f+"="+encodeURIComponent(g))}return a.join("&")},nc:function(){this.mc();
+this.b.si=c.id;this.b.sn=this.Na();this.b.su=document.referrer;this.b.ds=f.gc;this.b.cl=f.colorDepth+"-bit";this.b.ln=String(f.language).toLowerCase();this.b.ja=f.javaEnabled?1:0;this.b.ck=f.cookieEnabled?1:0;this.b.lo="number"===typeof _bdhm_top?1:0;this.b.fl=e.Ob();this.b.v="1.2.89";this.b.cv=decodeURIComponent(t.getData("Hm_cv_"+c.id)||"");this.b.tt=document.title||"";this.b.vl=f.C();var a=document.location.href;this.b.cm=b.j(a,k.Tb)||"";this.b.cp=b.j(a,k.Ub)||b.j(a,k.uc)||"";this.b.cw=b.j(a,k.Sb)||
+b.j(a,k.wc)||"";this.b.ci=b.j(a,k.Qb)||b.j(a,k.tc)||"";this.b.cf=b.j(a,k.Vb)||b.j(a,k.vc)||"";this.b.cu=b.j(a,k.Rb)||b.j(a,k.sc)||"";/https?:/.test(document.location.protocol)&&(this.b.u=a)},init:function(){try{this.nc(),0===this.b.nv?this.kc():this.La(),h.c=this,this.qb(),this.bc(),y.K("pv-b"),this.ic()}catch(a){var b=[];b.push("si="+c.id);b.push("n="+encodeURIComponent(a.name));b.push("m="+encodeURIComponent(a.message));b.push("r="+encodeURIComponent(document.referrer));g.log(k.xa+"//"+k.ab+"?"+
+b.join("&"))}},ic:function(){function a(){y.K("pv-d")}this.Qa?(this.ua=u,this.b.et=0,this.b.ep="",this.b.p=x(m.s("pageview")),this.b.vl=f.C(),this.m(a),this.b.p=""):a();this.S=+new Date;m.n("pageview")},m:function(a){if(this.Ra){var b=this;b.b.rnd=Math.round(Math.random()*k.za);b.b.r=f.orientation;b.b.ww=f.ib;y.K("stag-b");var e=k.xa+"//"+k.ab+"?"+b.lc();y.K("stag-d");b.nb(e);g.log(e,function(e){b.bb(e);d.d(a,"Function")&&a.call(b)})}},qb:function(){try{if(window.postMessage&&window.self!==window.parent){var a=
+this;s.e(window,"message",function(d){if(b.Q(d.origin)===k.rc){d=d.data||{};var e=d.jn||"",f=/^customevent$|^heatmap$|^pageclick$|^select$/.test(e);if(RegExp(c.id).test(d.sd||"")&&f)a.b.rnd=Math.round(Math.random()*k.za),p(k.protocol+"//"+c.js+e+".js?"+a.b.rnd)}});window.parent.postMessage({id:c.id,url:document.location.href,status:"__Messenger__hmLoaded"},"*")}}catch(d){}},bc:function(){try{if(window.self===window.parent){var a=document.location.href,d=b.j(a,"baidu-analytics-token"),e=b.j(a,"baidu-analytics-jn");
+/^[a-f0-9]{32}\/?$/.test(d)&&/^overlay\/?$/.test(e)&&p(k.protocol+"//"+c.js+e+".js?"+Math.round(Math.random()*k.za))}}catch(f){}},nb:function(a){var b;try{b=q.parse(l.get("Hm_unsent_"+c.id)||"[]")}catch(d){b=[]}var e=this.b.u?"":"&u="+encodeURIComponent(document.location.href);b.push(a.replace(/^https?:\/\//,"")+e);l.set("Hm_unsent_"+c.id,q.stringify(b))},bb:function(a){var b;try{b=q.parse(l.get("Hm_unsent_"+c.id)||"[]")}catch(d){b=[]}if(b.length){a=a.replace(/^https?:\/\//,"");for(var e=0;e<b.length;e++)if(a.replace(/&u=[^&]*/,
+"")===b[e].replace(/&u=[^&]*/,"")){b.splice(e,1);break}b.length?l.set("Hm_unsent_"+c.id,q.stringify(b)):this.La()}},La:function(){l.remove("Hm_unsent_"+c.id)},kc:function(){var a=this,b;try{b=q.parse(l.get("Hm_unsent_"+c.id)||"[]")}catch(d){b=[]}if(b.length)for(var e=function(b){g.log(k.xa+"//"+b,function(b){a.bb(b)})},f=0;f<b.length;f++)e(b[f])},Na:function(){return Math.round(+new Date/1E3)%65535}};return new a})();var B=h.A,C=h.load;
+c.pt&&C([B.protocol,"//ada.baidu.com/phone-tracker/insert_bdtj?sid=",c.pt].join(""));})();

Разлика између датотеке није приказан због своје велике величине
+ 4 - 0
public/assets/code/iconfont.css


+ 569 - 0
public/assets/code/index.css

@@ -0,0 +1,569 @@
+body {
+	background-color: #fff;
+}
+.visible-hide{
+	visibility: hidden;
+}
+img{
+	display: block;
+	width: 100%;
+}
+footer {
+	position: fixed;
+	width: 100%;
+	margin: 0 auto;
+	text-align: center;
+	bottom: 0;
+	background: #0061a8;
+	color: #FFFFFF;
+	font-size: 0.37rem;
+	z-index: 999;
+	padding: 0.33rem 0;
+}
+
+footer p {
+	line-height: 1.5;
+}
+
+footer p  a{
+	color: #fff;
+}
+
+.sy-wechat{
+	width: 3.86rem;
+	height: 3.86rem;
+	margin: auto;
+	text-align: center;
+}
+.r-w {
+	display: inline-block;
+	width: 1.58rem;
+	text-align: justify;
+	vertical-align: middle;
+	height: 0.5rem;
+	line-height: 0.5rem;
+}
+.r-w:after {
+	content: "";
+	display: inline-block;
+	width: 100%;
+}
+.wrap {
+	padding-bottom: 15%;
+}
+
+em,
+font {
+	color: #0a4e99;
+}
+
+.color {
+	color: #0061a8;
+}
+
+.marginbtm {
+	margin-bottom: 0.25rem;
+}
+
+.header .logo a {
+	position: absolute;
+	left: 0.2rem;
+	top: 0.46rem;
+	width: 0.6rem;
+	height: 0.6rem;
+	background: url(../images/back.png) top center no-repeat;
+	background-size: cover;
+	margin-right: 0.5rem;
+}
+/*防伪溯源*/
+
+.header {
+	width: 10rem;
+	margin: 0 auto;
+	text-align: center;
+	background: #0061a8;
+}
+
+/************************轮播banner样式部分**********************/
+#banner {
+	position: relative;
+	width: 10rem;
+	height: 4.22rem;
+	overflow: hidden;
+}
+
+#banner .swiper-slide {
+	position: relative;
+	text-align: center;
+}
+
+#banner img {
+	max-width: 100%;
+	height: 5.86rem;
+}
+
+.pagination {
+	position: absolute;
+	z-index: 20;
+	bottom: 6px;
+	width: 66px;
+	text-align: center;
+	right: 0;
+	margin: 0;
+}
+
+.swiper-container-horizontal>.swiper-pagination-bullets {
+	bottom: 0.08rem !important;
+}
+
+.swiper-pagination-bullet {
+	display: inline-block;
+	width: 12px;
+	height: 6px;
+	border-radius: 10px;
+	/* border: solid 2px #fff; */
+	background: #fff;
+	margin: 0 1px;
+	opacity: 0.8;
+	cursor: pointer;
+	transition: all 0.5s;
+}
+
+.swiper-pagination-bullet-active {
+	background: #29529b;
+}
+
+.header .logo {
+	width: 10rem;
+	margin: auto;
+	text-align: center;
+	height:1.65rem;
+	line-height: 1.65rem;
+	padding-top: 0.21rem;
+}
+.header .logo img{
+	width: 7.84rem;
+	height: 1.22rem;
+	line-height: 1.22rem;
+	margin: auto;
+	text-align: center;
+	vertical-align: middle;
+}
+.head-h3 {
+	width: 3.54rem;
+	margin: 0.5rem auto 0;
+	height: 0.96rem;
+	line-height: 0.96rem;
+	font-size: 0.4rem;
+	background: #0061a8;
+	color: #fff;
+	text-align: center;
+	border-radius: 50px;
+}
+
+.head-h3 img {
+	vertical-align: middle;
+}
+
+.head-title {
+	width: 4.72rem;
+	height: 0.96rem;
+	margin: 0.5rem auto;
+}
+
+.sycont {
+	width: 9.42rem;
+	margin: 0 auto 0.33rem;
+	padding: 0.33rem 0;
+	/*border: solid 1px #0061a8;*/
+	border-radius: 8px;
+	position: relative;
+	overflow: hidden;
+	background:#f6f6f6;
+}
+.qwrz {
+    position: absolute;
+    top: 0;
+    right: 0;
+    width: 1.42rem;
+    height: 1.42rem;
+}
+
+
+.click-btn{
+	display: inline-block;
+	background: #0061a8;
+	color: #fff !important;
+	border-radius: 5px;
+	padding: 0.05rem;
+	font-size: 0.34rem;
+	float: right;
+}
+.click-btn:active{
+	opacity: 0.8;
+}
+
+
+.sydetail p,
+.sycont p {
+	font-size: 0.37rem;
+	line-height: 1.5;
+	padding: 0 0.33rem;
+}
+.sydetail p{
+	margin-bottom: 0.2rem;
+}
+
+.sycont .cxbtn {
+	float: right;
+	color: #fff;
+	background: #0061a8;
+	border-radius: 5px;
+	width: 1.73rem;
+	height: 0.5rem;
+	line-height: 0.5rem;
+	font-size: 0.34rem;
+	text-align: center;
+}
+
+.sycont .cxbtn:active {
+	opacity: 0.8;
+}
+
+.sydetail {
+	width: 10rem;
+	margin: 0 auto 0.2rem;
+	padding: 0.33rem 0;
+	position: relative;
+}
+
+.sydetail .sydetail-h3 {
+	width: 10rem;
+	height: 1.08rem;
+	line-height: 1.08rem;
+	margin: 0 auto 0.5rem;
+	text-align: center;
+	background: #0061a8;
+	color: #fff;
+	font-size: 0.4rem;
+	position: relative;
+}
+
+
+/*产品系列*/
+
+.procont {
+	width: 100%;
+}
+
+.syright {
+	display: inline-table;
+	width: 6.9rem;
+	vertical-align: top;
+}
+
+.syright1 {
+	display: inline-table;
+	width: 3.2rem;
+	vertical-align: top;
+}
+
+.syright2 {
+	display: inline-table;
+	width: 6.15rem;
+	vertical-align: top;
+}
+
+.nav {
+	width: 10rem;
+	margin: 0.5rem auto;
+	display: flex;
+	align-items: center;
+	justify-items: center;
+	padding: 0 0.25rem;
+}
+
+.nav a {
+	flex: 1;
+	display: block;
+	text-align: center;
+	color: #fff;
+	margin: 0 0.5rem;
+	background: #0061a8;
+	padding: 0.35rem;
+	border-radius: 15px;
+ 	box-shadow:2px 2px 5px #333;
+ 	transition: all 0.2s inline; 
+}
+.nav a .nav-img{
+	width: 0.68rem;
+ 	height: 0.68rem;
+	text-align: center;
+	margin: auto;
+}
+.nav a .nav-img img{
+	display: block;
+	width: 100%;
+}
+.nav a p {
+	line-height: 1.8;
+	font-size: 0.34rem;
+}
+
+.nav a:active {
+	opacity: 0.8;
+}
+
+
+/*tab*/
+
+.tab-content {
+	width: 9.44rem;
+	margin: 0 auto;
+}
+
+.tab-menu {
+	width: 100%;
+	margin: 0 auto;
+	height: 0.88rem;
+	line-height: 0.88rem;
+	border: 1px solid #d2d2d2;
+	color: #333;
+	transform: skew(-20deg);
+	display: table;
+}
+
+.tab-menu a {
+	display: table-cell;
+	width: 1%;
+	transform: skew(20deg);
+	position: relative;
+	text-align: center;
+	color: #7c7c7c;
+	font-size: 0.48rem;
+}
+
+.tab-menu a i {
+	display: inline-block;
+	margin-right: 0.2rem;
+}
+
+.tab-menu a:after {
+	content: "/";
+	position: absolute;
+	right: 0;
+}
+
+.tab-menu a:last-child:after {
+	display: none;
+}
+
+.tab-item {
+	height: 3.94rem;
+	display: none;
+}
+
+.active {
+	color: #0061a8 !important;
+}
+
+
+/*公司介绍*/
+
+.gs-cont {
+	width: 9.44rem;
+	margin: 0 auto;
+	font-size: 0.36rem;
+}
+
+.gs-cont h3 {
+	width: 6.61rem;
+	height: 0.73rem;
+	margin: 0.5rem auto;
+}
+
+.gs-cont p {
+	line-height: 1.5;
+}
+
+.gs-cont p a {
+	color: #961212;
+}
+
+.cont {
+	width: 100%;
+	margin: 0 auto;
+}
+
+.cont p {
+	padding: 0 0.33rem;
+	margin-bottom: 0.2rem;
+}
+
+.sydetail p a {
+	color: #000;
+}
+
+/************  合格证书 承诺  **************/
+.hgzs-box{
+	width: 98%;
+	margin: auto;
+	padding: 0.33rem;
+	border-radius: 5px;
+	box-shadow: 1px 1px 1px #ddd, -1px -1px 1px #ddd;
+	font-size: 0.37rem;
+}
+.cn-title{width: 100%; margin-bottom: 0.2rem;font-size: 0.4rem;color: #0061a8;text-align: center;}
+.hgzs-box p{margin-bottom: 0.2rem;}
+.hgzs-box ul li{font-size: 0.34rem;}
+.hgzs-box ul li:last-child{margin: 0.26rem 0.66rem;}
+.checkedBox{margin: 0 4px;}
+/****BEGIN checkbox 样式****/
+/* Checkmark style starts */
+@-moz-keyframes dothabottomcheck {
+  0% {
+    height: 0;
+  }
+
+  100% {
+    height: 8px;
+  }
+}
+@-webkit-keyframes dothabottomcheck {
+  0% {
+    height: 0;
+  }
+
+  100% {
+    height: 8px;
+  }
+}
+@keyframes dothabottomcheck {
+  0% {
+    height: 0;
+  }
+
+  100% {
+    height: 8px;
+  }
+}
+@keyframes dothatopcheck {
+  0% {
+    height: 0;
+  }
+
+  50% {
+    height: 0;
+  }
+
+  100% {
+    height: 15px;
+  }
+}
+@-webkit-keyframes dothatopcheck {
+  0% {
+    height: 0;
+  }
+
+  50% {
+    height: 0;
+  }
+
+  100% {
+    height: 15px;
+  }
+}
+@-moz-keyframes dothatopcheck {
+  0% {
+    height: 0;
+  }
+
+  50% {
+    height: 0;
+  }
+
+  100% {
+    height: 15px;
+  }
+}
+input[type=checkbox] {
+  display: none;
+}
+.check-box {
+  height: 14px;
+  width: 14px;
+  background-color: transparent;
+  border: 1px solid black;
+  border-radius: 3px;
+  position: relative;
+  display: inline-block;
+  -moz-box-sizing: border-box;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  -moz-transition: border-color ease 0.2s;
+  -o-transition: border-color ease 0.2s;
+  -webkit-transition: border-color ease 0.2s;
+  transition: border-color ease 0.2s;
+  cursor: pointer;
+  vertical-align: middle;
+}
+.check-box::before, .check-box::after {
+  -moz-box-sizing: border-box;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  position: absolute;
+  height: 0;
+  width: 2px;
+  background-color: #0061a8;
+  display: inline-block;
+  -moz-transform-origin: left top;
+  -ms-transform-origin: left top;
+  -o-transform-origin: left top;
+  -webkit-transform-origin: left top;
+  transform-origin: left top;
+  border-radius: 5px;
+  content: ' ';
+  -webkit-transition: opacity ease .5;
+  -moz-transition: opacity ease .5;
+  transition: opacity ease .5;
+}
+.check-box::before {
+  top: 10px;
+  left: 8px;
+  /* box-shadow: 0 0 0 5px #667788; */
+  -moz-transform: rotate(-135deg);
+  -ms-transform: rotate(-135deg);
+  -o-transform: rotate(-135deg);
+  -webkit-transform: rotate(-135deg);
+  transform: rotate(-135deg);
+}
+.check-box::after {
+  top: 4px;
+  left: 2px;
+  -moz-transform: rotate(-45deg);
+  -ms-transform: rotate(-45deg);
+  -o-transform: rotate(-45deg);
+  -webkit-transform: rotate(-45deg);
+  transform: rotate(-45deg);
+}
+
+input[type=checkbox]:checked + .check-box,
+.check-box.checked {
+  border-color: #0061a8;
+}
+input[type=checkbox]:checked + .check-box::after,
+.check-box.checked::after {
+  height: 14px;
+  -moz-animation: dothabottomcheck 0.2s ease 0s forwards;
+  -o-animation: dothabottomcheck 0.2s ease 0s forwards;
+  -webkit-animation: dothabottomcheck 0.2s ease 0s forwards;
+  animation: dothabottomcheck 0.2s ease 0s forwards;
+}
+input[type=checkbox]:checked + .check-box::before,
+.check-box.checked::before {
+  height: 0.8rem;
+  -moz-animation: dothatopcheck 0.4s ease 0s forwards;
+  -o-animation: dothatopcheck 0.4s ease 0s forwards;
+  -webkit-animation: dothatopcheck 0.4s ease 0s forwards;
+  animation: dothatopcheck 0.4s ease 0s forwards;
+}

Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
public/assets/code/jquery-1.8.3.min.js


BIN
public/assets/code/logo.png


BIN
public/assets/code/map.jpg


BIN
public/assets/code/menu1.png


BIN
public/assets/code/menu2.png


BIN
public/assets/code/menu3.png


BIN
public/assets/code/qwrz.png


+ 203 - 0
public/assets/code/reset.css

@@ -0,0 +1,203 @@
+@charset"utf-8";
+/*
+*Name: CSS Reset.
+* Author:huzhangjun
+* Time:2017-04-17
+*/
+
+/* Reset default browser CSS. */
+*{
+	margin:0;
+	padding:0;
+	-webkit-box-sizing: border-box;
+    box-sizing: border-box;
+    outline: none;
+}
+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;
+}
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+	display: block;
+}
+
+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;
+}
+
+html {
+	font-family: sans-serif;
+    -webkit-text-size-adjust: 100%;/*旋转屏幕时,字体大小调整的问题*/
+    box-sizing: border-box;
+    overflow-x: hidden;
+    background: #fff;
+}
+
+body{
+	padding-top: constant(safe-area-inset-top);
+    padding-right: constant(safe-area-inset-right);
+    padding-bottom: constant(safe-area-inset-bottom);
+    padding-left: constant(safe-area-inset-left);}
+body {
+	font-family:/*"Helvetica Neue",Helvetica,STHeiTi,sans-serif;*/-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif;
+	line-height: 1.5;
+	font-size:14px;
+	color:#333;
+	height: 100%;
+	-webkit-touch-callout: none;/*禁止系统默认菜单弹出 behavior允许弹出*/
+	-webkit-overflow-scrolling: touch; /*touch 当手指从触摸屏上移开,会保持一段时间的滚动 auto时:滚动会立即停止 */
+	-webkit-tap-highlight-color: rgba(0,0,0,0.3);/*解决ios半透明的灰色背景*/
+	 overflow-scrolling: touch;/*上下拉动滚动条时卡顿、慢*/
+	 -webkit-user-select: none;/*用于设置用户是否能够选中文本  | text | all | element  IE浏览器下是通过 onselectstart=”javascript:return false;”*/
+	-moz-user-select: none;
+	-khtml-user-select: none;
+	user-select: none;/*禁止复制、选中文本*/
+	-webkit-appearance: none;/*去除系统默认appearance的样式,常用于IOS下移除原生样式*/
+	border-width: medium;/*thin定义细的边框。medium默认定义中等的边框。thick定义粗的边框。length允许您自定义边框的宽度。 inherit规定应该从父元素继承边框宽度。*/
+	-webkit-font-smoothing: antialiased;/*字体抗锯齿,使用后字体看起来会更清晰*/
+	-moz-osx-font-smoothing: grayscale;/*Gecko字体抗锯齿,使用后字体看起来会更清晰*/
+	overflow-x: hidden;
+}
+
+
+a {
+    text-decoration: none;
+    color: #000;
+    -webkit-tap-highlight-color: transparent;/*解决ios半透明的灰色背景*/
+}
+
+/*滑动条srollStyle*/
+::-webkit-scrollbar {
+    width: 2px;
+    height:2px;
+}
+
+::-webkit-scrollbar-track-piece {
+    background-color: rgba(0, 0, 0, 0.2);
+    -webkit-border-radius: 6px;
+}
+
+::-webkit-scrollbar-thumb:vertical {
+    height: 2px;
+    background-color: rgba(125, 125, 125, 0.7);
+    -webkit-border-radius: 6px;
+}
+
+::-webkit-scrollbar-thumb:horizontal {
+    width: 2px;
+    background-color: rgba(125, 125, 125, 0.7);
+    -webkit-border-radius: 6px;
+}
+
+
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+    -webkit-appearance: button;
+    cursor: pointer;
+}
+
+input[type="checkbox"],
+input[type="radio"] {
+    box-sizing: border-box;
+}
+
+input[type="text"],
+input[type="search"],
+input[type="email"],
+input[type="tel"],
+input[type="url"],
+input[type="date"],
+input[type="datetime-local"],
+input[type="time"],
+input[type="number"],
+select,textarea {
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  -ms-appearance: none;
+  appearance: none;
+  box-sizing: border-box;
+  border: none;
+  background: none;
+  border-radius: 0 0 0 0;
+  box-shadow: none;
+}
+
+a,
+input,
+textarea,
+select,
+button {
+    outline: 0;
+}
+
+i, em {font-style: normal;}
+
+div{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
+
+/*** Utility Classes ***/
+input:focus,button:focus,select:focus,textarea:focus{outline: none;}
+
+/* ios系统中元素被触摸时产生的半透明灰色遮罩怎么去掉*/
+button,input,textarea{-webkit-tap-highlight-color: rgba(0,0,0,0);-webkit-appearance: none;border: 0; }
+
+/* 部分android系统中元素被点击时产生的边框怎么去掉*/
+button,input,textarea{
+	-webkit-tap-highlight-color: rgba(0,0,0,0;);
+	-webkit-user-modify:read-write-plaintext-only;
+}
+
+/*webkit表单输入框placeholder的颜色值改变*/
+input::-webkit-input-placeholder{color:#AAAAAA;}
+input:focus::-webkit-input-placeholder{color:#EEEEEE;}
+
+/*webkit表单元素的默认外观重置*/
+.app{-webkit-appearance:none;}
+
+/*伪元素改变number类型input框的默认样式*/
+input[type=number]::-webkit-textfield-decoration-container {background-color: transparent;    }
+input[type=number]::-webkit-inner-spin-button {-webkit-appearance: none;}
+input[type=number]::-webkit-outer-spin-button {-webkit-appearance: none;}
+
+/*禁用 select 默认下拉箭头*/
+select::-ms-expand {display: none;}
+
+/*禁用PC端表单输入框默认清除按钮*/
+input[type=text]::-ms-clear,input[type=tel]::-ms-clear,input[type=number]::-ms-clear{display: none;}
+
+/*禁用 radio 和 checkbox 默认样式*/
+input[type=radio]::-ms-check,input[type=checkbox]::-ms-check{display: none;}
+
+ /*去掉苹果默认样式*/
+input{-webkit-appearance: none;border: none;box-sizing: border-box;font-family: "Consolas",Microsoft Yahei;}
+input[type="button"],input[type="submit"]{ cursor: pointer;}
+img{vertical-align: bottom;  border: none;}
+em,i{ font-style: normal;}
+::selection{background: #333;color: #fff;}

Разлика између датотеке није приказан због своје велике величине
+ 14 - 0
public/assets/code/swiper.min.css


Разлика између датотеке није приказан због своје велике величине
+ 14 - 0
public/assets/code/swiper.min.js


BIN
public/assets/code/yun.png


BIN
public/assets/code/zzry.jpg


BIN
public/assets/code/zzry1.jpg


Неке датотеке нису приказане због велике количине промена