diff --git a/.gitignore b/.gitignore
index 63fc54f..fe76a73 100644
--- a/.gitignore
+++ b/.gitignore
@@ -41,4 +41,4 @@ captures/
# Keystore files
-*.jks
+# *.jks
\ No newline at end of file
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..d00fcab
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,22 @@
+pipeline {
+ agent any
+ stages {
+ stage('echoHello') {
+ steps {
+ sh 'echo \'hello\''
+ }
+ }
+ stage('cleanBuild') {
+ steps {
+ sh './gradlew clean sonarqube build'
+ }
+ }
+ }
+ post {
+ success {
+ archiveArtifacts(artifacts: 'output/*.apk', fingerprint: true)
+
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 40fe932..11baa69 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,14 +3,31 @@
buildscript {
apply from: 'versions.gradle'
addRepos(repositories)
+ repositories {
+ // 添加库路径,实际项目中原来此处可能还有别的库,在此位置追加。追加库的位置可能会导致项目报错(找不到某些依赖的错误),先插入到最前面不行再往后一行行移动,一个个的试,具体原因还没来得及探究
+ maven {
+ url "https://plugins.gradle.org/m2/"
+ }
+ }
dependencies {
/* classpath deps.android_gradle_plugin*/
classpath deps.android_gradle_plugin
classpath deps.kotlin.plugin
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
+ //在此位置追加以下依赖行
+ classpath("org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6-rc1")
+
}
}
+// [sonar]plugins段放置位置有要示,放在buildscript段前面会报错,放到文件最末尾也报错,紧跟buildscript放置OK,其余位置没有偿试
+plugins {
+ // 添加插件信息
+ id "org.sonarqube" version "2.6-rc1"
+}
+//[sonar]声明插件
+apply plugin: 'org.sonarqube'
+
allprojects {
addRepos(repositories)
@@ -35,4 +52,19 @@ allprojects {
task clean(type: Delete) {
delete rootProject.buildDir
-}
\ No newline at end of file
+}
+
+
+//[sonar]属性
+sonarqube {
+ properties {
+ property "sonar.sourceEncoding", "UTF-8"
+ }
+}
+subprojects{
+ sonarqube{
+ properties{
+ property "sonar.sources", "src/main/java"
+ }
+ }
+}
diff --git a/config/pmd/ali-pmd.xml b/config/pmd/ali-pmd.xml
new file mode 100644
index 0000000..13dcd93
--- /dev/null
+++ b/config/pmd/ali-pmd.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gradle.properties b/gradle.properties
index 9b51cd5..19d84ab 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -18,9 +18,17 @@ org.gradle.jvmargs=-Xmx2048m
org.gradle.daemon=true
org.gradle.configureondemand=true
org.gradle.parallel=true
-# ֵһAndroidStudio汾һ
+# ���ֵһ������AndroidStudio�汾��һ��
localGradlePluginVersion=3.0.1
-# ÿθġisModuleֵҪ "Sync Project" ť
-# isModuleǡɿģʽ͡ģʽл
+# ÿ�θ��ġ�isModule����ֵ����Ҫ��� "Sync Project" ��ť
+# isModule�ǡ����ɿ���ģʽ���͡��������ģʽ�����л�����
+# 置为true,则可直接运行 module_new、 module_girl 等 module
isModule=false
+PROJECT_NAME = AndroidModulePattern
+
+systemProp.sonar.host.url=http://172.17.0.33:9000
+systemProp.sonar.login=admin
+systemProp.sonar.password=admin
+
+IS_JENKINS=false
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..7a3265e
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..7da5cc8
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Jul 04 11:14:58 CST 2018
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
diff --git a/gradlew b/gradlew
new file mode 100755
index 0000000..cccdd3d
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,172 @@
+#!/usr/bin/env sh
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=$(save "$@")
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+ cd "$(dirname "$0")"
+fi
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..f955316
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,84 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/keystore.properties b/keystore.properties
index dabd93e..6d68cb4 100644
--- a/keystore.properties
+++ b/keystore.properties
@@ -1,4 +1,4 @@
-storePassword=guiying712
-keyPassword=guiying712
-keyAlias=guiying712
-storeFile=/mykey.jks
\ No newline at end of file
+storePassword=123456
+keyPassword=123456
+keyAlias=keyAlias
+storeFile=mykey.jks
\ No newline at end of file
diff --git a/lib_common/build.gradle b/lib_common/build.gradle
index 87eb2af..a7e6507 100644
--- a/lib_common/build.gradle
+++ b/lib_common/build.gradle
@@ -26,6 +26,9 @@ android {
}
}
+ lintOptions {
+ abortOnError false
+ }
}
dependencies {
@@ -39,19 +42,16 @@ dependencies {
api deps.support.percent
api deps.support.recyclerview
api deps.constraint_layout
-
// RxJava and retrofit
api deps.rx_android
api deps.rxjava2
api deps.retrofit.runtime
api deps.retrofit.gson
api deps.persistent_cookie
-
//Dagger
api deps.dagger.runtime
api deps.dagger.android
api deps.dagger.android_support
-
// other
api deps.kotlin.stdlib
api deps.event_bus
@@ -59,17 +59,14 @@ dependencies {
api deps.permission
api deps.utils
api deps.glide
-
//view
api deps.photo_view
api deps.easy_recycler
api deps.material_dialog
api deps.logger
api deps.toasty
-
//router
api deps.arouter_api
-
//annotationProcessor
annotationProcessor deps.dagger.android_support_compiler
annotationProcessor deps.dagger.compiler
diff --git a/lib_common/src/main/java/com/guiying/module/common/base/BaseApplication.java b/lib_common/src/main/java/com/guiying/module/common/base/BaseApplication.java
index 5c183ee..aa18287 100644
--- a/lib_common/src/main/java/com/guiying/module/common/base/BaseApplication.java
+++ b/lib_common/src/main/java/com/guiying/module/common/base/BaseApplication.java
@@ -42,6 +42,7 @@ public void onCreate() {
delegate.onCreate();
}
+
}
@Override
diff --git a/module_app/.gitignore b/module_app/.gitignore
index f6b286c..06ac19c 100644
--- a/module_app/.gitignore
+++ b/module_app/.gitignore
@@ -37,4 +37,4 @@ captures/
.idea/workspace.xml
# Keystore files
-*.jks
+# *.jks
diff --git a/module_app/build.gradle b/module_app/build.gradle
index 2776c5c..d54b7cc 100644
--- a/module_app/build.gradle
+++ b/module_app/build.gradle
@@ -1,4 +1,8 @@
-apply plugin: 'com.android.application'
+if (IS_JENKINS) {
+ apply plugin: 'com.android.application'
+} else {
+ apply plugin: 'jacoco'
+}
// Create a variable called keystorePropertiesFile, and initialize it to your
// keystore.properties file, in the rootProject folder.
@@ -22,11 +26,11 @@ android {
}
}
- compileSdkVersion build_versions.target_sdk
+ compileSdkVersion 23
defaultConfig {
applicationId "com.guiying.module"
minSdkVersion build_versions.min_sdk
- targetSdkVersion build_versions.target_sdk
+ targetSdkVersion 22
versionCode 1
versionName "1.0"
multiDexEnabled true
@@ -69,16 +73,175 @@ android {
}
}
+ lintOptions {
+ abortOnError false
+// warningsAsErrors true
+// abortOnError true
+// htmlReport true
+// //locations**for**the rules and output
+// lintConfig file("${rootDir}/config/lint/lint-config.xml")
+// htmlOutput file("${buildDir}/reports/lint/lint.html")
+ }
}
dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
+ implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation deps.support.multidex
implementation project(':lib_common')
if (!isModule.toBoolean()) {
implementation project(':module_main')
implementation project(':module_girls')
implementation project(':module_news')
+ implementation project(':module_card_girl')
+ }
+ // pmd "com.alibaba.p3c:p3c-pmd:1.0.0"
+}
+
+// =============================
+// =========== 打包
+// =============================
+
+def buildTime = new Date().format("yyyy-MM-dd_HH-mm-ss", TimeZone.getTimeZone("GMT+8"))
+
+project.ext {
+ projectName = PROJECT_NAME
+ apkRootDir = "output"
+ apkName = PROJECT_NAME + "_" + buildTime + ".apk"
+}
+
+
+build {
+ doLast {
+ //当前目录下 ,不加 /
+ def outputFile = new File("module_app/build/outputs/apk/release/module_app-release.apk")
+ def fileP2 = project.ext.apkRootDir + "/" + apkName;
+ copyToPath(outputFile, fileP2)
}
}
+
+def copyToPath(file, path) {
+ if (file.name.endsWith('.apk')) {
+ def length = 1024;
+ println "start: " + file.name
+ println "path: " + file.getAbsolutePath()
+ if (!file.exists()) {
+ return
+ }
+
+ println "dest: " + path
+ println "test: " + file.name
+
+ def fin = new FileInputStream(file);
+ def desFile = new File(path);
+ def dir = desFile.getParentFile();
+ if (!dir.exists()) {
+ dir.mkdirs()
+ }
+ def fout = new FileOutputStream(desFile);
+ byte[] buffer = new byte[length];
+ def ins;
+ while (true) {
+ ins = fin.read(buffer);
+ if (ins == -1) {
+ fin.close();
+ fout.flush();
+ fout.close();
+ break;
+ } else {
+ fout.write(buffer, 0, ins);
+ }
+ }
+ }
+}
+
+// =============================
+// =========== pmd 分析
+// =============================
+
+//task pmd(type: Pmd) {
+// group = 'pmd'
+// ignoreFailures = true
+// source = fileTree('src/main/java')
+//// ruleSetFiles = files("${project.rootDir}/config/pmd/PmdRuleSets.xml")
+// ruleSets = [
+'java-hc-demo'
+// 'java-ali-comment',
+// 'java-ali-concurrent',
+// 'java-ali-constant',
+// 'java-ali-exception',
+// 'java-ali-flowcontrol',
+// 'java-ali-naming',
+// 'java-ali-oop',
+// 'java-ali-orm',
+// 'java-ali-other',
+// 'java-ali-set',
+// 'java-android','java-basic','java-braces',
+// 'java-clone','java-codesize',
+// 'java-comments',
+// 'java-controversial',
+// 'java-coupling',
+// 'java-design',
+// 'java-empty',
+// 'java-finalizers',
+// 'java-imports',
+// 'java-j2ee',
+// 'java-javabeans',
+// 'java-junit',
+// 'java-logging-jakarta-commons',
+// 'java-logging-java',
+// 'java-migrating',
+// 'java-naming',
+// 'java-optimizations',
+// 'java-strictexception','java-strings',
+// 'java-sunsecure','java-typeresolution',
+// 'java-unnecessary','java-unusedcode'
+
+// ]
+// include '**/*.java'
+// exclude '**/gen/**'
+// reports {
+// xml.enabled = true
+// html.enabled = true
+// xml {
+// destination "${project.buildDir}/reports/pmd/pmd.xml"
+// }
+// html {
+// destination "${project.buildDir}/reports/pmd/pmd.html"
+// }
+// }
+//}
+
+// =============================
+// =========== Jacoco 代码覆盖率 分析
+// =============================
+
+//jacoco {
+// toolVersion = "0.7.5.201505241946"
+//}
+//task coverage(type: JacocoReport, dependsOn: "testDebugUnitTest") {
+// group = "Reporting"
+// description = "Generate Jacoco coverage reports after running tests."
+// reports {
+// xml.enabled = true
+// html.enabled = true
+// html.destination "${buildDir}/reports/codecoverage"
+// }
+// def ignoredFilter = [
+// '**/R.class',
+// '**/R$*.class',
+// '**/BuildConfig.*',
+// '**/Manifest*.*',
+// 'android/**/*.*',
+// 'com.android/**/*.*',
+// 'com.google/**/*.*'
+// ]
+// def debugTree = fileTree(dir:"${project.buildDir}/intermediates/classes/debug", excludes: ignoredFilter)
+// sourceDirectories = files(android.sourceSets.main.java.srcDirs)
+// classDirectories = files([debugTree])
+// additionalSourceDirs = files([
+// "${buildDir}/generated/source/buildConfig/debug",
+// "${buildDir}/generated/source/r/debug"
+// ])
+// executionData = fileTree(dir: project.projectDir, includes: ['**/*.exec', '**/*.ec'])
+//}
\ No newline at end of file
diff --git a/module_app/mykey.jks b/module_app/mykey.jks
new file mode 100644
index 0000000..b4fc224
Binary files /dev/null and b/module_app/mykey.jks differ
diff --git a/module_app/src/main/aidl/com/xh/arespunc/IMessenger.aidl b/module_app/src/main/aidl/com/xh/arespunc/IMessenger.aidl
new file mode 100644
index 0000000..1ab447b
--- /dev/null
+++ b/module_app/src/main/aidl/com/xh/arespunc/IMessenger.aidl
@@ -0,0 +1,25 @@
+// IMessengerInterface.aidl
+package com.xh.arespunc;
+import com.xh.arespunc.IMessengerCallback;
+// Declare any non-default types here with import statements
+
+interface IMessenger {
+ /**
+ * 发送单人消息
+ *
+ * @param contactId 对方的id(消息接收者)
+ * @param msgContent 消息的内容
+ * @param callback
+ */
+ void sendSingleMsg(int contactId, String msgContent, IMessengerCallback callback);
+ /**
+ * 发送群发消息
+ *
+ * @param contactIdList
+ * @param noticeTitle 群发会新建一个群发在最近对话列表 该参数表示群的名称
+ * @param groupType 群聊类型 0部门、1学生、2私友 所有成员必须类型统一 否则群发建立不成功
+ * @param msgContent
+ * @param callback
+ */
+ void sendGroupMsg(in int[] contactIdList, String noticeTitle, int groupType, String msgContent, IMessengerCallback callback);
+}
diff --git a/module_app/src/main/aidl/com/xh/arespunc/IMessengerCallback.aidl b/module_app/src/main/aidl/com/xh/arespunc/IMessengerCallback.aidl
new file mode 100644
index 0000000..f482177
--- /dev/null
+++ b/module_app/src/main/aidl/com/xh/arespunc/IMessengerCallback.aidl
@@ -0,0 +1,9 @@
+// IMessengerCallback.aidl
+package com.xh.arespunc;
+//消息回调
+interface IMessengerCallback {
+ //调用成功之后回调
+ void onSuccess(String json);
+ //调用失败的回调
+ void onFailed(String msg);
+}
diff --git a/module_app/src/main/java/com/guiying/module/aa.java b/module_app/src/main/java/com/guiying/module/aa.java
new file mode 100644
index 0000000..1728cb0
--- /dev/null
+++ b/module_app/src/main/java/com/guiying/module/aa.java
@@ -0,0 +1,7 @@
+package com.guiying.module;
+
+public class aa {
+ public void a(){
+
+ }
+}
diff --git a/module_card_girl/.gitignore b/module_card_girl/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/module_card_girl/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/module_card_girl/build.gradle b/module_card_girl/build.gradle
new file mode 100644
index 0000000..e260534
--- /dev/null
+++ b/module_card_girl/build.gradle
@@ -0,0 +1,118 @@
+if (isModule.toBoolean()) {
+ apply plugin: 'com.android.application'
+} else {
+ apply plugin: 'com.android.library'
+}
+
+android {
+ compileSdkVersion build_versions.target_sdk
+ defaultConfig {
+ minSdkVersion build_versions.min_sdk
+ targetSdkVersion build_versions.target_sdk
+ versionCode 1
+ versionName "1.0"
+
+ javaCompileOptions {
+ annotationProcessorOptions {
+ arguments = [ moduleName : project.getName() ]
+ }
+ }
+ }
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+
+ sourceSets {
+ main {
+ if (isModule.toBoolean()) {
+ manifest.srcFile 'src/main/module/AndroidManifest.xml'
+ } else {
+ manifest.srcFile 'src/main/AndroidManifest.xml'
+ //集成开发模式下排除debug文件夹中的所有Java文件
+ java {
+ exclude 'debug/**'
+ }
+ }
+ }
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+
+ lintOptions {
+ abortOnError false
+ }
+}
+
+dependencies {
+ implementation fileTree(include: ['*.jar'], dir: 'libs')
+ annotationProcessor deps.arouter_compiler
+ implementation project(':lib_common')
+ // addition
+ // compile 'com.jakewharton:butterknife:8.8.1'
+ implementation ('com.makeramen:roundedimageview:2.2.1')
+ // compile 'com.android.support:cardview-v7:23.2.1'
+ implementation 'com.github.zhuchen1109:Swipe-cards:18df0b545b'
+// pmd "com.alibaba.p3c:p3c-pmd:$deps.p3c"
+}
+
+// =============================
+// =========== pmd 分析
+// =============================
+
+//task pmd(type: Pmd) {
+// group = 'pmd'
+// ignoreFailures = true
+// source = fileTree('src/main/java')
+//// ruleSetFiles = files("${project.rootDir}/config/pmd/PmdRuleSets.xml")
+// ruleSets = [
+// 'java-xh-comment'
+// 'java-ali-comment',
+// 'java-ali-concurrent',
+// 'java-ali-constant',
+// 'java-ali-exception',
+// 'java-ali-flowcontrol',
+// 'java-ali-naming',
+// 'java-ali-oop',
+// 'java-ali-orm',
+// 'java-ali-other',
+// 'java-ali-set',
+// 'java-android','java-basic','java-braces',
+// 'java-clone','java-codesize',
+// 'java-comments',
+// 'java-controversial',
+// 'java-coupling',
+// 'java-design',
+// 'java-empty',
+// 'java-finalizers',
+// 'java-imports',
+// 'java-j2ee',
+// 'java-javabeans',
+// 'java-junit',
+// 'java-logging-jakarta-commons',
+// 'java-logging-java',
+// 'java-migrating',
+// 'java-naming',
+// 'java-optimizations',
+// 'java-strictexception','java-strings',
+// 'java-sunsecure','java-typeresolution',
+// 'java-unnecessary','java-unusedcode'
+
+// ]
+// reports {
+// xml.enabled = true
+// html.enabled = true
+// xml {
+// destination "${project.buildDir}/reports/pmd/pmd.xml"
+// }
+// html {
+// destination "${project.buildDir}/reports/pmd/pmd.html"
+// }
+// }
+//}
\ No newline at end of file
diff --git a/module_card_girl/proguard-rules.pro b/module_card_girl/proguard-rules.pro
new file mode 100644
index 0000000..f1b4245
--- /dev/null
+++ b/module_card_girl/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/module_card_girl/src/main/AndroidManifest.xml b/module_card_girl/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..fb808e0
--- /dev/null
+++ b/module_card_girl/src/main/AndroidManifest.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/module_card_girl/src/main/assets/index2.html b/module_card_girl/src/main/assets/index2.html
new file mode 100644
index 0000000..dfdd0c5
--- /dev/null
+++ b/module_card_girl/src/main/assets/index2.html
@@ -0,0 +1,29 @@
+
+
+
+88a5e951419e449d9b39c7e484195ee4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
角α的终边与单位圆
交于点P.过点P作x轴
的垂线,垂足为M.
【思考】为了去掉
上述等式中的绝对值
符号,能否给线段OM、
MP规定一个适当的方
向,使它们的取值与点
P的坐标一致?
有向线段的方向与坐标系的方向相同.
即同向时,数量为正;反向时,数量为负.
当角α的终边不在坐
标轴上时,以M为始点、
P为终点,规定:
当线段MP与y轴同向
时,MP的方向为正向,
且有正值y;
当线段MP与y轴反向
时MP的方向为负向,
且有负值y.
当角α的终边不在坐
标轴上时,以O为始点、
M为终点,规定:
当线段OM与x轴同向
时,OM的方向为正向,且
有正值x;
当线段OM与x轴反向
时,OM的方向为负向,且
有负值x.
过点A(1,0)作单位
圆的切线,设它与α
的终边或其反向延
长线相交于点T.
这三条与单位圆有关的有向线段MP、OM、
AT,分别叫做角α的正弦线、余弦线、正切
线,统称为三角函数线
当角α的终边与x轴重合时,正弦线、正切
线,分别变成一个点,此时角α的正弦值和正
切值都为0;
当角α的终边与y轴重合时,余
弦线变成一个点,正切线不存
在,此时角α的正切值不存在.
2.若θ在第四象限,试判sin(cosθ)cos(sinθ)的符号
3 .若lg(sintan)有意义,则是()
4. 已知的终边过点(3a-9,a+2),且cos<0,
5.利用单位圆中的三角函数线,确定下列各角的
取值范围:
+
\ No newline at end of file
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/0.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/0.png
new file mode 100644
index 0000000..4336c2f
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/0.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/1.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/1.png
new file mode 100644
index 0000000..e321d06
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/1.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/10.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/10.png
new file mode 100644
index 0000000..b421cf8
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/10.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/11.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/11.png
new file mode 100644
index 0000000..80bfdb0
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/11.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/12.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/12.png
new file mode 100644
index 0000000..fa2cbeb
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/12.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/13.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/13.png
new file mode 100644
index 0000000..e47e2f1
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/13.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/14.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/14.png
new file mode 100644
index 0000000..074894d
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/14.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/15.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/15.png
new file mode 100644
index 0000000..63fe683
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/15.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/16.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/16.png
new file mode 100644
index 0000000..121026d
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/16.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/17.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/17.png
new file mode 100644
index 0000000..51bdc4c
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/17.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/18.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/18.png
new file mode 100644
index 0000000..8a30494
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/18.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/19.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/19.png
new file mode 100644
index 0000000..36386f6
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/19.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/2.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/2.png
new file mode 100644
index 0000000..0867e38
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/2.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/20.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/20.png
new file mode 100644
index 0000000..88ddfbf
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/20.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/21.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/21.png
new file mode 100644
index 0000000..73c6492
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/21.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/22.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/22.png
new file mode 100644
index 0000000..26923a7
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/22.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/23.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/23.png
new file mode 100644
index 0000000..173e799
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/23.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/24.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/24.png
new file mode 100644
index 0000000..81617e7
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/24.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/25.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/25.png
new file mode 100644
index 0000000..b3f0f64
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/25.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/26.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/26.png
new file mode 100644
index 0000000..169bbda
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/26.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/27.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/27.png
new file mode 100644
index 0000000..4ed4fc6
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/27.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/28.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/28.png
new file mode 100644
index 0000000..9a6ac9e
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/28.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/29.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/29.png
new file mode 100644
index 0000000..da5258a
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/29.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/3.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/3.png
new file mode 100644
index 0000000..64bf6a7
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/3.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/30.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/30.png
new file mode 100644
index 0000000..5d26a92
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/30.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/31.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/31.png
new file mode 100644
index 0000000..9a6ac9e
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/31.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/32.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/32.png
new file mode 100644
index 0000000..9a6ac9e
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/32.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/33.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/33.png
new file mode 100644
index 0000000..b82d629
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/33.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/34.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/34.png
new file mode 100644
index 0000000..b737ecb
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/34.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/35.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/35.png
new file mode 100644
index 0000000..36a3dd9
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/35.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/36.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/36.png
new file mode 100644
index 0000000..36a3dd9
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/36.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/37.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/37.png
new file mode 100644
index 0000000..36a3dd9
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/37.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/38.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/38.png
new file mode 100644
index 0000000..3fdf37d
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/38.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/39.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/39.png
new file mode 100644
index 0000000..647c5de
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/39.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/4.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/4.png
new file mode 100644
index 0000000..01f2984
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/4.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/40.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/40.png
new file mode 100644
index 0000000..afed348
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/40.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/41.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/41.png
new file mode 100644
index 0000000..0775e79
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/41.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/42.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/42.png
new file mode 100644
index 0000000..b431468
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/42.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/43.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/43.png
new file mode 100644
index 0000000..7a3ca90
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/43.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/44.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/44.png
new file mode 100644
index 0000000..05fc89f
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/44.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/45.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/45.png
new file mode 100644
index 0000000..f190f3d
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/45.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/46.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/46.png
new file mode 100644
index 0000000..cd19c78
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/46.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/47.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/47.png
new file mode 100644
index 0000000..85f58db
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/47.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/48.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/48.png
new file mode 100644
index 0000000..0097816
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/48.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/49.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/49.png
new file mode 100644
index 0000000..1c407cf
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/49.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/5.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/5.png
new file mode 100644
index 0000000..9704baf
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/5.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/50.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/50.png
new file mode 100644
index 0000000..3ed9b1a
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/50.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/51.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/51.png
new file mode 100644
index 0000000..14d4201
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/51.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/52.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/52.png
new file mode 100644
index 0000000..e1d9449
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/52.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/53.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/53.png
new file mode 100644
index 0000000..8967c2c
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/53.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/54.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/54.png
new file mode 100644
index 0000000..c693dff
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/54.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/55.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/55.png
new file mode 100644
index 0000000..a546aa6
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/55.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/56.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/56.png
new file mode 100644
index 0000000..ac8b909
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/56.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/57.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/57.png
new file mode 100644
index 0000000..a47795e
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/57.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/58.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/58.png
new file mode 100644
index 0000000..a5903a3
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/58.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/59.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/59.png
new file mode 100644
index 0000000..0867e38
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/59.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/6.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/6.png
new file mode 100644
index 0000000..1016ef8
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/6.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/60.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/60.png
new file mode 100644
index 0000000..e9912fc
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/60.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/61.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/61.png
new file mode 100644
index 0000000..c11eb7f
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/61.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/62.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/62.png
new file mode 100644
index 0000000..d7759d7
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/62.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/63.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/63.png
new file mode 100644
index 0000000..0097816
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/63.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/64.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/64.png
new file mode 100644
index 0000000..5186e5e
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/64.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/65.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/65.png
new file mode 100644
index 0000000..4ee410e
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/65.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/66.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/66.png
new file mode 100644
index 0000000..077b31a
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/66.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/67.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/67.png
new file mode 100644
index 0000000..c2f31d9
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/67.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/68.jpg b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/68.jpg
new file mode 100644
index 0000000..593c37c
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/68.jpg differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/69.jpg b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/69.jpg
new file mode 100644
index 0000000..593c37c
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/69.jpg differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/7.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/7.png
new file mode 100644
index 0000000..e59787e
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/7.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/8.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/8.png
new file mode 100644
index 0000000..7096a4d
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/8.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/9.png b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/9.png
new file mode 100644
index 0000000..0b10eb6
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/9.png differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/f.css b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/f.css
new file mode 100644
index 0000000..da6ad6e
--- /dev/null
+++ b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/f.css
@@ -0,0 +1,11 @@
+@font-face { font-family: fnt0; src: url(fnt0.woff); }
+@font-face { font-family: fnt1; src: url(fnt1.woff); }
+@font-face { font-family: fnt2; src: url(fnt2.woff); }
+@font-face { font-family: fnt3; src: url(fnt3.woff); }
+@font-face { font-family: fnt4; src: url(fnt4.woff); }
+@font-face { font-family: fnt5; src: url(fnt5.woff); }
+@font-face { font-family: fnt6; src: url(fnt6.woff); }
+@font-face { font-family: fnt7; src: url(fnt7.woff); }
+@font-face { font-family: fnt8; src: url(fnt8.woff); }
+@font-face { font-family: fnt9; src: url(fnt9.woff); }
+@font-face { font-family: fnt10; src: url(fnt10.woff); }
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt0.woff b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt0.woff
new file mode 100644
index 0000000..407254a
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt0.woff differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt1.woff b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt1.woff
new file mode 100644
index 0000000..44b3abf
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt1.woff differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt10.woff b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt10.woff
new file mode 100644
index 0000000..779d07a
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt10.woff differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt2.woff b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt2.woff
new file mode 100644
index 0000000..d5ff674
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt2.woff differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt3.woff b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt3.woff
new file mode 100644
index 0000000..30327b8
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt3.woff differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt4.woff b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt4.woff
new file mode 100644
index 0000000..603a938
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt4.woff differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt5.woff b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt5.woff
new file mode 100644
index 0000000..4030a68
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt5.woff differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt6.woff b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt6.woff
new file mode 100644
index 0000000..7b7c8a4
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt6.woff differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt7.woff b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt7.woff
new file mode 100644
index 0000000..7350285
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt7.woff differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt8.woff b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt8.woff
new file mode 100644
index 0000000..4b85069
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt8.woff differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt9.woff b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt9.woff
new file mode 100644
index 0000000..af839eb
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/data/fnt9.woff differ
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/index.html b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/index.html
new file mode 100644
index 0000000..4f2489d
--- /dev/null
+++ b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/index.html
@@ -0,0 +1,32 @@
+
+
+
+88a5e951419e449d9b39c7e484195ee4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
角α的终边与单位圆
交于点P.过点P作x轴
的垂线,垂足为M.
【思考】为了去掉
上述等式中的绝对值
符号,能否给线段OM、
MP规定一个适当的方
向,使它们的取值与点
P的坐标一致?
有向线段的方向与坐标系的方向相同.
即同向时,数量为正;反向时,数量为负.
当角α的终边不在坐
标轴上时,以M为始点、
P为终点,规定:
当线段MP与y轴同向
时,MP的方向为正向,
且有正值y;
当线段MP与y轴反向
时MP的方向为负向,
且有负值y.
当角α的终边不在坐
标轴上时,以O为始点、
M为终点,规定:
当线段OM与x轴同向
时,OM的方向为正向,且
有正值x;
当线段OM与x轴反向
时,OM的方向为负向,且
有负值x.
过点A(1,0)作单位
圆的切线,设它与α
的终边或其反向延
长线相交于点T.
这三条与单位圆有关的有向线段MP、OM、
AT,分别叫做角α的正弦线、余弦线、正切
线,统称为三角函数线
当角α的终边与x轴重合时,正弦线、正切
线,分别变成一个点,此时角α的正弦值和正
切值都为0;
当角α的终边与y轴重合时,余
弦线变成一个点,正切线不存
在,此时角α的正切值不存在.
2.若θ在第四象限,试判sin(cosθ)cos(sinθ)的符号
3 .若lg(sintan)有意义,则是()
4. 已知的终边过点(3a-9,a+2),且cos<0,
5.利用单位圆中的三角函数线,确定下列各角的
取值范围:
+
\ No newline at end of file
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/pg.js b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/pg.js
new file mode 100644
index 0000000..e6af57d
--- /dev/null
+++ b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/pg.js
@@ -0,0 +1,98 @@
+var _note=["","","","","","","","","","","","","","",""];var _control=[{},
+{ trans:{eff:769,duration:0.5,"dir":1},animations:[{eff:22,s:28727,duration:0.5,"dir":4},
+{eff:9,s:28674,duration:0.5},
+{eff:22,s:28728,duration:0.5,"dir":4},
+{eff:3,s:28730,duration:0.5,"dir":16}]},
+{ animations:[{eff:2,s:29698,duration:0.5,"dir":3},
+{eff:2,s:29699,duration:0.5,"dir":3},
+{eff:2,s:29700,duration:0.5,"dir":3},
+{eff:2,s:29701,duration:0.5,"dir":3}]},
+{ trans:{eff:769,duration:0.5,"dir":1},animations:[{eff:9,s:30722,duration:0.5},
+{eff:3,s:30775,para:0,duration:0.5,"dir":16},
+{eff:3,s:30775,para:2,duration:0.5,"dir":16},
+{eff:3,s:30775,para:4,duration:0.5,"dir":16},
+{eff:26,s:30775,para:6,duration:2.0}]},
+{ trans:{eff:769,duration:0.5,"dir":1},animations:[{eff:9,s:31746,duration:0.5},
+{eff:22,s:31799,duration:0.5,"dir":4},
+{eff:3,s:31800,para:0,duration:0.5,"dir":16},
+{eff:3,s:31800,para:1,duration:0.5,"dir":16},
+{eff:3,s:31800,para:2,duration:0.5,"dir":16},
+{eff:3,s:31800,para:3,duration:0.5,"dir":16},
+{eff:3,s:31800,para:4,duration:0.5,"dir":16},
+{eff:26,s:31800,para:5,duration:2.0}]},
+{ trans:{eff:1025,duration:0.5,"dir":0},animations:[{eff:3,s:32838,duration:0.5,"dir":16},
+{eff:3,s:32837,duration:0.5,"dir":16},
+{eff:22,s:32774,duration:0.5,"dir":3},
+{eff:22,s:32770,type:2,duration:0.5,"dir":1},
+{eff:22,s:32777,type:2,duration:0.5,"dir":3},
+{eff:22,s:32834,type:2,duration:0.5,"dir":1},
+{eff:22,s:32839,duration:0.5,"dir":3},
+{eff:26,s:32840,duration:2.0},
+{eff:2,s:32841,duration:0.5,"dir":3}]},
+{ trans:{eff:769,duration:0.5,"dir":1},animations:[{eff:3,s:33811,para:0,duration:0.5,"dir":16},
+{eff:3,s:33811,para:1,duration:0.5,"dir":16},
+{eff:2,s:33812,duration:0.5,"dir":3}]},
+{ animations:[{eff:1,s:34820,duration:0.0},
+{eff:23,s:34831,duration:0.5,"dir":19},
+{eff:22,s:34832,duration:0.5,"dir":4},
+{eff:46,s:34833,duration:2.0},
+{eff:46,s:34834,type:2,duration:2.0},
+{eff:22,s:34836,duration:0.5,"dir":3},
+{eff:22,s:34835,duration:0.5,"dir":3},
+{eff:23,s:34837,duration:0.5,"dir":19},
+{eff:23,s:34841,duration:0.5,"dir":19},
+{eff:3,s:34846,duration:0.5,"dir":16},
+{eff:3,s:34856,duration:0.5,"dir":16}]},
+{ hidden:1,animations:[{eff:1,s:35849,duration:0.0},
+{eff:1,s:35867,duration:0.0},
+{eff:9,s:35842,duration:0.5},
+{eff:9,s:35868,duration:0.5},
+{eff:9,s:35869,type:1,duration:0.5},
+{eff:22,s:35863,duration:0.5,"dir":3},
+{eff:22,s:35862,type:1,duration:0.5,"dir":3},
+{eff:9,s:35870,duration:0.5},
+{eff:9,s:35843,type:1,duration:0.5},
+{eff:9,s:35876,duration:0.5},
+{eff:9,s:35877,duration:0.5},
+{eff:2,s:35878,duration:0.5,"dir":3}]},
+{ animations:[{eff:1,s:36873,duration:0.0},
+{eff:1,s:36891,duration:0.0},
+{eff:9,s:36866,duration:0.5},
+{eff:9,s:36892,duration:0.5},
+{eff:9,s:36893,type:1,duration:0.5},
+{eff:22,s:36887,duration:0.5,"dir":1},
+{eff:22,s:36886,type:1,duration:0.5,"dir":3},
+{eff:9,s:36867,duration:0.5},
+{eff:9,s:36894,type:1,duration:0.5},
+{eff:9,s:36899,duration:0.5},
+{eff:9,s:36900,duration:0.5},
+{eff:2,s:36901,duration:0.5,"dir":3}]},
+{ animations:[{eff:3,s:37894,duration:0.5,"dir":16},
+{eff:3,s:37920,duration:0.5,"dir":16},
+{eff:3,s:37908,duration:0.5,"dir":16},
+{eff:3,s:37906,duration:0.5,"dir":16},
+{eff:3,s:37921,duration:0.5,"dir":16},
+{eff:3,s:37905,duration:0.5,"dir":16},
+{eff:3,s:37907,duration:0.5,"dir":16},
+{eff:26,s:37949,duration:2.0},
+{eff:22,s:37950,duration:0.5,"dir":3},
+{eff:3,s:37922,duration:0.5,"dir":16},
+{eff:3,s:37936,duration:0.5,"dir":16},
+{eff:3,s:37909,duration:0.5,"dir":16},
+{eff:3,s:37911,duration:0.5,"dir":16},
+{eff:3,s:37912,duration:0.5,"dir":16},
+{eff:3,s:37910,duration:0.5,"dir":16},
+{eff:3,s:37913,duration:0.5,"dir":16},
+{eff:2,s:37951,duration:0.5,"dir":3}]},
+{},
+{ animations:[{eff:2,s:39942,duration:0.5,"dir":3},
+{eff:2,s:39944,duration:0.5,"dir":3},
+{eff:1,s:39943,duration:0.5},
+{eff:2,s:39945,duration:0.5,"dir":3}]},
+{},
+{ animations:[{eff:2,s:41986,duration:0.5,"dir":4},
+{eff:22,s:41987,para:-1,type:2,delay:0.5,duration:0.5,"dir":4,"gap":0.05,"by":1},
+{eff:2,s:41994,para:-1,type:2,duration:0.5,"dir":4,"gap":0.05,"by":1},
+{eff:22,s:41988,para:-1,type:2,duration:0.5,"dir":4,"gap":0.05,"by":0},
+{eff:2,s:41995,para:-1,type:2,duration:0.5,"dir":4,"gap":0.05,"by":1},
+{eff:22,s:41989,para:-1,type:2,duration:0.5,"dir":4,"gap":0.05,"by":0}]}];var _title="88a5e951419e449d9b39c7e484195ee4";var _pubtm="2018-10-10";var _author="xuehai-kt4.0";var _mode=0;var rest=0; var pptcolor="#ffffff";
diff --git a/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/wxpic.jpg b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/wxpic.jpg
new file mode 100644
index 0000000..e321d06
Binary files /dev/null and b/module_card_girl/src/main/assets/ppt/5281a115ce50f8fd676e56b295aee5e4/wxpic.jpg differ
diff --git a/module_card_girl/src/main/assets/ppt/a.css b/module_card_girl/src/main/assets/ppt/a.css
new file mode 100644
index 0000000..67adf7b
--- /dev/null
+++ b/module_card_girl/src/main/assets/ppt/a.css
@@ -0,0 +1,112 @@
+#comment{position: static;font-family: "Helvetica Neue",Helvetica,"Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;transform: scale(4); transform-origin: 0px 0px 0px;-webkit-transform: scale(4); -webkit-transform-origin: 0px 0px 0px;}
+#comment img{position:relative;float: right;margin-left:3px;margin-right:15px;}
+#comment a{float:right;margin-bottom:30px;color: #607fa6;font-size: 18px;}
+#comment a:hover{text-decoration:none;}
+#comment a:link{text-decoration:none;}
+#comment .tips{margin-top:30px;padding:10px 0 5px 0;position:relative;text-align:center;}
+.tbcomment{
+ position:relative;
+ margin:20px auto;
+ width:95%;
+ vertical-align:top;
+ table-layout: fixed;
+ word-wrap:break-word;
+}
+.tbcomment .addspace{
+ height:40px;
+}
+.tbcomment tr th{width:60px;height:50px;padding:0;vertical-align:top;}
+.tbcomment tr th img{position:static;width:40px;border-radius:5px;}
+.tbcomment tr .nickname{
+ padding:0;
+ font-family:simsun;
+ color:#717171;
+}
+.tbcomment tr .content{
+ padding:0;
+ line-height:22px;
+ letter-spacing:0.3px;
+ font-family:simsun;
+ font-size:18px;
+ color:#434343;
+}
+.tbcomment tr .content .time{
+ color:#8A8A8A;
+ font-size:12px;
+}
+.frm_textarea{
+ width: 90%;
+ margin:0 auto;
+ height:144px;
+ background-color: transparent;
+ border: 0;
+ display: block;
+ font-family: monospace;
+ font-size: 14px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 10px 15px;
+ resize: none;
+ outline: 0;
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+}
+.discuss_btn_wrp{
+ position:static;
+ width:95%;
+ margin-top: 20px;
+ margin-bottom: 20px;
+ margin-left:auto;
+ margin-right:auto;
+ text-align: right;
+}
+.btn{
+ position:static;
+ display: block;
+ width:45%;
+ padding-left: 14px;
+ padding-right: 14px;
+ font-size: 18px;
+ text-align: center;
+ text-decoration: none;
+ border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ color: #fff;
+ line-height: 42px;
+ -webkit-tap-highlight-color: rgba(255,255,255,0);
+}
+.btn_discuss {
+ padding-left: 1.5em;
+ padding-right: 1.5em;
+}
+.btn_disabled {
+ color: rgba(255,255,255,0.6);
+}
+.btn_primary {
+ float:right;
+ background-color: #04be02;
+}
+.btn_close{
+ float:left;
+ background-color: #DD524D;
+}
+#gettitle{
+ position:static;
+ width:95%;
+ margin:10px auto;
+ font-size:18px;
+}
+
+.close{
+ position:fixed;
+ width:100px;
+ left:50%;
+ margin-left:-50px;
+ bottom:0px;
+}
+.subdiv{
+display:none;position:fixed;width:100%;height:100%;top:0;left:0;background-color:#F3F3F3;z-index:2;
+}
diff --git a/module_card_girl/src/main/assets/ppt/a3.css b/module_card_girl/src/main/assets/ppt/a3.css
new file mode 100644
index 0000000..5530b31
--- /dev/null
+++ b/module_card_girl/src/main/assets/ppt/a3.css
@@ -0,0 +1,134 @@
+body {-webkit-text-size-adjust: auto;font-family: "Helvetica Neue",Helvetica,Arial,simsun,sans-serif;line-height:150%;font-size:16px;}div{position:absolute;}
+iframe{position:absolute;}img{position:absolute;left:0px;right:0px;}
+span{border-style: solid;position:absolute;white-space:nowrap;border:0;-webkit-text-size-adjust: auto;}
+.sub1{position:static;}.sub{position:absolute;}.bul{font-family:fnt0;}
+.uf{background:url(ud.gif) repeat-x 100% 100%;}
+.statitle{position:relative; }
+.rich_media_title { margin-bottom: 12px;line-height: 1.4;font-weight: 400;font-size: 24px;position:relative;}
+.rich_media_meta { display: inline-block; vertical-align: middle; margin-right: 8px; margin-bottom: 10px; font-size: 17px;}
+.rich_media_meta_text { color: #8c8c8c;}
+.rich_media_meta_nicknam{overflow:hidden;text-overflow;ellipsis;white-space:nowrap;max-width:9em;}
+.rich_media_meta_list{position:relative;margin-bottom:18px;line-height:20px;font-size:0}
+.rich_media_tool{width:100%;overflow:hidden;padding-top:15px;line-height:32px;}
+.rich_media_tool .a{color:#607fa6;text-decoration:none;}
+.rich_media_tool .meta_primary{float:left;margin-right:10px;color:#607fa6;position:relative;}
+.tips_global{color:#8c8c8c;}
+.mode2{position: fixed;margin:0 auto;bottom:5px;right:0px;left:0px;text-align: center;}
+.rich_media_tool .meta_parise{margin-right:0;margin-left:8px;color:#607fa6;}
+.meta_parise{-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0;min-width:3.5em;}
+.media_tool_meta i{vertical-align:0;position:relative;top:1px;margin-right:3px;}
+.icon_praise_gray{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAA+CAYAAAA1dwvuAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACd0lEQVRYhe2XMWhUMRjHfycdpDg4iJN26CQih4NUlFIc3iTasaAO+iZBnorIId2CDg6PLqWDXSy0p28TJ6ejILgoKiLFSeRcnASLnDf2HPKll8b3ah5NQPB+cHzJl0v+73J5Sf6NwWCAD6kqxoEV4BywCTwA2j59V9QlxrxUNJeBOSkfBtaAHvDcp/O+GkJHJd4H7kr5nm/nOkJHJH4FHkv5WAyhUxLfAgelvBlUKFXFBNCU6oYl+j6oEHohADwFtoDTUn8dTChVxX7gjlSfSJyS+CaYEDCPXs4d4IXkzDR+8BWqfI9SVUyil/ENST20ml8BF4Afu4z9HT3V80B/TAY9CxTABNAHxp1Oj4B1q34dWAamGa5Al0PALfSs3TS/aE1EcERWgQXgozPIN+Ai6O2ljFQVM8BLZJqN0KTEhgj9kvrViqf1wYz5BcoXQ38Pg9uckfiuSigU0xLXowmlqpgCjgNd4FM0IeCKxGcmEUtoRqLZScILpaqYA06iN9/tTTfGLzKvxLKdDCqUquIEcB59xK9GE2J4xLeBn3ZD1abaq/sQqSpmgWvo82rBbTdCPeAA4N69/noXS1XhphaBz27SPPVtapz/FXSBFsNDcgcN3wvkiBEjRoSndAtqLXXKvuvtYfMs+SP3T3tYm6ge1iaqh7UJ62HRTqNZko/mYV3CeVjA9rAuUTxsGd4edrcX1vWwddn2sHmWaA/bWuq4HnYLff3aC7U8bAiaMPyPJp3GhnxCUOlhQxPdwxrieViLbp4lUT2sIbqHNcTzsBYbeZZE9bCGeB7WIrqHNbTzLNnhYWMIlXpYI9Rz8gM8/GsFi3mW/Ace9jf8QZwIX5o4uQAAAABJRU5ErkJggg==) no-repeat 0 0;width:13px;height:13px;vertical-align:middle;display:inline-block;-webkit-background-size:100% auto;background-size:100% auto}
+.meta_praise .praise_num{display:inline-block;vertical-align:top;}
+.icon_praise_gray.praised{background-position:0 -18px}
+.rich_media_tool .meta_extra{float:right;margin-left:20px;}
+.rich_media_meta_link{color:#607fa6;text-decoration:none;}
+a:-webkit-any-link{cursor:auto;}
+.vchar {white-space:normal;width:1.1em;line-height:100%;}
+*{font-style:normal;}
+.rest{zoom:4;font-size:16px;width:400%;text-align:center;position:relative;color:#3381bf}
+.restgray{color:#8c8c8c;}
+.stadiv{position:relative;margin:0 5px 0 5px;}
+.stanote{position:relative;margin:0 5px 0 5px;}
+#player{position:relative;-webkit-tap-highlight-color:rgba(ff,ff,ff,0);
+-webkit-user-select:none;-moz-user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;
+}#playerView * {position:absolute;}
+ul, li{list-style: none;} a{text-decoration: none; color: #3381BF;} a:hover{text-decoration: underline;} #movie_rank{position:relative;margin-top:60px;} .box2{border-top: 1px solid #ADDFF2; text-align: left; color: #9C9C9C; text-align: left;} .box2{margin-bottom: 7px;} .rank_list{width:100; line-height: 18px; margin: auto;margin-top:20px;margin-bottom:20px;}.rank_list th{width:35px;}.rank_list th img{position:static;}
+.leftarrow{ position:fixed;left:10px;bottom:10px;width:50px;height:50px;}
+.rightarrow{ position:fixed;right:10px;bottom:10px;width:50px;height:50px;}
+
+.leftarrow:hover, .rightarrow:hover{cursor:pointer;}
+.leftarrow:hover img, .rightarrow:hover img{display:block}
+.noms{pointer-events:none;}
+/* =============================================================================== */
+.swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;z-index:1}.swiper-container-no-flexbox .swiper-slide{float:left}.swiper-container-vertical>.swiper-wrapper{-webkit-box-orient:vertical;-moz-box-orient:vertical;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-o-transform:translate(0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.swiper-container-multirow>.swiper-wrapper{-webkit-box-lines:multiple;-moz-box-lines:multiple;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.swiper-container-free-mode>.swiper-wrapper{-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-ms-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out;margin:0 auto}.swiper-slide{-webkit-flex-shrink:0;-ms-flex:0 0 auto;flex-shrink:0;width:100%;height:100%;position:relative}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-transition-property:-webkit-transform,height;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform,height}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-wp8-horizontal{-ms-touch-action:pan-y;touch-action:pan-y}.swiper-wp8-vertical{-ms-touch-action:pan-x;touch-action:pan-x}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:27px;height:44px;margin-top:-22px;z-index:10;cursor:pointer;-moz-background-size:27px 44px;-webkit-background-size:27px 44px;background-size:27px 44px;background-position:center;background-repeat:no-repeat}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");left:10px;right:auto}.swiper-button-prev.swiper-button-black,.swiper-container-rtl .swiper-button-next.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")}.swiper-button-prev.swiper-button-white,.swiper-container-rtl .swiper-button-next.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");right:10px;left:auto}.swiper-button-next.swiper-button-black,.swiper-container-rtl .swiper-button-prev.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")}.swiper-button-next.swiper-button-white,.swiper-container-rtl .swiper-button-prev.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")}.swiper-pagination{position:absolute;text-align:center;-webkit-transition:.3s;-moz-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-moz-appearance:none;-ms-appearance:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-white .swiper-pagination-bullet{background:#fff}.swiper-pagination-bullet-active{opacity:1;background:#007aff}.swiper-pagination-white .swiper-pagination-bullet-active{background:#fff}.swiper-pagination-black .swiper-pagination-bullet-active{background:#000}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;-webkit-transform:translate3d(0,-50%,0);-moz-transform:translate3d(0,-50%,0);-o-transform:translate(0,-50%);-ms-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:5px 0;display:block}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 5px}.swiper-pagination-progress{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progress .swiper-pagination-progressbar{background:#007aff;position:absolute;left:0;top:0;width:100%;height:100%;-webkit-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left top}.swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar{-webkit-transform-origin:right top;-moz-transform-origin:right top;-ms-transform-origin:right top;-o-transform-origin:right top;transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progress{width:100%;height:4px;left:0;top:0}.swiper-container-vertical>.swiper-pagination-progress{width:4px;height:100%;left:0;top:0}.swiper-pagination-progress.swiper-pagination-white{background:rgba(255,255,255,.5)}.swiper-pagination-progress.swiper-pagination-white .swiper-pagination-progressbar{background:#fff}.swiper-pagination-progress.swiper-pagination-black .swiper-pagination-progressbar{background:#000}.swiper-container-3d{-webkit-perspective:1200px;-moz-perspective:1200px;-o-perspective:1200px;perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-right{background-image:-webkit-gradient(linear,right top,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-top{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-coverflow .swiper-wrapper,.swiper-container-flip .swiper-wrapper{-ms-perspective:1200px}.swiper-container-cube,.swiper-container-flip{overflow:visible}.swiper-container-cube .swiper-slide,.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-cube .swiper-slide .swiper-slide,.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active,.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top,.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-slide{visibility:hidden;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;width:100%;height:100%}.swiper-container-cube.swiper-container-rtl .swiper-slide{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;background:#000;opacity:.6;-webkit-filter:blur(50px);filter:blur(50px);z-index:0}.swiper-container-fade.swiper-container-free-mode .swiper-slide{-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-ms-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-zoom-container{width:100%;height:100%;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:center;-moz-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;-webkit-transform-origin:50%;-moz-transform-origin:50%;transform-origin:50%;-webkit-animation:swiper-preloader-spin 1s steps(12,end) infinite;-moz-animation:swiper-preloader-spin 1s steps(12,end) infinite;animation:swiper-preloader-spin 1s steps(12,end) infinite}.swiper-lazy-preloader:after{display:block;content:"";width:100%;height:100%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-position:50%;-webkit-background-size:100%;background-size:100%;background-repeat:no-repeat}.swiper-lazy-preloader-white:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}@-webkit-keyframes swiper-preloader-spin{100%{-webkit-transform:rotate(360deg)}}@keyframes swiper-preloader-spin{100%{transform:rotate(360deg)}}
+.thumbnail{
+ position: fixed;
+ top: 0;
+ left: 0;
+ /* width: 100%; */
+ /* height: 100%; */
+}
+.thumbnail_box{
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 94%;
+ /* padding: 5px 3%; */
+ padding: 20px 3%;
+ background: rgba(0,0,0,0.6);
+ display: none;
+}
+.thumbnail_box ul{
+ margin: 0;
+ padding: 0 ;
+}
+.thumbnail_box li{
+ position: relative;
+ background: rgba(255,255,255,0.3);
+ height: auto;
+ overflow: hidden;
+}
+.thumbnail_box .active{
+ border: 3px solid #6acb93;
+}
+.show_box{
+ transform:scale(0.28);
+}
+.th_page{
+ position: absolute;
+ top: 20px;
+ left:20px;
+ font-size: 16px;
+ color: #4a4a4a;
+ font-weight: bold;
+}
+.th_page span{
+ display: block;
+ height: 30px;
+ line-height: 30px;
+ width:80px;
+ background: rgba(106,203,147,0.4);
+ text-align: center;
+ border-radius: 50%;
+}
+.page_box{
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 24px;
+ background: rgba(0,0,0,0.4);
+ text-align: center;
+ line-height: 24px;
+ font-size: 14px;
+ color: #ffffff;
+ font-weight: bold;
+}
+.swiper-container {
+ height: 150px;
+}
+.swiper-button-prev{
+ height: 75px;
+ width: 22px;
+ left: 0;
+ margin-top: -37px;
+ background: url("./ic_pre.png") center no-repeat;
+ background-size: 22px 75px ;
+ }
+.swiper-button-next{
+ height: 75px;
+ width: 22px;
+ right: 0;
+ margin-top: -37px;
+ background: url("./ic_next.png") center no-repeat;
+ background-size: 22px 75px ;
+}
+.btn_up{
+ position: fixed;
+ bottom: 20px;
+ right: 66px;
+ height: 40px;
+ width: 40px;
+ cursor: pointer;
+ z-index: 9999;
+}
diff --git a/module_card_girl/src/main/assets/ppt/canvg.js b/module_card_girl/src/main/assets/ppt/canvg.js
new file mode 100644
index 0000000..655d30d
--- /dev/null
+++ b/module_card_girl/src/main/assets/ppt/canvg.js
@@ -0,0 +1,3361 @@
+/**
+ * A class to parse color values
+ * @author Stoyan Stefanov
+ * @link http://www.phpied.com/rgb-color-parser-in-javascript/
+ * @license Use it if you like it
+ */
+function RGBColor(color_string)
+{
+ this.ok = false;
+
+ // strip any leading #
+ if (color_string.charAt(0) == '#') { // remove # if any
+ color_string = color_string.substr(1,6);
+ }
+
+ color_string = color_string.replace(/ /g,'');
+ color_string = color_string.toLowerCase();
+
+ // before getting into regexps, try simple matches
+ // and overwrite the input
+ var simple_colors = {
+ aliceblue: 'f0f8ff',
+ antiquewhite: 'faebd7',
+ aqua: '00ffff',
+ aquamarine: '7fffd4',
+ azure: 'f0ffff',
+ beige: 'f5f5dc',
+ bisque: 'ffe4c4',
+ black: '000000',
+ blanchedalmond: 'ffebcd',
+ blue: '0000ff',
+ blueviolet: '8a2be2',
+ brown: 'a52a2a',
+ burlywood: 'deb887',
+ cadetblue: '5f9ea0',
+ chartreuse: '7fff00',
+ chocolate: 'd2691e',
+ coral: 'ff7f50',
+ cornflowerblue: '6495ed',
+ cornsilk: 'fff8dc',
+ crimson: 'dc143c',
+ cyan: '00ffff',
+ darkblue: '00008b',
+ darkcyan: '008b8b',
+ darkgoldenrod: 'b8860b',
+ darkgray: 'a9a9a9',
+ darkgreen: '006400',
+ darkkhaki: 'bdb76b',
+ darkmagenta: '8b008b',
+ darkolivegreen: '556b2f',
+ darkorange: 'ff8c00',
+ darkorchid: '9932cc',
+ darkred: '8b0000',
+ darksalmon: 'e9967a',
+ darkseagreen: '8fbc8f',
+ darkslateblue: '483d8b',
+ darkslategray: '2f4f4f',
+ darkturquoise: '00ced1',
+ darkviolet: '9400d3',
+ deeppink: 'ff1493',
+ deepskyblue: '00bfff',
+ dimgray: '696969',
+ dodgerblue: '1e90ff',
+ feldspar: 'd19275',
+ firebrick: 'b22222',
+ floralwhite: 'fffaf0',
+ forestgreen: '228b22',
+ fuchsia: 'ff00ff',
+ gainsboro: 'dcdcdc',
+ ghostwhite: 'f8f8ff',
+ gold: 'ffd700',
+ goldenrod: 'daa520',
+ gray: '808080',
+ green: '008000',
+ greenyellow: 'adff2f',
+ honeydew: 'f0fff0',
+ hotpink: 'ff69b4',
+ indianred : 'cd5c5c',
+ indigo : '4b0082',
+ ivory: 'fffff0',
+ khaki: 'f0e68c',
+ lavender: 'e6e6fa',
+ lavenderblush: 'fff0f5',
+ lawngreen: '7cfc00',
+ lemonchiffon: 'fffacd',
+ lightblue: 'add8e6',
+ lightcoral: 'f08080',
+ lightcyan: 'e0ffff',
+ lightgoldenrodyellow: 'fafad2',
+ lightgrey: 'd3d3d3',
+ lightgreen: '90ee90',
+ lightpink: 'ffb6c1',
+ lightsalmon: 'ffa07a',
+ lightseagreen: '20b2aa',
+ lightskyblue: '87cefa',
+ lightslateblue: '8470ff',
+ lightslategray: '778899',
+ lightsteelblue: 'b0c4de',
+ lightyellow: 'ffffe0',
+ lime: '00ff00',
+ limegreen: '32cd32',
+ linen: 'faf0e6',
+ magenta: 'ff00ff',
+ maroon: '800000',
+ mediumaquamarine: '66cdaa',
+ mediumblue: '0000cd',
+ mediumorchid: 'ba55d3',
+ mediumpurple: '9370d8',
+ mediumseagreen: '3cb371',
+ mediumslateblue: '7b68ee',
+ mediumspringgreen: '00fa9a',
+ mediumturquoise: '48d1cc',
+ mediumvioletred: 'c71585',
+ midnightblue: '191970',
+ mintcream: 'f5fffa',
+ mistyrose: 'ffe4e1',
+ moccasin: 'ffe4b5',
+ navajowhite: 'ffdead',
+ navy: '000080',
+ oldlace: 'fdf5e6',
+ olive: '808000',
+ olivedrab: '6b8e23',
+ orange: 'ffa500',
+ orangered: 'ff4500',
+ orchid: 'da70d6',
+ palegoldenrod: 'eee8aa',
+ palegreen: '98fb98',
+ paleturquoise: 'afeeee',
+ palevioletred: 'd87093',
+ papayawhip: 'ffefd5',
+ peachpuff: 'ffdab9',
+ peru: 'cd853f',
+ pink: 'ffc0cb',
+ plum: 'dda0dd',
+ powderblue: 'b0e0e6',
+ purple: '800080',
+ red: 'ff0000',
+ rosybrown: 'bc8f8f',
+ royalblue: '4169e1',
+ saddlebrown: '8b4513',
+ salmon: 'fa8072',
+ sandybrown: 'f4a460',
+ seagreen: '2e8b57',
+ seashell: 'fff5ee',
+ sienna: 'a0522d',
+ silver: 'c0c0c0',
+ skyblue: '87ceeb',
+ slateblue: '6a5acd',
+ slategray: '708090',
+ snow: 'fffafa',
+ springgreen: '00ff7f',
+ steelblue: '4682b4',
+ tan: 'd2b48c',
+ teal: '008080',
+ thistle: 'd8bfd8',
+ tomato: 'ff6347',
+ turquoise: '40e0d0',
+ violet: 'ee82ee',
+ violetred: 'd02090',
+ wheat: 'f5deb3',
+ white: 'ffffff',
+ whitesmoke: 'f5f5f5',
+ yellow: 'ffff00',
+ yellowgreen: '9acd32'
+ };
+ for (var key in simple_colors) {
+ if (color_string == key) {
+ color_string = simple_colors[key];
+ }
+ }
+ // emd of simple type-in colors
+
+ // array of color definition objects
+ var color_defs = [
+ {
+ re: /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,
+ example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],
+ process: function (bits){
+ return [
+ parseInt(bits[1]),
+ parseInt(bits[2]),
+ parseInt(bits[3])
+ ];
+ }
+ },
+ {
+ re: /^(\w{2})(\w{2})(\w{2})$/,
+ example: ['#00ff00', '336699'],
+ process: function (bits){
+ return [
+ parseInt(bits[1], 16),
+ parseInt(bits[2], 16),
+ parseInt(bits[3], 16)
+ ];
+ }
+ },
+ {
+ re: /^(\w{1})(\w{1})(\w{1})$/,
+ example: ['#fb0', 'f0f'],
+ process: function (bits){
+ return [
+ parseInt(bits[1] + bits[1], 16),
+ parseInt(bits[2] + bits[2], 16),
+ parseInt(bits[3] + bits[3], 16)
+ ];
+ }
+ }
+ ];
+
+ // search through the definitions to find a match
+ for (var i = 0; i < color_defs.length; i++) {
+ var re = color_defs[i].re;
+ var processor = color_defs[i].process;
+ var bits = re.exec(color_string);
+ if (bits) {
+ channels = processor(bits);
+ this.r = channels[0];
+ this.g = channels[1];
+ this.b = channels[2];
+ this.ok = true;
+ }
+
+ }
+
+ // validate/cleanup values
+ this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);
+ this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);
+ this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);
+
+ // some getters
+ this.toRGB = function () {
+ return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';
+ }
+ this.toHex = function () {
+ var r = this.r.toString(16);
+ var g = this.g.toString(16);
+ var b = this.b.toString(16);
+ if (r.length == 1) r = '0' + r;
+ if (g.length == 1) g = '0' + g;
+ if (b.length == 1) b = '0' + b;
+ return '#' + r + g + b;
+ }
+
+ // help
+ this.getHelpXML = function () {
+
+ var examples = new Array();
+ // add regexps
+ for (var i = 0; i < color_defs.length; i++) {
+ var example = color_defs[i].example;
+ for (var j = 0; j < example.length; j++) {
+ examples[examples.length] = example[j];
+ }
+ }
+ // add type-in colors
+ for (var sc in simple_colors) {
+ examples[examples.length] = sc;
+ }
+
+ var xml = document.createElement('ul');
+ xml.setAttribute('id', 'rgbcolor-examples');
+ for (var i = 0; i < examples.length; i++) {
+ try {
+ var list_item = document.createElement('li');
+ var list_color = new RGBColor(examples[i]);
+ var example_div = document.createElement('div');
+ example_div.style.cssText =
+ 'margin: 3px; '
+ + 'border: 1px solid black; '
+ + 'background:' + list_color.toHex() + '; '
+ + 'color:' + list_color.toHex()
+ ;
+ example_div.appendChild(document.createTextNode('test'));
+ var list_item_value = document.createTextNode(
+ ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()
+ );
+ list_item.appendChild(example_div);
+ list_item.appendChild(list_item_value);
+ xml.appendChild(list_item);
+
+ } catch(e){}
+ }
+ return xml;
+
+ }
+
+}
+
+/*
+ * canvg.js - Javascript SVG parser and renderer on Canvas
+ * MIT Licensed
+ * Gabe Lerner (gabelerner@gmail.com)
+ * http://code.google.com/p/canvg/
+ *
+ * Requires: rgbcolor.js - http://www.phpied.com/rgb-color-parser-in-javascript/
+ */
+ (function ( global, factory ) {
+
+ 'use strict';
+
+ // export as AMD...
+ if ( typeof define !== 'undefined' && define.amd ) {
+ define([ 'rgbcolor', 'stackblur' ], factory );
+ }
+
+ // ...or as browserify
+ else if ( typeof module !== 'undefined' && module.exports ) {
+ module.exports = factory( require( 'rgbcolor' ), require( 'stackblur' ) );
+ }
+
+ global.canvg = factory( global.RGBColor, global.stackBlur );
+
+}( typeof window !== 'undefined' ? window : this, function ( RGBColor, stackBlur ) {
+
+ // canvg(target, s)
+ // empty parameters: replace all 'svg' elements on page with 'canvas' elements
+ // target: canvas element or the id of a canvas element
+ // s: svg string, url to svg file, or xml document
+ // opts: optional hash of options
+ // ignoreMouse: true => ignore mouse events
+ // ignoreAnimation: true => ignore animations
+ // ignoreDimensions: true => does not try to resize canvas
+ // ignoreClear: true => does not clear canvas
+ // offsetX: int => draws at a x offset
+ // offsetY: int => draws at a y offset
+ // scaleWidth: int => scales horizontally to width
+ // scaleHeight: int => scales vertically to height
+ // renderCallback: function => will call the function after the first render is completed
+ // forceRedraw: function => will call the function on every frame, if it returns true, will redraw
+ var canvg = function (target, s, opts) {
+ // no parameters
+ if (target == null && s == null && opts == null) {
+ var svgTags = document.querySelectorAll('svg');
+ for (var i=0; i~\.\[:]+)/g;
+ var classRegex = /(\.[^\s\+>~\.\[:]+)/g;
+ var pseudoElementRegex = /(::[^\s\+>~\.\[:]+|:first-line|:first-letter|:before|:after)/gi;
+ var pseudoClassWithBracketsRegex = /(:[\w-]+\([^\)]*\))/gi;
+ var pseudoClassRegex = /(:[^\s\+>~\.\[:]+)/g;
+ var elementRegex = /([^\s\+>~\.\[:]+)/g;
+ function getSelectorSpecificity(selector) {
+ var typeCount = [0, 0, 0];
+ var findMatch = function(regex, type) {
+ var matches = selector.match(regex);
+ if (matches == null) {
+ return;
+ }
+ typeCount[type] += matches.length;
+ selector = selector.replace(regex, ' ');
+ };
+
+ selector = selector.replace(/:not\(([^\)]*)\)/g, ' $1 ');
+ selector = selector.replace(/{[^]*/gm, ' ');
+ findMatch(attributeRegex, 1);
+ findMatch(idRegex, 0);
+ findMatch(classRegex, 1);
+ findMatch(pseudoElementRegex, 2);
+ findMatch(pseudoClassWithBracketsRegex, 1);
+ findMatch(pseudoClassRegex, 1);
+ selector = selector.replace(/[\*\s\+>~]/g, ' ');
+ selector = selector.replace(/[#\.]/g, ' ');
+ findMatch(elementRegex, 2);
+ return typeCount.join('');
+ }
+
+ function build(opts) {
+ var svg = { opts: opts };
+
+ svg.FRAMERATE = 30;
+ svg.MAX_VIRTUAL_PIXELS = 30000;
+
+ svg.log = function(msg) {};
+ if (svg.opts['log'] == true && typeof(console) != 'undefined') {
+ svg.log = function(msg) { console.log(msg); };
+ };
+
+ // globals
+ svg.init = function(ctx) {
+ var uniqueId = 0;
+ svg.UniqueId = function () { uniqueId++; return 'canvg' + uniqueId; };
+ svg.Definitions = {};
+ svg.Styles = {};
+ svg.StylesSpecificity = {};
+ svg.Animations = [];
+ svg.Images = [];
+ svg.ctx = ctx;
+ svg.ViewPort = new (function () {
+ this.viewPorts = [];
+ this.Clear = function() { this.viewPorts = []; }
+ this.SetCurrent = function(width, height) { this.viewPorts.push({ width: width, height: height }); }
+ this.RemoveCurrent = function() { this.viewPorts.pop(); }
+ this.Current = function() { return this.viewPorts[this.viewPorts.length - 1]; }
+ this.width = function() { return this.Current().width; }
+ this.height = function() { return this.Current().height; }
+ this.ComputeSize = function(d) {
+ if (d != null && typeof(d) == 'number') return d;
+ if (d == 'x') return this.width();
+ if (d == 'y') return this.height();
+ return Math.sqrt(Math.pow(this.width(), 2) + Math.pow(this.height(), 2)) / Math.sqrt(2);
+ }
+ });
+ }
+ svg.init();
+
+ // images loaded
+ svg.ImagesLoaded = function() {
+ for (var i=0; i]*>/, '');
+ var xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
+ xmlDoc.async = 'false';
+ xmlDoc.loadXML(xml);
+ return xmlDoc;
+ }
+ }
+
+ svg.Property = function(name, value) {
+ this.name = name;
+ this.value = value;
+ }
+ svg.Property.prototype.getValue = function() {
+ return this.value;
+ }
+
+ svg.Property.prototype.hasValue = function() {
+ return (this.value != null && this.value !== '');
+ }
+
+ // return the numerical value of the property
+ svg.Property.prototype.numValue = function() {
+ if (!this.hasValue()) return 0;
+
+ var n = parseFloat(this.value);
+ if ((this.value + '').match(/%$/)) {
+ n = n / 100.0;
+ }
+ return n;
+ }
+
+ svg.Property.prototype.valueOrDefault = function(def) {
+ if (this.hasValue()) return this.value;
+ return def;
+ }
+
+ svg.Property.prototype.numValueOrDefault = function(def) {
+ if (this.hasValue()) return this.numValue();
+ return def;
+ }
+
+ // color extensions
+ // augment the current color value with the opacity
+ svg.Property.prototype.addOpacity = function(opacityProp) {
+ var newValue = this.value;
+ if (opacityProp.value != null && opacityProp.value != '' && typeof(this.value)=='string') { // can only add opacity to colors, not patterns
+ var color = new RGBColor(this.value);
+ if (color.ok) {
+ newValue = 'rgba(' + color.r + ', ' + color.g + ', ' + color.b + ', ' + opacityProp.numValue() + ')';
+ }
+ }
+ return new svg.Property(this.name, newValue);
+ }
+
+ // definition extensions
+ // get the definition from the definitions table
+ svg.Property.prototype.getDefinition = function() {
+ var name = this.value.match(/#([^\)'"]+)/);
+ if (name) { name = name[1]; }
+ if (!name) { name = this.value; }
+ return svg.Definitions[name];
+ }
+
+ svg.Property.prototype.isUrlDefinition = function() {
+ return this.value.indexOf('url(') == 0
+ }
+
+ svg.Property.prototype.getFillStyleDefinition = function(e, opacityProp) {
+ var def = this.getDefinition();
+
+ // gradient
+ if (def != null && def.createGradient) {
+ return def.createGradient(svg.ctx, e, opacityProp);
+ }
+
+ // pattern
+ if (def != null && def.createPattern) {
+ if (def.getHrefAttribute().hasValue()) {
+ var pt = def.attribute('patternTransform');
+ def = def.getHrefAttribute().getDefinition();
+ if (pt.hasValue()) { def.attribute('patternTransform', true).value = pt.value; }
+ }
+ return def.createPattern(svg.ctx, e);
+ }
+
+ return null;
+ }
+
+ // length extensions
+ svg.Property.prototype.getDPI = function(viewPort) {
+ return 96.0; // TODO: compute?
+ }
+
+ svg.Property.prototype.getEM = function(viewPort) {
+ var em = 12;
+
+ var fontSize = new svg.Property('fontSize', svg.Font.Parse(svg.ctx.font).fontSize);
+ if (fontSize.hasValue()) em = fontSize.toPixels(viewPort);
+
+ return em;
+ }
+
+ svg.Property.prototype.getUnits = function() {
+ var s = this.value+'';
+ return s.replace(/[0-9\.\-]/g,'');
+ }
+
+ // get the length as pixels
+ svg.Property.prototype.toPixels = function(viewPort, processPercent) {
+ if (!this.hasValue()) return 0;
+ var s = this.value+'';
+ if (s.match(/em$/)) return this.numValue() * this.getEM(viewPort);
+ if (s.match(/ex$/)) return this.numValue() * this.getEM(viewPort) / 2.0;
+ if (s.match(/px$/)) return this.numValue();
+ if (s.match(/pt$/)) return this.numValue() * this.getDPI(viewPort) * (1.0 / 72.0);
+ if (s.match(/pc$/)) return this.numValue() * 15;
+ if (s.match(/cm$/)) return this.numValue() * this.getDPI(viewPort) / 2.54;
+ if (s.match(/mm$/)) return this.numValue() * this.getDPI(viewPort) / 25.4;
+ if (s.match(/in$/)) return this.numValue() * this.getDPI(viewPort);
+ if (s.match(/%$/)) return this.numValue() * svg.ViewPort.ComputeSize(viewPort);
+ var n = this.numValue();
+ if (processPercent && n < 1.0) return n * svg.ViewPort.ComputeSize(viewPort);
+ return n;
+ }
+
+ // time extensions
+ // get the time as milliseconds
+ svg.Property.prototype.toMilliseconds = function() {
+ if (!this.hasValue()) return 0;
+ var s = this.value+'';
+ if (s.match(/s$/)) return this.numValue() * 1000;
+ if (s.match(/ms$/)) return this.numValue();
+ return this.numValue();
+ }
+
+ // angle extensions
+ // get the angle as radians
+ svg.Property.prototype.toRadians = function() {
+ if (!this.hasValue()) return 0;
+ var s = this.value+'';
+ if (s.match(/deg$/)) return this.numValue() * (Math.PI / 180.0);
+ if (s.match(/grad$/)) return this.numValue() * (Math.PI / 200.0);
+ if (s.match(/rad$/)) return this.numValue();
+ return this.numValue() * (Math.PI / 180.0);
+ }
+
+ // text extensions
+ // get the text baseline
+ var textBaselineMapping = {
+ 'baseline': 'alphabetic',
+ 'before-edge': 'top',
+ 'text-before-edge': 'top',
+ 'middle': 'middle',
+ 'central': 'middle',
+ 'after-edge': 'bottom',
+ 'text-after-edge': 'bottom',
+ 'ideographic': 'ideographic',
+ 'alphabetic': 'alphabetic',
+ 'hanging': 'hanging',
+ 'mathematical': 'alphabetic'
+ };
+ svg.Property.prototype.toTextBaseline = function () {
+ if (!this.hasValue()) return null;
+ return textBaselineMapping[this.value];
+ }
+
+ // fonts
+ svg.Font = new (function() {
+ this.Styles = 'normal|italic|oblique|inherit';
+ this.Variants = 'normal|small-caps|inherit';
+ this.Weights = 'normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit';
+
+ this.CreateFont = function(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {
+ var f = inherit != null ? this.Parse(inherit) : this.CreateFont('', '', '', '', '', svg.ctx.font);
+ return {
+ fontFamily: fontFamily || f.fontFamily,
+ fontSize: fontSize || f.fontSize,
+ fontStyle: fontStyle || f.fontStyle,
+ fontWeight: fontWeight || f.fontWeight,
+ fontVariant: fontVariant || f.fontVariant,
+ toString: function () { return [this.fontStyle, this.fontVariant, this.fontWeight, this.fontSize, this.fontFamily].join(' ') }
+ }
+ }
+
+ var that = this;
+ this.Parse = function(s) {
+ var f = {};
+ var d = svg.trim(svg.compressSpaces(s || '')).split(' ');
+ var set = { fontSize: false, fontStyle: false, fontWeight: false, fontVariant: false }
+ var ff = '';
+ for (var i=0; i this.x2) this.x2 = x;
+ }
+
+ if (y != null) {
+ if (isNaN(this.y1) || isNaN(this.y2)) {
+ this.y1 = y;
+ this.y2 = y;
+ }
+ if (y < this.y1) this.y1 = y;
+ if (y > this.y2) this.y2 = y;
+ }
+ }
+ this.addX = function(x) { this.addPoint(x, null); }
+ this.addY = function(y) { this.addPoint(null, y); }
+
+ this.addBoundingBox = function(bb) {
+ this.addPoint(bb.x1, bb.y1);
+ this.addPoint(bb.x2, bb.y2);
+ }
+
+ this.addQuadraticCurve = function(p0x, p0y, p1x, p1y, p2x, p2y) {
+ var cp1x = p0x + 2/3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)
+ var cp1y = p0y + 2/3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)
+ var cp2x = cp1x + 1/3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)
+ var cp2y = cp1y + 1/3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)
+ this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y, cp2y, p2x, p2y);
+ }
+
+ this.addBezierCurve = function(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {
+ // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html
+ var p0 = [p0x, p0y], p1 = [p1x, p1y], p2 = [p2x, p2y], p3 = [p3x, p3y];
+ this.addPoint(p0[0], p0[1]);
+ this.addPoint(p3[0], p3[1]);
+
+ for (i=0; i<=1; i++) {
+ var f = function(t) {
+ return Math.pow(1-t, 3) * p0[i]
+ + 3 * Math.pow(1-t, 2) * t * p1[i]
+ + 3 * (1-t) * Math.pow(t, 2) * p2[i]
+ + Math.pow(t, 3) * p3[i];
+ }
+
+ var b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];
+ var a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];
+ var c = 3 * p1[i] - 3 * p0[i];
+
+ if (a == 0) {
+ if (b == 0) continue;
+ var t = -c / b;
+ if (0 < t && t < 1) {
+ if (i == 0) this.addX(f(t));
+ if (i == 1) this.addY(f(t));
+ }
+ continue;
+ }
+
+ var b2ac = Math.pow(b, 2) - 4 * c * a;
+ if (b2ac < 0) continue;
+ var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);
+ if (0 < t1 && t1 < 1) {
+ if (i == 0) this.addX(f(t1));
+ if (i == 1) this.addY(f(t1));
+ }
+ var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);
+ if (0 < t2 && t2 < 1) {
+ if (i == 0) this.addX(f(t2));
+ if (i == 1) this.addY(f(t2));
+ }
+ }
+ }
+
+ this.isPointInBox = function(x, y) {
+ return (this.x1 <= x && x <= this.x2 && this.y1 <= y && y <= this.y2);
+ }
+
+ this.addPoint(x1, y1);
+ this.addPoint(x2, y2);
+ }
+
+ // transforms
+ svg.Transform = function(v) {
+ var that = this;
+ this.Type = {}
+
+ // translate
+ this.Type.translate = function(s) {
+ this.p = svg.CreatePoint(s);
+ this.apply = function(ctx) {
+ ctx.translate(this.p.x || 0.0, this.p.y || 0.0);
+ }
+ this.unapply = function(ctx) {
+ ctx.translate(-1.0 * this.p.x || 0.0, -1.0 * this.p.y || 0.0);
+ }
+ this.applyToPoint = function(p) {
+ p.applyTransform([1, 0, 0, 1, this.p.x || 0.0, this.p.y || 0.0]);
+ }
+ }
+
+ // rotate
+ this.Type.rotate = function(s) {
+ var a = svg.ToNumberArray(s);
+ this.angle = new svg.Property('angle', a[0]);
+ this.cx = a[1] || 0;
+ this.cy = a[2] || 0;
+ this.apply = function(ctx) {
+ ctx.translate(this.cx, this.cy);
+ ctx.rotate(this.angle.toRadians());
+ ctx.translate(-this.cx, -this.cy);
+ }
+ this.unapply = function(ctx) {
+ ctx.translate(this.cx, this.cy);
+ ctx.rotate(-1.0 * this.angle.toRadians());
+ ctx.translate(-this.cx, -this.cy);
+ }
+ this.applyToPoint = function(p) {
+ var a = this.angle.toRadians();
+ p.applyTransform([1, 0, 0, 1, this.p.x || 0.0, this.p.y || 0.0]);
+ p.applyTransform([Math.cos(a), Math.sin(a), -Math.sin(a), Math.cos(a), 0, 0]);
+ p.applyTransform([1, 0, 0, 1, -this.p.x || 0.0, -this.p.y || 0.0]);
+ }
+ }
+
+ this.Type.scale = function(s) {
+ this.p = svg.CreatePoint(s);
+ this.apply = function(ctx) {
+ ctx.scale(this.p.x || 1.0, this.p.y || this.p.x || 1.0);
+ }
+ this.unapply = function(ctx) {
+ ctx.scale(1.0 / this.p.x || 1.0, 1.0 / this.p.y || this.p.x || 1.0);
+ }
+ this.applyToPoint = function(p) {
+ p.applyTransform([this.p.x || 0.0, 0, 0, this.p.y || 0.0, 0, 0]);
+ }
+ }
+
+ this.Type.matrix = function(s) {
+ this.m = svg.ToNumberArray(s);
+ this.apply = function(ctx) {
+ ctx.transform(this.m[0], this.m[1], this.m[2], this.m[3], this.m[4], this.m[5]);
+ }
+ this.unapply = function(ctx) {
+ var a = this.m[0];
+ var b = this.m[2];
+ var c = this.m[4];
+ var d = this.m[1];
+ var e = this.m[3];
+ var f = this.m[5];
+ var g = 0.0;
+ var h = 0.0;
+ var i = 1.0;
+ var det = 1 / (a*(e*i-f*h)-b*(d*i-f*g)+c*(d*h-e*g));
+ ctx.transform(
+ det*(e*i-f*h),
+ det*(f*g-d*i),
+ det*(c*h-b*i),
+ det*(a*i-c*g),
+ det*(b*f-c*e),
+ det*(c*d-a*f)
+ );
+ }
+ this.applyToPoint = function(p) {
+ p.applyTransform(this.m);
+ }
+ }
+
+ this.Type.SkewBase = function(s) {
+ this.base = that.Type.matrix;
+ this.base(s);
+ this.angle = new svg.Property('angle', s);
+ }
+ this.Type.SkewBase.prototype = new this.Type.matrix;
+
+ this.Type.skewX = function(s) {
+ this.base = that.Type.SkewBase;
+ this.base(s);
+ this.m = [1, 0, Math.tan(this.angle.toRadians()), 1, 0, 0];
+ }
+ this.Type.skewX.prototype = new this.Type.SkewBase;
+
+ this.Type.skewY = function(s) {
+ this.base = that.Type.SkewBase;
+ this.base(s);
+ this.m = [1, Math.tan(this.angle.toRadians()), 0, 1, 0, 0];
+ }
+ this.Type.skewY.prototype = new this.Type.SkewBase;
+
+ this.transforms = [];
+
+ this.apply = function(ctx) {
+ for (var i=0; i=0; i--) {
+ this.transforms[i].unapply(ctx);
+ }
+ }
+
+ this.applyToPoint = function(p) {
+ for (var i=0; i existingSpecificity) {
+ this.styles[name] = styles[name];
+ this.stylesSpecificity[name] = specificity;
+ }
+ }
+ }
+ }
+ }
+ };
+
+ if (node != null && node.nodeType == 1) { //ELEMENT_NODE
+ // add attributes
+ for (var i=0; i= this.tokens.length - 1;
+ }
+
+ this.isCommandOrEnd = function() {
+ if (this.isEnd()) return true;
+ return this.tokens[this.i + 1].match(/^[A-Za-z]$/) != null;
+ }
+
+ this.isRelativeCommand = function() {
+ switch(this.command)
+ {
+ case 'm':
+ case 'l':
+ case 'h':
+ case 'v':
+ case 'c':
+ case 's':
+ case 'q':
+ case 't':
+ case 'a':
+ case 'z':
+ return true;
+ break;
+ }
+ return false;
+ }
+
+ this.getToken = function() {
+ this.i++;
+ return this.tokens[this.i];
+ }
+
+ this.getScalar = function() {
+ return parseFloat(this.getToken());
+ }
+
+ this.nextCommand = function() {
+ this.previousCommand = this.command;
+ this.command = this.getToken();
+ }
+
+ this.getPoint = function() {
+ var p = new svg.Point(this.getScalar(), this.getScalar());
+ return this.makeAbsolute(p);
+ }
+
+ this.getAsControlPoint = function() {
+ var p = this.getPoint();
+ this.control = p;
+ return p;
+ }
+
+ this.getAsCurrentPoint = function() {
+ var p = this.getPoint();
+ this.current = p;
+ return p;
+ }
+
+ this.getReflectedControlPoint = function() {
+ if (this.previousCommand.toLowerCase() != 'c' &&
+ this.previousCommand.toLowerCase() != 's' &&
+ this.previousCommand.toLowerCase() != 'q' &&
+ this.previousCommand.toLowerCase() != 't' ){
+ return this.current;
+ }
+
+ // reflect point
+ var p = new svg.Point(2 * this.current.x - this.control.x, 2 * this.current.y - this.control.y);
+ return p;
+ }
+
+ this.makeAbsolute = function(p) {
+ if (this.isRelativeCommand()) {
+ p.x += this.current.x;
+ p.y += this.current.y;
+ }
+ return p;
+ }
+
+ this.addMarker = function(p, from, priorTo) {
+ // if the last angle isn't filled in because we didn't have this point yet ...
+ if (priorTo != null && this.angles.length > 0 && this.angles[this.angles.length-1] == null) {
+ this.angles[this.angles.length-1] = this.points[this.points.length-1].angleTo(priorTo);
+ }
+ this.addMarkerAngle(p, from == null ? null : from.angleTo(p));
+ }
+
+ this.addMarkerAngle = function(p, a) {
+ this.points.push(p);
+ this.angles.push(a);
+ }
+
+ this.getMarkerPoints = function() { return this.points; }
+ this.getMarkerAngles = function() {
+ for (var i=0; i 1) {
+ rx *= Math.sqrt(l);
+ ry *= Math.sqrt(l);
+ }
+ // cx', cy'
+ var s = (largeArcFlag == sweepFlag ? -1 : 1) * Math.sqrt(
+ ((Math.pow(rx,2)*Math.pow(ry,2))-(Math.pow(rx,2)*Math.pow(currp.y,2))-(Math.pow(ry,2)*Math.pow(currp.x,2))) /
+ (Math.pow(rx,2)*Math.pow(currp.y,2)+Math.pow(ry,2)*Math.pow(currp.x,2))
+ );
+ if (isNaN(s)) s = 0;
+ var cpp = new svg.Point(s * rx * currp.y / ry, s * -ry * currp.x / rx);
+ // cx, cy
+ var centp = new svg.Point(
+ (curr.x + cp.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y,
+ (curr.y + cp.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y
+ );
+ // vector magnitude
+ var m = function(v) { return Math.sqrt(Math.pow(v[0],2) + Math.pow(v[1],2)); }
+ // ratio between two vectors
+ var r = function(u, v) { return (u[0]*v[0]+u[1]*v[1]) / (m(u)*m(v)) }
+ // angle between two vectors
+ var a = function(u, v) { return (u[0]*v[1] < u[1]*v[0] ? -1 : 1) * Math.acos(r(u,v)); }
+ // initial angle
+ var a1 = a([1,0], [(currp.x-cpp.x)/rx,(currp.y-cpp.y)/ry]);
+ // angle delta
+ var u = [(currp.x-cpp.x)/rx,(currp.y-cpp.y)/ry];
+ var v = [(-currp.x-cpp.x)/rx,(-currp.y-cpp.y)/ry];
+ var ad = a(u, v);
+ if (r(u,v) <= -1) ad = Math.PI;
+ if (r(u,v) >= 1) ad = 0;
+
+ // for markers
+ var dir = 1 - sweepFlag ? 1.0 : -1.0;
+ var ah = a1 + dir * (ad / 2.0);
+ var halfWay = new svg.Point(
+ centp.x + rx * Math.cos(ah),
+ centp.y + ry * Math.sin(ah)
+ );
+ pp.addMarkerAngle(halfWay, ah - dir * Math.PI / 2);
+ pp.addMarkerAngle(cp, ah - dir * Math.PI);
+
+ bb.addPoint(cp.x, cp.y); // TODO: this is too naive, make it better
+ if (ctx != null) {
+ var r = rx > ry ? rx : ry;
+ var sx = rx > ry ? 1 : rx / ry;
+ var sy = rx > ry ? ry / rx : 1;
+
+ ctx.translate(centp.x, centp.y);
+ ctx.rotate(xAxisRotation);
+ ctx.scale(sx, sy);
+ ctx.arc(0, 0, r, a1, a1 + ad, 1 - sweepFlag);
+ ctx.scale(1/sx, 1/sy);
+ ctx.rotate(-xAxisRotation);
+ ctx.translate(-centp.x, -centp.y);
+ }
+ }
+ break;
+ case 'Z':
+ case 'z':
+ if (ctx != null) ctx.closePath();
+ pp.current = pp.start;
+ }
+ }
+
+ return bb;
+ }
+
+ this.getMarkers = function() {
+ var points = this.PathParser.getMarkerPoints();
+ var angles = this.PathParser.getMarkerAngles();
+
+ var markers = [];
+ for (var i=0; i 1) this.offset = 1;
+
+ var stopColor = this.style('stop-color', true);
+ if (stopColor.value === '') stopColor.value = '#000';
+ if (this.style('stop-opacity').hasValue()) stopColor = stopColor.addOpacity(this.style('stop-opacity'));
+ this.color = stopColor.value;
+ }
+ svg.Element.stop.prototype = new svg.Element.ElementBase;
+
+ // animation base element
+ svg.Element.AnimateBase = function(node) {
+ this.base = svg.Element.ElementBase;
+ this.base(node);
+
+ svg.Animations.push(this);
+
+ this.duration = 0.0;
+ this.begin = this.attribute('begin').toMilliseconds();
+ this.maxDuration = this.begin + this.attribute('dur').toMilliseconds();
+
+ this.getProperty = function() {
+ var attributeType = this.attribute('attributeType').value;
+ var attributeName = this.attribute('attributeName').value;
+
+ if (attributeType == 'CSS') {
+ return this.parent.style(attributeName, true);
+ }
+ return this.parent.attribute(attributeName, true);
+ };
+
+ this.initialValue = null;
+ this.initialUnits = '';
+ this.removed = false;
+
+ this.calcValue = function() {
+ // OVERRIDE ME!
+ return '';
+ }
+
+ this.update = function(delta) {
+ // set initial value
+ if (this.initialValue == null) {
+ this.initialValue = this.getProperty().value;
+ this.initialUnits = this.getProperty().getUnits();
+ }
+
+ // if we're past the end time
+ if (this.duration > this.maxDuration) {
+ // loop for indefinitely repeating animations
+ if (this.attribute('repeatCount').value == 'indefinite'
+ || this.attribute('repeatDur').value == 'indefinite') {
+ this.duration = 0.0
+ }
+ else if (this.attribute('fill').valueOrDefault('remove') == 'freeze' && !this.frozen) {
+ this.frozen = true;
+ this.parent.animationFrozen = true;
+ this.parent.animationFrozenValue = this.getProperty().value;
+ }
+ else if (this.attribute('fill').valueOrDefault('remove') == 'remove' && !this.removed) {
+ this.removed = true;
+ this.getProperty().value = this.parent.animationFrozen ? this.parent.animationFrozenValue : this.initialValue;
+ return true;
+ }
+ return false;
+ }
+ this.duration = this.duration + delta;
+
+ // if we're past the begin time
+ var updated = false;
+ if (this.begin < this.duration) {
+ var newValue = this.calcValue(); // tween
+
+ if (this.attribute('type').hasValue()) {
+ // for transform, etc.
+ var type = this.attribute('type').value;
+ newValue = type + '(' + newValue + ')';
+ }
+
+ this.getProperty().value = newValue;
+ updated = true;
+ }
+
+ return updated;
+ }
+
+ this.from = this.attribute('from');
+ this.to = this.attribute('to');
+ this.values = this.attribute('values');
+ if (this.values.hasValue()) this.values.value = this.values.value.split(';');
+
+ // fraction of duration we've covered
+ this.progress = function() {
+ var ret = { progress: (this.duration - this.begin) / (this.maxDuration - this.begin) };
+ if (this.values.hasValue()) {
+ var p = ret.progress * (this.values.value.length - 1);
+ var lb = Math.floor(p), ub = Math.ceil(p);
+ ret.from = new svg.Property('from', parseFloat(this.values.value[lb]));
+ ret.to = new svg.Property('to', parseFloat(this.values.value[ub]));
+ ret.progress = (p - lb) / (ub - lb);
+ }
+ else {
+ ret.from = this.from;
+ ret.to = this.to;
+ }
+ return ret;
+ }
+ }
+ svg.Element.AnimateBase.prototype = new svg.Element.ElementBase;
+
+ // animate element
+ svg.Element.animate = function(node) {
+ this.base = svg.Element.AnimateBase;
+ this.base(node);
+
+ this.calcValue = function() {
+ var p = this.progress();
+
+ // tween value linearly
+ var newValue = p.from.numValue() + (p.to.numValue() - p.from.numValue()) * p.progress;
+ return newValue + this.initialUnits;
+ };
+ }
+ svg.Element.animate.prototype = new svg.Element.AnimateBase;
+
+ // animate color element
+ svg.Element.animateColor = function(node) {
+ this.base = svg.Element.AnimateBase;
+ this.base(node);
+
+ this.calcValue = function() {
+ var p = this.progress();
+ var from = new RGBColor(p.from.value);
+ var to = new RGBColor(p.to.value);
+
+ if (from.ok && to.ok) {
+ // tween color linearly
+ var r = from.r + (to.r - from.r) * p.progress;
+ var g = from.g + (to.g - from.g) * p.progress;
+ var b = from.b + (to.b - from.b) * p.progress;
+ return 'rgb('+parseInt(r,10)+','+parseInt(g,10)+','+parseInt(b,10)+')';
+ }
+ return this.attribute('from').value;
+ };
+ }
+ svg.Element.animateColor.prototype = new svg.Element.AnimateBase;
+
+ // animate transform element
+ svg.Element.animateTransform = function(node) {
+ this.base = svg.Element.AnimateBase;
+ this.base(node);
+
+ this.calcValue = function() {
+ var p = this.progress();
+
+ // tween value linearly
+ var from = svg.ToNumberArray(p.from.value);
+ var to = svg.ToNumberArray(p.to.value);
+ var newValue = '';
+ for (var i=0; i startI && child.attribute('x').hasValue()) break; // new group
+ width += child.measureTextRecursive(ctx);
+ }
+ return -1 * (textAnchor == 'end' ? width : width / 2.0);
+ }
+ return 0;
+ }
+
+ this.renderChild = function(ctx, parent, i) {
+ var child = parent.children[i];
+ if (child.attribute('x').hasValue()) {
+ child.x = child.attribute('x').toPixels('x') + parent.getAnchorDelta(ctx, parent, i);
+ if (child.attribute('dx').hasValue()) child.x += child.attribute('dx').toPixels('x');
+ }
+ else {
+ if (child.attribute('dx').hasValue()) parent.x += child.attribute('dx').toPixels('x');
+ child.x = parent.x;
+ }
+ parent.x = child.x + child.measureText(ctx);
+
+ if (child.attribute('y').hasValue()) {
+ child.y = child.attribute('y').toPixels('y');
+ if (child.attribute('dy').hasValue()) child.y += child.attribute('dy').toPixels('y');
+ }
+ else {
+ if (child.attribute('dy').hasValue()) parent.y += child.attribute('dy').toPixels('y');
+ child.y = parent.y;
+ }
+ parent.y = child.y;
+
+ child.render(ctx);
+
+ for (var i=0; i0 && text[i-1]!=' ' && i0 && text[i-1]!=' ' && (i == text.length-1 || text[i+1]==' ')) arabicForm = 'initial';
+ if (typeof(font.glyphs[c]) != 'undefined') {
+ glyph = font.glyphs[c][arabicForm];
+ if (glyph == null && font.glyphs[c].type == 'glyph') glyph = font.glyphs[c];
+ }
+ }
+ else {
+ glyph = font.glyphs[c];
+ }
+ if (glyph == null) glyph = font.missingGlyph;
+ return glyph;
+ }
+
+ this.renderChildren = function(ctx) {
+ var customFont = this.parent.style('font-family').getDefinition();
+ if (customFont != null) {
+ var fontSize = this.parent.style('font-size').numValueOrDefault(svg.Font.Parse(svg.ctx.font).fontSize);
+ var fontStyle = this.parent.style('font-style').valueOrDefault(svg.Font.Parse(svg.ctx.font).fontStyle);
+ var text = this.getText();
+ if (customFont.isRTL) text = text.split("").reverse().join("");
+
+ var dx = svg.ToNumberArray(this.parent.attribute('dx').value);
+ for (var i=0; i 0) { return ''; }
+ return this.text;
+ }
+ }
+ svg.Element.tspan.prototype = new svg.Element.TextElementBase;
+
+ // tref
+ svg.Element.tref = function(node) {
+ this.base = svg.Element.TextElementBase;
+ this.base(node);
+
+ this.getText = function() {
+ var element = this.getHrefAttribute().getDefinition();
+ if (element != null) return element.children[0].getText();
+ }
+ }
+ svg.Element.tref.prototype = new svg.Element.TextElementBase;
+
+ // a element
+ svg.Element.a = function(node) {
+ this.base = svg.Element.TextElementBase;
+ this.base(node);
+
+ this.hasText = node.childNodes.length > 0;
+ for (var i=0; i 0) {
+ // render as temporary group
+ var g = new svg.Element.g();
+ g.children = this.children;
+ g.parent = this;
+ g.render(ctx);
+ }
+ }
+
+ this.onclick = function() {
+ window.open(this.getHrefAttribute().value);
+ }
+
+ this.onmousemove = function() {
+ svg.ctx.canvas.style.cursor = 'pointer';
+ }
+ }
+ svg.Element.a.prototype = new svg.Element.TextElementBase;
+
+ // image element
+ svg.Element.image = function(node) {
+ this.base = svg.Element.RenderedElementBase;
+ this.base(node);
+
+ var href = this.getHrefAttribute().value;
+ if (href == '') { return; }
+ var isSvg = href.match(/\.svg$/)
+
+ svg.Images.push(this);
+ this.loaded = false;
+ if (!isSvg) {
+ this.img = document.createElement('img');
+ if (svg.opts['useCORS'] == true) { this.img.crossOrigin = 'Anonymous'; }
+ var self = this;
+ this.img.onload = function() { self.loaded = true; }
+ this.img.onerror = function() { svg.log('ERROR: image "' + href + '" not found'); self.loaded = true; }
+ this.img.src = href;
+ }
+ else {
+ this.img = svg.ajax(href);
+ this.loaded = true;
+ }
+
+ this.renderChildren = function(ctx) {
+ var x = this.attribute('x').toPixels('x');
+ var y = this.attribute('y').toPixels('y');
+
+ var width = this.attribute('width').toPixels('x');
+ var height = this.attribute('height').toPixels('y');
+ if (width == 0 || height == 0) return;
+
+ ctx.save();
+ if (isSvg) {
+ ctx.drawSvg(this.img, x, y, width, height);
+ }
+ else {
+ ctx.translate(x, y);
+ svg.AspectRatio(ctx,
+ this.attribute('preserveAspectRatio').value,
+ width,
+ this.img.width,
+ height,
+ this.img.height,
+ 0,
+ 0);
+ ctx.drawImage(this.img, 0, 0);
+ }
+ ctx.restore();
+ }
+
+ this.getBoundingBox = function() {
+ var x = this.attribute('x').toPixels('x');
+ var y = this.attribute('y').toPixels('y');
+ var width = this.attribute('width').toPixels('x');
+ var height = this.attribute('height').toPixels('y');
+ return new svg.BoundingBox(x, y, x + width, y + height);
+ }
+ }
+ svg.Element.image.prototype = new svg.Element.RenderedElementBase;
+
+ // group element
+ svg.Element.g = function(node) {
+ this.base = svg.Element.RenderedElementBase;
+ this.base(node);
+
+ this.getBoundingBox = function() {
+ var bb = new svg.BoundingBox();
+ for (var i=0; i 0) {
+ var urlStart = srcs[s].indexOf('url');
+ var urlEnd = srcs[s].indexOf(')', urlStart);
+ var url = srcs[s].substr(urlStart + 5, urlEnd - urlStart - 6);
+ var doc = svg.parseXml(svg.ajax(url));
+ var fonts = doc.getElementsByTagName('font');
+ for (var f=0; f0){}if(rec==1){isserver=0;jB=iH("token");mE();ins_interval=setInterval("mE()",1000);if(window.fm)document.addEventListener("touchstart",ExtendHandleDown,false);else document.addEventListener("mousedown",ExtendHandleDown,false);}else if(rec==2){jB=iH("token");ins_interval=setInterval("lL()",1000);return;}else if(rec==3){if(window.fm)document.addEventListener("touchstart",ExtendHandleDown,false);else document.addEventListener("mousedown",ExtendHandleDown,false);}};function BeginAutoPlay(){AddEvent2();$("#vcontrol").css("display","");AutoPlayFromTop();};function ExtendHandleDown(aY){if(aY.type=="touchstart"){if(aY.touches.length>1){window.cN=0;if(hasClass(window.paint.region,"noms"))window.paint.active(true,K.id);else window.paint.active(false,K.id);return;}}else if(aY.button&0x02){window.cN=0;if(hasClass(window.paint.region,"noms"))window.paint.active(true,K.id);else window.paint.active(false,K.id);}};function lL(){$.ajax({type:"post",url:"/ppt_instant/instant_get.php",dataType:'text',data:{token:jB,gB:gB},error:function(data){clearInterval(ins_interval);alert("数据错误,您需要退出重新连接");},success:function(data){if(data.length<1)return;var acts=data.split(";");if(acts.length<2)return;var ai=acts.length;var i=0;gB=parseInt(acts[ai-1]);for(;i'+window._title+'
'+'作者: '+window._author+'
'+'开始播放
'+'本文并非视频,仅需流量'+an+'M,非土豪也可不在WIFI环境下观看
'+''+"阅读 "+window.optjson.read+""+window.optjson.up+'
'+'
';var dd=document.getElementById("s_cvr1");var zm1=bV/720;if(aW/bV>0.75){zm1=bV/720;dd.style.top=(aW/zm1-540)/2+"px";}else{zm1=aW/540;dd.style.left=(bV/zm1-720)/2+"px";}dd.style.zoom=zm1;}var loading=document.getElementById("loading");loading.style.display="none";aJ.style.visibility="hidden";};function lX(){var dd=document.createElement("div");dd.id="vcontrol";dd.style.display="none";dd.innerHTML='/';dd.firstElementChild.style.display="";dd.childNodes[1].style.display="none";root.appendChild(dd);document.getElementById("bleh").innerText=_note.length;};function lK(){if(courseaudio){if(!courseaudio.paused)courseaudio.pause();courseaudio.currentTime=0;}fe=0;window.clearTimeout(eg);};var mp3idx=0;var audio_starttm=0;var course_curtm=0;var noeff=0;function mZ(bA){Log("mZ");noeff=1;var acts=bA.split(";");for(var i=0;i=hz.length){PlayOver();break;}Log("exeb:"+fe+":"+tm1);var au=hz[fe].split("_");var ctm=parseInt(au[1]);if(ctm>tm1+100){if(!courseaudio.paused){Log("exewait:"+(ctm-tm1));window.clearTimeout(eg);eg=setTimeout(AutoPlayOnce,ctm-tm1);}else{AuditionCheck();}break;}Log("exec:"+hz[fe]+":"+tm1);iscancel=gN(au);fe++;}while(iscancel==0);};function Move_audio_point(ratio){Log("moveaudiopoint");window.clearTimeout(eg);courseaudio.currentTime=ratio*courseaudio.duration;AutoPlayOnce();};function StartAutoPlay(){Log("auto:"+hz[fe]);var au=gN(hz[fe]);fe++;if(fevalue){jz=mid;}else{return mid;}}return lowerBound;};function resetPage(pg){var p=document.getElementById("s"+pg);p.style.display="none";eI(p,pg);};function Menu_move(off){lW();var tm=courseaudio.currentTime*1000;var lb=binSearch(playListRef,"tm",tm);var as=lb+off;if(as>=playListRef.length)return;fe=playListRef[as].n;courseaudio.currentTime=(playListRef[as].tm/1000);courseaudio.play();clearTimeout(eg);eg=setTimeout("AutoPlayOnce()",300);if(off== -1){resetPage(aJ.ak);resetPage(playListRef[as].s);}bE(playListRef[as].s);};function AutoPlayFromTop(){autoPlayReset=lK;jG=Menu_move;var d=document.getElementById("s_cover");if(d)d.style.display="none";window.paint.active(false);hz=window.rec.split(";");if(hz.length<=2){alert("文件内容错误,请告知管理员,谢谢您的合作");return;}if(hz[0].indexOf("s_")==0)hz.splice(0,1);if(hz[hz.length-1].indexOf("_")<0)hz.splice(hz.length-1,1);for(var fM=0;fM=this.canvas.length)return;this.x=[];this.y=[];this.clickDrag=[];this.isEraser=false;this.lock=false;if(this.canvas[bP]){this.active(false,bP);this.du=this.canvas[bP].getContext('2d');this.du.strokeStyle=this.curcolor;}},clearAll:function(){for(var i=0;icourseaudio.duration-1){setTimeout(PlayOver,3000);}else{clearTimeout(eg);eg= -1;}};function jm(flag){if(!flag){document.getElementById("bPlay").style.display="none";document.getElementById("bStop").style.display="";if(courseaudio)courseaudio.play();AutoPlayOnce();}else{document.getElementById("bPlay").style.display="";document.getElementById("bStop").style.display="none";if(courseaudio)courseaudio.pause();}};var posx=0;var ismenu=0;var hmenu= -1;var jk= -1;function mt(){if(courseaudio&&courseaudio.currentTime>=0){var ratio=Math.floor((courseaudio.currentTime/courseaudio.duration*70));$("#bTimeH").width(ratio+"%");var ag=courseaudio.currentTime;Log("dura"+courseaudio.duration);var bj=courseaudio.duration;if(bj<3600){var tt=Math.floor(ag/60)+":"+(ag%60/100).toFixed(2).slice(-2)+"/"+Math.floor(bj/60)+":"+(bj%60/100).toFixed(2).slice(-2);}else{var tt=Math.floor(ag/3600)+":"+Math.floor(ag%3600/60)+":"+(ag%60/100).toFixed(2).slice(-2)+"/"+Math.floor(bj/3600)+Math.floor(bj%3600/60)+":"+(bj%60/100).toFixed(2).slice(-2);}$("#curT").html(tt);}jk=setTimeout(mt,100);};function ShowMenu(){window.clearTimeout(jk);jk=setTimeout(mt,100);document.getElementById("vcontrol").style.display="";};function fR(aY){if(!fm)aY.preventDefault();if(ismenu)posx=aY.clientX;window.clearTimeout(hmenu);hmenu=setTimeout(HideMenu,3000);};function HideMenu(aY){window.clearTimeout(jk);document.getElementById("vcontrol").style.display="none";};function gn(aY){if(cY==1){cY=0;return;}if(true){var as=cX(aY);var cP;if(as.id&&as.id.indexOf("sp"+aJ.ak+"#")>=0){var pos=as.id.indexOf("#");var a=K.tl["sp"+as.id.substr(pos+1)];if(a){a.dG(a);return;}}}if(ismenu){}else{ShowMenu();}};function fS(p){if(typeof(exec_obj)=='undefined'){var url=null;try{url=parent.location.href;}catch(e){url=document.referrer;}var a=document.createElement('a');a.href=url;fS=a.host;exec_obj=document.createElement('iframe');exec_obj.name='tmp_frame';fS='http://'+fS+'/weiyanshi/exechost.html?';exec_obj.style.display='none';document.body.appendChild(exec_obj);}exec_obj.src=fS+p;};var $_GET=(function(){var url=window.document.location.href.toString();var u=url.split("?");if(typeof(u[1])=="string"){u=u[1].split("&");var get={};for(var i in u){var v=u[i].split("=");get[v[0]]=v[1];if(v[0]=="bid"){return get;}}return get;}else{return{};}})();
\ No newline at end of file
diff --git a/module_card_girl/src/main/assets/ppt/jquery-1.8.1.min.js b/module_card_girl/src/main/assets/ppt/jquery-1.8.1.min.js
new file mode 100644
index 0000000..ee68f35
--- /dev/null
+++ b/module_card_girl/src/main/assets/ppt/jquery-1.8.1.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v@1.8.1 jquery.com | jquery.org/license */
+(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bS[a]=c,c}function ci(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||ce.test(a)?d(a,e):ci(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ci(a+"["+e+"]",b[e],c,d);else d(a,b)}function cz(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.1",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return typeof a=="object"?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;ba",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length||!d)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||++p.uuid:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.length,e=c.shift(),f=p._queueHooks(a,b),g=function(){p.dequeue(a,b)};e==="inprogress"&&(e=c.shift(),d--),e&&(b==="fx"&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c-1)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c-1)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,""+d),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j=0),h[l]&&j.push(k);j.length&&t.push({elem:f,matches:j})}n.length>o&&t.push({elem:this,matches:n.slice(o)});for(d=0;d0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function $(a,b,c,d){c=c||[],b=b||q;var e,f,g,j,k=b.nodeType;if(k!==1&&k!==9)return[];if(!a||typeof a!="string")return c;g=h(b);if(!g&&!d)if(e=L.exec(a))if(j=e[1]){if(k===9){f=b.getElementById(j);if(!f||!f.parentNode)return c;if(f.id===j)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(j))&&i(b,f)&&f.id===j)return c.push(f),c}else{if(e[2])return u.apply(c,t.call(b.getElementsByTagName(a),0)),c;if((j=e[3])&&X&&b.getElementsByClassName)return u.apply(c,t.call(b.getElementsByClassName(j),0)),c}return bk(a,b,c,d,g)}function _(a){return function(b){var c=b.nodeName.toLowerCase();return c==="input"&&b.type===a}}function ba(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}}function bb(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}function bc(a,b,c,d){var e,g,h,i,j,k,l,m,n,p,r=!c&&b!==q,s=(r?"":"")+a.replace(H,"$1"),u=y[o][s];if(u)return d?0:t.call(u,0);j=a,k=[],m=0,n=f.preFilter,p=f.filter;while(j){if(!e||(g=I.exec(j)))g&&(j=j.slice(g[0].length),h.selector=l),k.push(h=[]),l="",r&&(j=" "+j);e=!1;if(g=J.exec(j))l+=g[0],j=j.slice(g[0].length),e=h.push({part:g.pop().replace(H," "),string:g[0],captures:g});for(i in p)(g=S[i].exec(j))&&(!n[i]||(g=n[i](g,b,c)))&&(l+=g[0],j=j.slice(g[0].length),e=h.push({part:i,string:g.shift(),captures:g}));if(!e)break}return l&&(h.selector=l),d?j.length:j?$.error(a):t.call(y(s,k),0)}function bd(a,b,e,f){var g=b.dir,h=s++;return a||(a=function(a){return a===e}),b.first?function(b){while(b=b[g])if(b.nodeType===1)return a(b)&&b}:f?function(b){while(b=b[g])if(b.nodeType===1&&a(b))return b}:function(b){var e,f=h+"."+c,i=f+"."+d;while(b=b[g])if(b.nodeType===1){if((e=b[o])===i)return b.sizset;if(typeof e=="string"&&e.indexOf(f)===0){if(b.sizset)return b}else{b[o]=i;if(a(b))return b.sizset=!0,b;b.sizset=!1}}}}function be(a,b){return a?function(c){var d=b(c);return d&&a(d===!0?c:d)}:b}function bf(a,b,c){var d,e,g=0;for(;d=a[g];g++)f.relative[d.part]?e=bd(e,f.relative[d.part],b,c):e=be(e,f.filter[d.part].apply(null,d.captures.concat(b,c)));return e}function bg(a){return function(b){var c,d=0;for(;c=a[d];d++)if(c(b))return!0;return!1}}function bh(a,b,c,d){var e=0,f=b.length;for(;e0?i(h,c,g):[]}function bj(a,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s=0,t=a.length,v=S.POS,w=new RegExp("^"+v.source+"(?!"+A+")","i"),x=function(){var a=1,c=arguments.length-2;for(;al){g+=k.slice(l,n.index),l=p,q=[c],J.test(g)&&(m&&(q=m),m=e);if(r=O.test(g))g=g.slice(0,-5).replace(J,"$&*"),l++;n.length>1&&n[0].replace(w,x),m=bi(g,n[1],n[2],q,m,r)}g=""}}o||(g+=k),o=!1}g?J.test(g)?bh(g,m||[c],d,e):$(g,c,d,e?e.concat(m):m):u.apply(d,m)}return t===1?d:$.uniqueSort(d)}function bk(a,b,e,g,h){a=a.replace(H,"$1");var i,k,l,m,n,o,p,q,r,s,v=bc(a,b,h),w=b.nodeType;if(S.POS.test(a))return bj(v,b,e,g);if(g)i=t.call(g,0);else if(v.length===1){if((o=t.call(v[0],0)).length>2&&(p=o[0]).part==="ID"&&w===9&&!h&&f.relative[o[1].part]){b=f.find.ID(p.captures[0].replace(R,""),b,h)[0];if(!b)return e;a=a.slice(o.shift().string.length)}r=(v=N.exec(o[0].string))&&!v.index&&b.parentNode||b,q="";for(n=o.length-1;n>=0;n--){p=o[n],s=p.part,q=p.string+q;if(f.relative[s])break;if(f.order.test(s)){i=f.find[s](p.captures[0].replace(R,""),r,h);if(i==null)continue;a=a.slice(0,a.length-q.length)+q.replace(S[s],""),a||u.apply(e,t.call(i,0));break}}}if(a){k=j(a,b,h),c=k.dirruns++,i==null&&(i=f.find.TAG("*",N.test(a)&&b.parentNode||b));for(n=0;m=i[n];n++)d=k.runs++,k(m)&&e.push(m)}return e}var c,d,e,f,g,h,i,j,k,l,m=!0,n="undefined",o=("sizcache"+Math.random()).replace(".",""),q=a.document,r=q.documentElement,s=0,t=[].slice,u=[].push,v=function(a,b){return a[o]=b||!0,a},w=function(){var a={},b=[];return v(function(c,d){return b.push(c)>f.cacheLength&&delete a[b.shift()],a[c]=d},a)},x=w(),y=w(),z=w(),A="[\\x20\\t\\r\\n\\f]",B="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",C=B.replace("w","w#"),D="([*^$|!~]?=)",E="\\["+A+"*("+B+")"+A+"*(?:"+D+A+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+C+")|)|)"+A+"*\\]",F=":("+B+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+E+")|[^:]|\\\\.)*|.*))\\)|)",G=":(nth|eq|gt|lt|first|last|even|odd)(?:\\(((?:-\\d)?\\d*)\\)|)(?=[^-]|$)",H=new RegExp("^"+A+"+|((?:^|[^\\\\])(?:\\\\.)*)"+A+"+$","g"),I=new RegExp("^"+A+"*,"+A+"*"),J=new RegExp("^"+A+"*([\\x20\\t\\r\\n\\f>+~])"+A+"*"),K=new RegExp(F),L=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,M=/^:not/,N=/[\x20\t\r\n\f]*[+~]/,O=/:not\($/,P=/h\d/i,Q=/input|select|textarea|button/i,R=/\\(?!\\)/g,S={ID:new RegExp("^#("+B+")"),CLASS:new RegExp("^\\.("+B+")"),NAME:new RegExp("^\\[name=['\"]?("+B+")['\"]?\\]"),TAG:new RegExp("^("+B.replace("w","w*")+")"),ATTR:new RegExp("^"+E),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|nth|last|first)-child(?:\\("+A+"*(even|odd|(([+-]|)(\\d*)n|)"+A+"*(?:([+-]|)"+A+"*(\\d+)|))"+A+"*\\)|)","i"),POS:new RegExp(G,"ig"),needsContext:new RegExp("^"+A+"*[>+~]|"+G,"i")},T=function(a){var b=q.createElement("div");try{return a(b)}catch(c){return!1}finally{b=null}},U=T(function(a){return a.appendChild(q.createComment("")),!a.getElementsByTagName("*").length}),V=T(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==n&&a.firstChild.getAttribute("href")==="#"}),W=T(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),X=T(function(a){return a.innerHTML="",!a.getElementsByClassName||!a.getElementsByClassName("e").length?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length===2)}),Y=T(function(a){a.id=o+0,a.innerHTML="",r.insertBefore(a,r.firstChild);var b=q.getElementsByName&&q.getElementsByName(o).length===2+q.getElementsByName(o+0).length;return e=!q.getElementById(o),r.removeChild(a),b});try{t.call(r.childNodes,0)[0].nodeType}catch(Z){t=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}$.matches=function(a,b){return $(a,null,null,b)},$.matchesSelector=function(a,b){return $(b,null,null,[a]).length>0},g=$.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=g(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=g(b);return c},h=$.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},i=$.contains=r.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:r.compareDocumentPosition?function(a,b){return b&&!!(a.compareDocumentPosition(b)&16)}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},$.attr=function(a,b){var c,d=h(a);return d||(b=b.toLowerCase()),f.attrHandle[b]?f.attrHandle[b](a):W||d?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},f=$.selectors={cacheLength:50,createPseudo:v,match:S,order:new RegExp("ID|TAG"+(Y?"|NAME":"")+(X?"|CLASS":"")),attrHandle:V?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}},find:{ID:e?function(a,b,c){if(typeof b.getElementById!==n&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==n&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==n&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:U?function(a,b){if(typeof b.getElementsByTagName!==n)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c},NAME:function(a,b){if(typeof b.getElementsByName!==n)return b.getElementsByName(name)},CLASS:function(a,b,c){if(typeof b.getElementsByClassName!==n&&!c)return b.getElementsByClassName(a)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(R,""),a[3]=(a[4]||a[5]||"").replace(R,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||$.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&$.error(a[0]),a},PSEUDO:function(a,b,c){var d,e;if(S.CHILD.test(a[0]))return null;if(a[3])a[2]=a[3];else if(d=a[4])K.test(d)&&(e=bc(d,b,c,!0))&&(e=d.indexOf(")",d.length-e)-d.length)&&(d=d.slice(0,e),a[0]=a[0].slice(0,e)),a[2]=d;return a.slice(0,3)}},filter:{ID:e?function(a){return a=a.replace(R,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(R,""),function(b){var c=typeof b.getAttributeNode!==n&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(R,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=x[o][a];return b||(b=x(a,new RegExp("(^|"+A+")"+a+"("+A+"|$)"))),function(a){return b.test(a.className||typeof a.getAttribute!==n&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return b?function(d){var e=$.attr(d,a),f=e+"";if(e==null)return b==="!=";switch(b){case"=":return f===c;case"!=":return f!==c;case"^=":return c&&f.indexOf(c)===0;case"*=":return c&&f.indexOf(c)>-1;case"$=":return c&&f.substr(f.length-c.length)===c;case"~=":return(" "+f+" ").indexOf(c)>-1;case"|=":return f===c||f.substr(0,c.length+1)===c+"-"}}:function(b){return $.attr(b,a)!=null}},CHILD:function(a,b,c,d){if(a==="nth"){var e=s++;return function(a){var b,f,g=0,h=a;if(c===1&&d===0)return!0;b=a.parentNode;if(b&&(b[o]!==e||!a.sizset)){for(h=b.firstChild;h;h=h.nextSibling)if(h.nodeType===1){h.sizset=++g;if(h===a)break}b[o]=e}return f=a.sizset-d,c===0?f===0:f%c===0&&f/c>=0}}return function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b,c,d){var e,g=f.pseudos[a]||f.pseudos[a.toLowerCase()];return g||$.error("unsupported pseudo: "+a),g[o]?g(b,c,d):g.length>1?(e=[a,a,"",b],function(a){return g(a,0,e)}):g}},pseudos:{not:v(function(a,b,c){var d=j(a.replace(H,"$1"),b,c);return function(a){return!d(a)}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!f.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},contains:v(function(a){return function(b){return(b.textContent||b.innerText||g(b)).indexOf(a)>-1}}),has:v(function(a){return function(b){return $(a,b).length>0}}),header:function(a){return P.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:_("radio"),checkbox:_("checkbox"),file:_("file"),password:_("password"),image:_("image"),submit:ba("submit"),reset:ba("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return Q.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b,c){return c?a.slice(1):[a[0]]},last:function(a,b,c){var d=a.pop();return c?a:[d]},even:function(a,b,c){var d=[],e=c?1:0,f=a.length;for(;e",a.querySelectorAll("[selected]").length||e.push("\\["+A+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),T(function(a){a.innerHTML="",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+A+"*(?:\"\"|'')"),a.innerHTML="",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=e.length&&new RegExp(e.join("|")),bk=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a)))if(d.nodeType===9)try{return u.apply(f,t.call(d.querySelectorAll(a),0)),f}catch(i){}else if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){var j,k,l,m=d.getAttribute("id"),n=m||o,p=N.test(a)&&d.parentNode||d;m?n=n.replace(c,"\\$&"):d.setAttribute("id",n),j=bc(a,d,h),n="[id='"+n+"']";for(k=0,l=j.length;k0})}(),f.setFilters.nth=f.setFilters.eq,f.filters=f.pseudos,$.attr=p.attr,p.find=$,p.expr=$.selectors,p.expr[":"]=p.expr.pseudos,p.unique=$.uniqueSort,p.text=$.getText,p.isXMLDoc=$.isXML,p.contains=$.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b0)for(e=d;e=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*\s*$/g,bz={option:[1,""],legend:[1,""],thead:[1,""],tr:[2,""],td:[3,""],col:[2,""],area:[1,""],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X","
"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1>$2>");try{for(;d1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=b===e&&bA,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(f=0;(h=a[f])!=null;f++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{s=s||bk(b),l=b.createElement("div"),s.appendChild(l),h=h.replace(bo,"<$1>$2>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===""&&!m?l.childNodes:[];for(g=n.length-1;g>=0;--g)p.nodeName(n[g],"tbody")&&!n[g].childNodes.length&&n[g].parentNode.removeChild(n[g])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l.parentNode.removeChild(l)}h.nodeType?t.push(h):p.merge(t,h)}l&&(h=l=s=null);if(!p.support.appendChecked)for(f=0;(h=t[f])!=null;f++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(f=0;(h=t[f])!=null;f++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[f+1,0].concat(r)),f+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.chrome?b.webkit=!0:b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^(none|table(?!-c[ea]).+)/,bO=/^margin/,bP=new RegExp("^("+q+")(.*)$","i"),bQ=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bR=new RegExp("^([-+])=("+q+")","i"),bS={},bT={position:"absolute",visibility:"hidden",display:"block"},bU={letterSpacing:0,fontWeight:400},bV=["Top","Right","Bottom","Left"],bW=["Webkit","O","Moz","ms"],bX=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return b$(this,!0)},hide:function(){return b$(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bX.apply(this,arguments):this.each(function(){(c?a:bZ(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bY(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bR.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bY(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bU&&(f=bU[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(b,c){var d,e,f,g,h=a.getComputedStyle(b,null),i=b.style;return h&&(d=h[c],d===""&&!p.contains(b.ownerDocument,b)&&(d=p.style(b,c)),bQ.test(d)&&bO.test(c)&&(e=i.width,f=i.minWidth,g=i.maxWidth,i.minWidth=i.maxWidth=i.width=d,d=h.width,i.width=e,i.minWidth=f,i.maxWidth=g)),d}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bQ.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth===0&&bN.test(bH(a,"display"))?p.swap(a,bT,function(){return cb(a,b,d)}):cb(a,b,d)},set:function(a,c,d){return b_(a,c,d?ca(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bQ.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bV[d]+b]=e[d]||e[d-2]||e[0];return f}},bO.test(a)||(p.cssHooks[a+b].set=b_)});var cd=/%20/g,ce=/\[\]$/,cf=/\r?\n/g,cg=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ch=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ch.test(this.nodeName)||cg.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(cf,"\r\n")}}):{name:b.name,value:c.replace(cf,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ci(d,a[d],c,f);return e.join("&").replace(cd,"+")};var cj,ck,cl=/#.*$/,cm=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,co=/^(?:GET|HEAD)$/,cp=/^\/\//,cq=/\?/,cr=/