diff --git a/.github/workflows/check-pr.yml b/.github/workflows/check-pr.yml new file mode 100644 index 000000000..f1a947e14 --- /dev/null +++ b/.github/workflows/check-pr.yml @@ -0,0 +1,171 @@ +# 为了试验,此处作为单独的 Workflow,在实际工作中可 Install -> Lint、Test -> Preview 串行检验 +name: Check PR + +# 执行 CI 的时机: 当 git push 到 main分支时 +on: + pull_request: + branches: main + +permissions: + pull-requests: write + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Check if commit is from CI + run: | + if [[ "${{ github.event.head_commit.committer.username }}" == "github-actions[bot]" ]]; then + echo "Commit is from CI, skipping the build..." + exit 78 + else + echo "Commit is not from CI, continuing with the build..." + fi + - name: see vars + run: | + echo '${{github.event.pull_request.head.ref}}' + echo '${{github.event.pull_request.head.sha}}' + echo '${{github.event.pull_request.head.repo.branches_url}}' + echo '${{github.event.pull_request.head.repo.full_name}}' + echo '${{github.event.pull_request.base.ref}}' + echo '${{github.event.pull_request.base.sha}}' + echo '${{github.event.pull_request.base.repo.branches_url}}' + echo '${{github.event.pull_request.base.repo.full_name}}' + echo '${{github.head_ref}}' + echo '${{github.ref}}' + echo '${{github.ref_name}}' + echo '${{github.repository}}' + echo '${{ github.event.pull_request.number }}' + echo '${{ github.run_id }}' + echo '${{github.event.pull_request.user.name}}' + echo '${{github.event.pull_request.maintainer_can_modify}}' + echo '${{github.event.pull_request.user.id}}' + echo '${{github.event.sender.id}}' + echo '${{github.event.repository.fork}}' + echo '${{github.event.repository.name}}' + echo '${{github.event.repository.full_name}}' + echo '${{github.actor}}' + echo '${{github.triggering_actor}}' + echo '${{github.event.pull_request.user.name}}' + - name: Checkout + uses: actions/checkout/@v3 + with: + fetch-depth: 1 + + - name: Git Identity + run: | + git config --global user.name 'github-actions[bot]' + git config --global user.email 'github-actions[bot]@users.noreply.github.com' + git remote set-url origin https://x-access-token:${GITHUB_TOKEN}@github.com/$GITHUB_REPOSITORY + git fetch --unshallow + env: + GITHUB_TOKEN: ${{ github.token}} + + - name: see git1 + run: | + git branch --show-current + - name: see git2 + run: | + git diff --name-only origin/main...HEAD + + - name: Setup Nodejs + uses: actions/setup-node@v3 + with: + cache: "npm" + node-version: 16 + + - name: Install Dep + run: | + npm install + + - name: Detect Pull Request Change + run: | + git config --global core.quotepath false + git config --global gui.encoding utf-8 + git config --global i18n.commit.encoding utf-8 + git config --global i18n.logoutputencoding utf-8 + export LESSCHARSET=utf-8 + npm run detectPR + { + echo "DIFF_STATE<> "$GITHUB_ENV" + + - name: Set up JDK 8 + if: ${{fromJson(env.DIFF_STATE).needJAVA}} + uses: actions/setup-java@v4 + with: + java-version: "8" + distribution: "temurin" + + - name: Install JDK Dependency + if: ${{fromJson(env.DIFF_STATE).needJAVA}} + run: | + mvn install:install-file -Dfile="demo_bjz_JiazhenBao/jar/nasl-metadata-maven-plugin-1.3.0/nasl-metadata-maven-plugin-1.3.0.jar" -DpomFile="demo_bjz_JiazhenBao/jar/nasl-metadata-maven-plugin-1.3.0/pom.xml" + mvn install:install-file -DgroupId=com.netease.lowcode -DartifactId=nasl-metadata-collector -Dversion=0.8.0 -Dpackaging=jar -Dfile="demo_bjz_JiazhenBao/jar/nasl-metadata-collector-0.8.0.jar" + + - name: Install LCAP + run: | + npm install -g lcap@0.3.4 + lcap config set platform https://defaulttenant.lcap.hadri.163yun.com + lcap config set username admin + lcap config set password Admin@123456 + + - name: Check Pull Request + run: | + npm run checkPR + { + echo 'CHECK_RESULT<> "$GITHUB_ENV" + + env: + GITHUB_TOKEN: ${{ github.token}} + PULL_REQUEST_ID: ${{ github.event.pull_request.number }} + HEAD_BRANCH_NAME: ${{github.head_ref}} + HEAD_REPOSITORY: ${{github.event.pull_request.head.repo.full_name}} + GITHUB_REPOSITORY: ${{github.repository}} + ACTION_ID: ${{github.run_id}} + + - name: Upload PR Result Error + if: ${{fromJson(env.CHECK_RESULT).hasError}} + uses: actions/upload-artifact@v4 + with: + name: pr_result + path: pr_result.json + + - name: Exit If Error + if: ${{fromJson(env.CHECK_RESULT).hasError}} + run: | + exit 1 + + - name: Upload Assets + if: ${{fromJson(env.DIFF_STATE).packages[0]}} + uses: actions/upload-artifact@v4 + id: upload_assets + with: + name: dist + path: dist/ + + - name: Append Assets Download url + if: ${{fromJson(env.DIFF_STATE).packages[0]}} + run: | + npm run successPR + env: + ARTIFACT_ID: ${{steps.upload_assets.outputs.artifact-id}} + GITHUB_TOKEN: ${{ github.token}} + PULL_REQUEST_ID: ${{ github.event.pull_request.number }} + HEAD_BRANCH_NAME: ${{github.head_ref}} + HEAD_REPOSITORY: ${{github.event.pull_request.head.repo.full_name}} + GITHUB_REPOSITORY: ${{github.repository}} + ACTION_ID: ${{github.run_id}} + + - name: Upload PR Result Error + if: ${{fromJson(env.DIFF_STATE).packages[0]}} + uses: actions/upload-artifact@v4 + with: + name: pr_result + path: pr_result.json diff --git a/.github/workflows/comment-pr.yml b/.github/workflows/comment-pr.yml new file mode 100644 index 000000000..6b9fb757f --- /dev/null +++ b/.github/workflows/comment-pr.yml @@ -0,0 +1,55 @@ +name: Comment on the pull request + +# read-write repo token +# access to secrets +on: + workflow_run: + workflows: ['Check PR'] + types: + - completed + +permissions: + pull-requests: write + +jobs: + upload: + runs-on: ubuntu-latest + if: > + github.event.workflow_run.event == 'pull_request' + steps: + - name: 'Download artifact' + uses: actions/github-script@v6 + with: + script: | + let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({ + owner: context.repo.owner, + repo: context.repo.repo, + run_id: context.payload.workflow_run.id, + }); + let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => { + return artifact.name == "pr_result" + })[0]; + let download = await github.rest.actions.downloadArtifact({ + owner: context.repo.owner, + repo: context.repo.repo, + artifact_id: matchArtifact.id, + archive_format: 'zip', + }); + let fs = require('fs'); + fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/pr_result.zip`, Buffer.from(download.data)); + + - run: unzip pr_result.zip + - name: 'Comment on PR' + uses: actions/github-script@v6 + with: + github-token: ${{ github.token }} + script: | + const fs = require('fs'); + const fileContent = fs.readFileSync('./pr_result.json', 'utf-8'); + const { message, pull_request_id } = JSON.parse(fileContent); + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: pull_request_id, + body: message + }); diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..87fc380de --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,109 @@ +# 为了试验,此处作为单独的 Workflow,在实际工作中可 Install -> Lint、Test -> Preview 串行检验 +name: Release + +# 执行 CI 的时机: 当 git push 到 main分支时 +on: + push: + branches: main + +permissions: + pull-requests: write + issues: write + contents: write + +jobs: + build: + # 仅在pr关闭后执行 + if: startsWith(github.event.head_commit.message, 'Merge pull request ') + runs-on: ubuntu-latest + + steps: + - name: Check if commit is from CI + run: | + if [[ "${{ github.event.head_commit.committer.username }}" == "github-actions[bot]" ]]; then + echo "Commit is from CI, skipping the build..." + exit 78 + else + echo "Commit is not from CI, continuing with the build..." + fi + - name: see vars + run: | + echo '${{github.head_ref}}' + echo '${{github.ref}}' + echo '${{github.ref_name}}' + echo '${{github.repository}}' + echo '${{ github.run_id }}' + echo '${{github.event.sender.id}}' + echo '${{github.event.repository.fork}}' + echo '${{github.event.repository.name}}' + echo '${{github.event.repository.full_name}}' + echo '${{github.actor}}' + echo '${{github.triggering_actor}}' + - name: Checkout + uses: actions/checkout/@v3 + with: + fetch-depth: 1 + token: ${{secrets.RELEASE_TOKEN}} + + - name: Git Identity + run: | + git config --global user.name 'github-actions[bot]' + git config --global user.email 'github-actions[bot]@users.noreply.github.com' + git remote set-url origin https://x-access-token:${GITHUB_TOKEN}@github.com/$GITHUB_REPOSITORY + git fetch --unshallow + env: + GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN}} + + - name: Setup Nodejs + uses: actions/setup-node@v3 + with: + cache: 'npm' + node-version: 16 + + - name: Install Dep + run: | + npm install + + - name: Detect Pull Request Change + run: | + git config --global core.quotepath false + git config --global gui.encoding utf-8 + git config --global i18n.commit.encoding utf-8 + git config --global i18n.logoutputencoding utf-8 + export LESSCHARSET=utf-8 + npm run detectPR from-release + { + echo "DIFF_STATE<> "$GITHUB_ENV" + + - name: Set up JDK 8 + if: ${{fromJson(env.DIFF_STATE).needJAVA}} + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - name: Install JDK Dependency + if: ${{fromJson(env.DIFF_STATE).needJAVA}} + run: | + mvn install:install-file -Dfile="demo_bjz_JiazhenBao/jar/nasl-metadata-maven-plugin-1.3.0/nasl-metadata-maven-plugin-1.3.0.jar" -DpomFile="demo_bjz_JiazhenBao/jar/nasl-metadata-maven-plugin-1.3.0/pom.xml" + mvn install:install-file -DgroupId=com.netease.lowcode -DartifactId=nasl-metadata-collector -Dversion=0.8.0 -Dpackaging=jar -Dfile="demo_bjz_JiazhenBao/jar/nasl-metadata-collector-0.8.0.jar" + + - name: Install LCAP + run: | + npm install -g lcap@0.3.4 + lcap config set platform https://defaulttenant.lcap.hadri.163yun.com + lcap config set username admin + lcap config set password Admin@123456 + + - name: Check Pull Request + run: | + npm run release from-release + + env: + GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN}} + HEAD_BRANCH_NAME: ${{github.head_ref}} + GITHUB_REPOSITORY: ${{github.repository}} + ACTION_ID: ${{github.run_id}} diff --git a/.gitignore b/.gitignore index 3aa1e99cb..3b57965f2 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,17 @@ build/ ### node_modules ### !**/node_modules/ + +dist/ + +node_modules/ + +**/dist-theme/ +**/*.zip + +**/target/ + + +diff_stat.json +pr_result.json +test.md \ No newline at end of file diff --git a/StringUtils_fdddf/.gitignore b/StringUtils_fdddf/.gitignore new file mode 100644 index 000000000..45cbeb879 --- /dev/null +++ b/StringUtils_fdddf/.gitignore @@ -0,0 +1,3 @@ +.idea +target/ +.DS_Store \ No newline at end of file diff --git a/StringUtils_fdddf/README.md b/StringUtils_fdddf/README.md new file mode 100644 index 000000000..aad07b68a --- /dev/null +++ b/StringUtils_fdddf/README.md @@ -0,0 +1,104 @@ +# StringUtils +StringUtils + +## 逻辑详情 + +### generateRandomString + +生成随机字符串,包含大小写字母和数字的字符集 + +入参: +- len int:字符串长度 + +出参: +- String:生成的随机字符串 + +### generateRandomStringCustom + +使用自定义字符集,生成长度为len的随机字符串 + +入参: +- len int:字符串长度 +- CustomCharacterSet String:自定义字符集 + +出参: +- String:生成的随机字符串 + + +### generateNonConsecutiveRandomString + +生成随机字符串,包含大小写字母和数字的字符集,且相邻字符不能一样 + +入参: +- len int:字符串长度 + +出参: +- String:生成的随机字符串 + +### subStringAfter + +返回原始字符串中匹配给定子字符串后的剩余部分 + +入参: +- origin String:原始字符串 +- needle String:给定子字符串 + +出参: +- String:匹配子字符串后的剩余部分 + + +### subStringBefore + +返回原始字符串中匹配给定子字符串之前的剩余部分 + +入参: +- origin String:原始字符串 +- needle String:给定子字符串 + +出参: +- String:匹配子字符串之前的剩余部分 + +### stripHtml + +移除HTML标签 + +入参: +- html String:包含HTML标签的字符串 + +出参: +- String:移除HTML标签后的字符串 + +### isNumber + +判断输入字符串是否是有效数字 + +入参: +- str String:待判断的字符串 + +出参: +- boolean:如果是有效数字返回true,否则返回false + +### reverseString + +反转字符串 + +入参: +- str String:待反转的字符串 + +出参: +- String:反转后的字符串 + + +## 使用步骤说明 + +1. 应用引用依赖库 +2. 无需配置 +3. 逻辑调用示例截图 + +![Snipaste_2024-04-11_23-37-31.jpg](Snipaste_2024-04-11_23-37-31.jpg) + +## 应用演示链接 + +[使用了本依赖库的制品应用链接] + +https://dev-testapp2024-qa.app.codewave.163.com/stringutils diff --git a/StringUtils_fdddf/Snipaste_2024-04-11_23-37-31.jpg b/StringUtils_fdddf/Snipaste_2024-04-11_23-37-31.jpg new file mode 100644 index 000000000..34817d858 Binary files /dev/null and b/StringUtils_fdddf/Snipaste_2024-04-11_23-37-31.jpg differ diff --git a/StringUtils_fdddf/jar/nasl-metadata-collector-0.8.0.jar b/StringUtils_fdddf/jar/nasl-metadata-collector-0.8.0.jar new file mode 100644 index 000000000..fffde156d Binary files /dev/null and b/StringUtils_fdddf/jar/nasl-metadata-collector-0.8.0.jar differ diff --git a/StringUtils_fdddf/jar/nasl-metadata-maven-plugin-1.3.0/install.bat b/StringUtils_fdddf/jar/nasl-metadata-maven-plugin-1.3.0/install.bat new file mode 100644 index 000000000..a01a75d94 --- /dev/null +++ b/StringUtils_fdddf/jar/nasl-metadata-maven-plugin-1.3.0/install.bat @@ -0,0 +1 @@ +mvn install:install-file -Dfile="nasl-metadata-maven-plugin-1.3.0.jar" -DpomFile="pom.xml" \ No newline at end of file diff --git a/StringUtils_fdddf/jar/nasl-metadata-maven-plugin-1.3.0/install.sh b/StringUtils_fdddf/jar/nasl-metadata-maven-plugin-1.3.0/install.sh new file mode 100644 index 000000000..a01a75d94 --- /dev/null +++ b/StringUtils_fdddf/jar/nasl-metadata-maven-plugin-1.3.0/install.sh @@ -0,0 +1 @@ +mvn install:install-file -Dfile="nasl-metadata-maven-plugin-1.3.0.jar" -DpomFile="pom.xml" \ No newline at end of file diff --git a/StringUtils_fdddf/jar/nasl-metadata-maven-plugin-1.3.0/nasl-metadata-maven-plugin-1.3.0.jar b/StringUtils_fdddf/jar/nasl-metadata-maven-plugin-1.3.0/nasl-metadata-maven-plugin-1.3.0.jar new file mode 100644 index 000000000..0eaf1ec67 Binary files /dev/null and b/StringUtils_fdddf/jar/nasl-metadata-maven-plugin-1.3.0/nasl-metadata-maven-plugin-1.3.0.jar differ diff --git a/StringUtils_fdddf/jar/nasl-metadata-maven-plugin-1.3.0/pom.xml b/StringUtils_fdddf/jar/nasl-metadata-maven-plugin-1.3.0/pom.xml new file mode 100644 index 000000000..642d8f6b1 --- /dev/null +++ b/StringUtils_fdddf/jar/nasl-metadata-maven-plugin-1.3.0/pom.xml @@ -0,0 +1,74 @@ + + 4.0.0 + + com.netease.lowcode + nasl-metadata-maven-plugin + 1.3.0 + maven-plugin + + Nasl Metadata Maven Plugin + + UTF-8 + + + + + org.apache.maven + maven-plugin-api + 2.0 + + + org.apache.maven + maven-project + 2.0.10 + + + org.apache.maven.plugin-tools + maven-plugin-annotations + 3.2 + provided + + + org.codehaus.plexus + plexus-compiler-manager + 2.8.4 + + + org.codehaus.plexus + plexus-utils + 3.0.8 + + + org.apache.maven.shared + maven-common-artifact-filters + 3.0.1 + + + + org.apache.maven + maven-aether-provider + 3.3.9 + + + + org.eclipse.aether + aether-api + 1.1.0 + + + + + + + org.apache.maven.plugins + maven-plugin-plugin + 3.2 + + nasl-metadata-maven-plugin + true + + + + + diff --git a/StringUtils_fdddf/pom.xml b/StringUtils_fdddf/pom.xml new file mode 100644 index 000000000..e80966816 --- /dev/null +++ b/StringUtils_fdddf/pom.xml @@ -0,0 +1,67 @@ + + + 4.0.0 + + fdddf + StringUtils + 1.0.0 + + + 8 + 8 + UTF-8 + 3.3 + + + + + nasl-metadata-collector + com.netease.lowcode + 0.8.0 + true + system + ${project.basedir}/jar/nasl-metadata-collector-0.8.0.jar + + + com.alibaba + fastjson + 1.2.83 + + + org.slf4j + slf4j-api + provided + 1.7.30 + + + + org.jsoup + jsoup + 1.17.2 + + + + + + com.netease.lowcode + nasl-metadata-maven-plugin + 1.3.0 + + false + + + + + archive + + + + + + + \ No newline at end of file diff --git a/StringUtils_fdddf/src/main/java/com/fdddf/StringUtils/api/Main.java b/StringUtils_fdddf/src/main/java/com/fdddf/StringUtils/api/Main.java new file mode 100644 index 000000000..ef7710285 --- /dev/null +++ b/StringUtils_fdddf/src/main/java/com/fdddf/StringUtils/api/Main.java @@ -0,0 +1,21 @@ +package com.fdddf.StringUtils.api; + +public class Main { + public static void main(String[] args) { + String str = StringUtils.generateRandomString(10); + System.out.println(str); + str = StringUtils.generateRandomStringCustom(10, "+-x$%&thisok139839222mg"); + System.out.println(str); + str = StringUtils.generateNonConsecutiveRandomString(10); + System.out.println(str); + str = StringUtils.subStringAfter("aa-bb", "a"); + System.out.println(str); + str = StringUtils.subStringBefore("aa-bb", "b"); + System.out.println(str); + str = StringUtils.stripHtml("

Hello World

"); + System.out.println(str); + System.out.println(StringUtils.isNumber("123") ? "Yes" : "No"); + str = StringUtils.reverseString("Hello World"); + System.out.println(str); + } +} diff --git a/StringUtils_fdddf/src/main/java/com/fdddf/StringUtils/api/StringUtils.java b/StringUtils_fdddf/src/main/java/com/fdddf/StringUtils/api/StringUtils.java new file mode 100644 index 000000000..4c54de463 --- /dev/null +++ b/StringUtils_fdddf/src/main/java/com/fdddf/StringUtils/api/StringUtils.java @@ -0,0 +1,208 @@ +package com.fdddf.StringUtils.api; + + +import com.netease.lowcode.core.annotation.NaslLogic; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.parser.Parser; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class StringUtils { + + public static final String AlphaNumeric = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + private static final Logger log = LoggerFactory.getLogger(StringUtils.class); + + /** + * 生成指定长度的随机字符串,字符串仅包含大小写字母和数字 + * + * @param len 指定生成字符串的长度。必须为非负整数 + * @return 生成的随机字符串 + */ + @NaslLogic + public static String generateRandomString(Integer len) throws IllegalArgumentException { + if (len == null || len <= 0) { + log.error("length should greater than zero"); + throw new IllegalArgumentException("length should greater than zero"); + } + StringBuilder sb = new StringBuilder(); + // 为字符串生成指定数量的随机字符 + for (int i = 0; i < len; i++) { + int randomNum = (int) (Math.random() * AlphaNumeric.length()); + char randomChar = AlphaNumeric.charAt(randomNum); + sb.append(randomChar); + } + return sb.toString(); + } + + /** + * 使用自定义字符集,生成长度为length的随机字符串 + * + * @param len 随机字符串的长度 + * @param CustomCharacterSet 定义随机字符集,生成的随机字符串将从这个字符集中抽取 + * @return 生成的随机字符串 + * @throws IllegalArgumentException 当length小于等于0时抛出此异常 + */ + @NaslLogic + public static String generateRandomStringCustom(Integer len, String CustomCharacterSet) throws IllegalArgumentException { + if (len == null || len <= 0) { + log.error("length should greater than zero"); + throw new IllegalArgumentException("length should greater than zero"); + } + if (CustomCharacterSet == null || CustomCharacterSet.isEmpty()) { + log.error("CustomCharacterSet should not be empty"); + throw new IllegalArgumentException("CustomCharacterSet should not be empty"); + } + StringBuilder sb = new StringBuilder(); + // 循环生成指定长度的随机字符 + for (int i = 0; i < len; i++) { + // 从自定义字符集中随机选择一个字符并添加到StringBuilder中 + sb.append(CustomCharacterSet.charAt((int) (Math.random() * CustomCharacterSet.length()))); + } + return sb.toString(); + } + + /** + * 生成指定长度的随机字符串 + * 字符串仅包含大小写字母和数字,且相邻字符不能相同 + * + * @param len 指定生成字符串的长度。必须为非负整数 + * @return 生成的随机字符串 + * @throws IllegalArgumentException 如果length小于等于0,则抛出IllegalArgumentException异常 + */ + @NaslLogic + public static String generateNonConsecutiveRandomString(Integer len) throws IllegalArgumentException { + if (len == null || len <= 0) { + log.error("length should greater than zero"); + throw new IllegalArgumentException("length should greater than zero"); + } + StringBuilder sb = new StringBuilder(); + char[] allowedChars = AlphaNumeric.toCharArray(); + + // 为字符串生成指定数量的随机字符,确保相邻字符不相同 + for (int i = 0; i < len; i++) { + char randomChar; + do { + randomChar = allowedChars[(int) (Math.random() * allowedChars.length)]; + } while (i > 0 && randomChar == sb.charAt(i - 1)); // 若当前字符与前一字符相同,重新生成 + + sb.append(randomChar); + } + + return sb.toString(); + } + + + /** + * 返回原始字符串中匹配给定子字符串后的剩余部分 + * 如果找不到匹配项,则返回原始字符串 + * + * @param origin 原始字符串 + * @param needle 要匹配的子字符串 + * @return 匹配给定子字符串后的剩余部分,或原始字符串(若未找到匹配项) + * @throws IllegalArgumentException 如果原始字符串或要匹配的子字符串为空 + */ + @NaslLogic + public static String subStringAfter(String origin, String needle) throws IllegalArgumentException { + // 增强输入验证 + if (origin == null || needle == null) { + log.error("origin and needle should not be null"); + throw new IllegalArgumentException("origin and needle should not be null"); + } + + int index = origin.indexOf(needle); + if (index != -1) { + return origin.substring(index + needle.length()); + } else { + return origin; + } + } + + /** + * 返回原始字符串中匹配给定子字符串之前的剩余部分 + * 如果找不到匹配项,则返回原始字符串 + * + * @param origin 原始字符串 + * @param needle 要匹配的子字符串 + * @return 匹配给定子字符串之前的剩余部分,或原始字符串(若未找到匹配项) + * @throws IllegalArgumentException 如果原始字符串或要匹配的子字符串为空 + */ + @NaslLogic + public static String subStringBefore(String origin, String needle) throws IllegalArgumentException { + // 增强输入验证 + if (origin == null || needle == null) { + log.error("origin and needle should not be null"); + throw new IllegalArgumentException("origin and needle should not be null"); + } + + int index = origin.indexOf(needle); + if (index != -1) { + return origin.substring(0, index); + } else { + return origin; + } + } + + + /** + * 移除给定HTML字符串中的所有HTML标签 + * + * @param html 带有HTML标签的字符串 + * @return 移除HTML标签后的纯文本字符串 + * @throws IllegalArgumentException 如果HTML字符串为空 + */ + @NaslLogic + public static String stripHtml(String html) throws IllegalArgumentException { + if (html == null || html.isEmpty()) { + log.error("html should not be empty"); + throw new IllegalArgumentException("html should not be empty"); + } + Document doc = Jsoup.parse(html, "", Parser.xmlParser()); + return doc.text(); + } + + + /** + * 判断给定字符串是否是一个有效的数字 + * 支持整数和浮点数,包括正负号、小数点和科学计数法 + * + * @param str 待判断的字符串 + * @return 若字符串表示一个有效数字,返回true;否则返回false + * @throws IllegalArgumentException 如果输入字符串为空 + */ + @NaslLogic + public static Boolean isNumber(String str) throws IllegalArgumentException { + // 使用正则表达式匹配数字模式 + // 允许可选的正负号,小数点和指数部分 + if (str == null || str.isEmpty()) { + log.error("str should not be empty"); + throw new IllegalArgumentException("str should not be empty"); + } + String pattern = "[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?"; + Pattern p = Pattern.compile(pattern); + Matcher m = p.matcher(str); + // 返回是否匹配 + return m.matches(); + } + + + /** + * 反转给定字符串中的字符顺序 + * + * @param str 待反转的字符串 + * @return 反转后的字符串 + */ + @NaslLogic + public static String reverseString(String str) { + if (str == null) { + return null; + } + StringBuilder sb = new StringBuilder(str); + sb.reverse(); + return sb.toString(); + } + +} diff --git "a/StringUtils_fdddf/\344\276\235\350\265\226\345\272\223\344\275\277\347\224\250\346\226\207\346\241\243\350\257\264\346\230\216.docx" "b/StringUtils_fdddf/\344\276\235\350\265\226\345\272\223\344\275\277\347\224\250\346\226\207\346\241\243\350\257\264\346\230\216.docx" new file mode 100644 index 000000000..67fe980aa Binary files /dev/null and "b/StringUtils_fdddf/\344\276\235\350\265\226\345\272\223\344\275\277\347\224\250\346\226\207\346\241\243\350\257\264\346\230\216.docx" differ diff --git a/connector_baidu_translate_JiangXiaoTian/README.md b/connector_baidu_translate_JiangXiaoTian/README.md new file mode 100644 index 000000000..7ba279cd7 --- /dev/null +++ b/connector_baidu_translate_JiangXiaoTian/README.md @@ -0,0 +1,125 @@ +# 百度翻译连接器 + +## 功能概述 + +百度翻译 API 支持提供 200+语种互译的在线文本翻译服务,支持多达 4 万多个语言方向,且支持多语种自动检测。您只需调用通用翻译 API,传入待翻译的内容,并指定要翻译的源语言(支持源语言语种自动检测)和目标语言,即可得到相应的翻译结果。任何第三方应用或网站都可以通过使用通用翻译 API 为用户提供实时优质的多语言翻译服务,提升产品体验。百度翻译连接器用于调用百度翻译 API。 + +调用百度翻译 API,需要接入百度翻译服务,请参考:[百度翻译-接入服务](https://fanyi-api.baidu.com/doc/13) + +## 功能介绍 + +用于将给定的文本,从源语言翻译为目标语言。支持单条和批量文本翻译。 + +| 操作标识 | 操作名称 | 对应百度翻译接口文档 | +| ---------------- | ------------ | ---------------------------------- | +| translation | 单条文本翻译 | https://fanyi-api.baidu.com/doc/21 | +| translationBatch | 批量文本翻译 | https://fanyi-api.baidu.com/doc/21 | + +### translation 标识说明 + +`translation 标识` 入参说明 + +| 参数名 | 类型 | 是否必填 | 描述 | 备注 | +| ------ | ------ | -------- | -------------- | --------------- | +| q | String | 是 | 需要翻译的文本 | 单条文本翻译 | +| from | String | 是 | 翻译源语言 | 可设置为 auto | +| to | String | 是 | 翻译目标语言 | 不可设置为 auto | + +> 注意:请将单次翻译文本长度限定为 6000 字节以内(汉字约为 2000 个)。 + +`translation 标识` 出参说明 + +| 参数名 | 类型 | 描述 | 备注 | +| --------- | ------ | -------- | -------------------------------------------------------------- | +| from | String | 源语言 | 返回用户指定的语言,或者自动检测出的语种(源语言设为 auto 时) | +| to | String | 目标语言 | 返回用户指定的目标语言 | +| src | String | 原文 | 需要翻译的文本 | +| dst | String | 译文 | 翻译结果 | +| errorCode | String | 错误码 | 仅当存在错误时有值 | +| errorMsg | String | 错误信息 | 仅当存在错误时有值 | + +### translationBatch 标识说明 + +`translationBatch 标识` 入参说明 + +| 参数名 | 类型 | 是否必填 | 描述 | 备注 | +| ------ | ------------ | -------- | ------------------ | --------------- | +| q | List | 是 | 需要翻译的文本列表 | 批量文本翻译 | +| from | String | 是 | 翻译源语言 | 可设置为 auto | +| to | String | 是 | 翻译目标语言 | 不可设置为 auto | + +> 注意:请将批量翻译数量控制在 4000 个以内,总文本长度限定为 6000 字节以内(汉字约为 2000 个)。 + +`translationBatch 标识` 出参说明 + +| 参数名 | 类型 | 描述 | 备注 | +| ----------- | --------------- | -------- | -------------------------------------------------------------- | +| from | String | 源语言 | 返回用户指定的语言,或者自动检测出的语种(源语言设为 auto 时) | +| to | String | 目标语言 | 返回用户指定的目标语言 | +| transResult | List | 翻译结果 | 返回翻译结果,包括 `src` 和 `dst` 字段 | +| errorCode | String | 错误码 | 仅当存在错误时有值 | +| errorMsg | String | 错误信息 | 仅当存在错误时有值 | + +`Translate`结构说明 + +| 字段名 | 类型 | 说明 | +| ------ | ------ | ---- | +| src | String | 原文 | +| dst | String | 译文 | + +## 操作示例 + +### 1. 添加连接器 + +添加连接器并填入`appid`(应用 ID)和`secretKey`(密钥)。 + +![image](baidu_translate_001.png) + +**注意**:当进行**连通性测试**时,开发环境和生产环境使用相同的配置,只要有一个连通成功即可。出现一个连接失败的情况,这是由于百度翻译对于标准版服务,QPS(每秒请求量)=1,如需更大频率,需先进行身份认证,认证通过后可切换为高级版(适用于个人,QPS=10)或尊享版(适用于企业,QPS=100) + +### 2. 调用连接器 + +示例:使用百度翻译连接器将中文翻译成英文。 + +创建服务端逻辑,添加输入参数`params`,类型为`String`,代表需要翻译的文本,调用百度翻译连接器,操作选择`translation`(单条文本翻译),`from参数`输入文本`zh`,`to参数`输入文本`en`,创建局部变量`data`接收连接器调用结果。 + +![image](baidu_translate_002.png) + +添加输出参数`result`,对接收的结果`data`进行匹配,当结果正确返回时,将`data`赋值给`result`;当结果返回`Error`时,输出日志。 + +![image](baidu_translate_003.png) + +创建页面如下图所示,使用`多行输入组件`接收用户输入的需要翻译的文本,使用`文本组件`展示翻译结果。 + +![image](baidu_translate_004.png) + +在页面创建`text局部变量`用于绑定多行输入组件的值,创建`result局部变量`用于绑定翻译结果。 + +![image](baidu_translate_005.png) + +翻译按钮添加事件逻辑,调用之前创建的服务端逻辑。对调用返回结果进行判断,当结果中存在错误码时,弹出消息;当调用结果中不存在错误码时,将翻译结果赋值给`result局部变量`。 + +![image](baidu_translate_006.png) + +预览应用,输入需要翻译的文本,点击翻译,即可差看到翻译结果。 + +![image](baidu_translate_007.png) + +## 支持语种列表 + +常见语种列表 + +| 名称 | 代码 | 名称 | 代码 | 名称 | 代码 | +| ------------ | ---- | ---------- | ---- | ---------- | ---- | +| 自动检测 | auto | 中文 | zh | 英语 | en | +| 粤语 | yue | 文言文 | wyw | 日语 | jp | +| 韩语 | kor | 法语 | fra | 西班牙语 | spa | +| 泰语 | th | 阿拉伯语 | ara | 俄语 | ru | +| 葡萄牙语 | pt | 德语 | de | 意大利语 | it | +| 希腊语 | el | 荷兰语 | nl | 波兰语 | pl | +| 保加利亚语 | bul | 爱沙尼亚语 | est | 丹麦语 | dan | +| 芬兰语 | fin | 捷克语 | cs | 罗马尼亚语 | rom | +| 斯洛文尼亚语 | slo | 瑞典语 | swe | 匈牙利语 | hu | +| 繁体中文 | cht | 越南语 | vie | + +更多百度翻译支持语种列表请参考[通用文本翻译-语种列表](https://fanyi-api.baidu.com/doc/21) diff --git a/connector_baidu_translate_JiangXiaoTian/baidu_translate_001.png b/connector_baidu_translate_JiangXiaoTian/baidu_translate_001.png new file mode 100644 index 000000000..288e7919b Binary files /dev/null and b/connector_baidu_translate_JiangXiaoTian/baidu_translate_001.png differ diff --git a/connector_baidu_translate_JiangXiaoTian/baidu_translate_002.png b/connector_baidu_translate_JiangXiaoTian/baidu_translate_002.png new file mode 100644 index 000000000..d16ffad26 Binary files /dev/null and b/connector_baidu_translate_JiangXiaoTian/baidu_translate_002.png differ diff --git a/connector_baidu_translate_JiangXiaoTian/baidu_translate_003.png b/connector_baidu_translate_JiangXiaoTian/baidu_translate_003.png new file mode 100644 index 000000000..f442f2702 Binary files /dev/null and b/connector_baidu_translate_JiangXiaoTian/baidu_translate_003.png differ diff --git a/connector_baidu_translate_JiangXiaoTian/baidu_translate_004.png b/connector_baidu_translate_JiangXiaoTian/baidu_translate_004.png new file mode 100644 index 000000000..b8ae0cc2b Binary files /dev/null and b/connector_baidu_translate_JiangXiaoTian/baidu_translate_004.png differ diff --git a/connector_baidu_translate_JiangXiaoTian/baidu_translate_005.png b/connector_baidu_translate_JiangXiaoTian/baidu_translate_005.png new file mode 100644 index 000000000..1957370a5 Binary files /dev/null and b/connector_baidu_translate_JiangXiaoTian/baidu_translate_005.png differ diff --git a/connector_baidu_translate_JiangXiaoTian/baidu_translate_006.png b/connector_baidu_translate_JiangXiaoTian/baidu_translate_006.png new file mode 100644 index 000000000..ae6127457 Binary files /dev/null and b/connector_baidu_translate_JiangXiaoTian/baidu_translate_006.png differ diff --git a/connector_baidu_translate_JiangXiaoTian/baidu_translate_007.png b/connector_baidu_translate_JiangXiaoTian/baidu_translate_007.png new file mode 100644 index 000000000..89f4464b2 Binary files /dev/null and b/connector_baidu_translate_JiangXiaoTian/baidu_translate_007.png differ diff --git a/connector_baidu_translate_JiangXiaoTian/pom.xml b/connector_baidu_translate_JiangXiaoTian/pom.xml new file mode 100644 index 000000000..33dbec889 --- /dev/null +++ b/connector_baidu_translate_JiangXiaoTian/pom.xml @@ -0,0 +1,68 @@ + + + 4.0.0 + + com.moocsk.lowcode + baidu-translate + 0.0.5 + 百度翻译连接器 + 百度翻译API + + + 8 + 8 + UTF-8 + 3.3 + + + + + nasl-metadata-collector + com.netease.lowcode + 0.8.0 + + + com.alibaba.fastjson2 + fastjson2 + 2.0.44 + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 3.3.0 + + + jar-with-dependencies + + false + + + + make-assembly + package + + single + + + + + + com.netease.lowcode + nasl-metadata-maven-plugin + 1.3.0 + + + + archive + + + + + + + \ No newline at end of file diff --git a/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/api/TransApi.java b/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/api/TransApi.java new file mode 100755 index 000000000..478cafd0e --- /dev/null +++ b/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/api/TransApi.java @@ -0,0 +1,90 @@ +package com.moocsk.lowcode.baidu.translate.api; + +import java.util.HashMap; +import java.util.Map; + +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.moocsk.lowcode.baidu.translate.model.TranslateResult; +import com.moocsk.lowcode.baidu.translate.util.HttpUtil; +import com.moocsk.lowcode.baidu.translate.util.MD5; +import com.moocsk.lowcode.baidu.translate.util.ModelUtil; + +public class TransApi { + /** 通用文本翻译地址 */ + private static final String TRANS_API_HOST = "https://fanyi-api.baidu.com/api/trans/vip/translate"; + + /** 应用 ID */ + private String appid; + /** 密钥 */ + private String securityKey; + + /** + * @param appid 应用 ID + * @param securityKey 密钥 + */ + public TransApi(String appid, String securityKey) { + this.appid = appid; + this.securityKey = securityKey; + } + + /** + * 通用文本翻译 + * @param query 需要翻译的内容 + * @param from 源语言 + * @param to 目标语言 + * @return 翻译结果对象 + */ + public TranslateResult generalTextTranslation(String query, String from, String to) { + TranslateResult result = new TranslateResult(); + try { + Map params = this.buildParams(query, from, to); + String response = HttpUtil.get(TRANS_API_HOST, params); + JSONObject jsonObject = JSONObject.parseObject(response); + // 如果 http 200,接口返回错误信息 + String errorCode = jsonObject.getString("error_code"); + if (errorCode != null) { + String errorMsg = jsonObject.getString("error_msg"); + result.setErrorCode(errorCode); + result.setErrorMsg(errorMsg);; + return result; + } + result.setFrom(jsonObject.getString("from")); + result.setTo(jsonObject.getString("to")); + JSONArray array = jsonObject.getJSONArray("trans_result"); + result.setTransResult(ModelUtil.getTranslateModels(array)); + } catch (Exception e) { + result.setErrorCode("500"); + result.setErrorMsg(e.getMessage()); + throw new RuntimeException(e); + } + return result; + } + + /** + * 构建查询参数 Map + * @param query 需要翻译的内容 + * @param from 源语言 + * @param to 目标语言 + * @return 查询参数 Map + */ + private Map buildParams(String query, String from, String to) throws Exception { + Map params = new HashMap(); + params.put("q", query); + params.put("from", from); + params.put("to", to); + + params.put("appid", appid); + + // 随机数 + String salt = String.valueOf(System.currentTimeMillis()); + params.put("salt", salt); + + // 签名 + String src = appid + query + salt + securityKey; // 加密前的原文 + params.put("sign", MD5.md5(src)); + + return params; + } + +} diff --git a/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/connector/BaiduTranslate.java b/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/connector/BaiduTranslate.java new file mode 100644 index 000000000..46e6e4cdb --- /dev/null +++ b/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/connector/BaiduTranslate.java @@ -0,0 +1,145 @@ +package com.moocsk.lowcode.baidu.translate.connector; + +import java.util.ArrayList; +import java.util.List; + +import com.moocsk.lowcode.baidu.translate.api.TransApi; +import com.moocsk.lowcode.baidu.translate.model.TranslateResult; +import com.moocsk.lowcode.baidu.translate.model.TranslateResultSingle; +import com.moocsk.lowcode.baidu.translate.util.ModelUtil; +import com.moocsk.lowcode.baidu.translate.util.StringUtil; +import com.netease.lowcode.core.annotation.NaslConnector; + +/** + * 百度翻译连接器 + */ +@NaslConnector(connectorKind = "BaiduTranslate") +public class BaiduTranslate { + + /** 应用ID */ + private String appid; + + /** 密钥 */ + private String secretKey; + + /** + * 初始化 + * + * @param appid 应用ID + * @param secretKey 密钥 + * @return 百度翻译连接器 + */ + @NaslConnector.Creator + public BaiduTranslate init(String appid, String secretKey) { + BaiduTranslate baiduTranslate = new BaiduTranslate(); + baiduTranslate.appid = appid; + baiduTranslate.secretKey = secretKey; + return baiduTranslate; + } + + /** + * 连通性测试 + * + * @param appid 应用ID + * @param secretKey 密钥 + * @return 连通结果 + */ + @NaslConnector.Tester + public Boolean testConnection(String appid, String secretKey) { + TransApi transApi = new TransApi(appid, secretKey); + TranslateResult translateResult = transApi.generalTextTranslation("测试", "zh", "en"); + if (translateResult.errorCode == null) { + return true; + } + return false; + } + + /** + * 单条文本翻译 + * + * @param q 需要翻译的内容 + * @param from 源语言 + * @param to 目标语言 + * @return 单条翻译结果 + */ + @NaslConnector.Logic + public TranslateResultSingle translation(String q, String from, String to) { + TranslateResultSingle translateResultSingle = new TranslateResultSingle(); + // 翻译文本总长度控制在 6000 字节以内 + int qLen = StringUtil.getStringLengthByByte(q); // 翻译文本字节长度 + if (qLen > 6000) { + translateResultSingle.setErrorCode("500"); + translateResultSingle.setErrorMsg("请将翻译内容控制在6000字节以内"); + return translateResultSingle; + } + TransApi transApi = new TransApi(this.appid, this.secretKey); + TranslateResult translateResult = transApi.generalTextTranslation(q, from, to); + translateResultSingle = ModelUtil.getSingleTranslate(translateResult); + return translateResultSingle; + } + + /** + * 批量文本翻译 + * + * @param q 需要翻译的内容 + * @param from 源语言 + * @param to 目标语言 + * @return 批量翻译结果 + */ + @NaslConnector.Logic + public TranslateResult translationBatch(List q, String from, String to) { + TranslateResult translateResult = new TranslateResult(); + String qStr = String.join("\n", q); + // 批量翻译限制 List 长度为 6000 + int qSize = q.size(); + if (qSize > 4000) { + translateResult.setErrorCode("500"); + translateResult.setErrorMsg("请将批量翻译数量控制在4000个以内"); + return translateResult; + } + // 批量翻译文本总长度控制在 6000 字节以内 + int qStrLen = StringUtil.getStringLengthByByte(qStr); // 翻译文本字节长度 + if (qStrLen > 6000) { + translateResult.setErrorCode("500"); + translateResult.setErrorMsg("请将批量翻译内容控制在6000字节以内"); + return translateResult; + } + TransApi transApi = new TransApi(this.appid, this.secretKey); + translateResult = transApi.generalTextTranslation(qStr, from, to); + return translateResult; + } + + public static void main(String[] args) { + String appid = ""; + String secretKey = ""; + String from = "zh"; + String to = "en"; + + BaiduTranslate baiduTranslate = new BaiduTranslate().init(appid, secretKey); + + // 注意:以下测试片段不能同时调用 + + // 测试连通性 + // Boolean connBoolean = baiduTranslate.testConnection(appid, secretKey); + // if (connBoolean) { + // System.out.println("连接成功"); + // } else { + // System.out.println("连接失败"); + // } + + // 测试批量文本翻译 + List list = new ArrayList(); + list.add("水果"); + list.add("香蕉"); + TranslateResult translateResult = baiduTranslate.translationBatch(list, from, to); + System.out.println("批量文本翻译结果"); + System.out.println(translateResult); + + // 测试单条文本翻译 + // TranslateResultSingle translateResultSingle = + // baiduTranslate.translation("水果", from, to); + // System.out.println("单条文本翻译结果"); + // System.out.println(translateResultSingle); + } + +} diff --git a/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/model/Translate.java b/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/model/Translate.java new file mode 100644 index 000000000..7e0ef1775 --- /dev/null +++ b/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/model/Translate.java @@ -0,0 +1,41 @@ +package com.moocsk.lowcode.baidu.translate.model; + +import com.netease.lowcode.core.annotation.NaslStructure; + +/** + * 翻译结果 + */ +@NaslStructure +public class Translate { + /** + * 原文 + */ + public String src; + + /** + * 译文 + */ + public String dst; + + public String getSrc() { + return src; + } + + public void setSrc(String src) { + this.src = src; + } + + public String getDst() { + return dst; + } + + public void setDst(String dst) { + this.dst = dst; + } + + @Override + public String toString() { + return "Translate [src=" + src + ", dst=" + dst + "]"; + } + +} diff --git a/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/model/TranslateResult.java b/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/model/TranslateResult.java new file mode 100644 index 000000000..3769df9d1 --- /dev/null +++ b/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/model/TranslateResult.java @@ -0,0 +1,83 @@ +package com.moocsk.lowcode.baidu.translate.model; + +import java.util.List; + +import com.netease.lowcode.core.annotation.NaslStructure; + +/** + * 批量文本翻译结果响应 + */ +@NaslStructure +public class TranslateResult { + /** + * 错误码 + */ + public String errorCode; + + /** + * 错误信息 + */ + public String errorMsg; + + /** + * 源语言 + */ + public String from; + + /** + * 目标语言 + */ + public String to; + + /** + * 翻译结果 + */ + public List transResult; + + public String getErrorCode() { + return errorCode; + } + + public void setErrorCode(String errorCode) { + this.errorCode = errorCode; + } + + public String getErrorMsg() { + return errorMsg; + } + + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } + + public String getFrom() { + return from; + } + + public void setFrom(String from) { + this.from = from; + } + + public String getTo() { + return to; + } + + public void setTo(String to) { + this.to = to; + } + + public List getTransResult() { + return transResult; + } + + public void setTransResult(List transResult) { + this.transResult = transResult; + } + + @Override + public String toString() { + return "TranslateResult [errorCode=" + errorCode + ", errorMsg=" + errorMsg + ", from=" + from + ", to=" + to + + ", transResult=" + transResult + "]"; + } + +} diff --git a/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/model/TranslateResultSingle.java b/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/model/TranslateResultSingle.java new file mode 100644 index 000000000..fea2e6b9c --- /dev/null +++ b/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/model/TranslateResultSingle.java @@ -0,0 +1,94 @@ +package com.moocsk.lowcode.baidu.translate.model; + +import com.netease.lowcode.core.annotation.NaslStructure; + +/** + * 单条文本翻译结果响应 + */ +@NaslStructure +public class TranslateResultSingle { + /** + * 错误码 + */ + public String errorCode; + + /** + * 错误信息 + */ + public String errorMsg; + + /** + * 源语言 + */ + public String from; + + /** + * 目标语言 + */ + public String to; + + /** + * 原文 + */ + public String src; + + /** + * 译文 + */ + public String dst; + + public String getErrorCode() { + return errorCode; + } + + public void setErrorCode(String errorCode) { + this.errorCode = errorCode; + } + + public String getErrorMsg() { + return errorMsg; + } + + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } + + public String getFrom() { + return from; + } + + public void setFrom(String from) { + this.from = from; + } + + public String getTo() { + return to; + } + + public void setTo(String to) { + this.to = to; + } + + public String getSrc() { + return src; + } + + public void setSrc(String src) { + this.src = src; + } + + public String getDst() { + return dst; + } + + public void setDst(String dst) { + this.dst = dst; + } + + @Override + public String toString() { + return "TranslateResultSingle [errorCode=" + errorCode + ", errorMsg=" + errorMsg + ", from=" + from + ", to=" + + to + ", src=" + src + ", dst=" + dst + "]"; + } + +} diff --git a/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/util/HttpUtil.java b/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/util/HttpUtil.java new file mode 100755 index 000000000..73cf8fde7 --- /dev/null +++ b/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/util/HttpUtil.java @@ -0,0 +1,161 @@ +package com.moocsk.lowcode.baidu.translate.util; + +import java.io.BufferedReader; +import java.io.Closeable; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.UnsupportedEncodingException; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLEncoder; +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; +import java.util.Map; + +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; + +public class HttpUtil { + /** 连接超时时间 10s */ + protected static final int SOCKET_TIMEOUT = 10000; + /** GET请求字符串 */ + protected static final String GET = "GET"; + + /** + * 发起 GET 请求 + * @param host 请求地址 + * @param params 查询字符串 + * @return 响应结果 + */ + public static String get(String host, Map params) { + String text = null; + try { + // 设置SSLContext + SSLContext sslcontext = SSLContext.getInstance("TLS"); + sslcontext.init(null, new TrustManager[] { myX509TrustManager }, null); + + // 获取完整请求地址 + String sendUrl = getUrlWithQueryString(host, params); + + URL uri = new URL(sendUrl); // 创建URL对象 + HttpURLConnection conn = (HttpURLConnection) uri.openConnection(); + if (conn instanceof HttpsURLConnection) { + ((HttpsURLConnection) conn).setSSLSocketFactory(sslcontext.getSocketFactory()); + } + + conn.setConnectTimeout(SOCKET_TIMEOUT); + conn.setRequestMethod(GET); + int statusCode = conn.getResponseCode(); + if (statusCode != HttpURLConnection.HTTP_OK) { + String msg = conn.getResponseMessage(); + throw new RuntimeException(msg); + } + + // 读取服务器的数据 + InputStream is = conn.getInputStream(); + BufferedReader br = new BufferedReader(new InputStreamReader(is)); + StringBuilder builder = new StringBuilder(); + String line = null; + while ((line = br.readLine()) != null) { + builder.append(line); + } + + text = builder.toString(); + + close(br); // 关闭数据流 + close(is); // 关闭数据流 + conn.disconnect(); // 断开连接 + } catch (Exception exception) { + throw new RuntimeException(exception); + } + return text; + } + + /** + * 请求地址拼接查询字符串 + * @param url 请求地址 + * @param params 查询参数 + * @return 拼接后的请求地址 + */ + public static String getUrlWithQueryString(String url, Map params) { + if (params == null) { + return url; + } + + StringBuilder builder = new StringBuilder(url); + if (url.contains("?")) { + builder.append("&"); + } else { + builder.append("?"); + } + + int i = 0; + for (String key : params.keySet()) { + String value = params.get(key); + if (value == null) { // 过滤空的key + continue; + } + if (i != 0) { + builder.append('&'); + } + builder.append(key); + builder.append('='); + builder.append(encode(value)); + i++; + } + + return builder.toString(); + } + + /** + * 关闭连接 + * @param closeable Closeable对象 + */ + protected static void close(Closeable closeable) { + if (closeable != null) { + try { + closeable.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + /** + * 对输入的字符串进行URL编码, 即转换为%20这种形式 + * @param input 原文 + * @return URL编码. 如果编码失败, 则返回原文 + */ + public static String encode(String input) { + if (input == null) { + return ""; + } + + try { + return URLEncoder.encode(input, "utf-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + + return input; + } + + private static TrustManager myX509TrustManager = new X509TrustManager() { + @Override + public X509Certificate[] getAcceptedIssuers() { + return null; + } + + @Override + public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { + } + + @Override + public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { + } + }; + +} diff --git a/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/util/MD5.java b/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/util/MD5.java new file mode 100755 index 000000000..7071aa21a --- /dev/null +++ b/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/util/MD5.java @@ -0,0 +1,53 @@ +package com.moocsk.lowcode.baidu.translate.util; + +import java.security.MessageDigest; + +/** + * MD5编码相关的类 + */ +public class MD5 { + // 首先初始化一个字符数组,用来存放每个16进制字符 + private static final char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; + + /** + * 获得一个字符串的MD5值 + * @param input 输入的字符串 + * @return 输入字符串的MD5值 + */ + public static String md5(String input) throws Exception { + if (input == null) { + return null; + } + + // 拿到一个MD5转换器(如果想要SHA1参数换成”SHA1”) + MessageDigest messageDigest = MessageDigest.getInstance("MD5"); + // 输入的字符串转换成字节数组 + byte[] inputByteArray = input.getBytes("utf-8"); + // inputByteArray是输入字符串转换得到的字节数组 + messageDigest.update(inputByteArray); + // 转换并返回结果,也是字节数组,包含16个元素 + byte[] resultByteArray = messageDigest.digest(); + // 字符数组转换成字符串返回 + return byteArrayToHex(resultByteArray); + } + + /** + * 字节数组转换 + * @param byteArray 字节数组 + * @return 转换结果 + */ + private static String byteArrayToHex(byte[] byteArray) { + // new一个字符数组,这个就是用来组成结果字符串的(解释一下:一个byte是八位二进制,也就是2位十六进制字符(2的8次方等于16的2次方)) + char[] resultCharArray = new char[byteArray.length * 2]; + // 遍历字节数组,通过位运算(位运算效率高),转换成字符放到字符数组中去 + int index = 0; + for (byte b : byteArray) { + resultCharArray[index++] = hexDigits[b >>> 4 & 0xf]; + resultCharArray[index++] = hexDigits[b & 0xf]; + } + + // 字符数组组合成字符串返回 + return new String(resultCharArray); + } + +} diff --git a/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/util/ModelUtil.java b/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/util/ModelUtil.java new file mode 100644 index 000000000..116b6df3e --- /dev/null +++ b/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/util/ModelUtil.java @@ -0,0 +1,53 @@ +package com.moocsk.lowcode.baidu.translate.util; + +import java.util.ArrayList; +import java.util.List; + +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.moocsk.lowcode.baidu.translate.model.Translate; +import com.moocsk.lowcode.baidu.translate.model.TranslateResult; +import com.moocsk.lowcode.baidu.translate.model.TranslateResultSingle; + +/** + * 模型转换类 + */ +public class ModelUtil { + /** + * 转换翻译结果数组 + * @param array 翻译结果数组 + * @return 翻译结果 List + */ + public static List getTranslateModels(JSONArray array) { + List list = new ArrayList(); + for (int i = 0; i < array.size(); i++) { + JSONObject obj = (JSONObject) array.get(i); + Translate translate = new Translate(); + String src = obj.getString("src"); + translate.src = src; + String dst = obj.getString("dst"); + translate.dst = dst; + list.add(translate); + } + return list; + } + + /** + * 从默认翻译结果中获取单条翻译结果 + * @param translateResult 翻译结果对象 + * @return 单条翻译结果 + */ + public static TranslateResultSingle getSingleTranslate(TranslateResult translateResult) { + TranslateResultSingle result = new TranslateResultSingle(); + result.errorCode = translateResult.errorCode; + result.errorMsg = translateResult.errorMsg; + result.from = translateResult.from; + result.to = translateResult.to; + if (translateResult.errorCode == null) { + Translate translate = translateResult.transResult.get(0); + result.src = translate.src; + result.dst = translate.dst; + } + return result; + } +} diff --git a/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/util/StringUtil.java b/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/util/StringUtil.java new file mode 100644 index 000000000..458ec50e2 --- /dev/null +++ b/connector_baidu_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/baidu/translate/util/StringUtil.java @@ -0,0 +1,25 @@ +package com.moocsk.lowcode.baidu.translate.util; + +public class StringUtil { + + /** + * @param value 需要判断的字符串 + * @return 返回字符串的实际长度 + */ + public static int getStringLengthByByte(String value) { + if (value == null || "".equals(value)) { + return 0; + } + int valueLength = 0; + for (int i = 0; i < value.length(); i++) { + char temp = value.charAt(i); + if ((temp + "").getBytes().length == 1) { + valueLength += 1; + } else { + valueLength += 2; + } + } + return valueLength; + } + +} diff --git "a/connector_baidu_translate_JiangXiaoTian/\344\276\235\350\265\226\345\272\223\344\275\277\347\224\250\346\226\207\346\241\243\350\257\264\346\230\216.docx" "b/connector_baidu_translate_JiangXiaoTian/\344\276\235\350\265\226\345\272\223\344\275\277\347\224\250\346\226\207\346\241\243\350\257\264\346\230\216.docx" new file mode 100644 index 000000000..ccb869083 Binary files /dev/null and "b/connector_baidu_translate_JiangXiaoTian/\344\276\235\350\265\226\345\272\223\344\275\277\347\224\250\346\226\207\346\241\243\350\257\264\346\230\216.docx" differ diff --git a/connector_youdao_translate_JiangXiaoTian/README.md b/connector_youdao_translate_JiangXiaoTian/README.md new file mode 100644 index 000000000..1fad149f2 --- /dev/null +++ b/connector_youdao_translate_JiangXiaoTian/README.md @@ -0,0 +1,121 @@ +# 有道翻译连接器 + +## 功能概述 + +有道翻译 API,为广大开发者提供开放接口。您的应用或网站可通过有道翻译 API,构建丰富多样的功能或应用,为用户带来即时,准确,方便的查词或翻译体验,从而降低语言理解与应用门槛。有道翻译连接器用于调用有道翻译 API。 + +调用有道翻译 API,需要接入有道翻译服务,请参考:[有道翻译-接入服务](https://ai.youdao.com/doc.s#guide) + +## 功能介绍 + +用于将给定的文本,从源语言翻译为目标语言。支持单条和批量文本翻译。 + +| 操作标识 | 操作名称 | 对应有道翻译接口文档 | +| ---------------- | ------------ | --------------------------------- | +| translation | 单条文本翻译 | https://fanyi.youdao.com/openapi/ | +| translationBatch | 批量文本翻译 | https://fanyi.youdao.com/openapi/ | + +### translation 标识说明 + +`translation 标识` 入参说明 + +| 参数名 | 类型 | 是否必填 | 描述 | 备注 | +| ------ | ------ | -------- | -------------- | --------------- | +| q | String | 是 | 需要翻译的文本 | 单条文本翻译 | +| from | String | 是 | 翻译源语言 | 可设置为 auto | +| to | String | 是 | 翻译目标语言 | 不可设置为 auto | + +> 注意:请将单次翻译文本长度限定为 5000 字节以内。 + +`translation 标识` 出参说明 + +| 参数名 | 类型 | 描述 | 备注 | +| ----------- | ------ | -------- | -------------------------------------------------------------- | +| from | String | 源语言 | 返回用户指定的语言,或者自动检测出的语种(源语言设为 auto 时) | +| to | String | 目标语言 | 返回用户指定的目标语言 | +| query | String | 原文 | 需要翻译的文本 | +| translation | String | 译文 | 翻译结果 | +| errorCode | String | 错误码 | 一定存在,正确时为 0 | +| errorMsg | String | 错误信息 | 仅当存在错误时有值 | + +### translationBatch 标识说明 + +`translationBatch 标识` 入参说明 + +| 参数名 | 类型 | 是否必填 | 描述 | 备注 | +| ------ | ------------ | -------- | ------------------ | --------------- | +| q | List | 是 | 需要翻译的文本列表 | 批量文本翻译 | +| from | String | 是 | 翻译源语言 | 可设置为 auto | +| to | String | 是 | 翻译目标语言 | 不可设置为 auto | + +> 注意:请将批量翻译数量控制在 5000 个以内,总文本长度限定为 5000 字节以内。 + +`translationBatch 标识` 出参说明 + +| 参数名 | 类型 | 描述 | 备注 | +| ---------------- | --------------- | -------- | -------------------------------------------------------------- | +| from | String | 源语言 | 返回用户指定的语言,或者自动检测出的语种(源语言设为 auto 时) | +| to | String | 目标语言 | 返回用户指定的目标语言 | +| translateResults | List | 翻译结果 | 返回翻译结果,包括 `query` 和 `translation` 字段 | +| errorCode | String | 错误码 | 一定存在,正确时为 0 | +| errorMsg | String | 错误信息 | 仅当存在错误时有值 | + +`Translate`结构说明 + +| 字段名 | 类型 | 说明 | +| ----------- | ------ | ---- | +| query | String | 原文 | +| translation | String | 译文 | + +## 操作示例 + +### 1. 添加连接器 + +添加连接器并填入`appid`(应用 ID)和`secretKey`(密钥)。 + +![image](youdao_translate_001.png) + +### 2. 调用连接器 + +示例:使用有道翻译连接器将中文翻译成英文。 + +创建服务端逻辑,添加输入参数`params`,类型为`String`,代表需要翻译的文本,调用有道翻译连接器,操作选择`translation`(单条文本翻译),`from参数`输入文本`zh-CHS`,`to参数`输入文本`en`,创建局部变量`data`接收连接器调用结果。 + +![image](youdao_translate_002.png) + +添加输出参数`result`,对接收的结果`data`进行匹配,当结果正确返回时,将`data`赋值给`result`;当结果返回`Error`时,输出日志。 + +![image](youdao_translate_003.png) + +创建页面如下图所示,使用`多行输入组件`接收用户输入的需要翻译的文本,使用`文本组件`展示翻译结果。 + +![image](youdao_translate_004.png) + +在页面创建`text局部变量`用于绑定多行输入组件的值,创建`result局部变量`用于绑定翻译结果。 + +![image](youdao_translate_005.png) + +翻译按钮添加事件逻辑,调用之前创建的服务端逻辑。对调用返回结果进行判断,当结果中错误码不为`字符串 0`时,弹出消息;当调用结果中错误码为`字符串 0`时,将翻译结果赋值给`result局部变量`。 + +![image](youdao_translate_006.png) + +预览应用,输入需要翻译的文本,点击翻译,即可差看到翻译结果。 + +![image](youdao_translate_007.png) + +## 支持语种列表 + +常见语种列表 + +| 名称 | 代码 | +| -------- | ------ | +| 自动检测 | auto | +| 中文 | zh-CHS | +| 中文繁体 | zh-CHT | +| 英文 | en | +| 法文 | fr | +| 西班牙文 | es | +| 俄文 | ru | +| 阿拉伯文 | ar | + +更多有道翻译支持语种列表请参考[如何调用接口-批量文本翻译-支持语言](https://fanyi.youdao.com/openapi/) diff --git a/connector_youdao_translate_JiangXiaoTian/pom.xml b/connector_youdao_translate_JiangXiaoTian/pom.xml new file mode 100644 index 000000000..889fe6603 --- /dev/null +++ b/connector_youdao_translate_JiangXiaoTian/pom.xml @@ -0,0 +1,73 @@ + + + 4.0.0 + + com.moocsk.lowcode + youdao-translate + 0.0.1 + 有道翻译连接器 + 有道翻译API + + + 8 + 8 + UTF-8 + 3.3 + + + + + nasl-metadata-collector + com.netease.lowcode + 0.8.0 + + + com.alibaba.fastjson2 + fastjson2 + 2.0.44 + + + com.squareup.okhttp3 + okhttp + 3.14.9 + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 3.3.0 + + + jar-with-dependencies + + false + + + + make-assembly + package + + single + + + + + + com.netease.lowcode + nasl-metadata-maven-plugin + 1.3.0 + + + + archive + + + + + + + \ No newline at end of file diff --git a/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/api/TransApi.java b/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/api/TransApi.java new file mode 100755 index 000000000..a3827d064 --- /dev/null +++ b/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/api/TransApi.java @@ -0,0 +1,88 @@ +package com.moocsk.lowcode.youdao.translate.api; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.moocsk.lowcode.youdao.translate.model.TranslateResult; +import com.moocsk.lowcode.youdao.translate.util.AuthV3Util; +import com.moocsk.lowcode.youdao.translate.util.HttpUtil; +import com.moocsk.lowcode.youdao.translate.util.ModelUtil; + +public class TransApi { + /** 批量文本翻译地址 */ + private static final String TRANS_API_HOST = "https://openapi.youdao.com/v2/api"; + + /** 应用 ID */ + private String appid; + /** 密钥 */ + private String securityKey; + + /** + * @param appid 应用 ID + * @param securityKey 密钥 + */ + public TransApi(String appid, String securityKey) { + this.appid = appid; + this.securityKey = securityKey; + } + + /** + * 批量文本翻译 + * + * @param query 需要翻译的内容 + * @param from 源语言 + * @param to 目标语言 + * @return 翻译结果对象 + */ + public TranslateResult generalTextTranslation(List query, String from, String to) { + TranslateResult result = new TranslateResult(); + try { + // 请求参数 + Map params = this.buildParams(query, from, to); + // 请求api服务 + String response = HttpUtil.doPost(TRANS_API_HOST, null, params); + JSONObject jsonObject = JSONObject.parseObject(response); + // 如果 http 200,接口返回错误信息 + String errorCode = jsonObject.getString("errorCode"); + result.setErrorCode(errorCode); + if (!errorCode.equals("0")) { + String errorMsg = jsonObject.getString("msg"); + result.setErrorMsg(errorMsg); + return result; + } + String[] lang = jsonObject.getString("l").split("2"); + result.setFrom(lang[0]); + result.setTo(lang[1]); + JSONArray trans = jsonObject.getJSONArray("translateResults"); + result.setTranslateResults(ModelUtil.getTranslateModels(trans)); + } catch (Exception e) { + result.setErrorCode("500"); + result.setErrorMsg(e.getMessage()); + throw new RuntimeException(e); + } + return result; + } + + /** + * 构建查询参数 Map + * + * @param query 需要翻译的内容 + * @param from 源语言 + * @param to 目标语言 + * @return 查询参数 Map + */ + private Map buildParams(List query, String from, String to) throws Exception { + // 添加请求参数 + Map params = new HashMap(); + params.put("q", query.toArray(new String[query.size()])); + params.put("from", new String[] { from }); + params.put("to", new String[] { to }); + // 添加鉴权相关参数 + AuthV3Util.addAuthParams(this.appid, this.securityKey, params); + return params; + } + +} diff --git a/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/connector/YoudaoTranslate.java b/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/connector/YoudaoTranslate.java new file mode 100644 index 000000000..8f0b24a0d --- /dev/null +++ b/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/connector/YoudaoTranslate.java @@ -0,0 +1,146 @@ +package com.moocsk.lowcode.youdao.translate.connector; + +import java.util.ArrayList; +import java.util.List; + +import com.moocsk.lowcode.youdao.translate.api.TransApi; +import com.moocsk.lowcode.youdao.translate.model.TranslateResult; +import com.moocsk.lowcode.youdao.translate.model.TranslateResultSingle; +import com.moocsk.lowcode.youdao.translate.util.ModelUtil; +import com.moocsk.lowcode.youdao.translate.util.StringUtil; +import com.netease.lowcode.core.annotation.NaslConnector; + +/** + * 百度翻译连接器 + */ +@NaslConnector(connectorKind = "YoudaoTranslate") +public class YoudaoTranslate { + + /** 应用ID */ + private String appid; + + /** 密钥 */ + private String secretKey; + + /** + * 初始化 + * + * @param appid 应用ID + * @param secretKey 密钥 + * @return 百度翻译连接器 + */ + @NaslConnector.Creator + public YoudaoTranslate init(String appid, String secretKey) { + YoudaoTranslate baiduTranslate = new YoudaoTranslate(); + baiduTranslate.appid = appid; + baiduTranslate.secretKey = secretKey; + return baiduTranslate; + } + + /** + * 连通性测试 + * + * @param appid 应用ID + * @param secretKey 密钥 + * @return 连通结果 + */ + @NaslConnector.Tester + public Boolean testConnection(String appid, String secretKey) { + TransApi transApi = new TransApi(appid, secretKey); + List list = new ArrayList(); + list.add("测试"); + TranslateResult translateResult = transApi.generalTextTranslation(list, "zh-CHS", "en"); + if (translateResult.errorCode.equals("0")) { + return true; + } + return false; + } + + /** + * 单条文本翻译 + * + * @param q 需要翻译的内容 + * @param from 源语言 + * @param to 目标语言 + * @return 单条翻译结果 + */ + @NaslConnector.Logic + public TranslateResultSingle translation(String q, String from, String to) { + TranslateResultSingle translateResultSingle = new TranslateResultSingle(); + // 翻译文本总长度控制在 5000 字节以内 + int qLen = StringUtil.getStringLengthByByte(q); // 翻译文本字节长度 + if (qLen > 5000) { + translateResultSingle.setErrorCode("500"); + translateResultSingle.setErrorMsg("请将翻译内容控制在5000字节以内"); + return translateResultSingle; + } + TransApi transApi = new TransApi(this.appid, this.secretKey); + List qList = new ArrayList<>(); + qList.add(q); + TranslateResult translateResult = transApi.generalTextTranslation(qList, from, to); + translateResultSingle = ModelUtil.getSingleTranslate(translateResult); + return translateResultSingle; + } + + /** + * 批量文本翻译 + * + * @param q 需要翻译的内容 + * @param from 源语言 + * @param to 目标语言 + * @return 批量翻译结果 + */ + @NaslConnector.Logic + public TranslateResult translationBatch(List q, String from, String to) { + TranslateResult translateResult = new TranslateResult(); + // 批量翻译限制 List 长度为 6000 + int qSize = q.size(); + if (qSize > 5000) { + translateResult.setErrorCode("500"); + translateResult.setErrorMsg("请将批量翻译数量控制在5000个以内"); + return translateResult; + } + // 批量翻译文本总长度控制在 5000 字节以内 + String qStr = String.join("", q); + int qStrLen = StringUtil.getStringLengthByByte(qStr); // 翻译文本字节长度 + if (qStrLen > 5000) { + translateResult.setErrorCode("500"); + translateResult.setErrorMsg("请将翻译内容控制在5000字节以内"); + return translateResult; + } + TransApi transApi = new TransApi(this.appid, this.secretKey); + translateResult = transApi.generalTextTranslation(q, from, to); + return translateResult; + } + + public static void main(String[] args) { + String appid = ""; + String secretKey = ""; + String from = "zh-CHS"; + String to = "en"; + + YoudaoTranslate baiduTranslate = new YoudaoTranslate().init(appid, secretKey); + + // 测试连通性 + Boolean connBoolean = baiduTranslate.testConnection(appid, secretKey); + if (connBoolean) { + System.out.println("连接成功"); + } else { + System.out.println("连接失败"); + } + + // 测试批量文本翻译 + List list = new ArrayList(); + list.add("水果"); + list.add("香蕉"); + TranslateResult translateResult = baiduTranslate.translationBatch(list, from, to); + System.out.println("批量文本翻译结果"); + System.out.println(translateResult); + + // 测试单条文本翻译 + TranslateResultSingle translateResultSingle = baiduTranslate.translation("水果", from, to); + System.out.println("单条文本翻译结果"); + System.out.println(translateResultSingle); + } + +} diff --git a/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/model/Translate.java b/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/model/Translate.java new file mode 100644 index 000000000..c9f552b5e --- /dev/null +++ b/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/model/Translate.java @@ -0,0 +1,41 @@ +package com.moocsk.lowcode.youdao.translate.model; + +import com.netease.lowcode.core.annotation.NaslStructure; + +/** + * 翻译结果 + */ +@NaslStructure +public class Translate { + /** + * 原文 + */ + public String query; + + /** + * 译文 + */ + public String translation; + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + public String getTranslation() { + return translation; + } + + public void setTranslation(String translation) { + this.translation = translation; + } + + @Override + public String toString() { + return "{ query: " + query + ", translation: " + translation + " }"; + } + +} diff --git a/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/model/TranslateResult.java b/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/model/TranslateResult.java new file mode 100644 index 000000000..23e17f41e --- /dev/null +++ b/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/model/TranslateResult.java @@ -0,0 +1,83 @@ +package com.moocsk.lowcode.youdao.translate.model; + +import java.util.List; + +import com.netease.lowcode.core.annotation.NaslStructure; + +/** + * 批量文本翻译结果响应 + */ +@NaslStructure +public class TranslateResult { + /** + * 错误码 + */ + public String errorCode; + + /** + * 错误信息 + */ + public String errorMsg; + + /** + * 源语言 + */ + public String from; + + /** + * 目标语言 + */ + public String to; + + /** + * 翻译结果 + */ + public List translateResults; + + public String getErrorCode() { + return errorCode; + } + + public void setErrorCode(String errorCode) { + this.errorCode = errorCode; + } + + public String getErrorMsg() { + return errorMsg; + } + + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } + + public String getFrom() { + return from; + } + + public void setFrom(String from) { + this.from = from; + } + + public String getTo() { + return to; + } + + public void setTo(String to) { + this.to = to; + } + + public List getTranslateResults() { + return translateResults; + } + + public void setTranslateResults(List translateResults) { + this.translateResults = translateResults; + } + + @Override + public String toString() { + return "{ errorCode: " + errorCode + ", errorMsg: " + errorMsg + ", from: " + from + ", to: " + to + + ", translateResults: " + translateResults + " }"; + } + +} diff --git a/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/model/TranslateResultSingle.java b/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/model/TranslateResultSingle.java new file mode 100644 index 000000000..08fcafb8f --- /dev/null +++ b/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/model/TranslateResultSingle.java @@ -0,0 +1,94 @@ +package com.moocsk.lowcode.youdao.translate.model; + +import com.netease.lowcode.core.annotation.NaslStructure; + +/** + * 单条文本翻译结果响应 + */ +@NaslStructure +public class TranslateResultSingle { + /** + * 错误码 + */ + public String errorCode; + + /** + * 错误信息 + */ + public String errorMsg; + + /** + * 源语言 + */ + public String from; + + /** + * 目标语言 + */ + public String to; + + /** + * 原文 + */ + public String query; + + /** + * 译文 + */ + public String translation; + + public String getErrorCode() { + return errorCode; + } + + public void setErrorCode(String errorCode) { + this.errorCode = errorCode; + } + + public String getErrorMsg() { + return errorMsg; + } + + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } + + public String getFrom() { + return from; + } + + public void setFrom(String from) { + this.from = from; + } + + public String getTo() { + return to; + } + + public void setTo(String to) { + this.to = to; + } + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + public String getTranslation() { + return translation; + } + + public void setTranslation(String translation) { + this.translation = translation; + } + + @Override + public String toString() { + return "{ errorCode: " + errorCode + ", errorMsg: " + errorMsg + ", from: " + from + ", to: " + + to + ", query: " + query + ", translation: " + translation + " }"; + } + +} diff --git a/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/util/AuthV3Util.java b/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/util/AuthV3Util.java new file mode 100644 index 000000000..d30cae0ee --- /dev/null +++ b/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/util/AuthV3Util.java @@ -0,0 +1,99 @@ +package com.moocsk.lowcode.youdao.translate.util; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Map; +import java.util.UUID; + +public class AuthV3Util { + + /** + * 添加鉴权相关参数 + * + * @param appKey 应用ID + * @param appSecret 应用密钥 + * @param params 请求参数 + */ + public static void addAuthParams(String appKey, String appSecret, Map params) + throws NoSuchAlgorithmException { + String[] qArray = params.get("q"); + StringBuilder q = new StringBuilder(); + for (String item : qArray) { + q.append(item); + } + // 签名 + String salt = UUID.randomUUID().toString(); + String curtime = String.valueOf(System.currentTimeMillis() / 1000); + String sign = calculateSign(appKey, appSecret, q.toString(), salt, curtime); + // 添加请求参数 + params.put("appKey", new String[] { appKey }); // 应用ID + params.put("salt", new String[] { salt }); // 随机值 + params.put("curtime", new String[] { curtime }); // 当前时间戳(秒) + params.put("signType", new String[] { "v3" }); // 签名版本 + params.put("sign", new String[] { sign }); // 请求签名 + } + + /** + * 计算鉴权签名 + * 计算方式 : sign = sha256(appKey + input(q) + salt + curtime + appSecret) + * + * @param appKey 应用ID + * @param appSecret 应用密钥 + * @param q 请求内容 + * @param salt 随机值 + * @param curtime 当前时间戳(秒) + * @return 鉴权签名sign + */ + public static String calculateSign(String appKey, String appSecret, String q, String salt, String curtime) { + String strSrc = appKey + truncate(q) + salt + curtime + appSecret; + try { + return encrypt(strSrc); + } catch (NoSuchAlgorithmException e) { + throw new RuntimeException(e); + } + } + + /** + * 加密字符串 + * + * @param strSrc 字符串 + * @return 加密后字符串 + */ + private static String encrypt(String strSrc) throws NoSuchAlgorithmException { + byte[] bt = strSrc.getBytes(); + MessageDigest md = MessageDigest.getInstance("SHA-256"); + md.update(bt); + byte[] bts = md.digest(); + StringBuilder des = new StringBuilder(); + for (byte b : bts) { + String tmp = (Integer.toHexString(b & 0xFF)); + if (tmp.length() == 1) { + des.append("0"); + } + des.append(tmp); + } + return des.toString(); + } + + /** + * 获取签名需要的翻译文本 + * + * @param input 翻译文本 + * @return 签名需要的翻译文本 + */ + private static String truncate(String input) { + if (input == null) { + return null; + } + String result; + int len = input.length(); + if (len <= 20) { + result = input; + } else { + String startStr = input.substring(0, 10); + String endStr = input.substring(len - 10, len); + result = startStr + len + endStr; + } + return result; + } +} diff --git a/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/util/HttpUtil.java b/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/util/HttpUtil.java new file mode 100644 index 000000000..d1157d6a5 --- /dev/null +++ b/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/util/HttpUtil.java @@ -0,0 +1,136 @@ +package com.moocsk.lowcode.youdao.translate.util; + +import okhttp3.FormBody; +import okhttp3.HttpUrl; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; + +import java.nio.charset.StandardCharsets; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +public class HttpUtil { + + /** HttpClient 实例 */ + private static OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(10, TimeUnit.SECONDS).build(); + + /** + * 发送 GET 请求 + * + * @param url 请求地址 + * @param header 请求头 + * @param params 查询参数 + * @return 响应结果 + */ + public static String doGet(String url, Map header, Map params) { + Request.Builder builder = new Request.Builder(); + addHeader(builder, header); + addUrlParams(builder, url, params); + return request(builder.build()); + } + + /** + * 发送 post 请求 + * + * @param url 请求地址 + * @param header 请求头 + * @param body 请求体 + * @return 响应结果 + */ + public static String doPost(String url, Map header, Map body) { + Request.Builder builder = new Request.Builder().url(url); + addHeader(builder, header); + addBodyParam(builder, body, "POST"); + return request(builder.build()); + } + + /** + * 设置请求头 + * + * @param builder 请求构造器 + * @param header 请求投 + */ + private static void addHeader(Request.Builder builder, Map header) { + if (header == null) { + return; + } + for (String key : header.keySet()) { + String[] values = header.get(key); + if (values != null) { + for (String value : values) { + builder.addHeader(key, value); + } + } + } + } + + /** + * 设置请求查询参数 + * + * @param builder 请求构造器 + * @param url 请求地址 + * @param params 查询参数 + */ + private static void addUrlParams(Request.Builder builder, String url, Map params) { + if (params == null) { + return; + } + HttpUrl.Builder urlBuilder = HttpUrl.parse(url).newBuilder(); + for (String key : params.keySet()) { + String[] values = params.get(key); + if (values != null) { + for (String value : values) { + urlBuilder.addQueryParameter(key, value); + } + } + } + builder.url(urlBuilder.build()); + } + + /** + * 设置请求体 + * + * @param builder 请求构造器 + * @param body 请求体 + * @param method 请求方法 + */ + private static void addBodyParam(Request.Builder builder, Map body, String method) { + if (body == null) { + return; + } + FormBody.Builder formBodyBuilder = new FormBody.Builder(StandardCharsets.UTF_8); + for (String key : body.keySet()) { + String[] values = body.get(key); + if (values != null) { + for (String value : values) { + formBodyBuilder.add(key, value); + } + } + } + builder.method(method, formBodyBuilder.build()); + } + + /** + * 发送请求 + * + * @param request 请求体 + * @return 响应消息 + */ + private static String request(Request request) { + String result = null; + try { + Response response = httpClient.newCall(request).execute(); + if (response.code() == 200) { + ResponseBody body = response.body(); + result = new String(body.bytes(), StandardCharsets.UTF_8); + } else { + throw new RuntimeException(response.message()); + } + } catch (Exception e) { + throw new RuntimeException(e); + } + return result; + } +} diff --git a/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/util/ModelUtil.java b/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/util/ModelUtil.java new file mode 100644 index 000000000..402fb339c --- /dev/null +++ b/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/util/ModelUtil.java @@ -0,0 +1,55 @@ +package com.moocsk.lowcode.youdao.translate.util; + +import java.util.ArrayList; +import java.util.List; + +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.moocsk.lowcode.youdao.translate.model.Translate; +import com.moocsk.lowcode.youdao.translate.model.TranslateResult; +import com.moocsk.lowcode.youdao.translate.model.TranslateResultSingle; + +/** + * 模型转换类 + */ +public class ModelUtil { + /** + * 转换翻译结果数组 + * + * @param array 翻译结果数组 + * @return 翻译结果 List + */ + public static List getTranslateModels(JSONArray array) { + List list = new ArrayList(); + for (int i = 0; i < array.size(); i++) { + JSONObject obj = (JSONObject) array.get(i); + Translate translate = new Translate(); + String query = obj.getString("query"); + translate.query = query; + String translation = obj.getString("translation"); + translate.translation = translation; + list.add(translate); + } + return list; + } + + /** + * 从默认翻译结果中获取单条翻译结果 + * + * @param translateResult 翻译结果对象 + * @return 单条翻译结果 + */ + public static TranslateResultSingle getSingleTranslate(TranslateResult translateResult) { + TranslateResultSingle result = new TranslateResultSingle(); + result.errorCode = translateResult.errorCode; + result.errorMsg = translateResult.errorMsg; + result.from = translateResult.from; + result.to = translateResult.to; + if (translateResult.errorCode.equals("0")) { + Translate translate = translateResult.translateResults.get(0); + result.query = translate.query; + result.translation = translate.translation; + } + return result; + } +} diff --git a/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/util/StringUtil.java b/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/util/StringUtil.java new file mode 100644 index 000000000..48c48664d --- /dev/null +++ b/connector_youdao_translate_JiangXiaoTian/src/main/java/com/moocsk/lowcode/youdao/translate/util/StringUtil.java @@ -0,0 +1,25 @@ +package com.moocsk.lowcode.youdao.translate.util; + +public class StringUtil { + + /** + * @param value 需要判断的字符串 + * @return 返回字符串的实际长度 + */ + public static int getStringLengthByByte(String value) { + if (value == null || "".equals(value)) { + return 0; + } + int valueLength = 0; + for (int i = 0; i < value.length(); i++) { + char temp = value.charAt(i); + if ((temp + "").getBytes().length == 1) { + valueLength += 1; + } else { + valueLength += 2; + } + } + return valueLength; + } + +} diff --git a/connector_youdao_translate_JiangXiaoTian/youdao_translate_001.png b/connector_youdao_translate_JiangXiaoTian/youdao_translate_001.png new file mode 100644 index 000000000..bff68b0d3 Binary files /dev/null and b/connector_youdao_translate_JiangXiaoTian/youdao_translate_001.png differ diff --git a/connector_youdao_translate_JiangXiaoTian/youdao_translate_002.png b/connector_youdao_translate_JiangXiaoTian/youdao_translate_002.png new file mode 100644 index 000000000..054fc5ddd Binary files /dev/null and b/connector_youdao_translate_JiangXiaoTian/youdao_translate_002.png differ diff --git a/connector_youdao_translate_JiangXiaoTian/youdao_translate_003.png b/connector_youdao_translate_JiangXiaoTian/youdao_translate_003.png new file mode 100644 index 000000000..f8619c56c Binary files /dev/null and b/connector_youdao_translate_JiangXiaoTian/youdao_translate_003.png differ diff --git a/connector_youdao_translate_JiangXiaoTian/youdao_translate_004.png b/connector_youdao_translate_JiangXiaoTian/youdao_translate_004.png new file mode 100644 index 000000000..61cde3189 Binary files /dev/null and b/connector_youdao_translate_JiangXiaoTian/youdao_translate_004.png differ diff --git a/connector_youdao_translate_JiangXiaoTian/youdao_translate_005.png b/connector_youdao_translate_JiangXiaoTian/youdao_translate_005.png new file mode 100644 index 000000000..8564c23ca Binary files /dev/null and b/connector_youdao_translate_JiangXiaoTian/youdao_translate_005.png differ diff --git a/connector_youdao_translate_JiangXiaoTian/youdao_translate_006.png b/connector_youdao_translate_JiangXiaoTian/youdao_translate_006.png new file mode 100644 index 000000000..219530a50 Binary files /dev/null and b/connector_youdao_translate_JiangXiaoTian/youdao_translate_006.png differ diff --git a/connector_youdao_translate_JiangXiaoTian/youdao_translate_007.png b/connector_youdao_translate_JiangXiaoTian/youdao_translate_007.png new file mode 100644 index 000000000..f33fc0f90 Binary files /dev/null and b/connector_youdao_translate_JiangXiaoTian/youdao_translate_007.png differ diff --git "a/connector_youdao_translate_JiangXiaoTian/\344\276\235\350\265\226\345\272\223\344\275\277\347\224\250\346\226\207\346\241\243\350\257\264\346\230\216.docx" "b/connector_youdao_translate_JiangXiaoTian/\344\276\235\350\265\226\345\272\223\344\275\277\347\224\250\346\226\207\346\241\243\350\257\264\346\230\216.docx" new file mode 100644 index 000000000..f171aadea Binary files /dev/null and "b/connector_youdao_translate_JiangXiaoTian/\344\276\235\350\265\226\345\272\223\344\275\277\347\224\250\346\226\207\346\241\243\350\257\264\346\230\216.docx" differ diff --git a/demo_bjz_JiazhenBao/pom.xml b/demo_bjz_JiazhenBao/pom.xml index 5f3b2a7b5..a734050ad 100644 --- a/demo_bjz_JiazhenBao/pom.xml +++ b/demo_bjz_JiazhenBao/pom.xml @@ -4,9 +4,9 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - 1 + com.bjz demo_bjz - 1 + 1.0.1 8 @@ -58,4 +58,4 @@ - \ No newline at end of file + diff --git a/httpclient/pom.xml b/httpclient/pom.xml index 128400b8e..6106fe86f 100644 --- a/httpclient/pom.xml +++ b/httpclient/pom.xml @@ -15,7 +15,7 @@ httpclient_opensource httpclient httpclient - 0.12.15 + 0.12.18 diff --git a/httpclient/src/main/java/com/netease/http/config/HttpSpringConfiguration.java b/httpclient/src/main/java/com/netease/http/config/HttpSpringConfiguration.java index cd809aae5..1dcfa9457 100644 --- a/httpclient/src/main/java/com/netease/http/config/HttpSpringConfiguration.java +++ b/httpclient/src/main/java/com/netease/http/config/HttpSpringConfiguration.java @@ -1,23 +1,32 @@ package com.netease.http.config; import com.netease.http.util.RestTemplateUtil; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.impl.client.LaxRedirectStrategy; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.web.client.RestTemplate; @Configuration public class HttpSpringConfiguration { + @Bean + public RestTemplate restTemplate() { + return new RestTemplate(); + } /** * 默认的restTemplate * * @return */ - @Bean + @Bean("restTemplatePrimary") @ConditionalOnMissingBean(RestTemplate.class) - public RestTemplate restTemplate() { - return new RestTemplate(); + public RestTemplate restTemplatePrimary() { + HttpComponentsClientHttpRequestFactory requestFactory = RestTemplateUtil.createRequestFactory(); + requestFactory.setHttpClient(HttpClients.custom().setRedirectStrategy(new LaxRedirectStrategy()).build()); + return new RestTemplate(requestFactory); } /** @@ -27,8 +36,8 @@ public RestTemplate restTemplate() { */ @Bean(name = "restTemplateIgnoreCrt") public RestTemplate restTemplateIgnoreCrt() { - RestTemplate restTemplate = new RestTemplate(); - restTemplate.setRequestFactory(RestTemplateUtil.createCustomRequestFactoryIgnoreCrt()); - return restTemplate; + HttpComponentsClientHttpRequestFactory requestFactory = RestTemplateUtil.createCustomRequestFactoryIgnoreCrt(); + requestFactory.setHttpClient(HttpClients.custom().setRedirectStrategy(new LaxRedirectStrategy()).build()); + return new RestTemplate(requestFactory); } } \ No newline at end of file diff --git a/httpclient/src/main/java/com/netease/http/httpclient/LCAPHttpClient.java b/httpclient/src/main/java/com/netease/http/httpclient/LCAPHttpClient.java index e9dc7d071..5f46f13b6 100644 --- a/httpclient/src/main/java/com/netease/http/httpclient/LCAPHttpClient.java +++ b/httpclient/src/main/java/com/netease/http/httpclient/LCAPHttpClient.java @@ -11,18 +11,17 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.core.io.FileSystemResource; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.retry.annotation.Backoff; import org.springframework.retry.annotation.EnableRetry; -import org.springframework.retry.annotation.Recover; import org.springframework.retry.annotation.Retryable; import org.springframework.stereotype.Component; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; -import org.springframework.web.client.HttpServerErrorException; import org.springframework.web.client.RestTemplate; import java.io.File; @@ -42,14 +41,16 @@ @EnableRetry public class LCAPHttpClient { private static final Logger logger = LoggerFactory.getLogger(LCAPHttpClient.class); - + @Autowired - private RestTemplate restTemplate; + private HttpClientService httpClientService; @Autowired - private RestTemplate restTemplateIgnoreCrt; + @Qualifier("restTemplatePrimary") + private RestTemplate restTemplatePrimary; + @Autowired - private HttpClientService httpClientService; - + @Qualifier("restTemplateIgnoreCrt") + private RestTemplate restTemplateIgnoreCrt; /** * http/https调用(非form使用) * @@ -69,7 +70,7 @@ public String exchange(@Required String url, @Required String httpMethod, @Requi requestParam.setUrl(url); requestParam.setHttpMethod(httpMethod); requestParam.setHeader(header); - ResponseEntity exchange = httpClientService.exchangeInner(requestParam, restTemplate, String.class); + ResponseEntity exchange = httpClientService.exchangeInner(requestParam, restTemplatePrimary, String.class); if (exchange.getStatusCode() == HttpStatus.OK) { return exchange.getBody(); } else { @@ -93,7 +94,7 @@ public String downloadFileUploadNos(String fileUrl, String fileName, Map body = new LinkedMultiValueMap<>(); requestParam.getBody().forEach(body::add); @@ -128,7 +129,7 @@ public String uploadNosExchange(String fileUrl, String requestUrl, RequestParam requestParamInner.setHttpMethod(requestParam.getHttpMethod()); requestParamInner.setUrl(requestParam.getUrl()); requestParamInner.setHeader(requestParam.getHeader()); - ResponseEntity exchange = httpClientService.exchangeInner(requestParamInner, restTemplate, String.class); + ResponseEntity exchange = httpClientService.exchangeInner(requestParamInner, restTemplatePrimary, String.class); if (exchange.getStatusCode() == HttpStatus.OK) { return exchange.getBody(); } else { @@ -147,7 +148,7 @@ public String uploadNosExchange(String fileUrl, String requestUrl, RequestParam @NaslLogic(enhance = false) @Retryable(value = {Exception.class}, maxAttempts = 3, backoff = @Backoff(delay = 1000L)) public String exchangeCrt(RequestParam requestParam) { - RestTemplate restTemplateFinal = restTemplate; + RestTemplate restTemplateFinal = restTemplatePrimary; try { if (requestParam.getIsIgnoreCrt() == null) { requestParam.setIsIgnoreCrt(false); @@ -178,7 +179,7 @@ public String exchangeCrt(RequestParam requestParam) { @NaslLogic @Retryable(value = {Exception.class}, maxAttempts = 3, backoff = @Backoff(delay = 1000L)) public String exchangeAllBodyType(RequestParamAllBodyType requestParam) { - RestTemplate restTemplateFinal = restTemplate; + RestTemplate restTemplateFinal = restTemplatePrimary; try { if (requestParam.getIsIgnoreCrt() == null) { requestParam.setIsIgnoreCrt(false); @@ -218,7 +219,7 @@ public String exchangeWithoutUriEncode(@Required String url, @Required String ht requestParam.setUrl(url); requestParam.setHttpMethod(httpMethod); requestParam.setHeader(header); - ResponseEntity exchange = httpClientService.exchangeWithoutUriEncode(requestParam, restTemplate, String.class); + ResponseEntity exchange = httpClientService.exchangeWithoutUriEncode(requestParam, restTemplatePrimary, String.class); if (exchange.getStatusCode() == HttpStatus.OK) { return exchange.getBody(); } else { diff --git a/httpclient/src/main/java/com/netease/http/util/RestTemplateUtil.java b/httpclient/src/main/java/com/netease/http/util/RestTemplateUtil.java index 0e28b4dd4..df00e8b02 100644 --- a/httpclient/src/main/java/com/netease/http/util/RestTemplateUtil.java +++ b/httpclient/src/main/java/com/netease/http/util/RestTemplateUtil.java @@ -1,36 +1,38 @@ package com.netease.http.util; -import com.alibaba.fastjson.JSONObject; import com.netease.http.config.CrtConfig; import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; -import org.apache.http.ssl.SSLContextBuilder; import org.apache.http.ssl.SSLContexts; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.client.ClientHttpRequestFactory; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.stereotype.Component; -import org.springframework.web.client.RestTemplate; import javax.net.ssl.SSLContext; -import java.io.InputStream; -import java.security.KeyStore; @Component public class RestTemplateUtil { - public static CrtConfig config; private static final Logger log = LoggerFactory.getLogger(RestTemplateUtil.class); + public static CrtConfig config; + + /** + * 创建自默认的ClientHttpRequestFactory + * + * @return 返回默认的ClientHttpRequestFactory + */ + public static HttpComponentsClientHttpRequestFactory createRequestFactory() { + return new HttpComponentsClientHttpRequestFactory(); + } /** * 创建自定义的忽略证书验证的ClientHttpRequestFactory * * @return 返回自定义的ClientHttpRequestFactory */ - public static ClientHttpRequestFactory createCustomRequestFactoryIgnoreCrt() { + public static HttpComponentsClientHttpRequestFactory createCustomRequestFactoryIgnoreCrt() { SSLContext sslContext = null; try { sslContext = SSLContexts.custom().loadTrustMaterial((chain, authType) -> true).build(); @@ -45,48 +47,4 @@ public static ClientHttpRequestFactory createCustomRequestFactoryIgnoreCrt() { return new HttpComponentsClientHttpRequestFactory(httpClient); } - /** - * 创建带有证书的ClientHttpRequestFactory实例 - * - * @return ClientHttpRequestFactory实例 - */ - private static ClientHttpRequestFactory createCustomRequestFactoryWithCrt(InputStream keyStoreInputStream) { - SSLContext sslContext = null; - //KeyStore.getDefaultType() - try { - KeyStore keyStore = KeyStore.getInstance("PKCS12"); - keyStore.load(keyStoreInputStream, "keystorePassword".toCharArray()); - sslContext = SSLContextBuilder.create() - .loadKeyMaterial(keyStore, "keystorePassword".toCharArray()) - .build(); - } catch (Exception e) { - log.error("", e); - } - return new HttpComponentsClientHttpRequestFactory(HttpClients.custom().setSSLContext(sslContext).build()); - } - - /** - * 创建一个RestTemplate对象 - * - * @param isIgnoreCrt 是否忽略Crt - * @return 创建的RestTemplate对象 - */ - public static RestTemplate createRestTemplate(boolean isIgnoreCrt) { - if (!isIgnoreCrt) { - //普通请求 - return new RestTemplate(); - } else { - RestTemplate restTemplate= new RestTemplate(); - restTemplate.setRequestFactory(createCustomRequestFactoryIgnoreCrt()); - //忽略证书请求 - return new RestTemplate(createCustomRequestFactoryIgnoreCrt()); - } - } - - - @Autowired - public void setConfig(CrtConfig config) { - RestTemplateUtil.config = config; - log.info(JSONObject.toJSONString(RestTemplateUtil.config)); - } } diff --git a/httpclient/src/test/java/HttpTest.java b/httpclient/src/test/java/HttpTest.java index 2ffb90681..a4f50cfdc 100644 --- a/httpclient/src/test/java/HttpTest.java +++ b/httpclient/src/test/java/HttpTest.java @@ -54,81 +54,4 @@ public void testHttp() { url = lcapHttpClient.exchangeAllBodyType(requestParam); System.out.println(url); } - - @Test - public void testHttpBody() throws URISyntaxException { - RequestParam requestParam = new RequestParam(); - requestParam.setUrl("https://mclip-tools-dev-ec.netease.com/video_test"); - requestParam.setHttpMethod("POST"); - Map head = new HashMap<>(); -// head.put("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE); - requestParam.setHeader(head); - Map body = new HashMap<>(); - body.put("task_id", "4"); - body.put("url", "aa"); - requestParam.setBody(body); -// requestParam.setIsIgnoreCrt(true); - String url = lcapHttpClient.exchangeCrt(requestParam); - System.out.println(url); -// requestParam.setIsIgnoreCrt(true); -// url = lcapHttpClient.exchange(requestParam.getUrl(), requestParam.getHttpMethod(), requestParam.getHeader(), requestParam.getBody()); -// System.out.println(url); - } - - @Test - public void testDownload() { - URI uri = UriComponentsBuilder - .fromUriString("https://crpdev.fin.netease.com/api/openapi/contract/attachment/download") - .queryParam("uid", "10000566") - .encode() - .build() - .toUri(); - HttpHeaders authHeader = OpenApiTokens.builder() - .uri(uri) - .body(null) - .appId(APP_ID) - .signWith(APP_SECRET) - .issuedAt(new Date()) - .compact(); - Map header = new HashMap<>(); - header.put("appid", Objects.requireNonNull(authHeader.get(OpenApiTokens.AUTH_HEADER_APP_ID)).get(0)); - header.put("timestamp", Objects.requireNonNull(authHeader.get(OpenApiTokens.AUTH_HEADER_TIMESTAMP)).get(0)); - header.put("signature", Objects.requireNonNull(authHeader.get(OpenApiTokens.AUTH_HEADER_SIGNATURE)).get(0)); - NosUtil.nosConfig = new NosConfig(); - NosUtil.nosConfig.nosAccessKey = "e09bc35070b3406eb4179c332da67146"; - NosUtil.nosConfig.nosSecretKey = "624e6295a44d44f7880ae968b10d0892"; - NosUtil.nosConfig.nosAddress = "nos-eastchina1.126.net"; - NosUtil.nosConfig.nosBucket = "lcpapp-static"; - NosUtil.nosConfig.sinkType = "nos"; - String url = lcapHttpClient.downloadFileUploadNos(uri.toString(), null, header); - System.out.println(url); - } - - // @Test - public void testDownload2() { - RequestParamAllBodyTypeInner requestParam = new RequestParamAllBodyTypeInner(); - requestParam.setUrl("https://dev-test-baohuahua.app.codewave.163.com/upload/app/1704163660141_20240105111142008.jpg"); - requestParam.setHttpMethod(HttpMethod.GET.name()); - File file = httpClientService.downloadFile(requestParam, restTemplate, null); - File file1 = new File("a" + file.getName()); - file.renameTo(file1); - System.out.println(file); - } - - // @Test - public void testDownloadFileUploadNos() { - RequestParam requestParam = new RequestParam(); - Map head = new HashMap<>(); - requestParam.setHeader(head); - Map body = new HashMap<>(); - requestParam.setBody(body); - requestParam.setHttpMethod("post"); - - body.put("formatCheck", "false"); - head.put("X-Token", "ubF9PgJPWExFY5HG0SzMjjNwvy63bazgqv6mhXo8UvNo6aPYazjRGs5scQk-C2X3"); - requestParam.setUrl("https://uat.cdp.changan.com.cn/trading-desk/api/brief/upload/new"); - String res = lcapHttpClient.uploadNosExchange("/upload/app/中文测试_20240110144435430.jpg", - "https://dev-test-baohuahua.app.codewave.163.com/test_upload", requestParam); - System.out.println(res); - } } diff --git a/lxy_lunar_calender_library/README.md b/lxy_lunar_calender_library/README.md new file mode 100644 index 000000000..6cd29c1f7 --- /dev/null +++ b/lxy_lunar_calender_library/README.md @@ -0,0 +1,33 @@ +# lxy_lunar_calender_library + +**依赖库设计** + +- 阴历转阳历:提供方法将阴历日期转换为阳历日期,即将阴历日期转换为公历日期。 +- 阳历转阴历:提供方法将阳历日期转换为阴历日期,即将公历日期转换为阴历日期。 +- 获取阴历月份信息:提供方法获取阴历月份的信息,例如阴历月的名称、大小月等。 +- 获取阴历节气信息:提供方法获取特定日期的阴历节气信息,例如立春、清明、夏至等。 +- 获取阴历年份的闰月信息:提供方法获取阴历年份的闰月信息,以及闰月的大小。 +- 获取阴历年份的生肖信息:提供方法获取特定年份对应的生肖信息。 +- 判断阴历日期是否为节日:提供方法判断特定阴历日期是否为传统节日,如春节、中秋节等。 +- 判断阳历日期是否为节日:提供方法判断特定阴历日期是否为传统节日,如春节、中秋节等。 +- 计算阴历日期间的天数差:提供方法计算两个阴历日期之间的天数差。 + +**主要特性** + +- **逻辑一:** getJieQi 获取阴历节气信息 +- **逻辑二:** getLeapMonth 获取阴历年份的闰月信息 +- **逻辑三:** getLunar 通过阳历获取阴历 +- **逻辑四:** getLunarDiff 计算阴历日期间的天数差 +- **逻辑五:** getMonthInChinese 获取阴历月份信息 +- **逻辑六:** getSolar 通过阴历获取阳历 +- **逻辑七:** getYearShengXiao 获取生肖 +- **逻辑八:** isFestivals 阳历是否节日 +- **逻辑九:** isFestivalsByLunar 阴历是否节日 + + + + + +## 应用演示链接 + +[查看示例演示](示例演示链接) diff --git a/lxy_lunar_calender_library/dist-theme/demo.html b/lxy_lunar_calender_library/dist-theme/demo.html new file mode 100644 index 000000000..93e5557d3 --- /dev/null +++ b/lxy_lunar_calender_library/dist-theme/demo.html @@ -0,0 +1,9 @@ +
Click me!
\ No newline at end of file diff --git a/lxy_lunar_calender_library/dist-theme/index.js b/lxy_lunar_calender_library/dist-theme/index.js new file mode 100644 index 000000000..70baf16e8 --- /dev/null +++ b/lxy_lunar_calender_library/dist-theme/index.js @@ -0,0 +1,2 @@ +(function(n,i){"object"===typeof exports&&"object"===typeof module?module.exports=i():"function"===typeof define&&define.amd?define("Lxy_lunar_calender_library",[],i):"object"===typeof exports?exports["Lxy_lunar_calender_library"]=i():n["Lxy_lunar_calender_library"]=i()})(window,(function(){return function(n){var i={};function t(e){if(i[e])return i[e].exports;var a=i[e]={i:e,l:!1,exports:{}};return n[e].call(a.exports,a,a.exports,t),a.l=!0,a.exports}return t.m=n,t.c=i,t.d=function(n,i,e){t.o(n,i)||Object.defineProperty(n,i,{enumerable:!0,get:e})},t.r=function(n){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,i){if(1&i&&(n=t(n)),8&i)return n;if(4&i&&"object"===typeof n&&n&&n.__esModule)return n;var e=Object.create(null);if(t.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:n}),2&i&&"string"!=typeof n)for(var a in n)t.d(e,a,function(i){return n[i]}.bind(null,a));return e},t.n=function(n){var i=n&&n.__esModule?function(){return n["default"]}:function(){return n};return t.d(i,"a",i),i},t.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},t.p="/",t(t.s=0)}({0:function(n,i,t){t("2b45"),n.exports=t("41f5")},"097e":function(n,i,t){var e,a;(function(r,u){e=u,a="function"===typeof e?e.call(i,t,i,n):e,void 0===a||(n.exports=a)})(0,(function(){var n=function(){var a=function(n){return u(n.getFullYear(),n.getMonth()+1,n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds())},r=function(n){var i,t=Math.floor(n+.5),e=n+.5-t;t>=2299161&&(i=Math.floor((t-1867216.25)/36524.25),t+=1+i-Math.floor(i/4)),t+=1524;var a=Math.floor((t-122.1)/365.25);t-=Math.floor(365.25*a);var r=Math.floor(t/30.601);t-=Math.floor(30.601*r);var s=t;r>13?(r-=13,a-=4715):(r-=1,a-=4716),e*=24;var g=Math.floor(e);e-=g,e*=60;var h=Math.floor(e);e-=h,e*=60;var o=Math.round(e);return o>59&&(o-=60,h++),h>59&&(h-=60,g++),g>23&&(g-=24,s+=1),u(a,r,s,g,h,o)},u=function(n,a,r,s,g,h){var F=n,A=a,E=r,D=s,c=g,x=h;if(n*=1,isNaN(n))throw new Error("wrong solar year "+F);if(a*=1,isNaN(a))throw new Error("wrong solar month "+A);if(r*=1,isNaN(r))throw new Error("wrong solar day "+E);if(s*=1,isNaN(s))throw new Error("wrong hour "+D);if(g*=1,isNaN(g))throw new Error("wrong minute "+c);if(h*=1,isNaN(h))throw new Error("wrong second "+x);if(1582===n&&10===a&&r>4&&r<15)throw new Error("wrong solar year "+n+" month "+a+" day "+r);if(a<1||a>12)throw new Error("wrong month "+a);if(r<1||r>31)throw new Error("wrong day "+r);if(s<0||s>23)throw new Error("wrong hour "+s);if(g<0||g>59)throw new Error("wrong minute "+g);if(h<0||h>59)throw new Error("wrong second "+h);return{_p:{year:n,month:a,day:r,hour:s,minute:g,second:h},subtract:function(n){return o.getDaysBetween(n.getYear(),n.getMonth(),n.getDay(),this._p.year,this._p.month,this._p.day)},subtractMinute:function(n){var i=this.subtract(n),t=60*this._p.hour+this._p.minute,e=60*n.getHour()+n.getMinute(),a=t-e;return a<0&&(a+=1440,i--),a+=1440*i,a},isAfter:function(n){return this._p.year>n.getYear()||!(this._p.yearn.getMonth()||!(this._p.monthn.getDay()||!(this._p.dayn.getHour()||!(this._p.hourn.getMinute()||!(this._p.minuten.getSecond()))))},isBefore:function(n){return!(this._p.year>n.getYear())&&(this._p.yearn.getMonth())&&(this._p.monthn.getDay())&&(this._p.dayn.getHour())&&(this._p.hourn.getMinute())&&(this._p.minuteo.getDaysOfMonth(this._p.year,this._p.month)&&(i=o.WEEK_FESTIVAL[this._p.month+"-0-"+e],i&&n.push(i)),n},getOtherFestivals:function(){var n=[],i=o.OTHER_FESTIVAL[this._p.month+"-"+this._p.day];return i&&(n=n.concat(i)),n},getXingzuo:function(){return this.getXingZuo()},getXingZuo:function(){var n=11,i=100*this._p.month+this._p.day;return i>=321&&i<=419?n=0:i>=420&&i<=520?n=1:i>=521&&i<=621?n=2:i>=622&&i<=722?n=3:i>=723&&i<=822?n=4:i>=823&&i<=922?n=5:i>=923&&i<=1023?n=6:i>=1024&&i<=1122?n=7:i>=1123&&i<=1221?n=8:i>=1222||i<=119?n=9:i<=218&&(n=10),o.XINGZUO[n]},toYmd:function(){var n=this._p.month,i=this._p.day,t=this._p.year+"";while(t.length<4)t="0"+t;return[t,(n<10?"0":"")+n,(i<10?"0":"")+i].join("-")},toYmdHms:function(){return this.toYmd()+" "+[(this._p.hour<10?"0":"")+this._p.hour,(this._p.minute<10?"0":"")+this._p.minute,(this._p.second<10?"0":"")+this._p.second].join(":")},toString:function(){return this.toYmd()},toFullString:function(){var n=this.toYmdHms();this.isLeapYear()&&(n+=" 闰年"),n+=" 星期"+this.getWeekInChinese();for(var i=this.getFestivals(),t=0,e=i.length;t4&&a<15&&(a+=10):2===e&&a>28&&(o.isLeapYear(t)||(a=28)),u(t,e,a,this._p.hour,this._p.minute,this._p.second)},nextMonth:function(n){var i=n;if(n*=1,isNaN(n))throw new Error("wrong months "+i);var t=e.fromYm(this._p.year,this._p.month).next(n),a=t.getYear(),r=t.getMonth(),s=this._p.day;if(1582===a&&10===r)s>4&&s<15&&(s+=10);else{var g=o.getDaysOfMonth(a,r);s>g&&(s=g)}return u(a,r,s,this._p.hour,this._p.minute,this._p.second)},nextDay:function(n){var i=n;if(n*=1,isNaN(n))throw new Error("wrong days "+i);var t=this._p.year,e=this._p.month,a=this._p.day;if(1582===t&&10===e&&a>4&&(a-=10),n>0){a+=n;var r=o.getDaysOfMonth(t,e);while(a>r)a-=r,e++,e>12&&(e=1,t++),r=o.getDaysOfMonth(t,e)}else if(n<0){while(a+n<=0)e--,e<1&&(e=12,t--),a+=o.getDaysOfMonth(t,e);a+=n}return 1582===t&&10===e&&a>4&&(a+=10),u(t,e,a,this._p.hour,this._p.minute,this._p.second)},nextWorkday:function(n){var i=n;if(n*=1,isNaN(n))throw new Error("wrong days "+i);var t=u(this._p.year,this._p.month,this._p.day,this._p.hour,this._p.minute,this._p.second);if(0!==n){var e=Math.abs(n),a=n<1?-1:1;while(e>0){t=t.next(a);var r=!0,s=C.getHoliday(t.getYear(),t.getMonth(),t.getDay());if(s)r=s.isWork();else{var g=t.getWeek();0!==g&&6!==g||(r=!1)}r&&(e-=1)}}return t},next:function(n,i){return i?this.nextWorkday(n):this.nextDay(n)},nextHour:function(n){var i=n;if(n*=1,isNaN(n))throw new Error("wrong hours "+i);var t=this._p.hour+n,e=t<0?-1:1,a=Math.abs(t),r=Math.floor(a/24)*e;a=a%24*e,a<0&&(a+=24,r--);var s=this.next(r);return u(s.getYear(),s.getMonth(),s.getDay(),a,s.getMinute(),s.getSecond())},getLunar:function(){return i.fromSolar(this)},getJulianDay:function(){var n=this._p.year,i=this._p.month,t=this._p.day+((this._p.second/60+this._p.minute)/60+this._p.hour)/24,e=0,a=!1;return 372*n+31*i+Math.floor(t)>=588829&&(a=!0),i<=2&&(i+=12,n--),a&&(e=Math.floor(n/100),e=2-e+Math.floor(e/4)),Math.floor(365.25*(n+4716))+Math.floor(30.6001*(i+1))+t+e-1524.5},getSalaryRate:function(){if(1===this._p.month&&1===this._p.day)return 3;if(5===this._p.month&&1===this._p.day)return 3;if(10===this._p.month&&this._p.day>=1&&this._p.day<=3)return 3;var n=this.getLunar();if(1===n.getMonth()&&n.getDay()>=1&&n.getDay()<=3)return 3;if(5===n.getMonth()&&5===n.getDay())return 3;if(8===n.getMonth()&&15===n.getDay())return 3;if("清明"===n.getJieQi())return 3;var i=C.getHoliday(this._p.year,this._p.month,this._p.day);if(i){if(!i.isWork())return 2}else{var t=this.getWeek();if(6===t||0===t)return 2}return 1}}},s=function(t,e,a,r,u,s){u*=1,isNaN(u)&&(u=2),1!==u&&(u=2),s*=1,isNaN(s)&&(s=1900);var g=[],h=F.index(e.substring(1),F.ZHI,-1)-2;if(h<0&&(h+=12),(2*(F.index(t.substring(0,1),F.GAN,-1)+1)+h)%10!==F.index(e.substring(0,1),F.GAN,-1))return g;var o=F.getJiaZiIndex(t)-57;o<0&&(o+=60),o++,h*=2;var C=2*F.index(r.substring(1),F.ZHI,-1),A=[C];0===C&&2===u&&(A=[0,23]);var E=s-1,D=(new Date).getFullYear();while(o<=D){if(o>=E){var c=i.fromYmd(o,1,1),x=c.getJieQiList(),d=c.getJieQiTable(),f=d[x[4+h]];if(f.getYear()>=s){var y=F.getJiaZiIndex(a)-F.getJiaZiIndex(f.getLunar().getDayInGanZhiExact2());y<0&&(y+=60),y>0&&(f=f.next(y));for(var B=0,_=A.length;B<_;B++){var j=A[B],l=0,p=0;0===y&&j===f.getHour()&&(l=f.getMinute(),p=f.getSecond());var I=n.fromYmdHms(f.getYear(),f.getMonth(),f.getDay(),j,l,p),S=I.getLunar(),z=2===u?S.getDayInGanZhiExact2():S.getDayInGanZhiExact();S.getYearInGanZhiExact()===t&&S.getMonthInGanZhiExact()===e&&z===a&&S.getTimeInGanZhi()===r&&g.push(I)}}}o+=60}return g};return{J2000:2451545,fromYmd:function(n,i,t){return u(n,i,t,0,0,0)},fromYmdHms:function(n,i,t,e,a,r){return u(n,i,t,e,a,r)},fromDate:function(n){return a(n)},fromJulianDay:function(n){return r(n)},fromBaZi:function(n,i,t,e,a,r){return s(n,i,t,e,a,r)}}}(),i=function(){var i=function(i,t){i["jieQiList"]=[],i["jieQi"]={};for(var e=t.getJieQiJulianDays(),a=0,r=F.JIE_QI_IN_USE.length;a=E&&(u++,s++),C>=D&&(g++,h++)),n["yearGanIndex"]=a,n["yearZhiIndex"]=r,n["yearGanIndexByLiChun"]=(u<0?u+10:u)%10,n["yearZhiIndexByLiChun"]=(s<0?s+12:s)%12,n["yearGanIndexExact"]=(g<0?g+10:g)%10,n["yearZhiIndexExact"]=(h<0?h+12:h)%12},e=function(n,i){var t,e,a=null,r=F.JIE_QI_IN_USE.length,u=-3;for(t=0;t=g&&s=C&&o="23:00"&&F<="23:59"&&(h++,h>=10&&(h-=10),o++,o>=12&&(o-=12)),i["dayGanIndexExact"]=h,i["dayZhiIndexExact"]=o},r=function(n,i,t){var e=F.getTimeZhiIndex((i<10?"0":"")+i+":"+(t<10?"0":"")+t);n["timeZhiIndex"]=e,n["timeGanIndex"]=(n["dayGanIndexExact"]%5*2+e)%10},u=function(n,i){n["weekIndex"]=i.getWeek()},g=function(n,s,g,h,o,F){var C={};return i(C,F),t(C,o,n),e(C,o),a(C,o,s,g),r(C,s,g),u(C,o),C},h=function(i){for(var t=0,e=0,a=0,r=s.fromYear(i.getYear()),u=r.getMonths(),g=0,h=u.length;g23)throw new Error("wrong hour "+a);if(r<0||r>59)throw new Error("wrong minute "+r);if(u<0||u>59)throw new Error("wrong second "+u);var E=s.fromYear(i),D=E.getMonth(t);if(null==D)throw new Error("wrong lunar year "+i+" month "+t);if(e<1)throw new Error("lunar day must bigger than 0");var c=D.getDayCount();if(e>c)throw new Error("only "+c+" days in lunar year "+i+" month "+t);var x=n.fromJulianDay(D.getFirstJulianDay()+e-1),f=n.fromYmdHms(x.getYear(),x.getMonth(),x.getDay(),a,r,u);return x.getYear()!==i&&(E=s.fromYear(x.getYear())),d(i,t,e,a,r,u,f,E)},d=function(i,t,e,a,r,u,s,h){var C=g(i,a,r,u,s,h);return{_p:{lang:_.getLanguage(),year:i,month:t,day:e,hour:a,minute:r,second:u,timeGanIndex:C.timeGanIndex,timeZhiIndex:C.timeZhiIndex,dayGanIndex:C.dayGanIndex,dayZhiIndex:C.dayZhiIndex,dayGanIndexExact:C.dayGanIndexExact,dayZhiIndexExact:C.dayZhiIndexExact,dayGanIndexExact2:C.dayGanIndexExact2,dayZhiIndexExact2:C.dayZhiIndexExact2,monthGanIndex:C.monthGanIndex,monthZhiIndex:C.monthZhiIndex,monthGanIndexExact:C.monthGanIndexExact,monthZhiIndexExact:C.monthZhiIndexExact,yearGanIndex:C.yearGanIndex,yearZhiIndex:C.yearZhiIndex,yearGanIndexByLiChun:C.yearGanIndexByLiChun,yearZhiIndexByLiChun:C.yearZhiIndexByLiChun,yearGanIndexExact:C.yearGanIndexExact,yearZhiIndexExact:C.yearZhiIndexExact,weekIndex:C.weekIndex,jieQi:C.jieQi,jieQiList:C.jieQiList,solar:s,eightChar:null},getYear:function(){return this._p.year},getMonth:function(){return this._p.month},getDay:function(){return this._p.day},getHour:function(){return this._p.hour},getMinute:function(){return this._p.minute},getSecond:function(){return this._p.second},getTimeGanIndex:function(){return this._p.timeGanIndex},getTimeZhiIndex:function(){return this._p.timeZhiIndex},getDayGanIndex:function(){return this._p.dayGanIndex},getDayGanIndexExact:function(){return this._p.dayGanIndexExact},getDayGanIndexExact2:function(){return this._p.dayGanIndexExact2},getDayZhiIndex:function(){return this._p.dayZhiIndex},getDayZhiIndexExact:function(){return this._p.dayZhiIndexExact},getDayZhiIndexExact2:function(){return this._p.dayZhiIndexExact2},getMonthGanIndex:function(){return this._p.monthGanIndex},getMonthGanIndexExact:function(){return this._p.monthGanIndexExact},getMonthZhiIndex:function(){return this._p.monthZhiIndex},getMonthZhiIndexExact:function(){return this._p.monthZhiIndexExact},getYearGanIndex:function(){return this._p.yearGanIndex},getYearGanIndexByLiChun:function(){return this._p.yearGanIndexByLiChun},getYearGanIndexExact:function(){return this._p.yearGanIndexExact},getYearZhiIndex:function(){return this._p.yearZhiIndex},getYearZhiIndexByLiChun:function(){return this._p.yearZhiIndexByLiChun},getYearZhiIndexExact:function(){return this._p.yearZhiIndexExact},getGan:function(){return this.getYearGan()},getZhi:function(){return this.getYearZhi()},getYearGan:function(){return F.GAN[this._p.yearGanIndex+1]},getYearGanByLiChun:function(){return F.GAN[this._p.yearGanIndexByLiChun+1]},getYearGanExact:function(){return F.GAN[this._p.yearGanIndexExact+1]},getYearZhi:function(){return F.ZHI[this._p.yearZhiIndex+1]},getYearZhiByLiChun:function(){return F.ZHI[this._p.yearZhiIndexByLiChun+1]},getYearZhiExact:function(){return F.ZHI[this._p.yearZhiIndexExact+1]},getYearInGanZhi:function(){return this.getYearGan()+this.getYearZhi()},getYearInGanZhiByLiChun:function(){return this.getYearGanByLiChun()+this.getYearZhiByLiChun()},getYearInGanZhiExact:function(){return this.getYearGanExact()+this.getYearZhiExact()},getMonthGan:function(){return F.GAN[this._p.monthGanIndex+1]},getMonthGanExact:function(){return F.GAN[this._p.monthGanIndexExact+1]},getMonthZhi:function(){return F.ZHI[this._p.monthZhiIndex+1]},getMonthZhiExact:function(){return F.ZHI[this._p.monthZhiIndexExact+1]},getMonthInGanZhi:function(){return this.getMonthGan()+this.getMonthZhi()},getMonthInGanZhiExact:function(){return this.getMonthGanExact()+this.getMonthZhiExact()},getDayGan:function(){return F.GAN[this._p.dayGanIndex+1]},getDayGanExact:function(){return F.GAN[this._p.dayGanIndexExact+1]},getDayGanExact2:function(){return F.GAN[this._p.dayGanIndexExact2+1]},getDayZhi:function(){return F.ZHI[this._p.dayZhiIndex+1]},getDayZhiExact:function(){return F.ZHI[this._p.dayZhiIndexExact+1]},getDayZhiExact2:function(){return F.ZHI[this._p.dayZhiIndexExact2+1]},getDayInGanZhi:function(){return this.getDayGan()+this.getDayZhi()},getDayInGanZhiExact:function(){return this.getDayGanExact()+this.getDayZhiExact()},getDayInGanZhiExact2:function(){return this.getDayGanExact2()+this.getDayZhiExact2()},getTimeGan:function(){return F.GAN[this._p.timeGanIndex+1]},getTimeZhi:function(){return F.ZHI[this._p.timeZhiIndex+1]},getTimeInGanZhi:function(){return this.getTimeGan()+this.getTimeZhi()},getShengxiao:function(){return this.getYearShengXiao()},getYearShengXiao:function(){return F.SHENGXIAO[this._p.yearZhiIndex+1]},getYearShengXiaoByLiChun:function(){return F.SHENGXIAO[this._p.yearZhiIndexByLiChun+1]},getYearShengXiaoExact:function(){return F.SHENGXIAO[this._p.yearZhiIndexExact+1]},getMonthShengXiao:function(){return F.SHENGXIAO[this._p.monthZhiIndex+1]},getMonthShengXiaoExact:function(){return F.SHENGXIAO[this._p.monthZhiIndexExact+1]},getDayShengXiao:function(){return F.SHENGXIAO[this._p.dayZhiIndex+1]},getTimeShengXiao:function(){return F.SHENGXIAO[this._p.timeZhiIndex+1]},getYearInChinese:function(){for(var n=this._p.year+"",i="",t="0".charCodeAt(0),e=0,a=n.length;e-1?_.getMessage("bg.zhen"):[_.getMessage("jz.bingZi"),_.getMessage("jz.dingChou"),_.getMessage("jz.wuYin"),_.getMessage("jz.jiMao"),_.getMessage("jz.gengChen"),_.getMessage("jz.xinSi")].join(",").indexOf(i)>-1?_.getMessage("bg.li"):[_.getMessage("jz.wuZi"),_.getMessage("jz.jiChou"),_.getMessage("jz.gengYin"),_.getMessage("jz.xinMao"),_.getMessage("jz.renChen"),_.getMessage("jz.guiSi")].join(",").indexOf(i)>-1?_.getMessage("ps.center"):[_.getMessage("jz.gengZi"),_.getMessage("jz.xinChou"),_.getMessage("jz.renYin"),_.getMessage("jz.guiMao"),_.getMessage("jz.jiaChen"),_.getMessage("jz.yiSi")].join(",").indexOf(i)>-1?_.getMessage("bg.dui"):[_.getMessage("jz.renZi"),_.getMessage("jz.guiChou"),_.getMessage("jz.jiaYin"),_.getMessage("jz.yiMao"),_.getMessage("jz.bingChen"),_.getMessage("jz.dingSi")].join(",").indexOf(i)>-1?_.getMessage("bg.kan"):F.POSITION_TAI_SUI_YEAR[t],e},getDayPositionTaiSuiDesc:function(n){return F.POSITION_DESC[this.getDayPositionTaiSui(n)]},getMonthPositionTaiSui:function(n){var i,t;switch(n){case 3:i=this._p.monthZhiIndexExact,t=this._p.monthGanIndexExact;break;default:i=this._p.monthZhiIndex,t=this._p.monthGanIndex}var e=i-F.BASE_MONTH_ZHI_INDEX;return e<0&&(e+=12),[_.getMessage("bg.gen"),F.POSITION_GAN[t],_.getMessage("bg.kun"),_.getMessage("bg.xun")][e%4]},getMonthPositionTaiSuiDesc:function(n){return F.POSITION_DESC[this.getMonthPositionTaiSui(n)]},getYearPositionTaiSui:function(n){var i;switch(n){case 1:i=this._p.yearZhiIndex;break;case 3:i=this._p.yearZhiIndexExact;break;default:i=this._p.yearZhiIndexByLiChun}return F.POSITION_TAI_SUI_YEAR[i]},getYearPositionTaiSuiDesc:function(n){return F.POSITION_DESC[this.getYearPositionTaiSui(n)]},_checkLang:function(){var n=_.getLanguage();if(this._p.lang!==n){for(var i=0,t=F.JIE_QI_IN_USE.length;i=29&&this._p.year!==this.next(1).getYear()&&n.push(_.getMessage("jr.chuXi")),n},getOtherFestivals:function(){var n=[],i=F.OTHER_FESTIVAL[this._p.month+"-"+this._p.day];i&&(n=n.concat(i));var t=this._p.solar.toYmd();this._p.solar.toYmd()===this._getJieQiSolar(_.getMessage("jq.qingMing")).next(-1).toYmd()&&n.push("寒食节");var e=this._getJieQiSolar(_.getMessage("jq.liChun")),a=4-e.getLunar().getDayGanIndex();return a<0&&(a+=10),t===e.next(a+40).toYmd()&&n.push("春社"),e=this._getJieQiSolar(_.getMessage("jq.liQiu")),a=4-e.getLunar().getDayGanIndex(),a<0&&(a+=10),t===e.next(a+40).toYmd()&&n.push("秋社"),n},getBaZi:function(){var n=this.getEightChar(),i=[];return i.push(n.getYear()),i.push(n.getMonth()),i.push(n.getDay()),i.push(n.getTime()),i},getBaZiWuXing:function(){var n=this.getEightChar(),i=[];return i.push(n.getYearWuXing()),i.push(n.getMonthWuXing()),i.push(n.getDayWuXing()),i.push(n.getTimeWuXing()),i},getBaZiNaYin:function(){var n=this.getEightChar(),i=[];return i.push(n.getYearNaYin()),i.push(n.getMonthNaYin()),i.push(n.getDayNaYin()),i.push(n.getTimeNaYin()),i},getBaZiShiShenGan:function(){var n=this.getEightChar(),i=[];return i.push(n.getYearShiShenGan()),i.push(n.getMonthShiShenGan()),i.push(n.getDayShiShenGan()),i.push(n.getTimeShiShenGan()),i},getBaZiShiShenZhi:function(){var n=this.getEightChar(),i=[];return i.push(n.getYearShiShenZhi()[0]),i.push(n.getMonthShiShenZhi()[0]),i.push(n.getDayShiShenZhi()[0]),i.push(n.getTimeShiShenZhi()[0]),i},getBaZiShiShenYearZhi:function(){return this.getEightChar().getYearShiShenZhi()},getBaZiShiShenMonthZhi:function(){return this.getEightChar().getMonthShiShenZhi()},getBaZiShiShenDayZhi:function(){return this.getEightChar().getDayShiShenZhi()},getBaZiShiShenTimeZhi:function(){return this.getEightChar().getTimeShiShenZhi()},getZhiXing:function(){var n=this._p.dayZhiIndex-this._p.monthZhiIndex;return n<0&&(n+=12),F.ZHI_XING[n+1]},getDayTianShen:function(){var n=this.getMonthZhi(),i=F.ZHI_TIAN_SHEN_OFFSET[n];return F.TIAN_SHEN[(this._p.dayZhiIndex+i)%12+1]},getTimeTianShen:function(){var n=this.getDayZhiExact(),i=F.ZHI_TIAN_SHEN_OFFSET[n];return F.TIAN_SHEN[(this._p.timeZhiIndex+i)%12+1]},getDayTianShenType:function(){return F.TIAN_SHEN_TYPE[this.getDayTianShen()]},getTimeTianShenType:function(){return F.TIAN_SHEN_TYPE[this.getTimeTianShen()]},getDayTianShenLuck:function(){return F.TIAN_SHEN_TYPE_LUCK[this.getDayTianShenType()]},getTimeTianShenLuck:function(){return F.TIAN_SHEN_TYPE_LUCK[this.getTimeTianShenType()]},getDayPositionTai:function(){return F.POSITION_TAI_DAY[F.getJiaZiIndex(this.getDayInGanZhi())]},getMonthPositionTai:function(){var n=this._p.month;return n<0?"":F.POSITION_TAI_MONTH[n-1]},getDayYi:function(n){return n*=1,isNaN(n)&&(n=2),F.getDayYi(2===n?this.getMonthInGanZhiExact():this.getMonthInGanZhi(),this.getDayInGanZhi())},getDayJi:function(n){return n*=1,isNaN(n)&&(n=2),F.getDayJi(2===n?this.getMonthInGanZhiExact():this.getMonthInGanZhi(),this.getDayInGanZhi())},getDayJiShen:function(){return F.getDayJiShen(this.getMonth(),this.getDayInGanZhi())},getDayXiongSha:function(){return F.getDayXiongSha(this.getMonth(),this.getDayInGanZhi())},getTimeYi:function(){return F.getTimeYi(this.getDayInGanZhiExact(),this.getTimeInGanZhi())},getTimeJi:function(){return F.getTimeJi(this.getDayInGanZhiExact(),this.getTimeInGanZhi())},getYueXiang:function(){return F.YUE_XIANG[this._p.day]},_getYearNineStar:function(n){var i=F.getJiaZiIndex(n)+1,t=F.getJiaZiIndex(this.getYearInGanZhi())+1,e=i-t;e>1?e-=60:e<-1&&(e+=60);var a=Math.floor((this._p.year+e+2696)/60)%3,r=(62+3*a-i)%9;return 0===r&&(r=9),A.fromIndex(r-1)},getYearNineStar:function(n){var i;switch(n){case 1:i=this.getYearInGanZhi();break;case 3:i=this.getYearInGanZhiExact();break;default:i=this.getYearInGanZhiByLiChun()}return this._getYearNineStar(i)},getMonthNineStar:function(n){var i,t;switch(n){case 1:i=this._p.yearZhiIndex,t=this._p.monthZhiIndex;break;case 3:i=this._p.yearZhiIndexExact,t=this._p.monthZhiIndexExact;break;default:i=this._p.yearZhiIndexByLiChun,t=this._p.monthZhiIndex}var e=27-i%3*3;return t29?a.next(60-s):a.next(-s);var o=n.toYmd();i=g>29?r.next(60-g):r.next(-g);var C=i.toYmd();t=h>29?u.next(60-h):u.next(-h);var E=t.toYmd(),D=0;return e>=o&&e=E&&e=C?D=this._p.solar.subtract(i)%9:e=this._getJieQiSolar(_.getMessage("jq.dongZhi")).toYmd()&&n=this._getJieQiSolar("DONG_ZHI").toYmd())&&(i=!0);var t=i?[0,3,6]:[8,5,2],e=t[this.getDayZhiIndex()%3],a=this.getTimeZhiIndex(),r=i?e+a:e+9-a;return A.fromIndex(r%9)},getSolar:function(){return this._p.solar},getJieQiTable:function(){return this._checkLang(),this._p.jieQi},getJieQiList:function(){return this._p.jieQiList},getNextJie:function(n){for(var i=[],t=0,e=F.JIE_QI_IN_USE.length/2;th)continue;(null==a||A>a[t?"toYmd":"toYmdHms"]())&&(e=F,a=C)}}}return null==a?null:this._buildJieQi(e,a)},getCurrentJieQi:function(){for(var n in this._p.jieQi){var i=this._getJieQiSolar(n);if(i.getYear()===this._p.solar.getYear()&&i.getMonth()===this._p.solar.getMonth()&&i.getDay()===this._p.solar.getDay())return this._buildJieQi(this._convertJieQi(n),i)}return null},getCurrentJie:function(){for(var n=0,i=F.JIE_QI_IN_USE.length;n0&&(n+=" ["+a+"]"),n+=" "+this.getGong()+"方"+this.getShou(),n+=" 星宿["+this.getXiu()+this.getZheng()+this.getAnimal()+"]("+this.getXiuLuck()+")",n+=" 彭祖百忌["+this.getPengZuGan()+" "+this.getPengZuZhi()+"]",n+=" 喜神方位["+this.getDayPositionXi()+"]("+this.getDayPositionXiDesc()+")",n+=" 阳贵神方位["+this.getDayPositionYangGui()+"]("+this.getDayPositionYangGuiDesc()+")",n+=" 阴贵神方位["+this.getDayPositionYinGui()+"]("+this.getDayPositionYinGuiDesc()+")",n+=" 福神方位["+this.getDayPositionFu()+"]("+this.getDayPositionFuDesc()+")",n+=" 财神方位["+this.getDayPositionCai()+"]("+this.getDayPositionCaiDesc()+")",n+=" 冲["+this.getDayChongDesc()+"]",n+=" 煞["+this.getDaySha()+"]",n},_buildNameAndIndex:function(n,i){return{_p:{name:n,index:i},getName:function(){return this._p.name},setName:function(n){this._p.name=n},getIndex:function(){return this._p.index},setIndex:function(n){this._p.index=n},toString:function(){return this.getName()},toFullString:function(){return this.getName()+"第"+this.getIndex()+"天"}}},getShuJiu:function(){var i=n.fromYmd(this._p.solar.getYear(),this._p.solar.getMonth(),this._p.solar.getDay()),t=this._getJieQiSolar("DONG_ZHI"),e=n.fromYmd(t.getYear(),t.getMonth(),t.getDay());i.isBefore(e)&&(t=this._getJieQiSolar(_.getMessage("jq.dongZhi")),e=n.fromYmd(t.getYear(),t.getMonth(),t.getDay()));var a=n.fromYmd(t.getYear(),t.getMonth(),t.getDay()).next(81);if(i.isBefore(e)||!i.isBefore(a))return null;var r=i.subtract(e);return this._buildNameAndIndex(F.NUMBER[Math.floor(r/9)+1]+"九",r%9+1)},getFu:function(){var i=n.fromYmd(this._p.solar.getYear(),this._p.solar.getMonth(),this._p.solar.getDay()),t=this._getJieQiSolar(_.getMessage("jq.xiaZhi")),e=this._getJieQiSolar(_.getMessage("jq.liQiu")),a=n.fromYmd(t.getYear(),t.getMonth(),t.getDay()),r=6-t.getLunar().getDayGanIndex();if(r<0&&(r+=10),r+=20,a=a.next(r),i.isBefore(a))return null;var u=i.subtract(a);if(u<10)return this._buildNameAndIndex("初伏",u+1);if(a=a.next(10),u=i.subtract(a),u<10)return this._buildNameAndIndex("中伏",u+1);a=a.next(10);var s=n.fromYmd(e.getYear(),e.getMonth(),e.getDay());if(u=i.subtract(a),s.isAfter(a)){if(u<10)return this._buildNameAndIndex("中伏",u+11);a=a.next(10),u=i.subtract(a)}return u<10?this._buildNameAndIndex("末伏",u+1):null},getLiuYao:function(){return F.LIU_YAO[(Math.abs(this._p.month)+this._p.day-2)%6]},getWuHou:function(){var i=this.getPrevJieQi(!0),t=F.find(i.getName(),F.JIE_QI),e=n.fromYmd(this._p.solar.getYear(),this._p.solar.getMonth(),this._p.solar.getDay()),a=i.getSolar(),r=n.fromYmd(a.getYear(),a.getMonth(),a.getDay()),u=Math.floor(e.subtract(r)/5);return u>2&&(u=2),F.WU_HOU[(3*t.index+u)%F.WU_HOU.length]},getHou:function(){var n=this.getPrevJieQi(!0),i=this._p.solar.subtract(n.getSolar()),t=F.HOU.length-1,e=Math.floor(i/5);return e>t&&(e=t),n.getName()+" "+F.HOU[e]},getDayLu:function(){var n=F.LU[this.getDayGan()],i=F.LU[this.getDayZhi()],t=n+"命互禄";return i&&(t+=" "+i+"命进禄"),t},getTime:function(){return D.fromYmdHms(this._p.year,this._p.month,this._p.day,this._p.hour,this._p.minute,this._p.second)},getTimes:function(){var n=[];n.push(D.fromYmdHms(this._p.year,this._p.month,this._p.day,0,0,0));for(var i=0;i<12;i++)n.push(D.fromYmdHms(this._p.year,this._p.month,this._p.day,2*(i+1)-1,0,0));return n},getFoto:function(){return x.fromLunar(this)},getTao:function(){return B.fromLunar(this)}}};return{fromYmdHms:function(n,i,t,e,a,r){return c(n,i,t,e,a,r)},fromYmd:function(n,i,t){return c(n,i,t,0,0,0)},fromSolar:function(n){return h(n)},fromDate:function(n){return C(n)}}}(),t=function(){var i=function(i,e){var a=n.fromDate(i);return t(a.getYear(),a.getMonth(),a.getDay(),e)},t=function(i,e,a,r){var u=i,s=e,g=a;if(i*=1,isNaN(i))throw new Error("wrong solar year "+u);if(e*=1,isNaN(e))throw new Error("wrong solar month "+s);if(a*=1,isNaN(a))throw new Error("wrong solar day "+g);return r*=1,isNaN(r)&&(r=0),{_p:{year:i,month:e,day:a,start:r},getYear:function(){return this._p.year},getMonth:function(){return this._p.month},getDay:function(){return this._p.day},getStart:function(){return this._p.start},getIndex:function(){var i=n.fromYmd(this._p.year,this._p.month,1).getWeek()-this._p.start;return i<0&&(i+=7),Math.ceil((this._p.day+i)/7)},getIndexInYear:function(){var i=n.fromYmd(this._p.year,1,1).getWeek()-this._p.start;return i<0&&(i+=7),Math.ceil((o.getDaysInYear(this._p.year,this._p.month,this._p.day)+i)/7)},next:function(i,e){var a=i;if(i*=1,isNaN(i))throw new Error("wrong weeks "+a);var r=this._p.start;if(0===i)return t(this._p.year,this._p.month,this._p.day,r);var u=n.fromYmd(this._p.year,this._p.month,this._p.day);if(e){var s=i,g=t(this._p.year,this._p.month,this._p.day,r),h=this._p.month,F=s>0;while(0!==s){u=u.next(F?7:-7),g=t(u.getYear(),u.getMonth(),u.getDay(),r);var C=g.getMonth();if(h!==C){var A=g.getIndex();if(F)if(1===A){var E=g.getFirstDay();g=t(E.getYear(),E.getMonth(),E.getDay(),r),C=g.getMonth()}else u=n.fromYmd(g.getYear(),g.getMonth(),1),g=t(u.getYear(),u.getMonth(),u.getDay(),r);else{var D=o.getWeeksOfMonth(g.getYear(),g.getMonth(),r);if(D===A){var c=g.getFirstDay().next(6);g=t(c.getYear(),c.getMonth(),c.getDay(),r),C=g.getMonth()}else u=n.fromYmd(g.getYear(),g.getMonth(),o.getDaysOfMonth(g.getYear(),g.getMonth())),g=t(u.getYear(),u.getMonth(),u.getDay(),r)}h=C}s-=F?1:-1}return g}return u=u.next(7*i),t(u.getYear(),u.getMonth(),u.getDay(),r)},getFirstDay:function(){var i=n.fromYmd(this._p.year,this._p.month,this._p.day),t=i.getWeek()-this._p.start;return t<0&&(t+=7),i.next(-t)},getFirstDayInMonth:function(){for(var n=0,i=this.getDays(),t=0;t12?(a-=12,r++):a<1&&(a+=12,r--),e(r,a)},getDays:function(){var i=[],t=n.fromYmd(this._p.year,this._p.month,1);i.push(t);for(var e=o.getDaysOfMonth(this._p.year,this._p.month),a=1;athis._p.year||a.getMonth()>this._p.month)break}return i},toString:function(){return this.getYear()+"-"+this.getMonth()},toFullString:function(){return this.getYear()+"年"+this.getMonth()+"月"}}};return{fromYm:function(n,i){return e(n,i)},fromDate:function(n){return i(n)}}}(),a=function(){var i=function(i){var e=n.fromDate(i);return t(e.getYear(),e.getMonth())},t=function(n,i){var a=n,r=i;if(n*=1,isNaN(n))throw new Error("wrong solar year "+a);if(i*=1,isNaN(i))throw new Error("wrong solar month "+r);return{_p:{year:n,month:i},getYear:function(){return this._p.year},getMonth:function(){return this._p.month},getIndex:function(){return Math.ceil(this._p.month/3)},next:function(n){var i=n;if(n*=1,isNaN(n))throw new Error("wrong seasons "+i);var a=e.fromYm(this._p.year,this._p.month).next(3*n);return t(a.getYear(),a.getMonth())},getMonths:function(){for(var n=[],i=this.getIndex()-1,t=0;t<3;t++)n.push(e.fromYm(this._p.year,3*i+t+1));return n},toString:function(){return this.getYear()+"."+this.getIndex()},toFullString:function(){return this.getYear()+"年"+this.getIndex()+"季度"}}};return{fromYm:function(n,i){return t(n,i)},fromDate:function(n){return i(n)}}}(),r=function(){var i=function(i){var e=n.fromDate(i);return t(e.getYear(),e.getMonth())},t=function(n,i){var a=n,r=i;if(n*=1,isNaN(n))throw new Error("wrong solar year "+a);if(i*=1,isNaN(i))throw new Error("wrong solar month "+r);return{_p:{year:n,month:i},getYear:function(){return this._p.year},getMonth:function(){return this._p.month},getIndex:function(){return Math.ceil(this._p.month/6)},next:function(n){var i=n;if(n*=1,isNaN(n))throw new Error("wong halfYears "+i);var a=e.fromYm(this._p.year,this._p.month).next(6*n);return t(a.getYear(),a.getMonth())},getMonths:function(){for(var n=[],i=this.getIndex()-1,t=0;t<6;t++)n.push(e.fromYm(this._p.year,6*i+t+1));return n},toString:function(){return this.getYear()+"."+this.getIndex()},toFullString:function(){return this.getYear()+"年"+["上","下"][this.getIndex()-1]+"半年"}}};return{fromYm:function(n,i){return t(n,i)},fromDate:function(n){return i(n)}}}(),u=function(){var i=function(i){return t(n.fromDate(i).getYear())},t=function(n){var i=n;if(n*=1,isNaN(n))throw new Error("wrong solar year "+i);return{_p:{year:n},getYear:function(){return this._p.year},next:function(n){var i=n;if(n*=1,isNaN(n))throw new Error("wrong years "+i);return t(this._p.year+n)},getMonths:function(){var n=[],i=e.fromYm(this._p.year,1);n.push(i);for(var t=1;t<12;t++)n.push(i.next(t));return n},toString:function(){return this.getYear()+""},toFullString:function(){return this.getYear()+"年"}}};return{fromYear:function(n){return t(n)},fromDate:function(n){return i(n)}}}(),s=function(){var i=["下","上","中"],t=["七","八","九","一","二","三","四","五","六"],e=[75,94,170,265,322,398,469,553,583,610,678,735,754,773,849,887,936,1050,1069,1126,1145,1164,1183,1259,1278,1308,1373,1403,1441,1460,1498,1555,1593,1612,1631,1642,2033,2128,2147,2242,2614,2728,2910,3062,3244,3339,3616,3711,3730,3825,4007,4159,4197,4322,4341,4379,4417,4531,4599,4694,4713,4789,4808,4971,5085,5104,5161,5180,5199,5294,5305,5476,5677,5696,5772,5791,5848,5886,6049,6068,6144,6163,6258,6402,6440,6497,6516,6630,6641,6660,6679,6736,6774,6850,6869,6899,6918,6994,7013,7032,7051,7070,7089,7108,7127,7146,7222,7271,7290,7309,7366,7385,7404,7442,7461,7480,7491,7499,7594,7624,7643,7662,7681,7719,7738,7814,7863,7882,7901,7939,7958,7977,7996,8034,8053,8072,8091,8121,8159,8186,8216,8235,8254,8273,8311,8330,8341,8349,8368,8444,8463,8474,8493,8531,8569,8588,8626,8664,8683,8694,8702,8713,8721,8751,8789,8808,8816,8827,8846,8884,8903,8922,8941,8971,9036,9066,9085,9104,9123,9142,9161,9180,9199,9218,9256,9294,9313,9324,9343,9362,9381,9419,9438,9476,9514,9533,9544,9552,9563,9571,9582,9601,9639,9658,9666,9677,9696,9734,9753,9772,9791,9802,9821,9886,9897,9916,9935,9954,9973,9992],a=[37,56,113,132,151,189,208,227,246,284,303,341,360,379,417,436,458,477,496,515,534,572,591,629,648,667,697,716,792,811,830,868,906,925,944,963,982,1001,1020,1039,1058,1088,1153,1202,1221,1240,1297,1335,1392,1411,1422,1430,1517,1525,1536,1574,3358,3472,3806,3988,4751,4941,5066,5123,5275,5343,5438,5457,5495,5533,5552,5715,5810,5829,5905,5924,6421,6535,6793,6812,6888,6907,7002,7184,7260,7279,7374,7556,7746,7757,7776,7833,7852,7871,7966,8015,8110,8129,8148,8224,8243,8338,8406,8425,8482,8501,8520,8558,8596,8607,8615,8645,8740,8778,8835,8865,8930,8960,8979,8998,9017,9055,9074,9093,9112,9150,9188,9237,9275,9332,9351,9370,9408,9427,9446,9457,9465,9495,9560,9590,9628,9647,9685,9715,9742,9780,9810,9818,9829,9848,9867,9905,9924,9943,9962,1e4],r=null,u=[11,12,1,2,3,4,5,6,7,8,9,10],o=function(n,i){for(var t=0,e=n.length;tD&&(c-=365.2422),i=0;i<26;i++)r.push(h.calcQi(c+15.2184*i));for(i=0,t=F.JIE_QI_IN_USE.length;ir[0]&&(c-=29.53),i=0;i<16;i++)s.push(h.calcShuo(c+29.5306*i));for(i=0;i<15;i++)C.push(Math.floor(s[i+1]-s[i])),A.push(i);var x=E-1,d=16;if(o(e,E))d=13;else if(o(a,E))d=14;else if(s[13]<=r[24]){i=1;while(s[i+1]>r[2*i]&&i<13)i++;d=i}for(t=d;t<15;t++)A[t]-=1;var f=-1,y=-1,B=x;for(i=0;i<15;i++){var _=s[i]+n.J2000,j=A[i],l=u[j%12];1724360<=_&&_<1729794||1807724<=_&&_<1808699?l=u[(j+1)%12]:1729794!==_&&1808699!==_||(l=12),-1===f&&(f=l,y=l),l0){while(1){for(a=C.length,t=0;te&&(a=e)),r=0;for(var C=t;C0&&(s+=1.43*C-.866+.054*C*C),g/=1e4,h/=1e8,o/=1e8,i*=6,i<0&&(i=r);for(var A=0,E=a.length;A0&&(x+=6),x>=c&&(x=c),t=0,e=0;t=e){var r=31;return n>e+100?this.dtExt(n,r):this.dtExt(n,r)-(this.dtExt(e,r)-a)*(e+100-n)/100}for(i=0;ithis.SECOND_PER_DAY-1200)&&(i=36525*this.saLonT(n)-this.dtT(i)+this.ONE_THIRD),i},shuoHigh:function(n){var i=36525*this.msaLonT2(n);i=i-this.dtT(i)+this.ONE_THIRD;var t=(i+.5)%1*this.SECOND_PER_DAY;return(t<1800||t>this.SECOND_PER_DAY-1800)&&(i=36525*this.msaLonT(n)-this.dtT(i)+this.ONE_THIRD),i},qiLow:function(n){var i=628.3319653318,t=(n-4.895062166)/i;t-=(53*t*t+334116*Math.cos(4.67+628.307585*t)+2061*Math.cos(2.678+628.3076*t)*t)/i/1e7;var e=48950621.66+6283319653.318*t+53*t*t+334166*Math.cos(4.669257+628.307585*t)+3489*Math.cos(4.6261+1256.61517*t)+2060.6*Math.cos(2.67823+628.307585*t)*t-994-834*Math.sin(2.1824-33.75705*t);return t-=(e/1e7-n)/628.332+(32*(t+1.8)*(t+1.8)-20)/this.SECOND_PER_DAY/36525,36525*t+this.ONE_THIRD},shuoLow:function(n){var i=7771.37714500204,t=(n+1.08472)/i;return t-=(-331e-7*t*t+.10976*Math.cos(.785+8328.6914*t)+.02224*Math.cos(.187+7214.0629*t)-.03342*Math.cos(4.669+628.3076*t))/i+(32*(t+1.8)*(t+1.8)-20)/this.SECOND_PER_DAY/36525,36525*t+this.ONE_THIRD},calcShuo:function(i){var t,e=this.SHUO_KB.length,a=0,r=14;i+=n.J2000;var u=this.SHUO_KB[0]-r,s=this.SHUO_KB[e-1]-r,g=2436935;if(i=g)a=Math.floor(this.shuoHigh(Math.floor((i+r-2451551)/29.5306)*Math.PI*2)+.5);else if(i>=u&&i=s&&i=g)a=Math.floor(this.qiHigh(Math.floor((i+r-2451259)/365.2422*24)*Math.PI/12)+.5);else if(i>=u&&i=s&&i5?this.qiAccurate(t-i):e-n<-5?this.qiAccurate(t+i):e}}}(),o=function(){return{WEEK:["{w.sun}","{w.mon}","{w.tues}","{w.wed}","{w.thur}","{w.fri}","{w.sat}"],DAYS_OF_MONTH:[31,28,31,30,31,30,31,31,30,31,30,31],XINGZUO:["{xz.aries}","{xz.taurus}","{xz.gemini}","{xz.cancer}","{xz.leo}","{xz.virgo}","{xz.libra}","{xz.scorpio}","{xz.sagittarius}","{xz.capricornus}","{xz.aquarius}","{xz.pisces}"],FESTIVAL:{"1-1":"{jr.yuanDan}","2-14":"{jr.qingRen}","3-8":"{jr.fuNv}","3-12":"{jr.zhiShu}","3-15":"{jr.xiaoFei}","4-1":"{jr.yuRen}","5-1":"{jr.wuYi}","5-4":"{jr.qingNian}","6-1":"{jr.erTong}","7-1":"{jr.jianDang}","8-1":"{jr.jianJun}","9-10":"{jr.jiaoShi}","10-1":"{jr.guoQing}","10-31":"{jr.wanShengYe}","11-1":"{jr.wanSheng}","12-24":"{jr.pingAn}","12-25":"{jr.shengDan}"},OTHER_FESTIVAL:{"1-8":["周恩来逝世纪念日"],"1-10":["中国人民警察节"],"1-14":["日记情人节"],"1-21":["列宁逝世纪念日"],"1-26":["国际海关日"],"1-27":["国际大屠杀纪念日"],"2-2":["世界湿地日"],"2-4":["世界抗癌日"],"2-7":["京汉铁路罢工纪念日"],"2-10":["国际气象节"],"2-19":["邓小平逝世纪念日"],"2-20":["世界社会公正日"],"2-21":["国际母语日"],"2-24":["第三世界青年日"],"3-1":["国际海豹日"],"3-3":["世界野生动植物日","全国爱耳日"],"3-5":["周恩来诞辰纪念日","中国青年志愿者服务日"],"3-6":["世界青光眼日"],"3-7":["女生节"],"3-12":["孙中山逝世纪念日"],"3-14":["马克思逝世纪念日","白色情人节"],"3-17":["国际航海日"],"3-18":["全国科技人才活动日","全国爱肝日"],"3-20":["国际幸福日"],"3-21":["世界森林日","世界睡眠日","国际消除种族歧视日"],"3-22":["世界水日"],"3-23":["世界气象日"],"3-24":["世界防治结核病日"],"3-29":["中国黄花岗七十二烈士殉难纪念日"],"4-2":["国际儿童图书日","世界自闭症日"],"4-4":["国际地雷行动日"],"4-7":["世界卫生日"],"4-8":["国际珍稀动物保护日"],"4-12":["世界航天日"],"4-14":["黑色情人节"],"4-15":["全民国家安全教育日"],"4-22":["世界地球日","列宁诞辰纪念日"],"4-23":["世界读书日"],"4-24":["中国航天日"],"4-25":["儿童预防接种宣传日"],"4-26":["世界知识产权日","全国疟疾日"],"4-28":["世界安全生产与健康日"],"4-30":["全国交通安全反思日"],"5-2":["世界金枪鱼日"],"5-3":["世界新闻自由日"],"5-5":["马克思诞辰纪念日"],"5-8":["世界红十字日"],"5-11":["世界肥胖日"],"5-12":["全国防灾减灾日","护士节"],"5-14":["玫瑰情人节"],"5-15":["国际家庭日"],"5-19":["中国旅游日"],"5-20":["网络情人节"],"5-22":["国际生物多样性日"],"5-25":["525心理健康节"],"5-27":["上海解放日"],"5-29":["国际维和人员日"],"5-30":["中国五卅运动纪念日"],"5-31":["世界无烟日"],"6-3":["世界自行车日"],"6-5":["世界环境日"],"6-6":["全国爱眼日"],"6-8":["世界海洋日"],"6-11":["中国人口日"],"6-14":["世界献血日","亲亲情人节"],"6-17":["世界防治荒漠化与干旱日"],"6-20":["世界难民日"],"6-21":["国际瑜伽日"],"6-25":["全国土地日"],"6-26":["国际禁毒日","联合国宪章日"],"7-1":["香港回归纪念日"],"7-6":["国际接吻日","朱德逝世纪念日"],"7-7":["七七事变纪念日"],"7-11":["世界人口日","中国航海日"],"7-14":["银色情人节"],"7-18":["曼德拉国际日"],"7-30":["国际友谊日"],"8-3":["男人节"],"8-5":["恩格斯逝世纪念日"],"8-6":["国际电影节"],"8-8":["全民健身日"],"8-9":["国际土著人日"],"8-12":["国际青年节"],"8-14":["绿色情人节"],"8-19":["世界人道主义日","中国医师节"],"8-22":["邓小平诞辰纪念日"],"8-29":["全国测绘法宣传日"],"9-3":["中国抗日战争胜利纪念日"],"9-5":["中华慈善日"],"9-8":["世界扫盲日"],"9-9":["毛泽东逝世纪念日","全国拒绝酒驾日"],"9-14":["世界清洁地球日","相片情人节"],"9-15":["国际民主日"],"9-16":["国际臭氧层保护日"],"9-17":["世界骑行日"],"9-18":["九一八事变纪念日"],"9-20":["全国爱牙日"],"9-21":["国际和平日"],"9-27":["世界旅游日"],"9-30":["中国烈士纪念日"],"10-1":["国际老年人日"],"10-2":["国际非暴力日"],"10-4":["世界动物日"],"10-11":["国际女童日"],"10-10":["辛亥革命纪念日"],"10-13":["国际减轻自然灾害日","中国少年先锋队诞辰日"],"10-14":["葡萄酒情人节"],"10-16":["世界粮食日"],"10-17":["全国扶贫日"],"10-20":["世界统计日"],"10-24":["世界发展信息日","程序员节"],"10-25":["抗美援朝纪念日"],"11-5":["世界海啸日"],"11-8":["记者节"],"11-9":["全国消防日"],"11-11":["光棍节"],"11-12":["孙中山诞辰纪念日"],"11-14":["电影情人节"],"11-16":["国际宽容日"],"11-17":["国际大学生节"],"11-19":["世界厕所日"],"11-28":["恩格斯诞辰纪念日"],"11-29":["国际声援巴勒斯坦人民日"],"12-1":["世界艾滋病日"],"12-2":["全国交通安全日"],"12-3":["世界残疾人日"],"12-4":["全国法制宣传日"],"12-5":["世界弱能人士日","国际志愿人员日"],"12-7":["国际民航日"],"12-9":["世界足球日","国际反腐败日"],"12-10":["世界人权日"],"12-11":["国际山岳日"],"12-12":["西安事变纪念日"],"12-13":["国家公祭日"],"12-14":["拥抱情人节"],"12-18":["国际移徙者日"],"12-26":["毛泽东诞辰纪念日"]},WEEK_FESTIVAL:{"3-0-1":"全国中小学生安全教育日","5-2-0":"母亲节","5-3-0":"全国助残日","6-3-0":"父亲节","9-3-6":"全民国防教育日","10-1-1":"世界住房日","11-4-4":"感恩节"},isLeapYear:function(n){return n<1600?n%4===0:n%4===0&&n%100!==0||n%400===0},getDaysOfMonth:function(n,i){var t=n,e=i;if(n*=1,isNaN(n))throw new Error("wrong solar year "+t);if(i*=1,isNaN(i))throw new Error("wrong solar month "+e);if(1582===n&&10===i)return 21;var a=i-1,r=this.DAYS_OF_MONTH[a];return 1===a&&this.isLeapYear(n)&&r++,r},getDaysOfYear:function(n){var i=n;if(n*=1,isNaN(n))throw new Error("wrong solar year "+i);return 1582===n?355:this.isLeapYear(n)?366:365},getDaysInYear:function(n,i,t){var e=n,a=i,r=t;if(n*=1,isNaN(n))throw new Error("wrong solar year "+e);if(i*=1,isNaN(i))throw new Error("wrong solar month "+a);if(t*=1,isNaN(t))throw new Error("wrong solar day "+r);for(var u=0,s=1;s=15)g-=10;else if(t>4)throw new Error("wrong solar year "+n+" month "+i+" day "+t);return u+=g,u},getDaysBetween:function(n,i,t,e,a,r){var u,s,g,h=n,o=i,F=t,C=e,A=a,E=r;if(n*=1,isNaN(n))throw new Error("wrong solar year "+h);if(i*=1,isNaN(i))throw new Error("wrong solar month "+o);if(t*=1,isNaN(t))throw new Error("wrong solar day "+F);if(e*=1,isNaN(e))throw new Error("wrong solar year "+C);if(a*=1,isNaN(a))throw new Error("wrong solar month "+A);if(r*=1,isNaN(r))throw new Error("wrong solar day "+E);if(n===e)u=this.getDaysInYear(e,a,r)-this.getDaysInYear(n,i,t);else if(n>e){for(s=this.getDaysOfYear(e)-this.getDaysInYear(e,a,r),g=e+1;g5&&(n=n.substring(0,5));for(var i=1,t=1;t<22;t+=2){if(n>=(t<10?"0":"")+t+":00"&&n<=(t+1<10?"0":"")+(t+1)+":59")return i;i++}return 0},convertTime:function(n){return this.ZHI[this.getTimeZhiIndex(n)+1]},getJiaZiIndex:function(n){return this.index(n,this.JIA_ZI,0)},hex:function(n){var i=n.toString(16);return i.length<2&&(i="0"+i),i.toUpperCase()},getDayYi:function(n,i){var t=[],e=this.hex(this.getJiaZiIndex(i)),a=this.hex(this.getJiaZiIndex(n)),r=this.DAY_YI_JI,u=r.indexOf(e+"=");while(u>-1){r=r.substring(u+3);var s=r;s.indexOf("=")>-1&&(s=s.substring(0,s.indexOf("=")-2));var g,h,o=!1,F=s.substring(0,s.indexOf(":"));for(g=0,h=F.length;g-1){r=r.substring(u+3);var s=r;s.indexOf("=")>-1&&(s=s.substring(0,s.indexOf("=")-2));var g,h,o=!1,F=s.substring(0,s.indexOf(":"));for(g=0,h=F.length;g-1){var u=this.DAY_SHEN_SHA.substring(r+4);u.indexOf("=")>-1&&(u=u.substring(0,u.indexOf("=")-3));for(var s=u.substring(0,u.indexOf(",")),g=0,h=s.length;g-1){var u=this.DAY_SHEN_SHA.substring(r+4);u.indexOf("=")>-1&&(u=u.substring(0,u.indexOf("=")-3));for(var s=u.substring(u.indexOf(",")+1),g=0,h=s.length;g-1){var u=this.TIME_YI_JI.substring(r+5);u.indexOf("=")>-1&&(u=u.substring(0,u.indexOf("=")-4));for(var s=u.substring(0,u.indexOf(",")),g=0,h=s.length;g-1){var u=this.TIME_YI_JI.substring(r+5);u.indexOf("=")>-1&&(u=u.substring(0,u.indexOf("=")-4));for(var s=u.substring(u.indexOf(",")+1),g=0,h=s.length;g-1)return{index:t,value:a}}return null}}}(),C=function(n){var i=18,t="0".charCodeAt(0),e="~",a=n,r="200112290020020101200112300020020101200201010120020101200201020120020101200201030120020101200202091020020212200202101020020212200202121120020212200202131120020212200202141120020212200202151120020212200202161120020212200202171120020212200202181120020212200204273020020501200204283020020501200205013120020501200205023120020501200205033120020501200205043120020501200205053120020501200205063120020501200205073120020501200209286020021001200209296020021001200210016120021001200210026120021001200210036120021001200210046120021001200210056120021001200210066120021001200210076120021001200301010120030101200302011120030201200302021120030201200302031120030201200302041120030201200302051120030201200302061120030201200302071120030201200302081020030201200302091020030201200304263020030501200304273020030501200305013120030501200305023120030501200305033120030501200305043120030501200305053120030501200305063120030501200305073120030501200309276020031001200309286020031001200310016120031001200310026120031001200310036120031001200310046120031001200310056120031001200310066120031001200310076120031001200401010120040101200401171020040122200401181020040122200401221120040122200401231120040122200401241120040122200401251120040122200401261120040122200401271120040122200401281120040122200405013120040501200405023120040501200405033120040501200405043120040501200405053120040501200405063120040501200405073120040501200405083020040501200405093020040501200410016120041001200410026120041001200410036120041001200410046120041001200410056120041001200410066120041001200410076120041001200410096020041001200410106020041001200501010120050101200501020120050101200501030120050101200502051020050209200502061020050209200502091120050209200502101120050209200502111120050209200502121120050209200502131120050209200502141120050209200502151120050209200504303020050501200505013120050501200505023120050501200505033120050501200505043120050501200505053120050501200505063120050501200505073120050501200505083020050501200510016120051001200510026120051001200510036120051001200510046120051001200510056120051001200510066120051001200510076120051001200510086020051001200510096020051001200512310020060101200601010120060101200601020120060101200601030120060101200601281020060129200601291120060129200601301120060129200601311120060129200602011120060129200602021120060129200602031120060129200602041120060129200602051020060129200604293020060501200604303020060501200605013120060501200605023120060501200605033120060501200605043120060501200605053120060501200605063120060501200605073120060501200609306020061001200610016120061001200610026120061001200610036120061001200610046120061001200610056120061001200610066120061001200610076120061001200610086020061001200612300020070101200612310020070101200701010120070101200701020120070101200701030120070101200702171020070218200702181120070218200702191120070218200702201120070218200702211120070218200702221120070218200702231120070218200702241120070218200702251020070218200704283020070501200704293020070501200705013120070501200705023120070501200705033120070501200705043120070501200705053120070501200705063120070501200705073120070501200709296020071001200709306020071001200710016120071001200710026120071001200710036120071001200710046120071001200710056120071001200710066120071001200710076120071001200712290020080101200712300120080101200712310120080101200801010120080101200802021020080206200802031020080206200802061120080206200802071120080206200802081120080206200802091120080206200802101120080206200802111120080206200802121120080206200804042120080404200804052120080404200804062120080404200805013120080501200805023120080501200805033120080501200805043020080501200806074120080608200806084120080608200806094120080608200809135120080914200809145120080914200809155120080914200809276020081001200809286020081001200809296120081001200809306120081001200810016120081001200810026120081001200810036120081001200810046120081001200810056120081001200901010120090101200901020120090101200901030120090101200901040020090101200901241020090125200901251120090125200901261120090125200901271120090125200901281120090125200901291120090125200901301120090125200901311120090125200902011020090125200904042120090404200904052120090404200904062120090404200905013120090501200905023120090501200905033120090501200905284120090528200905294120090528200905304120090528200905314020090528200909276020091001200910016120091001200910026120091001200910036120091001200910046120091001200910055120091003200910065120091003200910075120091003200910085120091003200910105020091003201001010120100101201001020120100101201001030120100101201002131120100213201002141120100213201002151120100213201002161120100213201002171120100213201002181120100213201002191120100213201002201020100213201002211020100213201004032120100405201004042120100405201004052120100405201005013120100501201005023120100501201005033120100501201006124020100616201006134020100616201006144120100616201006154120100616201006164120100616201009195020100922201009225120100922201009235120100922201009245120100922201009255020100922201009266020101001201010016120101001201010026120101001201010036120101001201010046120101001201010056120101001201010066120101001201010076120101001201010096020101001201101010120110101201101020120110101201101030120110101201101301020110203201102021120110203201102031120110203201102041120110203201102051120110203201102061120110203201102071120110203201102081120110203201102121020110203201104022020110405201104032120110405201104042120110405201104052120110405201104303120110501201105013120110501201105023120110501201106044120110606201106054120110606201106064120110606201109105120110912201109115120110912201109125120110912201110016120111001201110026120111001201110036120111001201110046120111001201110056120111001201110066120111001201110076120111001201110086020111001201110096020111001201112310020120101201201010120120101201201020120120101201201030120120101201201211020120123201201221120120123201201231120120123201201241120120123201201251120120123201201261120120123201201271120120123201201281120120123201201291020120123201203312020120404201204012020120404201204022120120404201204032120120404201204042120120404201204283020120501201204293120120501201204303120120501201205013120120501201205023020120501201206224120120623201206234120120623201206244120120623201209295020120930201209305120120930201210016120121001201210026120121001201210036120121001201210046120121001201210056120121001201210066120121001201210076120121001201210086020121001201301010120130101201301020120130101201301030120130101201301050020130101201301060020130101201302091120130210201302101120130210201302111120130210201302121120130210201302131120130210201302141120130210201302151120130210201302161020130210201302171020130210201304042120130404201304052120130404201304062120130404201304273020130501201304283020130501201304293120130501201304303120130501201305013120130501201306084020130612201306094020130612201306104120130612201306114120130612201306124120130612201309195120130919201309205120130919201309215120130919201309225020130919201309296020131001201310016120131001201310026120131001201310036120131001201310046120131001201310056120131001201310066120131001201310076120131001201401010120140101201401261020140131201401311120140131201402011120140131201402021120140131201402031120140131201402041120140131201402051120140131201402061120140131201402081020140131201404052120140405201404062120140405201404072120140405201405013120140501201405023120140501201405033120140501201405043020140501201405314120140602201406014120140602201406024120140602201409065120140908201409075120140908201409085120140908201409286020141001201410016120141001201410026120141001201410036120141001201410046120141004201410056120141001201410066120141001201410076120141001201410116020141001201501010120150101201501020120150101201501030120150101201501040020150101201502151020150219201502181120150219201502191120150219201502201120150219201502211120150219201502221120150219201502231120150219201502241120150219201502281020150219201504042120150405201504052120150405201504062120150405201505013120150501201505023120150501201505033120150501201506204120150620201506214120150620201506224120150620201509038120150903201509048120150903201509058120150903201509068020150903201509265120150927201509275120150927201510016120151001201510026120151001201510036120151001201510046120151004201510056120151001201510066120151001201510076120151001201510106020151001201601010120160101201601020120160101201601030120160101201602061020160208201602071120160208201602081120160208201602091120160208201602101120160208201602111120160208201602121120160208201602131120160208201602141020160208201604022120160404201604032120160404201604042120160404201604303120160501201605013120160501201605023120160501201606094120160609201606104120160609201606114120160609201606124020160609201609155120160915201609165120160915201609175120160915201609185020160915201610016120161001201610026120161001201610036120161001201610046120161001201610056120161001201610066120161001201610076120161001201610086020161001201610096020161001201612310120170101201701010120170101201701020120170101201701221020170128201701271120170128201701281120170128201701291120170128201701301120170128201701311120170128201702011120170128201702021120170128201702041020170128201704012020170404201704022120170404201704032120170404201704042120170404201704293120170501201704303120170501201705013120170501201705274020170530201705284120170530201705294120170530201705304120170530201709306020171001201710016120171001201710026120171001201710036120171001201710045120171004201710056120171001201710066120171001201710076120171001201710086120171001201712300120180101201712310120180101201801010120180101201802111020180216201802151120180216201802161120180216201802171120180216201802181120180216201802191120180216201802201120180216201802211120180216201802241020180216201804052120180405201804062120180405201804072120180405201804082020180405201804283020180501201804293120180501201804303120180501201805013120180501201806164120180618201806174120180618201806184120180618201809225120180924201809235120180924201809245120180924201809296020181001201809306020181001201810016120181001201810026120181001201810036120181001201810046120181001201810056120181001201810066120181001201810076120181001201812290020190101201812300120190101201812310120190101201901010120190101201902021020190205201902031020190205201902041120190205201902051120190205201902061120190205201902071120190205201902081120190205201902091120190205201902101120190205201904052120190405201904062120190405201904072120190405201904283020190501201905013120190501201905023120190501201905033120190501201905043120190501201905053020190501201906074120190607201906084120190607201906094120190607201909135120190913201909145120190913201909155120190913201909296020191001201910016120191001201910026120191001201910036120191001201910046120191001201910056120191001201910066120191001201910076120191001201910126020191001202001010120200101202001191020200125202001241120200125202001251120200125202001261120200125202001271120200125202001281120200125202001291120200125202001301120200125202001311120200125202002011120200125202002021120200125202004042120200404202004052120200404202004062120200404202004263020200501202005013120200501202005023120200501202005033120200501202005043120200501202005053120200501202005093020200501202006254120200625202006264120200625202006274120200625202006284020200625202009277020201001202010017120201001202010026120201001202010036120201001202010046120201001202010056120201001202010066120201001202010076120201001202010086120201001202010106020201001202101010120210101202101020120210101202101030120210101202102071020210212202102111120210212202102121120210212202102131120210212202102141120210212202102151120210212202102161120210212202102171120210212202102201020210212202104032120210404202104042120210404202104052120210404202104253020210501202105013120210501202105023120210501202105033120210501202105043120210501202105053120210501202105083020210501202106124120210614202106134120210614202106144120210614202109185020210921202109195120210921202109205120210921202109215120210921202109266020211001202110016120211001202110026120211001202110036120211001202110046120211001202110056120211001202110066120211001202110076120211001202110096020211001202201010120220101202201020120220101202201030120220101202201291020220201202201301020220201202201311120220201202202011120220201202202021120220201202202031120220201202202041120220201202202051120220201202202061120220201202204022020220405202204032120220405202204042120220405202204052120220405202204243020220501202204303120220501202205013120220501202205023120220501202205033120220501202205043120220501202205073020220501202206034120220603202206044120220603202206054120220603202209105120220910202209115120220910202209125120220910202210016120221001202210026120221001202210036120221001202210046120221001202210056120221001202210066120221001202210076120221001202210086020221001202210096020221001202212310120230101202301010120230101202301020120230101202301211120230122202301221120230122202301231120230122202301241120230122202301251120230122202301261120230122202301271120230122202301281020230122202301291020230122202304052120230405202304233020230501202304293120230501202304303120230501202305013120230501202305023120230501202305033120230501202305063020230501202306224120230622202306234120230622202306244120230622202306254020230622202309295120230929202309306120231001202310016120231001202310026120231001202310036120231001202310046120231001202310056120231001202310066120231001202310076020231001202310086020231001202312300120240101202312310120240101202401010120240101202402041020240210202402101120240210202402111120240210202402121120240210202402131120240210202402141120240210202402151120240210202402161120240210202402171120240210202402181020240210202404042120240404202404052120240404202404062120240404202404072020240404202404283020240501202405013120240501202405023120240501202405033120240501202405043120240501202405053120240501202405113020240501202406084120240610202406094120240610202406104120240610202409145020240917202409155120240917202409165120240917202409175120240917202409296020241001202410016120241001202410026120241001202410036120241001202410046120241001202410056120241001202410066120241001202410076120241001202410126020241001",u=r,s=function(n){return(n<10?"0":"")+n},g=function(n){return n.indexOf("-")<0?n.substring(0,4)+"-"+n.substring(4,6)+"-"+n.substring(6):n},h=function(n,i,t,e){return{_p:{day:g(n),name:i,work:t,target:g(e)},getDay:function(){return this._p.day},setDay:function(n){this._p.day=g(n)},getName:function(){return this._p.name},setName:function(n){this._p.name=n},isWork:function(){return this._p.work},setWork:function(n){this._p.work=n},getTarget:function(){return this._p.target},setTarget:function(n){this._p.target=g(n)},toString:function(){return this._p.day+" "+this._p.name+(this._p.work?"调休":"")+" "+this._p.target}}},o=function(n){var i=n.substring(0,8),e=a[n.charCodeAt(8)-t],r=n.charCodeAt(9)===t,u=n.substring(10,18);return h(i,e,r,u)},F=function(n){var i=n.length,e=n.substring(i-18,i-10),r=a[n.charCodeAt(i-10)-t],u=n.charCodeAt(i-9)===t,s=n.substring(i-8);return h(e,r,u,s)},C=function(n){var t=u.indexOf(n);if(t<0)return null;var e=u.substring(t),a=e.length%i;a>0&&(e=e.substring(a));while(0!==e.indexOf(n)&&e.length>=i)e=e.substring(i);return e},A=function(n){var t=u.lastIndexOf(n);if(t<0)return null;var e=n.length,a=u.substring(0,t+e),r=a.length,s=r%i;s>0&&(a=a.substring(0,r-s)),r=a.length;while(r-e!==a.lastIndexOf(n)&&r>=i)a=a.substring(0,r-i),r=a.length;return a},E=function(n){var t=[],e=C(n);if(null==e)return t;while(0===e.indexOf(n))t.push(o(e)),e=e.substring(i);return t},D=function(n){var t=[],e=A(n);if(null==e)return t;var a=e.length,r=n.length;while(a-r===e.lastIndexOf(n))t.push(F(e)),e=e.substring(0,a-i),a=e.length;return t.reverse(),t},c=function(n){var i=[];switch(n.length){case 1:i=E(n[0].replace(/-/g,""));break;case 3:i=E(n[0]+s(n[1])+s(n[2]));break}return i.length<1?null:i[0]},x=function(n){var i=[];switch(n.length){case 1:i=E((n[0]+"").replace(/-/g,""));break;case 2:i=E(n[0]+s(n[1]));break}return i},d=function(n){var i=[];switch(n.length){case 1:i=D((n[0]+"").replace(/-/g,""));break;case 3:i=D(n[0]+s(n[1])+s(n[2]));break}return i},f=function(n){n&&(a=n)},y=function(n){if(n){var r=[];while(n.length>=i){var s=n.substring(0,i),g=s.substring(0,8),h=e===s.substring(8,9),o=c([g]);if(o){for(var F=-1,C=0,A=a.length;C-1){var E=g+String.fromCharCode(F+t)+(o.isWork()?"0":"1")+o.getTarget().replace(/-/g,"");u=u.replace(new RegExp(E,"g"),h?"":s)}}else h||r.push(s);n=n.substring(i)}r.length>0&&(u+=r.join(""))}},B=function(n){switch(n.length){case 1:y(n[0]);break;case 2:f(n[0]),y(n[1]);break}};return{NAMES:n,getHoliday:function(){return c(arguments)},getHolidays:function(){return x(arguments)},getHolidaysByTarget:function(){return d(arguments)},fix:function(){B(arguments)}}}(["元旦节","春节","清明节","劳动节","端午节","中秋节","国庆节","国庆中秋","抗战胜利日"]),A=function(){var n=function(n){return{_p:{index:n},getNumber:function(){return y.NUMBER[this._p.index]},getColor:function(){return y.COLOR[this._p.index]},getWuXing:function(){return y.WU_XING[this._p.index]},getPosition:function(){return y.POSITION[this._p.index]},getPositionDesc:function(){return F.POSITION_DESC[this.getPosition()]},getNameInXuanKong:function(){return A.NAME_XUAN_KONG[this._p.index]},getNameInBeiDou:function(){return A.NAME_BEI_DOU[this._p.index]},getNameInQiMen:function(){return A.NAME_QI_MEN[this._p.index]},getNameInTaiYi:function(){return A.NAME_TAI_YI[this._p.index]},getLuckInQiMen:function(){return A.LUCK_QI_MEN[this._p.index]},getLuckInXuanKong:function(){return y.LUCK_XUAN_KONG[this._p.index]},getYinYangInQiMen:function(){return y.YIN_YANG_QI_MEN[this._p.index]},getTypeInTaiYi:function(){return A.TYPE_TAI_YI[this._p.index]},getBaMenInQiMen:function(){return A.BA_MEN_QI_MEN[this._p.index]},getSongInTaiYi:function(){return A.SONG_TAI_YI[this._p.index]},getIndex:function(){return this._p.index},toString:function(){return this.getNumber()+this.getColor()+this.getWuXing()+this.getNameInBeiDou()},toFullString:function(){var n=this.getNumber();return n+=this.getColor(),n+=this.getWuXing(),n+=" ",n+=this.getPosition(),n+="(",n+=this.getPositionDesc(),n+=") ",n+=this.getNameInBeiDou(),n+=" 玄空[",n+=this.getNameInXuanKong(),n+=" ",n+=this.getLuckInXuanKong(),n+="] 奇门[",n+=this.getNameInQiMen(),n+=" ",n+=this.getLuckInQiMen(),this.getBaMenInQiMen().length>0&&(n+=" ",n+=this.getBaMenInQiMen(),n+="门"),n+=" ",n+=this.getYinYangInQiMen(),n+="] 太乙[",n+=this.getNameInTaiYi(),n+=" ",n+=this.getTypeInTaiYi(),n+="]",n}}};return{NAME_BEI_DOU:["天枢","天璇","天玑","天权","玉衡","开阳","摇光","洞明","隐元"],NAME_XUAN_KONG:["贪狼","巨门","禄存","文曲","廉贞","武曲","破军","左辅","右弼"],NAME_QI_MEN:["天蓬","天芮","天冲","天辅","天禽","天心","天柱","天任","天英"],BA_MEN_QI_MEN:["休","死","伤","杜","","开","惊","生","景"],NAME_TAI_YI:["太乙","摄提","轩辕","招摇","天符","青龙","咸池","太阴","天乙"],TYPE_TAI_YI:["吉神","凶神","安神","安神","凶神","吉神","凶神","吉神","吉神"],SONG_TAI_YI:["门中太乙明,星官号贪狼,赌彩财喜旺,婚姻大吉昌,出入无阻挡,参谒见贤良,此行三五里,黑衣别阴阳。","门前见摄提,百事必忧疑,相生犹自可,相克祸必临,死门并相会,老妇哭悲啼,求谋并吉事,尽皆不相宜,只可藏隐遁,若动伤身疾。","出入会轩辕,凡事必缠牵,相生全不美,相克更忧煎,远行多不利,博彩尽输钱,九天玄女法,句句不虚言。","招摇号木星,当之事莫行,相克行人阻,阴人口舌迎,梦寐多惊惧,屋响斧自鸣,阴阳消息理,万法弗违情。","五鬼为天符,当门阴女谋,相克无好事,行路阻中途,走失难寻觅,道逢有尼姑,此星当门值,万事有灾除。","神光跃青龙,财气喜重重,投入有酒食,赌彩最兴隆,更逢相生旺,休言克破凶,见贵安营寨,万事总吉同。","吾将为咸池,当之尽不宜,出入多不利,相克有灾情,赌彩全输尽,求财空手回,仙人真妙语,愚人莫与知,动用虚惊退,反复逆风吹。","坐临太阴星,百祸不相侵,求谋悉成就,知交有觅寻,回风归来路,恐有殃伏起,密语中记取,慎乎莫轻行。","迎来天乙星,相逢百事兴,运用和合庆,茶酒喜相迎,求谋并嫁娶,好合有天成,祸福如神验,吉凶甚分明。"],LUCK_QI_MEN:["大凶","大凶","小吉","大吉","大吉","大吉","小凶","小吉","小凶"],fromIndex:function(i){return n(i)}}}(),E=function(){var n=function(n){return{_p:{sect:2,lunar:n},setSect:function(n){n*=1,this._p.sect=1===n?1:2},getSect:function(){return this._p.sect},getDayGanIndex:function(){return 2===this._p.sect?this._p.lunar.getDayGanIndexExact2():this._p.lunar.getDayGanIndexExact()},getDayZhiIndex:function(){return 2===this._p.sect?this._p.lunar.getDayZhiIndexExact2():this._p.lunar.getDayZhiIndexExact()},getYear:function(){return this._p.lunar.getYearInGanZhiExact()},getYearGan:function(){return this._p.lunar.getYearGanExact()},getYearZhi:function(){return this._p.lunar.getYearZhiExact()},getYearHideGan:function(){return F.ZHI_HIDE_GAN[this.getYearZhi()]},getYearWuXing:function(){return F.WU_XING_GAN[this.getYearGan()]+F.WU_XING_ZHI[this.getYearZhi()]},getYearNaYin:function(){return F.NAYIN[this.getYear()]},getYearShiShenGan:function(){return F.SHI_SHEN[this.getDayGan()+this.getYearGan()]},getYearShiShenZhi:function(){for(var n=this.getDayGan(),i=F.ZHI_HIDE_GAN[this.getYearZhi()],t=[],e=0,a=i.length;e=12&&(t-=12),t<0&&(t+=12),F.CHANG_SHENG[t]},getYearDiShi:function(){return this._getDiShi(this._p.lunar.getYearZhiIndexExact())},getYearXun:function(){return this._p.lunar.getYearXunExact()},getYearXunKong:function(){return this._p.lunar.getYearXunKongExact()},getMonth:function(){return this._p.lunar.getMonthInGanZhiExact()},getMonthGan:function(){return this._p.lunar.getMonthGanExact()},getMonthZhi:function(){return this._p.lunar.getMonthZhiExact()},getMonthHideGan:function(){return F.ZHI_HIDE_GAN[this.getMonthZhi()]},getMonthWuXing:function(){return F.WU_XING_GAN[this.getMonthGan()]+F.WU_XING_ZHI[this.getMonthZhi()]},getMonthNaYin:function(){return F.NAYIN[this.getMonth()]},getMonthShiShenGan:function(){return F.SHI_SHEN[this.getDayGan()+this.getMonthGan()]},getMonthShiShenZhi:function(){for(var n=this.getDayGan(),i=F.ZHI_HIDE_GAN[this.getMonthZhi()],t=[],e=0,a=i.length;e=10&&(n-=10);var i=this._p.lunar.getMonthZhiIndexExact()+3;return i>=12&&(i-=12),F.GAN[n+1]+F.ZHI[i+1]},getTaiYuanNaYin:function(){return F.NAYIN[this.getTaiYuan()]},getTaiXi:function(){var n=this._p.lunar,i=2===this._p.sect?n.getDayGanIndexExact2():n.getDayGanIndexExact(),t=2===this._p.sect?n.getDayZhiIndexExact2():n.getDayZhiIndexExact();return F.HE_GAN_5[i]+F.HE_ZHI_6[t]},getTaiXiNaYin:function(){return F.NAYIN[this.getTaiXi()]},getMingGong:function(){var n=F.index(this.getMonthZhi(),F.MONTH_ZHI,0),i=F.index(this.getTimeZhi(),F.MONTH_ZHI,0),t=n+i;t=(t>=14?26:14)-t;var e=2*(this._p.lunar.getYearGanIndexExact()+1)+t;while(e>10)e-=10;return F.GAN[e]+F.MONTH_ZHI[t]},getMingGongNaYin:function(){return F.NAYIN[this.getMingGong()]},getShenGong:function(){var n=F.index(this.getMonthZhi(),F.MONTH_ZHI,0),i=F.index(this.getTimeZhi(),F.ZHI,0),t=n+i;while(t>12)t-=12;var e=2*(this._p.lunar.getYearGanIndexExact()+1)+t%12;while(e>10)e-=10;return F.GAN[e]+F.MONTH_ZHI[t]},getShenGongNaYin:function(){return F.NAYIN[this.getShenGong()]},getLunar:function(){return this._p.lunar},getYun:function(n,i){i*=1,i=2===i?i:1;var t=this.getLunar(),e=0===t.getYearGanIndexExact()%2,a=1===n,r=e&&a||!e&&!a,u=function(){var n,e,a,u=t.getPrevJie(),s=t.getNextJie(),g=t.getSolar(),h=r?g:u.getSolar(),o=r?s.getSolar():g,C=0;if(2===i){var A=o.subtractMinute(h);n=Math.floor(A/4320),A-=4320*n,e=Math.floor(A/360),A-=360*e,a=Math.floor(A/12),A-=12*a,C=2*A}else{var E=23===o.getHour()?11:F.getTimeZhiIndex(o.toYmdHms().substring(11,16)),D=23===h.getHour()?11:F.getTimeZhiIndex(h.toYmdHms().substring(11,16)),c=E-D,x=o.subtract(h);c<0&&(c+=12,x--);var d=Math.floor(10*c/30);e=4*x+d,a=10*c-30*d,n=Math.floor(e/12),e-=12*n}return{year:n,month:e,day:a,hour:C}}(),s=function(n,i){return{_p:{index:i,liuNian:n},getIndex:function(){return this._p.index},getMonthInChinese:function(){return F.MONTH[this._p.index+1]},getGanZhi:function(){var n=F.find(this._p.liuNian.getGanZhi(),F.GAN).index-1,i=[2,4,6,8,0][n%5],t=F.GAN[(this._p.index+i)%10+1],e=F.ZHI[(this._p.index+F.BASE_MONTH_ZHI_INDEX)%12+1];return t+e},getXun:function(){return F.getXun(this.getGanZhi())},getXunKong:function(){return F.getXunKong(this.getGanZhi())}}},g=function(n,i){return{_p:{year:n.getStartYear()+i,age:n.getStartAge()+i,index:i,daYun:n,lunar:n.getLunar()},getYear:function(){return this._p.year},getAge:function(){return this._p.age},getIndex:function(){return this._p.index},getLunar:function(){return this._p.lunar},getGanZhi:function(){var n=F.getJiaZiIndex(this._p.lunar.getJieQiTable()[_.getMessage("jq.liChun")].getLunar().getYearInGanZhiExact())+this._p.index;return this._p.daYun.getIndex()>0&&(n+=this._p.daYun.getStartAge()-1),n%=F.JIA_ZI.length,F.JIA_ZI[n]},getXun:function(){return F.getXun(this.getGanZhi())},getXunKong:function(){return F.getXunKong(this.getGanZhi())},getLiuYue:function(){for(var n=[],i=0;i<12;i++)n.push(s(this,i));return n}}},h=function(n,i,t){return{_p:{year:n.getStartYear()+i,age:n.getStartAge()+i,index:i,daYun:n,forward:t,lunar:n.getLunar()},getYear:function(){return this._p.year},getAge:function(){return this._p.age},getIndex:function(){return this._p.index},getGanZhi:function(){var n=F.getJiaZiIndex(this._p.lunar.getTimeInGanZhi()),i=this._p.index+1;this._p.daYun.getIndex()>0&&(i+=this._p.daYun.getStartAge()-1),n+=this._p.forward?i:-i;var t=F.JIA_ZI.length;while(n<0)n+=t;return n%=t,F.JIA_ZI[n]},getXun:function(){return F.getXun(this.getGanZhi())},getXunKong:function(){return F.getXunKong(this.getGanZhi())}}},o=function(n,i){var t,e,a,r,u=n.getLunar().getSolar().getYear(),s=n.getStartSolar().getYear();if(i<1)t=u,e=1,a=s-1,r=s-u;else{var o=10*(i-1);t=s+o,e=t-u+1,a=t+9,r=e+9}return{_p:{startYear:t,endYear:a,startAge:e,endAge:r,index:i,yun:n,lunar:n.getLunar()},getStartYear:function(){return this._p.startYear},getEndYear:function(){return this._p.endYear},getStartAge:function(){return this._p.startAge},getEndAge:function(){return this._p.endAge},getIndex:function(){return this._p.index},getLunar:function(){return this._p.lunar},getGanZhi:function(){if(this._p.index<1)return"";var n=F.getJiaZiIndex(this._p.lunar.getMonthInGanZhiExact());n+=this._p.yun.isForward()?this._p.index:-this._p.index;var i=F.JIA_ZI.length;return n>=i&&(n-=i),n<0&&(n+=i),F.JIA_ZI[n]},getXun:function(){return F.getXun(this.getGanZhi())},getXunKong:function(){return F.getXunKong(this.getGanZhi())},getLiuNian:function(n){n||(n=10),this._p.index<1&&(n=this._p.endYear-this._p.startYear+1);for(var i=[],t=0;t=i[_.getMessage("jq.dongZhi")].toYmd()&&n22?"23:00":(n%2===0&&(n-=1),(n<10?"0":"")+n+":00")},getMaxHm:function(){var n=this._p.lunar.getHour();return n<1?"00:59":n>22?"23:59":(n%2!==0&&(n+=1),(n<10?"0":"")+n+":59")},toString:function(){return this.getGanZhi()}}};return{fromYmdHms:function(i,t,e,a,r,u){return n(i,t,e,a,r,u)}}}(),c=function(){var n=[11,13,15,17,19,21,24,0,2,4,7,9],i=function(n,i,t,e){return{_p:{name:n,result:i||"",everyMonth:!!t,remark:e||""},getName:function(){return this._p.name},getResult:function(){return this._p.result},isEveryMonth:function(){return this._p.everyMonth},getRemark:function(){return this._p.remark},toString:function(){return this._p.name},toFullString:function(){var n=[this._p.name];return this._p.result&&n.push(this._p.result),this._p.remark&&n.push(this._p.remark),n.join(" ")}}},t=function(i,t){return c.XIU_27[(n[Math.abs(i)-1]+t-1)%c.XIU_27.length]},e="犯者夺纪",a="犯者减寿",r="犯者损寿",u="犯者削禄夺纪",s="犯者三年内夫妇俱亡",g=i("杨公忌"),h=i("四天王巡行","",!0),o=i("斗降",e,!0),F=i("月朔",e,!0),C=i("月望",e,!0),A=i("月晦",a,!0),E=i("雷斋日",a,!0),D=i("九毒日","犯者夭亡,奇祸不测"),x=i("人神在阴","犯者得病",!0,"宜先一日即戒"),d=i("司命奏事",a,!0,"如月小,即戒廿九"),f=i("月晦",a,!0,"如月小,即戒廿九");return{XIU_27:["{xx.jiao}","{xx.kang}","{xx.di}","{xx.fang}","{xx.xin}","{xx.tail}","{xx.ji}","{xx.dou}","{xx.nv}","{xx.xu}","{xx.wei}","{xx.shi}","{xx.qiang}","{xx.kui}","{xx.lou}","{xx.vei}","{xx.mao}","{xx.bi}","{xx.zi}","{xx.can}","{xx.jing}","{xx.gui}","{xx.liu}","{xx.xing}","{xx.zhang}","{xx.yi}","{xx.zhen}"],DAY_ZHAI_GUAN_YIN:["1-8","2-7","2-9","2-19","3-3","3-6","3-13","4-22","5-3","5-17","6-16","6-18","6-19","6-23","7-13","8-16","9-19","9-23","10-2","11-19","11-24","12-25"],FESTIVAL:{"1-1":[i("天腊,玉帝校世人神气禄命",u),F],"1-3":[i("万神都会",e),o],"1-5":[i("五虚忌")],"1-6":[i("六耗忌"),E],"1-7":[i("上会日",r)],"1-8":[i("五殿阎罗天子诞",e),h],"1-9":[i("玉皇上帝诞",e)],"1-13":[g],"1-14":[i("三元降",a),h],"1-15":[i("三元降",a),i("上元神会",e),C,h],"1-16":[i("三元降",a)],"1-19":[i("长春真人诞")],"1-23":[i("三尸神奏事"),h],"1-25":[A,i("天地仓开日","犯者损寿,子带疾")],"1-27":[o],"1-28":[x],"1-29":[h],"1-30":[f,d,h],"2-1":[i("一殿秦广王诞",e),F],"2-2":[i("万神都会",e),i("福德土地正神诞","犯者得祸")],"2-3":[i("文昌帝君诞",u),o],"2-6":[i("东华帝君诞"),E],"2-8":[i("释迦牟尼佛出家",e),i("三殿宋帝王诞",e),i("张大帝诞",e),h],"2-11":[g],"2-14":[h],"2-15":[i("释迦牟尼佛涅槃",u),i("太上老君诞",u),i("月望",u,!0),h],"2-17":[i("东方杜将军诞")],"2-18":[i("四殿五官王诞",u),i("至圣先师孔子讳辰",u)],"2-19":[i("观音大士诞",e)],"2-21":[i("普贤菩萨诞")],"2-23":[h],"2-25":[A],"2-27":[o],"2-28":[x],"2-29":[h],"2-30":[f,d,h],"3-1":[i("二殿楚江王诞",e),F],"3-3":[i("玄天上帝诞",e),o],"3-6":[E],"3-8":[i("六殿卞城王诞",e),h],"3-9":[i("牛鬼神出","犯者产恶胎"),g],"3-12":[i("中央五道诞")],"3-14":[h],"3-15":[i("昊天上帝诞",e),i("玄坛诞",e),C,h],"3-16":[i("准提菩萨诞",e)],"3-19":[i("中岳大帝诞"),i("后土娘娘诞"),i("三茅降")],"3-20":[i("天地仓开日",r),i("子孙娘娘诞")],"3-23":[h],"3-25":[A],"3-27":[i("七殿泰山王诞"),o],"3-28":[x,i("苍颉至圣先师诞",u),i("东岳大帝诞")],"3-29":[h],"3-30":[f,d,h],"4-1":[i("八殿都市王诞",e),F],"4-3":[o],"4-4":[i("万神善会","犯者失瘼夭胎"),i("文殊菩萨诞")],"4-6":[E],"4-7":[i("南斗、北斗、西斗同降",a),g],"4-8":[i("释迦牟尼佛诞",e),i("万神善会","犯者失瘼夭胎"),i("善恶童子降","犯者血死"),i("九殿平等王诞"),h],"4-14":[i("纯阳祖师诞",a),h],"4-15":[C,i("钟离祖师诞"),h],"4-16":[i("天地仓开日",r)],"4-17":[i("十殿转轮王诞",e)],"4-18":[i("天地仓开日",r),i("紫徽大帝诞",r)],"4-20":[i("眼光圣母诞")],"4-23":[h],"4-25":[A],"4-27":[o],"4-28":[x],"4-29":[h],"4-30":[f,d,h],"5-1":[i("南极长生大帝诞",e),F],"5-3":[o],"5-5":[i("地腊",u),i("五帝校定生人官爵",u),D,g],"5-6":[D,E],"5-7":[D],"5-8":[i("南方五道诞"),h],"5-11":[i("天地仓开日",r),i("天下都城隍诞")],"5-12":[i("炳灵公诞")],"5-13":[i("关圣降",u)],"5-14":[i("夜子时为天地交泰",s),h],"5-15":[C,D,h],"5-16":[i("九毒日",s),i("天地元气造化万物之辰",s)],"5-17":[D],"5-18":[i("张天师诞")],"5-22":[i("孝娥神诞",e)],"5-23":[h],"5-25":[D,A],"5-26":[D],"5-27":[D,o],"5-28":[x],"5-29":[h],"5-30":[f,d,h],"6-1":[F],"6-3":[i("韦驮菩萨圣诞"),o,g],"6-5":[i("南赡部洲转大轮",r)],"6-6":[i("天地仓开日",r),E],"6-8":[h],"6-10":[i("金粟如来诞")],"6-14":[h],"6-15":[C,h],"6-19":[i("观世音菩萨成道",e)],"6-23":[i("南方火神诞","犯者遭回禄"),h],"6-24":[i("雷祖诞",u),i("关帝诞",u)],"6-25":[A],"6-27":[o],"6-28":[x],"6-29":[h],"6-30":[f,d,h],"7-1":[F,g],"7-3":[o],"7-5":[i("中会日",r,!1,"一作初七")],"7-6":[E],"7-7":[i("道德腊",u),i("五帝校生人善恶",u),i("魁星诞",u)],"7-8":[h],"7-10":[i("阴毒日","",!1,"大忌")],"7-12":[i("长真谭真人诞")],"7-13":[i("大势至菩萨诞",a)],"7-14":[i("三元降",a),h],"7-15":[C,i("三元降",e),i("地官校籍",e),h],"7-16":[i("三元降",a)],"7-18":[i("西王母诞",e)],"7-19":[i("太岁诞",e)],"7-22":[i("增福财神诞",u)],"7-23":[h],"7-25":[A],"7-27":[o],"7-28":[x],"7-29":[g,h],"7-30":[i("地藏菩萨诞",e),f,d,h],"8-1":[F,i("许真君诞")],"8-3":[o,i("北斗诞",u),i("司命灶君诞","犯者遭回禄")],"8-5":[i("雷声大帝诞",e)],"8-6":[E],"8-8":[h],"8-10":[i("北斗大帝诞")],"8-12":[i("西方五道诞")],"8-14":[h],"8-15":[C,i("太明朝元","犯者暴亡",!1,"宜焚香守夜"),h],"8-16":[i("天曹掠刷真君降","犯者贫夭")],"8-18":[i("天人兴福之辰","",!1,"宜斋戒,存想吉事")],"8-23":[i("汉恒候张显王诞"),h],"8-24":[i("灶君夫人诞")],"8-25":[A],"8-27":[o,i("至圣先师孔子诞",u),g],"8-28":[x,i("四天会事")],"8-29":[h],"8-30":[i("诸神考校","犯者夺算"),f,d,h],"9-1":[F,i("南斗诞",u),i("北斗九星降世",e,!1,"此九日俱宜斋戒")],"9-3":[o,i("五瘟神诞")],"9-6":[E],"9-8":[h],"9-9":[i("斗母诞",u),i("酆都大帝诞"),i("玄天上帝飞升")],"9-10":[i("斗母降",e)],"9-11":[i("宜戒")],"9-13":[i("孟婆尊神诞")],"9-14":[h],"9-15":[C,h],"9-17":[i("金龙四大王诞","犯者遭水厄")],"9-19":[i("日宫月宫会合",a),i("观世音菩萨诞",a)],"9-23":[h],"9-25":[A,g],"9-27":[o],"9-28":[x],"9-29":[h],"9-30":[i("药师琉璃光佛诞","犯者危疾"),f,d,h],"10-1":[F,i("民岁腊",e),i("四天王降","犯者一年内死")],"10-3":[o,i("三茅诞")],"10-5":[i("下会日",a),i("达摩祖师诞",a)],"10-6":[E,i("天曹考察",e)],"10-8":[i("佛涅槃日","",!1,"大忌色欲"),h],"10-10":[i("四天王降","犯者一年内死")],"10-11":[i("宜戒")],"10-14":[i("三元降",a),h],"10-15":[C,i("三元降",e),i("下元水府校籍",e),h],"10-16":[i("三元降",a),h],"10-23":[g,h],"10-25":[A],"10-27":[o,i("北极紫徽大帝降")],"10-28":[x],"10-29":[h],"10-30":[f,d,h],"11-1":[F],"11-3":[o],"11-4":[i("至圣先师孔子诞",u)],"11-6":[i("西岳大帝诞")],"11-8":[h],"11-11":[i("天地仓开日",e),i("太乙救苦天尊诞",e)],"11-14":[h],"11-15":[i("月望","上半夜犯男死 下半夜犯女死"),i("四天王巡行","上半夜犯男死 下半夜犯女死")],"11-17":[i("阿弥陀佛诞")],"11-19":[i("太阳日宫诞","犯者得奇祸")],"11-21":[g],"11-23":[i("张仙诞","犯者绝嗣"),h],"11-25":[i("掠刷大夫降","犯者遭大凶"),A],"11-26":[i("北方五道诞")],"11-27":[o],"11-28":[x],"11-29":[h],"11-30":[f,d,h],"12-1":[F],"12-3":[o],"12-6":[i("天地仓开日",a),E],"12-7":[i("掠刷大夫降","犯者得恶疾")],"12-8":[i("王侯腊",e),i("释迦如来成佛之辰"),h,i("初旬内戊日,亦名王侯腊",e)],"12-12":[i("太素三元君朝真")],"12-14":[h],"12-15":[C,h],"12-16":[i("南岳大帝诞")],"12-19":[g],"12-20":[i("天地交道","犯者促寿")],"12-21":[i("天猷上帝诞")],"12-23":[i("五岳诞降"),h],"12-24":[i("司今朝天奏人善恶","犯者得大祸")],"12-25":[i("三清玉帝同降,考察善恶","犯者得奇祸"),A],"12-27":[o],"12-28":[x],"12-29":[i("华严菩萨诞"),h],"12-30":[i("诸神下降,察访善恶","犯者男女俱亡")]},OTHER_FESTIVAL:{"1-1":["弥勒菩萨圣诞"],"1-6":["定光佛圣诞"],"2-8":["释迦牟尼佛出家"],"2-15":["释迦牟尼佛涅槃"],"2-19":["观世音菩萨圣诞"],"2-21":["普贤菩萨圣诞"],"3-16":["准提菩萨圣诞"],"4-4":["文殊菩萨圣诞"],"4-8":["释迦牟尼佛圣诞"],"4-15":["佛吉祥日"],"4-28":["药王菩萨圣诞"],"5-13":["伽蓝菩萨圣诞"],"6-3":["韦驮菩萨圣诞"],"6-19":["观音菩萨成道"],"7-13":["大势至菩萨圣诞"],"7-15":["佛欢喜日"],"7-24":["龙树菩萨圣诞"],"7-30":["地藏菩萨圣诞"],"8-15":["月光菩萨圣诞"],"8-22":["燃灯佛圣诞"],"9-9":["摩利支天菩萨圣诞"],"9-19":["观世音菩萨出家"],"9-30":["药师琉璃光佛圣诞"],"10-5":["达摩祖师圣诞"],"10-20":["文殊菩萨出家"],"11-17":["阿弥陀佛圣诞"],"11-19":["日光菩萨圣诞"],"12-8":["释迦牟尼佛成道"],"12-23":["监斋菩萨圣诞"],"12-29":["华严菩萨圣诞"]},getXiu:function(n,i){return t(n,i)}}}(),x=function(){var n=function(n,e,a,r,u,s){return t(i.fromYmdHms(n+x.DEAD_YEAR-1,e,a,r,u,s))},t=function(n){return{_p:{lunar:n},getLunar:function(){return this._p.lunar},getYear:function(){var n=this._p.lunar.getSolar().getYear(),i=n-x.DEAD_YEAR;return n===this._p.lunar.getYear()&&i++,i},getMonth:function(){return this._p.lunar.getMonth()},getDay:function(){return this._p.lunar.getDay()},getYearInChinese:function(){for(var n=this.getYear()+"",i="",t="0".charCodeAt(0),e=0,a=n.length;e-1?_.getMessage("jz.wuYin")===t&&(n=!0):[_.getMessage("dz.si"),_.getMessage("dz.wu"),_.getMessage("dz.wei")].join(",").indexOf(i)>-1?_.getMessage("jz.jiaWu")===t&&(n=!0):[_.getMessage("dz.shen"),_.getMessage("dz.you"),_.getMessage("dz.xu")].join(",").indexOf(i)>-1?_.getMessage("jz.wuShen")===t&&(n=!0):[_.getMessage("dz.hai"),_.getMessage("dz.zi"),_.getMessage("dz.chou")].join(",").indexOf(i)>-1&&_.getMessage("jz.jiaZi")===t&&(n=!0),n},toString:function(){return this.getYearInChinese()+"年"+this.getMonthInChinese()+"月"+this.getDayInChinese()},toFullString:function(){return"道歷"+this.getYearInChinese()+"年,天運"+this._p.lunar.getYearInGanZhi()+"年,"+this._p.lunar.getMonthInGanZhi()+"月,"+this._p.lunar.getDayInGanZhi()+"日。"+this.getMonthInChinese()+"月"+this.getDayInChinese()+"日,"+this._p.lunar.getTimeZhi()+"時。"}}};return{BIRTH_YEAR:-2697,fromYmdHms:function(i,t,e,a,r,u){return n(i,t,e,a,r,u)},fromYmd:function(i,t,e){return n(i,t,e,0,0,0)},fromLunar:function(n){return t(n)}}}(),_=function(){var n="chs",i=n,t=!1,e={chs:{"tg.jia":"甲","tg.yi":"乙","tg.bing":"丙","tg.ding":"丁","tg.wu":"戊","tg.ji":"己","tg.geng":"庚","tg.xin":"辛","tg.ren":"壬","tg.gui":"癸","dz.zi":"子","dz.chou":"丑","dz.yin":"寅","dz.mao":"卯","dz.chen":"辰","dz.si":"巳","dz.wu":"午","dz.wei":"未","dz.shen":"申","dz.you":"酉","dz.xu":"戌","dz.hai":"亥","zx.jian":"建","zx.chu":"除","zx.man":"满","zx.ping":"平","zx.ding":"定","zx.zhi":"执","zx.po":"破","zx.wei":"危","zx.cheng":"成","zx.shou":"收","zx.kai":"开","zx.bi":"闭","jz.jiaZi":"甲子","jz.yiChou":"乙丑","jz.bingYin":"丙寅","jz.dingMao":"丁卯","jz.wuChen":"戊辰","jz.jiSi":"己巳","jz.gengWu":"庚午","jz.xinWei":"辛未","jz.renShen":"壬申","jz.guiYou":"癸酉","jz.jiaXu":"甲戌","jz.yiHai":"乙亥","jz.bingZi":"丙子","jz.dingChou":"丁丑","jz.wuYin":"戊寅","jz.jiMao":"己卯","jz.gengChen":"庚辰","jz.xinSi":"辛巳","jz.renWu":"壬午","jz.guiWei":"癸未","jz.jiaShen":"甲申","jz.yiYou":"乙酉","jz.bingXu":"丙戌","jz.dingHai":"丁亥","jz.wuZi":"戊子","jz.jiChou":"己丑","jz.gengYin":"庚寅","jz.xinMao":"辛卯","jz.renChen":"壬辰","jz.guiSi":"癸巳","jz.jiaWu":"甲午","jz.yiWei":"乙未","jz.bingShen":"丙申","jz.dingYou":"丁酉","jz.wuXu":"戊戌","jz.jiHai":"己亥","jz.gengZi":"庚子","jz.xinChou":"辛丑","jz.renYin":"壬寅","jz.guiMao":"癸卯","jz.jiaChen":"甲辰","jz.yiSi":"乙巳","jz.bingWu":"丙午","jz.dingWei":"丁未","jz.wuShen":"戊申","jz.jiYou":"己酉","jz.gengXu":"庚戌","jz.xinHai":"辛亥","jz.renZi":"壬子","jz.guiChou":"癸丑","jz.jiaYin":"甲寅","jz.yiMao":"乙卯","jz.bingChen":"丙辰","jz.dingSi":"丁巳","jz.wuWu":"戊午","jz.jiWei":"己未","jz.gengShen":"庚申","jz.xinYou":"辛酉","jz.renXu":"壬戌","jz.guiHai":"癸亥","sx.rat":"鼠","sx.ox":"牛","sx.tiger":"虎","sx.rabbit":"兔","sx.dragon":"龙","sx.snake":"蛇","sx.horse":"马","sx.goat":"羊","sx.monkey":"猴","sx.rooster":"鸡","sx.dog":"狗","sx.pig":"猪","dw.long":"龙","dw.niu":"牛","dw.gou":"狗","dw.yang":"羊","dw.tu":"兔","dw.shu":"鼠","dw.ji":"鸡","dw.ma":"马","dw.hu":"虎","dw.zhu":"猪","dw.hou":"猴","dw.she":"蛇","dw.huLi":"狐","dw.yan":"燕","dw.bao":"豹","dw.yuan":"猿","dw.yin":"蚓","dw.lu":"鹿","dw.wu":"乌","dw.jiao":"蛟","dw.lang":"狼","dw.fu":"蝠","dw.zhang":"獐","dw.xu":"獝","dw.xie":"獬","dw.han":"犴","dw.he":"貉","dw.zhi":"彘","wx.jin":"金","wx.mu":"木","wx.shui":"水","wx.huo":"火","wx.tu":"土","wx.ri":"日","wx.yue":"月","n.zero":"〇","n.one":"一","n.two":"二","n.three":"三","n.four":"四","n.five":"五","n.six":"六","n.seven":"七","n.eight":"八","n.nine":"九","n.ten":"十","n.eleven":"十一","n.twelve":"十二","d.one":"初一","d.two":"初二","d.three":"初三","d.four":"初四","d.five":"初五","d.six":"初六","d.seven":"初七","d.eight":"初八","d.nine":"初九","d.ten":"初十","d.eleven":"十一","d.twelve":"十二","d.thirteen":"十三","d.fourteen":"十四","d.fifteen":"十五","d.sixteen":"十六","d.seventeen":"十七","d.eighteen":"十八","d.nighteen":"十九","d.twenty":"二十","d.twentyOne":"廿一","d.twentyTwo":"廿二","d.twentyThree":"廿三","d.twentyFour":"廿四","d.twentyFive":"廿五","d.twentySix":"廿六","d.twentySeven":"廿七","d.twentyEight":"廿八","d.twentyNine":"廿九","d.thirty":"三十","m.one":"正","m.two":"二","m.three":"三","m.four":"四","m.five":"五","m.six":"六","m.seven":"七","m.eight":"八","m.nine":"九","m.ten":"十","m.eleven":"冬","m.twelve":"腊","w.sun":"日","w.mon":"一","w.tues":"二","w.wed":"三","w.thur":"四","w.fri":"五","w.sat":"六","xz.aries":"白羊","xz.taurus":"金牛","xz.gemini":"双子","xz.cancer":"巨蟹","xz.leo":"狮子","xz.virgo":"处女","xz.libra":"天秤","xz.scorpio":"天蝎","xz.sagittarius":"射手","xz.capricornus":"摩羯","xz.aquarius":"水瓶","xz.pisces":"双鱼","bg.qian":"乾","bg.kun":"坤","bg.zhen":"震","bg.xun":"巽","bg.kan":"坎","bg.li":"离","bg.gen":"艮","bg.dui":"兑","ps.center":"中","ps.dong":"东","ps.nan":"南","ps.xi":"西","ps.bei":"北","ps.zhong":"中宫","ps.zhengDong":"正东","ps.zhengNan":"正南","ps.zhengXi":"正西","ps.zhengBei":"正北","ps.dongBei":"东北","ps.dongNan":"东南","ps.xiBei":"西北","ps.xiNan":"西南","ps.wai":"外","ps.fangNei":"房内","jq.dongZhi":"冬至","jq.xiaoHan":"小寒","jq.daHan":"大寒","jq.liChun":"立春","jq.yuShui":"雨水","jq.jingZhe":"惊蛰","jq.chunFen":"春分","jq.qingMing":"清明","jq.guYu":"谷雨","jq.liXia":"立夏","jq.xiaoMan":"小满","jq.mangZhong":"芒种","jq.xiaZhi":"夏至","jq.xiaoShu":"小暑","jq.daShu":"大暑","jq.liQiu":"立秋","jq.chuShu":"处暑","jq.baiLu":"白露","jq.qiuFen":"秋分","jq.hanLu":"寒露","jq.shuangJiang":"霜降","jq.liDong":"立冬","jq.xiaoXue":"小雪","jq.daXue":"大雪","sn.qingLong":"青龙","sn.baiHu":"白虎","sn.zhuQue":"朱雀","sn.xuanWu":"玄武","sn.mingTang":"明堂","sn.tianXing":"天刑","sn.tianDe":"天德","sn.jinKui":"金匮","sn.yuTang":"玉堂","sn.siMing":"司命","sn.tianLao":"天牢","sn.gouChen":"勾陈","sn.tianEn":"天恩","sn.muCang":"母仓","sn.shiYang":"时阳","sn.shengQi":"生气","sn.yiHou":"益后","sn.zaiSha":"灾煞","sn.tianHuo":"天火","sn.siJi":"四忌","sn.baLong":"八龙","sn.fuRi":"复日","sn.xuShi":"续世","sn.yueSha":"月煞","sn.yueXu":"月虚","sn.xueZhi":"血支","sn.tianZei":"天贼","sn.wuXu":"五虚","sn.tuFu":"土符","sn.guiJi":"归忌","sn.xueJi":"血忌","sn.yueDe":"月德","sn.yueEn":"月恩","sn.siXiang":"四相","sn.wangRi":"王日","sn.tianCang":"天仓","sn.buJiang":"不将","sn.wuHe":"五合","sn.mingFeiDui":"鸣吠对","sn.yueJian":"月建","sn.xiaoShi":"小时","sn.tuHu":"土府","sn.wangWang":"往亡","sn.yaoAn":"要安","sn.siShen":"死神","sn.tianMa":"天马","sn.jiuHu":"九虎","sn.qiNiao":"七鸟","sn.liuShe":"六蛇","sn.guanRi":"官日","sn.jiQi":"吉期","sn.yuYu":"玉宇","sn.daShi":"大时","sn.daBai":"大败","sn.xianChi":"咸池","sn.shouRi":"守日","sn.tianWu":"天巫","sn.fuDe":"福德","sn.liuYi":"六仪","sn.jinTang":"金堂","sn.yanDui":"厌对","sn.zhaoYao":"招摇","sn.jiuKong":"九空","sn.jiuKan":"九坎","sn.jiuJiao":"九焦","sn.xiangRi":"相日","sn.baoGuang":"宝光","sn.tianGang":"天罡","sn.yueXing":"月刑","sn.yueHai":"月害","sn.youHuo":"游祸","sn.chongRi":"重日","sn.shiDe":"时德","sn.minRi":"民日","sn.sanHe":"三合","sn.linRi":"临日","sn.shiYin":"时阴","sn.mingFei":"鸣吠","sn.siQi":"死气","sn.diNang":"地囊","sn.yueDeHe":"月德合","sn.jingAn":"敬安","sn.puHu":"普护","sn.jieShen":"解神","sn.xiaoHao":"小耗","sn.tianDeHe":"天德合","sn.yueKong":"月空","sn.yiMa":"驿马","sn.tianHou":"天后","sn.chuShen":"除神","sn.yuePo":"月破","sn.daHao":"大耗","sn.wuLi":"五离","sn.yinDe":"阴德","sn.fuSheng":"福生","sn.tianLi":"天吏","sn.zhiSi":"致死","sn.yuanWu":"元武","sn.yangDe":"阳德","sn.tianXi":"天喜","sn.tianYi":"天医","sn.yueYan":"月厌","sn.diHuo":"地火","sn.fourHit":"四击","sn.daSha":"大煞","sn.daHui":"大会","sn.tianYuan":"天愿","sn.liuHe":"六合","sn.wuFu":"五富","sn.shengXin":"圣心","sn.heKui":"河魁","sn.jieSha":"劫煞","sn.siQiong":"四穷","sn.chuShuiLong":"触水龙","sn.baFeng":"八风","sn.tianShe":"天赦","sn.wuMu":"五墓","sn.baZhuan":"八专","sn.yinCuo":"阴错","sn.siHao":"四耗","sn.yangCuo":"阳错","sn.siFei":"四废","sn.sanYin":"三阴","sn.xiaoHui":"小会","sn.yinDaoChongYang":"阴道冲阳","sn.danYin":"单阴","sn.guChen":"孤辰","sn.yinWei":"阴位","sn.xingHen":"行狠","sn.liaoLi":"了戾","sn.jueYin":"绝阴","sn.chunYang":"纯阳","sn.suiBo":"岁薄","sn.yinYangJiaoPo":"阴阳交破","sn.yinYangJuCuo":"阴阳俱错","sn.yinYangJiChong":"阴阳击冲","sn.zhuZhen":"逐阵","sn.yangCuoYinChong":"阳错阴冲","sn.qiFu":"七符","sn.tianGou":"天狗","sn.chengRi":"成日","sn.tianFu":"天符","sn.guYang":"孤阳","sn.jueYang":"绝阳","sn.chunYin":"纯阴","sn.yinShen":"阴神","sn.jieChu":"解除","sn.yangPoYinChong":"阳破阴冲","ss.biJian":"比肩","ss.jieCai":"劫财","ss.shiShen":"食神","ss.shangGuan":"伤官","ss.pianCai":"偏财","ss.zhengCai":"正财","ss.qiSha":"七杀","ss.zhengGuan":"正官","ss.pianYin":"偏印","ss.zhengYin":"正印","s.none":"无","s.huangDao":"黄道","s.heiDao":"黑道","s.goodLuck":"吉","s.badLuck":"凶","s.yin":"阴","s.yang":"阳","s.white":"白","s.black":"黑","s.blue":"碧","s.green":"绿","s.yellow":"黄","s.red":"赤","s.purple":"紫","jr.chuXi":"除夕","jr.chunJie":"春节","jr.yuanXiao":"元宵节","jr.longTou":"龙头节","jr.duanWu":"端午节","jr.qiXi":"七夕节","jr.zhongQiu":"中秋节","jr.chongYang":"重阳节","jr.laBa":"腊八节","jr.yuanDan":"元旦节","jr.qingRen":"情人节","jr.fuNv":"妇女节","jr.zhiShu":"植树节","jr.xiaoFei":"消费者权益日","jr.wuYi":"劳动节","jr.qingNian":"青年节","jr.erTong":"儿童节","jr.yuRen":"愚人节","jr.jianDang":"建党节","jr.jianJun":"建军节","jr.jiaoShi":"教师节","jr.guoQing":"国庆节","jr.wanShengYe":"万圣节前夜","jr.wanSheng":"万圣节","jr.pingAn":"平安夜","jr.shengDan":"圣诞节","ds.changSheng":"长生","ds.muYu":"沐浴","ds.guanDai":"冠带","ds.linGuan":"临官","ds.diWang":"帝旺","ds.shuai":"衰","ds.bing":"病","ds.si":"死","ds.mu":"墓","ds.jue":"绝","ds.tai":"胎","ds.yang":"养","h.first":"初候","h.second":"二候","h.third":"三候","h.qiuYinJie":"蚯蚓结","h.miJiao":"麋角解","h.shuiQuan":"水泉动","h.yanBei":"雁北乡","h.queShi":"鹊始巢","h.zhiShi":"雉始雊","h.jiShi":"鸡始乳","h.zhengNiao":"征鸟厉疾","h.shuiZe":"水泽腹坚","h.dongFeng":"东风解冻","h.zheChongShiZhen":"蛰虫始振","h.yuZhi":"鱼陟负冰","h.taJi":"獭祭鱼","h.houYan":"候雁北","h.caoMuMengDong":"草木萌动","h.taoShi":"桃始华","h.cangGeng":"仓庚鸣","h.yingHua":"鹰化为鸠","h.xuanNiaoZhi":"玄鸟至","h.leiNai":"雷乃发声","h.shiDian":"始电","h.tongShi":"桐始华","h.tianShu":"田鼠化为鴽","h.hongShi":"虹始见","h.pingShi":"萍始生","h.mingJiu":"鸣鸠拂奇羽","h.daiSheng":"戴胜降于桑","h.louGuo":"蝼蝈鸣","h.qiuYinChu":"蚯蚓出","h.wangGua":"王瓜生","h.kuCai":"苦菜秀","h.miCao":"靡草死","h.maiQiu":"麦秋至","h.tangLang":"螳螂生","h.juShi":"鵙始鸣","h.fanShe":"反舌无声","h.luJia":"鹿角解","h.tiaoShi":"蜩始鸣","h.banXia":"半夏生","h.wenFeng":"温风至","h.xiShuai":"蟋蟀居壁","h.yingShi":"鹰始挚","h.fuCao":"腐草为萤","h.tuRun":"土润溽暑","h.daYu":"大雨行时","h.liangFeng":"凉风至","h.baiLu":"白露降","h.hanChan":"寒蝉鸣","h.yingNai":"鹰乃祭鸟","h.tianDi":"天地始肃","h.heNai":"禾乃登","h.hongYanLai":"鸿雁来","h.xuanNiaoGui":"玄鸟归","h.qunNiao":"群鸟养羞","h.leiShi":"雷始收声","h.zheChongPiHu":"蛰虫坯户","h.shuiShiHe":"水始涸","h.hongYanLaiBin":"鸿雁来宾","h.queRu":"雀入大水为蛤","h.juYou":"菊有黄花","h.caiNai":"豺乃祭兽","h.caoMuHuangLuo":"草木黄落","h.zheChongXianFu":"蛰虫咸俯","h.shuiShiBing":"水始冰","h.diShi":"地始冻","h.zhiRu":"雉入大水为蜃","h.hongCang":"虹藏不见","h.tianQi":"天气上升地气下降","h.biSe":"闭塞而成冬","h.heDan":"鹖鴠不鸣","h.huShi":"虎始交","h.liTing":"荔挺出","ts.zhan":"占","ts.hu":"户","ts.win":"窗","ts.fang":"房","ts.chuang":"床","ts.lu":"炉","ts.zao":"灶","ts.dui":"碓","ts.mo":"磨","ts.xi":"栖","ts.chu":"厨","ts.ce":"厕","ts.cang":"仓","ts.cangKu":"仓库","ts.daMen":"大门","ts.men":"门","ts.tang":"堂","ly.xianSheng":"先胜","ly.xianFu":"先负","ly.youYin":"友引","ly.foMie":"佛灭","ly.daAn":"大安","ly.chiKou":"赤口","yj.jiSi":"祭祀","yj.qiFu":"祈福","yj.qiuSi":"求嗣","yj.kaiGuang":"开光","yj.suHui":"塑绘","yj.qiJiao":"齐醮","yj.zhaiJiao":"斋醮","yj.muYu":"沐浴","yj.chouShen":"酬神","yj.zaoMiao":"造庙","yj.siZhao":"祀灶","yj.fenXiang":"焚香","yj.xieTu":"谢土","yj.chuHuo":"出火","yj.diaoKe":"雕刻","yj.jiaQu":"嫁娶","yj.DingHun":"订婚","yj.naCai":"纳采","yj.wenMing":"问名","yj.naXu":"纳婿","yj.guiNing":"归宁","yj.anChuang":"安床","yj.heZhang":"合帐","yj.guanJi":"冠笄","yj.dingMeng":"订盟","yj.jinRenKou":"进人口","yj.caiYi":"裁衣","yj.wanMian":"挽面","yj.kaiRong":"开容","yj.xiuFen":"修坟","yj.qiZuan":"启钻","yj.poTu":"破土","yj.anZang":"安葬","yj.liBei":"立碑","yj.chengFu":"成服","yj.chuFu":"除服","yj.kaiShengFen":"开生坟","yj.heShouMu":"合寿木","yj.ruLian":"入殓","yj.yiJiu":"移柩","yj.puDu":"普渡","yj.ruZhai":"入宅","yj.anXiang":"安香","yj.anMen":"安门","yj.xiuZao":"修造","yj.qiJi":"起基","yj.dongTu":"动土","yj.shangLiang":"上梁","yj.shuZhu":"竖柱","yj.kaiJing":"开井开池","yj.zuoBei":"作陂放水","yj.chaiXie":"拆卸","yj.poWu":"破屋","yj.huaiYuan":"坏垣","yj.buYuan":"补垣","yj.faMuZuoLiang":"伐木做梁","yj.zuoZhao":"作灶","yj.jieChu":"解除","yj.kaiZhuYan":"开柱眼","yj.chuanPing":"穿屏扇架","yj.gaiWuHeJi":"盖屋合脊","yj.kaiCe":"开厕","yj.zaoCang":"造仓","yj.saiXue":"塞穴","yj.pingZhi":"平治道涂","yj.zaoQiao":"造桥","yj.zuoCe":"作厕","yj.zhuDi":"筑堤","yj.kaiChi":"开池","yj.faMu":"伐木","yj.kaiQu":"开渠","yj.jueJing":"掘井","yj.saoShe":"扫舍","yj.fangShui":"放水","yj.zaoWu":"造屋","yj.heJi":"合脊","yj.zaoChuChou":"造畜稠","yj.xiuMen":"修门","yj.dingSang":"定磉","yj.zuoLiang":"作梁","yj.xiuShi":"修饰垣墙","yj.jiaMa":"架马","yj.kaiShi":"开市","yj.guaBian":"挂匾","yj.naChai":"纳财","yj.qiuCai":"求财","yj.kaiCang":"开仓","yj.maiChe":"买车","yj.zhiChan":"置产","yj.guYong":"雇庸","yj.chuHuoCai":"出货财","yj.anJiXie":"安机械","yj.zaoCheQi":"造车器","yj.jingLuo":"经络","yj.yunNiang":"酝酿","yj.zuoRan":"作染","yj.guZhu":"鼓铸","yj.zaoChuan":"造船","yj.geMi":"割蜜","yj.zaiZhong":"栽种","yj.quYu":"取渔","yj.jieWang":"结网","yj.muYang":"牧养","yj.anDuiWei":"安碓磑","yj.xiYi":"习艺","yj.ruXue":"入学","yj.liFa":"理发","yj.tanBing":"探病","yj.jianGui":"见贵","yj.chengChuan":"乘船","yj.duShui":"渡水","yj.zhenJiu":"针灸","yj.chuXing":"出行","yj.yiXi":"移徙","yj.fenJu":"分居","yj.TiTou":"剃头","yj.zhengShou":"整手足甲","yj.naChu":"纳畜","yj.buZhuo":"捕捉","yj.tianLie":"畋猎","yj.jiaoNiuMa":"教牛马","yj.huiQinYou":"会亲友","yj.fuRen":"赴任","yj.qiuYi":"求医","yj.zhiBing":"治病","yj.ciSong":"词讼","yj.qiJiDongTu":"起基动土","yj.poWuHuaiYuan":"破屋坏垣","yj.gaiWu":"盖屋","yj.zaoCangKu":"造仓库","yj.liQuanJiaoYi":"立券交易","yj.jiaoYi":"交易","yj.liQuan":"立券","yj.anJi":"安机","yj.huiYou":"会友","yj.qiuYiLiaoBing":"求医疗病","yj.zhuShi":"诸事不宜","yj.yuShi":"馀事勿取","yj.xingSang":"行丧","yj.duanYi":"断蚁","yj.guiXiu":"归岫","xx.bi":"毕","xx.yi":"翼","xx.ji":"箕","xx.kui":"奎","xx.gui":"鬼","xx.di":"氐","xx.xu":"虚","xx.wei":"危","xx.zi":"觜","xx.zhen":"轸","xx.dou":"斗","xx.lou":"娄","xx.liu":"柳","xx.fang":"房","xx.xin":"心","xx.shi":"室","xx.can":"参","xx.jiao":"角","xx.niu":"牛","xx.vei":"胃","xx.xing":"星","xx.zhang":"张","xx.tail":"尾","xx.qiang":"壁","xx.jing":"井","xx.kang":"亢","xx.nv":"女","xx.mao":"昴","sz.chun":"春","sz.xia":"夏","sz.qiu":"秋","sz.dong":"冬","od.first":"孟","od.second":"仲","od.third":"季","yx.shuo":"朔","yx.jiShuo":"既朔","yx.eMeiXin":"蛾眉新","yx.eMei":"蛾眉","yx.xi":"夕","yx.shangXian":"上弦","yx.jiuYe":"九夜","yx.night":"宵","yx.jianYingTu":"渐盈凸","yx.xiaoWang":"小望","yx.wang":"望","yx.jiWang":"既望","yx.liDai":"立待","yx.juDai":"居待","yx.qinDai":"寝待","yx.gengDai":"更待","yx.jianKuiTu":"渐亏凸","yx.xiaXian":"下弦","yx.youMing":"有明","yx.eMeiCan":"蛾眉残","yx.can":"残","yx.xiao":"晓","yx.hui":"晦","ny.sangZhe":"桑柘","ny.baiLa":"白蜡","ny.yangLiu":"杨柳","ny.jinBo":"金箔","ny.haiZhong":"海中","ny.daHai":"大海","ny.shaZhong":"沙中","ny.luZhong":"炉中","ny.shanXia":"山下","ny.daLin":"大林","ny.pingDi":"平地","ny.luPang":"路旁","ny.biShang":"壁上","ny.jianFeng":"剑锋","ny.shanTou":"山头","ny.fuDeng":"覆灯","ny.jianXia":"涧下","ny.tianHe":"天河","ny.chengTou":"城头","ny.daYi":"大驿","ny.chaiChuan":"钗钏","ny.quanZhong":"泉中","ny.daXi":"大溪","ny.wuShang":"屋上","ny.piLi":"霹雳","ny.tianShang":"天上","ny.songBo":"松柏","ny.shiLiu":"石榴","ny.changLiu":"长流"},en:{"tg.jia":"Jia","tg.yi":"Yi","tg.bing":"Bing","tg.ding":"Ding","tg.wu":"Wu","tg.ji":"Ji","tg.geng":"Geng","tg.xin":"Xin","tg.ren":"Ren","tg.gui":"Gui","dz.zi":"Zi","dz.chou":"Chou","dz.yin":"Yin","dz.mao":"Mao","dz.chen":"Chen","dz.si":"Si","dz.wu":"Wu","dz.wei":"Wei","dz.shen":"Shen","dz.you":"You","dz.xu":"Xu","dz.hai":"Hai","zx.jian":"Build","zx.chu":"Remove","zx.man":"Full","zx.ping":"Flat","zx.ding":"Stable","zx.zhi":"Hold","zx.po":"Break","zx.wei":"Danger","zx.cheng":"Complete","zx.shou":"Collect","zx.kai":"Open","zx.bi":"Close","jz.jiaZi":"JiaZi","jz.yiChou":"YiChou","jz.bingYin":"BingYin","jz.dingMao":"DingMao","jz.wuChen":"WuChen","jz.jiSi":"JiSi","jz.gengWu":"GengWu","jz.xinWei":"XinWei","jz.renShen":"RenShen","jz.guiYou":"GuiYou","jz.jiaXu":"JiaXu","jz.yiHai":"YiHai","jz.bingZi":"BingZi","jz.dingChou":"DingChou","jz.wuYin":"WuYin","jz.jiMao":"JiMao","jz.gengChen":"GengChen","jz.xinSi":"XinSi","jz.renWu":"RenWu","jz.guiWei":"GuiWei","jz.jiaShen":"JiaShen","jz.yiYou":"YiYou","jz.bingXu":"BingXu","jz.dingHai":"DingHai","jz.wuZi":"WuZi","jz.jiChou":"JiChou","jz.gengYin":"GengYin","jz.xinMao":"XinMao","jz.renChen":"RenChen","jz.guiSi":"GuiSi","jz.jiaWu":"JiaWu","jz.yiWei":"YiWei","jz.bingShen":"BingShen","jz.dingYou":"DingYou","jz.wuXu":"WuXu","jz.jiHai":"JiHai","jz.gengZi":"GengZi","jz.xinChou":"XinChou","jz.renYin":"RenYin","jz.guiMao":"GuiMao","jz.jiaChen":"JiaChen","jz.yiSi":"YiSi","jz.bingWu":"BingWu","jz.dingWei":"DingWei","jz.wuShen":"WuShen","jz.jiYou":"JiYou","jz.gengXu":"GengXu","jz.xinHai":"XinHai","jz.renZi":"RenZi","jz.guiChou":"GuiChou","jz.jiaYin":"JiaYin","jz.yiMao":"YiMao","jz.bingChen":"BingChen","jz.dingSi":"DingSi","jz.wuWu":"WuWu","jz.jiWei":"JiWei","jz.gengShen":"GengShen","jz.xinYou":"XinYou","jz.renXu":"RenXu","jz.guiHai":"GuiHai","sx.rat":"Rat","sx.ox":"Ox","sx.tiger":"Tiger","sx.rabbit":"Rabbit","sx.dragon":"Dragon","sx.snake":"Snake","sx.horse":"Horse","sx.goat":"Goat","sx.monkey":"Monkey","sx.rooster":"Rooster","sx.dog":"Dog","sx.pig":"Pig","dw.long":"Dragon","dw.niu":"Ox","dw.gou":"Dog","dw.yang":"Goat","dw.tu":"Rabbit","dw.shu":"Rat","dw.ji":"Rooster","dw.ma":"Horse","dw.hu":"Tiger","dw.zhu":"Pig","dw.hou":"Monkey","dw.she":"Snake","dw.huLi":"Fox","dw.yan":"Swallow","dw.bao":"Leopard","dw.yuan":"Ape","dw.yin":"Earthworm","dw.lu":"Deer","dw.wu":"Crow","dw.lang":"Wolf","dw.fu":"Bat","wx.jin":"Metal","wx.mu":"Wood","wx.shui":"Water","wx.huo":"Fire","wx.tu":"Earth","wx.ri":"Sun","wx.yue":"Moon","n.zero":"0","n.one":"1","n.two":"2","n.three":"3","n.four":"4","n.five":"5","n.six":"6","n.seven":"7","n.eight":"8","n.nine":"9","n.ten":"10","n.eleven":"11","n.twelve":"12","w.sun":"Sunday","w.mon":"Monday","w.tues":"Tuesday","w.wed":"Wednesday","w.thur":"Thursday","w.fri":"Friday","w.sat":"Saturday","xz.aries":"Aries","xz.taurus":"Taurus","xz.gemini":"Gemini","xz.cancer":"Cancer","xz.leo":"Leo","xz.virgo":"Virgo","xz.libra":"Libra","xz.scorpio":"Scorpio","xz.sagittarius":"Sagittarius","xz.capricornus":"Capricornus","xz.aquarius":"Aquarius","xz.pisces":"Pisces","bg.qian":"Qian","bg.kun":"Kun","bg.zhen":"Zhen","bg.xun":"Xun","bg.kan":"Kan","bg.li":"Li","bg.gen":"Gen","bg.dui":"Dui","ps.center":"Center","ps.dong":"East","ps.nan":"South","ps.xi":"West","ps.bei":"North","ps.zhong":"Center","ps.zhengDong":"East","ps.zhengNan":"South","ps.zhengXi":"West","ps.zhengBei":"North","ps.dongBei":"Northeast","ps.dongNan":"Southeast","ps.xiBei":"Northwest","ps.xiNan":"Southwest","jq.dongZhi":"Winter Solstice","jq.xiaoHan":"Lesser Cold","jq.daHan":"Great Cold","jq.liChun":"Spring Beginning","jq.yuShui":"Rain Water","jq.jingZhe":"Awakening from Hibernation","jq.chunFen":"Spring Equinox","jq.qingMing":"Fresh Green","jq.guYu":"Grain Rain","jq.liXia":"Beginning of Summer","jq.xiaoMan":"Lesser Fullness","jq.mangZhong":"Grain in Ear","jq.xiaZhi":"Summer Solstice","jq.xiaoShu":"Lesser Heat","jq.daShu":"Greater Heat","jq.liQiu":"Beginning of Autumn","jq.chuShu":"End of Heat","jq.baiLu":"White Dew","jq.qiuFen":"Autumnal Equinox","jq.hanLu":"Cold Dew","jq.shuangJiang":"First Frost","jq.liDong":"Beginning of Winter","jq.xiaoXue":"Light Snow","jq.daXue":"Heavy Snow","sn.qingLong":"Azure Dragon","sn.baiHu":"White Tiger","sn.zhuQue":"Rosefinch","sn.xuanWu":"Black Tortoise","sn.tianEn":"Serene Grace","sn.siShen":"Death","sn.tianMa":"Pegasus","sn.baLong":"Eight Dragon","sn.jiuHu":"Nine Tiger","sn.qiNiao":"Seven Bird","sn.liuShe":"Six Snake","s.none":"None","s.goodLuck":"Good luck","s.badLuck":"Bad luck","s.yin":"Yin","s.yang":"Yang","s.white":"White","s.black":"Black","s.blue":"Blue","s.green":"Green","s.yellow":"Yellow","s.red":"Red","s.purple":"Purple","jr.chuXi":"Chinese New Year's Eve","jr.chunJie":"Luna New Year","jr.yuanXiao":"Lantern Festival","jr.duanWu":"Dragon Boat Festival","jr.qiXi":"Begging Festival","jr.zhongQiu":"Mid-Autumn Festival","jr.laBa":"Laba Festival","jr.yuanDan":"New Year's Day","jr.qingRen":"Valentine's Day","jr.fuNv":"Women's Day","jr.xiaoFei":"Consumer Rights Day","jr.zhiShu":"Arbor Day","jr.wuYi":"International Worker's Day","jr.erTong":"Children's Day","jr.qingNian":"Youth Day","jr.yuRen":"April Fools' Day","jr.jianDang":"Party's Day","jr.jianJun":"Army Day","jr.jiaoShi":"Teachers' Day","jr.guoQing":"National Day","jr.wanShengYe":"All Saints' Eve","jr.wanSheng":"All Saints' Day","jr.pingAn":"Christmas Eve","jr.shengDan":"Christmas Day","ts.zhan":"At","ts.hu":"Household","ts.zao":"Cooker","ts.dui":"Pestle","ts.xi":"Habitat","ts.win":"Window","ts.fang":"Room","ts.chuang":"Bed","ts.lu":"Stove","ts.mo":"Mill","ts.chu":"Kitchen","ts.ce":"Toilet","ts.cang":"Depot","ts.cangKu":"Depot","ts.daMen":"Gate","ts.men":"Door","ts.tang":"Hall","ly.xianSheng":"Win first","ly.xianFu":"Lose first","ly.youYin":"Friend's referral","ly.foMie":"Buddhism's demise","ly.daAn":"Great safety","ly.chiKou":"Chikagoro","yj.jiSi":"Sacrifice","yj.qiFu":"Pray","yj.qiuSi":"Seek heirs","yj.kaiGuang":"Consecretion","yj.suHui":"Paint sculptural","yj.qiJiao":"Build altar","yj.zhaiJiao":"Taoist rites","yj.muYu":"Bathing","yj.chouShen":"Reward gods","yj.zaoMiao":"Build temple","yj.siZhao":"Offer kitchen god","yj.fenXiang":"Burn incense","yj.xieTu":"Earth gratitude","yj.chuHuo":"Expel the flame","yj.diaoKe":"Carving","yj.jiaQu":"Marriage","yj.DingHun":"Engagement","yj.naCai":"Proposing","yj.wenMing":"Ask name","yj.naXu":"Uxorilocal marriage","yj.guiNing":"Visit parents","yj.anChuang":"Bed placing","yj.heZhang":"Make up accounts","yj.guanJi":"Crowning adulthood","yj.dingMeng":"Make alliance","yj.jinRenKou":"Adopt","yj.caiYi":"Dressmaking","yj.wanMian":"Cosmeticsurgery","yj.kaiRong":"Open face","yj.xiuFen":"Grave repair","yj.qiZuan":"Open coffin","yj.poTu":"Break earth","yj.anZang":"Burial","yj.liBei":"Tombstone erecting","yj.chengFu":"Formation of clothes","yj.chuFu":"Mourning clothes removal","yj.kaiShengFen":"Open grave","yj.heShouMu":"Make coffin","yj.ruLian":"Body placing","yj.yiJiu":"Move coffin","yj.puDu":"Save soul","yj.ruZhai":"Enter house","yj.anXiang":"Incenst placement","yj.anMen":"Door placing","yj.xiuZao":"Repair","yj.qiJi":"Digging","yj.dongTu":"Break ground","yj.shangLiang":"Beam placing","yj.shuZhu":"Erecting pillars","yj.kaiJing":"Open pond and well","yj.zuoBei":"Make pond and fill water","yj.chaiXie":"Smash house","yj.poWu":"Break house","yj.huaiYuan":"Demolish","yj.buYuan":"Mending","yj.faMuZuoLiang":"Make beams","yj.zuoZhao":"Make stove","yj.jieChu":"Removal","yj.kaiZhuYan":"Build beam","yj.chuanPing":"Build door","yj.gaiWuHeJi":"Cover house","yj.kaiCe":"Open toilet","yj.zaoCang":"Build depot","yj.saiXue":"Block nest","yj.pingZhi":"Repair roads","yj.zaoQiao":"Build bridge","yj.zuoCe":"Build toilet","yj.zhuDi":"Fill","yj.kaiChi":"Open pond","yj.faMu":"Lumbering","yj.kaiQu":"Canalization","yj.jueJing":"Dig well","yj.saoShe":"Sweep house","yj.fangShui":"Drainage","yj.zaoWu":"Build house","yj.heJi":"Close ridge","yj.zaoChuChou":"Livestock thickening","yj.xiuMen":"Repair door","yj.dingSang":"Fix stone","yj.zuoLiang":"Beam construction","yj.xiuShi":"Decorate wall","yj.jiaMa":"Erect horse","yj.kaiShi":"Opening","yj.guaBian":"Hang plaque","yj.naChai":"Accept wealth","yj.qiuCai":"Seek wealth","yj.kaiCang":"Open depot","yj.maiChe":"Buy car","yj.zhiChan":"Buy property","yj.guYong":"Hire","yj.chuHuoCai":"Delivery","yj.anJiXie":"Build machine","yj.zaoCheQi":"Build car","yj.jingLuo":"Build loom","yj.yunNiang":"Brew","yj.zuoRan":"Dye","yj.guZhu":"Cast","yj.zaoChuan":"Build boat","yj.geMi":"Harvest honey","yj.zaiZhong":"Farming","yj.quYu":"Fishing","yj.jieWang":"Netting","yj.muYang":"Graze","yj.anDuiWei":"Build rub","yj.xiYi":"Learn","yj.ruXue":"Enter school","yj.liFa":"Haircut","yj.tanBing":"Visiting","yj.jianGui":"Meet noble","yj.chengChuan":"Ride boat","yj.duShui":"Cross water","yj.zhenJiu":"Acupuncture","yj.chuXing":"Travel","yj.yiXi":"Move","yj.fenJu":"Live apart","yj.TiTou":"Shave","yj.zhengShou":"Manicure","yj.naChu":"Feed livestock","yj.buZhuo":"Catch","yj.tianLie":"Hunt","yj.jiaoNiuMa":"Train horse","yj.huiQinYou":"Meet friends","yj.fuRen":"Go post","yj.qiuYi":"See doctor","yj.zhiBing":"Treat","yj.ciSong":"Litigation","yj.qiJiDongTu":"Lay foundation","yj.poWuHuaiYuan":"Demolish","yj.gaiWu":"Build house","yj.zaoCangKu":"Build depot","yj.liQuanJiaoYi":"Covenant trade","yj.jiaoYi":"Trade","yj.liQuan":"Covenant","yj.anJi":"Install machine","yj.huiYou":"Meet friends","yj.qiuYiLiaoBing":"Seek treatment","yj.zhuShi":"Everything Sucks","yj.yuShi":"Do nothing else","yj.xingSang":"Funeral","yj.duanYi":"Block ant hole","yj.guiXiu":"Place beam","xx.bi":"Finish","xx.yi":"Wing","xx.ji":"Sieve","xx.kui":"Qui","xx.gui":"Ghost","xx.di":"Foundation","xx.xu":"Virtual","xx.wei":"Danger","xx.zi":"Mouth","xx.zhen":"Cross-bar","xx.dou":"Fight","xx.lou":"Weak","xx.liu":"Willow","xx.fang":"House","xx.xin":"Heart","xx.shi":"Room","xx.can":"Join","xx.jiao":"Horn","xx.niu":"Ox","xx.vei":"Stomach","xx.xing":"Star","xx.zhang":"Chang","xx.tail":"Tail","xx.qiang":"Wall","xx.jing":"Well","xx.kang":"Kang","xx.nv":"Female","xx.mao":"Mao","sz.chun":"Spring","sz.xia":"Summer","sz.qiu":"Autumn","sz.dong":"Winter","yx.shuo":"New","yx.eMeiXin":"New waxing","yx.eMei":"Waxing","yx.xi":"Evening","yx.shangXian":"First quarter","yx.jiuYe":"Nine night","yx.night":"Night","yx.jianYingTu":"Gibbous","yx.xiaoWang":"Little full","yx.wang":"Full","yx.jianKuiTu":"Disseminating","yx.xiaXian":"Third quarter","yx.eMeiCan":"Waning waxing","yx.can":"Waning","yx.xiao":"Daybreak","yx.hui":"Obscure","ny.sangZhe":"Cudrania","ny.baiLa":"Wax","ny.yangLiu":"Willow","ny.jinBo":"Foil","ny.haiZhong":"Sea","ny.daHai":"Ocean","ny.shaZhong":"Sand","ny.luZhong":"Stove","ny.shanXia":"Piedmont","ny.daLin":"Forest","ny.pingDi":"Land","ny.luPang":"Roadside","ny.biShang":"Wall","ny.jianFeng":"Blade","ny.shanTou":"Hilltop","ny.fuDeng":"Light","ny.jianXia":"Valleyn","ny.tianHe":"River","ny.chengTou":"City","ny.daYi":"Post","ny.chaiChuan":"Ornaments","ny.quanZhong":"Spring","ny.daXi":"Stream","ny.wuShang":"Roof","ny.piLi":"Thunderbolt","ny.tianShang":"Sky","ny.songBo":"Coniferin","ny.shiLiu":"Pomegranate","ny.changLiu":"Flows"}},a={LunarUtil:F,SolarUtil:o,TaoUtil:f,FotoUtil:c,NineStarUtil:y},r={LunarUtil:{TIAN_SHEN_TYPE:{},TIAN_SHEN_TYPE_LUCK:{},XIU_LUCK:{},LU:{},XIU:{},SHA:{},POSITION_DESC:{},NAYIN:{},WU_XING_GAN:{},WU_XING_ZHI:{},SHOU:{},GONG:{},FESTIVAL:{},ZHENG:{},ANIMAL:{},SHI_SHEN:{},XIU_SONG:{}},SolarUtil:{FESTIVAL:{}},TaoUtil:{BA_HUI:{},BA_JIE:{}}},u={LunarUtil:{ZHI_TIAN_SHEN_OFFSET:{},CHANG_SHENG_OFFSET:{}}},s={LunarUtil:{ZHI_HIDE_GAN:{}}},g={LunarUtil:{GAN:[],ZHI:[],JIA_ZI:[],ZHI_XING:[],XUN:[],XUN_KONG:[],CHONG:[],CHONG_GAN:[],CHONG_GAN_TIE:[],HE_GAN_5:[],HE_ZHI_6:[],SHENGXIAO:[],NUMBER:[],POSITION_XI:[],POSITION_YANG_GUI:[],POSITION_YIN_GUI:[],POSITION_FU:[],POSITION_FU_2:[],POSITION_CAI:[],POSITION_TAI_SUI_YEAR:[],POSITION_GAN:[],POSITION_ZHI:[],JIE_QI:[],JIE_QI_IN_USE:[],TIAN_SHEN:[],SHEN_SHA:[],PENGZU_GAN:[],PENGZU_ZHI:[],MONTH_ZHI:[],CHANG_SHENG:[],HOU:[],WU_HOU:[],POSITION_TAI_DAY:[],POSITION_TAI_MONTH:[],YI_JI:[],LIU_YAO:[],MONTH:[],SEASON:[],DAY:[],YUE_XIANG:[]},SolarUtil:{WEEK:[],XINGZUO:[]},TaoUtil:{AN_WU:[]},FotoUtil:{XIU_27:[]},NineStarUtil:{NUMBER:[],WU_XING:[],POSITION:[],LUCK_XUAN_KONG:[],YIN_YANG_QI_MEN:[],COLOR:[]}},h=function(n){var i=g[n],t=a[n];for(var e in i)for(var r=i[e],u=0,s=r.length;ur.fromDate(a()(n).toDate()).getLunar();function o(n){const i=n.replace(/\S/g,n=>{switch(n){case"初":return"";case"零":return"0";case"正":return"1";case"一":return"1";case"二":return"2";case"三":return"3";case"四":return"4";case"五":return"5";case"六":return"6";case"七":return"7";case"八":return"8";case"九":return"9";case"十":return"1";case"廿":return"2";default:return","}});return i}var F=(n,i)=>{const t=h(n);return i?t.toFullString():t.toString()},C=n=>{const i=u.fromYmd(...o(n).split(",")).getSolar().toString();return i},A=n=>h(n).getMonthInChinese(),E=n=>h(n).getJieQi(),D=n=>g.fromYear(h(n).getYear()).getLeapMonth(),c=n=>h(n).getYearShengXiao(),x=t("973d"),d=t.n(x),f=n=>{const i=d.a.isHoliday;return i(n)},y=(n,i,t="d")=>{const e=u.fromYmd(...o(n).split(",")).getSolar(),r=u.fromYmd(...o(i).split(",")).getSolar();return a()(e).diff(a()(r),t)},B=n=>{const i=u.fromYmd(...o(n).split(",")).getSolar(),t=d.a.isHoliday;return t(i)};const _="lxy_lunar_calender_library",j={install:function(n,i={}){n.prototype.$library=n.prototype.$library||{},n.prototype.$library[""+_]={},n.prototype.$library[""+_].getLunar=F,n.prototype.$library[""+_].getSolar=C,n.prototype.$library[""+_].getMonthInChinese=A,n.prototype.$library[""+_].getJieQi=E,n.prototype.$library[""+_].getLeapMonth=D,n.prototype.$library[""+_].getYearShengXiao=c,n.prototype.$library[""+_].isFestivals=f,n.prototype.$library[""+_].getLunarDiff=y,n.prototype.$library[""+_].isFestivalsByLunar=B}};console.log(C("一九八六年四月廿一")),console.log(F("1998-10")),console.log(A("1998-10")),console.log(E("2024-2-4")),console.log(D("2024-2-4")),console.log("获取生肖",c("2024-2-4")),console.log("是否节日",f("2024-2-12")),console.log("阴历是否节日",B("二零二四年正月初一")),console.log("天数差",y("一九八六年四月廿一","一九八六年四月廿九"));var l=j},"499e":function(n,i,t){"use strict";function e(n,i){for(var t=[],e={},a=0;at.parts.length&&(e.parts.length=t.parts.length)}else{var u=[];for(a=0;a=i?n:""+Array(i+1-e.length).join(t)+n},d={s:x,z:function(n){var i=-n.utcOffset(),t=Math.abs(i),e=Math.floor(t/60),a=t%60;return(i<=0?"+":"-")+x(e,2,"0")+":"+x(a,2,"0")},m:function n(i,t){if(i.date()1)return n(u[0])}else{var s=i.name;y[s]=i,a=s}return!e&&a&&(f=a),a||!e&&f},l=function(n,i){if(_(n))return n.clone();var t="object"==typeof i?i:{};return t.date=n,t.args=arguments,new I(t)},p=d;p.l=j,p.i=_,p.w=function(n,i){return l(n,{locale:i.$L,utc:i.$u,x:i.$x,$offset:i.$offset})};var I=function(){function c(n){this.$L=j(n.locale,null,!0),this.parse(n),this.$x=this.$x||n.x||{},this[B]=!0}var x=c.prototype;return x.parse=function(n){this.$d=function(n){var i=n.date,t=n.utc;if(null===i)return new Date(NaN);if(p.u(i))return new Date;if(i instanceof Date)return new Date(i);if("string"==typeof i&&!/Z$/i.test(i)){var e=i.match(E);if(e){var a=e[2]-1||0,r=(e[7]||"0").substring(0,3);return t?new Date(Date.UTC(e[1],a,e[3]||1,e[4]||0,e[5]||0,e[6]||0,r)):new Date(e[1],a,e[3]||1,e[4]||0,e[5]||0,e[6]||0,r)}}return new Date(i)}(n),this.init()},x.init=function(){var n=this.$d;this.$y=n.getFullYear(),this.$M=n.getMonth(),this.$D=n.getDate(),this.$W=n.getDay(),this.$H=n.getHours(),this.$m=n.getMinutes(),this.$s=n.getSeconds(),this.$ms=n.getMilliseconds()},x.$utils=function(){return p},x.isValid=function(){return!(this.$d.toString()===A)},x.isSame=function(n,i){var t=l(n);return this.startOf(i)<=t&&t<=this.endOf(i)},x.isAfter=function(n,i){return l(n)-1}}},b655:function(n,i,t){const{Solar:e,Lunar:a,Foto:r,Tao:u,NineStar:s,EightChar:g,SolarWeek:h,SolarMonth:o,SolarSeason:F,SolarHalfYear:C,SolarYear:A,LunarMonth:E,LunarYear:D,LunarTime:c,ShouXingUtil:x,SolarUtil:d,LunarUtil:f,FotoUtil:y,TaoUtil:B,HolidayUtil:_,NineStarUtil:j,I18n:l}=t("097e");n.exports={Solar:e,Lunar:a,Foto:r,Tao:u,NineStar:s,EightChar:g,SolarWeek:h,SolarMonth:o,SolarSeason:F,SolarHalfYear:C,SolarYear:A,LunarMonth:E,LunarYear:D,LunarTime:c,ShouXingUtil:x,SolarUtil:d,LunarUtil:f,FotoUtil:y,TaoUtil:B,HolidayUtil:_,NineStarUtil:j,I18n:l}}})})); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/lxy_lunar_calender_library/dist-theme/index.js.map b/lxy_lunar_calender_library/dist-theme/index.js.map new file mode 100644 index 000000000..f962b84c0 --- /dev/null +++ b/lxy_lunar_calender_library/dist-theme/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://Lxy_lunar_calender_library/webpack/universalModuleDefinition","webpack://Lxy_lunar_calender_library/webpack/bootstrap","webpack://Lxy_lunar_calender_library/./node_modules/lunar-javascript/lunar.js","webpack://Lxy_lunar_calender_library/./node_modules/css-loader/dist/runtime/api.js","webpack://Lxy_lunar_calender_library/./node_modules/icon-font-loader/src/fontface.css?dab6","webpack://Lxy_lunar_calender_library/./lib/index.js","webpack://Lxy_lunar_calender_library/./logics/getLunar/index.js","webpack://Lxy_lunar_calender_library/./logics/getSolar/index.js","webpack://Lxy_lunar_calender_library/./logics/getMonthInChinese/index.js","webpack://Lxy_lunar_calender_library/./logics/getJieQi/index.js","webpack://Lxy_lunar_calender_library/./logics/getLeapMonth/index.js","webpack://Lxy_lunar_calender_library/./logics/getYearShengXiao/index.js","webpack://Lxy_lunar_calender_library/./logics/isFestivals/index.js","webpack://Lxy_lunar_calender_library/./logics/getLunarDiff/index.js","webpack://Lxy_lunar_calender_library/./logics/isFestivalsByLunar/index.js","webpack://Lxy_lunar_calender_library/./logics/index.js","webpack://Lxy_lunar_calender_library/./node_modules/vue-style-loader/lib/listToStyles.js","webpack://Lxy_lunar_calender_library/./node_modules/vue-style-loader/lib/addStylesClient.js","webpack://Lxy_lunar_calender_library/./node_modules/dayjs/dayjs.min.js","webpack://Lxy_lunar_calender_library/./node_modules/icon-font-loader/src/fontface.css","webpack://Lxy_lunar_calender_library/./node_modules/chinese-workday/index.js","webpack://Lxy_lunar_calender_library/./node_modules/lunar-javascript/index.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","this","Solar","_fromDate","date","_fromYmdHms","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","_fromJulianDay","julianDay","Math","floor","f","year","month","day","hour","minute","second","round","y","oy","om","od","oh","oi","os","isNaN","Error","_p","subtract","solar","SolarUtil","getDaysBetween","getYear","getDay","subtractMinute","days","cm","sm","getHour","getMinute","isAfter","getSecond","isBefore","getWeek","getJulianDay","getWeekInChinese","WEEK","getSolarWeek","start","SolarWeek","fromYmd","isLeapYear","getFestivals","FESTIVAL","push","weeks","ceil","week","WEEK_FESTIVAL","getDaysOfMonth","getOtherFestivals","fs","OTHER_FESTIVAL","concat","getXingzuo","getXingZuo","index","XINGZUO","toYmd","length","join","toYmdHms","toString","toFullString","festivals","j","nextYear","years","nextMonth","months","SolarMonth","fromYm","next","maxDay","nextDay","daysInMonth","nextWorkday","rest","abs","add","work","holiday","HolidayUtil","getHoliday","isWork","onlyWorkday","nextHour","hours","h","getLunar","Lunar","fromSolar","g","getSalaryRate","lunar","getJieQi","_fromBaZi","yearGanZhi","monthGanZhi","dayGanZhi","timeGanZhi","sect","baseYear","LunarUtil","substring","ZHI","GAN","getJiaZiIndex","startYear","endYear","Date","jieQiLunar","jieQiList","getJieQiList","jieQiTable","getJieQiTable","solarTime","getDayInGanZhiExact2","mi","fromYmdHms","dgz","getDayInGanZhiExact","getYearInGanZhiExact","getMonthInGanZhiExact","getTimeInGanZhi","J2000","fromDate","fromJulianDay","fromBaZi","_computeJieQi","ly","julianDays","getJieQiJulianDays","JIE_QI_IN_USE","_computeYear","offset","yearGanIndex","yearZhiIndex","z","gExact","zExact","solarYear","solarYmd","solarYmdHms","liChun","I18n","getMessage","liChunYmd","liChunYmdHms","_computeMonth","end","size","jieQi","ymd","symd","yearGanIndexByLiChun","BASE_MONTH_ZHI_INDEX","time","stime","yearGanIndexExact","_computeDay","noon","dayGanIndex","dayZhiIndex","dayGanExact","dayZhiExact","hm","_computeTime","timeZhiIndex","getTimeZhiIndex","_computeWeek","_compute","_fromSolar","lunarYear","lunarMonth","lunarDay","LunarYear","fromYear","lms","getMonths","getFirstJulianDay","getDayCount","_new","gz","lang","getLanguage","timeGanIndex","dayGanIndexExact","dayZhiIndexExact","dayGanIndexExact2","dayZhiIndexExact2","monthGanIndex","monthZhiIndex","monthGanIndexExact","monthZhiIndexExact","yearZhiIndexByLiChun","yearZhiIndexExact","weekIndex","eightChar","getTimeGanIndex","getDayGanIndex","getDayGanIndexExact","getDayGanIndexExact2","getDayZhiIndex","getDayZhiIndexExact","getDayZhiIndexExact2","getMonthGanIndex","getMonthGanIndexExact","getMonthZhiIndex","getMonthZhiIndexExact","getYearGanIndex","getYearGanIndexByLiChun","getYearGanIndexExact","getYearZhiIndex","getYearZhiIndexByLiChun","getYearZhiIndexExact","getGan","getYearGan","getZhi","getYearZhi","getYearGanByLiChun","getYearGanExact","getYearZhiByLiChun","getYearZhiExact","getYearInGanZhi","getYearInGanZhiByLiChun","getMonthGan","getMonthGanExact","getMonthZhi","getMonthZhiExact","getMonthInGanZhi","getDayGan","getDayGanExact","getDayGanExact2","getDayZhi","getDayZhiExact","getDayZhiExact2","getDayInGanZhi","getTimeGan","getTimeZhi","getShengxiao","getYearShengXiao","SHENGXIAO","getYearShengXiaoByLiChun","getYearShengXiaoExact","getMonthShengXiao","getMonthShengXiaoExact","getDayShengXiao","getTimeShengXiao","getYearInChinese","zero","charCodeAt","NUMBER","getMonthInChinese","MONTH","getDayInChinese","DAY","getPengZuGan","PENGZU_GAN","getPengZuZhi","PENGZU_ZHI","getPositionXi","getDayPositionXi","getPositionXiDesc","getDayPositionXiDesc","getPositionYangGui","getDayPositionYangGui","getPositionYangGuiDesc","getDayPositionYangGuiDesc","getPositionYinGui","getDayPositionYinGui","getPositionYinGuiDesc","getDayPositionYinGuiDesc","getPositionFu","getDayPositionFu","getPositionFuDesc","getDayPositionFuDesc","getPositionCai","getDayPositionCai","getPositionCaiDesc","getDayPositionCaiDesc","POSITION_XI","POSITION_DESC","POSITION_YANG_GUI","POSITION_YIN_GUI","POSITION_FU","POSITION_FU_2","POSITION_CAI","getTimePositionXi","getTimePositionXiDesc","getTimePositionYangGui","getTimePositionYangGuiDesc","getTimePositionYinGui","getTimePositionYinGuiDesc","getTimePositionFu","getTimePositionFuDesc","getTimePositionCai","getTimePositionCaiDesc","getDayPositionTaiSui","dayInGanZhi","indexOf","POSITION_TAI_SUI_YEAR","getDayPositionTaiSuiDesc","getMonthPositionTaiSui","POSITION_GAN","getMonthPositionTaiSuiDesc","getYearPositionTaiSui","getYearPositionTaiSuiDesc","_checkLang","newKey","oldKey","_getJieQiSolar","getChong","getDayChong","getChongGan","getDayChongGan","getChongGanTie","getDayChongGanTie","getChongShengXiao","getDayChongShengXiao","getChongDesc","getDayChongDesc","getSha","getDaySha","CHONG","CHONG_GAN","CHONG_GAN_TIE","chong","SHA","getTimeChong","getTimeChongGan","getTimeChongGanTie","getTimeChongShengXiao","getTimeChongDesc","getTimeSha","getYearNaYin","NAYIN","getMonthNaYin","getDayNaYin","getTimeNaYin","getSeason","SEASON","_convertJieQi","jq","getJie","getQi","getXiu","XIU","getXiuLuck","XIU_LUCK","getXiuSong","XIU_SONG","getZheng","ZHENG","getAnimal","ANIMAL","getGong","GONG","getShou","SHOU","getBaZi","bz","getEightChar","getTime","getBaZiWuXing","getYearWuXing","getMonthWuXing","getDayWuXing","getTimeWuXing","getBaZiNaYin","getBaZiShiShenGan","getYearShiShenGan","getMonthShiShenGan","getDayShiShenGan","getTimeShiShenGan","getBaZiShiShenZhi","getYearShiShenZhi","getMonthShiShenZhi","getDayShiShenZhi","getTimeShiShenZhi","getBaZiShiShenYearZhi","getBaZiShiShenMonthZhi","getBaZiShiShenDayZhi","getBaZiShiShenTimeZhi","getZhiXing","ZHI_XING","getDayTianShen","monthZhi","ZHI_TIAN_SHEN_OFFSET","TIAN_SHEN","getTimeTianShen","dayZhi","getDayTianShenType","TIAN_SHEN_TYPE","getTimeTianShenType","getDayTianShenLuck","TIAN_SHEN_TYPE_LUCK","getTimeTianShenLuck","getDayPositionTai","POSITION_TAI_DAY","getMonthPositionTai","POSITION_TAI_MONTH","getDayYi","getDayJi","getDayJiShen","getDayXiongSha","getTimeYi","getTimeJi","getYueXiang","YUE_XIANG","_getYearNineStar","yearInGanZhi","indexExact","yearOffset","yuan","NineStar","fromIndex","getYearNineStar","getMonthNineStar","getDayNineStar","solarShunBai","solarShunBai2","solarNiZi","dongZhi","dongZhi2","xiaZhi","dongZhiIndex","dongZhiIndex2","xiaZhiIndex","solarShunBaiYmd","solarShunBaiYmd2","solarNiZiYmd","getTimeNineStar","asc","getSolar","getNextJie","wholeDay","conditions","_getNearJieQi","getPrevJie","getNextQi","getPrevQi","getNextJieQi","getPrevJieQi","_buildJieQi","jie","qi","JIE_QI","getName","setName","setSolar","isJie","isQi","forward","near","filters","filter","today","getCurrentJieQi","getCurrentJie","getCurrentQi","EightChar","fromLunar","getYearXun","getXun","getMonthXun","getDayXun","getTimeXun","getYearXunByLiChun","getYearXunExact","getMonthXunExact","getDayXunExact","getDayXunExact2","getYearXunKong","getXunKong","getMonthXunKong","getDayXunKong","getTimeXunKong","getYearXunKongByLiChun","getYearXunKongExact","getMonthXunKongExact","getDayXunKongExact","getDayXunKongExact2","_buildNameAndIndex","getIndex","setIndex","getShuJiu","currentDay","startDay","endDay","getFu","liQiu","liQiuDay","getLiuYao","LIU_YAO","getWuHou","find","current","startSolar","WU_HOU","getHou","max","HOU","getDayLu","gan","LU","zhi","lu","LunarTime","getTimes","getFoto","Foto","getTao","Tao","_fromYmd","getStart","getIndexInYear","getDaysInYear","separateMonth","ow","plus","weekMonth","firstDay","getFirstDay","getWeeksOfMonth","lastDay","prev","getFirstDayInMonth","getDays","getDaysInMonth","_fromYm","getWeeks","SolarSeason","seasons","SolarHalfYear","halfYears","SolarYear","_fromYear","_YUAN","_YUN","_LEAP_11","_LEAP_12","_CACHE_YEAR","_YMC","_inLeap","arr","_y","ganIndex","zhiIndex","jieQiJulianDays","getGanIndex","getZhiIndex","getGanZhi","getMonthsInYear","getLeapMonth","isLeap","_getZaoByGan","replace","_getZaoByZhi","getTouLiang","getCaoZi","getGengTian","getHuaShou","getZhiShui","getTuoGu","getQiangMi","getKanCan","getGongZhu","getJiaTian","getFenBing","getDeJin","getRenBing","getRenChu","getYuan","getYun","getNineStar","getPositionTaiSui","getPositionTaiSuiDesc","hs","dayCounts","currentYear","jd","w","ShouXingUtil","calcQi","qiAccurate2","calcShuo","prevYear","leapIndex","fm","dm","v2","mc","LunarMonth","_","_fromCachedYear","dayCount","firstJulianDay","on","ny","iy","im","more","lastMonth","firstMonth","_decode","o2","PI_2","PI","ONE_THIRD","SECOND_PER_DAY","SECOND_PER_RAD","NUT_B","DT_AT","XL0","XL1","QI_KB","QB","SHUO_KB","SB","nutationLon2","a","t2","dl","sin","eLon","n1","n2","n0","v","tn","pn","m0","cos","mLon","ob","obl","t3","t4","t5","tx","x","gxcSunLon","e","ev","saLon","dtExt","jsd","dy","dtCalc","y0","t0","t1","dtT","mv","saLonT","msaLon","mn","sn","msaLonT","saLonT2","msaLonT2","qiHigh","shuoHigh","qiLow","shuoLow","pc","f1","f2","f3","from","qiAccurate","DAYS_OF_MONTH","getDaysOfYear","ay","am","ad","by","bm","bd","oay","oam","oad","oby","obm","obd","CHANG_SHENG_OFFSET","MONTH_ZHI","CHANG_SHENG","XUN","XUN_KONG","POSITION_ZHI","JIA_ZI","CHONG_GAN_4","HE_GAN_5","HE_ZHI_6","WU_XING_GAN","WU_XING_ZHI","SHI_SHEN","ZHI_HIDE_GAN","YI_JI","DAY_YI_JI","TIME_YI_JI","SHEN_SHA","DAY_SHEN_SHA","convertTime","ganZhi","hex","toUpperCase","right","left","matched","ys","parseInt","js","xs","getXunIndex","diff","names","_NAMES","_SIZE","_ZERO","_TAG_REMOVE","_NAMES_IN_USE","_DATA","_DATA_IN_USE","_padding","_ymd","_buildHoliday","target","setDay","setWork","getTarget","setTarget","_buildHolidayForward","_buildHolidayBackward","_findForward","_findBackward","lastIndexOf","keySize","_findHolidaysForward","_findHolidaysBackward","reverse","_getHoliday","args","_getHolidays","_getHolidaysByTarget","_fixNames","_fixData","data","append","segment","remove","nameIndex","old","String","fromCharCode","RegExp","_fix","NAMES","arguments","getHolidays","getHolidaysByTarget","fix","_fromIndex","getNumber","NineStarUtil","getColor","COLOR","getWuXing","WU_XING","getPosition","POSITION","getPositionDesc","getNameInXuanKong","NAME_XUAN_KONG","getNameInBeiDou","NAME_BEI_DOU","getNameInQiMen","NAME_QI_MEN","getNameInTaiYi","NAME_TAI_YI","getLuckInQiMen","LUCK_QI_MEN","getLuckInXuanKong","LUCK_XUAN_KONG","getYinYangInQiMen","YIN_YANG_QI_MEN","getTypeInTaiYi","TYPE_TAI_YI","getBaMenInQiMen","BA_MEN_QI_MEN","getSongInTaiYi","SONG_TAI_YI","_fromLunar","setSect","getSect","getYearHideGan","dayGan","hideGan","_getDiShi","getYearDiShi","getMonthHideGan","getMonthDiShi","getDayHideGan","getDayDiShi","getTimeHideGan","getTimeDiShi","getTaiYuan","getTaiYuanNaYin","getTaiXi","getTaiXiNaYin","getMingGong","getMingGongNaYin","getShenGong","getShenGongNaYin","gender","yang","man","minutes","endTimeZhiIndex","startTimeZhiIndex","hourDiff","dayDiff","monthDiff","buildLiuYue","liuNian","buildLiuNian","daYun","getStartYear","age","getStartAge","getAge","getLiuYue","buildXiaoYun","buildDaYun","yun","startAge","endAge","birthYear","getStartSolar","getEndYear","getEndAge","isForward","getLiuNian","getXiaoYun","startMonth","startHour","getGender","getStartMonth","getStartDay","getStartHour","getDaYun","getShengXiao","getNaYin","getTianShen","getTianShenType","getTianShenLuck","getYi","getJi","getMinHm","getMaxHm","FotoUtil","XIU_OFFSET","_f","result","everyMonth","remark","getResult","isEveryMonth","getRemark","_getXiu","XIU_27","dj","ss","xl","jw","_t","_d","_s","_w","_h","_l","_j","_r","_m","_hh","DAY_ZHAI_GUAN_YIN","DEAD_YEAR","sy","isMonthZhai","isDayYangGong","isDayZhaiShuoWang","isDayZhaiSix","isDayZhaiTen","isDayZhaiGuanYin","k","TaoFestival","TaoUtil","SAN_HUI","SAN_YUAN","WU_LA","AN_WU","BA_HUI","BA_JIE","BIRTH_YEAR","_isDayIn","md","isDaySanHui","isDaySanYuan","isDayBaJie","isDayWuLa","isDayBaHui","isDayMingWu","isDayAnWu","isDayWu","isDayTianShe","ret","mz","_defaultLang","_lang","_inited","_messages","_objs","_dictString","_dictNumber","_dictArray","_arrays","_updateArray","$0","$1","_getMessage","_updateStringDictionary","dict","_updateNumberDictionary","_updateArrayDictionary","_update","_setLanguage","_getLanguage","_setMessages","messages","undefined","_initArray","_initDictionary","type","_init","setLanguage","setMessages","cssWithMappingToString","item","useSourceMap","content","cssMapping","btoa","sourceMapping","toComment","sourceURLs","sources","map","source","sourceRoot","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","list","mediaQuery","dedupe","alreadyImportedModules","id","_i","default","locals","dateData","toDate","getNumberDate","dateStr","match","isFull","str","split","isHoliday","date1","str1","date2","str2","$libraryName","UtilsLogics","Vue","option","$library","isFestivals","getLunarDiff","isFestivalsByLunar","console","log","listToStyles","parentId","styles","newStyles","css","media","part","parts","hasDocument","document","DEBUG","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","options","ssrIdKey","isOldIE","navigator","test","userAgent","toLowerCase","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","addStyle","createStyleElement","styleElement","createElement","appendChild","obj","update","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","applyToTag","newObj","replaceText","textStore","replacement","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","setAttribute","ssrId","firstChild","u","$","M","weekdays","ordinal","Array","utcOffset","clone","D","ms","Q","S","O","b","locale","$L","utc","$u","$x","$offset","parse","$d","NaN","UTC","init","$y","$M","$D","$W","$H","$m","$s","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","$g","set","unix","valueOf","apply","slice","$locale","weekStart","$set","min","Number","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","toJSON","toISOString","toUTCString","forEach","extend","$i","isDayjs","en","Ls","___CSS_LOADER_API_IMPORT___","isWorkday","getFestival","isAddtionalWorkday","HOLIDAYS","WEEKENDS_WORKDAY","fd","formatDate","weekends"],"mappings":"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ACA,4CACA,oDACA,qDACA,iDACA,6CACA,wCACA,kDACA,8CACA,gDACA,8CACA,0CACA,mDACA,2CACA,8CACA,mDACA,yCACA,iDACA,8CACA,6CACA,6CACA,4CACA,qDACA,iDACA,+CACA,iDACA,2CACA,qDACA,iDACA,8CACA,+CACA,2CACA,sDACA,uDACA,gDACA,+CACA,0CACA,mDACA,iDACA,mDACA,iDACA,2CACA,sDACA,2CACA,8CACA,mDACA,2CACA,mDACA,gDACA,iDACA,iDACA,gDACA,sDACA,kDACA,8CACA,gDACA,0CACA,sDAEFE,mBAAmB,CACjB,gCACA,2BACA,6BACA,4BACA,gCACA,gCACA,2BACA,0BACA,6BACA,gCACA,2BACA,iCAEFxS,IAAI,CAAC,GAAI,UAAW,YAAa,WAAY,WAAY,YAAa,UAAW,UAAW,WAAY,YAAa,WAAY,UAAW,YAC5IwR,SAAS,CACP,GACA,YACA,WACA,WACA,YACA,YACA,WACA,UACA,WACA,aACA,YACA,WACA,WAEFmT,OAAO,CACL,aACA,cACA,eACA,eACA,cACA,YACA,cACA,cACA,eACA,cACA,aACA,aACA,cACA,gBACA,aACA,aACA,gBACA,aACA,aACA,cACA,eACA,aACA,cACA,eACA,YACA,cACA,eACA,cACA,eACA,aACA,aACA,aACA,gBACA,eACA,YACA,aACA,cACA,eACA,cACA,cACA,eACA,YACA,cACA,eACA,cACA,aACA,cACA,cACA,aACA,eACA,cACA,aACA,gBACA,cACA,YACA,aACA,gBACA,cACA,aACA,eAEF/S,UAAU,CAAC,GAAI,gBAAiB,gBAAiB,gBAAiB,cAAe,cAAe,cAAe,aAAc,cAAe,eAAgB,cAAe,cAAe,gBAC1LD,qBAAsB,CACpB,UAAW,EACX,YAAa,EACb,WAAY,EACZ,WAAY,GACZ,YAAa,EACb,UAAW,EACX,UAAW,EACX,WAAY,EACZ,YAAa,EACb,WAAY,GACZ,UAAW,EACX,WAAY,GAEdK,eAAgB,CACd,gBAAiB,eACjB,gBAAiB,eACjB,cAAe,eACf,cAAe,eACf,cAAe,eACf,cAAe,eACf,gBAAiB,aACjB,cAAe,aACf,aAAc,aACd,eAAgB,aAChB,cAAe,aACf,eAAgB,cAElBG,oBAAoB,CAClB,eAAgB,eAChB,aAAc,eAEhB1I,WAAW,CAAC,GAAI,kBAAmB,iBAAkB,mBAAoB,mBAAoB,iBAAkB,iBAAkB,mBAAoB,kBAAmB,kBAAmB,mBAC3LE,WAAW,CAAC,GAAI,iBAAkB,mBAAoB,kBAAmB,kBAAmB,mBAAoB,iBAAkB,iBAAkB,kBAAmB,mBAAoB,kBAAmB,iBAAkB,mBAChOR,OAAO,CAAC,WAAY,UAAW,UAAW,YAAa,WAAY,WAAY,UAAW,YAAa,YAAa,WAAY,UAAW,aAAc,cACzJE,MAAM,CACJ,GACA,UACA,UACA,YACA,WACA,WACA,UACA,YACA,YACA,WACA,UACA,aACA,cAEFuF,OAAO,CACL,GACA,sBACA,uBACA,sBACA,qBACA,sBACA,qBACA,qBACA,sBACA,qBACA,sBACA,uBACA,uBAEFnG,UAAU,CAAC,GAAI,WAAY,UAAW,aAAc,cAAe,cAAe,aAAc,aAAc,YAAa,cAAe,eAAgB,WAAY,YACtKc,IAAI,CACF,GACA,UACA,UACA,YACA,WACA,WACA,UACA,YACA,YACA,WACA,UACA,aACA,aACA,eACA,eACA,cACA,cACA,gBACA,eACA,eACA,aACA,gBACA,gBACA,kBACA,iBACA,iBACA,gBACA,kBACA,kBACA,iBACA,cAEFyJ,UAAU,CACR,GACA,YACA,cACA,eACA,eACA,YACA,UACA,iBACA,iBACA,aACA,aACA,aACA,aACA,kBACA,gBACA,YACA,cACA,aACA,aACA,cACA,eACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,WACA,YACA,YAEF9D,IAAK,CACH,aAAc,UACd,aAAc,UACd,aAAc,UACd,aAAc,WACd,aAAc,WACd,aAAc,UACd,aAAc,UACd,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,WACZ,WAAY,WACZ,WAAY,UACZ,WAAY,UACZ,aAAc,UACd,aAAc,UACd,aAAc,UACd,aAAc,WACd,aAAc,WACd,aAAc,UACd,aAAc,UACd,WAAY,WACZ,WAAY,U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A,eACA,gBACA,eACA,cACA,gBACA,iBACA,aACA,eACA,eACA,cACA,cACA,YACA,cACA,aACA,eACA,aACA,mBACA,gBACA,cACA,aACA,YACA,cACA,eACA,aACA,cACA,YACA,cACA,kBACA,cACA,eACA,cACA,eACA,YACA,gBACA,cACA,oBACA,eACA,cACA,iBACA,iBACA,iBACA,aACA,eACA,cACA,eACA,eACA,aACA,aACA,cACA,YACA,aACA,eACA,cACA,gBACA,aACA,YACA,kBACA,cACA,gBACA,gBACA,cACA,aACA,cACA,eACA,cACA,cACA,eACA,cACA,eACA,cACA,iBACA,eACA,gBACA,eACA,gBACA,cACA,aACA,gBACA,YACA,gBACA,YACA,eACA,cACA,gBACA,YACA,aACA,YACA,eACA,eACA,kBACA,cACA,eACA,eACA,YACA,aACA,aACA,iBACA,aACA,cACA,eACA,iBACA,iBACA,aACA,aACA,eACA,cACA,kBACA,oBACA,aACA,iBACA,oBACA,cACA,cACA,YACA,cACA,qBACA,cACA,aACA,gBACA,cACA,cACA,YAEFnM,GAAG,CACD,WAAW,WACX,UAAU,WACV,YAAY,UACZ,YAAY,UACZ,UAAU,UACV,UAAU,UACV,YAAY,YACZ,WAAW,WACX,WAAW,WACX,WAAW,UACX,WAAW,WACX,WAAW,UACX,UAAU,oBACV,UAAU,oBACV,YAAY,YACZ,WAAW,WACX,WAAW,WACX,UAAU,YAEZoM,UAAU,43iCACVC,WAAW,innBACXC,SAAS,CACP,WACA,cACA,cACA,eACA,eACA,aACA,gBACA,cACA,eACA,YACA,cACA,YACA,aACA,gBACA,cACA,aACA,cACA,eACA,YACA,YACA,aACA,aACA,aACA,aACA,eACA,cACA,gBACA,eACA,aACA,YACA,kBACA,eACA,eACA,YACA,gBACA,gBACA,cACA,cACA,YACA,YACA,aACA,aACA,eACA,cACA,cACA,cACA,YACA,aACA,eACA,cACA,cACA,eACA,eACA,cACA,eACA,eACA,gBACA,gBACA,cACA,eACA,cACA,cACA,eACA,aACA,aACA,aACA,aACA,cACA,cACA,eACA,YACA,cACA,aACA,eACA,cACA,cACA,YACA,eACA,eACA,gBACA,eACA,YACA,eACA,eACA,aACA,aACA,YACA,eACA,aACA,eACA,cACA,aACA,cACA,cACA,cACA,cACA,cACA,cACA,aACA,eACA,aACA,aACA,gBACA,aACA,YACA,gBACA,aACA,cACA,eACA,eACA,mBACA,cACA,eACA,YACA,eACA,cACA,aACA,eACA,aACA,cACA,eACA,uBACA,cACA,cACA,cACA,eACA,cACA,cACA,gBACA,cACA,aACA,qBACA,oBACA,sBACA,eACA,uBACA,YACA,eACA,aACA,eACA,cACA,cACA,eACA,eACA,cACA,eACA,cACA,uBAEFC,aAAa,iukBACbvhB,gBAAgB,SAASH,GACvB,IAAIA,EACF,OAAO,EAENA,EAAG3G,OAAO,IACX2G,EAAKA,EAAG9D,UAAU,EAAE,IAGtB,IADA,IAAIyhB,EAAI,EACAhrB,EAAE,EAAEA,EAAE,GAAGA,GAAG,EAAE,CACpB,GAAGqN,IAAMrN,EAAE,GAAG,IAAI,IAAIA,EAAE,OAAQqN,IAAMrN,EAAE,EAAE,GAAG,IAAI,KAAKA,EAAE,GAAG,MACzD,OAAOgrB,EAETA,IAEF,OAAO,GAETgE,YAAY,SAAS3hB,GACnB,OAAOrL,KAAKwH,IAAIxH,KAAKwL,gBAAgBH,GAAI,IAE3C3D,cAAc,SAASulB,GACrB,OAAOjtB,KAAKuE,MAAM0oB,EAAQjtB,KAAKmsB,OAAQ,IAEzCe,IAAI,SAASztB,GACX,IAAIytB,EAAMztB,EAAEoF,SAAS,IAIrB,OAHGqoB,EAAIxoB,OAAO,IACZwoB,EAAM,IAAIA,GAELA,EAAIC,eAEblT,SAAS,SAAShT,EAAYC,GAC5B,IAAIjJ,EAAI,GACJiD,EAAMlB,KAAKktB,IAAIltB,KAAK0H,cAAcR,IAClCjG,EAAQjB,KAAKktB,IAAIltB,KAAK0H,cAAcT,IACpCmmB,EAAQptB,KAAK4sB,UACbroB,EAAQ6oB,EAAMzZ,QAAQzS,EAAI,KAC9B,MAAMqD,GAAO,EAAG,CACd6oB,EAAQ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ACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,KACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,M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","file":"index.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Lxy_lunar_calender_library\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Lxy_lunar_calender_library\"] = factory();\n\telse\n\t\troot[\"Lxy_lunar_calender_library\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n",";(function(root,factory){\n if (typeof define==='function'&&define.amd){\n define(factory);\n }else if(typeof module!='undefined'&&module.exports){\n module.exports = factory();\n }else{\n var o = factory();\n for(var i in o){\n root[i] = o[i];\n }\n }\n})(this,function(){\n var Solar = (function(){\n var _fromDate = function(date){\n return _fromYmdHms(date.getFullYear(),date.getMonth()+1,date.getDate(),date.getHours(),date.getMinutes(),date.getSeconds());\n };\n var _fromJulianDay = function(julianDay){\n var d = Math.floor(julianDay + 0.5);\n var f = julianDay + 0.5 - d;\n var c;\n\n if (d >= 2299161) {\n c = Math.floor((d - 1867216.25) / 36524.25);\n d += 1 + c - Math.floor(c / 4);\n }\n d += 1524;\n var year = Math.floor((d - 122.1) / 365.25);\n d -= Math.floor(365.25 * year);\n var month = Math.floor(d / 30.601);\n d -= Math.floor(30.601 * month);\n var day = d;\n if (month > 13) {\n month -= 13;\n year -= 4715;\n } else {\n month -= 1;\n year -= 4716;\n }\n f *= 24;\n var hour = Math.floor(f);\n\n f -= hour;\n f *= 60;\n var minute = Math.floor(f);\n\n f -= minute;\n f *= 60;\n var second = Math.round(f);\n if(second>59){\n second-=60;\n minute++;\n }\n if(minute>59){\n minute-=60;\n hour++;\n }\n if(hour>23){\n hour-=24;\n day+=1;\n }\n return _fromYmdHms(year,month,day,hour,minute,second);\n };\n var _fromYmdHms = function(y,m,d,hour,minute,second){\n var oy = y;\n var om = m;\n var od = d;\n var oh = hour;\n var oi = minute;\n var os = second;\n y *= 1;\n if(isNaN(y)){\n throw new Error('wrong solar year '+oy);\n }\n m *= 1;\n if(isNaN(m)){\n throw new Error('wrong solar month '+om);\n }\n d *= 1;\n if(isNaN(d)){\n throw new Error('wrong solar day '+od);\n }\n hour *= 1;\n if(isNaN(hour)){\n throw new Error('wrong hour '+oh);\n }\n minute *= 1;\n if(isNaN(minute)){\n throw new Error('wrong minute '+oi);\n }\n second *= 1;\n if(isNaN(second)){\n throw new Error('wrong second '+os);\n }\n if(1582===y && 10===m){\n if(d>4&&d<15){\n throw new Error('wrong solar year '+y+' month '+m+' day '+d);\n }\n }\n if(m<1||m>12){\n throw new Error('wrong month ' + m);\n }\n if(d<1||d>31){\n throw new Error('wrong day ' + d);\n }\n if(hour<0||hour>23){\n throw new Error('wrong hour '+hour);\n }\n if(minute<0||minute>59){\n throw new Error('wrong minute '+minute);\n }\n if(second<0||second>59){\n throw new Error('wrong second '+second);\n }\n return {\n _p:{\n year:y,\n month:m,\n day:d,\n hour:hour,\n minute:minute,\n second:second\n },\n subtract:function(solar){\n return SolarUtil.getDaysBetween(solar.getYear(), solar.getMonth(), solar.getDay(), this._p.year, this._p.month, this._p.day);\n },\n subtractMinute:function(solar){\n var days = this.subtract(solar);\n var cm = this._p.hour * 60 + this._p.minute;\n var sm = solar.getHour() * 60 + solar.getMinute();\n var m = cm - sm;\n if (m < 0) {\n m += 1440;\n days--;\n }\n m += days * 1440;\n return m;\n },\n isAfter: function(solar) {\n if (this._p.year > solar.getYear()) {\n return true;\n }\n if (this._p.year < solar.getYear()) {\n return false;\n }\n if (this._p.month > solar.getMonth()) {\n return true;\n }\n if (this._p.month < solar.getMonth()) {\n return false;\n }\n if (this._p.day > solar.getDay()) {\n return true;\n }\n if (this._p.day < solar.getDay()) {\n return false;\n }\n if (this._p.hour > solar.getHour()) {\n return true;\n }\n if (this._p.hour < solar.getHour()) {\n return false;\n }\n if (this._p.minute > solar.getMinute()) {\n return true;\n }\n if (this._p.minute < solar.getMinute()) {\n return false;\n }\n return this._p.second > solar.getSecond();\n },\n isBefore: function(solar) {\n if (this._p.year > solar.getYear()) {\n return false;\n }\n if (this._p.year < solar.getYear()) {\n return true;\n }\n if (this._p.month > solar.getMonth()) {\n return false;\n }\n if (this._p.month < solar.getMonth()) {\n return true;\n }\n if (this._p.day > solar.getDay()) {\n return false;\n }\n if (this._p.day < solar.getDay()) {\n return true;\n }\n if (this._p.hour > solar.getHour()) {\n return false;\n }\n if (this._p.hour < solar.getHour()) {\n return true;\n }\n if (this._p.minute > solar.getMinute()) {\n return false;\n }\n if (this._p.minute < solar.getMinute()) {\n return true;\n }\n return this._p.second < solar.getSecond();\n },\n getYear:function(){\n return this._p.year;\n },\n getMonth:function(){\n return this._p.month;\n },\n getDay:function(){\n return this._p.day;\n },\n getHour:function(){\n return this._p.hour;\n },\n getMinute:function(){\n return this._p.minute;\n },\n getSecond:function(){\n return this._p.second;\n },\n getWeek:function(){\n return (Math.floor(this.getJulianDay() + 0.5) + 7000001) % 7;\n },\n getWeekInChinese:function(){\n return SolarUtil.WEEK[this.getWeek()];\n },\n /**\n * 获取当天的阳历周\n * @param start 星期几作为一周的开始,1234560分别代表星期一至星期天\n */\n getSolarWeek:function(start){\n return SolarWeek.fromYmd(this._p.year, this._p.month, this._p.day, start);\n },\n isLeapYear:function(){\n return SolarUtil.isLeapYear(this._p.year);\n },\n getFestivals:function(){\n var l = [];\n var f = SolarUtil.FESTIVAL[this._p.month+'-'+this._p.day];\n if(f){\n l.push(f);\n }\n var weeks = Math.ceil(this._p.day/7);\n var week = this.getWeek();\n f = SolarUtil.WEEK_FESTIVAL[this._p.month+'-'+weeks+'-'+week];\n if(f){\n l.push(f);\n }\n if (this._p.day + 7 > SolarUtil.getDaysOfMonth(this._p.year, this._p.month)) {\n f = SolarUtil.WEEK_FESTIVAL[this._p.month + '-0-' + week];\n if (f) {\n l.push(f);\n }\n }\n return l;\n },\n getOtherFestivals:function(){\n var l=[];\n var fs=SolarUtil.OTHER_FESTIVAL[this._p.month+'-'+this._p.day];\n if(fs){\n l=l.concat(fs);\n }\n return l;\n },\n getXingzuo:function(){\n return this.getXingZuo();\n },\n getXingZuo:function(){\n var index = 11;\n var y = this._p.month*100+this._p.day;\n if (y >= 321 && y <= 419) {\n index = 0;\n } else if (y >= 420 && y <= 520) {\n index = 1;\n } else if (y >= 521 && y <= 621) {\n index = 2;\n } else if (y >= 622 && y <= 722) {\n index = 3;\n } else if (y >= 723 && y <= 822) {\n index = 4;\n } else if (y >= 823 && y <= 922) {\n index = 5;\n } else if (y >= 923 && y <= 1023) {\n index = 6;\n } else if (y >= 1024 && y <= 1122) {\n index = 7;\n } else if (y >= 1123 && y <= 1221) {\n index = 8;\n } else if (y >= 1222 || y <= 119) {\n index = 9;\n } else if (y <= 218) {\n index = 10;\n }\n return SolarUtil.XINGZUO[index];\n },\n toYmd:function(){\n var m = this._p.month;\n var d = this._p.day;\n var y = this._p.year + '';\n while (y.length < 4) {\n y = '0' + y;\n }\n return [y,(m<10?'0':'')+m,(d<10?'0':'')+d].join('-');\n },\n toYmdHms:function(){\n return this.toYmd()+' '+[(this._p.hour<10?'0':'')+this._p.hour,(this._p.minute<10?'0':'')+this._p.minute,(this._p.second<10?'0':'')+this._p.second].join(':');\n },\n toString:function(){\n return this.toYmd();\n },\n toFullString:function(){\n var s = this.toYmdHms();\n if(this.isLeapYear()){\n s += ' 闰年';\n }\n s += ' 星期'+this.getWeekInChinese();\n var festivals = this.getFestivals();\n for(var i=0,j=festivals.length;i 4 && d < 15) {\n d += 10;\n }\n } else if (2 === m) {\n if (d > 28) {\n if (!SolarUtil.isLeapYear(y)) {\n d = 28;\n }\n }\n }\n return _fromYmdHms(y, m, d, this._p.hour, this._p.minute, this._p.second);\n },\n nextMonth:function(months){\n var om = months;\n months *= 1;\n if (isNaN(months)) {\n throw new Error('wrong months ' + om);\n }\n var month = SolarMonth.fromYm(this._p.year, this._p.month).next(months);\n var y = month.getYear();\n var m = month.getMonth();\n var d = this._p.day;\n if (1582 === y && 10 === m) {\n if (d > 4 && d < 15) {\n d += 10;\n }\n } else {\n var maxDay = SolarUtil.getDaysOfMonth(y, m);\n if (d > maxDay) {\n d = maxDay;\n }\n }\n return _fromYmdHms(y, m, d, this._p.hour, this._p.minute, this._p.second);\n },\n nextDay:function(days){\n var od = days;\n days *= 1;\n if (isNaN(days)) {\n throw new Error('wrong days ' + od);\n }\n var y = this._p.year;\n var m = this._p.month;\n var d = this._p.day;\n if (1582 === y && 10 === m) {\n if (d > 4) {\n d -= 10\n }\n }\n if (days > 0) {\n d += days;\n var daysInMonth = SolarUtil.getDaysOfMonth(y, m);\n while (d > daysInMonth) {\n d -= daysInMonth;\n m++;\n if (m > 12) {\n m = 1;\n y++;\n }\n daysInMonth = SolarUtil.getDaysOfMonth(y, m);\n }\n } else if (days < 0) {\n while (d + days <= 0) {\n m--;\n if (m < 1) {\n m = 12;\n y--;\n }\n d += SolarUtil.getDaysOfMonth(y, m);\n }\n d += days;\n }\n if (1582 === y && 10 === m) {\n if (d > 4) {\n d += 10;\n }\n }\n return _fromYmdHms(y, m, d, this._p.hour, this._p.minute, this._p.second);\n },\n nextWorkday:function(days){\n var od = days;\n days *= 1;\n if (isNaN(days)) {\n throw new Error('wrong days ' + od);\n }\n var solar = _fromYmdHms(this._p.year, this._p.month, this._p.day, this._p.hour, this._p.minute, this._p.second);\n if (days !== 0) {\n var rest = Math.abs(days);\n var add = days < 1 ? -1 : 1;\n while (rest > 0) {\n solar = solar.next(add);\n var work = true;\n var holiday = HolidayUtil.getHoliday(solar.getYear(), solar.getMonth(), solar.getDay());\n if (!holiday) {\n var week = solar.getWeek();\n if (0 === week || 6 === week) {\n work = false;\n }\n } else {\n work = holiday.isWork();\n }\n if (work) {\n rest -= 1;\n }\n }\n }\n return solar;\n },\n next:function(days, onlyWorkday){\n if (onlyWorkday) {\n return this.nextWorkday(days);\n }\n return this.nextDay(days);\n },\n nextHour:function(hours){\n var oh = hours;\n hours *= 1;\n if (isNaN(hours)) {\n throw new Error('wrong hours ' + oh);\n }\n var h = this._p.hour + hours;\n var n = h < 0 ? -1 : 1;\n var hour = Math.abs(h);\n var days = Math.floor(hour / 24) * n;\n hour = (hour % 24) * n;\n if (hour < 0) {\n hour += 24;\n days--;\n }\n var solar = this.next(days);\n return _fromYmdHms(solar.getYear(), solar.getMonth(), solar.getDay(), hour, solar.getMinute(), solar.getSecond());\n },\n getLunar:function(){\n return Lunar.fromSolar(this);\n },\n getJulianDay:function(){\n var y = this._p.year;\n var m = this._p.month;\n var d = this._p.day + ((this._p.second / 60 + this._p.minute) / 60 + this._p.hour) / 24;\n var n = 0;\n var g = false;\n if (y * 372 + m * 31 + Math.floor(d) >= 588829) {\n g = true;\n }\n if (m <= 2) {\n m += 12;\n y--;\n }\n if (g) {\n n = Math.floor(y / 100);\n n = 2 - n + Math.floor(n / 4);\n }\n return Math.floor(365.25 * (y + 4716)) + Math.floor(30.6001 * (m + 1)) + d + n - 1524.5;\n },\n getSalaryRate:function(){\n // 元旦节\n if (this._p.month === 1 && this._p.day === 1) {\n return 3;\n }\n // 劳动节\n if (this._p.month === 5 && this._p.day === 1) {\n return 3;\n }\n // 国庆\n if (this._p.month === 10 && this._p.day >= 1 && this._p.day <= 3) {\n return 3;\n }\n var lunar = this.getLunar();\n // 春节\n if (lunar.getMonth() === 1 && lunar.getDay() >= 1 && lunar.getDay() <= 3) {\n return 3;\n }\n // 端午\n if (lunar.getMonth() === 5 && lunar.getDay() === 5) {\n return 3;\n }\n // 中秋\n if (lunar.getMonth() === 8 && lunar.getDay() === 15) {\n return 3;\n }\n // 清明\n if ('清明' === lunar.getJieQi()) {\n return 3;\n }\n var holiday = HolidayUtil.getHoliday(this._p.year, this._p.month, this._p.day);\n if (holiday) {\n // 法定假日非上班\n if (!holiday.isWork()) {\n return 2;\n }\n } else {\n // 周末\n var week = this.getWeek();\n if (week === 6 || week === 0) {\n return 2;\n }\n }\n // 工作日\n return 1;\n }\n };\n };\n var _fromBaZi=function(yearGanZhi,monthGanZhi,dayGanZhi,timeGanZhi,sect,baseYear){\n sect *= 1;\n if(isNaN(sect)){\n sect = 2;\n }\n if (1 !== sect) {\n sect = 2;\n }\n baseYear *= 1;\n if(isNaN(baseYear)){\n baseYear = 1900;\n }\n var l = [];\n // 月地支距寅月的偏移值\n var m = LunarUtil.index(monthGanZhi.substring(1), LunarUtil.ZHI, -1) - 2;\n if (m < 0) {\n m += 12;\n }\n // 月天干要一致\n if (((LunarUtil.index(yearGanZhi.substring(0, 1), LunarUtil.GAN, -1) + 1) * 2 + m) % 10 !== LunarUtil.index(monthGanZhi.substring(0,1), LunarUtil.GAN, -1)) {\n return l;\n }\n // 1年的立春是辛酉,序号57\n var y = LunarUtil.getJiaZiIndex(yearGanZhi) - 57;\n if (y < 0) {\n y += 60;\n }\n y++;\n // 节令偏移值\n m *= 2;\n // 时辰地支转时刻,子时按零点算\n var h = LunarUtil.index(timeGanZhi.substring(1), LunarUtil.ZHI, -1) * 2;\n var hours = [h];\n if (0 === h && 2 === sect) {\n hours = [0, 23];\n }\n var startYear = baseYear - 1;\n\n // 结束年\n var endYear = new Date().getFullYear();\n\n while (y <= endYear) {\n if (y >= startYear) {\n // 立春为寅月的开始\n var jieQiLunar = Lunar.fromYmd(y, 1, 1);\n var jieQiList = jieQiLunar.getJieQiList();\n var jieQiTable = jieQiLunar.getJieQiTable();\n // 节令推移,年干支和月干支就都匹配上了\n var solarTime = jieQiTable[jieQiList[4 + m]];\n if (solarTime.getYear() >= baseYear) {\n // 日干支和节令干支的偏移值\n var d = LunarUtil.getJiaZiIndex(dayGanZhi) - LunarUtil.getJiaZiIndex(solarTime.getLunar().getDayInGanZhiExact2());\n if (d < 0) {\n d += 60;\n }\n if (d > 0) {\n // 从节令推移天数\n solarTime = solarTime.next(d);\n }\n for (var i = 0, j = hours.length; i < j; i++) {\n var hour = hours[i];\n var mi = 0;\n var s = 0;\n if (d === 0 && hour === solarTime.getHour()) {\n // 如果正好是节令当天,且小时和节令的小时数相等的极端情况,把分钟和秒钟带上\n mi = solarTime.getMinute();\n s = solarTime.getSecond();\n }\n // 验证一下\n var solar = Solar.fromYmdHms(solarTime.getYear(), solarTime.getMonth(), solarTime.getDay(), hour, mi, s);\n var lunar = solar.getLunar();\n var dgz = (2 === sect) ? lunar.getDayInGanZhiExact2() : lunar.getDayInGanZhiExact();\n if (lunar.getYearInGanZhiExact() === yearGanZhi && lunar.getMonthInGanZhiExact() === monthGanZhi && dgz === dayGanZhi && lunar.getTimeInGanZhi() === timeGanZhi) {\n l.push(solar);\n }\n }\n }\n }\n y += 60;\n }\n return l;\n };\n return {\n J2000:2451545,\n fromYmd:function(y,m,d){return _fromYmdHms(y,m,d,0,0,0);},\n fromYmdHms:function(y,m,d,hour,minute,second){return _fromYmdHms(y,m,d,hour,minute,second);},\n fromDate:function(date){return _fromDate(date);},\n fromJulianDay:function(julianDay){return _fromJulianDay(julianDay);},\n fromBaZi:function(yearGanZhi,monthGanZhi,dayGanZhi,timeGanZhi,sect,baseYear){return _fromBaZi(yearGanZhi,monthGanZhi,dayGanZhi,timeGanZhi,sect,baseYear);}\n };\n })();\n var Lunar = (function(){\n var _computeJieQi = function(o,ly) {\n o['jieQiList'] = [];\n o['jieQi'] = {};\n var julianDays = ly.getJieQiJulianDays();\n for (var i = 0, j = LunarUtil.JIE_QI_IN_USE.length; i < j; i++) {\n var key = LunarUtil.JIE_QI_IN_USE[i];\n o['jieQiList'].push(key);\n o['jieQi'][key] = Solar.fromJulianDay(julianDays[i]);\n }\n };\n var _computeYear = function(o,solar,year){\n //以正月初一开始\n var offset = year - 4;\n var yearGanIndex = offset % 10;\n var yearZhiIndex = offset % 12;\n\n if (yearGanIndex < 0) {\n yearGanIndex += 10;\n }\n\n if (yearZhiIndex < 0) {\n yearZhiIndex += 12;\n }\n\n //以立春作为新一年的开始的干支纪年\n var g = yearGanIndex;\n var z = yearZhiIndex;\n\n //精确的干支纪年,以立春交接时刻为准\n var gExact = yearGanIndex;\n var zExact = yearZhiIndex;\n\n var solarYear = solar.getYear();\n var solarYmd = solar.toYmd();\n var solarYmdHms = solar.toYmdHms();\n\n //获取立春的阳历时刻\n var liChun = o['jieQi'][I18n.getMessage('jq.liChun')];\n if (liChun.getYear() !== solarYear) {\n liChun = o['jieQi']['LI_CHUN'];\n }\n var liChunYmd = liChun.toYmd();\n var liChunYmdHms = liChun.toYmdHms();\n\n //阳历和阴历年份相同代表正月初一及以后\n if(year===solarYear){\n //立春日期判断\n if(solarYmd=liChunYmd) {\n g++;\n z++;\n }\n if(solarYmdHms>=liChunYmdHms) {\n gExact++;\n zExact++;\n }\n }\n\n o['yearGanIndex'] = yearGanIndex;\n o['yearZhiIndex'] = yearZhiIndex;\n o['yearGanIndexByLiChun'] = (g<0?g+10:g)%10;\n o['yearZhiIndexByLiChun'] = (z<0?z+12:z)%12;\n o['yearGanIndexExact'] = (gExact<0?gExact+10:gExact)%10;\n o['yearZhiIndexExact'] = (zExact<0?zExact+12:zExact)%12;\n };\n var _computeMonth = function(o,solar){\n var start = null;\n var i;\n var end;\n var size = LunarUtil.JIE_QI_IN_USE.length;\n\n //序号:大雪以前-3,大雪到小寒之间-2,小寒到立春之间-1,立春之后0\n var index = -3;\n for(i=0;i=symd&&ymd=stime&&time='23:00'&&hm<='23:59'){\n dayGanExact++;\n if(dayGanExact>=10){\n dayGanExact -= 10;\n }\n dayZhiExact++;\n if(dayZhiExact>=12){\n dayZhiExact -= 12;\n }\n }\n o['dayGanIndexExact'] = dayGanExact;\n o['dayZhiIndexExact'] = dayZhiExact;\n };\n var _computeTime = function(o,hour,minute){\n var timeZhiIndex = LunarUtil.getTimeZhiIndex((hour<10?'0':'')+hour+':'+(minute<10?'0':'')+minute);\n o['timeZhiIndex'] = timeZhiIndex;\n o['timeGanIndex'] = (o['dayGanIndexExact']%5*2+timeZhiIndex)%10;\n };\n var _computeWeek = function(o,solar){\n o['weekIndex'] = solar.getWeek();\n };\n var _compute = function(year,hour,minute,second,solar,ly){\n var o = {};\n _computeJieQi(o, ly);\n _computeYear(o, solar, year);\n _computeMonth(o, solar);\n _computeDay(o, solar, hour, minute);\n _computeTime(o, hour, minute);\n _computeWeek(o, solar);\n return o;\n };\n var _fromSolar = function(solar){\n var lunarYear = 0;\n var lunarMonth = 0;\n var lunarDay = 0;\n var ly = LunarYear.fromYear(solar.getYear());\n var lms = ly.getMonths();\n for (var i = 0, j = lms.length; i < j; i++) {\n var m = lms[i];\n var days = solar.subtract(Solar.fromJulianDay(m.getFirstJulianDay()));\n if (days < m.getDayCount()) {\n lunarYear = m.getYear();\n lunarMonth = m.getMonth();\n lunarDay = days + 1;\n break;\n }\n }\n return _new(lunarYear, lunarMonth, lunarDay, solar.getHour(), solar.getMinute(), solar.getSecond(), solar, ly);\n };\n var _fromDate = function(date){\n return _fromSolar(Solar.fromDate(date));\n };\n var _fromYmdHms = function(lunarYear,lunarMonth,lunarDay,hour,minute,second) {\n var oy = lunarYear;\n var om = lunarMonth;\n var od = lunarDay;\n var oh = hour;\n var oi = minute;\n var os = second;\n lunarYear *= 1;\n if(isNaN(lunarYear)){\n throw new Error('wrong lunar year '+oy);\n }\n lunarMonth *= 1;\n if(isNaN(lunarMonth)){\n throw new Error('wrong lunar month '+om);\n }\n lunarDay *= 1;\n if(isNaN(lunarDay)){\n throw new Error('wrong lunar day '+od);\n }\n hour *= 1;\n if(isNaN(hour)){\n throw new Error('wrong hour '+oh);\n }\n minute *= 1;\n if(isNaN(minute)){\n throw new Error('wrong minute '+oi);\n }\n second *= 1;\n if(isNaN(second)){\n throw new Error('wrong second '+os);\n }\n if(hour<0||hour>23){\n throw new Error('wrong hour '+hour);\n }\n if(minute<0||minute>59){\n throw new Error('wrong minute '+minute);\n }\n if(second<0||second>59){\n throw new Error('wrong second '+second);\n }\n var y = LunarYear.fromYear(lunarYear);\n var m = y.getMonth(lunarMonth);\n if (null == m) {\n throw new Error('wrong lunar year '+lunarYear+' month '+lunarMonth);\n }\n if (lunarDay < 1) {\n throw new Error('lunar day must bigger than 0');\n }\n var days = m.getDayCount();\n if (lunarDay > days) {\n throw new Error('only '+days+' days in lunar year '+lunarYear+' month '+lunarMonth);\n }\n var noon = Solar.fromJulianDay(m.getFirstJulianDay() + lunarDay - 1);\n var solar = Solar.fromYmdHms(noon.getYear(), noon.getMonth(), noon.getDay(), hour, minute, second);\n if (noon.getYear() !== lunarYear) {\n y = LunarYear.fromYear(noon.getYear());\n }\n return _new(lunarYear, lunarMonth, lunarDay, hour, minute, second, solar, y);\n };\n var _new = function(year,month,day,hour,minute,second,solar,ly){\n var gz = _compute(year,hour,minute,second,solar,ly);\n return {\n _p:{\n lang: I18n.getLanguage(),\n year:year,\n month:month,\n day:day,\n hour:hour,\n minute:minute,\n second:second,\n timeGanIndex:gz.timeGanIndex,\n timeZhiIndex:gz.timeZhiIndex,\n dayGanIndex:gz.dayGanIndex,\n dayZhiIndex:gz.dayZhiIndex,\n dayGanIndexExact:gz.dayGanIndexExact,\n dayZhiIndexExact:gz.dayZhiIndexExact,\n dayGanIndexExact2:gz.dayGanIndexExact2,\n dayZhiIndexExact2:gz.dayZhiIndexExact2,\n monthGanIndex:gz.monthGanIndex,\n monthZhiIndex:gz.monthZhiIndex,\n monthGanIndexExact:gz.monthGanIndexExact,\n monthZhiIndexExact:gz.monthZhiIndexExact,\n yearGanIndex:gz.yearGanIndex,\n yearZhiIndex:gz.yearZhiIndex,\n yearGanIndexByLiChun:gz.yearGanIndexByLiChun,\n yearZhiIndexByLiChun:gz.yearZhiIndexByLiChun,\n yearGanIndexExact:gz.yearGanIndexExact,\n yearZhiIndexExact:gz.yearZhiIndexExact,\n weekIndex:gz.weekIndex,\n jieQi:gz.jieQi,\n jieQiList:gz.jieQiList,\n solar:solar,\n eightChar:null\n },\n getYear:function(){return this._p.year;},\n getMonth:function(){return this._p.month;},\n getDay:function(){return this._p.day;},\n getHour:function(){return this._p.hour;},\n getMinute:function(){return this._p.minute;},\n getSecond:function(){return this._p.second;},\n getTimeGanIndex:function(){return this._p.timeGanIndex;},\n getTimeZhiIndex:function(){return this._p.timeZhiIndex;},\n getDayGanIndex:function(){return this._p.dayGanIndex;},\n getDayGanIndexExact:function(){return this._p.dayGanIndexExact;},\n getDayGanIndexExact2:function(){return this._p.dayGanIndexExact2;},\n getDayZhiIndex:function(){return this._p.dayZhiIndex;},\n getDayZhiIndexExact:function(){return this._p.dayZhiIndexExact;},\n getDayZhiIndexExact2:function(){return this._p.dayZhiIndexExact2;},\n getMonthGanIndex:function(){return this._p.monthGanIndex;},\n getMonthGanIndexExact:function(){return this._p.monthGanIndexExact;},\n getMonthZhiIndex:function(){return this._p.monthZhiIndex;},\n getMonthZhiIndexExact:function(){return this._p.monthZhiIndexExact;},\n getYearGanIndex:function(){return this._p.yearGanIndex;},\n getYearGanIndexByLiChun:function(){return this._p.yearGanIndexByLiChun;},\n getYearGanIndexExact:function(){return this._p.yearGanIndexExact;},\n getYearZhiIndex:function(){return this._p.yearZhiIndex;},\n getYearZhiIndexByLiChun:function(){return this._p.yearZhiIndexByLiChun;},\n getYearZhiIndexExact:function(){return this._p.yearZhiIndexExact;},\n getGan:function(){return this.getYearGan();},\n getZhi:function(){return this.getYearZhi();},\n getYearGan:function(){return LunarUtil.GAN[this._p.yearGanIndex+1];},\n getYearGanByLiChun:function(){return LunarUtil.GAN[this._p.yearGanIndexByLiChun+1];},\n getYearGanExact:function(){return LunarUtil.GAN[this._p.yearGanIndexExact+1];},\n getYearZhi:function(){return LunarUtil.ZHI[this._p.yearZhiIndex+1];},\n getYearZhiByLiChun:function(){return LunarUtil.ZHI[this._p.yearZhiIndexByLiChun+1];},\n getYearZhiExact:function(){return LunarUtil.ZHI[this._p.yearZhiIndexExact+1];},\n getYearInGanZhi:function(){return this.getYearGan()+this.getYearZhi();},\n getYearInGanZhiByLiChun:function(){return this.getYearGanByLiChun()+this.getYearZhiByLiChun();},\n getYearInGanZhiExact:function(){return this.getYearGanExact()+this.getYearZhiExact();},\n getMonthGan:function(){return LunarUtil.GAN[this._p.monthGanIndex+1];},\n getMonthGanExact:function(){return LunarUtil.GAN[this._p.monthGanIndexExact+1];},\n getMonthZhi:function(){return LunarUtil.ZHI[this._p.monthZhiIndex+1];},\n getMonthZhiExact:function(){return LunarUtil.ZHI[this._p.monthZhiIndexExact+1];},\n getMonthInGanZhi:function(){return this.getMonthGan()+this.getMonthZhi();},\n getMonthInGanZhiExact:function(){return this.getMonthGanExact()+this.getMonthZhiExact();},\n getDayGan:function(){return LunarUtil.GAN[this._p.dayGanIndex+1];},\n getDayGanExact:function(){return LunarUtil.GAN[this._p.dayGanIndexExact+1];},\n getDayGanExact2:function(){return LunarUtil.GAN[this._p.dayGanIndexExact2+1];},\n getDayZhi:function(){return LunarUtil.ZHI[this._p.dayZhiIndex+1];},\n getDayZhiExact:function(){return LunarUtil.ZHI[this._p.dayZhiIndexExact+1];},\n getDayZhiExact2:function(){return LunarUtil.ZHI[this._p.dayZhiIndexExact2+1];},\n getDayInGanZhi:function(){return this.getDayGan()+this.getDayZhi();},\n getDayInGanZhiExact:function(){return this.getDayGanExact()+this.getDayZhiExact();},\n getDayInGanZhiExact2:function(){return this.getDayGanExact2()+this.getDayZhiExact2();},\n getTimeGan:function(){return LunarUtil.GAN[this._p.timeGanIndex+1];},\n getTimeZhi:function(){return LunarUtil.ZHI[this._p.timeZhiIndex+1];},\n getTimeInGanZhi:function(){return this.getTimeGan()+this.getTimeZhi();},\n getShengxiao:function(){return this.getYearShengXiao();},\n getYearShengXiao:function(){return LunarUtil.SHENGXIAO[this._p.yearZhiIndex+1];},\n getYearShengXiaoByLiChun:function(){return LunarUtil.SHENGXIAO[this._p.yearZhiIndexByLiChun+1];},\n getYearShengXiaoExact:function(){return LunarUtil.SHENGXIAO[this._p.yearZhiIndexExact+1];},\n getMonthShengXiao:function(){return LunarUtil.SHENGXIAO[this._p.monthZhiIndex+1];},\n getMonthShengXiaoExact:function(){return LunarUtil.SHENGXIAO[this._p.monthZhiIndexExact+1];},\n getDayShengXiao:function(){return LunarUtil.SHENGXIAO[this._p.dayZhiIndex+1];},\n getTimeShengXiao:function(){return LunarUtil.SHENGXIAO[this._p.timeZhiIndex+1];},\n getYearInChinese:function(){\n var y = this._p.year+'';\n var s = '';\n var zero = '0'.charCodeAt(0);\n for(var i=0,j=y.length;i -1) {\n p = I18n.getMessage('bg.zhen');\n } else if ([I18n.getMessage('jz.bingZi'), I18n.getMessage('jz.dingChou'), I18n.getMessage('jz.wuYin'), I18n.getMessage('jz.jiMao'), I18n.getMessage('jz.gengChen'), I18n.getMessage('jz.xinSi')].join(',').indexOf(dayInGanZhi) > -1) {\n p = I18n.getMessage('bg.li');\n } else if ([I18n.getMessage('jz.wuZi'), I18n.getMessage('jz.jiChou'), I18n.getMessage('jz.gengYin'), I18n.getMessage('jz.xinMao'), I18n.getMessage('jz.renChen'), I18n.getMessage('jz.guiSi')].join(',').indexOf(dayInGanZhi) > -1) {\n p = I18n.getMessage('ps.center');\n } else if ([I18n.getMessage('jz.gengZi'), I18n.getMessage('jz.xinChou'), I18n.getMessage('jz.renYin'), I18n.getMessage('jz.guiMao'), I18n.getMessage('jz.jiaChen'), I18n.getMessage('jz.yiSi')].join(',').indexOf(dayInGanZhi) > -1) {\n p = I18n.getMessage('bg.dui');\n } else if ([I18n.getMessage('jz.renZi'), I18n.getMessage('jz.guiChou'), I18n.getMessage('jz.jiaYin'), I18n.getMessage('jz.yiMao'), I18n.getMessage('jz.bingChen'), I18n.getMessage('jz.dingSi')].join(',').indexOf(dayInGanZhi) > -1) {\n p = I18n.getMessage('bg.kan');\n } else {\n p = LunarUtil.POSITION_TAI_SUI_YEAR[yearZhiIndex];\n }\n return p;\n },\n getDayPositionTaiSuiDesc:function(sect){\n return LunarUtil.POSITION_DESC[this.getDayPositionTaiSui(sect)];\n },\n getMonthPositionTaiSui:function(sect){\n var monthZhiIndex;\n var monthGanIndex;\n switch (sect) {\n case 3:\n monthZhiIndex = this._p.monthZhiIndexExact;\n monthGanIndex = this._p.monthGanIndexExact;\n break;\n default:\n monthZhiIndex = this._p.monthZhiIndex;\n monthGanIndex = this._p.monthGanIndex;\n }\n var m = monthZhiIndex - LunarUtil.BASE_MONTH_ZHI_INDEX;\n if (m < 0) {\n m += 12;\n }\n return [I18n.getMessage('bg.gen'), LunarUtil.POSITION_GAN[monthGanIndex], I18n.getMessage('bg.kun'), I18n.getMessage('bg.xun')][m % 4]\n },\n getMonthPositionTaiSuiDesc:function(sect){\n return LunarUtil.POSITION_DESC[this.getMonthPositionTaiSui(sect)];\n },\n getYearPositionTaiSui:function(sect){\n var yearZhiIndex;\n switch (sect) {\n case 1:\n yearZhiIndex = this._p.yearZhiIndex;\n break;\n case 3:\n yearZhiIndex = this._p.yearZhiIndexExact;\n break;\n default:\n yearZhiIndex = this._p.yearZhiIndexByLiChun;\n }\n return LunarUtil.POSITION_TAI_SUI_YEAR[yearZhiIndex];\n },\n getYearPositionTaiSuiDesc:function(sect){\n return LunarUtil.POSITION_DESC[this.getYearPositionTaiSui(sect)];\n },\n _checkLang:function(){\n var lang = I18n.getLanguage();\n if (this._p.lang !== lang) {\n for (var i = 0, j = LunarUtil.JIE_QI_IN_USE.length; i < j; i++) {\n var newKey = LunarUtil.JIE_QI_IN_USE[i];\n var oldKey = this._p.jieQiList[i];\n var value = this._p.jieQi[oldKey];\n this._p.jieQiList[i] = newKey;\n this._p.jieQi[newKey] = value;\n }\n this._p.lang = lang;\n }\n },\n _getJieQiSolar:function(name){\n this._checkLang();\n return this._p.jieQi[name];\n },\n getChong:function(){\n return this.getDayChong();\n },\n getChongGan:function(){\n return this.getDayChongGan();\n },\n getChongGanTie:function(){\n return this.getDayChongGanTie();\n },\n getChongShengXiao:function(){\n return this.getDayChongShengXiao();\n },\n getChongDesc:function(){\n return this.getDayChongDesc();\n },\n getSha:function(){\n return this.getDaySha();\n },\n getDayChong:function(){\n return LunarUtil.CHONG[this._p.dayZhiIndex];\n },\n getDayChongGan:function(){\n return LunarUtil.CHONG_GAN[this._p.dayGanIndex];\n },\n getDayChongGanTie:function(){\n return LunarUtil.CHONG_GAN_TIE[this._p.dayGanIndex];\n },\n getDayChongShengXiao:function(){\n var chong = this.getChong();\n for(var i=0,j=LunarUtil.ZHI.length;i= 29 && this._p.year !== this.next(1).getYear()) {\n l.push(I18n.getMessage('jr.chuXi'));\n }\n return l;\n },\n getOtherFestivals:function(){\n var l=[];\n var fs=LunarUtil.OTHER_FESTIVAL[this._p.month+'-'+this._p.day];\n if(fs){\n l=l.concat(fs);\n }\n var solarYmd = this._p.solar.toYmd();\n if(this._p.solar.toYmd() === this._getJieQiSolar(I18n.getMessage('jq.qingMing')).next(-1).toYmd()){\n l.push('寒食节');\n }\n\n var jq = this._getJieQiSolar(I18n.getMessage('jq.liChun'));\n var offset = 4 - jq.getLunar().getDayGanIndex();\n if (offset < 0) {\n offset += 10;\n }\n if (solarYmd === jq.next(offset + 40).toYmd()) {\n l.push('春社');\n }\n\n jq = this._getJieQiSolar(I18n.getMessage('jq.liQiu'));\n offset = 4 - jq.getLunar().getDayGanIndex();\n if (offset < 0) {\n offset += 10;\n }\n if (solarYmd === jq.next(offset + 40).toYmd()) {\n l.push('秋社');\n }\n return l;\n },\n getBaZi:function(){\n var bz = this.getEightChar();\n var l = [];\n l.push(bz.getYear());\n l.push(bz.getMonth());\n l.push(bz.getDay());\n l.push(bz.getTime());\n return l;\n },\n getBaZiWuXing:function(){\n var bz = this.getEightChar();\n var l = [];\n l.push(bz.getYearWuXing());\n l.push(bz.getMonthWuXing());\n l.push(bz.getDayWuXing());\n l.push(bz.getTimeWuXing());\n return l;\n },\n getBaZiNaYin:function(){\n var bz = this.getEightChar();\n var l = [];\n l.push(bz.getYearNaYin());\n l.push(bz.getMonthNaYin());\n l.push(bz.getDayNaYin());\n l.push(bz.getTimeNaYin());\n return l;\n },\n getBaZiShiShenGan:function(){\n var bz = this.getEightChar();\n var l = [];\n l.push(bz.getYearShiShenGan());\n l.push(bz.getMonthShiShenGan());\n l.push(bz.getDayShiShenGan());\n l.push(bz.getTimeShiShenGan());\n return l;\n },\n getBaZiShiShenZhi:function(){\n var bz = this.getEightChar();\n var l = [];\n l.push(bz.getYearShiShenZhi()[0]);\n l.push(bz.getMonthShiShenZhi()[0]);\n l.push(bz.getDayShiShenZhi()[0]);\n l.push(bz.getTimeShiShenZhi()[0]);\n return l;\n },\n getBaZiShiShenYearZhi:function(){\n return this.getEightChar().getYearShiShenZhi();\n },\n getBaZiShiShenMonthZhi:function(){\n return this.getEightChar().getMonthShiShenZhi();\n },\n getBaZiShiShenDayZhi:function(){\n return this.getEightChar().getDayShiShenZhi();\n },\n getBaZiShiShenTimeZhi:function(){\n return this.getEightChar().getTimeShiShenZhi();\n },\n getZhiXing:function(){\n var offset = this._p.dayZhiIndex-this._p.monthZhiIndex;\n if(offset<0){\n offset += 12;\n }\n return LunarUtil.ZHI_XING[offset+1];\n },\n getDayTianShen:function(){\n var monthZhi = this.getMonthZhi();\n var offset = LunarUtil.ZHI_TIAN_SHEN_OFFSET[monthZhi];\n return LunarUtil.TIAN_SHEN[(this._p.dayZhiIndex+offset)%12+1];\n },\n getTimeTianShen:function(){\n var dayZhi = this.getDayZhiExact();\n var offset = LunarUtil.ZHI_TIAN_SHEN_OFFSET[dayZhi];\n return LunarUtil.TIAN_SHEN[(this._p.timeZhiIndex+offset)%12+1];\n },\n getDayTianShenType:function(){\n return LunarUtil.TIAN_SHEN_TYPE[this.getDayTianShen()];\n },\n getTimeTianShenType:function(){\n return LunarUtil.TIAN_SHEN_TYPE[this.getTimeTianShen()];\n },\n getDayTianShenLuck:function(){\n return LunarUtil.TIAN_SHEN_TYPE_LUCK[this.getDayTianShenType()];\n },\n getTimeTianShenLuck:function(){\n return LunarUtil.TIAN_SHEN_TYPE_LUCK[this.getTimeTianShenType()];\n },\n getDayPositionTai:function(){\n return LunarUtil.POSITION_TAI_DAY[LunarUtil.getJiaZiIndex(this.getDayInGanZhi())];\n },\n getMonthPositionTai:function(){\n var m = this._p.month;\n if(m<0){\n return '';\n }\n return LunarUtil.POSITION_TAI_MONTH[m-1];\n },\n getDayYi:function(sect){\n sect *= 1;\n if(isNaN(sect)){\n sect = 2;\n }\n return LunarUtil.getDayYi(2 === sect ? this.getMonthInGanZhiExact() : this.getMonthInGanZhi(), this.getDayInGanZhi());\n },\n getDayJi:function(sect){\n sect *= 1;\n if(isNaN(sect)){\n sect = 2;\n }\n return LunarUtil.getDayJi(2 === sect ? this.getMonthInGanZhiExact() : this.getMonthInGanZhi(), this.getDayInGanZhi());\n },\n getDayJiShen:function(){\n return LunarUtil.getDayJiShen(this.getMonth(),this.getDayInGanZhi());\n },\n getDayXiongSha:function(){\n return LunarUtil.getDayXiongSha(this.getMonth(),this.getDayInGanZhi());\n },\n getTimeYi:function(){\n return LunarUtil.getTimeYi(this.getDayInGanZhiExact(),this.getTimeInGanZhi());\n },\n getTimeJi:function(){\n return LunarUtil.getTimeJi(this.getDayInGanZhiExact(),this.getTimeInGanZhi());\n },\n getYueXiang:function(){\n return LunarUtil.YUE_XIANG[this._p.day];\n },\n _getYearNineStar:function(yearInGanZhi){\n var indexExact = LunarUtil.getJiaZiIndex(yearInGanZhi) + 1;\n var index = LunarUtil.getJiaZiIndex(this.getYearInGanZhi()) + 1;\n var yearOffset = indexExact - index;\n if (yearOffset > 1) {\n yearOffset -= 60;\n } else if (yearOffset < -1) {\n yearOffset += 60;\n }\n var yuan = Math.floor((this._p.year + yearOffset + 2696) / 60) % 3;\n var offset = (62 + yuan * 3 - indexExact) % 9;\n if(0 === offset){\n offset = 9;\n }\n return NineStar.fromIndex(offset - 1);\n },\n getYearNineStar:function(sect){\n var yearInGanZhi;\n switch (sect) {\n case 1:\n yearInGanZhi = this.getYearInGanZhi();\n break;\n case 3:\n yearInGanZhi = this.getYearInGanZhiExact();\n break;\n default:\n yearInGanZhi = this.getYearInGanZhiByLiChun();\n }\n return this._getYearNineStar(yearInGanZhi);\n },\n getMonthNineStar:function(sect){\n var yearZhiIndex;\n var monthZhiIndex;\n switch (sect) {\n case 1:\n yearZhiIndex = this._p.yearZhiIndex;\n monthZhiIndex = this._p.monthZhiIndex;\n break;\n case 3:\n yearZhiIndex = this._p.yearZhiIndexExact;\n monthZhiIndex = this._p.monthZhiIndexExact;\n break;\n default:\n yearZhiIndex = this._p.yearZhiIndexByLiChun;\n monthZhiIndex = this._p.monthZhiIndex;\n }\n var n = 27 - (yearZhiIndex % 3 * 3);\n if (monthZhiIndex < LunarUtil.BASE_MONTH_ZHI_INDEX) {\n n -= 3;\n }\n return NineStar.fromIndex((n - monthZhiIndex) % 9);\n },\n getDayNineStar:function(){\n var solarYmd = this._p.solar.toYmd();\n var dongZhi = this._getJieQiSolar(I18n.getMessage('jq.dongZhi'));\n var dongZhi2 = this._getJieQiSolar('DONG_ZHI');\n var xiaZhi = this._getJieQiSolar(I18n.getMessage('jq.xiaZhi'));\n var dongZhiIndex = LunarUtil.getJiaZiIndex(dongZhi.getLunar().getDayInGanZhi());\n var dongZhiIndex2 = LunarUtil.getJiaZiIndex(dongZhi2.getLunar().getDayInGanZhi());\n var xiaZhiIndex = LunarUtil.getJiaZiIndex(xiaZhi.getLunar().getDayInGanZhi());\n var solarShunBai;\n var solarShunBai2;\n var solarNiZi;\n if (dongZhiIndex>29) {\n solarShunBai = dongZhi.next(60 - dongZhiIndex);\n } else {\n solarShunBai = dongZhi.next(-dongZhiIndex);\n }\n var solarShunBaiYmd = solarShunBai.toYmd();\n if (dongZhiIndex2>29) {\n solarShunBai2 = dongZhi2.next(60 - dongZhiIndex2);\n } else {\n solarShunBai2 = dongZhi2.next(-dongZhiIndex2);\n }\n var solarShunBaiYmd2 = solarShunBai2.toYmd();\n if (xiaZhiIndex>29) {\n solarNiZi = xiaZhi.next(60 - xiaZhiIndex);\n } else {\n solarNiZi = xiaZhi.next(-xiaZhiIndex);\n }\n var solarNiZiYmd = solarNiZi.toYmd();\n var offset = 0;\n if (solarYmd >= solarShunBaiYmd && solarYmd < solarNiZiYmd) {\n offset = this._p.solar.subtract(solarShunBai) % 9;\n } else if (solarYmd >= solarNiZiYmd && solarYmd < solarShunBaiYmd2){\n offset = 8 - (this._p.solar.subtract(solarNiZi) % 9);\n } else if (solarYmd >= solarShunBaiYmd2) {\n offset = this._p.solar.subtract(solarShunBai2) % 9;\n } else if (solarYmd < solarShunBaiYmd) {\n offset = (8 + solarShunBai.subtract(this._p.solar)) % 9;\n }\n return NineStar.fromIndex(offset);\n },\n getTimeNineStar:function(){\n var solarYmd = this._p.solar.toYmd();\n var asc = false;\n if((solarYmd >= this._getJieQiSolar(I18n.getMessage('jq.dongZhi')).toYmd() && solarYmd < this._getJieQiSolar(I18n.getMessage('jq.xiaZhi')).toYmd()) || solarYmd >= this._getJieQiSolar('DONG_ZHI').toYmd()){\n asc = true;\n }\n var offset = asc ? [0, 3, 6] : [8, 5, 2];\n var start = offset[this.getDayZhiIndex() % 3];\n var timeZhiIndex = this.getTimeZhiIndex();\n var index = asc ? (start + timeZhiIndex) : (start + 9 - timeZhiIndex);\n return NineStar.fromIndex(index % 9);\n },\n getSolar:function(){\n return this._p.solar;\n },\n getJieQiTable:function(){\n this._checkLang();\n return this._p.jieQi;\n },\n getJieQiList:function(){\n return this._p.jieQiList;\n },\n getNextJie:function(wholeDay){\n var conditions = [];\n for(var i=0,j=LunarUtil.JIE_QI_IN_USE.length/2;itoday){\n continue;\n }\n if(null == near || day > near[wholeDay ? 'toYmd' : 'toYmdHms']()) {\n name = jq;\n near = solar;\n }\n }\n }\n if(null==near){\n return null;\n }\n return this._buildJieQi(name, near);\n },\n getCurrentJieQi:function(){\n for(var key in this._p.jieQi){\n var d = this._getJieQiSolar(key);\n if(d.getYear() === this._p.solar.getYear() && d.getMonth() === this._p.solar.getMonth() && d.getDay() === this._p.solar.getDay()){\n return this._buildJieQi(this._convertJieQi(key), d);\n }\n }\n return null;\n },\n getCurrentJie:function(){\n for(var i=0, j=LunarUtil.JIE_QI_IN_USE.length; i0){\n s += ' ['+jq+']';\n }\n s += ' '+this.getGong()+'方'+this.getShou();\n s += ' 星宿['+this.getXiu()+this.getZheng()+this.getAnimal()+']('+this.getXiuLuck()+')';\n s += ' 彭祖百忌['+this.getPengZuGan()+' '+this.getPengZuZhi()+']';\n s += ' 喜神方位['+this.getDayPositionXi()+']('+this.getDayPositionXiDesc()+')';\n s += ' 阳贵神方位['+this.getDayPositionYangGui()+']('+this.getDayPositionYangGuiDesc()+')';\n s += ' 阴贵神方位['+this.getDayPositionYinGui()+']('+this.getDayPositionYinGuiDesc()+')';\n s += ' 福神方位['+this.getDayPositionFu()+']('+this.getDayPositionFuDesc()+')';\n s += ' 财神方位['+this.getDayPositionCai()+']('+this.getDayPositionCaiDesc()+')';\n s += ' 冲['+this.getDayChongDesc()+']';\n s += ' 煞['+this.getDaySha()+']';\n return s;\n },\n _buildNameAndIndex: function(name, index){\n return {\n _p:{\n name: name,\n index: index\n },\n getName: function(){return this._p.name;},\n setName: function(name){this._p.name = name;},\n getIndex: function(){return this._p.index;},\n setIndex: function(index){this._p.index = index;},\n toString: function(){return this.getName();},\n toFullString: function(){return this.getName()+'第'+this.getIndex()+'天';}\n };\n },\n getShuJiu:function(){\n var currentDay = Solar.fromYmd(this._p.solar.getYear(), this._p.solar.getMonth(), this._p.solar.getDay());\n var start = this._getJieQiSolar('DONG_ZHI');\n var startDay = Solar.fromYmd(start.getYear(), start.getMonth(), start.getDay());\n if (currentDay.isBefore(startDay)) {\n start = this._getJieQiSolar(I18n.getMessage('jq.dongZhi'));\n startDay = Solar.fromYmd(start.getYear(), start.getMonth(), start.getDay());\n }\n var endDay = Solar.fromYmd(start.getYear(), start.getMonth(), start.getDay()).next(81);\n if (currentDay.isBefore(startDay) || (!currentDay.isBefore(endDay))) {\n return null;\n }\n var days = currentDay.subtract(startDay);\n return this._buildNameAndIndex(LunarUtil.NUMBER[Math.floor(days / 9) + 1] + '九', days % 9 + 1);\n },\n getFu:function(){\n var currentDay = Solar.fromYmd(this._p.solar.getYear(), this._p.solar.getMonth(), this._p.solar.getDay());\n var xiaZhi = this._getJieQiSolar(I18n.getMessage('jq.xiaZhi'));\n var liQiu = this._getJieQiSolar(I18n.getMessage('jq.liQiu'));\n var startDay = Solar.fromYmd(xiaZhi.getYear(), xiaZhi.getMonth(), xiaZhi.getDay());\n\n // 第1个庚日\n var add = 6 - xiaZhi.getLunar().getDayGanIndex();\n if (add < 0) {\n add += 10;\n }\n // 第3个庚日,即初伏第1天\n add += 20;\n startDay = startDay.next(add);\n\n // 初伏以前\n if (currentDay.isBefore(startDay)) {\n return null;\n }\n\n var days = currentDay.subtract(startDay);\n if (days < 10) {\n return this._buildNameAndIndex('初伏', days + 1);\n }\n\n // 第4个庚日,中伏第1天\n startDay = startDay.next(10);\n\n days = currentDay.subtract(startDay);\n if (days < 10) {\n return this._buildNameAndIndex('中伏', days + 1);\n }\n\n // 第5个庚日,中伏第11天或末伏第1天\n startDay = startDay.next(10);\n\n var liQiuDay = Solar.fromYmd(liQiu.getYear(),liQiu.getMonth(),liQiu.getDay());\n\n days = currentDay.subtract(startDay);\n // 末伏\n if (liQiuDay.isAfter(startDay)) {\n // 中伏\n if (days < 10) {\n return this._buildNameAndIndex('中伏', days + 11);\n }\n // 末伏第1天\n startDay = startDay.next(10);\n days = currentDay.subtract(startDay);\n }\n if (days < 10) {\n return this._buildNameAndIndex('末伏', days + 1);\n }\n return null;\n },\n getLiuYao:function(){\n return LunarUtil.LIU_YAO[(Math.abs(this._p.month)+this._p.day-2)%6];\n },\n getWuHou:function(){\n var jieQi = this.getPrevJieQi(true);\n var jq = LunarUtil.find(jieQi.getName(), LunarUtil.JIE_QI);\n var current = Solar.fromYmd(this._p.solar.getYear(),this._p.solar.getMonth(),this._p.solar.getDay());\n var startSolar = jieQi.getSolar();\n var start = Solar.fromYmd(startSolar.getYear(),startSolar.getMonth(),startSolar.getDay());\n var index = Math.floor(current.subtract(start) / 5);\n if (index > 2) {\n index = 2;\n }\n return LunarUtil.WU_HOU[(jq.index * 3 + index) % LunarUtil.WU_HOU.length];\n },\n getHou:function(){\n var jieQi = this.getPrevJieQi(true);\n var days = this._p.solar.subtract(jieQi.getSolar());\n var max = LunarUtil.HOU.length - 1;\n var offset = Math.floor(days / 5);\n if (offset > max) {\n offset = max;\n }\n return jieQi.getName() + ' ' + LunarUtil.HOU[offset];\n },\n getDayLu:function(){\n var gan = LunarUtil.LU[this.getDayGan()];\n var zhi = LunarUtil.LU[this.getDayZhi()];\n var lu = gan + '命互禄';\n if (zhi) {\n lu += ' ' + zhi + '命进禄';\n }\n return lu;\n },\n getTime:function(){\n return LunarTime.fromYmdHms(this._p.year, this._p.month, this._p.day, this._p.hour, this._p.minute, this._p.second);\n },\n getTimes:function(){\n var l = [];\n l.push(LunarTime.fromYmdHms(this._p.year, this._p.month, this._p.day, 0, 0, 0));\n for(var i = 0; i < 12; i++){\n l.push(LunarTime.fromYmdHms(this._p.year, this._p.month, this._p.day, (i+1)*2-1, 0, 0));\n }\n return l;\n },\n getFoto:function(){return Foto.fromLunar(this);},\n getTao:function(){return Tao.fromLunar(this);}\n };\n };\n return {\n fromYmdHms:function(y,m,d,hour,minute,second){return _fromYmdHms(y,m,d,hour,minute,second);},\n fromYmd:function(y,m,d){return _fromYmdHms(y,m,d,0,0,0);},\n fromSolar:function(solar){return _fromSolar(solar);},\n fromDate:function(date){return _fromDate(date);}\n };\n })();\n var SolarWeek = (function(){\n var _fromDate = function(date,start){\n var solar = Solar.fromDate(date);\n return _fromYmd(solar.getYear(),solar.getMonth(), solar.getDay(), start);\n };\n var _fromYmd = function(y,m,d,start){\n var oy = y;\n var om = m;\n var od = d;\n y *= 1;\n if(isNaN(y)){\n throw new Error('wrong solar year '+oy);\n }\n m *= 1;\n if(isNaN(m)){\n throw new Error('wrong solar month '+om);\n }\n d *= 1;\n if(isNaN(d)){\n throw new Error('wrong solar day '+od);\n }\n start *= 1;\n if(isNaN(start)){\n start = 0;\n }\n return {\n _p:{\n year:y,\n month:m,\n day:d,\n start:start\n },\n getYear:function(){\n return this._p.year;\n },\n getMonth:function(){\n return this._p.month;\n },\n getDay:function(){\n return this._p.day;\n },\n getStart:function(){\n return this._p.start;\n },\n /**\n * 获取当前日期是在当月第几周\n * @return number 周序号,从1开始\n */\n getIndex:function(){\n var offset = Solar.fromYmd(this._p.year,this._p.month,1).getWeek() - this._p.start;\n if(offset < 0) {\n offset += 7;\n }\n return Math.ceil((this._p.day + offset)/7);\n },\n /**\n * 获取当前日期是在当年第几周\n * @return number 周序号,从1开始\n */\n getIndexInYear:function(){\n var offset = Solar.fromYmd(this._p.year,1,1).getWeek() - this._p.start;\n if(offset < 0) {\n offset += 7;\n }\n return Math.ceil((SolarUtil.getDaysInYear(this._p.year, this._p.month, this._p.day) + offset)/7);\n },\n /**\n * 周推移\n * @param weeks 推移的周数,负数为倒推\n * @param separateMonth 是否按月单独计算\n * @return object 推移后的阳历周\n */\n next: function (weeks, separateMonth) {\n var ow = weeks;\n weeks *= 1;\n if(isNaN(weeks)){\n throw new Error('wrong weeks ' + ow);\n }\n var start = this._p.start;\n if (0 === weeks) {\n return _fromYmd(this._p.year, this._p.month, this._p.day, start);\n }\n var solar = Solar.fromYmd(this._p.year, this._p.month, this._p.day);\n if (separateMonth) {\n var n = weeks;\n var week = _fromYmd(this._p.year, this._p.month, this._p.day, start);\n var month = this._p.month;\n var plus = n > 0;\n while (0 !== n) {\n solar = solar.next(plus ? 7 : -7);\n week = _fromYmd(solar.getYear(), solar.getMonth(), solar.getDay(), start);\n var weekMonth = week.getMonth();\n if (month !== weekMonth) {\n var index = week.getIndex();\n if (plus) {\n if (1 === index) {\n var firstDay = week.getFirstDay();\n week = _fromYmd(firstDay.getYear(), firstDay.getMonth(), firstDay.getDay(), start);\n weekMonth = week.getMonth();\n } else {\n solar = Solar.fromYmd(week.getYear(), week.getMonth(), 1);\n week = _fromYmd(solar.getYear(), solar.getMonth(), solar.getDay(), start);\n }\n } else {\n var size = SolarUtil.getWeeksOfMonth(week.getYear(), week.getMonth(), start);\n if (size === index) {\n var lastDay = week.getFirstDay().next(6);\n week = _fromYmd(lastDay.getYear(), lastDay.getMonth(), lastDay.getDay(), start);\n weekMonth = week.getMonth();\n } else {\n solar = Solar.fromYmd(week.getYear(), week.getMonth(), SolarUtil.getDaysOfMonth(week.getYear(), week.getMonth()));\n week = _fromYmd(solar.getYear(), solar.getMonth(), solar.getDay(), start);\n }\n }\n month = weekMonth;\n }\n n -= plus ? 1 : -1;\n }\n return week;\n } else {\n solar = solar.next(weeks * 7);\n return _fromYmd(solar.getYear(), solar.getMonth(), solar.getDay(), start);\n }\n },\n /**\n * 获取本周第一天的阳历日期(可能跨月)\n * @return object 本周第一天的阳历日期\n */\n getFirstDay:function(){\n var solar = Solar.fromYmd(this._p.year, this._p.month, this._p.day);\n var prev = solar.getWeek() - this._p.start;\n if(prev < 0){\n prev += 7;\n }\n return solar.next(-prev);\n },\n /**\n * 获取本周第一天的阳历日期(仅限当月)\n * @return object 本周第一天的阳历日期\n */\n getFirstDayInMonth:function(){\n var index = 0;\n var days = this.getDays();\n for(var i = 0;i 12) {\n m -= 12;\n y++;\n } else if (m < 1) {\n m += 12;\n y--;\n }\n return _fromYm(y, m);\n },\n getDays:function(){\n var l = [];\n var d = Solar.fromYmd(this._p.year,this._p.month,1);\n l.push(d);\n var days = SolarUtil.getDaysOfMonth(this._p.year,this._p.month);\n for(var i = 1;i this._p.year || firstDay.getMonth() > this._p.month) {\n break;\n }\n }\n return l;\n },\n toString:function(){\n return this.getYear()+'-'+this.getMonth();\n },\n toFullString:function(){\n return this.getYear()+'年'+this.getMonth()+'月';\n }\n };\n };\n return {\n fromYm:function(y,m){return _fromYm(y,m);},\n fromDate:function(date){return _fromDate(date);}\n };\n })();\n var SolarSeason = (function(){\n var _fromDate = function(date){\n var solar = Solar.fromDate(date);\n return _fromYm(solar.getYear(),solar.getMonth());\n };\n var _fromYm = function(y,m){\n var oy = y;\n var om = m;\n y *= 1;\n if(isNaN(y)){\n throw new Error('wrong solar year '+oy);\n }\n m *= 1;\n if(isNaN(m)){\n throw new Error('wrong solar month '+om);\n }\n return {\n _p:{\n year:y,\n month:m\n },\n getYear:function(){\n return this._p.year;\n },\n getMonth:function(){\n return this._p.month;\n },\n /**\n * 获取当月是第几季度\n * @return number 季度序号,从1开始\n */\n getIndex:function(){\n return Math.ceil(this._p.month/3);\n },\n /**\n * 季度推移\n * @param seasons 推移的季度数,负数为倒推\n * @return object 推移后的季度\n */\n next:function(seasons){\n var os = seasons;\n seasons *= 1;\n if(isNaN(seasons)){\n throw new Error('wrong seasons ' + os);\n }\n var month = SolarMonth.fromYm(this._p.year, this._p.month).next(3 * seasons);\n return _fromYm(month.getYear(), month.getMonth());\n },\n /**\n * 获取本季度的月份\n * @return Array 本季度的月份列表\n */\n getMonths:function(){\n var l = [];\n var index = this.getIndex()-1;\n for(var i=0;i<3;i++){\n l.push(SolarMonth.fromYm(this._p.year,3*index+i+1));\n }\n return l;\n },\n toString:function(){\n return this.getYear()+'.'+this.getIndex();\n },\n toFullString:function(){\n return this.getYear()+'年'+this.getIndex()+'季度';\n }\n };\n };\n return {\n fromYm:function(y,m){return _fromYm(y,m);},\n fromDate:function(date){return _fromDate(date);}\n };\n })();\n var SolarHalfYear = (function(){\n var _fromDate = function(date){\n var solar = Solar.fromDate(date);\n return _fromYm(solar.getYear(),solar.getMonth());\n };\n var _fromYm = function(y,m){\n var oy = y;\n var om = m;\n y *= 1;\n if(isNaN(y)){\n throw new Error('wrong solar year '+oy);\n }\n m *= 1;\n if(isNaN(m)){\n throw new Error('wrong solar month '+om);\n }\n return {\n _p:{\n year:y,\n month:m\n },\n getYear:function(){\n return this._p.year;\n },\n getMonth:function(){\n return this._p.month;\n },\n /**\n * 获取当月是第几半年\n * @return number 半年序号,从1开始\n */\n getIndex:function(){\n return Math.ceil(this._p.month/6);\n },\n /**\n * 半年推移\n * @param halfYears 推移的半年数,负数为倒推\n * @return object 推移后的半年\n */\n next:function(halfYears){\n var oh = halfYears;\n halfYears *= 1;\n if(isNaN(halfYears)){\n throw new Error('wong halfYears ' + oh);\n }\n var month = SolarMonth.fromYm(this._p.year, this._p.month).next(6 * halfYears);\n return _fromYm(month.getYear(), month.getMonth());\n },\n /**\n * 获取本半年的月份\n * @return Array 本半年的月份列表\n */\n getMonths:function(){\n var l = [];\n var index = this.getIndex()-1;\n for(var i=0;i<6;i++){\n l.push(SolarMonth.fromYm(this._p.year,6*index+i+1));\n }\n return l;\n },\n toString:function(){\n return this.getYear()+'.'+this.getIndex();\n },\n toFullString:function(){\n return this.getYear()+'年'+['上','下'][this.getIndex()-1]+'半年';\n }\n };\n };\n return {\n fromYm:function(y,m){return _fromYm(y,m);},\n fromDate:function(date){return _fromDate(date);}\n };\n })();\n var SolarYear = (function(){\n var _fromDate = function(date){\n return _fromYear(Solar.fromDate(date).getYear());\n };\n var _fromYear = function(y){\n var oy = y;\n y *= 1;\n if(isNaN(y)){\n throw new Error('wrong solar year '+oy);\n }\n return {\n _p:{\n year:y\n },\n getYear:function(){\n return this._p.year;\n },\n next:function(years){\n var oy = years;\n years *= 1;\n if(isNaN(years)){\n throw new Error('wrong years ' + oy);\n }\n return _fromYear(this._p.year + years);\n },\n getMonths:function(){\n var l = [];\n var m = SolarMonth.fromYm(this._p.year,1);\n l.push(m);\n for(var i = 1;i<12;i++){\n l.push(m.next(i));\n }\n return l;\n },\n toString:function(){\n return this.getYear()+'';\n },\n toFullString:function(){\n return this.getYear()+'年';\n }\n };\n };\n return {\n fromYear:function(y){return _fromYear(y);},\n fromDate:function(date){return _fromDate(date);}\n };\n })();\n var LunarYear = (function(){\n var _YUAN = ['下','上','中'];\n var _YUN = ['七','八','九','一','二','三','四','五','六'];\n var _LEAP_11 = [75, 94, 170, 265, 322, 398, 469, 553, 583, 610, 678, 735, 754, 773, 849, 887, 936, 1050, 1069, 1126, 1145, 1164, 1183, 1259, 1278, 1308, 1373, 1403, 1441, 1460, 1498, 1555, 1593, 1612, 1631, 1642, 2033, 2128, 2147, 2242, 2614, 2728, 2910, 3062, 3244, 3339, 3616, 3711, 3730, 3825, 4007, 4159, 4197, 4322, 4341, 4379, 4417, 4531, 4599, 4694, 4713, 4789, 4808, 4971, 5085, 5104, 5161, 5180, 5199, 5294, 5305, 5476, 5677, 5696, 5772, 5791, 5848, 5886, 6049, 6068, 6144, 6163, 6258, 6402, 6440, 6497, 6516, 6630, 6641, 6660, 6679, 6736, 6774, 6850, 6869, 6899, 6918, 6994, 7013, 7032, 7051, 7070, 7089, 7108, 7127, 7146, 7222, 7271, 7290, 7309, 7366, 7385, 7404, 7442, 7461, 7480, 7491, 7499, 7594, 7624, 7643, 7662, 7681, 7719, 7738, 7814, 7863, 7882, 7901, 7939, 7958, 7977, 7996, 8034, 8053, 8072, 8091, 8121, 8159, 8186, 8216, 8235, 8254, 8273, 8311, 8330, 8341, 8349, 8368, 8444, 8463, 8474, 8493, 8531, 8569, 8588, 8626, 8664, 8683, 8694, 8702, 8713, 8721, 8751, 8789, 8808, 8816, 8827, 8846, 8884, 8903, 8922, 8941, 8971, 9036, 9066, 9085, 9104, 9123, 9142, 9161, 9180, 9199, 9218, 9256, 9294, 9313, 9324, 9343, 9362, 9381, 9419, 9438, 9476, 9514, 9533, 9544, 9552, 9563, 9571, 9582, 9601, 9639, 9658, 9666, 9677, 9696, 9734, 9753, 9772, 9791, 9802, 9821, 9886, 9897, 9916, 9935, 9954, 9973, 9992];\n var _LEAP_12 = [37, 56, 113, 132, 151, 189, 208, 227, 246, 284, 303, 341, 360, 379, 417, 436, 458, 477, 496, 515, 534, 572, 591, 629, 648, 667, 697, 716, 792, 811, 830, 868, 906, 925, 944, 963, 982, 1001, 1020, 1039, 1058, 1088, 1153, 1202, 1221, 1240, 1297, 1335, 1392, 1411, 1422, 1430, 1517, 1525, 1536, 1574, 3358, 3472, 3806, 3988, 4751, 4941, 5066, 5123, 5275, 5343, 5438, 5457, 5495, 5533, 5552, 5715, 5810, 5829, 5905, 5924, 6421, 6535, 6793, 6812, 6888, 6907, 7002, 7184, 7260, 7279, 7374, 7556, 7746, 7757, 7776, 7833, 7852, 7871, 7966, 8015, 8110, 8129, 8148, 8224, 8243, 8338, 8406, 8425, 8482, 8501, 8520, 8558, 8596, 8607, 8615, 8645, 8740, 8778, 8835, 8865, 8930, 8960, 8979, 8998, 9017, 9055, 9074, 9093, 9112, 9150, 9188, 9237, 9275, 9332, 9351, 9370, 9408, 9427, 9446, 9457, 9465, 9495, 9560, 9590, 9628, 9647, 9685, 9715, 9742, 9780, 9810, 9818, 9829, 9848, 9867, 9905, 9924, 9943, 9962, 10000];\n var _CACHE_YEAR = null;\n var _YMC = [11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n var _inLeap = function(arr, n) {\n for (var i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === n) {\n return true;\n }\n }\n return false;\n };\n var _fromYear = function(lunarYear){\n var oy = lunarYear;\n lunarYear *= 1;\n if(isNaN(lunarYear)){\n throw new Error('wrong lunar year '+oy);\n }\n var _y = (function(){\n var offset = lunarYear - 4;\n var yearGanIndex = offset % 10;\n var yearZhiIndex = offset % 12;\n if (yearGanIndex < 0) {\n yearGanIndex += 10;\n }\n if (yearZhiIndex < 0) {\n yearZhiIndex += 12;\n }\n return {\n ganIndex: yearGanIndex,\n zhiIndex: yearZhiIndex\n }\n })();\n return {\n _p: {\n year: lunarYear,\n ganIndex: _y.ganIndex,\n zhiIndex: _y.zhiIndex,\n months: [],\n jieQiJulianDays: []\n },\n getYear:function(){return this._p.year;},\n getGanIndex:function(){return this._p.ganIndex;},\n getZhiIndex:function(){return this._p.zhiIndex;},\n getGan:function(){return LunarUtil.GAN[this._p.ganIndex+1];},\n getZhi:function(){return LunarUtil.ZHI[this._p.zhiIndex+1];},\n getGanZhi:function(){return this.getGan()+this.getZhi();},\n getJieQiJulianDays:function(){return this._p.jieQiJulianDays;},\n getDayCount:function(){\n var n = 0;\n for (var i = 0, j = this._p.months.length; i < j; i++) {\n var m = this._p.months[i];\n if (m.getYear() === this._p.year) {\n n += m.getDayCount();\n }\n }\n return n;\n },\n getMonthsInYear:function(){\n var l = [];\n for (var i = 0, j = this._p.months.length; i < j; i++) {\n var m = this._p.months[i];\n if (m.getYear() === this._p.year) {\n l.push(m);\n }\n }\n return l;\n },\n getMonths:function(){return this._p.months;},\n getMonth:function(lunarMonth){\n var om = lunarMonth;\n lunarMonth *= 1;\n if(isNaN(lunarMonth)){\n throw new Error('wrong lunarMonth ' + om);\n }\n for (var i = 0, j = this._p.months.length; i < j; i++) {\n var m = this._p.months[i];\n if (m.getYear() === this._p.year && m.getMonth() === lunarMonth) {\n return m;\n }\n }\n return null;\n },\n getLeapMonth:function(){\n for (var i = 0, j = this._p.months.length; i < j; i++) {\n var m = this._p.months[i];\n if (m.getYear() === this._p.year && m.isLeap()) {\n return Math.abs(m.getMonth());\n }\n }\n return 0;\n },\n _getZaoByGan:function(index, name){\n var offset = index - Solar.fromJulianDay(this.getMonth(1).getFirstJulianDay()).getLunar().getDayGanIndex();\n if (offset < 0) {\n offset += 10;\n }\n return name.replace('几', LunarUtil.NUMBER[offset+1]);\n },\n _getZaoByZhi:function(index, name){\n var offset = index - Solar.fromJulianDay(this.getMonth(1).getFirstJulianDay()).getLunar().getDayZhiIndex();\n if (offset < 0) {\n offset += 12;\n }\n return name.replace('几', LunarUtil.NUMBER[offset+1]);\n },\n getTouLiang:function(){\n return this._getZaoByZhi(0, '几鼠偷粮');\n },\n getCaoZi:function(){\n return this._getZaoByZhi(0, '草子几分');\n },\n getGengTian:function(){\n return this._getZaoByZhi(1, '几牛耕田');\n },\n getHuaShou:function(){\n return this._getZaoByZhi(3, '花收几分');\n },\n getZhiShui:function(){\n return this._getZaoByZhi(4, '几龙治水');\n },\n getTuoGu:function(){\n return this._getZaoByZhi(6, '几马驮谷');\n },\n getQiangMi:function(){\n return this._getZaoByZhi(9, '几鸡抢米');\n },\n getKanCan:function(){\n return this._getZaoByZhi(9, '几姑看蚕');\n },\n getGongZhu:function(){\n return this._getZaoByZhi(11, '几屠共猪');\n },\n getJiaTian:function(){\n return this._getZaoByGan(0, '甲田几分');\n },\n getFenBing:function(){\n return this._getZaoByGan(2, '几人分饼');\n },\n getDeJin:function(){\n return this._getZaoByGan(7, '几日得金');\n },\n getRenBing:function(){\n return this._getZaoByGan(2, this._getZaoByZhi(2, '几人几丙'));\n },\n getRenChu:function(){\n return this._getZaoByGan(3, this._getZaoByZhi(2, '几人几锄'));\n },\n getYuan:function(){\n return _YUAN[Math.floor((this._p.year+2696)/60)%3]+'元';\n },\n getYun:function(){\n return _YUN[Math.floor((this._p.year+2696)/20)%9]+'运';\n },\n getNineStar:function(){\n var index = LunarUtil.getJiaZiIndex(this.getGanZhi()) + 1;\n var yuan = Math.floor((this._p.year + 2696) / 60) % 3;\n var offset = (62 + yuan * 3 - index) % 9;\n if(0 === offset){\n offset = 9;\n }\n return NineStar.fromIndex(offset - 1);\n },\n getPositionXi:function(){\n return LunarUtil.POSITION_XI[this._p.ganIndex+1];\n },\n getPositionXiDesc:function(){\n return LunarUtil.POSITION_DESC[this.getPositionXi()];\n },\n getPositionYangGui:function(){\n return LunarUtil.POSITION_YANG_GUI[this._p.ganIndex+1];\n },\n getPositionYangGuiDesc:function(){\n return LunarUtil.POSITION_DESC[this.getPositionYangGui()];\n },\n getPositionYinGui:function(){\n return LunarUtil.POSITION_YIN_GUI[this._p.ganIndex+1];\n },\n getPositionYinGuiDesc:function(){\n return LunarUtil.POSITION_DESC[this.getPositionYinGui()];\n },\n getPositionFu:function(sect){\n return (1===sect?LunarUtil.POSITION_FU:LunarUtil.POSITION_FU_2)[this._p.ganIndex+1];\n },\n getPositionFuDesc:function(sect){\n return LunarUtil.POSITION_DESC[this.getPositionFu(sect)];\n },\n getPositionCai:function(){\n return LunarUtil.POSITION_CAI[this._p.ganIndex+1];\n },\n getPositionCaiDesc:function(){\n return LunarUtil.POSITION_DESC[this.getPositionCai()];\n },\n getPositionTaiSui:function(){\n return LunarUtil.POSITION_TAI_SUI_YEAR[this._p.zhiIndex];\n },\n getPositionTaiSuiDesc:function(){\n return LunarUtil.POSITION_DESC[this.getPositionTaiSui()];\n },\n toString:function(){\n return this.getYear()+'';\n },\n toFullString:function(){\n return this.getYear()+'年';\n },\n next:function(years){\n var oy = years;\n years *= 1;\n if(isNaN(years)){\n throw new Error('wrong years ' + oy);\n }\n return LunarYear.fromYear(this._p.year + years);\n },\n _compute:function(){\n this._p.months = [];\n this._p.jieQiJulianDays = [];\n // 节气\n var jq = [];\n // 合朔,即每月初一\n var hs = [];\n // 每月天数,长度15\n var dayCounts = [];\n var months = [];\n var i;\n var j;\n var currentYear = this._p.year;\n var jd = Math.floor((currentYear - 2000) * 365.2422 + 180);\n // 355是2000.12冬至,得到较靠近jd的冬至估计值\n var w = Math.floor((jd - 355 + 183) / 365.2422) * 365.2422 + 355;\n if (ShouXingUtil.calcQi(w) > jd) {\n w -= 365.2422;\n }\n // 25个节气时刻(北京时间),从冬至开始到下一个冬至以后\n for (i = 0; i < 26; i++) {\n jq.push(ShouXingUtil.calcQi(w + 15.2184 * i));\n }\n for (i = 0, j = LunarUtil.JIE_QI_IN_USE.length; i < j; i++) {\n if (i === 0) {\n jd = ShouXingUtil.qiAccurate2(jq[0] - 15.2184);\n } else if (i <= 26) {\n jd = ShouXingUtil.qiAccurate2(jq[i - 1]);\n } else {\n jd = ShouXingUtil.qiAccurate2(jq[25] + 15.2184 * (i - 26));\n }\n this._p.jieQiJulianDays.push(jd + Solar.J2000);\n }\n\n // 冬至前的初一,今年\"首朔\"的日月黄经差w\n w = ShouXingUtil.calcShuo(jq[0]);\n if (w > jq[0]) {\n w -= 29.53;\n }\n // 递推每月初一\n for (i = 0; i < 16; i++) {\n hs.push(ShouXingUtil.calcShuo(w + 29.5306 * i));\n }\n // 每月\n for (i = 0; i < 15; i++) {\n dayCounts.push(Math.floor(hs[i + 1] - hs[i]));\n months.push(i);\n }\n\n var prevYear = currentYear - 1;\n var leapIndex = 16;\n if (_inLeap(_LEAP_11, currentYear)) {\n leapIndex = 13;\n } else if (_inLeap(_LEAP_12, currentYear)) {\n leapIndex = 14;\n } else if (hs[13] <= jq[24]) {\n i = 1;\n while (hs[i + 1] > jq[2 * i] && i < 13) {\n i++;\n }\n leapIndex = i;\n }\n for (j = leapIndex; j < 15; j++) {\n months[j] -= 1;\n }\n var fm = -1;\n var index = -1;\n var y = prevYear;\n for (i = 0; i < 15; i++) {\n var dm = hs[i] + Solar.J2000;\n var v2 = months[i];\n var mc = _YMC[v2 % 12];\n if (1724360 <= dm && dm < 1729794) {\n mc = _YMC[(v2 + 1) % 12];\n } else if (1807724 <= dm && dm < 1808699) {\n mc = _YMC[(v2 + 1) % 12];\n } else if (dm === 1729794 || dm === 1808699) {\n mc = 12;\n }\n if (fm === -1) {\n fm = mc;\n index = mc;\n }\n if (mc < fm) {\n y += 1;\n index = 1;\n }\n fm = mc;\n if (i === leapIndex) {\n mc = -mc;\n } else if (dm === 1729794 || dm === 1808699) {\n mc = -11;\n }\n this._p.months.push(LunarMonth._(y, mc, dayCounts[i], hs[i] + Solar.J2000, index));\n index++;\n }\n return this;\n }\n }._compute();\n };\n var _fromCachedYear = function(lunarYear) {\n var y;\n if (!_CACHE_YEAR || _CACHE_YEAR.getYear() !== lunarYear) {\n y = _fromYear(lunarYear);\n _CACHE_YEAR = y;\n } else {\n y = _CACHE_YEAR;\n }\n return y;\n };\n return {\n fromYear:function(lunarYear){return _fromCachedYear(lunarYear);}\n };\n })();\n var LunarMonth = (function(){\n var _fromYm = function(lunarYear,lunarMonth){\n var oy = lunarYear;\n var om = lunarMonth;\n lunarYear *= 1;\n if(isNaN(lunarYear)){\n throw new Error('wrong lunar year '+oy);\n }\n lunarMonth *= 1;\n if(isNaN(lunarMonth)){\n throw new Error('wrong lunar month '+om);\n }\n return LunarYear.fromYear(lunarYear).getMonth(lunarMonth);\n };\n var _new = function(lunarYear, lunarMonth, dayCount, firstJulianDay, index){\n return {\n _p: {\n year: lunarYear,\n month: lunarMonth,\n dayCount: dayCount,\n firstJulianDay: firstJulianDay,\n index: index,\n zhiIndex: (index - 1 + LunarUtil.BASE_MONTH_ZHI_INDEX) % 12\n },\n getIndex:function(){return this._p.index;},\n getGanIndex:function(){\n var offset = (LunarYear.fromYear(this._p.year).getGanIndex() + 1) % 5 * 2;\n return (this._p.index - 1 + offset) % 10;\n },\n getZhiIndex:function(){return this._p.zhiIndex;},\n getGan:function(){return LunarUtil.GAN[this.getGanIndex() + 1];},\n getZhi:function(){return LunarUtil.ZHI[this._p.zhiIndex + 1];},\n getGanZhi:function(){return this.getGan() + this.getZhi();},\n getYear:function(){return this._p.year;},\n getMonth:function(){return this._p.month;},\n getDayCount:function(){return this._p.dayCount;},\n getFirstJulianDay:function(){return this._p.firstJulianDay;},\n isLeap:function(){return this._p.month<0;},\n getPositionXi:function(){\n return LunarUtil.POSITION_XI[this.getGanIndex() + 1];\n },\n getPositionXiDesc:function(){\n return LunarUtil.POSITION_DESC.get(this.getPositionXi());\n },\n getPositionYangGui:function(){\n return LunarUtil.POSITION_YANG_GUI[this.getGanIndex() + 1];\n },\n getPositionYangGuiDesc:function(){\n return LunarUtil.POSITION_DESC.get(this.getPositionYangGui());\n },\n getPositionYinGui:function(){\n return LunarUtil.POSITION_YIN_GUI[this.getGanIndex() + 1];\n },\n getPositionYinGuiDesc:function(){\n return LunarUtil.POSITION_DESC.get(this.getPositionYinGui());\n },\n getPositionFu:function(sect){\n return (1 === sect ? LunarUtil.POSITION_FU : LunarUtil.POSITION_FU_2)[this.getGanIndex() + 1];\n },\n getPositionFuDesc:function(sect){\n return LunarUtil.POSITION_DESC.get(this.getPositionFu(sect));\n },\n getPositionCai:function(){\n return LunarUtil.POSITION_CAI[this.getGanIndex() + 1];\n },\n getPositionCaiDesc:function(){\n return LunarUtil.POSITION_DESC.get(this.getPositionCai());\n },\n getPositionTaiSui:function(){\n var p;\n var m = Math.abs(this._p.month);\n switch(m) {\n case 1:\n case 5:\n case 9:\n p = '艮';\n break;\n case 3:\n case 7:\n case 11:\n p = '坤';\n break;\n case 4:\n case 8:\n case 12:\n p = '巽';\n break;\n default:\n p = LunarUtil.POSITION_GAN[Solar.fromJulianDay(this.getFirstJulianDay()).getLunar().getMonthGanIndex()];\n }\n return p;\n },\n getPositionTaiSuiDesc:function(){\n return LunarUtil.POSITION_DESC[this.getPositionTaiSui()];\n },\n getNineStar:function(){\n var index = LunarYear.fromYear(this._p.year).getZhiIndex() % 3;\n var m = this._p.month;\n if (m < 0) {\n m = -m;\n }\n var monthZhiIndex = (13 + m) % 12;\n var n = 27 - (index * 3);\n if (monthZhiIndex < LunarUtil.BASE_MONTH_ZHI_INDEX) {\n n -= 3;\n }\n var offset = (n - monthZhiIndex) % 9;\n return NineStar.fromIndex(offset);\n },\n next:function(n){\n var on = n;\n n *= 1;\n if(isNaN(n)){\n throw new Error('wrong days ' + on);\n }\n if (0 === n) {\n return LunarMonth.fromYm(this._p.year, this._p.month);\n } else {\n var rest = Math.abs(n);\n var ny = this._p.year;\n var iy = ny;\n var im = this._p.month;\n var index = 0;\n var months = LunarYear.fromYear(ny).getMonths();\n var i;\n var m;\n var size;\n if (n > 0) {\n while (true) {\n size = months.length;\n for (i = 0; i < size; i++) {\n m = months[i];\n if (m.getYear() === iy && m.getMonth() === im) {\n index = i;\n break;\n }\n }\n var more = size - index - 1;\n if (rest < more) {\n break;\n }\n rest -= more;\n var lastMonth = months[size - 1];\n iy = lastMonth.getYear();\n im = lastMonth.getMonth();\n ny++;\n months = LunarYear.fromYear(ny).getMonths();\n }\n return months[index + rest];\n } else {\n while (true) {\n size = months.length;\n for (i = 0; i < size; i++) {\n m = months[i];\n if (m.getYear() === iy && m.getMonth() === im) {\n index = i;\n break;\n }\n }\n if (rest <= index) {\n break;\n }\n rest -= index;\n var firstMonth = months[0];\n iy = firstMonth.getYear();\n im = firstMonth.getMonth();\n ny--;\n months = LunarYear.fromYear(ny).getMonths();\n }\n return months[index - rest];\n }\n }\n },\n toString:function(){return this.getYear()+'年'+(this.isLeap()?'闰':'')+LunarUtil.MONTH[Math.abs(this.getMonth())]+'月('+this.getDayCount()+')天';}\n };\n };\n return {\n fromYm:function(lunarYear,lunarMonth){return _fromYm(lunarYear,lunarMonth);},\n _:function(lunarYear, lunarMonth, dayCount, firstJulianDay, index){return _new(lunarYear, lunarMonth, dayCount, firstJulianDay, index);}\n };\n })();\n var ShouXingUtil = (function(){\n var _decode = function(s) {\n var o = '0000000000';\n var o2 = o + o;\n s = s.replace(/J/g, '00');\n s = s.replace(/I/g, '000');\n s = s.replace(/H/g, '0000');\n s = s.replace(/G/g, '00000');\n s = s.replace(/t/g, '02');\n s = s.replace(/s/g, '002');\n s = s.replace(/r/g, '0002');\n s = s.replace(/q/g, '00002');\n s = s.replace(/p/g, '000002');\n s = s.replace(/o/g, '0000002');\n s = s.replace(/n/g, '00000002');\n s = s.replace(/m/g, '000000002');\n s = s.replace(/l/g, '0000000002');\n s = s.replace(/k/g, '01');\n s = s.replace(/j/g, '0101');\n s = s.replace(/i/g, '001');\n s = s.replace(/h/g, '001001');\n s = s.replace(/g/g, '0001');\n s = s.replace(/f/g, '00001');\n s = s.replace(/e/g, '000001');\n s = s.replace(/d/g, '0000001');\n s = s.replace(/c/g, '00000001');\n s = s.replace(/b/g, '000000001');\n s = s.replace(/a/g, '0000000001');\n s = s.replace(/A/g, o2 + o2 + o2);\n s = s.replace(/B/g, o2 + o2 + o);\n s = s.replace(/C/g, o2 + o2);\n s = s.replace(/D/g, o2 + o);\n s = s.replace(/E/g, o2);\n s = s.replace(/F/g, o);\n return s;\n };\n return {\n PI_2: 2*Math.PI,\n ONE_THIRD: 1.0/3,\n SECOND_PER_DAY: 86400,\n SECOND_PER_RAD: 648000 / Math.PI,\n NUT_B:[\n 2.1824, -33.75705, 36e-6, -1720, 920,\n 3.5069, 1256.66393, 11e-6, -132, 57,\n 1.3375, 16799.4182, -51e-6, -23, 10,\n 4.3649, -67.5141, 72e-6, 21, -9,\n 0.04, -628.302, 0, -14, 0,\n 2.36, 8328.691, 0, 7, 0,\n 3.46, 1884.966, 0, -5, 2,\n 5.44, 16833.175, 0, -4, 2,\n 3.69, 25128.110, 0, -3, 0,\n 3.55, 628.362, 0, 2, 0\n ],\n DT_AT:[\n -4000, 108371.7, -13036.80, 392.000, 0.0000,\n -500, 17201.0, -627.82, 16.170, -0.3413,\n -150, 12200.6, -346.41, 5.403, -0.1593,\n 150, 9113.8, -328.13, -1.647, 0.0377,\n 500, 5707.5, -391.41, 0.915, 0.3145,\n 900, 2203.4, -283.45, 13.034, -0.1778,\n 1300, 490.1, -57.35, 2.085, -0.0072,\n 1600, 120.0, -9.81, -1.532, 0.1403,\n 1700, 10.2, -0.91, 0.510, -0.0370,\n 1800, 13.4, -0.72, 0.202, -0.0193,\n 1830, 7.8, -1.81, 0.416, -0.0247,\n 1860, 8.3, -0.13, -0.406, 0.0292,\n 1880, -5.4, 0.32, -0.183, 0.0173,\n 1900, -2.3, 2.06, 0.169, -0.0135,\n 1920, 21.2, 1.69, -0.304, 0.0167,\n 1940, 24.2, 1.22, -0.064, 0.0031,\n 1960, 33.2, 0.51, 0.231, -0.0109,\n 1980, 51.0, 1.29, -0.026, 0.0032,\n 2000, 63.87, 0.1, 0, 0,\n 2005, 64.7, 0.21, 0, 0,\n 2012, 66.8, 0.22, 0, 0,\n 2018, 69.0, 0.36, 0, 0,\n 2028, 72.6\n ],\n XL0:[\n 10000000000,\n 20, 578, 920, 1100, 1124, 1136, 1148, 1217, 1226, 1229, 1229, 1229, 1229, 1937, 2363, 2618, 2633, 2660, 2666,\n 17534704567, 0.00000000000, 0.00000000000, 334165646, 4.669256804, 6283.075849991, 3489428, 4.6261024,\n 12566.1517000, 349706, 2.744118, 5753.384885, 341757, 2.828866, 3.523118, 313590, 3.627670, 77713.771468,\n 267622, 4.418084, 7860.419392, 234269, 6.135162, 3930.209696, 132429, 0.742464, 11506.769770, 127317, 2.037097,\n 529.690965, 119917, 1.109629, 1577.343542, 99025, 5.23268, 5884.92685, 90186, 2.04505, 26.29832, 85722, 3.50849,\n 398.14900, 77979, 1.17883, 5223.69392, 75314, 2.53339, 5507.55324, 50526, 4.58293, 18849.22755, 49238, 4.20507,\n 775.52261, 35666, 2.91954, 0.06731, 31709, 5.84902, 11790.62909, 28413, 1.89869, 796.29801, 27104, 0.31489,\n 10977.07880, 24281, 0.34481, 5486.77784, 20616, 4.80647, 2544.31442, 20539, 1.86948, 5573.14280, 20226, 2.45768,\n 6069.77675, 15552, 0.83306, 213.29910, 13221, 3.41118, 2942.46342, 12618, 1.08303, 20.77540, 11513, 0.64545,\n 0.98032, 10285, 0.63600, 4694.00295, 10190, 0.97569, 15720.83878, 10172, 4.26680, 7.11355, 9921, 6.2099,\n 2146.1654, 9761, 0.6810, 155.4204, 8580, 5.9832, 161000.6857, 8513, 1.2987, 6275.9623, 8471, 3.6708, 71430.6956,\n 7964, 1.8079, 17260.1547, 7876, 3.0370, 12036.4607, 7465, 1.7551, 5088.6288, 7387, 3.5032, 3154.6871, 7355,\n 4.6793, 801.8209, 6963, 0.8330, 9437.7629, 6245, 3.9776, 8827.3903, 6115, 1.8184, 7084.8968, 5696, 2.7843,\n 6286.5990, 5612, 4.3869, 14143.4952, 5558, 3.4701, 6279.5527, 5199, 0.1891, 12139.5535, 5161, 1.3328, 1748.0164,\n 5115, 0.2831, 5856.4777, 4900, 0.4874, 1194.4470, 4104, 5.3682, 8429.2413, 4094, 2.3985, 19651.0485, 3920,\n 6.1683, 10447.3878, 3677, 6.0413, 10213.2855, 3660, 2.5696, 1059.3819, 3595, 1.7088, 2352.8662, 3557, 1.7760,\n 6812.7668, 3329, 0.5931, 17789.8456, 3041, 0.4429, 83996.8473, 3005, 2.7398, 1349.8674, 2535, 3.1647, 4690.4798,\n 2474, 0.2148, 3.5904, 2366, 0.4847, 8031.0923, 2357, 2.0653, 3340.6124, 2282, 5.2220, 4705.7323, 2189, 5.5559,\n 553.5694, 2142, 1.4256, 16730.4637, 2109, 4.1483, 951.7184, 2030, 0.3713, 283.8593, 1992, 5.2221, 12168.0027,\n 1986, 5.7747, 6309.3742, 1912, 3.8222, 23581.2582, 1889, 5.3863, 149854.4001, 1790, 2.2149, 13367.9726, 1748,\n 4.5605, 135.0651, 1622, 5.9884, 11769.8537, 1508, 4.1957, 6256.7775, 1442, 4.1932, 242.7286, 1435, 3.7236,\n 38.0277, 1397, 4.4014, 6681.2249, 1362, 1.8893, 7632.9433, 1250, 1.1305, 5.5229, 1205, 2.6223, 955.5997, 1200,\n 1.0035, 632.7837, 1129, 0.1774, 4164.3120, 1083, 0.3273, 103.0928, 1052, 0.9387, 11926.2544, 1050, 5.3591,\n 1592.5960, 1033, 6.1998, 6438.4962, 1001, 6.0291, 5746.2713, 980, 0.999, 11371.705, 980, 5.244, 27511.468, 938,\n 2.624, 5760.498, 923, 0.483, 522.577, 922, 4.571, 4292.331, 905, 5.337, 6386.169, 862, 4.165, 7058.598, 841,\n 3.299, 7234.794, 836, 4.539, 25132.303, 813, 6.112, 4732.031, 812, 6.271, 426.598, 801, 5.821, 28.449, 787,\n 0.996, 5643.179, 776, 2.957, 23013.540, 769, 3.121, 7238.676, 758, 3.974, 11499.656, 735, 4.386, 316.392, 731,\n 0.607, 11513.883, 719, 3.998, 74.782, 706, 0.323, 263.084, 676, 5.911, 90955.552, 663, 3.665, 17298.182, 653,\n 5.791, 18073.705, 630, 4.717, 6836.645, 615, 1.458, 233141.314, 612, 1.075, 19804.827, 596, 3.321, 6283.009,\n 596, 2.876, 6283.143, 555, 2.452, 12352.853, 541, 5.392, 419.485, 531, 0.382, 31441.678, 519, 4.065, 6208.294,\n 513, 2.361, 10973.556, 494, 5.737, 9917.697, 450, 3.272, 11015.106, 449, 3.653, 206.186, 447, 2.064, 7079.374,\n 435, 4.423, 5216.580, 421, 1.906, 245.832, 413, 0.921, 3738.761, 402, 0.840, 20.355, 387, 1.826, 11856.219, 379,\n 2.344, 3.881, 374, 2.954, 3128.389, 370, 5.031, 536.805, 365, 1.018, 16200.773, 365, 1.083, 88860.057, 352,\n 5.978, 3894.182, 352, 2.056, 244287.600, 351, 3.713, 6290.189, 340, 1.106, 14712.317, 339, 0.978, 8635.942, 339,\n 3.202, 5120.601, 333, 0.837, 6496.375, 325, 3.479, 6133.513, 316, 5.089, 21228.392, 316, 1.328, 10873.986, 309,\n 3.646, 10.637, 303, 1.802, 35371.887, 296, 3.397, 9225.539, 288, 6.026, 154717.610, 281, 2.585, 14314.168, 262,\n 3.856, 266.607, 262, 2.579, 22483.849, 257, 1.561, 23543.231, 255, 3.949, 1990.745, 251, 3.744, 10575.407, 240,\n 1.161, 10984.192, 238, 0.106, 7.046, 236, 4.272, 6040.347, 234, 3.577, 10969.965, 211, 3.714, 65147.620, 210,\n 0.754, 13521.751, 207, 4.228, 5650.292, 202, 0.814, 170.673, 201, 4.629, 6037.244, 200, 0.381, 6172.870, 199,\n 3.933, 6206.810, 199, 5.197, 6262.300, 197, 1.046, 18209.330, 195, 1.070, 5230.807, 195, 4.869, 36.028, 194,\n 4.313, 6244.943, 192, 1.229, 709.933, 192, 5.595, 6282.096, 192, 0.602, 6284.056, 189, 3.744, 23.878, 188,\n 1.904, 15.252, 188, 0.867, 22003.915, 182, 3.681, 15110.466, 181, 0.491, 1.484, 179, 3.222, 39302.097, 179,\n 1.259, 12559.038,\n 62833196674749, 0.000000000000, 0.000000000000, 20605886, 2.67823456, 6283.07584999, 430343, 2.635127,\n 12566.151700, 42526, 1.59047, 3.52312, 11926, 5.79557, 26.29832, 10898, 2.96618, 1577.34354, 9348, 2.5921,\n 18849.2275, 7212, 1.1385, 529.6910, 6777, 1.8747, 398.1490, 6733, 4.4092, 5507.5532, 5903, 2.8880, 5223.6939,\n 5598, 2.1747, 155.4204, 4541, 0.3980, 796.2980, 3637, 0.4662, 775.5226, 2896, 2.6471, 7.1135, 2084, 5.3414,\n 0.9803, 1910, 1.8463, 5486.7778, 1851, 4.9686, 213.2991, 1729, 2.9912, 6275.9623, 1623, 0.0322, 2544.3144, 1583,\n 1.4305, 2146.1654, 1462, 1.2053, 10977.0788, 1246, 2.8343, 1748.0164, 1188, 3.2580, 5088.6288, 1181, 5.2738,\n 1194.4470, 1151, 2.0750, 4694.0030, 1064, 0.7661, 553.5694, 997, 1.303, 6286.599, 972, 4.239, 1349.867, 945,\n 2.700, 242.729, 858, 5.645, 951.718, 758, 5.301, 2352.866, 639, 2.650, 9437.763, 610, 4.666, 4690.480, 583,\n 1.766, 1059.382, 531, 0.909, 3154.687, 522, 5.661, 71430.696, 520, 1.854, 801.821, 504, 1.425, 6438.496, 433,\n 0.241, 6812.767, 426, 0.774, 10447.388, 413, 5.240, 7084.897, 374, 2.001, 8031.092, 356, 2.429, 14143.495, 350,\n 4.800, 6279.553, 337, 0.888, 12036.461, 337, 3.862, 1592.596, 325, 3.400, 7632.943, 322, 0.616, 8429.241, 318,\n 3.188, 4705.732, 297, 6.070, 4292.331, 295, 1.431, 5746.271, 290, 2.325, 20.355, 275, 0.935, 5760.498, 270,\n 4.804, 7234.794, 253, 6.223, 6836.645, 228, 5.003, 17789.846, 225, 5.672, 11499.656, 215, 5.202, 11513.883, 208,\n 3.955, 10213.286, 208, 2.268, 522.577, 206, 2.224, 5856.478, 206, 2.550, 25132.303, 203, 0.910, 6256.778, 189,\n 0.532, 3340.612, 188, 4.735, 83996.847, 179, 1.474, 4164.312, 178, 3.025, 5.523, 177, 3.026, 5753.385, 159,\n 4.637, 3.286, 157, 6.124, 5216.580, 155, 3.077, 6681.225, 154, 4.200, 13367.973, 143, 1.191, 3894.182, 138,\n 3.093, 135.065, 136, 4.245, 426.598, 134, 5.765, 6040.347, 128, 3.085, 5643.179, 127, 2.092, 6290.189, 125,\n 3.077, 11926.254, 125, 3.445, 536.805, 114, 3.244, 12168.003, 112, 2.318, 16730.464, 111, 3.901, 11506.770, 111,\n 5.320, 23.878, 105, 3.750, 7860.419, 103, 2.447, 1990.745, 96, 0.82, 3.88, 96, 4.08, 6127.66, 91, 5.42, 206.19,\n 91, 0.42, 7079.37, 88, 5.17, 11790.63, 81, 0.34, 9917.70, 80, 3.89, 10973.56, 78, 2.40, 1589.07, 78, 2.58,\n 11371.70, 77, 3.98, 955.60, 77, 3.36, 36.03, 76, 1.30, 103.09, 75, 5.18, 10969.97, 75, 4.96, 6496.37, 73, 5.21,\n 38.03, 72, 2.65, 6309.37, 70, 5.61, 3738.76, 69, 2.60, 3496.03, 69, 0.39, 15.25, 69, 2.78, 20.78, 65, 1.13,\n 7058.60, 64, 4.28, 28.45, 61, 5.63, 10984.19, 60, 0.73, 419.48, 60, 5.28, 10575.41, 58, 5.55, 17298.18, 58,\n 3.19, 4732.03,\n 5291887, 0.0000000, 0.0000000, 871984, 1.072097, 6283.075850, 30913, 0.86729, 12566.15170, 2734, 0.0530, 3.5231,\n 1633, 5.1883, 26.2983, 1575, 3.6846, 155.4204, 954, 0.757, 18849.228, 894, 2.057, 77713.771, 695, 0.827,\n 775.523, 506, 4.663, 1577.344, 406, 1.031, 7.114, 381, 3.441, 5573.143, 346, 5.141, 796.298, 317, 6.053,\n 5507.553, 302, 1.192, 242.729, 289, 6.117, 529.691, 271, 0.306, 398.149, 254, 2.280, 553.569, 237, 4.381,\n 5223.694, 208, 3.754, 0.980, 168, 0.902, 951.718, 153, 5.759, 1349.867, 145, 4.364, 1748.016, 134, 3.721,\n 1194.447, 125, 2.948, 6438.496, 122, 2.973, 2146.165, 110, 1.271, 161000.686, 104, 0.604, 3154.687, 100, 5.986,\n 6286.599, 92, 4.80, 5088.63, 89, 5.23, 7084.90, 83, 3.31, 213.30, 76, 3.42, 5486.78, 71, 6.19, 4690.48, 68,\n 3.43, 4694.00, 65, 1.60, 2544.31, 64, 1.98, 801.82, 61, 2.48, 10977.08, 50, 1.44, 6836.65, 49, 2.34, 1592.60,\n 46, 1.31, 4292.33, 46, 3.81, 149854.40, 43, 0.04, 7234.79, 40, 4.94, 7632.94, 39, 1.57, 71430.70, 38, 3.17,\n 6309.37, 35, 0.99, 6040.35, 35, 0.67, 1059.38, 31, 3.18, 2352.87, 31, 3.55, 8031.09, 30, 1.92, 10447.39, 30,\n 2.52, 6127.66, 28, 4.42, 9437.76, 28, 2.71, 3894.18, 27, 0.67, 25132.30, 26, 5.27, 6812.77, 25, 0.55, 6279.55,\n 23, 1.38, 4705.73, 22, 0.64, 6256.78, 20, 6.07, 640.88,\n 28923, 5.84384, 6283.07585, 3496, 0.0000, 0.0000, 1682, 5.4877, 12566.1517, 296, 5.196, 155.420, 129, 4.722,\n 3.523, 71, 5.30, 18849.23, 64, 5.97, 242.73, 40, 3.79, 553.57,\n 11408, 3.14159, 0.00000, 772, 4.134, 6283.076, 77, 3.84, 12566.15, 42, 0.42, 155.42,\n 88, 3.14, 0.00, 17, 2.77, 6283.08, 5, 2.01, 155.42, 3, 2.21, 12566.15,\n 27962, 3.19870, 84334.66158, 10164, 5.42249, 5507.55324, 8045, 3.8801, 5223.6939, 4381, 3.7044, 2352.8662, 3193,\n 4.0003, 1577.3435, 2272, 3.9847, 1047.7473, 1814, 4.9837, 6283.0758, 1639, 3.5646, 5856.4777, 1444, 3.7028,\n 9437.7629, 1430, 3.4112, 10213.2855, 1125, 4.8282, 14143.4952, 1090, 2.0857, 6812.7668, 1037, 4.0566,\n 71092.8814, 971, 3.473, 4694.003, 915, 1.142, 6620.890, 878, 4.440, 5753.385, 837, 4.993, 7084.897, 770, 5.554,\n 167621.576, 719, 3.602, 529.691, 692, 4.326, 6275.962, 558, 4.410, 7860.419, 529, 2.484, 4705.732, 521, 6.250,\n 18073.705,\n 903, 3.897, 5507.553, 618, 1.730, 5223.694, 380, 5.244, 2352.866,\n 166, 1.627, 84334.662,\n 10001398880, 0.00000000000, 0.00000000000, 167069963, 3.098463508, 6283.075849991, 1395602, 3.0552461,\n 12566.1517000, 308372, 5.198467, 77713.771468, 162846, 1.173877, 5753.384885, 157557, 2.846852, 7860.419392,\n 92480, 5.45292, 11506.76977, 54244, 4.56409, 3930.20970, 47211, 3.66100, 5884.92685, 34598, 0.96369, 5507.55324,\n 32878, 5.89984, 5223.69392, 30678, 0.29867, 5573.14280, 24319, 4.27350, 11790.62909, 21183, 5.84715, 1577.34354,\n 18575, 5.02194, 10977.07880, 17484, 3.01194, 18849.22755, 10984, 5.05511, 5486.77784, 9832, 0.8868, 6069.7768,\n 8650, 5.6896, 15720.8388, 8583, 1.2708, 161000.6857, 6490, 0.2725, 17260.1547, 6292, 0.9218, 529.6910, 5706,\n 2.0137, 83996.8473, 5574, 5.2416, 71430.6956, 4938, 3.2450, 2544.3144, 4696, 2.5781, 775.5226, 4466, 5.5372,\n 9437.7629, 4252, 6.0111, 6275.9623, 3897, 5.3607, 4694.0030, 3825, 2.3926, 8827.3903, 3749, 0.8295, 19651.0485,\n 3696, 4.9011, 12139.5535, 3566, 1.6747, 12036.4607, 3454, 1.8427, 2942.4634, 3319, 0.2437, 7084.8968, 3192,\n 0.1837, 5088.6288, 3185, 1.7778, 398.1490, 2846, 1.2134, 6286.5990, 2779, 1.8993, 6279.5527, 2628, 4.5890,\n 10447.3878, 2460, 3.7866, 8429.2413, 2393, 4.9960, 5856.4777, 2359, 0.2687, 796.2980, 2329, 2.8078, 14143.4952,\n 2210, 1.9500, 3154.6871, 2035, 4.6527, 2146.1654, 1951, 5.3823, 2352.8662, 1883, 0.6731, 149854.4001, 1833,\n 2.2535, 23581.2582, 1796, 0.1987, 6812.7668, 1731, 6.1520, 16730.4637, 1717, 4.4332, 10213.2855, 1619, 5.2316,\n 17789.8456, 1381, 5.1896, 8031.0923, 1364, 3.6852, 4705.7323, 1314, 0.6529, 13367.9726, 1041, 4.3329,\n 11769.8537, 1017, 1.5939, 4690.4798, 998, 4.201, 6309.374, 966, 3.676, 27511.468, 874, 6.064, 1748.016, 779,\n 3.674, 12168.003, 771, 0.312, 7632.943, 756, 2.626, 6256.778, 746, 5.648, 11926.254, 693, 2.924, 6681.225, 680,\n 1.423, 23013.540, 674, 0.563, 3340.612, 663, 5.661, 11371.705, 659, 3.136, 801.821, 648, 2.650, 19804.827, 615,\n 3.029, 233141.314, 612, 5.134, 1194.447, 563, 4.341, 90955.552, 552, 2.091, 17298.182, 534, 5.100, 31441.678,\n 531, 2.407, 11499.656, 523, 4.624, 6438.496, 513, 5.324, 11513.883, 477, 0.256, 11856.219, 461, 1.722, 7234.794,\n 458, 3.766, 6386.169, 458, 4.466, 5746.271, 423, 1.055, 5760.498, 422, 1.557, 7238.676, 415, 2.599, 7058.598,\n 401, 3.030, 1059.382, 397, 1.201, 1349.867, 379, 4.907, 4164.312, 360, 5.707, 5643.179, 352, 3.626, 244287.600,\n 348, 0.761, 10973.556, 342, 3.001, 4292.331, 336, 4.546, 4732.031, 334, 3.138, 6836.645, 324, 4.164, 9917.697,\n 316, 1.691, 11015.106, 307, 0.238, 35371.887, 298, 1.306, 6283.143, 298, 1.750, 6283.009, 293, 5.738, 16200.773,\n 286, 5.928, 14712.317, 281, 3.515, 21228.392, 280, 5.663, 8635.942, 277, 0.513, 26.298, 268, 4.207, 18073.705,\n 266, 0.900, 12352.853, 260, 2.962, 25132.303, 255, 2.477, 6208.294, 242, 2.800, 709.933, 231, 1.054, 22483.849,\n 229, 1.070, 14314.168, 216, 1.314, 154717.610, 215, 6.038, 10873.986, 200, 0.561, 7079.374, 198, 2.614, 951.718,\n 197, 4.369, 167283.762, 186, 2.861, 5216.580, 183, 1.660, 39302.097, 183, 5.912, 3738.761, 175, 2.145, 6290.189,\n 173, 2.168, 10575.407, 171, 3.702, 1592.596, 171, 1.343, 3128.389, 164, 5.550, 6496.375, 164, 5.856, 10984.192,\n 161, 1.998, 10969.965, 161, 1.909, 6133.513, 157, 4.955, 25158.602, 154, 6.216, 23543.231, 153, 5.357,\n 13521.751, 150, 5.770, 18209.330, 150, 5.439, 155.420, 139, 1.778, 9225.539, 139, 1.626, 5120.601, 128, 2.460,\n 13916.019, 123, 0.717, 143571.324, 122, 2.654, 88860.057, 121, 4.414, 3894.182, 121, 1.192, 3.523, 120, 4.030,\n 553.569, 119, 1.513, 17654.781, 117, 3.117, 14945.316, 113, 2.698, 6040.347, 110, 3.085, 43232.307, 109, 0.998,\n 955.600, 108, 2.939, 17256.632, 107, 5.285, 65147.620, 103, 0.139, 11712.955, 103, 5.850, 213.299, 102, 3.046,\n 6037.244, 101, 2.842, 8662.240, 100, 3.626, 6262.300, 98, 2.36, 6206.81, 98, 5.11, 6172.87, 98, 2.00, 15110.47,\n 97, 2.67, 5650.29, 97, 2.75, 6244.94, 96, 4.02, 6282.10, 96, 5.31, 6284.06, 92, 0.10, 29088.81, 85, 3.26,\n 20426.57, 84, 2.60, 28766.92, 81, 3.58, 10177.26, 80, 5.81, 5230.81, 78, 2.53, 16496.36, 77, 4.06, 6127.66, 73,\n 0.04, 5481.25, 72, 5.96, 12559.04, 72, 5.92, 4136.91, 71, 5.49, 22003.91, 70, 3.41, 7.11, 69, 0.62, 11403.68,\n 69, 3.90, 1589.07, 69, 1.96, 12416.59, 69, 4.51, 426.60, 67, 1.61, 11087.29, 66, 4.50, 47162.52, 66, 5.08,\n 283.86, 66, 4.32, 16858.48, 65, 1.04, 6062.66, 64, 1.59, 18319.54, 63, 5.70, 45892.73, 63, 4.60, 66567.49, 63,\n 3.82, 13517.87, 62, 2.62, 11190.38, 61, 1.54, 33019.02, 60, 5.58, 10344.30, 60, 5.38, 316428.23, 60, 5.78,\n 632.78, 59, 6.12, 9623.69, 57, 0.16, 17267.27, 57, 3.86, 6076.89, 57, 1.98, 7668.64, 56, 4.78, 20199.09, 55,\n 4.56, 18875.53, 55, 3.51, 17253.04, 54, 3.07, 226858.24, 54, 4.83, 18422.63, 53, 5.02, 12132.44, 52, 3.63,\n 5333.90, 52, 0.97, 155427.54, 51, 3.36, 20597.24, 50, 0.99, 11609.86, 50, 2.21, 1990.75, 48, 1.62, 12146.67, 48,\n 1.17, 12569.67, 47, 4.62, 5436.99, 47, 1.81, 12562.63, 47, 0.59, 21954.16, 47, 0.76, 7342.46, 46, 0.27, 4590.91,\n 46, 3.77, 156137.48, 45, 5.66, 10454.50, 44, 5.84, 3496.03, 43, 0.24, 17996.03, 41, 5.93, 51092.73, 41, 4.21,\n 12592.45, 40, 5.14, 1551.05, 40, 5.28, 15671.08, 39, 3.69, 18052.93, 39, 4.94, 24356.78, 38, 2.72, 11933.37, 38,\n 5.23, 7477.52, 38, 4.99, 9779.11, 37, 3.70, 9388.01, 37, 4.44, 4535.06, 36, 2.16, 28237.23, 36, 2.54, 242.73,\n 36, 0.22, 5429.88, 35, 6.15, 19800.95, 35, 2.92, 36949.23, 34, 5.63, 2379.16, 34, 5.73, 16460.33, 34, 5.11,\n 5849.36, 33, 6.19, 6268.85,\n 10301861, 1.10748970, 6283.07584999, 172124, 1.064423, 12566.151700, 70222, 3.14159, 0.00000, 3235, 1.0217,\n 18849.2275, 3080, 2.8435, 5507.5532, 2497, 1.3191, 5223.6939, 1849, 1.4243, 1577.3435, 1008, 5.9138, 10977.0788,\n 865, 1.420, 6275.962, 863, 0.271, 5486.778, 507, 1.686, 5088.629, 499, 6.014, 6286.599, 467, 5.987, 529.691,\n 440, 0.518, 4694.003, 410, 1.084, 9437.763, 387, 4.750, 2544.314, 375, 5.071, 796.298, 352, 0.023, 83996.847,\n 344, 0.949, 71430.696, 341, 5.412, 775.523, 322, 6.156, 2146.165, 286, 5.484, 10447.388, 284, 3.420, 2352.866,\n 255, 6.132, 6438.496, 252, 0.243, 398.149, 243, 3.092, 4690.480, 225, 3.689, 7084.897, 220, 4.952, 6812.767,\n 219, 0.420, 8031.092, 209, 1.282, 1748.016, 193, 5.314, 8429.241, 185, 1.820, 7632.943, 175, 3.229, 6279.553,\n 173, 1.537, 4705.732, 158, 4.097, 11499.656, 158, 5.539, 3154.687, 150, 3.633, 11513.883, 148, 3.222, 7234.794,\n 147, 3.653, 1194.447, 144, 0.817, 14143.495, 135, 6.151, 5746.271, 134, 4.644, 6836.645, 128, 2.693, 1349.867,\n 123, 5.650, 5760.498, 118, 2.577, 13367.973, 113, 3.357, 17789.846, 110, 4.497, 4292.331, 108, 5.828, 12036.461,\n 102, 5.621, 6256.778, 99, 1.14, 1059.38, 98, 0.66, 5856.48, 93, 2.32, 10213.29, 92, 0.77, 16730.46, 88, 1.50,\n 11926.25, 86, 1.42, 5753.38, 85, 0.66, 155.42, 81, 1.64, 6681.22, 80, 4.11, 951.72, 66, 4.55, 5216.58, 65, 0.98,\n 25132.30, 64, 4.19, 6040.35, 64, 0.52, 6290.19, 63, 1.51, 5643.18, 59, 6.18, 4164.31, 57, 2.30, 10973.56, 55,\n 2.32, 11506.77, 55, 2.20, 1592.60, 55, 5.27, 3340.61, 54, 5.54, 553.57, 53, 5.04, 9917.70, 53, 0.92, 11371.70,\n 52, 3.98, 17298.18, 52, 3.60, 10969.97, 49, 5.91, 3894.18, 49, 2.51, 6127.66, 48, 1.67, 12168.00, 46, 0.31,\n 801.82, 42, 3.70, 10575.41, 42, 4.05, 10984.19, 40, 2.17, 7860.42, 40, 4.17, 26.30, 38, 5.82, 7058.60, 37, 3.39,\n 6496.37, 36, 1.08, 6309.37, 36, 5.34, 7079.37, 34, 3.62, 11790.63, 32, 0.32, 16200.77, 31, 4.24, 3738.76, 29,\n 4.55, 11856.22, 29, 1.26, 8635.94, 27, 3.45, 5884.93, 26, 5.08, 10177.26, 26, 5.38, 21228.39, 24, 2.26,\n 11712.96, 24, 1.05, 242.73, 24, 5.59, 6069.78, 23, 3.63, 6284.06, 23, 1.64, 4732.03, 22, 3.46, 213.30, 21, 1.05,\n 3496.03, 21, 3.92, 13916.02, 21, 4.01, 5230.81, 20, 5.16, 12352.85, 20, 0.69, 1990.75, 19, 2.73, 6062.66, 19,\n 5.01, 11015.11, 18, 6.04, 6283.01, 18, 2.85, 7238.68, 18, 5.60, 6283.14, 18, 5.16, 17253.04, 18, 2.54, 14314.17,\n 17, 1.58, 7.11, 17, 0.98, 3930.21, 17, 4.75, 17267.27, 16, 2.19, 6076.89, 16, 2.19, 18073.70, 16, 6.12, 3.52,\n 16, 4.61, 9623.69, 16, 3.40, 16496.36, 15, 0.19, 9779.11, 15, 5.30, 13517.87, 15, 4.26, 3128.39, 15, 0.81,\n 709.93, 14, 0.50, 25158.60, 14, 4.38, 4136.91, 13, 0.98, 65147.62, 13, 3.31, 154717.61, 13, 2.11, 1589.07, 13,\n 1.92, 22483.85, 12, 6.03, 9225.54, 12, 1.53, 12559.04, 12, 5.82, 6282.10, 12, 5.61, 5642.20, 12, 2.38,\n 167283.76, 12, 0.39, 12132.44, 12, 3.98, 4686.89, 12, 5.81, 12569.67, 12, 0.56, 5849.36, 11, 0.45, 6172.87, 11,\n 5.80, 16858.48, 11, 6.22, 12146.67, 11, 2.27, 5429.88,\n 435939, 5.784551, 6283.075850, 12363, 5.57935, 12566.15170, 1234, 3.1416, 0.0000, 879, 3.628, 77713.771, 569,\n 1.870, 5573.143, 330, 5.470, 18849.228, 147, 4.480, 5507.553, 110, 2.842, 161000.686, 101, 2.815, 5223.694, 85,\n 3.11, 1577.34, 65, 5.47, 775.52, 61, 1.38, 6438.50, 50, 4.42, 6286.60, 47, 3.66, 7084.90, 46, 5.39, 149854.40,\n 42, 0.90, 10977.08, 40, 3.20, 5088.63, 35, 1.81, 5486.78, 32, 5.35, 3154.69, 30, 3.52, 796.30, 29, 4.62,\n 4690.48, 28, 1.84, 4694.00, 27, 3.14, 71430.70, 27, 6.17, 6836.65, 26, 1.42, 2146.17, 25, 2.81, 1748.02, 24,\n 2.18, 155.42, 23, 4.76, 7234.79, 21, 3.38, 7632.94, 21, 0.22, 4705.73, 20, 4.22, 1349.87, 20, 2.01, 1194.45, 20,\n 4.58, 529.69, 19, 1.59, 6309.37, 18, 5.70, 6040.35, 18, 6.03, 4292.33, 17, 2.90, 9437.76, 17, 2.00, 8031.09, 17,\n 5.78, 83996.85, 16, 0.05, 2544.31, 15, 0.95, 6127.66, 14, 0.36, 10447.39, 14, 1.48, 2352.87, 13, 0.77, 553.57,\n 13, 5.48, 951.72, 13, 5.27, 6279.55, 13, 3.76, 6812.77, 11, 5.41, 6256.78, 10, 0.68, 1592.60, 10, 4.95, 398.15,\n 10, 1.15, 3894.18, 10, 5.20, 244287.60, 10, 1.94, 11856.22, 9, 5.39, 25132.30, 8, 6.18, 1059.38, 8, 0.69,\n 8429.24, 8, 5.85, 242.73, 7, 5.26, 14143.50, 7, 0.52, 801.82, 6, 2.24, 8635.94, 6, 4.00, 13367.97, 6, 2.77,\n 90955.55, 6, 5.17, 7058.60, 5, 1.46, 233141.31, 5, 4.13, 7860.42, 5, 3.91, 26.30, 5, 3.89, 12036.46, 5, 5.58,\n 6290.19, 5, 5.54, 1990.75, 5, 0.83, 11506.77, 5, 6.22, 6681.22, 4, 5.26, 10575.41, 4, 1.91, 7477.52, 4, 0.43,\n 10213.29, 4, 1.09, 709.93, 4, 5.09, 11015.11, 4, 4.22, 88860.06, 4, 3.57, 7079.37, 4, 1.98, 6284.06, 4, 3.93,\n 10973.56, 4, 6.18, 9917.70, 4, 0.36, 10177.26, 4, 2.75, 3738.76, 4, 3.33, 5643.18, 4, 5.36, 25158.60,\n 14459, 4.27319, 6283.07585, 673, 3.917, 12566.152, 77, 0.00, 0.00, 25, 3.73, 18849.23, 4, 2.80, 6286.60,\n 386, 2.564, 6283.076, 31, 2.27, 12566.15, 5, 3.44, 5573.14, 2, 2.05, 18849.23, 1, 2.06, 77713.77, 1, 4.41,\n 161000.69, 1, 3.82, 149854.40, 1, 4.08, 6127.66, 1, 5.26, 6438.50,\n 9, 1.22, 6283.08, 1, 0.66, 12566.15\n ],\n XL1:[\n [22639.586, 0.78475822, 8328.691424623, 1.5229241, 25.0719, -0.123598, 4586.438, 0.1873974, 7214.06286536, -2.184756, -18.860, 0.08280, 2369.914, 2.5429520, 15542.75428998, -0.661832, 6.212, -0.04080, 769.026, 3.140313, 16657.38284925, 3.04585, 50.144, -0.2472, 666.418, 1.527671, 628.30195521, -0.02664, 0.062, -0.0054, 411.596, 4.826607, 16866.9323150, -1.28012, -1.07, -0.0059, 211.656, 4.115028, -1114.6285593, -3.70768, -43.93, 0.2064, 205.436, 0.230523, 6585.7609101, -2.15812, -18.92, 0.0882, 191.956, 4.898507, 23871.4457146, 0.86109, 31.28, -0.164, 164.729, 2.586078, 14914.4523348, -0.6352, 6.15, -0.035, 147.321, 5.45530, -7700.3894694, -1.5496, -25.01, 0.118, 124.988, 0.48608, 7771.3771450, -0.3309, 3.11, -0.020, 109.380, 3.88323, 8956.9933798, 1.4963, 25.13, -0.129, 55.177, 5.57033, -1324.1780250, 0.6183, 7.3, -0.035, 45.100, 0.89898, 25195.623740, 0.2428, 24.0, -0.129, 39.533, 3.81213, -8538.240890, 2.8030, 26.1, -0.118, 38.430, 4.30115, 22756.817155, -2.8466, -12.6, 0.042, 36.124, 5.49587, 24986.074274, 4.5688, 75.2, -0.371, 30.773, 1.94559, 14428.125731, -4.3695, -37.7, 0.166, 28.397, 3.28586, 7842.364821, -2.2114, -18.8, 0.077, 24.358, 5.64142, 16171.056245, -0.6885, 6.3, -0.046, 18.585, 4.41371, -557.314280, -1.8538, -22.0, 0.10, 17.954, 3.58454, 8399.679100, -0.3576, 3.2, -0.03, 14.530, 4.9416, 23243.143759, 0.888, 31.2, -0.16, 14.380, 0.9709, 32200.137139, 2.384, 56.4, -0.29, 14.251, 5.7641, -2.301200, 1.523, 25.1, -0.12, 13.899, 0.3735, 31085.508580, -1.324, 12.4, -0.08, 13.194, 1.7595, -9443.319984, -5.231, -69.0, 0.33, 9.679, 3.0997, -16029.080894, -3.072, -50.1, 0.24, 9.366, 0.3016, 24080.995180, -3.465, -19.9, 0.08, 8.606, 4.1582, -1742.930514, -3.681, -44.0, 0.21, 8.453, 2.8416, 16100.068570, 1.192, 28.2, -0.14, 8.050, 2.6292, 14286.150380, -0.609, 6.1, -0.03, 7.630, 6.2388, 17285.684804, 3.019, 50.2, -0.25, 7.447, 1.4845, 1256.603910, -0.053, 0.1, -0.01, 7.371, 0.2736, 5957.458955, -2.131, -19.0, 0.09, 7.063, 5.6715, 33.757047, -0.308, -3.6, 0.02, 6.383, 4.7843, 7004.513400, 2.141, 32.4, -0.16, 5.742, 2.6572, 32409.686605, -1.942, 5, -0.05, 4.374, 4.3443, 22128.51520, -2.820, -13, 0.05, 3.998, 3.2545, 33524.31516, 1.766, 49, -0.25, 3.210, 2.2443, 14985.44001, -2.516, -16, 0.06, 2.915, 1.7138, 24499.74767, 0.834, 31, -0.17, 2.732, 1.9887, 13799.82378, -4.343, -38, 0.17, 2.568, 5.4122, -7072.08751, -1.576, -25, 0.11, 2.521, 3.2427, 8470.66678, -2.238, -19, 0.07, 2.489, 4.0719, -486.32660, -3.734, -44, 0.20, 2.146, 5.6135, -1952.47998, 0.645, 7, -0.03, 1.978, 2.7291, 39414.20000, 0.199, 37, -0.21, 1.934, 1.5682, 33314.76570, 6.092, 100, -0.5, 1.871, 0.4166, 30457.20662, -1.297, 12, -0.1, 1.753, 2.0582, -8886.00570, -3.38, -47, 0.2, 1.437, 2.386, -695.87607, 0.59, 7, 0, 1.373, 3.026, -209.54947, 4.33, 51, -0.2, 1.262, 5.940, 16728.37052, 1.17, 28, -0.1, 1.224, 6.172, 6656.74859, -4.04, -41, 0.2, 1.187, 5.873, 6099.43431, -5.89, -63, 0.3, 1.177, 1.014, 31571.83518, 2.41, 56, -0.3, 1.162, 3.840, 9585.29534, 1.47, 25, -0.1, 1.143, 5.639, 8364.73984, -2.18, -19, 0.1, 1.078, 1.229, 70.98768, -1.88, -22, 0.1, 1.059, 3.326, 40528.82856, 3.91, 81, -0.4, 0.990, 5.013, 40738.37803, -0.42, 30, -0.2, 0.948, 5.687, -17772.01141, -6.75, -94, 0.5, 0.876, 0.298, -0.35232, 0, 0, 0, 0.822, 2.994, 393.02097, 0, 0, 0, 0.788, 1.836, 8326.39022, 3.05, 50, -0.2, 0.752, 4.985, 22614.84180, 0.91, 31, -0.2, 0.740, 2.875, 8330.99262, 0, 0, 0, 0.669, 0.744, -24357.77232, -4.60, -75, 0.4, 0.644, 1.314, 8393.12577, -2.18, -19, 0.1, 0.639, 5.888, 575.33849, 0, 0, 0, 0.635, 1.116, 23385.11911, -2.87, -13, 0, 0.584, 5.197, 24428.75999, 2.71, 53, -0.3, 0.583, 3.513, -9095.55517, 0.95, 4, 0, 0.572, 6.059, 29970.88002, -5.03, -32, 0.1, 0.565, 2.960, 0.32863, 1.52, 25, -0.1, 0.561, 4.001, -17981.56087, -2.43, -43, 0.2, 0.557, 0.529, 7143.07519, -0.30, 3, 0, 0.546, 2.311, 25614.37623, 4.54, 75, -0.4, 0.536, 4.229, 15752.30376, -4.99, -45, 0.2, 0.493, 3.316, -8294.9344, -1.83, -29, 0.1, 0.491, 1.744, 8362.4485, 1.21, 21, -0.1, 0.478, 1.803, -10071.6219, -5.20, -69, 0.3, 0.454, 0.857, 15333.2048, 3.66, 57, -0.3, 0.445, 2.071, 8311.7707, -2.18, -19, 0.1, 0.426, 0.345, 23452.6932, -3.44, -20, 0.1, 0.420, 4.941, 33733.8646, -2.56, -2, 0, 0.413, 1.642, 17495.2343, -1.31, -1, 0, 0.404, 1.458, 23314.1314, -0.99, 9, -0.1, 0.395, 2.132, 38299.5714, -3.51, -6, 0, 0.382, 2.700, 31781.3846, -1.92, 5, 0, 0.375, 4.827, 6376.2114, 2.17, 32, -0.2, 0.361, 3.867, 16833.1753, -0.97, 3, 0, 0.358, 5.044, 15056.4277, -4.40, -38, 0.2, 0.350, 5.157, -8257.7037, -3.40, -47, 0.2, 0.344, 4.233, 157.7344, 0, 0, 0, 0.340, 2.672, 13657.8484, -0.58, 6, 0, 0.329, 5.610, 41853.0066, 3.29, 74, -0.4, 0.325, 5.895, -39.8149, 0, 0, 0, 0.309, 4.387, 21500.2132, -2.79, -13, 0.1, 0.302, 1.278, 786.0419, 0, 0, 0, 0.302, 5.341, -24567.3218, -0.27, -24, 0.1, 0.301, 1.045, 5889.8848, -1.57, -12, 0, 0.294, 4.201, -2371.2325, -3.65, -44, 0.2, 0.293, 3.704, 21642.1886, -6.55, -57, 0.2, 0.290, 4.069, 32828.4391, 2.36, 56, -0.3, 0.289, 3.472, 31713.8105, -1.35, 12, -0.1, 0.285, 5.407, -33.7814, 0.31, 4, 0, 0.283, 5.998, -16.9207, -3.71, -44, 0.2, 0.283, 2.772, 38785.8980, 0.23, 37, -0.2, 0.274, 5.343, 15613.7420, -2.54, -16, 0.1, 0.263, 3.997, 25823.9257, 0.22, 24, -0.1, 0.254, 0.600, 24638.3095, -1.61, 2, 0, 0.253, 1.344, 6447.1991, 0.29, 10, -0.1, 0.250, 0.887, 141.9754, -3.76, -44, 0.2, 0.247, 0.317, 5329.1570, -2.10, -19, 0.1, 0.245, 0.141, 36.0484, -3.71, -44, 0.2, 0.231, 2.287, 14357.1381, -2.49, -16, 0.1, 0.227, 5.158, 2.6298, 0, 0, 0, 0.219, 5.085, 47742.8914, 1.72, 63, -0.3, 0.211, 2.145, 6638.7244, -2.18, -19, 0.1, 0.201, 4.415, 39623.7495, -4.13, -14, 0, 0.194, 2.091, 588.4927, 0, 0, 0, 0.193, 3.057, -15400.7789, -3.10, -50, 0, 0.186, 5.598, 16799.3582, -0.72, 6, 0, 0.185, 3.886, 1150.6770, 0, 0, 0, 0.183, 1.619, 7178.0144, 1.52, 25, 0, 0.181, 2.635, 8328.3391, 1.52, 25, 0, 0.181, 2.077, 8329.0437, 1.52, 25, 0, 0.179, 3.215, -9652.8694, -0.90, -18, 0, 0.176, 1.716, -8815.0180, -5.26, -69, 0, 0.175, 5.673, 550.7553, 0, 0, 0, 0.170, 2.060, 31295.0580, -5.6, -39, 0, 0.167, 1.239, 7211.7617, -0.7, 6, 0, 0.165, 4.499, 14967.4158, -0.7, 6, 0, 0.164, 3.595, 15540.4531, 0.9, 31, 0, 0.164, 4.237, 522.3694, 0, 0, 0, 0.163, 4.633, 15545.0555, -2.2, -19, 0, 0.161, 0.478, 6428.0209, -2.2, -19, 0, 0.158, 2.03, 13171.5218, -4.3, -38, 0, 0.157, 2.28, 7216.3641, -3.7, -44, 0, 0.154, 5.65, 7935.6705, 1.5, 25, 0, 0.152, 0.46, 29828.9047, -1.3, 12, 0, 0.151, 1.19, -0.7113, 0, 0, 0, 0.150, 1.42, 23942.4334, -1.0, 9, 0, 0.144, 2.75, 7753.3529, 1.5, 25, 0, 0.137, 2.08, 7213.7105, -2.2, -19, 0, 0.137, 1.44, 7214.4152, -2.2, -19, 0, 0.136, 4.46, -1185.6162, -1.8, -22, 0, 0.136, 3.03, 8000.1048, -2.2, -19, 0, 0.134, 2.83, 14756.7124, -0.7, 6, 0, 0.131, 5.05, 6821.0419, -2.2, -19, 0, 0.128, 5.99, -17214.6971, -4.9, -72, 0, 0.127, 5.35, 8721.7124, 1.5, 25, 0, 0.126, 4.49, 46628.2629, -2.0, 19, 0, 0.125, 5.94, 7149.6285, 1.5, 25, 0, 0.124, 1.09, 49067.0695, 1.1, 55, 0, 0.121, 2.88, 15471.7666, 1.2, 28, 0, 0.111, 3.92, 41643.4571, 7.6, 125, -1, 0.110, 1.96, 8904.0299, 1.5, 25, 0, 0.106, 3.30, -18.0489, -2.2, -19, 0, 0.105, 2.30, -4.9310, 1.5, 25, 0, 0.104, 2.22, -6.5590, -1.9, -22, 0, 0.101, 1.44, 1884.9059, -0.1, 0, 0, 0.100, 5.92, 5471.1324, -5.9, -63, 0, 0.099, 1.12, 15149.7333, -0.7, 6, 0, 0.096, 4.73, 15508.9972, -0.4, 10, 0, 0.095, 5.18, 7230.9835, 1.5, 25, 0, 0.093, 3.37, 39900.5266, 3.9, 81, 0, 0.092, 2.01, 25057.0619, 2.7, 53, 0, 0.092, 1.21, -79.6298, 0, 0, 0, 0.092, 1.65, -26310.2523, -4.0, -68, 0, 0.091, 1.01, 42062.5561, -1.0, 23, 0, 0.090, 6.10, 29342.5781, -5.0, -32, 0, 0.090, 4.43, 15542.4020, -0.7, 6, 0, 0.090, 3.80, 15543.1066, -0.7, 6, 0, 0.089, 4.15, 6063.3859, -2.2, -19, 0, 0.086, 4.03, 52.9691, 0, 0, 0, 0.085, 0.49, 47952.4409, -2.6, 11, 0, 0.085, 1.60, 7632.8154, 2.1, 32, 0, 0.084, 0.22, 14392.0773, -0.7, 6, 0, 0.083, 6.22, 6028.4466, -4.0, -41, 0, 0.083, 0.63, -7909.9389, 2.8, 26, 0, 0.083, 5.20, -77.5523, 0, 0, 0, 0.082, 2.74, 8786.1467, -2.2, -19, 0, 0.080, 2.43, 9166.5428, -2.8, -26, 0, 0.080, 3.70, -25405.1732, 4.1, 27, 0, 0.078, 5.68, 48857.5200, 5.4, 106, -1, 0.077, 1.85, 8315.5735, -2.2, -19, 0, 0.075, 5.46, -18191.1103, 1.9, 8, 0, 0.075, 1.41, -16238.6304, 1.3, 1, 0, 0.074, 5.06, 40110.0761, -0.4, 30, 0, 0.072, 2.10, 64.4343, -3.7, -44, 0, 0.071, 2.17, 37671.2695, -3.5, -6, 0, 0.069, 1.71, 16693.4313, -0.7, 6, 0, 0.069, 3.33, -26100.7028, -8.3, -119, 1, 0.068, 1.09, 8329.4028, 1.5, 25, 0, 0.068, 3.62, 8327.9801, 1.5, 25, 0, 0.068, 2.41, 16833.1509, -1.0, 3, 0, 0.067, 3.40, 24709.2971, -3.5, -20, 0, 0.067, 1.65, 8346.7156, -0.3, 3, 0, 0.066, 2.61, 22547.2677, 1.5, 39, 0, 0.066, 3.50, 15576.5113, -1.0, 3, 0, 0.065, 5.76, 33037.9886, -2.0, 5, 0, 0.065, 4.58, 8322.1325, -0.3, 3, 0, 0.065, 6.20, 17913.9868, 3.0, 50, 0, 0.065, 1.50, 22685.8295, -1.0, 9, 0, 0.065, 2.37, 7180.3058, -1.9, -15, 0, 0.064, 1.06, 30943.5332, 2.4, 56, 0, 0.064, 1.89, 8288.8765, 1.5, 25, 0, 0.064, 4.70, 6.0335, 0.3, 4, 0, 0.063, 2.83, 8368.5063, 1.5, 25, 0, 0.063, 5.66, -2580.7819, 0.7, 7, 0, 0.062, 3.78, 7056.3285, -2.2, -19, 0, 0.061, 1.49, 8294.9100, 1.8, 29, 0, 0.061, 0.12, -10281.1714, -0.9, -18, 0, 0.061, 3.06, -8362.4729, -1.2, -21, 0, 0.061, 4.43, 8170.9571, 1.5, 25, 0, 0.059, 5.78, -13.1179, -3.7, -44, 0, 0.059, 5.97, 6625.5702, -2.2, -19, 0, 0.058, 5.01, -0.5080, -0.3, 0, 0, 0.058, 2.73, 7161.0938, -2.2, -19, 0, 0.057, 0.19, 7214.0629, -2.2, -19, 0, 0.057, 4.00, 22199.5029, -4.7, -35, 0, 0.057, 5.38, 8119.1420, 5.8, 76, 0, 0.056, 1.07, 7542.6495, 1.5, 25, 0, 0.056, 0.28, 8486.4258, 1.5, 25, 0, 0.054, 4.19, 16655.0816, 4.6, 75, 0, 0.053, 0.72, 7267.0320, -2.2, -19, 0, 0.053, 3.12, 12.6192, 0.6, 7, 0, 0.052, 2.99, -32896.013, -1.8, -49, 0, 0.052, 3.46, 1097.708, 0, 0, 0, 0.051, 5.37, -6443.786, -1.6, -25, 0, 0.051, 1.35, 7789.401, -2.2, -19, 0, 0.051, 5.83, 40042.502, 0.2, 38, 0, 0.051, 3.63, 9114.733, 1.5, 25, 0, 0.050, 1.51, 8504.484, -2.5, -22, 0, 0.050, 5.23, 16659.684, 1.5, 25, 0, 0.050, 1.15, 7247.820, -2.5, -23, 0, 0.047, 0.25, -1290.421, 0.3, 0, 0, 0.047, 4.67, -32686.464, -6.1, -100, 0, 0.047, 3.49, 548.678, 0, 0, 0, 0.047, 2.37, 6663.308, -2.2, -19, 0, 0.046, 0.98, 1572.084, 0, 0, 0, 0.046, 2.04, 14954.262, -0.7, 6, 0, 0.046, 3.72, 6691.693, -2.2, -19, 0, 0.045, 6.19, -235.287, 0, 0, 0, 0.044, 2.96, 32967.001, -0.1, 27, 0, 0.044, 3.82, -1671.943, -5.6, -66, 0, 0.043, 5.82, 1179.063, 0, 0, 0, 0.043, 0.07, 34152.617, 1.7, 49, 0, 0.043, 3.71, 6514.773, -0.3, 0, 0, 0.043, 5.62, 15.732, -2.5, -23, 0, 0.043, 5.80, 8351.233, -2.2, -19, 0, 0.042, 0.27, 7740.199, 1.5, 25, 0, 0.042, 6.14, 15385.020, -0.7, 6, 0, 0.042, 6.13, 7285.051, -4.1, -41, 0, 0.041, 1.27, 32757.451, 4.2, 78, 0, 0.041, 4.46, 8275.722, 1.5, 25, 0, 0.040, 0.23, 8381.661, 1.5, 25, 0, 0.040, 5.87, -766.864, 2.5, 29, 0, 0.040, 1.66, 254.431, 0, 0, 0, 0.040, 0.40, 9027.981, -0.4, 0, 0, 0.040, 2.96, 7777.936, 1.5, 25, 0, 0.039, 4.67, 33943.068, 6.1, 100, 0, 0.039, 3.52, 8326.062, 1.5, 25, 0, 0.039, 3.75, 21013.887, -6.5, -57, 0, 0.039, 5.60, 606.978, 0, 0, 0, 0.039, 1.19, 8331.321, 1.5, 25, 0, 0.039, 2.84, 7211.433, -2.2, -19, 0, 0.038, 0.67, 7216.693, -2.2, -19, 0, 0.038, 6.22, 25161.867, 0.6, 28, 0, 0.038, 4.40, 7806.322, 1.5, 25, 0, 0.038, 4.16, 9179.168, -2.2, -19, 0, 0.037, 4.73, 14991.999, -0.7, 6, 0, 0.036, 0.35, 67.514, -0.6, -7, 0, 0.036, 3.70, 25266.611, -1.6, 0, 0, 0.036, 5.39, 16328.796, -0.7, 6, 0, 0.035, 1.44, 7174.248, -2.2, -19, 0, 0.035, 5.00, 15684.730, -4.4, -38, 0, 0.035, 0.39, -15.419, -2.2, -19, 0, 0.035, 6.07, 15020.385, -0.7, 6, 0, 0.034, 6.01, 7371.797, -2.2, -19, 0, 0.034, 0.96, -16623.626, -3.4, -54, 0, 0.033, 6.24, 9479.368, 1.5, 25, 0, 0.033, 3.21, 23661.896, 5.2, 82, 0, 0.033, 4.06, 8311.418, -2.2, -19, 0, 0.033, 2.40, 1965.105, 0, 0, 0, 0.033, 5.17, 15489.785, -0.7, 6, 0, 0.033, 5.03, 21986.540, 0.9, 31, 0, 0.033, 4.10, 16691.140, 2.7, 46, 0, 0.033, 5.13, 47114.589, 1.7, 63, 0, 0.033, 4.45, 8917.184, 1.5, 25, 0, 0.033, 4.23, 2.078, 0, 0, 0, 0.032, 2.33, 75.251, 1.5, 25, 0, 0.032, 2.10, 7253.878, -2.2, -19, 0, 0.032, 3.11, -0.224, 1.5, 25, 0, 0.032, 4.43, 16640.462, -0.7, 6, 0, 0.032, 5.68, 8328.363, 0, 0, 0, 0.031, 5.32, 8329.020, 3.0, 50, 0, 0.031, 3.70, 16118.093, -0.7, 6, 0, 0.030, 3.67, 16721.817, -0.7, 6, 0, 0.030, 5.27, -1881.492, -1.2, -15, 0, 0.030, 5.72, 8157.839, -2.2, -19, 0, 0.029, 5.73, -18400.313, -6.7, -94, 0, 0.029, 2.76, 16.000, -2.2, -19, 0, 0.029, 1.75, 8879.447, 1.5, 25, 0, 0.029, 0.32, 8851.061, 1.5, 25, 0, 0.029, 0.90, 14704.903, 3.7, 57, 0, 0.028, 2.90, 15595.723, -0.7, 6, 0, 0.028, 5.88, 16864.631, 0.2, 24, 0, 0.028, 0.63, 16869.234, -2.8, -26, 0, 0.028, 4.04, -18609.863, -2.4, -43, 0, 0.027, 5.83, 6727.736, -5.9, -63, 0, 0.027, 6.12, 418.752, 4.3, 51, 0, 0.027, 0.14, 41157.131, 3.9, 81, 0, 0.026, 3.80, 15.542, 0, 0, 0, 0.026, 1.68, 50181.698, 4.8, 99, -1, 0.026, 0.32, 315.469, 0, 0, 0, 0.025, 5.67, 19.188, 0.3, 0, 0, 0.025, 3.16, 62.133, -2.2, -19, 0, 0.025, 3.76, 15502.939, -0.7, 6, 0, 0.025, 4.53, 45999.961, -2.0, 19, 0, 0.024, 3.21, 837.851, -4.4, -51, 0, 0.024, 2.82, 38157.596, 0.3, 37, 0, 0.024, 5.21, 15540.124, -0.7, 6, 0, 0.024, 0.26, 14218.576, 0, 13, 0, 0.024, 3.01, 15545.384, -0.7, 6, 0, 0.024, 1.16, -17424.247, -0.6, -21, 0, 0.023, 2.34, -67.574, 0.6, 7, 0, 0.023, 2.44, 18.024, -1.9, -22, 0, 0.023, 3.70, 469.400, 0, 0, 0, 0.023, 0.72, 7136.511, -2.2, -19, 0, 0.023, 4.50, 15582.569, -0.7, 6, 0, 0.023, 2.80, -16586.395, -4.9, -72, 0, 0.023, 1.51, 80.182, 0, 0, 0, 0.023, 1.09, 5261.583, -1.5, -12, 0, 0.023, 0.56, 54956.954, -0.5, 44, 0, 0.023, 4.01, 8550.860, -2.2, -19, 0, 0.023, 4.46, 38995.448, -4.1, -14, 0, 0.023, 3.82, 2358.126, 0, 0, 0, 0.022, 3.77, 32271.125, 0.5, 34, 0, 0.022, 0.82, 15935.775, -0.7, 6, 0, 0.022, 1.07, 24013.421, -2.9, -13, 0, 0.022, 0.40, 8940.078, -2.2, -19, 0, 0.022, 2.06, 15700.489, -0.7, 6, 0, 0.022, 4.27, 15124.002, -5.0, -45, 0, 0.021, 1.16, 56071.583, 3.2, 88, 0, 0.021, 5.58, 9572.189, -2.2, -19, 0, 0.020, 1.70, -17.273, -3.7, -44, 0, 0.020, 3.05, 214.617, 0, 0, 0, 0.020, 4.41, 8391.048, -2.2, -19, 0, 0.020, 5.95, 23869.145, 2.4, 56, 0, 0.020, 0.42, 40947.927, -4.7, -21, 0, 0.019, 1.39, 5818.897, 0.3, 10, 0, 0.019, 0.71, 23873.747, -0.7, 6, 0, 0.019, 2.81, 7291.615, -2.2, -19, 0, 0.019, 5.09, 8428.018, -2.2, -19, 0, 0.019, 4.14, 6518.187, -1.6, -12, 0, 0.019, 3.85, 21.330, 0, 0, 0, 0.018, 0.66, 14445.046, -0.7, 6, 0, 0.018, 1.65, 0.966, -4.0, -48, 0, 0.018, 5.64, -17143.709, -6.8, -94, 0, 0.018, 6.01, 7736.432, -2.2, -19, 0, 0.018, 2.74, 31153.083, -1.9, 5, 0, 0.018, 4.58, 6116.355, -2.2, -19, 0, 0.018, 2.28, 46.401, 0.3, 0, 0, 0.018, 3.80, 10213.597, 1.4, 25, 0, 0.018, 2.84, 56281.132, -1.1, 36, 0, 0.018, 3.53, 8249.062, 1.5, 25, 0, 0.017, 4.43, 20871.911, -3, -13, 0, 0.017, 4.44, 627.596, 0, 0, 0, 0.017, 1.85, 628.308, 0, 0, 0, 0.017, 1.19, 8408.321, 2, 25, 0, 0.017, 1.95, 7214.056, -2, -19, 0, 0.017, 1.57, 7214.070, -2, -19, 0, 0.017, 1.65, 13870.811, -6, -60, 0, 0.017, 0.30, 22.542, -4, -44, 0, 0.017, 2.62, -119.445, 0, 0, 0, 0.016, 4.87, 5747.909, 2, 32, 0, 0.016, 4.45, 14339.108, -1, 6, 0, 0.016, 1.83, 41366.680, 0, 30, 0, 0.016, 4.53, 16309.618, -3, -23, 0, 0.016, 2.54, 15542.754, -1, 6, 0, 0.016, 6.05, 1203.646, 0, 0, 0, 0.015, 5.2, 2751.147, 0, 0, 0, 0.015, 1.8, -10699.924, -5, -69, 0, 0.015, 0.4, 22824.391, -3, -20, 0, 0.015, 2.1, 30666.756, -6, -39, 0, 0.015, 2.1, 6010.417, -2, -19, 0, 0.015, 0.7, -23729.470, -5, -75, 0, 0.015, 1.4, 14363.691, -1, 6, 0, 0.015, 5.8, 16900.689, -2, 0, 0, 0.015, 5.2, 23800.458, 3, 53, 0, 0.015, 5.3, 6035.000, -2, -19, 0, 0.015, 1.2, 8251.139, 2, 25, 0, 0.015, 3.6, -8.860, 0, 0, 0, 0.015, 0.8, 882.739, 0, 0, 0, 0.015, 3.0, 1021.329, 0, 0, 0, 0.015, 0.6, 23296.107, 1, 31, 0, 0.014, 5.4, 7227.181, 2, 25, 0, 0.014, 0.1, 7213.352, -2, -19, 0, 0.014, 4.0, 15506.706, 3, 50, 0, 0.014, 3.4, 7214.774, -2, -19, 0, 0.014, 4.6, 6665.385, -2, -19, 0, 0.014, 0.1, -8.636, -2, -22, 0, 0.014, 3.1, 15465.202, -1, 6, 0, 0.014, 4.9, 508.863, 0, 0, 0, 0.014, 3.5, 8406.244, 2, 25, 0, 0.014, 1.3, 13313.497, -8, -82, 0, 0.014, 2.8, 49276.619, -3, 0, 0, 0.014, 0.1, 30528.194, -3, -10, 0, 0.013, 1.7, 25128.050, 1, 31, 0, 0.013, 2.9, 14128.405, -1, 6, 0, 0.013, 3.4, 57395.761, 3, 80, 0, 0.013, 2.7, 13029.546, -1, 6, 0, 0.013, 3.9, 7802.556, -2, -19, 0, 0.013, 1.6, 8258.802, -2, -19, 0, 0.013, 2.2, 8417.709, -2, -19, 0, 0.013, 0.7, 9965.210, -2, -19, 0, 0.013, 3.4, 50391.247, 0, 48, 0, 0.013, 3.0, 7134.433, -2, -19, 0, 0.013, 2.9, 30599.182, -5, -31, 0, 0.013, 3.6, -9723.857, 1, 0, 0, 0.013, 4.8, 7607.084, -2, -19, 0, 0.012, 0.8, 23837.689, 1, 35, 0, 0.012, 3.6, 4.409, -4, -44, 0, 0.012, 5.0, 16657.031, 3, 50, 0, 0.012, 4.4, 16657.735, 3, 50, 0, 0.012, 1.1, 15578.803, -4, -38, 0, 0.012, 6.0, -11.490, 0, 0, 0, 0.012, 1.9, 8164.398, 0, 0, 0, 0.012, 2.4, 31852.372, -4, -17, 0, 0.012, 2.4, 6607.085, -2, -19, 0, 0.012, 4.2, 8359.870, 0, 0, 0, 0.012, 0.5, 5799.713, -2, -19, 0, 0.012, 2.7, 7220.622, 0, 0, 0, 0.012, 4.3, -139.720, 0, 0, 0, 0.012, 2.3, 13728.836, -2, -16, 0, 0.011, 3.6, 14912.146, 1, 31, 0, 0.011, 4.7, 14916.748, -2, -19, 0],\n [1.67680, 4.66926, 628.301955, -0.0266, 0.1, -0.005, 0.51642, 3.3721, 6585.760910, -2.158, -18.9, 0.09, 0.41383, 5.7277, 14914.452335, -0.635, 6.2, -0.04, 0.37115, 3.9695, 7700.389469, 1.550, 25.0, -0.12, 0.27560, 0.7416, 8956.993380, 1.496, 25.1, -0.13, 0.24599, 4.2253, -2.301200, 1.523, 25.1, -0.12, 0.07118, 0.1443, 7842.36482, -2.211, -19, 0.08, 0.06128, 2.4998, 16171.05625, -0.688, 6, 0, 0.04516, 0.443, 8399.67910, -0.36, 3, 0, 0.04048, 5.771, 14286.15038, -0.61, 6, 0, 0.03747, 4.626, 1256.60391, -0.05, 0, 0, 0.03707, 3.415, 5957.45895, -2.13, -19, 0.1, 0.03649, 1.800, 23243.14376, 0.89, 31, -0.2, 0.02438, 0.042, 16029.08089, 3.07, 50, -0.2, 0.02165, 1.017, -1742.93051, -3.68, -44, 0.2, 0.01923, 3.097, 17285.68480, 3.02, 50, -0.3, 0.01692, 1.280, 0.3286, 1.52, 25, -0.1, 0.01361, 0.298, 8326.3902, 3.05, 50, -0.2, 0.01293, 4.013, 7072.0875, 1.58, 25, -0.1, 0.01276, 4.413, 8330.9926, 0, 0, 0, 0.01270, 0.101, 8470.6668, -2.24, -19, 0.1, 0.01097, 1.203, 22128.5152, -2.82, -13, 0, 0.01088, 2.545, 15542.7543, -0.66, 6, 0, 0.00835, 0.190, 7214.0629, -2.18, -19, 0.1, 0.00734, 4.855, 24499.7477, 0.83, 31, -0.2, 0.00686, 5.130, 13799.8238, -4.34, -38, 0.2, 0.00631, 0.930, -486.3266, -3.73, -44, 0, 0.00585, 0.699, 9585.2953, 1.5, 25, 0, 0.00566, 4.073, 8328.3391, 1.5, 25, 0, 0.00566, 0.638, 8329.0437, 1.5, 25, 0, 0.00539, 2.472, -1952.4800, 0.6, 7, 0, 0.00509, 2.88, -0.7113, 0, 0, 0, 0.00469, 3.56, 30457.2066, -1.3, 12, 0, 0.00387, 0.78, -0.3523, 0, 0, 0, 0.00378, 1.84, 22614.8418, 0.9, 31, 0, 0.00362, 5.53, -695.8761, 0.6, 7, 0, 0.00317, 2.80, 16728.3705, 1.2, 28, 0, 0.00303, 6.07, 157.7344, 0, 0, 0, 0.00300, 2.53, 33.7570, -0.3, -4, 0, 0.00295, 4.16, 31571.8352, 2.4, 56, 0, 0.00289, 5.98, 7211.7617, -0.7, 6, 0, 0.00285, 2.06, 15540.4531, 0.9, 31, 0, 0.00283, 2.65, 2.6298, 0, 0, 0, 0.00282, 6.17, 15545.0555, -2.2, -19, 0, 0.00278, 1.23, -39.8149, 0, 0, 0, 0.00272, 3.82, 7216.3641, -3.7, -44, 0, 0.00270, 4.37, 70.9877, -1.9, -22, 0, 0.00256, 5.81, 13657.8484, -0.6, 6, 0, 0.00244, 5.64, -0.2237, 1.5, 25, 0, 0.00240, 2.96, 8311.7707, -2.2, -19, 0, 0.00239, 0.87, -33.7814, 0.3, 4, 0, 0.00216, 2.31, 15.9995, -2.2, -19, 0, 0.00186, 3.46, 5329.1570, -2.1, -19, 0, 0.00169, 2.40, 24357.772, 4.6, 75, 0, 0.00161, 5.80, 8329.403, 1.5, 25, 0, 0.00161, 5.20, 8327.980, 1.5, 25, 0, 0.00160, 4.26, 23385.119, -2.9, -13, 0, 0.00156, 1.26, 550.755, 0, 0, 0, 0.00155, 1.25, 21500.213, -2.8, -13, 0, 0.00152, 0.60, -16.921, -3.7, -44, 0, 0.00150, 2.71, -79.630, 0, 0, 0, 0.00150, 5.29, 15.542, 0, 0, 0, 0.00148, 1.06, -2371.232, -3.7, -44, 0, 0.00141, 0.77, 8328.691, 1.5, 25, 0, 0.00141, 3.67, 7143.075, -0.3, 0, 0, 0.00138, 5.45, 25614.376, 4.5, 75, 0, 0.00129, 4.90, 23871.446, 0.9, 31, 0, 0.00126, 4.03, 141.975, -3.8, -44, 0, 0.00124, 6.01, 522.369, 0, 0, 0, 0.00120, 4.94, -10071.622, -5.2, -69, 0, 0.00118, 5.07, -15.419, -2.2, -19, 0, 0.00107, 3.49, 23452.693, -3.4, -20, 0, 0.00104, 4.78, 17495.234, -1.3, 0, 0, 0.00103, 1.44, -18.049, -2.2, -19, 0, 0.00102, 5.63, 15542.402, -0.7, 6, 0, 0.00102, 2.59, 15543.107, -0.7, 6, 0, 0.00100, 4.11, -6.559, -1.9, -22, 0, 0.00097, 0.08, 15400.779, 3.1, 50, 0, 0.00096, 5.84, 31781.385, -1.9, 5, 0, 0.00094, 1.08, 8328.363, 0, 0, 0, 0.00094, 2.46, 16799.358, -0.7, 6, 0, 0.00094, 1.69, 6376.211, 2.2, 32, 0, 0.00093, 3.64, 8329.020, 3.0, 50, 0, 0.00093, 2.65, 16655.082, 4.6, 75, 0, 0.00090, 1.90, 15056.428, -4.4, -38, 0, 0.00089, 1.59, 52.969, 0, 0, 0, 0.00088, 2.02, -8257.704, -3.4, -47, 0, 0.00088, 3.02, 7213.711, -2.2, -19, 0, 0.00087, 0.50, 7214.415, -2.2, -19, 0, 0.00087, 0.49, 16659.684, 1.5, 25, 0, 0.00082, 5.64, -4.931, 1.5, 25, 0, 0.00079, 5.17, 13171.522, -4.3, -38, 0, 0.00076, 3.60, 29828.905, -1.3, 12, 0, 0.00076, 4.08, 24567.322, 0.3, 24, 0, 0.00076, 4.58, 1884.906, -0.1, 0, 0, 0.00073, 0.33, 31713.811, -1.4, 12, 0, 0.00073, 0.93, 32828.439, 2.4, 56, 0, 0.00071, 5.91, 38785.898, 0.2, 37, 0, 0.00069, 2.20, 15613.742, -2.5, -16, 0, 0.00066, 3.87, 15.732, -2.5, -23, 0, 0.00066, 0.86, 25823.926, 0.2, 24, 0, 0.00065, 2.52, 8170.957, 1.5, 25, 0, 0.00063, 0.18, 8322.132, -0.3, 0, 0, 0.00060, 5.84, 8326.062, 1.5, 25, 0, 0.00060, 5.15, 8331.321, 1.5, 25, 0, 0.00060, 2.18, 8486.426, 1.5, 25, 0, 0.00058, 2.30, -1.731, -4, -44, 0, 0.00058, 5.43, 14357.138, -2, -16, 0, 0.00057, 3.09, 8294.910, 2, 29, 0, 0.00057, 4.67, -8362.473, -1, -21, 0, 0.00056, 4.15, 16833.151, -1, 0, 0, 0.00054, 1.93, 7056.329, -2, -19, 0, 0.00054, 5.27, 8315.574, -2, -19, 0, 0.00052, 5.6, 8311.418, -2, -19, 0, 0.00052, 2.7, -77.552, 0, 0, 0, 0.00051, 4.3, 7230.984, 2, 25, 0, 0.00050, 0.4, -0.508, 0, 0, 0, 0.00049, 5.4, 7211.433, -2, -19, 0, 0.00049, 4.4, 7216.693, -2, -19, 0, 0.00049, 4.3, 16864.631, 0, 24, 0, 0.00049, 2.2, 16869.234, -3, -26, 0, 0.00047, 6.1, 627.596, 0, 0, 0, 0.00047, 5.0, 12.619, 1, 7, 0, 0.00045, 4.9, -8815.018, -5, -69, 0, 0.00044, 1.6, 62.133, -2, -19, 0, 0.00042, 2.9, -13.118, -4, -44, 0, 0.00042, 4.1, -119.445, 0, 0, 0, 0.00041, 4.3, 22756.817, -3, -13, 0, 0.00041, 3.6, 8288.877, 2, 25, 0, 0.00040, 0.5, 6663.308, -2, -19, 0, 0.00040, 1.1, 8368.506, 2, 25, 0, 0.00039, 4.1, 6443.786, 2, 25, 0, 0.00039, 3.1, 16657.383, 3, 50, 0, 0.00038, 0.1, 16657.031, 3, 50, 0, 0.00038, 3.0, 16657.735, 3, 50, 0, 0.00038, 4.6, 23942.433, -1, 9, 0, 0.00037, 4.3, 15385.020, -1, 6, 0, 0.00037, 5.0, 548.678, 0, 0, 0, 0.00036, 1.8, 7213.352, -2, -19, 0, 0.00036, 1.7, 7214.774, -2, -19, 0, 0.00035, 1.1, 7777.936, 2, 25, 0, 0.00035, 1.6, -8.860, 0, 0, 0, 0.00035, 4.4, 23869.145, 2, 56, 0, 0.00035, 2.0, 6691.693, -2, -19, 0, 0.00034, 1.3, -1185.616, -2, -22, 0, 0.00034, 2.2, 23873.747, -1, 6, 0, 0.00033, 2.0, -235.287, 0, 0, 0, 0.00033, 3.1, 17913.987, 3, 50, 0, 0.00033, 1.0, 8351.233, -2, -19, 0],\n [0.004870, 4.6693, 628.30196, -0.027, 0, -0.01, 0.002280, 2.6746, -2.30120, 1.523, 25, -0.12, 0.001500, 3.372, 6585.76091, -2.16, -19, 0.1, 0.001200, 5.728, 14914.45233, -0.64, 6, 0, 0.001080, 3.969, 7700.38947, 1.55, 25, -0.1, 0.000800, 0.742, 8956.99338, 1.50, 25, -0.1, 0.000254, 6.002, 0.3286, 1.52, 25, -0.1, 0.000210, 0.144, 7842.3648, -2.21, -19, 0, 0.000180, 2.500, 16171.0562, -0.7, 6, 0, 0.000130, 0.44, 8399.6791, -0.4, 3, 0, 0.000126, 5.03, 8326.3902, 3.0, 50, 0, 0.000120, 5.77, 14286.1504, -0.6, 6, 0, 0.000118, 5.96, 8330.9926, 0, 0, 0, 0.000110, 1.80, 23243.1438, 0.9, 31, 0, 0.000110, 3.42, 5957.4590, -2.1, -19, 0, 0.000110, 4.63, 1256.6039, -0.1, 0, 0, 0.000099, 4.70, -0.7113, 0, 0, 0, 0.000070, 0.04, 16029.0809, 3.1, 50, 0, 0.000070, 5.14, 8328.3391, 1.5, 25, 0, 0.000070, 5.85, 8329.0437, 1.5, 25, 0, 0.000060, 1.02, -1742.9305, -3.7, -44, 0, 0.000060, 3.10, 17285.6848, 3.0, 50, 0, 0.000054, 5.69, -0.352, 0, 0, 0, 0.000043, 0.52, 15.542, 0, 0, 0, 0.000041, 2.03, 2.630, 0, 0, 0, 0.000040, 0.10, 8470.667, -2.2, -19, 0, 0.000040, 4.01, 7072.088, 1.6, 25, 0, 0.000036, 2.93, -8.860, -0.3, 0, 0, 0.000030, 1.20, 22128.515, -2.8, -13, 0, 0.000030, 2.54, 15542.754, -0.7, 6, 0, 0.000027, 4.43, 7211.762, -0.7, 6, 0, 0.000026, 0.51, 15540.453, 0.9, 31, 0, 0.000026, 1.44, 15545.055, -2.2, -19, 0, 0.000025, 5.37, 7216.364, -3.7, -44, 0],\n [0.00001200, 1.041, -2.3012, 1.52, 25, -0.1, 0.00000170, 0.31, -0.711, 0, 0, 0]\n ],\n QI_KB:[1640650.479938, 15.21842500,\n 1642476.703182, 15.21874996,\n 1683430.515601, 15.218750011,\n 1752157.640664, 15.218749978,\n 1807675.003759, 15.218620279,\n 1883627.765182, 15.218612292,\n 1907369.128100, 15.218449176,\n 1936603.140413, 15.218425000,\n 1939145.524180, 15.218466998,\n 1947180.798300, 15.218524844,\n 1964362.041824, 15.218533526,\n 1987372.340971, 15.218513908,\n 1999653.819126, 15.218530782,\n 2007445.469786, 15.218535181,\n 2021324.917146, 15.218526248,\n 2047257.232342, 15.218519654,\n 2070282.898213, 15.218425000,\n 2073204.872850, 15.218515221,\n 2080144.500926, 15.218530782,\n 2086703.688963, 15.218523776,\n 2110033.182763, 15.218425000,\n 2111190.300888, 15.218425000,\n 2113731.271005, 15.218515671,\n 2120670.840263, 15.218425000,\n 2123973.309063, 15.218425000,\n 2125068.997336, 15.218477932,\n 2136026.312633, 15.218472436,\n 2156099.495538, 15.218425000,\n 2159021.324663, 15.218425000,\n 2162308.575254, 15.218461742,\n 2178485.706538, 15.218425000,\n 2178759.662849, 15.218445786,\n 2185334.020800, 15.218425000,\n 2187525.481425, 15.218425000,\n 2188621.191481, 15.218437494,\n 2322147.76\n ],\n QB:_decode('FrcFs22AFsckF2tsDtFqEtF1posFdFgiFseFtmelpsEfhkF2anmelpFlF1ikrotcnEqEq2FfqmcDsrFor22FgFrcgDscFs22FgEeFtE2sfFs22sCoEsaF2tsD1FpeE2eFsssEciFsFnmelpFcFhkF2tcnEqEpFgkrotcnEqrEtFermcDsrE222FgBmcmr22DaEfnaF222sD1FpeForeF2tssEfiFpEoeFssD1iFstEqFppDgFstcnEqEpFg11FscnEqrAoAF2ClAEsDmDtCtBaDlAFbAEpAAAAAD2FgBiBqoBbnBaBoAAAAAAAEgDqAdBqAFrBaBoACdAAf1AACgAAAeBbCamDgEifAE2AABa1C1BgFdiAAACoCeE1ADiEifDaAEqAAFe1AcFbcAAAAAF1iFaAAACpACmFmAAAAAAAACrDaAAADG0'),\n SHUO_KB:[1457698.231017, 29.53067166, 1546082.512234, 29.53085106, 1640640.735300, 29.53060000, 1642472.151543, 29.53085439, 1683430.509300, 29.53086148, 1752148.041079, 29.53085097, 1807665.420323, 29.53059851, 1883618.114100, 29.53060000, 1907360.704700, 29.53060000, 1936596.224900, 29.53060000, 1939135.675300, 29.53060000, 1947168.00],\n SB:_decode('EqoFscDcrFpmEsF2DfFideFelFpFfFfFiaipqti1ksttikptikqckstekqttgkqttgkqteksttikptikq2fjstgjqttjkqttgkqtekstfkptikq2tijstgjiFkirFsAeACoFsiDaDiADc1AFbBfgdfikijFifegF1FhaikgFag1E2btaieeibggiffdeigFfqDfaiBkF1kEaikhkigeidhhdiegcFfakF1ggkidbiaedksaFffckekidhhdhdikcikiakicjF1deedFhFccgicdekgiFbiaikcfi1kbFibefgEgFdcFkFeFkdcfkF1kfkcickEiFkDacFiEfbiaejcFfffkhkdgkaiei1ehigikhdFikfckF1dhhdikcfgjikhfjicjicgiehdikcikggcifgiejF1jkieFhegikggcikFegiegkfjebhigikggcikdgkaFkijcfkcikfkcifikiggkaeeigefkcdfcfkhkdgkegieidhijcFfakhfgeidieidiegikhfkfckfcjbdehdikggikgkfkicjicjF1dbidikFiggcifgiejkiegkigcdiegfggcikdbgfgefjF1kfegikggcikdgFkeeijcfkcikfkekcikdgkabhkFikaffcfkhkdgkegbiaekfkiakicjhfgqdq2fkiakgkfkhfkfcjiekgFebicggbedF1jikejbbbiakgbgkacgiejkijjgigfiakggfggcibFifjefjF1kfekdgjcibFeFkijcfkfhkfkeaieigekgbhkfikidfcjeaibgekgdkiffiffkiakF1jhbakgdki1dj1ikfkicjicjieeFkgdkicggkighdF1jfgkgfgbdkicggfggkidFkiekgijkeigfiskiggfaidheigF1jekijcikickiggkidhhdbgcfkFikikhkigeidieFikggikhkffaffijhidhhakgdkhkijF1kiakF1kfheakgdkifiggkigicjiejkieedikgdfcggkigieeiejfgkgkigbgikicggkiaideeijkefjeijikhkiggkiaidheigcikaikffikijgkiahi1hhdikgjfifaakekighie1hiaikggikhkffakicjhiahaikggikhkijF1kfejfeFhidikggiffiggkigicjiekgieeigikggiffiggkidheigkgfjkeigiegikifiggkidhedeijcfkFikikhkiggkidhh1ehigcikaffkhkiggkidhh1hhigikekfiFkFikcidhh1hitcikggikhkfkicjicghiediaikggikhkijbjfejfeFhaikggifikiggkigiejkikgkgieeigikggiffiggkigieeigekijcijikggifikiggkideedeijkefkfckikhkiggkidhh1ehijcikaffkhkiggkidhh1hhigikhkikFikfckcidhh1hiaikgjikhfjicjicgiehdikcikggifikigiejfejkieFhegikggifikiggfghigkfjeijkhigikggifikiggkigieeijcijcikfksikifikiggkidehdeijcfdckikhkiggkhghh1ehijikifffffkhsFngErD1pAfBoDd1BlEtFqA2AqoEpDqElAEsEeB2BmADlDkqBtC1FnEpDqnEmFsFsAFnllBbFmDsDiCtDmAB2BmtCgpEplCpAEiBiEoFqFtEqsDcCnFtADnFlEgdkEgmEtEsCtDmADqFtAFrAtEcCqAE1BoFqC1F1DrFtBmFtAC2ACnFaoCgADcADcCcFfoFtDlAFgmFqBq2bpEoAEmkqnEeCtAE1bAEqgDfFfCrgEcBrACfAAABqAAB1AAClEnFeCtCgAADqDoBmtAAACbFiAAADsEtBqAB2FsDqpFqEmFsCeDtFlCeDtoEpClEqAAFrAFoCgFmFsFqEnAEcCqFeCtFtEnAEeFtAAEkFnErAABbFkADnAAeCtFeAfBoAEpFtAABtFqAApDcCGJ'),\n nutationLon2:function(t){\n var a = -1.742 * t;\n var t2 = t * t;\n var dl = 0;\n for (var i = 0, j = this.NUT_B.length; i < j; i += 5) {\n dl += (this.NUT_B[i + 3] + a) * Math.sin(this.NUT_B[i] + this.NUT_B[i + 1] * t + this.NUT_B[i + 2] * t2);\n a = 0;\n }\n return dl / 100 / this.SECOND_PER_RAD;\n },\n eLon:function(t,n){\n t /= 10;\n var v = 0;\n var tn = 1;\n var n1;\n var n2;\n var m;\n var c;\n var pn = 1;\n var n0;\n var m0 = this.XL0[pn + 1] - this.XL0[pn];\n for (var i = 0; i < 6; i++, tn *= t) {\n n1 = Math.floor(this.XL0[pn + i]);\n n2 = Math.floor(this.XL0[pn + 1 + i]);\n n0 = n2 - n1;\n if (n0 === 0) {\n continue;\n }\n if (n < 0) {\n m = n2;\n } else {\n m = Math.floor((3 * n * n0 / m0 + 0.5) + n1);\n if (i !== 0) {\n m += 3;\n }\n if (m > n2) {\n m = n2;\n }\n }\n c = 0;\n for (var j = n1; j < m; j += 3) {\n c += this.XL0[j] * Math.cos(this.XL0[j + 1] + t * this.XL0[j + 2]);\n }\n v += c * tn;\n }\n v /= this.XL0[0];\n var t2 = t * t;\n v += (-0.0728 - 2.7702 * t - 1.1019 * t2 - 0.0996 * t2 * t) / this.SECOND_PER_RAD;\n return v;\n },\n mLon:function(t,n){\n var ob = this.XL1;\n var obl = ob[0].length;\n var tn = 1;\n var v = 0;\n var j;\n var c;\n var t2 = t * t;\n var t3 = t2 * t;\n var t4 = t3 * t;\n var t5 = t4 * t;\n var tx = t - 10;\n v += (3.81034409 + 8399.684730072 * t - 3.319e-05 * t2 + 3.11e-08 * t3 - 2.033e-10 * t4) * this.SECOND_PER_RAD;\n v += 5028.792262 * t + 1.1124406 * t2 + 0.00007699 * t3 - 0.000023479 * t4 - 0.0000000178 * t5;\n if (tx > 0) {\n v += -0.866 + 1.43 * tx + 0.054 * tx * tx;\n }\n t2 /= 1e4;\n t3 /= 1e8;\n t4 /= 1e8;\n\n n *= 6;\n if (n < 0) {\n n = obl;\n }\n for (var i = 0, x = ob.length; i < x; i++, tn *= t) {\n var f = ob[i];\n var l = f.length;\n var m = Math.floor((n * l / obl + 0.5));\n if (i > 0) {\n m += 6;\n }\n if (m >= l) {\n m = l;\n }\n for (j = 0, c = 0; j < m; j += 6) {\n c += f[j] * Math.cos(f[j + 1] + t * f[j + 2] + t2 * f[j + 3] + t3 * f[j + 4] + t4 * f[j + 5]);\n }\n v += c * tn;\n }\n v /= this.SECOND_PER_RAD;\n return v;\n },\n gxcSunLon:function(t){\n var t2 = t * t;\n var v = -0.043126 + 628.301955 * t - 0.000002732 * t2;\n var e = 0.016708634 - 0.000042037 * t - 0.0000001267 * t2;\n return -20.49552 * (1 + e * Math.cos(v)) / this.SECOND_PER_RAD;\n },\n ev:function(t){\n var f = 628.307585 * t;\n return 628.332 + 21 * Math.sin(1.527 + f) + 0.44 * Math.sin(1.48 + f * 2) + 0.129 * Math.sin(5.82 + f) * t + 0.00055 * Math.sin(4.21 + f) * t * t;\n },\n saLon:function(t,n){\n return this.eLon(t, n) + this.nutationLon2(t) + this.gxcSunLon(t) + Math.PI;\n },\n dtExt:function(y,jsd){\n var dy = (y - 1820) / 100;\n return -20 + jsd * dy * dy;\n },\n dtCalc:function(y){\n var size = this.DT_AT.length;\n var y0 = this.DT_AT[size - 2];\n var t0 = this.DT_AT[size - 1];\n if (y >= y0) {\n var jsd = 31;\n if (y > y0 + 100) {\n return this.dtExt(y, jsd);\n }\n return this.dtExt(y, jsd) - (this.dtExt(y0, jsd) - t0) * (y0 + 100 - y) / 100;\n }\n var i;\n for (i = 0; i < size; i += 5) {\n if (y < this.DT_AT[i + 5]) {\n break;\n }\n }\n var t1 = (y - this.DT_AT[i]) / (this.DT_AT[i + 5] - this.DT_AT[i]) * 10;\n var t2 = t1 * t1;\n var t3 = t2 * t1;\n return this.DT_AT[i + 1] + this.DT_AT[i + 2] * t1 + this.DT_AT[i + 3] * t2 + this.DT_AT[i + 4] * t3;\n },\n dtT:function(t){\n return this.dtCalc(t / 365.2425 + 2000) / this.SECOND_PER_DAY;\n },\n mv:function(t){\n var v = 8399.71 - 914 * Math.sin(0.7848 + 8328.691425 * t + 0.0001523 * t * t);\n v -= 179 * Math.sin(2.543 + 15542.7543 * t) + 160 * Math.sin(0.1874 + 7214.0629 * t) + 62 * Math.sin(3.14 + 16657.3828 * t) + 34 * Math.sin(4.827 + 16866.9323 * t) + 22 * Math.sin(4.9 + 23871.4457 * t) + 12 * Math.sin(2.59 + 14914.4523 * t) + 7 * Math.sin(0.23 + 6585.7609 * t) + 5 * Math.sin(0.9 + 25195.624 * t) + 5 * Math.sin(2.32 - 7700.3895 * t) + 5 * Math.sin(3.88 + 8956.9934 * t) + 5 * Math.sin(0.49 + 7771.3771 * t);\n return v;\n },\n saLonT:function(w){\n var t;\n var v = 628.3319653318;\n t = (w - 1.75347 - Math.PI) / v;\n v = this.ev(t);\n t += (w - this.saLon(t, 10)) / v;\n v = this.ev(t);\n t += (w - this.saLon(t, -1)) / v;\n return t;\n },\n msaLon:function(t,mn,sn){\n return this.mLon(t, mn) + (-3.4E-6) - (this.eLon(t, sn) + this.gxcSunLon(t) + Math.PI);\n },\n msaLonT:function(w){\n var t;\n var v = 7771.37714500204;\n t = (w + 1.08472) / v;\n t += (w - this.msaLon(t, 3, 3)) / v;\n v = this.mv(t) - this.ev(t);\n t += (w - this.msaLon(t, 20, 10)) / v;\n t += (w - this.msaLon(t, -1, 60)) / v;\n return t;\n },\n saLonT2:function(w){\n var v = 628.3319653318;\n var t = (w - 1.75347 - Math.PI) / v;\n t -= (0.000005297 * t * t + 0.0334166 * Math.cos(4.669257 + 628.307585 * t) + 0.0002061 * Math.cos(2.67823 + 628.307585 * t) * t) / v;\n t += (w - ShouXingUtil.eLon(t, 8) - Math.PI + (20.5 + 17.2 * Math.sin(2.1824 - 33.75705 * t)) / this.SECOND_PER_RAD) / v;\n return t;\n },\n msaLonT2:function(w){\n var t;\n var l;\n var v = 7771.37714500204;\n t = (w + 1.08472) / v;\n var t2 = t * t;\n t -= (-0.00003309 * t2 + 0.10976 * Math.cos(0.784758 + 8328.6914246 * t + 0.000152292 * t2) + 0.02224 * Math.cos(0.18740 + 7214.0628654 * t - 0.00021848 * t2) - 0.03342 * Math.cos(4.669257 + 628.307585 * t)) / v;\n t2 = t * t;\n l = this.mLon(t, 20) - (4.8950632 + 628.3319653318 * t + 0.000005297 * t2 + 0.0334166 * Math.cos(4.669257 + 628.307585 * t) + 0.0002061 * Math.cos(2.67823 + 628.307585 * t) * t + 0.000349 * Math.cos(4.6261 + 1256.61517 * t) - 20.5 / this.SECOND_PER_RAD);\n v = 7771.38 - 914 * Math.sin(0.7848 + 8328.691425 * t + 0.0001523 * t2) - 179 * Math.sin(2.543 + 15542.7543 * t) - 160 * Math.sin(0.1874 + 7214.0629 * t);\n t += (w - l) / v;\n return t;\n },\n qiHigh:function(w){\n var t = this.saLonT2(w) * 36525;\n t = t - this.dtT(t) + this.ONE_THIRD;\n var v = ((t + 0.5) % 1) * this.SECOND_PER_DAY;\n if (v < 1200 || v > this.SECOND_PER_DAY - 1200) {\n t = this.saLonT(w) * 36525 - this.dtT(t) + this.ONE_THIRD;\n }\n return t;\n },\n shuoHigh:function(w){\n var t = this.msaLonT2(w) * 36525;\n t = t - this.dtT(t) + this.ONE_THIRD;\n var v = ((t + 0.5) % 1) * this.SECOND_PER_DAY;\n if (v < 1800 || v > this.SECOND_PER_DAY - 1800) {\n t = this.msaLonT(w) * 36525 - this.dtT(t) + this.ONE_THIRD;\n }\n return t;\n },\n qiLow:function(w){\n var v = 628.3319653318;\n var t = (w - 4.895062166) / v;\n t -= (53 * t * t + 334116 * Math.cos(4.67 + 628.307585 * t) + 2061 * Math.cos(2.678 + 628.3076 * t) * t) / v / 10000000;\n var n = 48950621.66 + 6283319653.318 * t + 53 * t * t + 334166 * Math.cos(4.669257 + 628.307585 * t) + 3489 * Math.cos(4.6261 + 1256.61517 * t) + 2060.6 * Math.cos(2.67823 + 628.307585 * t) * t - 994 - 834 * Math.sin(2.1824 - 33.75705 * t);\n t -= (n / 10000000 - w) / 628.332 + (32 * (t + 1.8) * (t + 1.8) - 20) / this.SECOND_PER_DAY / 36525;\n return t * 36525 + this.ONE_THIRD;\n },\n shuoLow:function(w){\n var v = 7771.37714500204;\n var t = (w + 1.08472) / v;\n t -= (-0.0000331 * t * t + 0.10976 * Math.cos(0.785 + 8328.6914 * t) + 0.02224 * Math.cos(0.187 + 7214.0629 * t) - 0.03342 * Math.cos(4.669 + 628.3076 * t)) / v + (32 * (t + 1.8) * (t + 1.8) - 20) / this.SECOND_PER_DAY / 36525;\n return t * 36525 + this.ONE_THIRD;\n },\n calcShuo:function(jd){\n var size = this.SHUO_KB.length;\n var d = 0;\n var pc = 14;\n var i;\n jd += Solar.J2000;\n var f1 = this.SHUO_KB[0] - pc, f2 = this.SHUO_KB[size - 1] - pc, f3 = 2436935;\n if (jd < f1 || jd >= f3) {\n d = Math.floor(this.shuoHigh(Math.floor((jd + pc - 2451551) / 29.5306) * Math.PI * 2) + 0.5);\n } else if (jd >= f1 && jd < f2) {\n for (i = 0; i < size; i += 2) {\n if (jd + pc < this.SHUO_KB[i + 2]) {\n break;\n }\n }\n d = this.SHUO_KB[i] + this.SHUO_KB[i + 1] * Math.floor((jd + pc - this.SHUO_KB[i]) / this.SHUO_KB[i + 1]);\n d = Math.floor(d + 0.5);\n if (d === 1683460) {\n d++;\n }\n d -= Solar.J2000;\n } else if (jd >= f2 && jd < f3) {\n d = Math.floor(this.shuoLow(Math.floor((jd + pc - 2451551) / 29.5306) * Math.PI * 2) + 0.5);\n var from = Math.floor((jd - f2) / 29.5306);\n var n = this.SB.substring(from, from+1);\n if ('1' === n) {\n d += 1;\n } else if ('2' === n) {\n d -= 1;\n }\n }\n return d;\n },\n calcQi:function(jd){\n var size = this.QI_KB.length;\n var d = 0;\n var pc = 7, i;\n jd += Solar.J2000;\n var f1 = this.QI_KB[0] - pc, f2 = this.QI_KB[size - 1] - pc, f3 = 2436935;\n if (jd < f1 || jd >= f3) {\n d = Math.floor(this.qiHigh(Math.floor((jd + pc - 2451259) / 365.2422 * 24) * Math.PI / 12) + 0.5);\n } else if (jd >= f1 && jd < f2) {\n for (i = 0; i < size; i += 2) {\n if (jd + pc < this.QI_KB[i + 2]) {\n break;\n }\n }\n d = this.QI_KB[i] + this.QI_KB[i + 1] * Math.floor((jd + pc - this.QI_KB[i]) / this.QI_KB[i + 1]);\n d = Math.floor(d + 0.5);\n if (d === 1683460) {\n d++;\n }\n d -= Solar.J2000;\n } else if (jd >= f2 && jd < f3) {\n d = Math.floor(this.qiLow(Math.floor((jd + pc - 2451259) / 365.2422 * 24) * Math.PI / 12) + 0.5);\n var from = Math.floor((jd - f2) / 365.2422 * 24);\n var n = this.QB.substring(from, from + 1);\n if ('1' === n) {\n d += 1;\n } else if ('2' === n) {\n d -= 1;\n }\n }\n return d;\n },\n qiAccurate:function(w){\n var t = this.saLonT(w) * 36525;\n return t - this.dtT(t) + this.ONE_THIRD;\n },\n qiAccurate2:function(jd){\n var d = Math.PI / 12;\n var w = Math.floor((jd + 293) / 365.2422 * 24) * d;\n var a = this.qiAccurate(w);\n if (a - jd > 5) {\n return this.qiAccurate(w - d);\n }\n if (a - jd < -5) {\n return this.qiAccurate(w + d);\n }\n return a;\n }\n };\n })();\n var SolarUtil = (function(){\n return {\n WEEK:['{w.sun}', '{w.mon}', '{w.tues}', '{w.wed}', '{w.thur}', '{w.fri}', '{w.sat}'],\n DAYS_OF_MONTH:[31,28,31,30,31,30,31,31,30,31,30,31],\n XINGZUO:['{xz.aries}', '{xz.taurus}', '{xz.gemini}', '{xz.cancer}', '{xz.leo}', '{xz.virgo}', '{xz.libra}', '{xz.scorpio}', '{xz.sagittarius}', '{xz.capricornus}', '{xz.aquarius}', '{xz.pisces}'],\n FESTIVAL: {\n '1-1': '{jr.yuanDan}',\n '2-14': '{jr.qingRen}',\n '3-8': '{jr.fuNv}',\n '3-12': '{jr.zhiShu}',\n '3-15': '{jr.xiaoFei}',\n '4-1': '{jr.yuRen}',\n '5-1': '{jr.wuYi}',\n '5-4': '{jr.qingNian}',\n '6-1': '{jr.erTong}',\n '7-1': '{jr.jianDang}',\n '8-1': '{jr.jianJun}',\n '9-10': '{jr.jiaoShi}',\n '10-1': '{jr.guoQing}',\n '10-31': '{jr.wanShengYe}',\n '11-1': '{jr.wanSheng}',\n '12-24': '{jr.pingAn}',\n '12-25': '{jr.shengDan}'\n },\n OTHER_FESTIVAL:{\n '1-8':['周恩来逝世纪念日'],\n '1-10':['中国人民警察节'],\n '1-14':['日记情人节'],\n '1-21':['列宁逝世纪念日'],\n '1-26':['国际海关日'],\n '1-27':['国际大屠杀纪念日'],\n '2-2':['世界湿地日'],\n '2-4':['世界抗癌日'],\n '2-7':['京汉铁路罢工纪念日'],\n '2-10':['国际气象节'],\n '2-19':['邓小平逝世纪念日'],\n '2-20':['世界社会公正日'],\n '2-21':['国际母语日'],\n '2-24':['第三世界青年日'],\n '3-1':['国际海豹日'],\n '3-3':['世界野生动植物日', '全国爱耳日'],\n '3-5':['周恩来诞辰纪念日', '中国青年志愿者服务日'],\n '3-6':['世界青光眼日'],\n '3-7':['女生节'],\n '3-12':['孙中山逝世纪念日'],\n '3-14':['马克思逝世纪念日', '白色情人节'],\n '3-17':['国际航海日'],\n '3-18':['全国科技人才活动日', '全国爱肝日'],\n '3-20':['国际幸福日'],\n '3-21':['世界森林日', '世界睡眠日', '国际消除种族歧视日'],\n '3-22':['世界水日'],\n '3-23':['世界气象日'],\n '3-24':['世界防治结核病日'],\n '3-29':['中国黄花岗七十二烈士殉难纪念日'],\n '4-2':['国际儿童图书日', '世界自闭症日'],\n '4-4':['国际地雷行动日'],\n '4-7':['世界卫生日'],\n '4-8':['国际珍稀动物保护日'],\n '4-12':['世界航天日'],\n '4-14':['黑色情人节'],\n '4-15':['全民国家安全教育日'],\n '4-22':['世界地球日', '列宁诞辰纪念日'],\n '4-23':['世界读书日'],\n '4-24':['中国航天日'],\n '4-25':['儿童预防接种宣传日'],\n '4-26':['世界知识产权日', '全国疟疾日'],\n '4-28':['世界安全生产与健康日'],\n '4-30':['全国交通安全反思日'],\n '5-2':['世界金枪鱼日'],\n '5-3':['世界新闻自由日'],\n '5-5':['马克思诞辰纪念日'],\n '5-8':['世界红十字日'],\n '5-11':['世界肥胖日'],\n '5-12':['全国防灾减灾日', '护士节'],\n '5-14':['玫瑰情人节'],\n '5-15':['国际家庭日'],\n '5-19':['中国旅游日'],\n '5-20':['网络情人节'],\n '5-22':['国际生物多样性日'],\n '5-25':['525心理健康节'],\n '5-27':['上海解放日'],\n '5-29':['国际维和人员日'],\n '5-30':['中国五卅运动纪念日'],\n '5-31':['世界无烟日'],\n '6-3':['世界自行车日'],\n '6-5':['世界环境日'],\n '6-6':['全国爱眼日'],\n '6-8':['世界海洋日'],\n '6-11':['中国人口日'],\n '6-14':['世界献血日', '亲亲情人节'],\n '6-17':['世界防治荒漠化与干旱日'],\n '6-20':['世界难民日'],\n '6-21':['国际瑜伽日'],\n '6-25':['全国土地日'],\n '6-26':['国际禁毒日', '联合国宪章日'],\n '7-1':['香港回归纪念日'],\n '7-6':['国际接吻日', '朱德逝世纪念日'],\n '7-7':['七七事变纪念日'],\n '7-11':['世界人口日', '中国航海日'],\n '7-14':['银色情人节'],\n '7-18':['曼德拉国际日'],\n '7-30':['国际友谊日'],\n '8-3':['男人节'],\n '8-5':['恩格斯逝世纪念日'],\n '8-6':['国际电影节'],\n '8-8':['全民健身日'],\n '8-9':['国际土著人日'],\n '8-12':['国际青年节'],\n '8-14':['绿色情人节'],\n '8-19':['世界人道主义日', '中国医师节'],\n '8-22':['邓小平诞辰纪念日'],\n '8-29':['全国测绘法宣传日'],\n '9-3':['中国抗日战争胜利纪念日'],\n '9-5':['中华慈善日'],\n '9-8':['世界扫盲日'],\n '9-9':['毛泽东逝世纪念日', '全国拒绝酒驾日'],\n '9-14':['世界清洁地球日', '相片情人节'],\n '9-15':['国际民主日'],\n '9-16':['国际臭氧层保护日'],\n '9-17':['世界骑行日'],\n '9-18':['九一八事变纪念日'],\n '9-20':['全国爱牙日'],\n '9-21':['国际和平日'],\n '9-27':['世界旅游日'],\n '9-30':['中国烈士纪念日'],\n '10-1':['国际老年人日'],\n '10-2':['国际非暴力日'],\n '10-4':['世界动物日'],\n '10-11':['国际女童日'],\n '10-10':['辛亥革命纪念日'],\n '10-13':['国际减轻自然灾害日', '中国少年先锋队诞辰日'],\n '10-14':['葡萄酒情人节'],\n '10-16':['世界粮食日'],\n '10-17':['全国扶贫日'],\n '10-20':['世界统计日'],\n '10-24':['世界发展信息日', '程序员节'],\n '10-25':['抗美援朝纪念日'],\n '11-5':['世界海啸日'],\n '11-8':['记者节'],\n '11-9':['全国消防日'],\n '11-11':['光棍节'],\n '11-12':['孙中山诞辰纪念日'],\n '11-14':['电影情人节'],\n '11-16':['国际宽容日'],\n '11-17':['国际大学生节'],\n '11-19':['世界厕所日'],\n '11-28':['恩格斯诞辰纪念日'],\n '11-29':['国际声援巴勒斯坦人民日'],\n '12-1':['世界艾滋病日'],\n '12-2':['全国交通安全日'],\n '12-3':['世界残疾人日'],\n '12-4':['全国法制宣传日'],\n '12-5':['世界弱能人士日', '国际志愿人员日'],\n '12-7':['国际民航日'],\n '12-9':['世界足球日', '国际反腐败日'],\n '12-10':['世界人权日'],\n '12-11':['国际山岳日'],\n '12-12':['西安事变纪念日'],\n '12-13':['国家公祭日'],\n '12-14':['拥抱情人节'],\n '12-18':['国际移徙者日'],\n '12-26':['毛泽东诞辰纪念日']\n },\n WEEK_FESTIVAL:{'3-0-1':'全国中小学生安全教育日','5-2-0':'母亲节','5-3-0':'全国助残日','6-3-0':'父亲节','9-3-6':'全民国防教育日','10-1-1':'世界住房日','11-4-4':'感恩节'},\n isLeapYear:function(year){\n if (year < 1600) {\n return year % 4 === 0;\n }\n return (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0);\n },\n getDaysOfMonth:function(year, month){\n var oy = year;\n var om = month;\n year *= 1;\n if(isNaN(year)){\n throw new Error('wrong solar year '+oy);\n }\n month *= 1;\n if(isNaN(month)){\n throw new Error('wrong solar month '+om);\n }\n if (1582 === year && 10 === month) {\n return 21;\n }\n var m = month-1;\n var d = this.DAYS_OF_MONTH[m];\n if (m === 1 && this.isLeapYear(year)) {\n d++;\n }\n return d;\n },\n getDaysOfYear:function(year){\n var oy = year;\n year *= 1;\n if(isNaN(year)){\n throw new Error('wrong solar year '+oy);\n }\n if (1582 === year) {\n return 355;\n }\n return this.isLeapYear(year) ? 366: 365;\n },\n getDaysInYear:function(year, month, day){\n var oy = year;\n var om = month;\n var od = day;\n year *= 1;\n if(isNaN(year)){\n throw new Error('wrong solar year '+oy);\n }\n month *= 1;\n if(isNaN(month)){\n throw new Error('wrong solar month '+om);\n }\n day *= 1;\n if(isNaN(day)){\n throw new Error('wrong solar day '+od);\n }\n var days = 0;\n for (var i = 1; i < month; i++) {\n days += this.getDaysOfMonth(year, i);\n }\n var d = day;\n if (1582 === year && 10 === month) {\n if (day >= 15) {\n d -= 10;\n } else if (day > 4) {\n throw new Error('wrong solar year '+year+' month '+month+' day '+day);\n }\n }\n days += d;\n return days;\n },\n getDaysBetween:function(ay, am, ad, by, bm, bd){\n var oay = ay;\n var oam = am;\n var oad = ad;\n var oby = by;\n var obm = bm;\n var obd = bd;\n ay *= 1;\n if(isNaN(ay)){\n throw new Error('wrong solar year '+oay);\n }\n am *= 1;\n if(isNaN(am)){\n throw new Error('wrong solar month '+oam);\n }\n ad *= 1;\n if(isNaN(ad)){\n throw new Error('wrong solar day '+oad);\n }\n by *= 1;\n if(isNaN(by)){\n throw new Error('wrong solar year '+oby);\n }\n bm *= 1;\n if(isNaN(bm)){\n throw new Error('wrong solar month '+obm);\n }\n bd *= 1;\n if(isNaN(bd)){\n throw new Error('wrong solar day '+obd);\n }\n\n var n;\n var days;\n var i;\n if (ay === by) {\n n = this.getDaysInYear(by, bm, bd) - this.getDaysInYear(ay, am, ad);\n } else if (ay > by) {\n days = this.getDaysOfYear(by) - this.getDaysInYear(by, bm, bd);\n for (i = by + 1; i < ay; i++) {\n days += this.getDaysOfYear(i);\n }\n days += this.getDaysInYear(ay, am, ad);\n n = -days;\n } else {\n days = this.getDaysOfYear(ay) - this.getDaysInYear(ay, am, ad);\n for (i = ay + 1; i < by; i++) {\n days += this.getDaysOfYear(i);\n }\n days += this.getDaysInYear(by, bm, bd);\n n = days;\n }\n return n;\n },\n getWeeksOfMonth:function(year, month, start){\n return Math.ceil((this.getDaysOfMonth(year, month) + Solar.fromYmd(year, month, 1).getWeek() - start)/7);\n }\n };\n })();\n var LunarUtil = (function(){\n return {\n BASE_MONTH_ZHI_INDEX:2,\n JIE_QI: ['{jq.dongZhi}', '{jq.xiaoHan}', '{jq.daHan}', '{jq.liChun}', '{jq.yuShui}', '{jq.jingZhe}', '{jq.chunFen}', '{jq.qingMing}', '{jq.guYu}', '{jq.liXia}', '{jq.xiaoMan}', '{jq.mangZhong}', '{jq.xiaZhi}', '{jq.xiaoShu}', '{jq.daShu}', '{jq.liQiu}', '{jq.chuShu}', '{jq.baiLu}', '{jq.qiuFen}', '{jq.hanLu}', '{jq.shuangJiang}', '{jq.liDong}', '{jq.xiaoXue}', '{jq.daXue}'],\n JIE_QI_IN_USE: ['DA_XUE', '{jq.dongZhi}', '{jq.xiaoHan}', '{jq.daHan}', '{jq.liChun}', '{jq.yuShui}', '{jq.jingZhe}', '{jq.chunFen}', '{jq.qingMing}', '{jq.guYu}', '{jq.liXia}', '{jq.xiaoMan}', '{jq.mangZhong}', '{jq.xiaZhi}', '{jq.xiaoShu}', '{jq.daShu}', '{jq.liQiu}', '{jq.chuShu}', '{jq.baiLu}', '{jq.qiuFen}', '{jq.hanLu}', '{jq.shuangJiang}', '{jq.liDong}', '{jq.xiaoXue}', '{jq.daXue}', 'DONG_ZHI', 'XIAO_HAN', 'DA_HAN', 'LI_CHUN', 'YU_SHUI', 'JING_ZHE'],\n CHANG_SHENG_OFFSET: {\n '{tg.jia}':1,\n '{tg.bing}':10,\n '{tg.wu}':10,\n '{tg.geng}':7,\n '{tg.ren}':4,\n '{tg.yi}':6,\n '{tg.ding}':9,\n '{tg.ji}':9,\n '{tg.xin}':0,\n '{tg.gui}':3\n },\n MONTH_ZHI:['', '{dz.yin}', '{dz.mao}', '{dz.chen}', '{dz.si}', '{dz.wu}', '{dz.wei}', '{dz.shen}', '{dz.you}', '{dz.xu}', '{dz.hai}', '{dz.zi}', '{dz.chou}'],\n CHANG_SHENG:['{ds.changSheng}', '{ds.muYu}', '{ds.guanDai}', '{ds.linGuan}', '{ds.diWang}', '{ds.shuai}', '{ds.bing}', '{ds.si}', '{ds.mu}', '{ds.jue}', '{ds.tai}', '{ds.yang}'],\n XUN:[\n '{jz.jiaZi}',\n '{jz.jiaXu}',\n '{jz.jiaShen}',\n '{jz.jiaWu}',\n '{jz.jiaChen}',\n '{jz.jiaYin}'\n ],\n XUN_KONG:[\n '{dz.xu}{dz.hai}',\n '{dz.shen}{dz.you}',\n '{dz.wu}{dz.wei}',\n '{dz.chen}{dz.si}',\n '{dz.yin}{dz.mao}',\n '{dz.zi}{dz.chou}'\n ],\n LIU_YAO:[\n '{ly.xianSheng}',\n '{ly.youYin}',\n '{ly.xianFu}',\n '{ly.foMie}',\n '{ly.daAn}',\n '{ly.chiKou}'\n ],\n HOU:['{h.first}', '{h.second}', '{h.third}'],\n WU_HOU:[\n '{h.qiuYinJie}',\n '{h.miJiao}',\n '{h.shuiQuan}',\n '{h.yanBei}',\n '{h.queShi}',\n '{h.zhiShi}',\n '{h.jiShi}',\n '{h.zhengNiao}',\n '{h.shuiZe}',\n '{h.dongFeng}',\n '{h.zheChongShiZhen}',\n '{h.yuZhi}',\n '{h.taJi}',\n '{h.houYan}',\n '{h.caoMuMengDong}',\n '{h.taoShi}',\n '{h.cangGeng}',\n '{h.yingHua}',\n '{h.xuanNiaoZhi}',\n '{h.leiNai}',\n '{h.shiDian}',\n '{h.tongShi}',\n '{h.tianShu}',\n '{h.hongShi}',\n '{h.pingShi}',\n '{h.mingJiu}',\n '{h.daiSheng}',\n '{h.louGuo}',\n '{h.qiuYinChu}',\n '{h.wangGua}',\n '{h.kuCai}',\n '{h.miCao}',\n '{h.maiQiu}',\n '{h.tangLang}',\n '{h.juShi}',\n '{h.fanShe}',\n '{h.luJia}',\n '{h.tiaoShi}',\n '{h.banXia}',\n '{h.wenFeng}',\n '{h.xiShuai}',\n '{h.yingShi}',\n '{h.fuCao}',\n '{h.tuRun}',\n '{h.daYu}',\n '{h.liangFeng}',\n '{h.baiLu}',\n '{h.hanChan}',\n '{h.yingNai}',\n '{h.tianDi}',\n '{h.heNai}',\n '{h.hongYanLai}',\n '{h.xuanNiaoGui}',\n '{h.qunNiao}',\n '{h.leiShi}',\n '{h.zheChongPiHu}',\n '{h.shuiShiHe}',\n '{h.hongYanLaiBin}',\n '{h.queRu}',\n '{h.juYou}',\n '{h.caiNai}',\n '{h.caoMuHuangLuo}',\n '{h.zheChongXianFu}',\n '{h.shuiShiBing}',\n '{h.diShi}',\n '{h.zhiRu}',\n '{h.hongCang}',\n '{h.tianQi}',\n '{h.biSe}',\n '{h.heDan}',\n '{h.huShi}',\n '{h.liTing}'\n ],\n GAN:['', '{tg.jia}', '{tg.yi}', '{tg.bing}', '{tg.ding}', '{tg.wu}', '{tg.ji}', '{tg.geng}', '{tg.xin}', '{tg.ren}', '{tg.gui}'],\n POSITION_XI:['', '{bg.gen}', '{bg.qian}', '{bg.kun}', '{bg.li}', '{bg.xun}', '{bg.gen}', '{bg.qian}', '{bg.kun}', '{bg.li}', '{bg.xun}'],\n POSITION_YANG_GUI:['', '{bg.kun}', '{bg.kun}', '{bg.dui}', '{bg.qian}', '{bg.gen}', '{bg.kan}', '{bg.li}', '{bg.gen}', '{bg.zhen}', '{bg.xun}'],\n POSITION_YIN_GUI:['', '{bg.gen}', '{bg.kan}', '{bg.qian}', '{bg.dui}', '{bg.kun}', '{bg.kun}', '{bg.gen}', '{bg.li}', '{bg.xun}', '{bg.zhen}'],\n POSITION_FU:['', '{bg.xun}', '{bg.xun}', '{bg.zhen}', '{bg.zhen}', '{bg.kan}', '{bg.li}', '{bg.kun}', '{bg.kun}', '{bg.qian}', '{bg.dui}'],\n POSITION_FU_2:['', '{bg.kan}', '{bg.kun}', '{bg.qian}', '{bg.xun}', '{bg.gen}', '{bg.kan}', '{bg.kun}', '{bg.qian}', '{bg.xun}', '{bg.gen}'],\n POSITION_CAI:['', '{bg.gen}', '{bg.gen}', '{bg.kun}', '{bg.kun}', '{bg.kan}', '{bg.kan}', '{bg.zhen}', '{bg.zhen}', '{bg.li}', '{bg.li}'],\n POSITION_TAI_SUI_YEAR: ['{bg.kan}', '{bg.gen}', '{bg.gen}', '{bg.zhen}', '{bg.xun}', '{bg.xun}', '{bg.li}', '{bg.kun}', '{bg.kun}', '{bg.dui}', '{bg.kan}', '{bg.kan}'],\n POSITION_GAN: ['{bg.zhen}', '{bg.zhen}', '{bg.li}', '{bg.li}', '{ps.center}', '{ps.center}', '{bg.dui}', '{bg.dui}', '{bg.kan}', '{bg.kan}'],\n POSITION_ZHI: ['{bg.kan}', '{ps.center}', '{bg.zhen}', '{bg.zhen}', '{ps.center}', '{bg.li}', '{bg.li}', '{ps.center}', '{bg.dui}', '{bg.dui}', '{ps.center}', '{bg.kan}'],\n POSITION_TAI_DAY:[\n '{ts.zhan}{ts.men}{ts.dui} {ps.wai}{ps.dongNan}',\n '{ts.dui}{ts.mo}{ts.ce} {ps.wai}{ps.dongNan}',\n '{ts.chu}{ts.zao}{ts.lu} {ps.wai}{ps.zhengNan}',\n '{ts.cangKu}{ts.men} {ps.wai}{ps.zhengNan}',\n '{ts.fang}{ts.chuang}{ts.xi} {ps.wai}{ps.zhengNan}',\n '{ts.zhan}{ts.men}{ts.chuang} {ps.wai}{ps.zhengNan}',\n '{ts.zhan}{ts.dui}{ts.mo} {ps.wai}{ps.zhengNan}',\n '{ts.chu}{ts.zao}{ts.ce} {ps.wai}{ps.xiNan}',\n '{ts.cangKu}{ts.lu} {ps.wai}{ps.xiNan}',\n '{ts.fang}{ts.chuang}{ts.men} {ps.wai}{ps.xiNan}',\n '{ts.zhan}{ts.men}{ts.xi} {ps.wai}{ps.xiNan}',\n '{ts.dui}{ts.mo}{ts.chuang} {ps.wai}{ps.xiNan}',\n '{ts.chu}{ts.zao}{ts.dui} {ps.wai}{ps.xiNan}',\n '{ts.cangKu}{ts.ce} {ps.wai}{ps.zhengXi}',\n '{ts.fang}{ts.chuang}{ts.lu} {ps.wai}{ps.zhengXi}',\n '{ts.zhan}{ts.daMen} {ps.wai}{ps.zhengXi}',\n '{ts.dui}{ts.mo}{ts.xi} {ps.wai}{ps.zhengXi}',\n '{ts.chu}{ts.zao}{ts.chuang} {ps.wai}{ps.zhengXi}',\n '{ts.cangKu}{ts.dui} {ps.wai}{ps.xiBei}',\n '{ts.fang}{ts.chuang}{ts.ce} {ps.wai}{ps.xiBei}',\n '{ts.zhan}{ts.men}{ts.lu} {ps.wai}{ps.xiBei}',\n '{ts.dui}{ts.mo}{ts.men} {ps.wai}{ps.xiBei}',\n '{ts.chu}{ts.zao}{ts.xi} {ps.wai}{ps.xiBei}',\n '{ts.cangKu}{ts.chuang} {ps.wai}{ps.xiBei}',\n '{ts.fang}{ts.chuang}{ts.dui} {ps.wai}{ps.zhengBei}',\n '{ts.zhan}{ts.men}{ts.ce} {ps.wai}{ps.zhengBei}',\n '{ts.dui}{ts.mo}{ts.lu} {ps.wai}{ps.zhengBei}',\n '{ts.chu}{ts.zao}{ts.men} {ps.wai}{ps.zhengBei}',\n '{ts.cangKu}{ts.xi} {ps.wai}{ps.zhengBei}',\n '{ts.zhan}{ts.fang}{ts.chuang} {ps.fangNei}{ps.bei}',\n '{ts.zhan}{ts.men}{ts.dui} {ps.fangNei}{ps.bei}',\n '{ts.dui}{ts.mo}{ts.ce} {ps.fangNei}{ps.bei}',\n '{ts.chu}{ts.zao}{ts.lu} {ps.fangNei}{ps.bei}',\n '{ts.cangKu}{ts.men} {ps.fangNei}{ps.bei}',\n '{ts.fang}{ts.chuang}{ts.xi} {ps.fangNei}{ps.center}',\n '{ts.zhan}{ts.men}{ts.chuang} {ps.fangNei}{ps.center}',\n '{ts.zhan}{ts.dui}{ts.mo} {ps.fangNei}{ps.nan}',\n '{ts.chu}{ts.zao}{ts.ce} {ps.fangNei}{ps.nan}',\n '{ts.cangKu}{ts.lu} {ps.fangNei}{ps.nan}',\n '{ts.fang}{ts.chuang}{ts.men} {ps.fangNei}{ps.xi}',\n '{ts.zhan}{ts.men}{ts.xi} {ps.fangNei}{ps.dong}',\n '{ts.dui}{ts.mo}{ts.chuang} {ps.fangNei}{ps.dong}',\n '{ts.chu}{ts.zao}{ts.dui} {ps.fangNei}{ps.dong}',\n '{ts.cangKu}{ts.ce} {ps.fangNei}{ps.dong}',\n '{ts.fang}{ts.chuang}{ts.lu} {ps.fangNei}{ps.center}',\n '{ts.zhan}{ts.daMen} {ps.wai}{ps.dongBei}',\n '{ts.dui}{ts.mo}{ts.xi} {ps.wai}{ps.dongBei}',\n '{ts.chu}{ts.zao}{ts.chuang} {ps.wai}{ps.dongBei}',\n '{ts.cangKu}{ts.dui} {ps.wai}{ps.dongBei}',\n '{ts.fang}{ts.chuang}{ts.ce} {ps.wai}{ps.dongBei}',\n '{ts.zhan}{ts.men}{ts.lu} {ps.wai}{ps.dongBei}',\n '{ts.dui}{ts.mo}{ts.men} {ps.wai}{ps.zhengDong}',\n '{ts.chu}{ts.zao}{ts.xi} {ps.wai}{ps.zhengDong}',\n '{ts.cangKu}{ts.chuang} {ps.wai}{ps.zhengDong}',\n '{ts.fang}{ts.chuang}{ts.dui} {ps.wai}{ps.zhengDong}',\n '{ts.zhan}{ts.men}{ts.ce} {ps.wai}{ps.zhengDong}',\n '{ts.dui}{ts.mo}{ts.lu} {ps.wai}{ps.dongNan}',\n '{ts.chu}{ts.zao}{ts.men} {ps.wai}{ps.dongNan}',\n '{ts.cangKu}{ts.xi} {ps.wai}{ps.dongNan}',\n '{ts.zhan}{ts.fang}{ts.chuang} {ps.wai}{ps.dongNan}'\n ],\n POSITION_TAI_MONTH:[\n '{ts.zhan}{ts.fang}{ts.chuang}',\n '{ts.zhan}{ts.hu}{ts.win}',\n '{ts.zhan}{ts.men}{ts.tang}',\n '{ts.zhan}{ts.chu}{ts.zao}',\n '{ts.zhan}{ts.fang}{ts.chuang}',\n '{ts.zhan}{ts.chuang}{ts.cang}',\n '{ts.zhan}{ts.dui}{ts.mo}',\n '{ts.zhan}{ts.ce}{ts.hu}',\n '{ts.zhan}{ts.men}{ts.fang}',\n '{ts.zhan}{ts.fang}{ts.chuang}',\n '{ts.zhan}{ts.zao}{ts.lu}',\n '{ts.zhan}{ts.fang}{ts.chuang}'\n ],\n ZHI:['', '{dz.zi}', '{dz.chou}', '{dz.yin}', '{dz.mao}', '{dz.chen}', '{dz.si}', '{dz.wu}', '{dz.wei}', '{dz.shen}', '{dz.you}', '{dz.xu}', '{dz.hai}'],\n ZHI_XING:[\n '',\n '{zx.jian}',\n '{zx.chu}',\n '{zx.man}',\n '{zx.ping}',\n '{zx.ding}',\n '{zx.zhi}',\n '{zx.po}',\n '{zx.wei}',\n '{zx.cheng}',\n '{zx.shou}',\n '{zx.kai}',\n '{zx.bi}'\n ],\n JIA_ZI:[\n '{jz.jiaZi}',\n '{jz.yiChou}',\n '{jz.bingYin}',\n '{jz.dingMao}',\n '{jz.wuChen}',\n '{jz.jiSi}',\n '{jz.gengWu}',\n '{jz.xinWei}',\n '{jz.renShen}',\n '{jz.guiYou}',\n '{jz.jiaXu}',\n '{jz.yiHai}',\n '{jz.bingZi}',\n '{jz.dingChou}',\n '{jz.wuYin}',\n '{jz.jiMao}',\n '{jz.gengChen}',\n '{jz.xinSi}',\n '{jz.renWu}',\n '{jz.guiWei}',\n '{jz.jiaShen}',\n '{jz.yiYou}',\n '{jz.bingXu}',\n '{jz.dingHai}',\n '{jz.wuZi}',\n '{jz.jiChou}',\n '{jz.gengYin}',\n '{jz.xinMao}',\n '{jz.renChen}',\n '{jz.guiSi}',\n '{jz.jiaWu}',\n '{jz.yiWei}',\n '{jz.bingShen}',\n '{jz.dingYou}',\n '{jz.wuXu}',\n '{jz.jiHai}',\n '{jz.gengZi}',\n '{jz.xinChou}',\n '{jz.renYin}',\n '{jz.guiMao}',\n '{jz.jiaChen}',\n '{jz.yiSi}',\n '{jz.bingWu}',\n '{jz.dingWei}',\n '{jz.wuShen}',\n '{jz.jiYou}',\n '{jz.gengXu}',\n '{jz.xinHai}',\n '{jz.renZi}',\n '{jz.guiChou}',\n '{jz.jiaYin}',\n '{jz.yiMao}',\n '{jz.bingChen}',\n '{jz.dingSi}',\n '{jz.wuWu}',\n '{jz.jiWei}',\n '{jz.gengShen}',\n '{jz.xinYou}',\n '{jz.renXu}',\n '{jz.guiHai}'\n ],\n TIAN_SHEN:['', '{sn.qingLong}', '{sn.mingTang}', '{sn.tianXing}', '{sn.zhuQue}', '{sn.jinKui}', '{sn.tianDe}', '{sn.baiHu}', '{sn.yuTang}', '{sn.tianLao}', '{sn.xuanWu}', '{sn.siMing}', '{sn.gouChen}'],\n ZHI_TIAN_SHEN_OFFSET: {\n '{dz.zi}': 4,\n '{dz.chou}': 2,\n '{dz.yin}': 0,\n '{dz.mao}': 10,\n '{dz.chen}': 8,\n '{dz.si}': 6,\n '{dz.wu}': 4,\n '{dz.wei}': 2,\n '{dz.shen}': 0,\n '{dz.you}': 10,\n '{dz.xu}': 8,\n '{dz.hai}': 6\n },\n TIAN_SHEN_TYPE: {\n '{sn.qingLong}': '{s.huangDao}',\n '{sn.mingTang}': '{s.huangDao}',\n '{sn.jinKui}': '{s.huangDao}',\n '{sn.tianDe}': '{s.huangDao}',\n '{sn.yuTang}': '{s.huangDao}',\n '{sn.siMing}': '{s.huangDao}',\n '{sn.tianXing}': '{s.heiDao}',\n '{sn.zhuQue}': '{s.heiDao}',\n '{sn.baiHu}': '{s.heiDao}',\n '{sn.tianLao}': '{s.heiDao}',\n '{sn.xuanWu}': '{s.heiDao}',\n '{sn.gouChen}': '{s.heiDao}'\n },\n TIAN_SHEN_TYPE_LUCK:{\n '{s.huangDao}': '{s.goodLuck}',\n '{s.heiDao}': '{s.badLuck}'\n },\n PENGZU_GAN:['', '{tg.jia}不开仓财物耗散', '{tg.yi}不栽植千株不长', '{tg.bing}不修灶必见灾殃', '{tg.ding}不剃头头必生疮', '{tg.wu}不受田田主不祥', '{tg.ji}不破券二比并亡', '{tg.geng}不经络织机虚张', '{tg.xin}不合酱主人不尝', '{tg.ren}不泱水更难提防', '{tg.gui}不词讼理弱敌强'],\n PENGZU_ZHI:['', '{dz.zi}不问卜自惹祸殃', '{dz.chou}不冠带主不还乡', '{dz.yin}不祭祀神鬼不尝', '{dz.mao}不穿井水泉不香', '{dz.chen}不哭泣必主重丧', '{dz.si}不远行财物伏藏', '{dz.wu}不苫盖屋主更张', '{dz.wei}不服药毒气入肠', '{dz.shen}不安床鬼祟入房', '{dz.you}不会客醉坐颠狂', '{dz.xu}不吃犬作怪上床', '{dz.hai}不嫁娶不利新郎'],\n NUMBER:['{n.zero}', '{n.one}', '{n.two}', '{n.three}', '{n.four}', '{n.five}', '{n.six}', '{n.seven}', '{n.eight}', '{n.nine}', '{n.ten}', '{n.eleven}', '{n.twelve}'],\n MONTH:[\n '',\n '{m.one}',\n '{m.two}',\n '{m.three}',\n '{m.four}',\n '{m.five}',\n '{m.six}',\n '{m.seven}',\n '{m.eight}',\n '{m.nine}',\n '{m.ten}',\n '{m.eleven}',\n '{m.twelve}'\n ],\n SEASON:[\n '',\n '{od.first}{sz.chun}',\n '{od.second}{sz.chun}',\n '{od.third}{sz.chun}',\n '{od.first}{sz.xia}',\n '{od.second}{sz.xia}',\n '{od.third}{sz.xia}',\n '{od.first}{sz.qiu}',\n '{od.second}{sz.qiu}',\n '{od.third}{sz.qiu}',\n '{od.first}{sz.dong}',\n '{od.second}{sz.dong}',\n '{od.third}{sz.dong}'\n ],\n SHENGXIAO:['', '{sx.rat}', '{sx.ox}', '{sx.tiger}', '{sx.rabbit}', '{sx.dragon}', '{sx.snake}', '{sx.horse}', '{sx.goat}', '{sx.monkey}', '{sx.rooster}', '{sx.dog}', '{sx.pig}'],\n DAY:[\n '',\n '{d.one}',\n '{d.two}',\n '{d.three}',\n '{d.four}',\n '{d.five}',\n '{d.six}',\n '{d.seven}',\n '{d.eight}',\n '{d.nine}',\n '{d.ten}',\n '{d.eleven}',\n '{d.twelve}',\n '{d.thirteen}',\n '{d.fourteen}',\n '{d.fifteen}',\n '{d.sixteen}',\n '{d.seventeen}',\n '{d.eighteen}',\n '{d.nighteen}',\n '{d.twenty}',\n '{d.twentyOne}',\n '{d.twentyTwo}',\n '{d.twentyThree}',\n '{d.twentyFour}',\n '{d.twentyFive}',\n '{d.twentySix}',\n '{d.twentySeven}',\n '{d.twentyEight}',\n '{d.twentyNine}',\n '{d.thirty}'\n ],\n YUE_XIANG:[\n '',\n '{yx.shuo}',\n '{yx.jiShuo}',\n '{yx.eMeiXin}',\n '{yx.eMeiXin}',\n '{yx.eMei}',\n '{yx.xi}',\n '{yx.shangXian}',\n '{yx.shangXian}',\n '{yx.jiuYe}',\n '{yx.night}',\n '{yx.night}',\n '{yx.night}',\n '{yx.jianYingTu}',\n '{yx.xiaoWang}',\n '{yx.wang}',\n '{yx.jiWang}',\n '{yx.liDai}',\n '{yx.juDai}',\n '{yx.qinDai}',\n '{yx.gengDai}',\n '{yx.jianKuiTu}',\n '{yx.xiaXian}',\n '{yx.xiaXian}',\n '{yx.youMing}',\n '{yx.youMing}',\n '{yx.eMeiCan}',\n '{yx.eMeiCan}',\n '{yx.can}',\n '{yx.xiao}',\n '{yx.hui}'\n ],\n XIU: {\n '{dz.shen}1': '{xx.bi}',\n '{dz.shen}2': '{xx.yi}',\n '{dz.shen}3': '{xx.ji}',\n '{dz.shen}4': '{xx.kui}',\n '{dz.shen}5': '{xx.gui}',\n '{dz.shen}6': '{xx.di}',\n '{dz.shen}0': '{xx.xu}',\n '{dz.zi}1': '{xx.bi}',\n '{dz.zi}2': '{xx.yi}',\n '{dz.zi}3': '{xx.ji}',\n '{dz.zi}4': '{xx.kui}',\n '{dz.zi}5': '{xx.gui}',\n '{dz.zi}6': '{xx.di}',\n '{dz.zi}0': '{xx.xu}',\n '{dz.chen}1': '{xx.bi}',\n '{dz.chen}2': '{xx.yi}',\n '{dz.chen}3': '{xx.ji}',\n '{dz.chen}4': '{xx.kui}',\n '{dz.chen}5': '{xx.gui}',\n '{dz.chen}6': '{xx.di}',\n '{dz.chen}0': '{xx.xu}',\n '{dz.si}1': '{xx.wei}',\n '{dz.si}2': '{xx.zi}',\n '{dz.si}3': '{xx.zhen}',\n '{dz.si}4': '{xx.dou}',\n '{dz.si}5': '{xx.lou}',\n '{dz.si}6': '{xx.liu}',\n '{dz.si}0': '{xx.fang}',\n '{dz.you}1': '{xx.wei}',\n '{dz.you}2': '{xx.zi}',\n '{dz.you}3': '{xx.zhen}',\n '{dz.you}4': '{xx.dou}',\n '{dz.you}5': '{xx.lou}',\n '{dz.you}6': '{xx.liu}',\n '{dz.you}0': '{xx.fang}',\n '{dz.chou}1': '{xx.wei}',\n '{dz.chou}2': '{xx.zi}',\n '{dz.chou}3': '{xx.zhen}',\n '{dz.chou}4': '{xx.dou}',\n '{dz.chou}5': '{xx.lou}',\n '{dz.chou}6': '{xx.liu}',\n '{dz.chou}0': '{xx.fang}',\n '{dz.yin}1': '{xx.xin}',\n '{dz.yin}2': '{xx.shi}',\n '{dz.yin}3': '{xx.can}',\n '{dz.yin}4': '{xx.jiao}',\n '{dz.yin}5': '{xx.niu}',\n '{dz.yin}6': '{xx.vei}',\n '{dz.yin}0': '{xx.xing}',\n '{dz.wu}1': '{xx.xin}',\n '{dz.wu}2': '{xx.shi}',\n '{dz.wu}3': '{xx.can}',\n '{dz.wu}4': '{xx.jiao}',\n '{dz.wu}5': '{xx.niu}',\n '{dz.wu}6': '{xx.vei}',\n '{dz.wu}0': '{xx.xing}',\n '{dz.xu}1': '{xx.xin}',\n '{dz.xu}2': '{xx.shi}',\n '{dz.xu}3': '{xx.can}',\n '{dz.xu}4': '{xx.jiao}',\n '{dz.xu}5': '{xx.niu}',\n '{dz.xu}6': '{xx.vei}',\n '{dz.xu}0': '{xx.xing}',\n '{dz.hai}1': '{xx.zhang}',\n '{dz.hai}2': '{xx.tail}',\n '{dz.hai}3': '{xx.qiang}',\n '{dz.hai}4': '{xx.jing}',\n '{dz.hai}5': '{xx.kang}',\n '{dz.hai}6': '{xx.nv}',\n '{dz.hai}0': '{xx.mao}',\n '{dz.mao}1': '{xx.zhang}',\n '{dz.mao}2': '{xx.tail}',\n '{dz.mao}3': '{xx.qiang}',\n '{dz.mao}4': '{xx.jing}',\n '{dz.mao}5': '{xx.kang}',\n '{dz.mao}6': '{xx.nv}',\n '{dz.mao}0': '{xx.mao}',\n '{dz.wei}1': '{xx.zhang}',\n '{dz.wei}2': '{xx.tail}',\n '{dz.wei}3': '{xx.qiang}',\n '{dz.wei}4': '{xx.jing}',\n '{dz.wei}5': '{xx.kang}',\n '{dz.wei}6': '{xx.nv}',\n '{dz.wei}0': '{xx.mao}'\n },\n XIU_LUCK:{\n '{xx.jiao}': '{s.goodLuck}',\n '{xx.kang}': '{s.badLuck}',\n '{xx.di}': '{s.badLuck}',\n '{xx.fang}': '{s.goodLuck}',\n '{xx.xin}': '{s.badLuck}',\n '{xx.tail}': '{s.goodLuck}',\n '{xx.ji}': '{s.goodLuck}',\n '{xx.dou}': '{s.goodLuck}',\n '{xx.niu}': '{s.badLuck}',\n '{xx.nv}': '{s.badLuck}',\n '{xx.xu}': '{s.badLuck}',\n '{xx.wei}': '{s.badLuck}',\n '{xx.shi}': '{s.goodLuck}',\n '{xx.qiang}': '{s.goodLuck}',\n '{xx.kui}': '{s.badLuck}',\n '{xx.lou}': '{s.goodLuck}',\n '{xx.vei}': '{s.goodLuck}',\n '{xx.mao}': '{s.badLuck}',\n '{xx.bi}': '{s.goodLuck}',\n '{xx.zi}': '{s.badLuck}',\n '{xx.can}': '{s.goodLuck}',\n '{xx.jing}': '{s.goodLuck}',\n '{xx.gui}': '{s.badLuck}',\n '{xx.liu}': '{s.badLuck}',\n '{xx.xing}': '{s.badLuck}',\n '{xx.zhang}': '{s.goodLuck}',\n '{xx.yi}': '{s.badLuck}',\n '{xx.zhen}': '{s.goodLuck}'\n },\n XIU_SONG:{\n '{xx.jiao}': '角星造作主荣昌,外进田财及女郎,嫁娶婚姻出贵子,文人及第见君王,惟有埋葬不可用,三年之后主瘟疫,起工修筑坟基地,堂前立见主人凶。',\n '{xx.kang}': '亢星造作长房当,十日之中主有殃,田地消磨官失职,接运定是虎狼伤,嫁娶婚姻用此日,儿孙新妇守空房,埋葬若还用此日,当时害祸主重伤。',\n '{xx.di}': '氐星造作主灾凶,费尽田园仓库空,埋葬不可用此日,悬绳吊颈祸重重,若是婚姻离别散,夜招浪子入房中,行船必定遭沉没,更生聋哑子孙穷。',\n '{xx.fang}': '房星造作田园进,钱财牛马遍山岗,更招外处田庄宅,荣华富贵福禄康,埋葬若然用此日,高官进职拜君王,嫁娶嫦娥至月殿,三年抱子至朝堂。',\n '{xx.xin}': '心星造作大为凶,更遭刑讼狱囚中,忤逆官非宅产退,埋葬卒暴死相从,婚姻若是用此日,子死儿亡泪满胸,三年之内连遭祸,事事教君没始终。',\n '{xx.tail}': '尾星造作主天恩,富贵荣华福禄增,招财进宝兴家宅,和合婚姻贵子孙,埋葬若能依此日,男清女正子孙兴,开门放水招田宅,代代公侯远播名。',\n '{xx.ji}': '箕星造作主高强,岁岁年年大吉昌,埋葬修坟大吉利,田蚕牛马遍山岗,开门放水招田宅,箧满金银谷满仓,福荫高官加禄位,六亲丰禄乐安康。',\n '{xx.dou}': '斗星造作主招财,文武官员位鼎台,田宅家财千万进,坟堂修筑贵富来,开门放水招牛马,旺蚕男女主和谐,遇此吉宿来照护,时支福庆永无灾。',\n '{xx.niu}': '牛星造作主灾危,九横三灾不可推,家宅不安人口退,田蚕不利主人衰,嫁娶婚姻皆自损,金银财谷渐无之,若是开门并放水,牛猪羊马亦伤悲。',\n '{xx.nv}': '女星造作损婆娘,兄弟相嫌似虎狼,埋葬生灾逢鬼怪,颠邪疾病主瘟惶,为事遭官财失散,泻利留连不可当,开门放水用此日,全家财散主离乡。',\n '{xx.xu}': '虚星造作主灾殃,男女孤眠不一双,内乱风声无礼节,儿孙媳妇伴人床,开门放水遭灾祸,虎咬蛇伤又卒亡,三三五五连年病,家破人亡不可当。',\n '{xx.wei}': '危星不可造高楼,自遭刑吊见血光,三年孩子遭水厄,后生出外永不还,埋葬若还逢此日,周年百日取高堂,三年两载一悲伤,开门放水到官堂。',\n '{xx.shi}': '室星修造进田牛,儿孙代代近王侯,家贵荣华天上至,寿如彭祖八千秋,开门放水招财帛,和合婚姻生贵儿,埋葬若能依此日,门庭兴旺福无休。',\n '{xx.qiang}': '壁星造作主增财,丝蚕大熟福滔天,奴婢自来人口进,开门放水出英贤,埋葬招财官品进,家中诸事乐陶然,婚姻吉利主贵子,早播名誉著祖鞭。',\n '{xx.kui}': '奎星造作得祯祥,家内荣和大吉昌,若是埋葬阴卒死,当年定主两三伤,看看军令刑伤到,重重官事主瘟惶,开门放水遭灾祸,三年两次损儿郎。',\n '{xx.lou}': '娄星修造起门庭,财旺家和事事兴,外进钱财百日进,一家兄弟播高名,婚姻进益生贵子,玉帛金银箱满盈,放水开门皆吉利,男荣女贵寿康宁。',\n '{xx.vei}': '胃星造作事如何,家贵荣华喜气多,埋葬贵临官禄位,夫妇齐眉永保康,婚姻遇此家富贵,三灾九祸不逢他,从此门前多吉庆,儿孙代代拜金阶。',\n '{xx.mao}': '昴星造作进田牛,埋葬官灾不得休,重丧二日三人死,尽卖田园不记增,开门放水招灾祸,三岁孩儿白了头,婚姻不可逢此日,死别生离是可愁。',\n '{xx.bi}': '毕星造作主光前,买得田园有余钱,埋葬此日添官职,田蚕大熟永丰年,开门放水多吉庆,合家人口得安然,婚姻若得逢此日,生得孩儿福寿全。',\n '{xx.zi}': '觜星造作有徒刑,三年必定主伶丁,埋葬卒死多因此,取定寅年使杀人,三丧不止皆由此,一人药毒二人身,家门田地皆退败,仓库金银化作尘。',\n '{xx.can}': '参星造作旺人家,文星照耀大光华,只因造作田财旺,埋葬招疾哭黄沙,开门放水加官职,房房子孙见田加,婚姻许遁遭刑克,男女朝开幕落花。',\n '{xx.jing}': '井星造作旺蚕田,金榜题名第一光,埋葬须防惊卒死,狂颠风疾入黄泉,开门放水招财帛,牛马猪羊旺莫言,贵人田塘来入宅,儿孙兴旺有余钱。',\n '{xx.gui}': '鬼星起造卒人亡,堂前不见主人郎,埋葬此日官禄至,儿孙代代近君王,开门放水须伤死,嫁娶夫妻不久长,修土筑墙伤产女,手扶双女泪汪汪。',\n '{xx.liu}': '柳星造作主遭官,昼夜偷闭不暂安,埋葬瘟惶多疾病,田园退尽守冬寒,开门放水遭聋瞎,腰驼背曲似弓弯,更有棒刑宜谨慎,妇人随客走盘桓。',\n '{xx.xing}': '星宿日好造新房,进职加官近帝王,不可埋葬并放水,凶星临位女人亡,生离死别无心恋,要自归休别嫁郎,孔子九曲殊难度,放水开门天命伤。',\n '{xx.zhang}': '张星日好造龙轩,年年并见进庄田,埋葬不久升官职,代代为官近帝前,开门放水招财帛,婚姻和合福绵绵,田蚕人满仓库满,百般顺意自安然。',\n '{xx.yi}': '翼星不利架高堂,三年二载见瘟惶,埋葬若还逢此日,子孙必定走他乡,婚姻此日不宜利,归家定是不相当,开门放水家须破,少女恋花贪外郎。',\n '{xx.zhen}': '轸星临水造龙宫,代代为官受皇封,富贵荣华增寿禄,库满仓盈自昌隆,埋葬文昌来照助,宅舍安宁不见凶,更有为官沾帝宠,婚姻龙子入龙宫。'\n },\n ZHENG:{\n '{xx.jiao}': '{wx.mu}',\n '{xx.jing}': '{wx.mu}',\n '{xx.kui}': '{wx.mu}',\n '{xx.dou}': '{wx.mu}',\n '{xx.kang}': '{wx.jin}',\n '{xx.gui}': '{wx.jin}',\n '{xx.lou}': '{wx.jin}',\n '{xx.niu}': '{wx.jin}',\n '{xx.di}': '{wx.tu}',\n '{xx.liu}': '{wx.tu}',\n '{xx.vei}': '{wx.tu}',\n '{xx.nv}': '{wx.tu}',\n '{xx.fang}': '{wx.ri}',\n '{xx.xing}': '{wx.ri}',\n '{xx.mao}': '{wx.ri}',\n '{xx.xu}': '{wx.ri}',\n '{xx.xin}': '{wx.yue}',\n '{xx.zhang}': '{wx.yue}',\n '{xx.bi}': '{wx.yue}',\n '{xx.wei}': '{wx.yue}',\n '{xx.tail}': '{wx.huo}',\n '{xx.yi}': '{wx.huo}',\n '{xx.zi}': '{wx.huo}',\n '{xx.shi}': '{wx.huo}',\n '{xx.ji}': '{wx.shui}',\n '{xx.zhen}': '{wx.shui}',\n '{xx.can}': '{wx.shui}',\n '{xx.qiang}': '{wx.shui}'\n },\n ANIMAL:{\n '{xx.jiao}': '{dw.jiao}',\n '{xx.dou}': '{dw.xie}',\n '{xx.kui}': '{dw.lang}',\n '{xx.jing}': '{dw.han}',\n '{xx.kang}': '{dw.long}',\n '{xx.niu}': '{dw.niu}',\n '{xx.lou}': '{dw.gou}',\n '{xx.gui}': '{dw.yang}',\n '{xx.nv}': '{dw.fu}',\n '{xx.di}': '{dw.he}',\n '{xx.vei}': '{dw.zhi}',\n '{xx.liu}': '{dw.zhang}',\n '{xx.fang}': '{dw.tu}',\n '{xx.xu}': '{dw.shu}',\n '{xx.mao}': '{dw.ji}',\n '{xx.xing}': '{dw.ma}',\n '{xx.xin}': '{dw.huLi}',\n '{xx.wei}': '{dw.yan}',\n '{xx.bi}': '{dw.wu}',\n '{xx.zhang}': '{dw.lu}',\n '{xx.tail}': '{dw.hu}',\n '{xx.shi}': '{dw.zhu}',\n '{xx.zi}': '{dw.hou}',\n '{xx.yi}': '{dw.she}',\n '{xx.ji}': '{dw.bao}',\n '{xx.qiang}': '{dw.xu}',\n '{xx.can}': '{dw.yuan}',\n '{xx.zhen}': '{dw.yin}'\n },\n GONG:{\n '{xx.jiao}': '{ps.dong}',\n '{xx.jing}': '{ps.nan}',\n '{xx.kui}': '{ps.xi}',\n '{xx.dou}': '{ps.bei}',\n '{xx.kang}': '{ps.dong}',\n '{xx.gui}': '{ps.nan}',\n '{xx.lou}': '{ps.xi}',\n '{xx.niu}': '{ps.bei}',\n '{xx.di}': '{ps.dong}',\n '{xx.liu}': '{ps.nan}',\n '{xx.vei}': '{ps.xi}',\n '{xx.nv}': '{ps.bei}',\n '{xx.fang}': '{ps.dong}',\n '{xx.xing}': '{ps.nan}',\n '{xx.mao}': '{ps.xi}',\n '{xx.xu}': '{ps.bei}',\n '{xx.xin}': '{ps.dong}',\n '{xx.zhang}': '{ps.nan}',\n '{xx.bi}': '{ps.xi}',\n '{xx.wei}': '{ps.bei}',\n '{xx.tail}': '{ps.dong}',\n '{xx.yi}': '{ps.nan}',\n '{xx.zi}': '{ps.xi}',\n '{xx.shi}': '{ps.bei}',\n '{xx.ji}': '{ps.dong}',\n '{xx.zhen}': '{ps.nan}',\n '{xx.can}': '{ps.xi}',\n '{xx.qiang}': '{ps.bei}'\n },\n SHOU:{\n '{ps.dong}':'{sn.qingLong}',\n '{ps.nan}':'{sn.zhuQue}',\n '{ps.xi}':'{sn.baiHu}',\n '{ps.bei}':'{sn.xuanWu}'\n },\n FESTIVAL:{\n '1-1':'{jr.chunJie}',\n '1-15':'{jr.yuanXiao}',\n '2-2':'{jr.longTou}',\n '5-5':'{jr.duanWu}',\n '7-7':'{jr.qiXi}',\n '8-15':'{jr.zhongQiu}',\n '9-9':'{jr.chongYang}',\n '12-8':'{jr.laBa}'\n },\n OTHER_FESTIVAL:{'1-4':['接神日'],'1-5':['隔开日'],'1-7':['人日'],'1-8':['谷日','顺星节'],'1-9':['天日'],'1-10':['地日'],'1-20':['天穿节'],'1-25':['填仓节'],'1-30':['正月晦'],'2-1':['中和节'],'2-2':['社日节'],'3-3':['上巳节'],'5-20':['分龙节'],'5-25':['会龙节'],'6-6':['天贶节'],'6-24':['观莲节'],'6-25':['五谷母节'],'7-15':['中元节'],'7-22':['财神节'],'7-29':['地藏节'],'8-1':['天灸日'],'10-1':['寒衣节'],'10-10':['十成节'],'10-15':['下元节'],'12-7':['驱傩日'],'12-16':['尾牙'],'12-24':['祭灶日']},\n CHONG:['{dz.wu}', '{dz.wei}', '{dz.shen}', '{dz.you}', '{dz.xu}', '{dz.hai}', '{dz.zi}', '{dz.chou}', '{dz.yin}', '{dz.mao}', '{dz.chen}', '{dz.si}'],\n CHONG_GAN:['{tg.wu}', '{tg.ji}', '{tg.geng}', '{tg.xin}', '{tg.ren}', '{tg.gui}', '{tg.jia}', '{tg.yi}', '{tg.bing}', '{tg.ding}'],\n CHONG_GAN_TIE:['{tg.ji}', '{tg.wu}', '{tg.xin}', '{tg.geng}', '{tg.gui}', '{tg.ren}', '{tg.yi}', '{tg.jia}', '{tg.ding}', '{tg.bing}'],\n CHONG_GAN_4:['{tg.geng}', '{tg.xin}', '{tg.ren}', '{tg.gui}', '', '', '{tg.jia}', '{tg.yi}', '{tg.bing}', '{tg.ding}'],\n HE_GAN_5:['{tg.ji}', '{tg.geng}', '{tg.xin}', '{tg.ren}', '{tg.gui}', '{tg.jia}', '{tg.yi}', '{tg.bing}', '{tg.ding}', '{tg.wu}'],\n HE_ZHI_6:['{dz.chou}', '{dz.zi}', '{dz.hai}', '{dz.xu}', '{dz.you}', '{dz.shen}', '{dz.wei}', '{dz.wu}', '{dz.si}', '{dz.chen}', '{dz.mao}', '{dz.yin}'],\n SHA:{\n '{dz.zi}':'{ps.nan}',\n '{dz.chou}':'{ps.dong}',\n '{dz.yin}':'{ps.bei}',\n '{dz.mao}':'{ps.xi}',\n '{dz.chen}':'{ps.nan}',\n '{dz.si}':'{ps.dong}',\n '{dz.wu}':'{ps.bei}',\n '{dz.wei}':'{ps.xi}',\n '{dz.shen}':'{ps.nan}',\n '{dz.you}':'{ps.dong}',\n '{dz.xu}':'{ps.bei}',\n '{dz.hai}':'{ps.xi}'\n },\n POSITION_DESC:{\n '{bg.kan}':'{ps.zhengBei}',\n '{bg.gen}':'{ps.dongBei}',\n '{bg.zhen}':'{ps.zhengDong}',\n '{bg.xun}':'{ps.dongNan}',\n '{bg.li}':'{ps.zhengNan}',\n '{bg.kun}':'{ps.xiNan}',\n '{bg.dui}':'{ps.zhengXi}',\n '{bg.qian}':'{ps.xiBei}',\n '{ps.center}':'{ps.zhong}'\n },\n NAYIN:{\n '{jz.jiaZi}': '{ny.haiZhong}{wx.jin}',\n '{jz.jiaWu}': '{ny.shaZhong}{wx.jin}',\n '{jz.bingYin}': '{ny.luZhong}{wx.huo}',\n '{jz.bingShen}': '{ny.shanXia}{wx.huo}',\n '{jz.wuChen}': '{ny.daLin}{wx.mu}',\n '{jz.wuXu}': '{ny.pingDi}{wx.mu}',\n '{jz.gengWu}': '{ny.luPang}{wx.tu}',\n '{jz.gengZi}': '{ny.biShang}{wx.tu}',\n '{jz.renShen}': '{ny.jianFeng}{wx.jin}',\n '{jz.renYin}': '{ny.jinBo}{wx.jin}',\n '{jz.jiaXu}': '{ny.shanTou}{wx.huo}',\n '{jz.jiaChen}': '{ny.fuDeng}{wx.huo}',\n '{jz.bingZi}': '{ny.jianXia}{wx.shui}',\n '{jz.bingWu}': '{ny.tianHe}{wx.shui}',\n '{jz.wuYin}': '{ny.chengTou}{wx.tu}',\n '{jz.wuShen}': '{ny.daYi}{wx.tu}',\n '{jz.gengChen}': '{ny.baiLa}{wx.jin}',\n '{jz.gengXu}': '{ny.chaiChuan}{wx.jin}',\n '{jz.renWu}': '{ny.yangLiu}{wx.mu}',\n '{jz.renZi}': '{ny.sangZhe}{wx.mu}',\n '{jz.jiaShen}': '{ny.quanZhong}{wx.shui}',\n '{jz.jiaYin}': '{ny.daXi}{wx.shui}',\n '{jz.bingXu}': '{ny.wuShang}{wx.tu}',\n '{jz.bingChen}': '{ny.shaZhong}{wx.tu}',\n '{jz.wuZi}': '{ny.piLi}{wx.huo}',\n '{jz.wuWu}': '{ny.tianShang}{wx.huo}',\n '{jz.gengYin}': '{ny.songBo}{wx.mu}',\n '{jz.gengShen}': '{ny.shiLiu}{wx.mu}',\n '{jz.renChen}': '{ny.changLiu}{wx.shui}',\n '{jz.renXu}': '{ny.daHai}{wx.shui}',\n '{jz.yiChou}': '{ny.haiZhong}{wx.jin}',\n '{jz.yiWei}': '{ny.shaZhong}{wx.jin}',\n '{jz.dingMao}': '{ny.luZhong}{wx.huo}',\n '{jz.dingYou}': '{ny.shanXia}{wx.huo}',\n '{jz.jiSi}': '{ny.daLin}{wx.mu}',\n '{jz.jiHai}': '{ny.pingDi}{wx.mu}',\n '{jz.xinWei}': '{ny.luPang}{wx.tu}',\n '{jz.xinChou}': '{ny.biShang}{wx.tu}',\n '{jz.guiYou}': '{ny.jianFeng}{wx.jin}',\n '{jz.guiMao}': '{ny.jinBo}{wx.jin}',\n '{jz.yiHai}': '{ny.shanTou}{wx.huo}',\n '{jz.yiSi}': '{ny.fuDeng}{wx.huo}',\n '{jz.dingChou}': '{ny.jianXia}{wx.shui}',\n '{jz.dingWei}': '{ny.tianHe}{wx.shui}',\n '{jz.jiMao}': '{ny.chengTou}{wx.tu}',\n '{jz.jiYou}': '{ny.daYi}{wx.tu}',\n '{jz.xinSi}': '{ny.baiLa}{wx.jin}',\n '{jz.xinHai}': '{ny.chaiChuan}{wx.jin}',\n '{jz.guiWei}': '{ny.yangLiu}{wx.mu}',\n '{jz.guiChou}': '{ny.sangZhe}{wx.mu}',\n '{jz.yiYou}': '{ny.quanZhong}{wx.shui}',\n '{jz.yiMao}': '{ny.daXi}{wx.shui}',\n '{jz.dingHai}': '{ny.wuShang}{wx.tu}',\n '{jz.dingSi}': '{ny.shaZhong}{wx.tu}',\n '{jz.jiChou}': '{ny.piLi}{wx.huo}',\n '{jz.jiWei}': '{ny.tianShang}{wx.huo}',\n '{jz.xinMao}': '{ny.songBo}{wx.mu}',\n '{jz.xinYou}': '{ny.shiLiu}{wx.mu}',\n '{jz.guiSi}': '{ny.changLiu}{wx.shui}',\n '{jz.guiHai}': '{ny.daHai}{wx.shui}'\n },\n WU_XING_GAN:{\n '{tg.jia}':'{wx.mu}',\n '{tg.yi}':'{wx.mu}',\n '{tg.bing}':'{wx.huo}',\n '{tg.ding}':'{wx.huo}',\n '{tg.wu}':'{wx.tu}',\n '{tg.ji}':'{wx.tu}',\n '{tg.geng}':'{wx.jin}',\n '{tg.xin}':'{wx.jin}',\n '{tg.ren}':'{wx.shui}',\n '{tg.gui}':'{wx.shui}'\n },\n WU_XING_ZHI:{\n '{dz.yin}':'{wx.mu}',\n '{dz.mao}':'{wx.mu}',\n '{dz.si}':'{wx.huo}',\n '{dz.wu}':'{wx.huo}',\n '{dz.chen}':'{wx.tu}',\n '{dz.chou}':'{wx.tu}',\n '{dz.xu}':'{wx.tu}',\n '{dz.wei}':'{wx.tu}',\n '{dz.shen}':'{wx.jin}',\n '{dz.you}':'{wx.jin}',\n '{dz.hai}':'{wx.shui}',\n '{dz.zi}':'{wx.shui}'\n },\n SHI_SHEN:{\n '{tg.jia}{tg.jia}':'{ss.biJian}',\n '{tg.jia}{tg.yi}':'{ss.jieCai}',\n '{tg.jia}{tg.bing}':'{ss.shiShen}',\n '{tg.jia}{tg.ding}':'{ss.shangGuan}',\n '{tg.jia}{tg.wu}':'{ss.pianCai}',\n '{tg.jia}{tg.ji}':'{ss.zhengCai}',\n '{tg.jia}{tg.geng}':'{ss.qiSha}',\n '{tg.jia}{tg.xin}':'{ss.zhengGuan}',\n '{tg.jia}{tg.ren}':'{ss.pianYin}',\n '{tg.jia}{tg.gui}':'{ss.zhengYin}',\n '{tg.yi}{tg.yi}':'{ss.biJian}',\n '{tg.yi}{tg.jia}':'{ss.jieCai}',\n '{tg.yi}{tg.ding}':'{ss.shiShen}',\n '{tg.yi}{tg.bing}':'{ss.shangGuan}',\n '{tg.yi}{tg.ji}':'{ss.pianCai}',\n '{tg.yi}{tg.wu}':'{ss.zhengCai}',\n '{tg.yi}{tg.xin}':'{ss.qiSha}',\n '{tg.yi}{tg.geng}':'{ss.zhengGuan}',\n '{tg.yi}{tg.gui}':'{ss.pianYin}',\n '{tg.yi}{tg.ren}':'{ss.zhengYin}',\n '{tg.bing}{tg.bing}':'{ss.biJian}',\n '{tg.bing}{tg.ding}':'{ss.jieCai}',\n '{tg.bing}{tg.wu}':'{ss.shiShen}',\n '{tg.bing}{tg.ji}':'{ss.shangGuan}',\n '{tg.bing}{tg.geng}':'{ss.pianCai}',\n '{tg.bing}{tg.xin}':'{ss.zhengCai}',\n '{tg.bing}{tg.ren}':'{ss.qiSha}',\n '{tg.bing}{tg.gui}':'{ss.zhengGuan}',\n '{tg.bing}{tg.jia}':'{ss.pianYin}',\n '{tg.bing}{tg.yi}':'{ss.zhengYin}',\n '{tg.ding}{tg.ding}':'{ss.biJian}',\n '{tg.ding}{tg.bing}':'{ss.jieCai}',\n '{tg.ding}{tg.ji}':'{ss.shiShen}',\n '{tg.ding}{tg.wu}':'{ss.shangGuan}',\n '{tg.ding}{tg.xin}':'{ss.pianCai}',\n '{tg.ding}{tg.geng}':'{ss.zhengCai}',\n '{tg.ding}{tg.gui}':'{ss.qiSha}',\n '{tg.ding}{tg.ren}':'{ss.zhengGuan}',\n '{tg.ding}{tg.yi}':'{ss.pianYin}',\n '{tg.ding}{tg.jia}':'{ss.zhengYin}',\n '{tg.wu}{tg.wu}':'{ss.biJian}',\n '{tg.wu}{tg.ji}':'{ss.jieCai}',\n '{tg.wu}{tg.geng}':'{ss.shiShen}',\n '{tg.wu}{tg.xin}':'{ss.shangGuan}',\n '{tg.wu}{tg.ren}':'{ss.pianCai}',\n '{tg.wu}{tg.gui}':'{ss.zhengCai}',\n '{tg.wu}{tg.jia}':'{ss.qiSha}',\n '{tg.wu}{tg.yi}':'{ss.zhengGuan}',\n '{tg.wu}{tg.bing}':'{ss.pianYin}',\n '{tg.wu}{tg.ding}':'{ss.zhengYin}',\n '{tg.ji}{tg.ji}':'{ss.biJian}',\n '{tg.ji}{tg.wu}':'{ss.jieCai}',\n '{tg.ji}{tg.xin}':'{ss.shiShen}',\n '{tg.ji}{tg.geng}':'{ss.shangGuan}',\n '{tg.ji}{tg.gui}':'{ss.pianCai}',\n '{tg.ji}{tg.ren}':'{ss.zhengCai}',\n '{tg.ji}{tg.yi}':'{ss.qiSha}',\n '{tg.ji}{tg.jia}':'{ss.zhengGuan}',\n '{tg.ji}{tg.ding}':'{ss.pianYin}',\n '{tg.ji}{tg.bing}':'{ss.zhengYin}',\n '{tg.geng}{tg.geng}':'{ss.biJian}',\n '{tg.geng}{tg.xin}':'{ss.jieCai}',\n '{tg.geng}{tg.ren}':'{ss.shiShen}',\n '{tg.geng}{tg.gui}':'{ss.shangGuan}',\n '{tg.geng}{tg.jia}':'{ss.pianCai}',\n '{tg.geng}{tg.yi}':'{ss.zhengCai}',\n '{tg.geng}{tg.bing}':'{ss.qiSha}',\n '{tg.geng}{tg.ding}':'{ss.zhengGuan}',\n '{tg.geng}{tg.wu}':'{ss.pianYin}',\n '{tg.geng}{tg.ji}':'{ss.zhengYin}',\n '{tg.xin}{tg.xin}':'{ss.biJian}',\n '{tg.xin}{tg.geng}':'{ss.jieCai}',\n '{tg.xin}{tg.gui}':'{ss.shiShen}',\n '{tg.xin}{tg.ren}':'{ss.shangGuan}',\n '{tg.xin}{tg.yi}':'{ss.pianCai}',\n '{tg.xin}{tg.jia}':'{ss.zhengCai}',\n '{tg.xin}{tg.ding}':'{ss.qiSha}',\n '{tg.xin}{tg.bing}':'{ss.zhengGuan}',\n '{tg.xin}{tg.ji}':'{ss.pianYin}',\n '{tg.xin}{tg.wu}':'{ss.zhengYin}',\n '{tg.ren}{tg.ren}':'{ss.biJian}',\n '{tg.ren}{tg.gui}':'{ss.jieCai}',\n '{tg.ren}{tg.jia}':'{ss.shiShen}',\n '{tg.ren}{tg.yi}':'{ss.shangGuan}',\n '{tg.ren}{tg.bing}':'{ss.pianCai}',\n '{tg.ren}{tg.ding}':'{ss.zhengCai}',\n '{tg.ren}{tg.wu}':'{ss.qiSha}',\n '{tg.ren}{tg.ji}':'{ss.zhengGuan}',\n '{tg.ren}{tg.geng}':'{ss.pianYin}',\n '{tg.ren}{tg.xin}':'{ss.zhengYin}',\n '{tg.gui}{tg.gui}':'{ss.biJian}',\n '{tg.gui}{tg.ren}':'{ss.jieCai}',\n '{tg.gui}{tg.yi}':'{ss.shiShen}',\n '{tg.gui}{tg.jia}':'{ss.shangGuan}',\n '{tg.gui}{tg.ding}':'{ss.pianCai}',\n '{tg.gui}{tg.bing}':'{ss.zhengCai}',\n '{tg.gui}{tg.ji}':'{ss.qiSha}',\n '{tg.gui}{tg.wu}':'{ss.zhengGuan}',\n '{tg.gui}{tg.xin}':'{ss.pianYin}',\n '{tg.gui}{tg.geng}':'{ss.zhengYin}'\n },\n ZHI_HIDE_GAN:{\n '{dz.zi}': ['{tg.gui}'],\n '{dz.chou}': ['{tg.ji}', '{tg.gui}', '{tg.xin}'],\n '{dz.yin}': ['{tg.jia}', '{tg.bing}', '{tg.wu}'],\n '{dz.mao}': ['{tg.yi}'],\n '{dz.chen}': ['{tg.wu}', '{tg.yi}', '{tg.gui}'],\n '{dz.si}': ['{tg.bing}', '{tg.geng}', '{tg.wu}'],\n '{dz.wu}': ['{tg.ding}', '{tg.ji}'],\n '{dz.wei}': ['{tg.ji}', '{tg.ding}', '{tg.yi}'],\n '{dz.shen}': ['{tg.geng}', '{tg.ren}', '{tg.wu}'],\n '{dz.you}': ['{tg.xin}'],\n '{dz.xu}': ['{tg.wu}', '{tg.xin}', '{tg.ding}'],\n '{dz.hai}': ['{tg.ren}', '{tg.jia}']\n },\n YI_JI:[\n '{yj.jiSi}',\n '{yj.qiFu}',\n '{yj.qiuSi}',\n '{yj.kaiGuang}',\n '{yj.suHui}',\n '{yj.qiJiao}',\n '{yj.zhaiJiao}',\n '{yj.muYu}',\n '{yj.chouShen}',\n '{yj.zaoMiao}',\n '{yj.siZhao}',\n '{yj.fenXiang}',\n '{yj.xieTu}',\n '{yj.chuHuo}',\n '{yj.diaoKe}',\n '{yj.jiaQu}',\n '{yj.DingHun}',\n '{yj.naCai}',\n '{yj.wenMing}',\n '{yj.naXu}',\n '{yj.guiNing}',\n '{yj.anChuang}',\n '{yj.heZhang}',\n '{yj.guanJi}',\n '{yj.dingMeng}',\n '{yj.jinRenKou}',\n '{yj.caiYi}',\n '{yj.wanMian}',\n '{yj.kaiRong}',\n '{yj.xiuFen}',\n '{yj.qiZuan}',\n '{yj.poTu}',\n '{yj.anZang}',\n '{yj.liBei}',\n '{yj.chengFu}',\n '{yj.chuFu}',\n '{yj.kaiShengFen}',\n '{yj.heShouMu}',\n '{yj.ruLian}',\n '{yj.yiJiu}',\n '{yj.puDu}',\n '{yj.ruZhai}',\n '{yj.anXiang}',\n '{yj.anMen}',\n '{yj.xiuZao}',\n '{yj.qiJi}',\n '{yj.dongTu}',\n '{yj.shangLiang}',\n '{yj.shuZhu}',\n '{yj.kaiJing}',\n '{yj.zuoBei}',\n '{yj.chaiXie}',\n '{yj.poWu}',\n '{yj.huaiYuan}',\n '{yj.buYuan}',\n '{yj.faMuZuoLiang}',\n '{yj.zuoZhao}',\n '{yj.jieChu}',\n '{yj.kaiZhuYan}',\n '{yj.chuanPing}',\n '{yj.gaiWuHeJi}',\n '{yj.kaiCe}',\n '{yj.zaoCang}',\n '{yj.saiXue}',\n '{yj.pingZhi}',\n '{yj.zaoQiao}',\n '{yj.zuoCe}',\n '{yj.zhuDi}',\n '{yj.kaiChi}',\n '{yj.faMu}',\n '{yj.kaiQu}',\n '{yj.jueJing}',\n '{yj.saoShe}',\n '{yj.fangShui}',\n '{yj.zaoWu}',\n '{yj.heJi}',\n '{yj.zaoChuChou}',\n '{yj.xiuMen}',\n '{yj.dingSang}',\n '{yj.zuoLiang}',\n '{yj.xiuShi}',\n '{yj.jiaMa}',\n '{yj.kaiShi}',\n '{yj.guaBian}',\n '{yj.naChai}',\n '{yj.qiuCai}',\n '{yj.kaiCang}',\n '{yj.maiChe}',\n '{yj.zhiChan}',\n '{yj.guYong}',\n '{yj.chuHuoCai}',\n '{yj.anJiXie}',\n '{yj.zaoCheQi}',\n '{yj.jingLuo}',\n '{yj.yunNiang}',\n '{yj.zuoRan}',\n '{yj.guZhu}',\n '{yj.zaoChuan}',\n '{yj.geMi}',\n '{yj.zaiZhong}',\n '{yj.quYu}',\n '{yj.jieWang}',\n '{yj.muYang}',\n '{yj.anDuiWei}',\n '{yj.xiYi}',\n '{yj.ruXue}',\n '{yj.liFa}',\n '{yj.tanBing}',\n '{yj.jianGui}',\n '{yj.chengChuan}',\n '{yj.duShui}',\n '{yj.zhenJiu}',\n '{yj.chuXing}',\n '{yj.yiXi}',\n '{yj.fenJu}',\n '{yj.TiTou}',\n '{yj.zhengShou}',\n '{yj.naChu}',\n '{yj.buZhuo}',\n '{yj.tianLie}',\n '{yj.jiaoNiuMa}',\n '{yj.huiQinYou}',\n '{yj.fuRen}',\n '{yj.qiuYi}',\n '{yj.zhiBing}',\n '{yj.ciSong}',\n '{yj.qiJiDongTu}',\n '{yj.poWuHuaiYuan}',\n '{yj.gaiWu}',\n '{yj.zaoCangKu}',\n '{yj.liQuanJiaoYi}',\n '{yj.jiaoYi}',\n '{yj.liQuan}',\n '{yj.anJi}',\n '{yj.huiYou}',\n '{yj.qiuYiLiaoBing}',\n '{yj.zhuShi}',\n '{yj.yuShi}',\n '{yj.xingSang}',\n '{yj.duanYi}',\n '{yj.guiXiu}',\n '{s.none}'\n ],\n LU:{\n '{tg.jia}':'{dz.yin}',\n '{tg.yi}':'{dz.mao}',\n '{tg.bing}':'{dz.si}',\n '{tg.ding}':'{dz.wu}',\n '{tg.wu}':'{dz.si}',\n '{tg.ji}':'{dz.wu}',\n '{tg.geng}':'{dz.shen}',\n '{tg.xin}':'{dz.you}',\n '{tg.ren}':'{dz.hai}',\n '{tg.gui}':'{dz.zi}',\n '{dz.yin}':'{tg.jia}',\n '{dz.mao}':'{tg.yi}',\n '{dz.si}':'{tg.bing},{tg.wu}',\n '{dz.wu}':'{tg.ding},{tg.ji}',\n '{dz.shen}':'{tg.geng}',\n '{dz.you}':'{tg.xin}',\n '{dz.hai}':'{tg.ren}',\n '{dz.zi}':'{tg.gui}'\n },\n DAY_YI_JI:'30=192531010D:838454151A4C200C1E23221D212726,030F522E1F00=2430000C18:8319000776262322200C1E1D,06292C2E1F04=32020E1A26:7917155B0001025D,0F522E38201D=162E3A0A22:790F181113332C2E2D302F1554,7001203810=0E1A263202:79026A17657603,522E201F05=0D19250131:7911192C2E302F00030401060F1571292A75,707C20522F=0C18243000:4F2C2E2B383F443D433663,0F01478A20151D=0E1A320226:3840,0001202B892F=14202C3808:3807504089,8829=0E1A263202:383940,6370018A75202B454F6605=32020E1A26:38394089,0001202B22=16223A0A2E:384C,8A2020=2B3707131F:2C2E5B000739337C38802D44484C2425201F1E272621,5229701535=121E2A3606:2C2E2D2B156343364C,0F4729710D708A20036A1904=0D19250131:5040262789,0F7129033B=202C380814:5040000738,0F7D7C584F012063452B35=1A2632020E:50400089,8813=1A2632020E:69687011180F791966762627201E,0352292E8034=182430000C:291503000D332E53261F2075,0F5238584F450B=000C182430:297170192C2E2D2F2B3E363F4C,0F52156320010347200B=131F2B3707:297115030102195283840D332C2E,0F1F5863201D8A02=222E3A0A16:261F1E20232289,52290058363F32=16222E3A0A:261F201E232289,8D39=0D19310125:262322271E201D21,52450F4F09=0D19253101:262322271E202189,1F4526=16222E3A0A:262322271F1E20,712906=0F1B273303:17262322274050,80387C6B2C=0915212D39:1707702C2E71291F20,0F52000106111D15=16222E3A0A:170007386A7448363F261F1E,030F79636F2026=030F1B2733:1784832C2E5B26201F,0F010D2913=182430000C:175447440D15838477656A49,2B2E1F8A202228=101C283404:70504C7889,8803=0D19250131:700F181126151E20001A7919,8D2F=0915212D39:705283845B0D2F71,0F202E4106=3606121E2A:70786289,06802E1F23=1824000C30:70076A363F,292017=202C380814:700718111A302F717566,0F2B2E2026=3B0B17232F:70545283842E71291A7933192A5D5A5040,090C384F45208A1D6B38=212D390915:7039170F45513A2C2E7129242526271F201D,00010352153A=15212D3909:703911170E2C2E2D2F4B15712952633D,092B8A2027=010D192531:702D155483840F63262720,53292F017D4F38442B2E1F4717=16222E3A0A:705C4C39171A4F0E7971295B5248,0F2E1F1D37=1A2632020E:2E260F27201F,523815292F1A22=0E1A260232:64262322271F2021,0F2F293822=2F3B0B1723:161A0F1526271F4C,586103473818=2430000C18:161A7889,292E1F0F386131=17232F3B0B:04795B3F651A5D,0F5201062016=14202C3808:04170F79195D1A637566363F76,01522E8A2039=132B37071F:0470170F191A134C8384662426232227201E,8D08=0D19253101:040370181123220F1326271E2021,29153B=0D19310125:040307177938494C,0F26207017=0E2632021A:0403010218111A17332C2E2D2B15713E6575,45382064291D=142C380820:04033918110F0D2C2E7129332D2B72528384547566,8D1C=1830000C24:040318111A17332C15290D200C7A,4745063835=0F2733031B:040318111A16175B795452848315302F6563395D,387029202E=14202C3808:04031975363F6366,0F5401202C5283842E2F1E=0E1A320226:0403080618111A16332E2F152A09537919702C5445490D75072B,8063203820=182430000C:04067033392C7161262322271E1D210C,8D2F=101C283404:3F4889,881C=2733030F1B:3F74397677658988,0F3847201D=293505111D:3F8B657789,0F2029702E7D35=111D293505:3F8B6589,1F200A=020E1A2632:3F656477,0F2B71292005=111D290535:3F6589,8810=0F1B273303:3F88,2B38200F1C=293505111D:0F83843D363F776424,15462F2C52032971152A=0F1B273303:0F17795B54838458,52807C3811=121E2A3606:0F172C2E387129363F7566512D4E4461,01034752203A=172F3B0B23:0F171511793F76584C,0347200C1D20=2D39091521:0F175B3975660745514F2B4825201E211D,010352292E2E=0F1B273303:0F170070792C2E261F,040341232228=05111D2935:0F1700707129385C363F3D1F1E232226,80412B202F14=14202C3808:0F17000728705448757A,522E1F15562F05=30000C1824:0F17000102061979454F3A15477677,241F8A2021=2F3B0B1723:0F17000102060370392E52838453331F,452F2C266A79292B203810=0C18243000:0F170001020E032A70692C2E302F802D2B0D7129474C201F2322,5211183809615D34=1A2632020E:0F171170792F5B1566770001032C2B802D,29387C207134=14202C3808:0F0D33000103452E528384297115752620,63386F7014=15212D3909:0F7045332C2E71201F1D21,4701155229530327=101C283404:0F70161715232238838426271F20,7D035219=121E2A3606:0F705B0004037C5D15653F1F26,522B473809=131F2B0737:0F705215261E20,012E1F25=182430000C:0F707B7C00012F75,52201B=2531010D19:0F706A151E201D528384544466,47010C2E292F2C3820=14202C3808:0F707500261E20,382E1F05=3606121E2A:0F161A17452F0D33712C2E2B5443633F,150170208A0327=0E1A263202:0F150370002E0D3979528384532971331F1E20,477D0D=06121E2A36:0F5B8370000102060403161A494447,386A418A201A=17232F3B0B:0F03700D332C2E2971152F52838463,01004547380C26=101C283404:0F03700D33195284835329711563,01260038206B0E=131F2B3707:0F03706A4F0D332C528384532E29711563,450075000F=131F2B3707:0F0370010239332E2C19528384532971156375262720,8D18=17232F3B0B:0F0370390D332C192E2971637547202322,581528=0E1A263202:0F0302791566046F,29710D722A38528384202E4530=0E1A263202:0F030102392E15634447001F1E,293845200D707538=1E2A360612:0F0300017039712952542D2C302F80380D2A363F3349483E616320,1118150C1F2E20=33030F1B27:0F03000102700D29713963451F0C20,528338542F15806128=121E2A3606:0F030001027039452971150D332C2F6327,2052838403=2C38081420:0F030001022A0D3945297115528384637020,476A382E1F4426=010D192531:0F03390D332C1929711563261D2E2322,382000521118750C706B15=131F2B3707:0F033915666A52261E272048,382E2F6329712C0114=0D19253101:0F52838403700D332C29712E1F27201E2322,1545017505=131F2B3707:0F528400012E7129,092026=3707131F2B:0F528471295B795D2B155333565A446375661F201E272621,00016B0C4113=14202C3808:0F280001363F8B4326232220,2E1F47032F7D35=16222E3A0A:0F0211195465756679,2F384570202B6A10=15212D3909:0F0102700D332C2E2F0319528384531529716345261F2322,8D32=101C283404:0F0102037039330D5284832971152E1F0C,0026206B37=16222E3A0A:0F003854,20521D2106=020E1A2632:0F00175058,5D6B80382E16=1B2733030F:0F00701784831952712C2E1526271F,033806201F=2B3707131F:0F00701A17830E544C5C78,7129632E1F38208A452F16=15212D3909:0F00040370396A742E15444948,458A384F2021=16222E3A0A:0F005B261F20,2E2F1D=2531010D19:0F0003450D3329712C2E2F1575,528A63705A20587D7C12=17232F3B0B:0F00030D70332C2E3952838453542971156375,6B2019=1B2733030F:0F000301020D297115332E1F0C,165220262E=121E2A3606:0F00030102700D332E2C192971155383846375261F1E20,8D1F=33030F1B27:0F00030102700D19297115332C2B535448,2E45208A00=2632020E1A:0F00030102705283842E544779,2920454F754C3836=16222E3A0A:0F0052037029710D332C15,7545584F8A201D2121=121E2A3606:0F00074850,8A2036=0D25310119:0F00071A706A717677492923221E202726,80522E1F39=1E2A360612:0F006A385040740717,1F70631E=212D390915:0F006A1938271779,565A4575522F801F1E632B=121E2A3606:0F00010D0302703352838453297115632E,208A454F2B=0E1A263202:0F000170390D332E2971152F63751F1E20,52846A381F=14202C3808:0F000106387129,2E1F24=14202C3808:0F0001062E7129,522010=0814202C38:0F0001062871292E7C528384032C5C2A15767765,11185D8A206B08=131F2B0737:0F0001067C1F20,522900=202C380814:0F0001020D700339332C192A83842971152E1F0C20262322,065256386110=111D293505:0F000102700D332C2E297115383F631F20,0347562B=14202C3808:0F000102700D332C712E15261F201E,80036A61473831=0C18243000:0F000102700D335283845329711563,38048A7D45202A=14202C3808:0F000102702E15471F1E,294F2B452C2F268011=0D19253101:0F0001022E792D3E75663D19,472063703852292B39=222E3A0A16:0F0001022E154826271F1E203874362322,036312=0D19253101:0F000102032971152C2E19,4720637038522B15=111D293505:0F000102030D70332E3919528384532971152B2F201F0C,8D1B=232F3B0B17:0F000102030D7033528384534529711520,63475814=131F2B3707:0F000102030D332C2E195283845329716375261E2322,8D19=15212D3909:0F00010203700D332C2E1929711552838453637526202322,8D09=111D293505:0F00010203700D332E2F192971152B52838453631F20,8D33=1A2632020E:0F00010203700D332E2F1929711552838453261F201E2322,8D03=2E3A0A1622:0F0001020370332C2E2F1575261F,2971476A458352380C=111D293505:0F0001020370332E2F0D19297115637566302B2C3979,8D08=000C182430:0F000102037039297175261F1D21,454F2E1563410F=17232F3B0B:0F0001020370390D3319297115632E2C752620212322,8D07=3606121E2A:0F0001020370390D332C1929712E157563548384534C,20248A38=16222E3A0A:0F0001020370390D1952838453542971631F0C,152036=14202C3808:0F00010203703915632719792322,80262045297158750F=111D293505:0F00010203528384157033,752971206B452F2B262E05=3404101C28:0F00010206030D7129302F79802D7C2B5C4744,11701D2052843833=111D293505:0F00010206181139702E1F686F6A792D2C304E153375664923221D21,52296B0D800D=15212D3909:0F000102070D70332C2E19528384297115637526201E2322,8D05=2C38081420:0F0001021A175D2C19152E302F7183846379,8A20704F7545410A=131F2B3707:0F001A651707,565A58202E1F476320=121E36062A:0F11707B7C5271291E20,2E1F39=111D293505:0F11700001522E71291F20,2B07=131F2B0737:0F11700001397129,2E2002=111D293505:0F11707129,2E1F2002=131F37072B:0F1152702E2F71291F20,000103=131F37072B:0F1152702E2F71291F20,7A3A=111D293505:0F117B7C2C2E71291F20,520300=111D350529:0F110001702E2F71291F20,0621=101C280434:0F11000170717B,522E1F0A=06121E2A36:0F110001708471292E1F20,03388051561C=121E2A3606:0F1100017B7C702E7129,522B22=2D39091521:0F110039702C2E522F1574487B7C2D4E804B,098A204538612B=05111D2935:0F1118795B65170002195D,52382E8A201E=2531010D19:0F111829711500010370390D332E750C201F,4552832F382B8004=2A3606121E:0F1118175C000301027039450D29332C2E2F15631F,8A582020=31010D1925:0F1118032A0D545283841A802D2C2E2B71296366774744201F26232221,010900150C06=2C38081420:0F11180300706A2E1549466319,292F26806B382B20754506=2E3A0A1622:0F1118528384530001035C702971152B332C2E63201F1E23222621,6B75452D4F802E=111D293505:0F1118060300017B7C792E39767566261F20,7129805136=232F3B0B17:0F111800171A454F514E3A3871157765443D23221E262720,80612E1F1C=212D390915:0F11180003706A4F0D332C2E192971155363751F20262322,524746416128=3B0B17232F:0F111800037039450D2971332C632026,1F2E2B38528327=3B0B17232F:0F11180006032A0D70332E011954838471152C202322,58477D630C=0814202C38:0F1118000106287129705B032C2E302F802D4E2B201F,528458384108=380814202C:0F11180001027039302971542F7526201E,63472E151F583A=1E2A360612:0F1118000102030D70332C2E192971158384535426201E2322,471F1B=1F2B370713:0F1118000102030D70332C2E195283845329711563261F0C20,4745752522=3505111D29:0F1118000102030D70332E2C192971153953631F0C262720,5284612528=390915212D:0F111800010203700D332C2E192971152F4B49471F270C2322,52562B2029=390915212D:0F111800010203391929710D1552838453,2075708A456309410F=0A16222E3A:0F111800010206032A0D097170292D302F1575761320,521F47251D=1F2B370713:0F18000102111A1703154F2C2E382D2F807566,7163708A1F207D2A=05111D2935:0F111800017C5C2C2E7129,527015382021=2B3707131F:0F11185C0370332D152322528384636626271E,2F292C2E1F00010601=2430000C18:0F11185C0001092A0D7014692983847B7C2C2E302F802D2B,06454F208A2E=0D19253101:0F11181200171A7919547638,5215201D09=3A0A16222E:0F1A1716007015713F261F2720,5263587D2B470304=111D293505:0F1A0070153871291F20,7A7629=010D192531:0F181179005B712980152D4E2A0D533358,5270208A11=0814202C38:0F181138171A7975665B52845415,47701F8A2013=121E2A3606:0F181117795B5C007054292A0D690403332D2C2E66632B3D,8A454F3822=121E2A3606:0F1811705200012E71291F20,382A=16222E0A3A:0F1811705200012E71291F20,062B27=14202C0838:0F18117052000171291E20,2E1F27=16222E0A3A:0F18117000012E71291F20,527A06=111D290535:0F1811700001062E2F1F20,712912=14202C3808:0F181100062839707952542C2E302F03565A7566441F1E,0D29802B2029=1824300C00:0F181100012C2E7129,522025=121E2A0636:0F18110001261F20,03522E=0915212D39:0F18110001702C2E7129,6F454F098A2025=030F1B2733:0F18110001702C2E71291F0D2B152F2127,5283162014=16222E3A0A:0F18110001707B7C0D7129,52565A152B2034=17232F3B0B:0F1811000104037115454F7677657B7C392023222726210C,52092E1F27=3707131F2B:0F181100010603797B7C802D302F2B6743441F202322,2952477D2528=14202C0838:0F181100017B7C2E71291F20,036F33=0D19253101:0F18110001027939706954528384685D15565A75201E1D26,29032E11=182430000C:0F1811000102062A0D2C2D804B2B672E2F7129,70471F8A2030=17232F3B0B:0F5C707971292C2E0E032A0D6A804B2D8C2B3348634C,52110915462031=15212D3909:0F5C5B0001032A0D7052842C2E71291F20,1118517D462B=0F1B273303:0F5C111800015B712952841F20,756A251A=2733030F1B:1545332C2E2F84836375662620,0F0003700D71292B1C=0E1A320226:1516291211020056,06382007=000C182430:1551000403706A454F3A3D771F262322271E1D21,382B41522016=17232F3B0B:1500443626271F1E,29710F47380D19520337=182430000C:150001021745512E443D65262322,2B63387C18=192531010D:151A83842627202322,580F7003632E1F297C26=0E1A263202:15391A302F83845475662627201E,0F702E4629004708=3606121E2A:5B000102073911522C302F3A678C363F33490D482425200C1E2322,0F15382E1F6116=1E2A360612:5B71297000010611182A0D39792C2E332D4E80151F202621,52454F3804=2C38081420:5B11180001020328700D332C2E195283847115632F751F2720,290F476630=0C18243000:201E27262322,8902=3404101C28:2A0D11180F52848353037039156358332C2E,3820002628=010D192531:4089,030F565A61206B27=1824300C00:4089,8836=1C28340410:0370833F0F6A5215,010D582E1F202C2F582938=112935051D:03700F,79192C2E2D715275262322271F201D217936=112935051D:0370110F45510D3371290941614C522623222720,8D3B=152D390921:03047039171A533852443D363F,8D11=0F1B273303:030402111A16175B4F3A2B153E0079015D54528483696A51,7006200F05=0F1B270333:03041A174533302F56795B3E808339528454,700F292026=121E2A3606:037B7C2E2F261F20,0F14=1E2A360612:030270170F45513A2C71295283842A0D532D24252623222720,155A382E1F2F=1B2733030F:03027011170D332D2C2E2F716152838454,010F201F2C=121E2A3606:03027039450D332C2F2D2971528384636626202322,581535=212D390915:03020E0F18110D332C2E2D2F4971293E615244756653,8A202531=1B2733030F:030102703945802D2C512B7129092322270C7566,112E528325=2D39091521:030102062C2E543E3D636679,380D19462971001F=293505111D:03111A171538193E3F,0F632C2E70454F200C19=17232F3B0B:031A2B7915656A,0F177001204529710D632E2F02=32020E1A26:033945302F838475262720,297071000F2E1F3810=17232F3B0B:0339332C2E1575201E26,0F520D631F29712A72473826=390915212D:0339332C2E302B66201D1F27,0D2971010015520F6B0E=15212D3909:03392D2E332F211D201F1E27,0F7015380029710D195824=16223A0A2E:036F791E20,522E1F31=1D29350511:5283845B79037B7C802D2C2E4E302F2B38493D4463664C1F2021,0F0D712917=15212D3909:5283845303702971150D2F,388A6A6D0F2012=111D293505:528384530370331929272E2B2F631F1D20,0F156B380E=0D19253101:528384530339454F0D297115332E2F637520,0F00705802=2A3606121E:528384530339332E152C2F58631F20,380D000F2900=283404101C:528384530003010215392C20,1112180F29560D2E1F754511=15212D3909:5283845300031929150D332C2E63,0F217045208A717521=3505111D29:5283845300010670802D2C2E4E155B201F1E232221,380F71296A0E=17232F3B0B:5283845354037029711575262720,631F58000F2E38010D=111D293505:528384000103451915332C2E631F2720,29716A0D0F7019=1D29350511:5283840001032E1570637566302F391F,0F4729712030=16222E3A0A:5283845479036A2627201E,0F380D70297115012F1A=1F2B370713:528384542E03700F111869565A7566631F1E2021,297138000C31=121E2A3606:52838454443D65002C2E15495D1F,0F417D712B38630F=0D19253101:5283845444360F11756415,2C2F29016B472E2B20381D=212D390915:528384545363000103332E15,0F1F197029710D757D2032=121E2A3606:528384546315332C2E2F26201F2322,0F0D45002971756B17=192531010D:52838454754C2971150301022E,0F63206A0938268A4117=1B2733030F:52848353000103297115332E2F19,0F8A514F6A6620754526=1824300C00:528403395B2F1E20,0F012D=0B17232F3B:5254700001020612692D4E584647336375662E1F1E,71290D262037=131F2B3707:525400045B17791A565D754C7866,2E1F207C34=0F2733031B:483F89,8838=232F3B0B17:767779392623222789,152B1F1D200E=0A16222E3A:767789,528300292025=14202C3808:7665261F20,0F291A=222E3A0A16:7665262322271F201E21,0F0029807124=1824000C30:7889,292E1F24=101C283404:8D,8832=1D29350511:63767789,522E0006206B31=131F2B3707:7B7C343589,0F7038=2632020E1A:7B7C343589,520F20=0E1A260232:7B34,8812=1C28340410:02703918110F7919155283756626232227201E,012C2E1F0C29=121E2A3606:020F11161A17454F2C2E2D302F2B38434C,2070016328=1824300C00:02060418110D332C2E415B637566262322271F20,520F23=142038082C:07504089,0F010C=15212D3909:07262723221F40,0F7129523B=2430000C18:0717363F1A2C4F3A67433D8B,71290F0103471A=2531010D19:0704031118528384542D2E4E49201F1E1D2127,292B000C3B=283404101C:073F7765644889,012014=111D293505:074048261F202322,0F71454F1500018008=111D293505:07404826271F1E2089,882C=0D19253101:07565A5283845463756677261F20,010F15296120=2F3B0B1723:07487677393F89,0F2952151F1D30=111D293505:074889,06520F3808=17232F3B0B:074889,883B=131F2B3707:074889,8832=15212D3909:07762623221F1E20,000F1552296B2F2A=0D19253101:0776776A742623221F200C211D1E,11180F2F5206802B0B=04101C2834:0776776564,000F29382011=101C283404:0706397B7C794C636A48,520F7129472026=14202C3808:077C343589,880A=380814202C:076A79040363660F5D363F,52292E1F20382F15560123=16223A0A2E:076A696819,0F2918=222E3A0A16:076A171552847983546578,712970010F2D=182430000C:076A48,45752F29384C0F204F612B30=131F2B3707:076A7626271F1E20,0D0F29382F2E0E=0814202C38:07343589,065238=1C28340410:070039201F0C2789,06030F292F23=101C280434:076564,0F292002=0D19253101:073918111A17332C2E71292322271F1E20481D45548384,38002F702A=1824300C00:7C343589,8801=172F3B0B23:6A79363F65,0F292B7118=1B2733030F:6A170F19,5845754C201F4F382430=1B2733030F:6A170F1963766F,5452201F32=0C18243000:6A0339332C20528384531563,29713801000F0C47806B3B=2A3606121E:77766564000789,0F52201E8A01=202C380814:1F2027260076232289,0F29528339=0F1B330327:3435,8809=0F1B273303:34357B7C,8818=121E2A3606:34357B7C7789,0F291D=232F3B0B17:34357B7C89,0F2021=33030F1B27:34357B7C89,030F27=390915212D:34357B7C89,712917=1D29350511:3435073989,8802=2C38081420:34357C89,0111180F292006=30000C1824:34357C89,71291A=14202C3808:34357C89,8A2036=182430000C:3435000789,8835=232F3B0B17:34350089,0F2025=3707131F2B:34353989,0F2037=0D25310119:343589,0F52202D=0F1B273303:343589,0F7152290D=131F2B3707:343589,8830=121E2A3606:343589,881C=16222E3A0A:343589,8819=131F2B3707:343589,880F=15212D3909:343589,8832=14202C3808:343589,8813=0D19253101:343589,8811=17232F3B0B:343589,881E=142C380820:017018110F1A2E15495247838463462322271F,8D03=0F1B270333:0103040818111A155284262322271E20217A79708330,38472E631B=14202C3808:010670170F0E3A294152838454262322271F201E,2E1815442C=0F1B273303:01067071292C2E1F20,1103150F520A=17232F0B3B:010670181126271F202165,293816=182430000C:0106111839513A2C2E2D2F8C804B4723221F63,7152292037=0F2733031B:010203040618110F3315292A271D200C6339171A712C2E30491E21,7A21=0E1A260232:010206040318110F2E292A27200C70072C302F541F392B49,381512=1A2632020E:010206110F452C2E7129095B5226232227201F0C,58804B036B2B381C=142C380820:01023918112E2D493E52756624262322271F20,8D12=121E2A3606:008354,06462F2E1F27=030F1B2733:00797084831754,0F2E472D4E1F06=0D19250131:0079701811072C2E01060F33152627200C7A1A302F4576631F2B,8052382900=172F3B0B23:00790F072C2E0103047018111A262322271E7A302F5448637545,293815561E=101C340428:007952151E20,0F2E1F33=0F1B273303:007984831A160F1719,632E20471D6B01=152D390921:0079110F0304062A528423222627207A19701A2C2E2F5D83,294513=0F1B273303:0079181A165B332F2B262322271E2021030469702D4E49712930845D,454F05=152139092D:0079192E2F030417332D1552847A5D,4E201F=162E3A0A22:003826232277,632E20523A=0D19310125:0038262389,521513=1C28340410:00384089,0F202E157C07=04101C2834:00384089,152967631F=101C283404:00384740,0F2037=1C28340410:00387765504089,0F157C04=131F37072B:00385476,521F13=16222E3A0A:003854767789,2E1F522010=131F2B3707:003854637519,205D1D1F52151E210F=121E2A3606:003889,52201F1D4733=121E2A3606:003889,881F=212D390915:001D23221E2789,52290F2E1F202B=07131F2B37:002C7080305C784C62,2E1F472001=283404101C:004D64547589,0F292E=131F2B3707:005040,522E1F0F2C2004=3404101C28:005089,032C2E1F33=182430000C:005089,8815=192531010D:00261F23221E201D2189,8D12=131F2B3707:00261F2322271E200C89,8D1E=121E2A3606:0026271E20,2F2E1F33=16222E3A0A:002627241F1E20232289,8D33=14202C3808:002627651E20232289,881B=182430000C:00262789,292C2E1F2B2F2A=07131F2B37:00262322271F1E203F8B65,52290F038002=15212D3909:001779332D2322271E2007760304,38290F1C=1F2B370713:00173883546365756619,466115201F701D47522434=0D25310119:00170F79191A6540,712909387C2015=0E1A263202:00170F332C2E2D2F802952443F26232227201F,15637C383A=132B37071F:00170F7665776489,8D2A=390915212D:00177689,0F52804F2507=2E3A0A1622:00177179546A76,0F52443D1F2D=0915212D39:0070,0F292C2E791F13=131F2B3707:007083624C,0F38202E7D4F45471F7107=380814202C:00704F0D332C2E2D15363F261F20274C,0F2906036F4703=3404101C28:00702C2E164C157126271F1E202425363F,29386A032B0F=0F1B273303:00700F1715262720,472E386309=15212D0939:007022230726,2E17712952302F15=15212D3909:00704889,8834=1C28340410:0070784889,0345201F21=2D39091521:007007482089,2E1F58470B=0D19253101:0070071A010618110F5B52846775,6326202E=16222E3A0A:00701A17794C0F302F715475,2E454F8A20243A=0F1B330327:007018111A1617192E15382627201F656477,4F090A=0F1B273303:002E2F18110F5B3315292A26271F20210C7A70710102393E19,035A37=14202C3808:002E4344793F26271F20,03702C2F292B381A31=0E1A263202:00161A5D454F153826201E27,7D0D2904=152139092D:0004037039180F332D152952262322271F0C533A83,4117804735=1F2B370713:0004037B7C0F79494766754667,80293869208A1E=162E3A0A22:00040301067018111A0F332C15292A261E200C7A7919712F5D52838454,5617454F06=3404101C28:000403110F527079156523221E2027,0129802E1F6B1D=1830000C24:0004031A170F11332C2E302F1571292A657677451949,70201D5218=102834041C:0004031811171A5B332C2E155D52,0D29204504=17233B0B2F:00040318110F1519262322271E2021,52831F3825=3B0B17232F:00046A7966444C7765,010C202F38520F70292E31=14202C3808:003F261F202789,8836=131F2B3707:003F657789,7152290F032B3A=2632020E1A:003F651F0C2027232289,0F292B=16222E3A0A:003F89,8836=212D390915:000F76,032E1F522C292B22=2B3707131F:000F7765,2E1F7C4607=0F1B273303:000F01111A1615292A2627200C2C670279538384543E49,634512=0F1B273303:000F1320,6380382936=0F2733031B:000F1323222627,2E3829031535=0D25310119:00676589,0F200F=0C18243000:00401D232289,71290F47202B=101C283404:0040395089,8803=30000C1824:004023222089,0F291118470D=0A16222E3A:004089,0F5211=1A2632020E:004089,0F0147200B=3A0A16222E:00037039454F0D332971152C4C48,090F476341382E0A=111D293505:00037039041A26271F1E202322,0F2F2C335129452E0D3A3B=222E3A0A16:000370396A450D332F4B154C,0F208A7D41381F2E14=0F1B273303:00030401061A16170F332E71292627200C02696A45514F0D2C2D4E497A,2B0B=0F1B273303:000304111A33152D2E302F71292A5284530770022B,0F6345203B=0F1B330327:00030418111617332E2D2F292A52845407020D302B,090F452001=0F1B273303:000304080618110F1A2E2D0D3371292A2C302F7566010239454E802B,632039=2430000C18:00036A7415384878,45751F20240F522E834F2E=182430000C:000301394F2E154763751F27,0F707A802629710D192035=14202C3808:0003391983845475,2E1F0F6A702971722A0D04=0F1B270333:00483F,6338200F2A=3B0B17232F:00481F2023221E27262189,0F292C2E1B=122A36061E:0076645089,8819=202C380814:0076777566262322271F201E,0F111852290D=101C283404:00763989,0F2036=1E2A360612:00788B89,0671292E25=010D192531:00784C793989,0F29702E1F208A21=31010D1925:0006261F1E201D212322,0F2938111801=2A3606121E:00060403702C2E4C154947443D651F,0D2920=101C283404:0006522E261F20,0F712939=2632020E1A:00060724232227261F2025,520F157929382F22=31010D1925:0006547677,0F5229151F201B=0E1A320226:00061A161718110F292A0C26271F21797001022F49,470D=0814202C38:002876396577261F20,5283290F37=212D390915:0028397976771E232227,0F522E47442027=121E2A3606:006389,8822=101C280434:007B7C3989,881E=1830000C24:007B343589,8805=2E3A0A1622:00021719792B155D5466774962,010611180F292030=14202C3808:00020370454F0D3933192C2E2D156375261F202322,0F7123=0E1A260232:0002070818111A16175B153E445D5452848365647576,2038454F15=182430000C:0007385476771548,52061F2024=2D39091521:0007504089,0F29157030=15212D3909:0007504089,060F71702F2918=15212D3909:0007504089,880B=17232F0B3B:000770171989,0F2E20382F=0B17232F3B:00077089,522E1F8A202C=07131F2B37:000704036939487C4466,0F7011293821=1824000C30:000715547776,521F18=0E2632021A:0007030401021811171A0F2E2322271F1E706749528483,202F293800=0F1B330327:00077663,0F297138202C=0B17232F3B:000776776548,0F1118152E1F2017=121E2A3606:00077665776489,52830F208A14=1A2632020E:00077B7C4834353989,2952203B=2632020E1A:00076A386563,0F7D8A2066454F52754C15=1E2A360612:00076A0F3874485040,06707C2509=3606121E2A:00076A74504089,5229702C7D15=14202C3808:00076A74173926271F1E20,0F7029522B09=000C182430:00076A54196348767765,7920297115528A0D382B16=101C283404:000734357B7C3989,0F528329200C=06121E2A36:0007343589,290F7104=2E3A0A1622:0007343589,0F292F702012=182430000C:0007343589,0F71296B708003=15212D3909:0007343589,7129706300=0D19310125:0007010618111A332D302F15262322271E530270164C,560F712924=0E1A263202:000701020618111A1752848354230C7027,262038292C=111D293505:0007711F204840,010F29153814=17232F3B0B:00076527262322,1552835A201D0F382D=0D19253101:0007363F8B3989,09292C208A0F28=030F1B2733:000739483F66,0F208A2B0A=04101C2834:0007397B7C343589,0106522008=020E1A2632:0007396A48343589,0F203A=283404101C:00073934357B7C89,0F5223=3505111D29:000739343589,032010=0A16222E3A:000739343589,520F2F=111D293505:000739343589,8A200A=15212D0939:00077A7089,8817=17232F3B0B:000789,8D3B=172F3B0B23:000789,8815=1B2733030F:007C343589,881B=212D390915:007C343589,8812=15212D3909:006A79190F6F2627,6B46204538290B=380814202C:006A38075040,0F630141202B454F2D=121E2A3606:006A5040077448,702B2C0F2F292E=0B17232F3B:006A583F232227261F20,0F291547031C=232F3B0B17:006A6F391974,0F2E614447702C292F71201F38521F=31010D1925:0034353989,522E1F2B=0D19253101:00343589,060F5200=2A3606121E:00343589,7129565A01=131F2B3707:00343589,883B=111D350529:00343589,8800=152D390921:000150402627,0F292F2B1E=2733030F1B:00010F17505840,565A80385283846315=101C283404:000103020611187B7C2D4E616439201E0C26,522E474429=101C283404:0001030239450D297115332C2E4C,0F542070528438632C=101C283404:000103392E54837548,19700F58157A20381F=1830000C24:00010670175B71292A152322271E,03637C2B380F=0E1A263202:0001067052842E71291F20,030F38477533=131F2B3707:0001067011185B0D332C2E2D712909262322271F200C,0F5263250C=17232F0B3B:000106040318111A170F33292A26276A201D0C7A71077C1F1E74694F,520A=0D19253101:0001060403232226380F767754,568020152D=111D293505:000106025B75712904032D302F382B2A0D801E20,2E1F0F0F0C=0D19253101:00010607155B5C26271E2021165D83,38470F2920=16222E3A0A:000106073018110F3329271E0C7A0D75,3826201508=0F1B273303:00010618111A16332C2E2F2D27200C07483A450D,1552843825=0E1A263202:000102261E2027,03476F700F2971382E39=15212D3909:0001027007834878,2E388A201D17=131F2B3707:00010203450D3329152C2E2F5375,0F638A6A1D8A382D=0E1A263202:000102030D70332C2E29712F534426201F1E,0F38152F=121E2A3606:0001020370450D332C2E2D152971,0F52838A201D1B=1D29350511:0001020370528384631575712D2E4E3E581F1E1D,292C2B452620803A=222E3A0A16:0001020370392F2971152B54754C,458A1F0F20462C=14202C3808:0001020370392F80712B546675201E26,1F58472E152F=16222E3A0A:000102037039714515750D33,201D381F092E0F1103=32020E1A26:000102030F7039453319152E2D2F63751F0C1E20,71290D38472C=16222E3A0A:000102035270392E2D5863,0F381D2B2921201511=131F2B3707:0001020352666A,0F7020262938172F3A=2430000C18:00010203332C2E2F1558631F,0F1920707A2971264627=05111D2935:0001020311180F702E1F7952838468332D6749443E46630C1E1D21,292B2035=1C28340410:000102031118396375664819,1D4138702080291F=232F3B0B17:000102033945332C6375201D21,0F1929710D702D=101C283404:00010203390D3329152C2B751E20,2E1F54475352458316=111D293505:0001020339161745514F2C190F1A152E2D2F304979,8D13=17232F3B0B:00010203396A79637566201D211E,29387D71707A30=101C283404:000102033911170D3319152E2F0947442627201F,8D25=3505111D29:000102031811392E2D19528384543E4463751F20,152F1A290F0D=0E1A263202:0001020626232227201E,0F2E03801F0F=101C283404:0001020617385483,030F47202B6B1B=2733030F1B:000102060F17705283797823221E2027,2E712910=121E2A3606:000102062A397129797B7C2E1F2425,162F5D20262B=182430000C:0001020603691817452C2E2D498344,412B6A09633808=3A0A16222E:0001020603700F7B7C2E1F692D48302F565A586366240C21,2B151A292039=17232F3B0B:000102060717706A33392D2E4E674447482322271E210C,71292B4F2023=33030F1B27:0001020607036A5D397C2163664744,0F4E25208A08=04101C2834:000102060775261F20,71290F70150C=101C283404:00010206111803302F565A802D4E2B881F261E0C,0D0F521B=16222E3A0A:00010206090D5B7952838454685D7B7C443D77656366201F1E,030F47454F24=010D192531:000102071283542627201D210C4C78,29580F2E6352032E1F01=32020E1A26:00010275261E0C2322,6303706F0F292E1F19=0E2632021A:000102081A158483262322270C1E,700F292E1B=101C283404:00011A1615262322271F1E200C214C,472B0F1124=3707131F2B:00013974150726271F1E200C,0F06520D297170382B4507=17233B0B2F:000118111A16175B154C26271E200C232279302F5D528384547543,0F297C7A03=17232F3B0B:000118111A332C2E2D1571292A2627200C7A1979,387C02=172F3B0B23:000118111A332C2E2D1571292A23222627200C7A791970302F5D5283845456,387C454F1F=0E1A263202:0001081811171A160F1571292A26271E20396476452B0D,632E523813=15212D3909:00211D1E232289,8D16=0E2632021A:006526232227201F,8926=05111D2935:00657689,6B0F5225=16223A0A2E:00654C89,8D03=2A3606121E:006589,2970472008=15212D3909:001A170F5B332E2D7129261E203E5D,1503528306=152139092D:001A170F1379232227761926,71293833=1C28340410:001A1715838444363F261F1E200C2322,0F476B52036338=14202C3808:001A2B5448701938754C,152E20242510=0D19253101:0039504089,8D39=283404101C:003926271E20747677642322480C06,2E1F38=0F1B273303:0039262322271E201D210C0748766465776A,150F382939=202C380814:0039332C2E2D2F152B4644261F1E,0F7019382971637A31=192531010D:0039787989,1F2E2010=101C283404:0039787089,2E1F8A034F206B29=05111D2935:00398B7989,0F200C=131F2B3707:0039077426271F1E20,0F29713852832B632D=14202C3808:0039076A7426271F2048,0F79197029717A382C=0E1A263202:00397C343548,8929=3B0B17232F:003934357B7C89,0F2028=16222E0A3A:0039343589,8D34=16222E3A0A:0039343589,880B=111D293505:0039343589,8805=17233B0B2F:0039343589,882E=101C283404:0039343589,8806=17233B0B2F:00390103040618111A17332C2E262322271E157A7071302F45631F2075,807C2B=0915212D39:00396577647969271E2322,52012E1F2620612D=16222E3A0A:00391A6A15384C4943363F7448,0F0379472B6319=192531010D:00394C786F89,0F2E442035=182430000C:003989,882A=121E2A3606:003989,8816=13191F252B313701070D:003989,8801=0D19310125:003989,880D=0F1B273303:0018112C2E01040607332D292A09270C2322696870302F47023945,382052801C=101C340428:00190F153917701A48,472E1F200334=1F2B370713:00195475667689,5229152E2019=222E3A0A16:004C504089,0F5215470A=3A0A16222E:005C702C2F802B154C78,5A562E1F208A45466319=102834041C:0089,090F1538=131F2B3707:71297C790001062A0F802D,5215705D2F=0E1A263202:7100030170391959152E2D2F2B,0F201F4F75668A3824=030F1B2733:5483846376656419786A,298030201A=2430000C18:5452838479195D00012A0D7B7C2C2E3348156366242526201E,0F71292D=07131F2B37:54528384700001020339482D301571565A363F637566,06292B201F8A29=030F1B2733:54528384036F796A153E65,7129631D=2733030F1B:5452848303152F802C2D,2E1F208A7A700F29710C7D22=33030F1B27:118384155B20272E1F21,0F03380E=0E1A263202:1179302F842627201E,0071292E1F0E=06121E2A36:11177B7C52842C2E5B1F20,060071292F0F0E=101C283404:110F70528475660D7129,012E1F20262A=101C283404:110F03706A795215636626271E,0C012F38062C292B07=020E1A2632:110F0001702C2E7129201F,52060C=0E1A263202:110F00017052792E1F1E,71290D2B2020=293505111D:110F1A6A702C2E1952838453712F6375,45201500011D=101C340428:11037B7C2E2F7129,0F52200B=0E1A263202:11000170792C2E7129,0F52201F01=111D350529:110001527B7C2E75,0F2009=04101C2834:1100010206702D804E2B2620,0F52540D00=131F2B3707:110001392E1F20,0F712932=17232F3B0B:117154528384292C2E302D4E092A0D50407970443D,5680410023=2B3707131F:111879690001020370396A2E2D528384543E637566,0F380D580F292000=222E3A0A16:111879076A1A171523221E272024,5229700F1D012E292B0C2F0B=06121E2A36:111817000106702C2E71292A0D33802D302F4E2B44,0F52252029=07131F2B37:11180F000704030D7C684580302F153867534775,70204119=2430000C18:11180F00012A0D70795D7B7C39332D2C2E4E4863664C,064F478A2037=1E2A360612:11180F000152548471702C2E2D4E303348492A156144474C63,8A201F38450618=202C380814:11180F000128032A0D7129302C2E2F2D802B09411F1E20,5284543824=2F3B0B1723:11180F0001020370391952845329712B632E7B7C792D2C8020,385D151E=293505111D:11180F0001020339700D29716375662E1F2620,3815568016=16222E3A0A:11180F000102587B7C5283847971302F804B2B497675,09612E1F201E=232F3B0B17:11180F00010E715229702E79692C2D2B15093954444C66,2F565A806132=131F2B3707:11180F71297052838454792A0D33802D153853201F1E212627,012F56476628=3707131F2B:11180F71297000010604032A0D793969302F33802D636675,201F52565A1E18=1D29350511:11180F5C000102030D332C2E195329711563261F202322,52843A=202C380814:11180370392A0D3329712C2F156375795B5D,450C8A00382E1F20010C=3A0A16222E:11185283847975661271393D692D15565A201E262322,292F060D0C02=30000C1824:111852838470795B302F404533802D152B39201E23221D212726,0F2E1F010D2923=2D39091521:111852838453546319297115030D332B2C,060F8A2E38201F38=0D19253101:111800020D041A796933483E5347446563751F1D212026,010F09150C17=2430000C18:1118000717161A2C2E3371292B56433D6375363F,0F010347208A09=020E1A2632:111800012A0D2C705271292E201F,1538617904=30000C1824:11180001032A0D70795B2C2E302F802D4E152B33714161201F26,520958470A=000C182430:11180001020439332C2E302F2B5844477515634C1F2721,0F520D19267A2971702037=232F3B0B17:111800010206037939695483845D2D2E4E446375661F262120,0F52290D7123=31010D1925:111800010206071979697C67474475664C,0F16298A2014=182430000C:11187129705B79000106032A0D397B6F7C802D2C2B61756627261E0C1D21,0F2E15414732=192531010D:111871545283842979397B7C69152B2A0D33485324251F1D1E26,6B00702F800C201E=1F2B370713:5D0007363F232227261E21,037C0F471F202E=0E1A263202:6526232227201F,880E=111D293505:653989,8806=131F2B3707:363F6526232227201E89,8832=1A2632020E:1A454F548384,881D=121E2A3606:1A38712975,0F201A=0E1A263202:1A162623227954,0001710F290C=0F1B273303:1A16170F13152654,3852204F32=0F1B273303:1A5D453A332C2E2F4B25262322271F201E1D21,000F704723=2F3B0B1723:3950177089,522E1F0F201A=1D29350511:39701117302F713819297566,004551152C2E201D1F34=121E2A3606:393589,881A=15212D3909:393589,882C=182430000C:393589,8825=101C283404:393589,881C=2531010D19:394089,71294709636F7C440D=0D19253101:3948007889,8D38=2430000C18:394889,8811=111D293505:394889,882A=0E1A263202:3907,8807=0D19253101:39343589,8831=101C283404:393489,8801=222E3A0A16:390050404C89,0F528329692018=131F2B3707:39006A26201F,0F520D38580629712B09=380814202C:390001022C2E302F1575804B2D261F20,0D0F0319707D5229717A15=17232F3B0B:3989,8D11=0A16222E3A:181179838454637566,0F5229012007=111D293505:18117915384C,52200E=0C18243000:1811795B032C2E302F802D4163754C27261E1D2120,010D0F29521F29=16222E0A3A:1811795B5466,01202F=192531010D:181179000607040D03302F5283844F3A45512B1533664C47,090F702E208A2B=0B17232F3B:18117900012C2E5B1F20,0F710D52291A=122A36061E:181179190E332C2E2D52637566262322271F20,8D02=0F1B273303:181117332C2E1526232227201F1E3E,38030F522922=142038082C:181170792C2F7129,52201F=121E36062A:18117001061579,71292023=121E2A3606:18117000012C2E7129,522024=3505111D29:18110F3900010203700D3329711563752E1F0C201D,38525D1A=101C283404:18110F197983842E230C271F1E7A70525463,2620291503=111D293505:1811002E1F8384,0F2022=1824000C30:181100012C2E2F1F,0F3821=142038082C:181100012C2E2F1F20,0F5229=14202C3808:181100015B3875,2E2034=15212D3909:181100012A0D2C2E2F2B2D304E447129841F,0F09416138200F=0814202C38:181100012A0D52842953411E20,2E1F0F47152F=131F2B3707:18110001032A0D845B7129302F791533536678,0F208A1F1D33=17232F3B0B:18115452840001712970802D2C2E302F2B2A0D78791F,0F204758610E=0F1B273303:18111A16175B3315262322271F1E201D215D838454433E363F754551,00030F290D=0C18243000:18115C0001702A2C2E2F5283847129795B6375802D154C,1F208A2407=15212D3909:88,262052830D=17232F3B0B:88,8D17=102834041C:88,8D0B=15212D0939:88,8D24=121E2A0636:88,8D09=17232F0B3B:88,8D13=111D293505:1979,3F2F2E45207D37=112935051D:1966583F6589,8831=16222E3A0A:4C4089,880C=0C18243000:4C78,297172380D2A2E0F47484112=16222E3A0A:5C0F1811790070528471291F20,2F0380512514=1C28340410:5C0001020652835B0E03804B2D4E2B752024210C,292E565A36=1A2632020E:5C11180001027170520D2984832B15200C,03802E386333=15212D3909:89,6B34=111D293505:89,8D',\n TIME_YI_JI:'0D28=,2C2E2128=,2C2E0110=,2C2E0C1F=,2C2E7A701B1C=,01022308=,01026D003026=,000106037A702D02=,000106037A702802=,000106037A703131=,000106037A70341B=,000106087A701F0E=,000106087A702E15=,000106087A702C2E0E39=,000106087A702C2E0D2B=,881727=,88032D=,88352F=,882B2F=,882125=,882A22=,880C1E=,880220=,88161A=,882018=,883422=,880113=,880B11=,883315=,882915=,881F17=,88150D=,88122E=,88302A=,88262A=,883A28=,880826=,881C2C=,881905=,882303=,880F09=,88050B=,883701=,882D01=,88060C=,882410=,881A12=,882E0E=,88380E=,881010=,883630=,881834=,880E38=,882232=,882C30=,88043A=,881E0A=,880006=,883208=,880A04=,881400=,882808=,883137=,883B35=,882737=,881D39=,88133B=,880933=,88251D=,882F1B=,881B1F=,88111D=,880719=,88391B=,88212D=,7A702C0B15=,7A70551515=,7A70552D00=,7A7D2C2E1334=382C,000106083528=382C,7A70000106080504=382C7A6C55700F197120,00010608223A=380006082C,01026D0D2C=380006082C,01027A70551D30=380006082C0F71295283,01027A703636=380006082C0F71295283,0102416D1226=380006082C7A706C550F297120,0102251C=380006082C7A6C55700F197120,01026D2300=3800010608,2C2E0324=3800010608,7A702C2E082E=3800010608,7A70552C2E3B34=38000106082C,2F8026330C=38000106082C,2F80267A701622=38000106082C7A70556C0F197120,1904=38000106082C7A6C55700F197120,1514=38000106087A70556C0F197120,2C2E3138=38000106087A70556C0F197120,2C2E0B10=38000106087A6C55700F197120,2C2E2B28=387A6C55700F197120,000106082C2E2E16=38082C,000106037A700E3A=38082C,000106037A703708=38082C6C550F197120,000106037A701B20=38082C6C550F197120,000106037A70111C=38082C6C550F197120,000106037A703A2D=2C38,000106082733=2C38,000106081015=2C38020F71295283,000106083817=2C2920,7A700F03=2C2920,616D1839=2C292070556C100F,00010608161B=2C2920020F7100010608,302B=2C2920556C0F1971,7A701E07=2C2920010F,1B1B=2C2920010670100F00,352B=2C292000010206100F70,082B=2C292000010206100F707A,0C21=2C292000010870556C100F7A,0617=2C29206C0F1971,7A70552807=2C29207A70556C0F197100010206,122F=2C29207A706C55100F1971,1017=2C29207A706C55100F1971,2731=2C20,616D0436=2C2070550F,7A7D01022E12=2C200F71295283,01021831=2C20556C0F1971,7A702912=2C20100F52,01026D1D33=2C807138152952,000106080E31=2C80713815295270556C100F,000106083201=2C80713815295270556C100F7A,000106080327=2C80713815295202100F,000106037A702B2B=2C80713815295202100F,000106037A702801=2C80713815295202100F,000106083639=2C80713815295202100F7A7055,00010608341D=2C807138152952556C100F,000106037A701B23=2C807138152952010F6C55,7A70302D=2C8071381529520102100F7A7055,2231=2C8071381529520102100F7A6C55,1F13=2C80713815295200010206100F20,7A70313B=2C8071381529526C550F,000106037A701A15=2C8071381529527A70550F,000106080219=2C8071381529527A70556C0F19,000106082E0D=2C80713815295208556C100F,000106037A70161F=2C80711529525670556C100F,000106083813=2C80711529525670556C100F,000106082D05=2C807115295256020F7A706C55,2237=2C80711529525602100F,000106081F0D=2C80711529525602100F55,000106037A702627=2C8071152952560102100F7A706C,2C33=2C8071152952560102100F7A706C,0939=2C80711529525601100F7A7055,416D021F=2C80711529525600010206100F70,0E37=2C80711529525600010870556C10,2129=2C8071152952566C550F,7A702519=2C8071152952566C550F19,7A702417=2C8071152952566C55100F19,000106037A70043B=2C8071152952566C55100F19,000106037A700C1B=2C8071152952566C55100F19,7A703B31=2C8071152952566C100F19,7A705500010603172D=2C8071152952567A70550F,416D3A2F=2C8071152952567A70556C100F,1901=2C8071152952567A706C55100F19,1119=2C8071152952567A6C55700F19,1C2B=2C80711529525608556C100F,000106037A701403=2C80711529525608556C100F,000106037A70071D=2C80711529525608100F55,000106037A701908=292C20,7A7D01026D2E0F=292C200102100F7A7055,032C=292C20000608,0102071C=292C206C550F1971,000106037A700E33=292C207A70556C000108,0503=2920550F,7A702C2E0721=2920556C100F,7A702C1225=2920000108556C100F,7A702C2E1F11=2900010870556C100F7A,032C201A11=297A70556C100F,032C200E35=297A70556C100F,032C20000A=70556C0F197120,7A7D3A29=70556C100F2C20,000106081C25=70556C100F2C20,000106082805=70556C100F2C20,000106082F20=70556C100F2C20,00010608150C=70556C100F29522002,7A7D000106033314=70556C100F,00010608032C20122A=70556C08,7A7D000106032415=70100F2C715220,000106081A0D=4B0F2C20,000106037A701902=4B0F2C20,000106080E3B=4B0F20,7A702C000106032E17=0F2C09382920,7A7000010603363B=0F2C093829206C55,000106037A70082C=0F29528320,7A2C71707D01026D0718=0F712952832C20,7A7D01021C26=0F712952832C20,7A7D01026D3918=0F712952832C2038000608,01027A70552126=0F712952832C2010,01021330=0F712952832C207A7055,01021118=0F712952832C207A7055,01023524=0F715220,7A70552C2E3419=20556C0F1971,7A702C2E1D31=2000010206100F,7A702C1E05=0270290F2C207A,00010608212C=0270550F,00010608032C200C23=0270550F,00010608032C203706=0270550F20,000106082C2E2520=0270550F20,7A7D000106032E13=0270550F202C807115295256,000106081620=020F29528320,000106087A2C71707D0112=020F2952832055,7A2C71707D000106030F08=020F20,7A7055000106032A23=020F712952832C20,2521=020F712952832C20,000106082F21=020F712952832C20,000106080003=020F712952832C20,7A700432=020F712952832C2038000106086C,7A701E03=020F712952832C2070556C10,000106081623=020F712952832C2001,2236=020F712952832C2001,000B=020F712952832C2001,7A70552C36=020F712952832C20013800,416D341E=020F712952832C20017055,7A7D0E32=020F712952832C200110,7A7D0329=020F712952832C2001107A706C55,262D=020F712952832C20017A7055,1229=020F712952832C2000010608,122D=020F712952832C2000010608,1011=020F712952832C2000010608,0A0B=020F712952832C2000010608,1F0F=020F712952832C2000010870556C,1A0E=020F712952832C206C55,7A703312=020F712952832C2010,000106037A70172A=020F712952832C2010,7A7055000106033B3B=020F712952832C2010,416D000106037A700B12=020F712952832C20106C55,000106037A700615=020F712952832C207A7055,3203=020F712952832C207A7055,201B=020F712952832C207A706C5510,2023=020F712952832C207A6C7055,2A1B=020F7129528320,000106087A702C2629=020F7129528320,7A702C2E3709=020F7129528320,7A702C000106083A24=020F7129528320,7A70552C2E341A=020F712952832038000106087A70,2C2E1C2D=020F712952832001,7A702C2E0611=020F712952832001,7A702C2E021A=020F712952832001,7A7D2C2E3815=020F71295283200100,7A702C2E3024=020F71295283200110,616D2C2E093B=020F71295283206C55,7A702C2E000106030505=020F71295283206C55,7A702C030C1A=020F71295283207A706C55,000106082C2E3705=020F712952837A706C55,032C201F0C=02550F20,000106037A700508=02550F20,000106037A703029=02550F20,000106087A702C2E3027=02550F202C807115295256,000106037A703526=02100F2C29528320,000106037A70150E=02100F2C29528320,00010608380F=02100F2C29528320,000106083527=02100F2C29528320,7A70000106031C27=02100F2C2955528320,000106081227=02100F2C29555283207A706C,00010608060F=02100F2C29555283207A706C,000106081D34=02100F7020,7A7D000106030F02=02100F7055528315,2F8026000106083920=02100F7055528315,2F802600010608212A=02100F7055528315,000106082A20=02100F7055528315,000106083A26=02100F7055528315,000106080439=02100F7055528315,000106080008=02100F7055528315,000106081B21=02100F7055528315,00010608071B=02100F7055528315,000106080D24=02100F7055528315,000106082C2E2C32=02100F7055528315,000106082C2E2B2C=02100F7055528315,00010608032C201402=02100F7055528315,00010608032C20391C=02100F7055528315,7A7D000106031F10=02100F705552831538,2F8026000106082D06=02100F70555283157A,2F802600010608290D=02100F20,7A702C000106032416=02100F20,616D000106037A702C34=02100F20292C,7A70000106031C2A=02100F528315,7A7055000106032234=02100F528315,7A7055000106032A21=02100F55528315,000106037A703313=02100F55528315,000106037A700509=02100F55528315,000106037A702D03=02100F55528315,000106037A700613=02100F55528315,000106037A702235=02100F55528315,000106037A70391D=02100F55528315,000106037A70100F=02100F55528315,000106087A702C111B=02100F55528315,000106087A702C2E2916=02100F55528315,7A2C71707D000106030430=02100F55528315,7A2C71707D000106033B32=02100F55528315,7A2C71707D000106081903=02100F55528315,7A702C2E000106033A27=02100F55528315,7A702C000106030931=02100F55528315,7A702C000106030C1C=02100F55528315,7A70000106032735=02100F555283152C8071,000106037A700B13=02100F555283152C807138,000106037A701517=02100F555283152C807138,000106037A702917=02100F555283156C,000106037A703136=550F522010,7A2C71707D01022A1E=550F715220,7A702C2E1333=550F715220,7A702C2E000106081405=556C,000106087A702C2E0433=556C,7A70000106083B38=556C0F197120,7A702C2E1E01=556C0F19712001,7A702C2E190B=556C000108,7A70230B=556C000108,7A702C2E1A0F=556C0001082C807115295256,7A701830=556C0008,7A2C71707D01023814=556C100F295220,7A2C71707D03082F=556C100F295220,7A702C0C1D=556C100F295220,7A702C2E00010603021D=556C100F295220,7A70000106031121=556C100F2952202C,7A701835=556C100F2952202C80713815,000106037A703B30=556C100F29522002,000106037A70290C=556C100F29522002,7A70000106030930=556C100F2952200238,000106037A702B27=556C100F2952200102,7A702C2E3812=556C08,000106037A701012=556C08,000106037A701621=556C08,7A702C2E000106033209=556C08,7A702C2E000106032021=556C082C807138152952,000106037A700009=556C082C807138152952,000106037A702A1D=807138152952000170100F,032C200A05=807138152952000170100F,032C20273B=8071381529527A706C550F,032C203423=80711529525600010870556C100F,032C201511=80711529525600010870556C100F,032C20183B=80711529525600010870556C100F,032C203311=010F2C80093829206C55,7A702B29=010F2C80093829206C55,7A70616D3A25=010F2C09382920,7A70550825=010F2C093829207A6C5570,201E=010F09382920,7A702C2E352E=010670100F2C71522000,1C28=010670100F7152207A6C55,2C2E2E11=0106100F7152,7A70032C203205=0106100F71526C,7A70032C202A19=0102290F20,7A702C2E2A1F=010270290F2C207A6C55,2413=010270290F2C207A6C55,0437=010270290F2C207A6C55,0935=010270550F,032C201B18=010270550F20,2B24=010270550F20,2F80261906=010270550F20,2C2E2732=010270550F20,2C2E071A=010270550F20,2C2E3700=010270550F20,7A7D1724=010270550F203800,2F80263921=010270550F202C29,416D290F=010270550F202C807138152952,1619=010270550F202C8071381529527A,3207=010270550F202C80711529525600,0829=010270550F2000,060D=010270550F2000,0001=010270550F2000,2736=010270550F207A,1B1E=010270550F207A,2C2E140B=010270550F207A6C,0114=010270550F7A6C,032C202C3B=010270550F7A6C,032C20201F=0102550F20,7A702C1A13=0102550F20,7A702C3637=0102550F20,7A702C280B=0102550F20,7A702C223B=0102550F20,7A702C032D04=0102100F2C29528320,7A701409=0102100F2C29528320,7A70552307=0102100F2C2952832000,0005=0102100F295283,032C207A700A00=0102100F2955528320,7A2C71707D082D=0102100F2955528320,7A702C2E2809=0102100F295552832000,7A702C2E2B2D=0102100F7055528315,021E=0102100F7055528315,0C20=0102100F7055528315,2F80263420=0102100F7055528315,2F80261510=0102100F7055528315,2F80262E10=0102100F7055528315,2F80262806=0102100F7055528315,2F80263134=0102100F7055528315,2F80261D38=0102100F7055528315,2F8026251A=0102100F7055528315,2F80263A2A=0102100F7055528315,2F80267A7D1120=0102100F7055528315,2F80267A7D0824=0102100F7055528315,2C2E1E00=0102100F7055528315,2C2E7A2F1D=0102100F7055528315,032C200A06=0102100F7055528315,7A7D2C2E1C2E=0102100F70555283153800,2F80261832=0102100F70555283153800,2C2E280A=0102100F70555283153800,2C2E320A=0102100F705552831538007A,2738=0102100F705552831538007A6C,2F80260720=0102100F705552831538007A6C,2F8026032B=0102100F70555283152C292000,1907=0102100F70555283152C292000,3703=0102100F70555283152C292000,2739=0102100F70555283152C29207A,251B=0102100F70555283152C29207A,2B25=0102100F70555283152C29207A6C,1331=0102100F70555283152C207A,0D29=0102100F70555283152C80717A,1B1D=0102100F70555283158071,032C200D2D=0102100F705552831500,1725=0102100F705552831500,352D=0102100F705552831500,0C19=0102100F705552831500,150F=0102100F705552831500,3025=0102100F705552831500,0F07=0102100F705552831500,1E09=0102100F705552831500,251F=0102100F705552831500,010C=0102100F705552831500,2F80261A10=0102100F705552831500,2F80261016=0102100F705552831500,2F80260934=0102100F705552831500,2F80262910=0102100F705552831500,2F80267A7D1A14=0102100F705552831500,2C2E2304=0102100F705552831500,7A7D3421=0102100F7055528315002C2920,212F=0102100F7055528315002C807138,111F=0102100F7055528315002C807138,3135=0102100F7055528315008071,032C200828=0102100F7055528315007A6C,2022=0102100F70555283156C,7A7D140A=0102100F70555283156C,7A7D2C2E2127=0102100F70555283157A,1618=0102100F70555283157A,0B0F=0102100F70555283157A,1836=0102100F70555283157A,172E=0102100F70555283157A,2F8026352A=0102100F70555283157A,2F80262B2E=0102100F70555283157A,2F8026082A=0102100F70555283157A,2F80262306=0102100F70555283157A,2F80263702=0102100F70555283157A,2F80262C38=0102100F70555283157A,2F80261E06=0102100F70555283157A,2F80261B1A=0102100F70555283157A,2F8026032A=0102100F70555283157A,2C2E1F14=0102100F70555283157A,2C2E3810=0102100F70555283157A,2C2E262C=0102100F70555283157A29,032C20201A=0102100F70555283157A00,2F80260A02=0102100F70555283157A00,2F80261838=0102100F70555283157A6C,2F80260E34=0102100F70555283157A6C,2F80260438=0102100F70555283157A6C,2C2E2F1A=0102100F70555283157A6C,2C2E2305=0102100F528315,7A70553525=0102100F5283152C8071,7A70550723=0102100F528315807138,7A7055032C200D2A=0102100F55528315,2F80267A2C71707D3316=0102100F55528315,2F80267A2C71707D1224=0102100F55528315,2F80267A2C71707D212E=0102100F55528315,2F80267A700616=0102100F55528315,2F80267A70380C=0102100F55528315,2F80267A700434=0102100F55528315,2F80267A702A18=0102100F55528315,7A2C71707D2628=0102100F55528315,7A2C71707D100C=0102100F55528315,7A2C71707D2F80261729=0102100F55528315,7A701F15=0102100F55528315,7A70240E=0102100F55528315,7A703632=0102100F55528315,7A701339=0102100F55528315,7A700115=0102100F55528315,7A702C2C37=0102100F55528315,7A702C320B=0102100F55528315,7A702C3206=0102100F55528315,7A702C2E2238=0102100F55528315,616D2F80267A2C71707D3816=0102100F555283153800,2F80267A701406=0102100F555283153800,2F80267A700111=0102100F555283152C8071,7A700501=0102100F555283152C8071,7A70370B=0102100F555283152C807138,7A703B37=0102100F555283152C80713800,7A701C2F=0102100F555283152920,7A702C240F=0102100F555283152920,7A702C0A03=0102100F555283152920,7A702C0221=0102100F55528315292000,7A702C2E3317=0102100F55528315292000,7A702C2E3634=0102100F5552831500,2F80267A2C71707D3028=0102100F5552831500,7A2C71707D111A=0102100F5552831500,7A2C71707D071E=0102100F5552831500,7A2C71707D2913=0102100F5552831500,7A702F19=0102100F5552831500,7A702301=0102100F5552831500,7A702C3919=0102100F5552831500,7A702C3B33=0102100F5552831500,7A702C2E0223=0102100F5552831500,7A702C03032F=0102100F55528315006C,7A702C2E262E=0102100F555283156C,2F80267A70032E=0102100F555283156C,7A2C71707D0F0B=0102100F555283156C,7A701D3B=0102100F555283156C,7A702C2E030116=01100F1571292C20,2F80267A703200=01100F1571292C20,7A7055370A=01100F1571292C2000,7A701B22=01100F1571292C2000,7A701E04=01100F1571292C2000,416D1336=01100F1571292C20007A70556C,391A=01100F1571292C20007A6C7055,1C24=01100F1571292C207A7055,2F80260D2E=01100F15712920,7A702C2E2D0A=01100F15712920,7A702C2E2800=01100F15712920027A7055,2C2E251E=01100F157129207A70556C,2C2E1228=01100F157129207A70556C,416D2C2E050A=01100F5220,7A70550000=01100F5220,616D2624=01100F5220,616D2F80267A702804=01100F5220006C,7A70550F06=01100F52207A70556C,2C2E2F1E=01100F52207A70556C,2C2E1014=01100F527A70556C,032C20161E=01100F712920,7A702C2E0A0A=01100F71522C2920,616D161C=0070100F292C20,01020F04=0006100F7020,7A7D01026D183A=0006100F7020,616D0102201C=0006100F20,7A2C71707D01026D1D37=000170100F292C20,2F18=000170100F292C802038,161D=00014B0F,032C201338=00014B0F2C2002,2F80261728=00014B0F20,2C2E0F0A=00014B0F20,7A2C71707D1833=00014B0F20,7A702C1407=00014B0F20,7A702C1401=0001060838,2C2E1123=0001060838,416D032C202019=000106082C38,2C31=000106082C38,391F=000106082C38,2523=000106082C38,7A70416D1C29=000106082C38020F71295283,3811=000106082C38020F71295283,7A700937=000106082C386C550F197120,7A700117=00010252100F29202C7A706C55,1337=00010206700F202C807138152952,3A2E=00010206100F7020,616D0610=00010206100F20,7A2C71707D0328=00010206100F20,7A700F01=00010206100F20,7A702C3310=00010206100F20,7A702C2E3139=0001100F298020,7A702C2625=00010870556C100F2C20,1909=00010870556C100F2C20,391E=00010870556C100F2C20,2124=00010870556C100F2C20,2F80267A7D0F00=00010870556C100F2C2038,2D09=00010870556C100F2C2002,0500=00010870556C100F2C207A,2C39=00010870556C100F2C207A,2518=00010870556C100F2C207A,0B0C=00010870556C100F2C207A,2F80262911=00010870556C100F7A,032C200007=000108556C100F2C2029,7A700A07=000108556C100F2C2029,7A701332=000108556C100F20,2C2E7A70100D=000108556C100F20,7A702C2E2239=000108556C100F20,7A702C2E0A01=000108556C100F20,7A702C2E380D=0001086C100F2C20,7A70551D36=0001086C100F2C20,7A70552F1F=000108100F70552920,010D=000108100F70552920,616D0507=000108100F705529202C80713815,0B0D=000108100F705529202C8071157A,3133=000108100F7055292002,2309=000108100F7055292002,416D0002=000108100F705529207A,2F80263202=000108100F705529207A,2F80263638=000108100F705529207A,2C2E2A1A=000108100F705529207A38,2F80262414=000108100F705529207A6C,2C2E2E14=000108100F552920,7A2C71707D1404=000108100F552920,7A2C71707D0B17=000108100F552920,7A70330D=000108100F552920,7A702C172F=000108100F552920,7A702C2E3707=000108100F5529206C,616D7A702C2E302E=6C55700F197120,2C2E7A7D0C22=6C55700F197120,7A7D01026D1E02=6C550F297120,000106037A703923=6C550F297120,7A702C2E03230A=6C550F1920,7A2C71707D240C=6C550F19200210,7A2C71707D000106031A16=6C550F197120,000106037A701513=6C550F197120,7A703A2B=6C550F197120,7A701837=6C550F197120,7A702F23=6C550F197120,7A702F22=6C550F197120,7A702D07=6C550F197120,7A702C2E3922=6C550F197120,7A700102093A=6C550F197120,7A70000106031B19=6C550F197120,616D7A70071F=6C550F197120,616D7A702C2E212B=6C550F197120,616D7A702C2E000106032734=6C550F197120292C,000106037A700325=6C550F1971200001020610,7A702C122B=6C550F19712008,000106037A702411=6C100F2952,7A7055032C20010E=100F2C29528320,01023704=100F2C29528320,0102363A=100F292C206C55,000106037A702B26=100F2920,7A2C71707D01026D302C=100F7055528315,01021E08=100F7055528315,01022730=100F7055528315,01021512=100F7055528315,010200352C=100F7055528315,7A7D01026D2F1C=100F7055528315,7A7D01026D0222=100F70555283153800,01026D2412=100F70555283157A,01022230=100F70555283157A,0102060E=100F70555283157A6C,01022C3A=100F70555283157A6C,01026D1F12=100F1571292C20,01026D3B36=100F1571292C20,01026D1516=100F1571292C20,000106037A702302=100F1571292C20,000106037A701D32=100F1571292C20,000106082F8026330E=100F1571292C20,000106086D2A1C=100F1571292C20,7A7001026D313A=100F1571292C20,7A7000010603341C=100F1571292C20,416D7A70000106032B2A=100F1571292C2002,000106037A700326=100F1571292C20556C,000106037A70273A=100F1571292C2000,01026D0722=100F1571292C2000,01026D2E0C=100F1571292C206C55,000106037A701408=100F1571292C207A706C55,01022020=100F1571292C207A706C55,000106081726=100F1571292C207A6C7055,0102290E=100F1571292C207A6C7055,000106080932=100F1571292C207A6C7055,000106080D26=100F52,00010608032C20100E=100F5283153800,01027A70550B16=100F5220,2F8026000106081122=100F5220,6D010200133A=100F5220,01026D1F16=100F5220,000106037A703132=100F5220,000106083B3A=100F5220,000106082522=100F5220,00010608190A=100F5220,000106082C2E021C=100F5220,7A70000106030936=100F52202C,01026D3A2C=100F52206C55,01027A701A0C=100F52206C55,000106037A700E30=100F52206C55,000106037A700A08=100F52207A706C55,000106083204=100F52207A6C5570,01026D0B0E=100F55528315,01027A2C71707D0004=100F55528315,7A2C71707D01026D1D3A=100F55528315,7A2C71707D01026D3418=100F5552831500,7A2C71707D0102201D=100F712920,7A702C2E00010608030E36=100F71522C2920,01023635=100F715229,00010608032C20021B=7A70550F2C715220,1900=7A70550F715220,2C2E0A09=7A70556C,00010608172C=7A70556C,00010608032C200B14=7A70556C,00010608032C202914=7A70556C0F197120,2C2E0938=7A70556C0F197120,000106082C2E111E=7A70556C000108,0502=7A70556C000108,2F80260D2F=7A70556C0001082C807138152952,2D0B=7A70556C0001082C807138152952,3633=7A70556C0001082C807115295256,0C18=7A70556C0008,01020218=7A70556C0008,0102302F=7A70556C100F295220,000106082C35=7A70556C100F295220,000106081E0B=7A70556C100F2952202C807115,3130=7A70556C100F29522002,000106080506=7A70556C100F29522001,2C2E330F=7A70556C100F29522001022C8071,010F=7A70556C100F295220010200,0435=7A70556C100F295280713815,032C200614=7A70556C100F295201,032C20122C=7A70556C100F29520102,032C203B39=7A706C550F297120,0F05=7A706C550F297102,032C200D25=7A706C550F19712001,616D2233=7A706C550F19712000010608,2626=7A6C70550F197120,01021A17=7A6C70550F197120,00010608262F=7A6C70550F1971202C29,000106083529=7A6C70550F19712002,616D000106082D08=7A6C70550F197120103800,0102341F=7A6C55700F197120,2C2E172B=082C38,7A7055000106030D27=082C38,7A70000106030827=08556C100F2C20,000106037A702803=08556C100F2C20,000106037A701013=08556C100F2C20,7A7000010603262B=08556C100F2C20,7A7000010603240D=08556C100F2C20,7A70000106033631=08556C100F2C20,7A70000106030431=08556C100F20,7A702C2E000106031D35=08100F552920,000106037A701335=08100F552920,000106037A700612=08100F55292038,000106037A70',\n SHEN_SHA:[\n '{s.none}',\n '{sn.tianEn}',\n '{sn.muCang}',\n '{sn.shiYang}',\n '{sn.shengQi}',\n '{sn.yiHou}',\n '{sn.qingLong}',\n '{sn.zaiSha}',\n '{sn.tianHuo}',\n '{sn.siJi}',\n '{sn.baLong}',\n '{sn.fuRi}',\n '{sn.xuShi}',\n '{sn.mingTang}',\n '{sn.yueSha}',\n '{sn.yueXu}',\n '{sn.xueZhi}',\n '{sn.tianZei}',\n '{sn.wuXu}',\n '{sn.tuFu}',\n '{sn.guiJi}',\n '{sn.xueJi}',\n '{sn.yueDe}',\n '{sn.yueEn}',\n '{sn.siXiang}',\n '{sn.wangRi}',\n '{sn.tianCang}',\n '{sn.buJiang}',\n '{sn.yaoAn}',\n '{sn.wuHe}',\n '{sn.mingFeiDui}',\n '{sn.yueJian}',\n '{sn.xiaoShi}',\n '{sn.tuHu}',\n '{sn.wangWang}',\n '{sn.tianXing}',\n '{sn.tianDe}',\n '{sn.guanRi}',\n '{sn.jiQi}',\n '{sn.yuYu}',\n '{sn.daShi}',\n '{sn.daBai}',\n '{sn.xianChi}',\n '{sn.zhuQue}',\n '{sn.shouRi}',\n '{sn.tianWu}',\n '{sn.fuDe}',\n '{sn.liuYi}',\n '{sn.jinTang}',\n '{sn.jinKui}',\n '{sn.yanDui}',\n '{sn.zhaoYao}',\n '{sn.jiuKong}',\n '{sn.jiuKan}',\n '{sn.jiuJiao}',\n '{sn.xiangRi}',\n '{sn.baoGuang}',\n '{sn.tianGang}',\n '{sn.siShen}',\n '{sn.yueXing}',\n '{sn.yueHai}',\n '{sn.youHuo}',\n '{sn.chongRi}',\n '{sn.shiDe}',\n '{sn.minRi}',\n '{sn.sanHe}',\n '{sn.linRi}',\n '{sn.tianMa}',\n '{sn.shiYin}',\n '{sn.mingFei}',\n '{sn.siQi}',\n '{sn.diNang}',\n '{sn.baiHu}',\n '{sn.yueDeHe}',\n '{sn.jingAn}',\n '{sn.yuTang}',\n '{sn.puHu}',\n '{sn.jieShen}',\n '{sn.xiaoHao}',\n '{sn.tianDeHe}',\n '{sn.yueKong}',\n '{sn.yiMa}',\n '{sn.tianHou}',\n '{sn.chuShen}',\n '{sn.yuePo}',\n '{sn.daHao}',\n '{sn.wuLi}',\n '{sn.tianLao}',\n '{sn.yinDe}',\n '{sn.fuSheng}',\n '{sn.tianLi}',\n '{sn.zhiSi}',\n '{sn.yuanWu}',\n '{sn.yangDe}',\n '{sn.tianXi}',\n '{sn.tianYi}',\n '{sn.siMing}',\n '{sn.yueYan}',\n '{sn.diHuo}',\n '{sn.fourHit}',\n '{sn.daSha}',\n '{sn.daHui}',\n '{sn.tianYuan}',\n '{sn.liuHe}',\n '{sn.wuFu}',\n '{sn.shengXin}',\n '{sn.heKui}',\n '{sn.jieSha}',\n '{sn.siQiong}',\n '{sn.gouChen}',\n '{sn.chuShuiLong}',\n '{sn.baFeng}',\n '{sn.tianShe}',\n '{sn.wuMu}',\n '{sn.baZhuan}',\n '{sn.yinCuo}',\n '{sn.siHao}',\n '{sn.yangCuo}',\n '{sn.siFei}',\n '{sn.sanYin}',\n '{sn.xiaoHui}',\n '{sn.yinDaoChongYang}',\n '{sn.danYin}',\n '{sn.guChen}',\n '{sn.yinWei}',\n '{sn.xingHen}',\n '{sn.liaoLi}',\n '{sn.jueYin}',\n '{sn.chunYang}',\n '{sn.qiNiao}',\n '{sn.suiBo}',\n '{sn.yinYangJiaoPo}',\n '{sn.yinYangJuCuo}',\n '{sn.yinYangJiChong}',\n '{sn.zhuZhen}',\n '{sn.yangCuoYinChong}',\n '{sn.qiFu}',\n '{sn.tianGou}',\n '{sn.jiuHu}',\n '{sn.chengRi}',\n '{sn.tianFu}',\n '{sn.guYang}',\n '{sn.jueYang}',\n '{sn.chunYin}',\n '{sn.liuShe}',\n '{sn.yinShen}',\n '{sn.jieChu}',\n '{sn.yangPoYinChong}'\n ],\n DAY_SHEN_SHA:'100=010203040506,0708090A0B101=010C0D,0E0F101112131415102=16011718191A1B1C1D1E,1F20212223103=24011825261B271D1E,28292A2B104=012C2D2E2F3031,3233343536105=3738,393A3B3C3D123E106=3F404142434445,464748107=494A4B4C4D,4E108=4F5051524C4D5345,54555657109=58595345,5A5B12565C10A=5D415E5F60,616263640B6510B=0266676869,6A6B6C0A3E6D10C=1602171803041B05061E,07086E10D=24181B0C0D,0E0F1011126F13141510E=70191A1C1D,1F2021222310F=0125261B271D,28292A2B110=012C2D2E2F3031,3233343536111=49013738,393A3B3C3D123E112=4F50013F404142434445,4648113=014A4B,4E6E114=51524C4D5345,54550B5657115=0158595345,5A5B12565C116=1601185D415E5F60,61626364117=24021867681B69,6A6B3E6D118=0203040506,0708119=1B0C0D,0E0F10111213141511A=191A1B1C1D1E,1F2021222311B=4925261B271D1E,28292A11C=4F502C2D2E2F3031,323334353611D=3738,393A3B3C3D123E11E=3F404142434445,460B4811F=4A4B,4E71120=16171851524C4D5345,545556121=241858595345,5A5B12565C122=5D415E5F60,61626364123=0267681B69,6A6B3E6D124=0203041B05061E,070847125=491B0C0D,0E0F101112131415126=4F50191A1C1D1E,1F20212223127=2526271D1E,28292A2B128=2C2D2E2F3031,32333435360B129=3738,393A3B3C3D123E12A=1617183F404142434445,464812B=24184A4B,4E7212C=51524C4D53,5455565712D=0158595345,5A5B12565C12E=015D415E5F60,616263647312F=49010267681B69,6A6B3E6D130=4F500102030405061E,070874131=010C0D,0E0F101112131415726E132=191A1C1D1E,1F2021220B722375133=2526271D1E,28292A2B134=1617182C2D2E2F3031,3233343536135=24183738,393A3B3C3D126F3E136=3F4041424344,4648137=4A4B,4E72138=51524C4D5345,545576567257139=4958595345,5A5B7612565C7713A=4F505D415E5F60,6162636413B=02676869,6A6B3E6D200=1601025D60,393B28292A11090A201=0103041A1B4A,123435360B6D202=011819681B4C1D061E,3D1014203=011718252F591D0D1E,1F20213233204=012C26,3C23205=493751522D2E69,121364223E2B206=503F4005311E,6A3A5A5B207=5841440C38,4615208=431C4D45,6B4E5648209=27534B45,545507086162125620A=16666730,0E0F635720B=0241425E5F1B,6C0A0B3E5C20C=02185D1B601E,393B28292A116E20D=171803041B4A,126F3435366D20E=7019684C1D06,3D101420F=4901252F591D0D,1F2021323378210=50012C26,3C23211=013751522D2E69,121364223E2B212=013F40053145,6A3A5A5B213=015841440C38,46156E214=16431C4D5345,6B4E5648215=27534B45,545507086162120B5648216=18671B30,0E0F6357217=02171841425E5F1B,3E5C218=025D60,393B28292A11219=4903041A1B4A,123435366D21A=5019681B4C1D061E,3D101421B=252F591D0D45,1F2021323321C=2C26,3C2321D=3751522D2E69,121364223E2B21E=163F40053145,6A3A5A5B21F=5841440C38,467147150B220=18431C4D5345,6B4E5648221=171827534B45,5455070861621256222=6730,0E0F6357223=490241425E5F1B,3E5C224=50025D1B601E,393B28292A11225=03041A4A,123435366D226=19684C1D061E,3D1014227=252F591D0D1E,1F20213233228=162C26,3C23229=3751522D2E69,121364220B3E2B22A=183F40053145,6A3A5A5B22B=17185841440C38,46157222C=431C4D53,6B4E564822D=490127534B45,54550708616212567922E=5001671B30,0E0F635722F=010241425E5F,3E5C230=01025D601E,393B28292A1174231=0103041A4A,1234353647726E6D232=1619684C1D061E,3D1014233=252F591D0D1E,1F202132330B75234=182C26,3C23235=17183751522D2E69,126F1364223E2B236=3F400531,6A3A5A5B237=495841440C38,461572238=50431C4D5345,6B4E76567248239=27534B45,5455070861627612567323A=6730,0E0F635723B=0241425E5F,3E5C300=0102415E5F1A1B69,090A471457301=011B05,6A125C302=5001185D19515203042F0C1D601E,323315303=4F490118251C1D1E,3C5A5B106D304=012C2706,1F20213B710B787A305=58372668300D,6B123E306=173F402D2E45,07086423307=00,393A0E2B308=24164142444A533145,61624622567B309=674C533845,28292A4E12135630A=431B594D,5455633435364830B=021B27,3D116C0A3E30C=500218415E5F1A1B691E,146E5730D=4F49181B05,6A126F5C30E=705D19515203042F0C1D60,3233150B30F=01251C1D,3C5A5B106D310=01172C2706,1F20213B7C311=0158372668300D,6B123E312=2416013F402D2E45,0708476423313=01,393A0E0F6E2B314=4142444A533145,61624622567D315=66671B4C533845,28292A4E121356316=5018431B594D,54556334353648317=4F4902181B4B,3D113E318=02415E5F1A69,140B57319=1B05,6A125C31A=175D19515203042F0C1D601E,32331531B=251C1D1E,3C5A5B106D31C=24162C2706,1F20213B31D=58372668300D,6B123E31E=3F402D2E45,0708642331F=00,393A0E0F2B320=50184142444A533145,61624622567E321=4F4918671B4C533845,28292A4E121356322=43594D,5455633435360B48323=021B4B,3D113E324=0217415E5F1A691E,1457325=05,6A125C326=58165D19515203042F0C1D601E,323315327=251C1D1E,3C5A5B106D328=2C2706,1F20213B75329=58372668300D,6B123E32A=50183F402D2E45,0708642332B=4F4918,393A0E0F722B32C=4142444A5331,616246220B567B32D=01671B4C533845,28292A4E12135632E=011743594D,5455633435364832F=01024B,3D113E330=24160102415E5F1A691E,741457331=0105,6A12726E5C332=5D19515203042F0C1D601E,32331572333=251C1D1E,3C5A5B106D334=50182C2706,1F20213B335=4F491858372668300D,6B126F3E336=3F402D2E,0708640B23337=00,393A0E0F722B338=174142444A533145,616246762256727B73339=674C533845,28292A4E7612135633A=241643594D,5455633435364833B=024B,3D113E400=5001431B,5A5B1248401=490141425E5F2F4B,32336314402=4F01024A1D1E,396B3C130B57403=01025803044C1D1E,07085C404=01183F5D5960,0E0F10127F405=171819,1F20213E6D788075406=162526690645,28292A407=242C2D2E050D,6162343536647B408=3767680C5345,6A3A3B3D12155623409=4041441C5345,46562B40A=501B274D31,4E1140B=4951521A1B3038,5455223E40C=4F431B1E,5A5B0981120B6E4840D=41425E5F2F4B,3233631440E=02184A1D,396B3C135740F=010217185803044C1D,0708475C410=16013F585960,0E0F1012411=240119,1F20213E6D412=012526690645,28292A413=012C2D2E050D,6162343536646E7B414=503767681B0C5345,6A3A3B3D126F155623415=494041441B1C5345,46562B416=4F1B274D31,4E11710B417=51521A1B3038,54556C81223E418=18431B,5A5B1248419=171841425E5F2F4B,3233631441A=16024A1D1E,396B3C135741B=24025844044C1D1E,07085C41C=3F5D5960,0E0F101241D=19,1F20213E6D41E=50702526690645,28292A41F=492C2D2E050D,6162343536647D420=4F663767681B0C5345,6A3A3B3D12150B5623421=4041441B1C5345,46562B422=181B274D31,4E11423=171851521A3038,5455223E424=16431E,5A5B1248425=2441425E5F2F4B,32336314426=024A1D1E,396B3C1357427=025803044C1D1E,07085C428=503F5D5960,0E0F10126F429=4919,1F20213E6D42A=4F2526690645,28292A0B8242B=2C2D2E050D,616234353664727E7342C=183767681B0C53,6A3A3B3D1215562342D=0117184041441C5345,4647562B42E=1601274D31,4E1142F=240151521A3038,5455223E430=01431E,5A5B761248431=0141425E5F2F4B,32336314726E432=50024A1D1E,396B3C137257433=49025844044C1D1E,0708745C434=4F3F5D5960,0E0F10120B435=19,1F20213E6D75436=1825266906,28292A82437=17182C2D2E050D,616234353664727B73438=163767680C5345,6A3A3B3D1215567223439=244041441C5345,46562B43A=274D31,4E1143B=51521A3038,545576223E83500=012F4D31,54550708323312501=01586938,0E0F3C63502=16010241435E5F051D1E,641448503=01020C1D4B1E,6A28292A353615220B504=0117183F03041C,123457505=181927,3D103E5C506=5D25306045,1F20213B616213507=492C2667,6D508=503751522D2E530645,1256509=401B4A530D45,393A5A5B115650A=4142441A1B4C,462350B=681B59,6B4E3E2B50C=162F4D311E,5455070832330981126E50D=586938,0E0F3C0B50E=02171841435E5F051D,64144850F=0102180C1D4B,6A28292A35361522510=013F03041C,123457511=49011927,3D103E5C512=50015D25306045,1F20213B616213513=012C26671B,6E6D514=3751522D2E1B530645,126F56515=401B4A530D45,393A5A5B1156516=164142441A1B4C,467123517=6859,6B4E6C810B3E2B518=17182F4D31,54550708323312519=18586938,0E0F3C6351A=0241435E5F051D1E,64144851B=49020C1D4B1E,6A28292A3536152251C=503F03041C,12345751D=1927,3D103E5C51E=705D25306045,1F20213B61621351F=2C26671B,6D520=163751522D2E1B530645,1256521=404A530D45,393A5A5B110B56522=17184142441A1B,4623523=186859,6B4E3E2B524=2F4D311E,54550708323312525=49586938,0E0F3C63526=500241435E5F051D1E,641448527=020C1D4B1E,6A28292A35361522528=3F03041C,126F344757529=1927,3D103E5C52A=165D25306045,1F20213B616213658452B=662C2667,0B726D52C=17183751522D2E1B5306,125652D=0118404A530D45,393A5A5B115652E=014142441A4C,462352F=49016859,6B4E3E2B530=50012F4D311E,545507083233761285531=01586938,0E0F3C63726E532=0241435E5F051D1E,64147248533=020C1D4B1E,6A28292A7435361522534=163F03041C,123457535=1927,3D100B3E5C536=16185D253060,1F20213B61621378537=182C2667,726D538=3751522D2E530645,125672539=49404A530D45,393A5A5B115653A=504142441A4C,46472353B=681B59,6B4E763E2B600=241601304D,3C28292A4E1235361423601=01,54553B63342B602=0102681D311E,3D603=010241425E5F4A1D381E,64604=01183F434C,39127148605=4F49181951520304594B,61620B3E73606=50256745,5A5B102257607=172C69,1F20215C608=5D37261B05536045,6B111256609=402D2E1A1B0C5345,6B11125660A=24161B1C06,6A3A0E0F1360B=5841442F270D,3233463E60C=304D1E,3C28292A4E0981123536146E2360D=00,54553B63342B60E=0218681D31,3D60F=4F4901021841425E5F4A1D38,640B610=50013F434C,391248611=01171951520304594B,61623E612=0125671B45,5A5B102257613=012C1B69,1F20216E5C614=24165D37261B05536045,6B11126F56615=402D2E1A1B0C5345,070815566D616=1C06,6A3A0E0F1347617=5841442F270D,3233466C813E618=18304D,3C28292A4E1235361423619=4F4918,54553B63340B2B61A=5002681D311E,3D61B=021741425E5F4A1D381E,6461C=3F434C,39124861D=1951520304594B,61623E61E=24167025671B45,5A5B10225761F=2C1B69,1F20215C620=5D372605536045,6B111256621=402D2E1A0C5345,070815566D622=181B1C06,6A3A0E0F13623=4F49185841442F270D,3233460B3E624=50304D1E,3C28292A4E1235361423625=17,54553B63342B626=02681D311E,3D627=0241425E5F4A1D381E,64628=24163F434C,39126F48629=1951520304594B,61623E62A=256745,5A5B1022578662B=2C69,1F2021725C7562C=185D37261B055360,6B11125662D=4F490118402D2E1A0C5345,0708150B566D62E=50011C06,6A3A0E0F1362F=01175841442F270D,3233463E630=01304D1E,3C28292A4E761235361423631=01,54553B6334726E2B87632=241602681D311E,3D72633=0241425E5F4A1D381E,7464634=3F434C,39124748635=1951520304594B,61623E6573636=661825671B,5A5B10225786637=4F49182C69,1F20210B725C75638=505D372605536045,6B11125672639=17402D2E1A0C5345,070815566D63A=1B1C06,6A3A0E0F1363B=5841442F270D,323346763E700=0103404142445906,46701=01020D,4E14702=50015152694D1D1E,54553B23703=4901051D1E,5A5B2B1288704=4F0102415E5F0C31,6162636415705=6667681C38,6A6B3E706=4303042745,07080B48707=02304B,0E0F101112708=16171819,1F20135657709=24185825261B5345,28292A353622565C70A=025D2C2D2E2F4A60,3233893470B=374C,393A3C3D3E6D70C=503F4041424459061E,466E70D=49020D,4E1470E=4F5152694D1D,54553B70F=01051D,5A5B12132B710=0102415E5F0C31,61626364150B65711=0167681C38,6A6B3E712=162417184303041B2745,070848713=240102181B304B,0E0F1011126E714=191A1B5345,1F20215657715=5825261B5345,28292A353622565C717=49374C,393A3C3D126F473E6D718=4F3F404142445906,46719=020D,4E1471A=515269,1D1E71B=051D1E,5A5B12132B71C=16021718415E5F0C31,616263641571D=241867681B1C38,6A6B3E71E=4303041B2745,07084871F=021B30,0E0F101112720=50191A5345,1F20215657721=495825265345,28292A353622565C722=4F025D2C2D2E2F4A60,32338934723=374C,393A3C3D123E6D724=3F4041424459061E,46098A0B725=020D,4E7114726=1617185152694D1D1E,54553B23727=2418051D1E,5A5B12132B728=02415E5F0C31,616263641573729=67681B1C38,6A6B3E72A=504303042745,07084872B=4902304B,0E0F1011126F7272C=4F70191A1B,1F2021565772D=015825265345,28292A353622565C72E=01025D2C2D2E2F4A60,323389340B72F=01374C,393A3C3D6C8A123E6D730=160117183F4041424459061E,46731=240102180D,4E14726E732=5152694D1D1E,54553B767223733=051D1E,5A5B7612132B77734=5002415E5F0C31,6162636415735=4967681C38,6A6B473E736=4F4303041B27,7448737=02304B,0E0F10111272738=191A5345,1F20210B56725775739=5825265345,28292A353622565C73A=160217185D2C2D2E2F4A60,3233893473B=2418374C,393A3C3D123E6D800=50013F5D402760,6A3A5A5B22801=490102414430,466D802=014D1D061E,6B4E4714803=011D0D1E,54550708616212804=0102671B4A,0E0F6323805=41425E5F4C,8B2B806=16593145,3928292A113536807=025803041A1B38,1234130B808=181943681B695345,3D105648809=1718252F0553534B45,1F20213B32335680A=50022C260C,3C155780B=493751522D2E1C,12643E5C80C=3F5D4027601E,6A3A5A5B226E80D=02414430,466D80E=4D1D06,6B4E1480F=011D0D,5455070861621279810=16010266674A,0E0F6323811=0141425E5F1B4C,0B3E2B812=01181B593145,3928292A113536813=010217185803041A1B38,1234136E814=501943681B695345,3D105648815=49252F05534B45,1F20213B323356816=022C260C,3C1557817=3751522D2E1C,126F643E5C818=3F5D402760,6A3A5A5B22819=02414430,466D81A=164D1D061E,6B4E1481B=1D0D1E,545507086162120B6581C=0218671B4A,0E0F632381D=171841425E5F1B4C,3E2B81E=501B593145,3928292A11353681F=49025D03041A38,123413820=194368695345,3D10475648821=252F05534B45,1F20213B323356716=50025D2C2D2E2F4A60,32338934822=022C260C,3C1557823=3751522D2E1C,12643E5C824=163F5D4027601E,6A3A5A5B098A22825=02414430,46710B6D826=184D1D061E,6B4E14827=17181D0D1E,54550708616212828=5002671B4A,0E0F6323829=4941425E5F4C,3E2B82A=593145,3928292A11353682B=025803041A38,126F34137282C=701943681B6953,3D10564882D=01252F05534B45,1F2021613233567882E=1601022C260C,3C155782F=013751522D2E1C,6C8A12640B3E5C830=01183F5D4027601E,6A3A5A5B22831=01021718414430,46726E6D832=504D1D061E,6B4E761472833=491D0D1E,545507086162761273834=02674A,0E0F6323835=41425E5F4C,3E2B836=1B5931,3928292A11743536837=025803041A38,12341372838=16194368695345,3D10567248839=252F05534B45,1F20213B32330B567583A=02182C260C,3C155783B=17183751522D2E1C,12643E5C900=013F408C2E4C,0708641457901=010259,393A0E0F5C902=2416015D4142441D601E,61624635367B903=0167691D1E,28292A4E126D904=01021B054D06,5455637134220B905=580C0D,3D11153E906=17415E5F1A1B1C45,23907=4F49021B27,6A3B12472B908=501819515203042F30533145,323356909=1825533845,3C5A5B105690A=022C43,1F2021487C90B=3726684A4B,6B12133E90C=24163F402D2E4C1E,070864146E5790D=0259,393A0E0F5C90E=5D4142441D60,61624635360B7B90F=0167691D,28292A4E126D910=0102171B054D06,5455633422911=4F4901581B0C0D,3D11153E912=500118415E5F1A1B1C45,23913=0102181B27,6A3B126E2B914=19515203042F30533145,323356915=25533845,3C5A5B1056916=2416022C43,1F202148917=3726684A4B,6B126F133E918=3F402D2E4C,070864140B57919=0259,393A0E0F5C91A=175D4142441D601E,61624635367D91B=4F4966671B691D1E,28292A4E126D91C=5002181B054D06,545563342291D=18581B0C0D,3D11153E91E=415E5F1A1C45,2391F=0227,6A3B122B920=241619515203042F305331,323356921=25533845,3C5A5B1056922=022C43,1F20210B48788D923=3726684A4B,6B12133E924=173F402D2E4C1E,0708098A641457925=4F49022E,393A0E0F475C926=50185D4142441D601E,61624635367E927=18671B691D1E,28292A4E126D928=02054D06,5455633422929=580C0D,3D11153E92A=2416415E5F1A1C45,2392B=0227,6A3B126F722B92C=7019515203042F305331,32330B5692D=0125533845,3C5A5B105692E=0102162C43,1F2021487592F=4F49013726684A4B,6B6C8A12133E930=5001183F402D2E4C1E,0708641457931=01021859,393A0E0F726E5C932=5D4142441D601E,616246763536727B73933=67691D1E,28292A4E76126D934=241602054D06,5455633422935=580C0D,3D11153E936=415E5F1A1B1C,740B23937=0227,6A3B12722B938=1719515203042F30533145,32335672939=4F4925533845,3C5A5B105693A=5002182C43,1F20214893B=183726684A4B,6B12133EA00=160170182543261C,28292A48A01=240117182C2D2E274B,61623464147BA02=013F376768301D1E,6A3A3D1257A03=01584041441D1E,465CA04=015D4D60,4E1113A05=4951521A1B4A,54553E6DA06=4F501B4C0645,5A5B12A07=41425E5F2F590D,32336322A08=025345,396B3C0B5623A09=020304695345,0708562BA0A=16180531,0E0F10126FA0B=241618190C38,1F20213B3536103EA0C=2543261C1E,28292A6E48A0D=2C2D2E274B,61623464147BA0E=3F376768301D,6A3A3D124757A0F=4924584041441B1D,465CA10=4F50015D1B4D60,4E1113A11=0151521A1B4A,54553E6DA12=011B4C0645,5A5B120BA13=0141425E5F2F590D,323363226EA14=1602185345,396B3C5623A15=240217180304695345,0708562BA16=0531,0E0F1012A17=190C38,1F20213B3536153EA18=2543261C,28292A4882A19=49503F3767681B301D1E,6A3A3D1257A1A=4F503F3767681B301D1E,6A3A3D1257A1B=584041441B1D1E,465CA1C=5D1B4D60,4E1171130BA1D=51521A1B4A,54553E6DA1E=16184C0645,5A5B12A1F=24171841425E5F2F590D,32336322A20=025345,396B3C5623A21=020304695345,0708562BA22=0531,0E0F10128EA23=49190C38,1F20213B3536153E788FA24=4F502543261C1E,28292A48A25=2C2D2E274B,61623464147DA26=663F3767681B301D1E,6A3A3D120B57A27=584041441B1D1E,465CA28=16185D4D60,4E1113A29=24171851521A4A,54553E6DA2A=4C0645,5A5B7612A2B=41425E5F2F590D,3233632272A2C=0253,396B3C475623A2D=1601020304695345,0708562BA2E=4F50010531,0E0F1012A2F=01190C38,1F20213B3536153EA30=012543261C1E,28292A09900B4882A31=012C2D2E274B,6162346414726E7E73A32=16183F376768301D1E,6A3A3D126F7257A33=2417185D4041441D1E,465CA34=5D4D60,4E1113A35=51521A4A,5455763E6D83A36=4C06,5A5B12A37=4941425E5F2F590D,3233632272A38=4F50029145,396B3C567223A39=020304695345,070874562BA3A=0531,0E0F10120BA3B=190C38,1F20213B6C903536153E75B00=01701718254A31,1F20216162B01=0118582C26,674C38B02=50013F375152432D2E591D1E,121448B03=4901401B1D4B1E,393A5B11B04=014142441A69,4657B05=681B05,6B4E3E5CB06=682F0C4D6045,5455070832331215B07=1C,0E0F3C636DB08=1602415E5F27530645,3536136456B09=0230530D45,6A28292A0B56B0A=17180304,126F342223B0B=1819,3D103E2BB0C=50254A311E,1F202161626EB0D=49582C26,671B4C38B0E=3F375152432D2E591D,121448B0F=01401B1D4B,393A3B5A5B11B10=014142441A1B69,4657B11=01681B05,6B4E3E5CB12=16015D2F0C4D6045,5455070832331215B13=011C,0E0F3C630B6E6DB14=021718415E5F27530645,3536136456B15=021830530D45,6A28292A56B16=500304,12342223B17=4919,3D103E2BB18=254A31,1F4E21616278B19=582C26,671B4C38B1A=3F375152432D2E1B591D1E,121448B1B=401B1D4B1E,393A3B5A5B1147B1C=164142441A1B69,467157B1D=6805,6B4E0B3E5CB1E=17185D2F0C926045,5455070832331215B1F=181C,0E0F3C636DB20=5002415E5F27530645,3536136456B21=490230530D45,6A28292A56B22=0304,12342223B23=19,3D103E2BB24=254A311E,1F20136162B25=582C26671B4C38,00B26=163F375152432D2E1B591D1E,121448B27=401D4B1E,393A3B5A5B110BB28=17184142441A69,4657B29=186805,6B4E3E5CB2A=505D2F0C4D6045,54550708323376121585B2B=491C,0E0F3C63726DB2C=02415E5F275306,3536136456B2D=010230530D45,6A28292A56B2E=010304,12342223B2F=0119,3D103E2BB30=1601254A311E,1F2021616209906584B31=0166582C26674C38,0B726EB32=17183F375152432D2E591D1E,126F147248B33=18401D4B1E,393A3B5A5B11B34=504142441A69,4657B35=49681B05,6B4E763E5CB36=5D2F0C4D60,5455070832331215B37=1C,0E0F3C63726DB38=02415E5F27530645,353613645672B39=0230530D45,6A28292A744756B3A=160304,12342223B3B=19,3D106C900B3E2BC00=500170661825670C,5A5B1013141523C01=4F4901182C1C,1F2021222BC02=011637261B271D311E,6B1112C03=01402D2E1A1B311D381E,0708C04=0143,6A3A0E0F7148C05=41442F4B,32334635360B3EC06=24164A4D45,3C28292A4E1257C07=174C,545563345CC08=025D6859536045,3D56C09=0241425E5F5345,4764566DC0A=50186906,393B126FC0B=4F4918581951520304050D,61623EC0C=25671B0C1E,5A5B101314156E23C0D=2C1B1C,1F2021222BC0E=3F37264B1D31,6B1112C0F=01402D2E1A1B301D38,07080BC10=241601431B,6A3A0E0F48C11=011741442F4B,32334635363EC12=014A4D45,3C28292A4E1257C13=014C,545563346E5CC14=5002185D6804536045,3D56C15=4F49021841425E5F5345,64566DC16=6906,393B12C17=581951524404050D,61623EC18=25670C,5A5B101314152386C19=2C1B1C,1F2021220B2BC1A=24163F37261B271D31,6B1112C1B=17402D2E1A1B301D381E,0708C1C=43,6A3A0E0F48C1D=41582F4B,32334635363EC1E=50184A4D45,3C28292A4E1257C1F=4F49184C,545563345CC20=025D6859536045,3D56C21=0241425E5F5345,64566DC22=6906,393B12C23=581951520304050D,61620B3EC24=241625671B0C1E,5A5B1013141523C25=172C1B1C,1F2021222BC26=3F3726271D311E,6B1112C27=402D2E1A301D381E,0708C28=501843,6A5B0E0F48C29=4F491841442F4B,32334635363EC2A=4A4D45,3C28292A4E761257C2B=4C,54556334725C93C2C=025D68595360,3D56C2D=010241425E5F5345,640B566DC2E=2416016906,393B12C2F=0117581951520304050D,61623EC30=0125670C,5A5B1009901314152386C31=012C1C,1F202122726E2B75C32=50183F3726271D311E,6B11126F72C33=4F4918402D2E1A301D381E,070847C34=431B,6A3A0E0F48C35=41442F4B,3233467635363EC36=4A4D,3C28292A4E1257C37=4C,545563340B725CC38=2416025D6859536045,3D5672C39=021741425E5F5345,7464566DC3A=6906,393B12C3B=581951520304050D,61626C903E6573',\n getTimeZhiIndex:function(hm){\n if(!hm){\n return 0;\n }\n if(hm.length>5){\n hm = hm.substring(0,5);\n }\n var x = 1;\n for(var i=1;i<22;i+=2){\n if(hm>=((i<10?'0':'')+i+':00')&&hm<=((i+1<10?'0':'')+(i+1)+':59')){\n return x;\n }\n x++;\n }\n return 0;\n },\n convertTime:function(hm){\n return this.ZHI[this.getTimeZhiIndex(hm)+1];\n },\n getJiaZiIndex:function(ganZhi){\n return this.index(ganZhi, this.JIA_ZI, 0);\n },\n hex:function(n){\n var hex = n.toString(16);\n if(hex.length<2){\n hex = '0'+hex;\n }\n return hex.toUpperCase();\n },\n getDayYi:function(monthGanZhi,dayGanZhi){\n var l = [];\n var day = this.hex(this.getJiaZiIndex(dayGanZhi));\n var month = this.hex(this.getJiaZiIndex(monthGanZhi));\n var right = this.DAY_YI_JI;\n var index = right.indexOf(day+'=');\n while(index>-1) {\n right = right.substring(index+3);\n var left = right;\n if (left.indexOf('=')>-1) {\n left = left.substring(0, left.indexOf('=') - 2);\n }\n var matched = false;\n var months = left.substring(0, left.indexOf(':'));\n var i;\n var j;\n for (i = 0, j = months.length; i < j; i += 2) {\n if (months.substring(i, i+2)===month) {\n matched = true;\n break;\n }\n }\n if(matched) {\n var ys = left.substring(left.indexOf(':') + 1);\n ys = ys.substring(0, ys.indexOf(','));\n for (i = 0, j = ys.length; i < j; i += 2) {\n l.push(this.YI_JI[parseInt(ys.substring(i, i+2),16)]);\n }\n break;\n }\n index = right.indexOf(day+'=');\n }\n if(l.length<1){\n l.push(this.SHEN_SHA[0]);\n }\n return l;\n },\n getDayJi:function(monthGanZhi,dayGanZhi){\n var l = [];\n var day = this.hex(this.getJiaZiIndex(dayGanZhi));\n var month = this.hex(this.getJiaZiIndex(monthGanZhi));\n var right = this.DAY_YI_JI;\n var index = right.indexOf(day+'=');\n while(index>-1) {\n right = right.substring(index+3);\n var left = right;\n if (left.indexOf('=')>-1) {\n left = left.substring(0, left.indexOf('=') - 2);\n }\n var matched = false;\n var months = left.substring(0, left.indexOf(':'));\n var i;\n var j;\n for (i = 0, j = months.length; i < j; i += 2) {\n if (months.substring(i, i+2)===month) {\n matched = true;\n break;\n }\n }\n if(matched) {\n var js = left.substring(left.indexOf(',')+1);\n for (i = 0, j = js.length; i < j; i += 2) {\n l.push(this.YI_JI[parseInt(js.substring(i, i+2),16)]);\n }\n break;\n }\n index = right.indexOf(day+'=');\n }\n if(l.length<1){\n l.push(this.SHEN_SHA[0]);\n }\n return l;\n },\n getDayJiShen:function(lunarMonth,dayGanZhi){\n var l = [];\n var day = this.hex(this.getJiaZiIndex(dayGanZhi));\n var month = Math.abs(lunarMonth).toString(16).toUpperCase();\n var index = this.DAY_SHEN_SHA.indexOf(month+day+'=');\n if(index>-1) {\n var left = this.DAY_SHEN_SHA.substring(index + 4);\n if (left.indexOf('=')>-1) {\n left = left.substring(0, left.indexOf('=') - 3);\n }\n var js = left.substring(0, left.indexOf(','));\n for (var i = 0, j = js.length; i < j; i += 2) {\n l.push(this.SHEN_SHA[parseInt(js.substring(i, i+2), 16)]);\n }\n }\n if(l.length<1){\n l.push(this.SHEN_SHA[0]);\n }\n return l;\n },\n getDayXiongSha:function(lunarMonth,dayGanZhi){\n var l = [];\n var day = this.hex(this.getJiaZiIndex(dayGanZhi));\n var month = Math.abs(lunarMonth).toString(16).toUpperCase();\n var index = this.DAY_SHEN_SHA.indexOf(month+day+'=');\n if(index>-1) {\n var left = this.DAY_SHEN_SHA.substring(index + 4);\n if (left.indexOf('=')>-1) {\n left = left.substring(0, left.indexOf('=') - 3);\n }\n var xs = left.substring(left.indexOf(',')+1);\n for (var i = 0, j = xs.length; i < j; i += 2) {\n l.push(this.SHEN_SHA[parseInt(xs.substring(i, i+2), 16)]);\n }\n }\n if(l.length<1){\n l.push(this.SHEN_SHA[0]);\n }\n return l;\n },\n getTimeYi:function(dayGanZhi,timeGanZhi){\n var l = [];\n var day = this.hex(this.getJiaZiIndex(dayGanZhi));\n var time = this.hex(this.getJiaZiIndex(timeGanZhi));\n var index = this.TIME_YI_JI.indexOf(day+time+'=');\n if(index>-1) {\n var left = this.TIME_YI_JI.substring(index + 5);\n if (left.indexOf('=')>-1) {\n left = left.substring(0, left.indexOf('=') - 4);\n }\n var ys = left.substring(0, left.indexOf(','));\n for (var i = 0, j = ys.length; i < j; i += 2) {\n l.push(this.YI_JI[parseInt(ys.substring(i, i+2), 16)]);\n }\n }\n if(l.length<1){\n l.push(this.SHEN_SHA[0]);\n }\n return l;\n },\n getTimeJi:function(dayGanZhi,timeGanZhi){\n var l = [];\n var day = this.hex(this.getJiaZiIndex(dayGanZhi));\n var time = this.hex(this.getJiaZiIndex(timeGanZhi));\n var index = this.TIME_YI_JI.indexOf(day+time+'=');\n if(index>-1) {\n var left = this.TIME_YI_JI.substring(index + 5);\n if (left.indexOf('=')>-1) {\n left = left.substring(0, left.indexOf('=') - 4);\n }\n var js = left.substring(left.indexOf(',')+1);\n for (var i = 0, j = js.length; i < j; i += 2) {\n l.push(this.YI_JI[parseInt(js.substring(i, i+2), 16)]);\n }\n }\n if(l.length<1){\n l.push(this.SHEN_SHA[0]);\n }\n return l;\n },\n getXunIndex:function(ganZhi){\n var diff = this.find(ganZhi, this.GAN).index - this.find(ganZhi, this.ZHI).index;\n if (diff < 0) {\n diff += 12;\n }\n return Math.floor(diff/2);\n },\n getXun:function(ganZhi){\n return this.XUN[this.getXunIndex(ganZhi)];\n },\n getXunKong:function(ganZhi){\n return this.XUN_KONG[this.getXunIndex(ganZhi)];\n },\n index:function(name, names, offset) {\n for (var i = 0, j = names.length; i < j; i++) {\n if (names[i] === name) {\n return i + offset;\n }\n }\n return -1;\n },\n find:function(s, arr){\n for (var i = 0, j = arr.length; i < j; i++) {\n var v = arr[i];\n if (v.length < 1) {\n continue;\n }\n if (s.indexOf(v) > -1) {\n return {\n index: i,\n value: v\n }\n }\n }\n return null;\n }\n };\n })();\n var HolidayUtil = (function(_NAMES){\n var _SIZE = 18;\n var _ZERO='0'.charCodeAt(0);\n var _TAG_REMOVE = '~';\n var _NAMES_IN_USE=_NAMES,_DATA='200112290020020101200112300020020101200201010120020101200201020120020101200201030120020101200202091020020212200202101020020212200202121120020212200202131120020212200202141120020212200202151120020212200202161120020212200202171120020212200202181120020212200204273020020501200204283020020501200205013120020501200205023120020501200205033120020501200205043120020501200205053120020501200205063120020501200205073120020501200209286020021001200209296020021001200210016120021001200210026120021001200210036120021001200210046120021001200210056120021001200210066120021001200210076120021001200301010120030101200302011120030201200302021120030201200302031120030201200302041120030201200302051120030201200302061120030201200302071120030201200302081020030201200302091020030201200304263020030501200304273020030501200305013120030501200305023120030501200305033120030501200305043120030501200305053120030501200305063120030501200305073120030501200309276020031001200309286020031001200310016120031001200310026120031001200310036120031001200310046120031001200310056120031001200310066120031001200310076120031001200401010120040101200401171020040122200401181020040122200401221120040122200401231120040122200401241120040122200401251120040122200401261120040122200401271120040122200401281120040122200405013120040501200405023120040501200405033120040501200405043120040501200405053120040501200405063120040501200405073120040501200405083020040501200405093020040501200410016120041001200410026120041001200410036120041001200410046120041001200410056120041001200410066120041001200410076120041001200410096020041001200410106020041001200501010120050101200501020120050101200501030120050101200502051020050209200502061020050209200502091120050209200502101120050209200502111120050209200502121120050209200502131120050209200502141120050209200502151120050209200504303020050501200505013120050501200505023120050501200505033120050501200505043120050501200505053120050501200505063120050501200505073120050501200505083020050501200510016120051001200510026120051001200510036120051001200510046120051001200510056120051001200510066120051001200510076120051001200510086020051001200510096020051001200512310020060101200601010120060101200601020120060101200601030120060101200601281020060129200601291120060129200601301120060129200601311120060129200602011120060129200602021120060129200602031120060129200602041120060129200602051020060129200604293020060501200604303020060501200605013120060501200605023120060501200605033120060501200605043120060501200605053120060501200605063120060501200605073120060501200609306020061001200610016120061001200610026120061001200610036120061001200610046120061001200610056120061001200610066120061001200610076120061001200610086020061001200612300020070101200612310020070101200701010120070101200701020120070101200701030120070101200702171020070218200702181120070218200702191120070218200702201120070218200702211120070218200702221120070218200702231120070218200702241120070218200702251020070218200704283020070501200704293020070501200705013120070501200705023120070501200705033120070501200705043120070501200705053120070501200705063120070501200705073120070501200709296020071001200709306020071001200710016120071001200710026120071001200710036120071001200710046120071001200710056120071001200710066120071001200710076120071001200712290020080101200712300120080101200712310120080101200801010120080101200802021020080206200802031020080206200802061120080206200802071120080206200802081120080206200802091120080206200802101120080206200802111120080206200802121120080206200804042120080404200804052120080404200804062120080404200805013120080501200805023120080501200805033120080501200805043020080501200806074120080608200806084120080608200806094120080608200809135120080914200809145120080914200809155120080914200809276020081001200809286020081001200809296120081001200809306120081001200810016120081001200810026120081001200810036120081001200810046120081001200810056120081001200901010120090101200901020120090101200901030120090101200901040020090101200901241020090125200901251120090125200901261120090125200901271120090125200901281120090125200901291120090125200901301120090125200901311120090125200902011020090125200904042120090404200904052120090404200904062120090404200905013120090501200905023120090501200905033120090501200905284120090528200905294120090528200905304120090528200905314020090528200909276020091001200910016120091001200910026120091001200910036120091001200910046120091001200910055120091003200910065120091003200910075120091003200910085120091003200910105020091003201001010120100101201001020120100101201001030120100101201002131120100213201002141120100213201002151120100213201002161120100213201002171120100213201002181120100213201002191120100213201002201020100213201002211020100213201004032120100405201004042120100405201004052120100405201005013120100501201005023120100501201005033120100501201006124020100616201006134020100616201006144120100616201006154120100616201006164120100616201009195020100922201009225120100922201009235120100922201009245120100922201009255020100922201009266020101001201010016120101001201010026120101001201010036120101001201010046120101001201010056120101001201010066120101001201010076120101001201010096020101001201101010120110101201101020120110101201101030120110101201101301020110203201102021120110203201102031120110203201102041120110203201102051120110203201102061120110203201102071120110203201102081120110203201102121020110203201104022020110405201104032120110405201104042120110405201104052120110405201104303120110501201105013120110501201105023120110501201106044120110606201106054120110606201106064120110606201109105120110912201109115120110912201109125120110912201110016120111001201110026120111001201110036120111001201110046120111001201110056120111001201110066120111001201110076120111001201110086020111001201110096020111001201112310020120101201201010120120101201201020120120101201201030120120101201201211020120123201201221120120123201201231120120123201201241120120123201201251120120123201201261120120123201201271120120123201201281120120123201201291020120123201203312020120404201204012020120404201204022120120404201204032120120404201204042120120404201204283020120501201204293120120501201204303120120501201205013120120501201205023020120501201206224120120623201206234120120623201206244120120623201209295020120930201209305120120930201210016120121001201210026120121001201210036120121001201210046120121001201210056120121001201210066120121001201210076120121001201210086020121001201301010120130101201301020120130101201301030120130101201301050020130101201301060020130101201302091120130210201302101120130210201302111120130210201302121120130210201302131120130210201302141120130210201302151120130210201302161020130210201302171020130210201304042120130404201304052120130404201304062120130404201304273020130501201304283020130501201304293120130501201304303120130501201305013120130501201306084020130612201306094020130612201306104120130612201306114120130612201306124120130612201309195120130919201309205120130919201309215120130919201309225020130919201309296020131001201310016120131001201310026120131001201310036120131001201310046120131001201310056120131001201310066120131001201310076120131001201401010120140101201401261020140131201401311120140131201402011120140131201402021120140131201402031120140131201402041120140131201402051120140131201402061120140131201402081020140131201404052120140405201404062120140405201404072120140405201405013120140501201405023120140501201405033120140501201405043020140501201405314120140602201406014120140602201406024120140602201409065120140908201409075120140908201409085120140908201409286020141001201410016120141001201410026120141001201410036120141001201410046120141004201410056120141001201410066120141001201410076120141001201410116020141001201501010120150101201501020120150101201501030120150101201501040020150101201502151020150219201502181120150219201502191120150219201502201120150219201502211120150219201502221120150219201502231120150219201502241120150219201502281020150219201504042120150405201504052120150405201504062120150405201505013120150501201505023120150501201505033120150501201506204120150620201506214120150620201506224120150620201509038120150903201509048120150903201509058120150903201509068020150903201509265120150927201509275120150927201510016120151001201510026120151001201510036120151001201510046120151004201510056120151001201510066120151001201510076120151001201510106020151001201601010120160101201601020120160101201601030120160101201602061020160208201602071120160208201602081120160208201602091120160208201602101120160208201602111120160208201602121120160208201602131120160208201602141020160208201604022120160404201604032120160404201604042120160404201604303120160501201605013120160501201605023120160501201606094120160609201606104120160609201606114120160609201606124020160609201609155120160915201609165120160915201609175120160915201609185020160915201610016120161001201610026120161001201610036120161001201610046120161001201610056120161001201610066120161001201610076120161001201610086020161001201610096020161001201612310120170101201701010120170101201701020120170101201701221020170128201701271120170128201701281120170128201701291120170128201701301120170128201701311120170128201702011120170128201702021120170128201702041020170128201704012020170404201704022120170404201704032120170404201704042120170404201704293120170501201704303120170501201705013120170501201705274020170530201705284120170530201705294120170530201705304120170530201709306020171001201710016120171001201710026120171001201710036120171001201710045120171004201710056120171001201710066120171001201710076120171001201710086120171001201712300120180101201712310120180101201801010120180101201802111020180216201802151120180216201802161120180216201802171120180216201802181120180216201802191120180216201802201120180216201802211120180216201802241020180216201804052120180405201804062120180405201804072120180405201804082020180405201804283020180501201804293120180501201804303120180501201805013120180501201806164120180618201806174120180618201806184120180618201809225120180924201809235120180924201809245120180924201809296020181001201809306020181001201810016120181001201810026120181001201810036120181001201810046120181001201810056120181001201810066120181001201810076120181001201812290020190101201812300120190101201812310120190101201901010120190101201902021020190205201902031020190205201902041120190205201902051120190205201902061120190205201902071120190205201902081120190205201902091120190205201902101120190205201904052120190405201904062120190405201904072120190405201904283020190501201905013120190501201905023120190501201905033120190501201905043120190501201905053020190501201906074120190607201906084120190607201906094120190607201909135120190913201909145120190913201909155120190913201909296020191001201910016120191001201910026120191001201910036120191001201910046120191001201910056120191001201910066120191001201910076120191001201910126020191001202001010120200101202001191020200125202001241120200125202001251120200125202001261120200125202001271120200125202001281120200125202001291120200125202001301120200125202001311120200125202002011120200125202002021120200125202004042120200404202004052120200404202004062120200404202004263020200501202005013120200501202005023120200501202005033120200501202005043120200501202005053120200501202005093020200501202006254120200625202006264120200625202006274120200625202006284020200625202009277020201001202010017120201001202010026120201001202010036120201001202010046120201001202010056120201001202010066120201001202010076120201001202010086120201001202010106020201001202101010120210101202101020120210101202101030120210101202102071020210212202102111120210212202102121120210212202102131120210212202102141120210212202102151120210212202102161120210212202102171120210212202102201020210212202104032120210404202104042120210404202104052120210404202104253020210501202105013120210501202105023120210501202105033120210501202105043120210501202105053120210501202105083020210501202106124120210614202106134120210614202106144120210614202109185020210921202109195120210921202109205120210921202109215120210921202109266020211001202110016120211001202110026120211001202110036120211001202110046120211001202110056120211001202110066120211001202110076120211001202110096020211001202201010120220101202201020120220101202201030120220101202201291020220201202201301020220201202201311120220201202202011120220201202202021120220201202202031120220201202202041120220201202202051120220201202202061120220201202204022020220405202204032120220405202204042120220405202204052120220405202204243020220501202204303120220501202205013120220501202205023120220501202205033120220501202205043120220501202205073020220501202206034120220603202206044120220603202206054120220603202209105120220910202209115120220910202209125120220910202210016120221001202210026120221001202210036120221001202210046120221001202210056120221001202210066120221001202210076120221001202210086020221001202210096020221001202212310120230101202301010120230101202301020120230101202301211120230122202301221120230122202301231120230122202301241120230122202301251120230122202301261120230122202301271120230122202301281020230122202301291020230122202304052120230405202304233020230501202304293120230501202304303120230501202305013120230501202305023120230501202305033120230501202305063020230501202306224120230622202306234120230622202306244120230622202306254020230622202309295120230929202309306120231001202310016120231001202310026120231001202310036120231001202310046120231001202310056120231001202310066120231001202310076020231001202310086020231001202312300120240101202312310120240101202401010120240101202402041020240210202402101120240210202402111120240210202402121120240210202402131120240210202402141120240210202402151120240210202402161120240210202402171120240210202402181020240210202404042120240404202404052120240404202404062120240404202404072020240404202404283020240501202405013120240501202405023120240501202405033120240501202405043120240501202405053120240501202405113020240501202406084120240610202406094120240610202406104120240610202409145020240917202409155120240917202409165120240917202409175120240917202409296020241001202410016120241001202410026120241001202410036120241001202410046120241001202410056120241001202410066120241001202410076120241001202410126020241001';\n var _DATA_IN_USE = _DATA;\n var _padding = function(n){\n return (n<10?'0':'')+n;\n };\n var _ymd = function(s){\n return s.indexOf('-')<0?(s.substring(0,4)+'-'+s.substring(4,6)+'-'+s.substring(6)):s;\n };\n var _buildHoliday = function(day,name,work,target){\n return {\n _p:{\n day:_ymd(day),\n name:name,\n work:work,\n target:_ymd(target)\n },\n getDay:function(){\n return this._p.day;\n },\n setDay:function(v){\n this._p.day = _ymd(v);\n },\n getName:function(){\n return this._p.name;\n },\n setName:function(v){\n this._p.name = v;\n },\n isWork:function(){\n return this._p.work;\n },\n setWork:function(v){\n this._p.work = v;\n },\n getTarget:function(){\n return this._p.target;\n },\n setTarget:function(v){\n this._p.target = _ymd(v);\n },\n toString:function(){\n return this._p.day+' '+this._p.name+(this._p.work?'调休':'')+' '+this._p.target;\n }\n };\n };\n var _buildHolidayForward = function(s){\n var day = s.substring(0,8);\n var name = _NAMES_IN_USE[s.charCodeAt(8)-_ZERO];\n var work = s.charCodeAt(9)===_ZERO;\n var target = s.substring(10, 18);\n return _buildHoliday(day,name,work,target);\n };\n var _buildHolidayBackward = function(s){\n var size = s.length;\n var day = s.substring(size-18,size-10);\n var name = _NAMES_IN_USE[s.charCodeAt(size-10)-_ZERO];\n var work = s.charCodeAt(size-9)===_ZERO;\n var target = s.substring(size-8);\n return _buildHoliday(day,name,work,target);\n };\n var _findForward = function(key){\n var start = _DATA_IN_USE.indexOf(key);\n if(start<0) {\n return null;\n }\n var right = _DATA_IN_USE.substring(start);\n var n = right.length%_SIZE;\n if(n>0){\n right = right.substring(n);\n }\n while((0!==right.indexOf(key))&&right.length>=_SIZE){\n right = right.substring(_SIZE);\n }\n return right;\n };\n var _findBackward = function(key){\n var start = _DATA_IN_USE.lastIndexOf(key);\n if(start<0) {\n return null;\n }\n var keySize = key.length;\n var left = _DATA_IN_USE.substring(0,start+keySize);\n var size = left.length;\n var n = size%_SIZE;\n if(n>0){\n left = left.substring(0,size-n);\n }\n size = left.length;\n while((size-keySize!==left.lastIndexOf(key))&&size>=_SIZE){\n left = left.substring(0,size-_SIZE);\n size = left.length;\n }\n return left;\n };\n var _findHolidaysForward = function(key){\n var l = [];\n var s = _findForward(key);\n if(null==s) {\n return l;\n }\n while(0===s.indexOf(key)){\n l.push(_buildHolidayForward(s));\n s = s.substring(_SIZE);\n }\n return l;\n };\n var _findHolidaysBackward = function(key){\n var l = [];\n var s = _findBackward(key);\n if(null==s) {\n return l;\n }\n var size = s.length;\n var keySize = key.length;\n while(size-keySize===s.lastIndexOf(key)){\n l.push(_buildHolidayBackward(s));\n s = s.substring(0,size-_SIZE);\n size = s.length;\n }\n l.reverse();\n return l;\n };\n var _getHoliday = function(args){\n var l = [];\n switch(args.length){\n case 1:\n l = _findHolidaysForward(args[0].replace(/-/g,''));\n break;\n case 3:\n l = _findHolidaysForward(args[0]+_padding(args[1])+_padding(args[2]));\n break;\n }\n return l.length<1?null:l[0];\n };\n var _getHolidays = function(args){\n var l = [];\n switch(args.length){\n case 1:\n l = _findHolidaysForward((args[0]+'').replace(/-/g,''));\n break;\n case 2:\n l = _findHolidaysForward(args[0]+_padding(args[1]));\n break;\n }\n return l;\n };\n var _getHolidaysByTarget = function(args){\n var l = [];\n switch(args.length){\n case 1:\n l = _findHolidaysBackward((args[0]+'').replace(/-/g,''));\n break;\n case 3:\n l = _findHolidaysBackward(args[0]+_padding(args[1])+_padding(args[2]));\n break;\n }\n return l;\n };\n var _fixNames = function(names){\n if(names){\n _NAMES_IN_USE = names;\n }\n };\n var _fixData = function(data){\n if(!data){\n return;\n }\n var append = [];\n while(data.length>=_SIZE){\n var segment = data.substring(0,_SIZE);\n var day = segment.substring(0,8);\n var remove = _TAG_REMOVE === segment.substring(8, 9);\n var holiday = _getHoliday([day]);\n if(!holiday){\n if (!remove) {\n append.push(segment);\n }\n }else{\n var nameIndex = -1;\n for(var i=0,j=_NAMES_IN_USE.length;i-1){\n var old = day + String.fromCharCode(nameIndex + _ZERO) + (holiday.isWork() ? '0' : '1') + holiday.getTarget().replace(/-/g, '');\n _DATA_IN_USE = _DATA_IN_USE.replace(new RegExp(old, 'g'), remove ? '' : segment);\n }\n }\n data = data.substring(_SIZE);\n }\n if(append.length>0){\n _DATA_IN_USE += append.join('');\n }\n };\n var _fix = function(args){\n switch(args.length){\n case 1:\n _fixData(args[0]);\n break;\n case 2:\n _fixNames(args[0]);\n _fixData(args[1]);\n break;\n }\n };\n return {\n NAMES:_NAMES,\n getHoliday:function(){return _getHoliday(arguments);},\n getHolidays:function(){return _getHolidays(arguments);},\n getHolidaysByTarget:function(){return _getHolidaysByTarget(arguments);},\n fix:function(){_fix(arguments);}\n };\n })(['元旦节','春节','清明节','劳动节','端午节','中秋节','国庆节','国庆中秋','抗战胜利日']);\n var NineStar = (function(){\n var _fromIndex=function(index){\n return {\n _p:{index:index},\n getNumber:function(){return NineStarUtil.NUMBER[this._p.index];},\n getColor:function(){return NineStarUtil.COLOR[this._p.index];},\n getWuXing:function(){return NineStarUtil.WU_XING[this._p.index];},\n getPosition:function(){return NineStarUtil.POSITION[this._p.index];},\n getPositionDesc:function(){return LunarUtil.POSITION_DESC[this.getPosition()];},\n getNameInXuanKong:function(){return NineStar.NAME_XUAN_KONG[this._p.index];},\n getNameInBeiDou:function(){return NineStar.NAME_BEI_DOU[this._p.index];},\n getNameInQiMen:function(){return NineStar.NAME_QI_MEN[this._p.index];},\n getNameInTaiYi:function(){return NineStar.NAME_TAI_YI[this._p.index];},\n getLuckInQiMen:function(){return NineStar.LUCK_QI_MEN[this._p.index];},\n getLuckInXuanKong:function(){return NineStarUtil.LUCK_XUAN_KONG[this._p.index];},\n getYinYangInQiMen:function(){return NineStarUtil.YIN_YANG_QI_MEN[this._p.index];},\n getTypeInTaiYi:function(){return NineStar.TYPE_TAI_YI[this._p.index];},\n getBaMenInQiMen:function(){return NineStar.BA_MEN_QI_MEN[this._p.index];},\n getSongInTaiYi:function(){return NineStar.SONG_TAI_YI[this._p.index];},\n getIndex:function(){return this._p.index;},\n toString:function(){return this.getNumber()+this.getColor()+this.getWuXing()+this.getNameInBeiDou();},\n toFullString:function(){\n var s = this.getNumber();\n s += this.getColor();\n s += this.getWuXing();\n s += ' ';\n s += this.getPosition();\n s += '(';\n s += this.getPositionDesc();\n s += ') ';\n s += this.getNameInBeiDou();\n s += ' 玄空[';\n s += this.getNameInXuanKong();\n s += ' ';\n s += this.getLuckInXuanKong();\n s += '] 奇门[';\n s += this.getNameInQiMen();\n s += ' ';\n s += this.getLuckInQiMen();\n if(this.getBaMenInQiMen().length>0) {\n s += ' ';\n s += this.getBaMenInQiMen();\n s += '门';\n }\n s += ' ';\n s += this.getYinYangInQiMen();\n s += '] 太乙[';\n s += this.getNameInTaiYi();\n s += ' ';\n s += this.getTypeInTaiYi();\n s += ']';\n return s;\n }\n };\n };\n return {\n NAME_BEI_DOU:['天枢','天璇','天玑','天权','玉衡','开阳','摇光','洞明','隐元'],\n NAME_XUAN_KONG:['贪狼','巨门','禄存','文曲','廉贞','武曲','破军','左辅','右弼'],\n NAME_QI_MEN:['天蓬','天芮','天冲','天辅','天禽','天心','天柱','天任','天英'],\n BA_MEN_QI_MEN:['休','死','伤','杜','','开','惊','生','景'],\n NAME_TAI_YI:['太乙','摄提','轩辕','招摇','天符','青龙','咸池','太阴','天乙'],\n TYPE_TAI_YI:['吉神','凶神','安神','安神','凶神','吉神','凶神','吉神','吉神'],\n SONG_TAI_YI:['门中太乙明,星官号贪狼,赌彩财喜旺,婚姻大吉昌,出入无阻挡,参谒见贤良,此行三五里,黑衣别阴阳。','门前见摄提,百事必忧疑,相生犹自可,相克祸必临,死门并相会,老妇哭悲啼,求谋并吉事,尽皆不相宜,只可藏隐遁,若动伤身疾。','出入会轩辕,凡事必缠牵,相生全不美,相克更忧煎,远行多不利,博彩尽输钱,九天玄女法,句句不虚言。','招摇号木星,当之事莫行,相克行人阻,阴人口舌迎,梦寐多惊惧,屋响斧自鸣,阴阳消息理,万法弗违情。','五鬼为天符,当门阴女谋,相克无好事,行路阻中途,走失难寻觅,道逢有尼姑,此星当门值,万事有灾除。','神光跃青龙,财气喜重重,投入有酒食,赌彩最兴隆,更逢相生旺,休言克破凶,见贵安营寨,万事总吉同。','吾将为咸池,当之尽不宜,出入多不利,相克有灾情,赌彩全输尽,求财空手回,仙人真妙语,愚人莫与知,动用虚惊退,反复逆风吹。','坐临太阴星,百祸不相侵,求谋悉成就,知交有觅寻,回风归来路,恐有殃伏起,密语中记取,慎乎莫轻行。','迎来天乙星,相逢百事兴,运用和合庆,茶酒喜相迎,求谋并嫁娶,好合有天成,祸福如神验,吉凶甚分明。'],\n LUCK_QI_MEN:['大凶','大凶','小吉','大吉','大吉','大吉','小凶','小吉','小凶'],\n fromIndex:function(index){return _fromIndex(index);}\n };\n })();\n var EightChar = (function(){\n var _fromLunar=function(lunar){\n return {\n _p:{sect:2,lunar:lunar},\n setSect:function(sect){\n sect *= 1;\n this._p.sect=(1===sect)?1:2;\n },\n getSect:function(){return this._p.sect;},\n getDayGanIndex:function(){return 2===this._p.sect?this._p.lunar.getDayGanIndexExact2():this._p.lunar.getDayGanIndexExact();},\n getDayZhiIndex:function(){return 2===this._p.sect?this._p.lunar.getDayZhiIndexExact2():this._p.lunar.getDayZhiIndexExact();},\n getYear:function(){return this._p.lunar.getYearInGanZhiExact();},\n getYearGan:function(){return this._p.lunar.getYearGanExact();},\n getYearZhi:function(){return this._p.lunar.getYearZhiExact();},\n getYearHideGan:function(){return LunarUtil.ZHI_HIDE_GAN[this.getYearZhi()];},\n getYearWuXing:function(){return LunarUtil.WU_XING_GAN[this.getYearGan()]+LunarUtil.WU_XING_ZHI[this.getYearZhi()];},\n getYearNaYin:function(){return LunarUtil.NAYIN[this.getYear()];},\n getYearShiShenGan:function(){return LunarUtil.SHI_SHEN[this.getDayGan()+this.getYearGan()];},\n getYearShiShenZhi:function(){\n var dayGan = this.getDayGan();\n var hideGan = LunarUtil.ZHI_HIDE_GAN[this.getYearZhi()];\n var l = [];\n for(var i=0,j=hideGan.length;i=12){\n index -= 12;\n }\n if(index<0){\n index += 12;\n }\n return LunarUtil.CHANG_SHENG[index];\n },\n getYearDiShi:function(){return this._getDiShi(this._p.lunar.getYearZhiIndexExact());},\n getYearXun:function(){return this._p.lunar.getYearXunExact()},\n getYearXunKong:function(){return this._p.lunar.getYearXunKongExact()},\n getMonth:function(){return this._p.lunar.getMonthInGanZhiExact();},\n getMonthGan:function(){return this._p.lunar.getMonthGanExact();},\n getMonthZhi:function(){return this._p.lunar.getMonthZhiExact();},\n getMonthHideGan:function(){return LunarUtil.ZHI_HIDE_GAN[this.getMonthZhi()];},\n getMonthWuXing:function(){return LunarUtil.WU_XING_GAN[this.getMonthGan()]+LunarUtil.WU_XING_ZHI[this.getMonthZhi()];},\n getMonthNaYin:function(){return LunarUtil.NAYIN[this.getMonth()];},\n getMonthShiShenGan:function(){return LunarUtil.SHI_SHEN[this.getDayGan()+this.getMonthGan()];},\n getMonthShiShenZhi:function(){\n var dayGan = this.getDayGan();\n var hideGan = LunarUtil.ZHI_HIDE_GAN[this.getMonthZhi()];\n var l = [];\n for(var i=0,j=hideGan.length;i=10){\n ganIndex -= 10;\n }\n var zhiIndex = this._p.lunar.getMonthZhiIndexExact() + 3;\n if(zhiIndex>=12){\n zhiIndex -= 12;\n }\n return LunarUtil.GAN[ganIndex+1]+LunarUtil.ZHI[zhiIndex+1];\n },\n getTaiYuanNaYin:function(){return LunarUtil.NAYIN[this.getTaiYuan()];},\n getTaiXi:function(){\n var lunar = this._p.lunar;\n var ganIndex = (2 === this._p.sect) ? lunar.getDayGanIndexExact2() : lunar.getDayGanIndexExact();\n var zhiIndex = (2 === this._p.sect) ? lunar.getDayZhiIndexExact2() : lunar.getDayZhiIndexExact();\n return LunarUtil.HE_GAN_5[ganIndex]+LunarUtil.HE_ZHI_6[zhiIndex];\n },\n getTaiXiNaYin:function(){return LunarUtil.NAYIN[this.getTaiXi()];},\n getMingGong:function(){\n var monthZhiIndex = LunarUtil.index(this.getMonthZhi(), LunarUtil.MONTH_ZHI, 0);\n var timeZhiIndex = LunarUtil.index(this.getTimeZhi(), LunarUtil.MONTH_ZHI, 0);\n var offset = monthZhiIndex + timeZhiIndex;\n offset = (offset >= 14 ? 26 : 14) - offset;\n var ganIndex = (this._p.lunar.getYearGanIndexExact() + 1) * 2 + offset;\n while (ganIndex > 10) {\n ganIndex -= 10;\n }\n return LunarUtil.GAN[ganIndex] + LunarUtil.MONTH_ZHI[offset];\n },\n getMingGongNaYin:function(){return LunarUtil.NAYIN[this.getMingGong()];},\n getShenGong:function(){\n var monthZhiIndex = LunarUtil.index(this.getMonthZhi(), LunarUtil.MONTH_ZHI, 0);\n var timeZhiIndex = LunarUtil.index(this.getTimeZhi(), LunarUtil.ZHI, 0);\n var offset = monthZhiIndex + timeZhiIndex;\n while (offset > 12) {\n offset -= 12;\n }\n var ganIndex = (this._p.lunar.getYearGanIndexExact() + 1) * 2 + (offset % 12);\n while (ganIndex > 10) {\n ganIndex -= 10;\n }\n return LunarUtil.GAN[ganIndex] + LunarUtil.MONTH_ZHI[offset];\n },\n getShenGongNaYin:function(){return LunarUtil.NAYIN[this.getShenGong()];},\n getLunar:function(){return this._p.lunar;},\n getYun:function(gender, sect){\n sect *= 1;\n sect = (2 === sect) ? sect : 1;\n var lunar = this.getLunar();\n var yang = 0 === lunar.getYearGanIndexExact() % 2;\n var man = 1 === gender;\n var forward = (yang && man) || (!yang && !man);\n var start = (function(){\n var prev = lunar.getPrevJie();\n var next = lunar.getNextJie();\n var current = lunar.getSolar();\n var start = forward ? current : prev.getSolar();\n var end = forward ? next.getSolar() : current;\n\n var year;\n var month;\n var day;\n var hour = 0;\n\n if (2 === sect) {\n var minutes = end.subtractMinute(start);\n year = Math.floor(minutes / 4320);\n minutes -= year * 4320;\n month = Math.floor(minutes / 360);\n minutes -= month * 360;\n day = Math.floor(minutes / 12);\n minutes -= day * 12;\n hour = minutes * 2;\n } else {\n var endTimeZhiIndex = (end.getHour() === 23) ? 11 : LunarUtil.getTimeZhiIndex(end.toYmdHms().substring(11, 16));\n var startTimeZhiIndex = (start.getHour() === 23) ? 11 : LunarUtil.getTimeZhiIndex(start.toYmdHms().substring(11, 16));\n // 时辰差\n var hourDiff = endTimeZhiIndex - startTimeZhiIndex;\n // 天数差\n var dayDiff = end.subtract(start);\n if (hourDiff < 0) {\n hourDiff += 12;\n dayDiff--;\n }\n var monthDiff = Math.floor(hourDiff * 10 / 30);\n month = dayDiff * 4 + monthDiff;\n day = hourDiff * 10 - monthDiff * 30;\n year = Math.floor(month / 12);\n month = month - year * 12;\n }\n\n return {\n year: year,\n month: month,\n day: day,\n hour: hour\n };\n })();\n var buildLiuYue = function(liuNian, index){\n return {\n _p: {\n index: index,\n liuNian: liuNian\n },\n getIndex:function(){return this._p.index;},\n getMonthInChinese:function(){return LunarUtil.MONTH[this._p.index + 1];},\n getGanZhi:function(){\n var yearGanIndex = LunarUtil.find(this._p.liuNian.getGanZhi(), LunarUtil.GAN).index - 1;\n var offset = [2, 4, 6, 8, 0][yearGanIndex % 5];\n var gan = LunarUtil.GAN[(this._p.index + offset) % 10 + 1];\n var zhi = LunarUtil.ZHI[(this._p.index + LunarUtil.BASE_MONTH_ZHI_INDEX) % 12 + 1];\n return gan + zhi;\n },\n getXun:function(){return LunarUtil.getXun(this.getGanZhi());},\n getXunKong:function(){return LunarUtil.getXunKong(this.getGanZhi());}\n };\n };\n var buildLiuNian = function(daYun, index){\n return {\n _p: {\n year: daYun.getStartYear() + index,\n age: daYun.getStartAge() + index,\n index: index,\n daYun: daYun,\n lunar: daYun.getLunar()\n },\n getYear: function(){return this._p.year;},\n getAge: function(){return this._p.age;},\n getIndex: function(){return this._p.index;},\n getLunar: function(){return this._p.lunar;},\n getGanZhi: function(){\n var offset = LunarUtil.getJiaZiIndex(this._p.lunar.getJieQiTable()[I18n.getMessage('jq.liChun')].getLunar().getYearInGanZhiExact()) + this._p.index;\n if (this._p.daYun.getIndex() > 0) {\n offset += this._p.daYun.getStartAge() - 1;\n }\n offset %= LunarUtil.JIA_ZI.length;\n return LunarUtil.JIA_ZI[offset];\n },\n getXun:function(){return LunarUtil.getXun(this.getGanZhi());},\n getXunKong:function(){return LunarUtil.getXunKong(this.getGanZhi());},\n getLiuYue: function(){\n var l = [];\n for (var i = 0; i < 12; i++) {\n l.push(buildLiuYue(this,i));\n }\n return l;\n }\n };\n };\n var buildXiaoYun = function(daYun, index, forward){\n return {\n _p: {\n year: daYun.getStartYear() + index,\n age: daYun.getStartAge() + index,\n index: index,\n daYun: daYun,\n forward: forward,\n lunar: daYun.getLunar()\n },\n getYear: function(){return this._p.year;},\n getAge: function(){return this._p.age;},\n getIndex: function(){return this._p.index;},\n getGanZhi: function(){\n var offset = LunarUtil.getJiaZiIndex(this._p.lunar.getTimeInGanZhi());\n var add = this._p.index + 1;\n if (this._p.daYun.getIndex() > 0) {\n add += this._p.daYun.getStartAge() - 1;\n }\n offset += this._p.forward ? add : -add;\n var size = LunarUtil.JIA_ZI.length;\n while (offset < 0) {\n offset += size;\n }\n offset %= size;\n return LunarUtil.JIA_ZI[offset];\n },\n getXun:function(){return LunarUtil.getXun(this.getGanZhi());},\n getXunKong:function(){return LunarUtil.getXunKong(this.getGanZhi());}\n };\n };\n var buildDaYun = function(yun, index){\n var birthYear = yun.getLunar().getSolar().getYear();\n var year = yun.getStartSolar().getYear();\n var startYear;\n var startAge;\n var endYear;\n var endAge;\n if (index < 1) {\n startYear = birthYear;\n startAge = 1;\n endYear = year - 1;\n endAge = year - birthYear;\n } else {\n var add = (index - 1) * 10;\n startYear = year + add;\n startAge = startYear - birthYear + 1;\n endYear = startYear + 9;\n endAge = startAge + 9;\n }\n return {\n _p: {\n startYear: startYear,\n endYear: endYear,\n startAge: startAge,\n endAge: endAge,\n index: index,\n yun: yun,\n lunar: yun.getLunar()\n },\n getStartYear: function(){return this._p.startYear;},\n getEndYear: function(){return this._p.endYear;},\n getStartAge: function(){return this._p.startAge;},\n getEndAge: function(){return this._p.endAge;},\n getIndex: function(){return this._p.index;},\n getLunar: function(){return this._p.lunar;},\n getGanZhi: function(){\n if (this._p.index < 1) {\n return '';\n }\n var offset = LunarUtil.getJiaZiIndex(this._p.lunar.getMonthInGanZhiExact());\n offset += this._p.yun.isForward() ? this._p.index : -this._p.index;\n var size = LunarUtil.JIA_ZI.length;\n if (offset >= size) {\n offset -= size;\n }\n if (offset < 0) {\n offset += size;\n }\n return LunarUtil.JIA_ZI[offset];\n },\n getXun:function(){return LunarUtil.getXun(this.getGanZhi());},\n getXunKong:function(){return LunarUtil.getXunKong(this.getGanZhi());},\n getLiuNian: function(n){\n if (!n) {\n n = 10;\n }\n if (this._p.index < 1) {\n n = this._p.endYear-this._p.startYear+1;\n }\n var l = [];\n for (var i = 0; i < n; i++) {\n l.push(buildLiuNian(this,i));\n }\n return l;\n },\n getXiaoYun: function(n){\n if (!n) {\n n = 10;\n }\n if (this._p.index < 1) {\n n = this._p.endYear-this._p.startYear+1;\n }\n var l = [];\n for (var i = 0; i < n; i++) {\n l.push(buildXiaoYun(this,i,this._p.yun.isForward()));\n }\n return l;\n }\n };\n };\n return {\n _p: {\n gender: gender,\n startYear: start.year,\n startMonth: start.month,\n startDay: start.day,\n startHour: start.hour,\n forward: forward,\n lunar: lunar\n },\n getGender: function(){return this._p.gender;},\n getStartYear: function(){return this._p.startYear;},\n getStartMonth: function(){return this._p.startMonth;},\n getStartDay: function(){return this._p.startDay;},\n getStartHour: function(){return this._p.startHour;},\n isForward: function(){return this._p.forward;},\n getLunar: function(){return this._p.lunar;},\n getStartSolar: function(){\n var solar = this._p.lunar.getSolar();\n solar = solar.nextYear(this._p.startYear);\n solar = solar.nextMonth(this._p.startMonth);\n solar = solar.next(this._p.startDay);\n return solar.nextHour(this._p.startHour);\n },\n getDaYun: function(n){\n if (!n) {\n n = 10;\n }\n var l = [];\n for (var i = 0; i < n; i++) {\n l.push(buildDaYun(this,i));\n }\n return l;\n }\n };\n },\n toString:function(){return this.getYear()+' '+this.getMonth()+' '+this.getDay()+' '+this.getTime();}\n };\n };\n return {\n fromLunar:function(lunar){return _fromLunar(lunar);}\n };\n })();\n var LunarTime = (function(){\n var _fromYmdHms=function(lunarYear,lunarMonth,lunarDay,hour,minute,second){\n var lunar=Lunar.fromYmdHms(lunarYear,lunarMonth,lunarDay,hour,minute,second);\n var zhiIndex=LunarUtil.getTimeZhiIndex([(hour<10?'0':'')+hour,(minute<10?'0':'')+minute].join(':'));\n var ganIndex = (lunar.getDayGanIndexExact() % 5 * 2 + zhiIndex) % 10;\n return {\n _p:{\n ganIndex:ganIndex,\n zhiIndex:zhiIndex,\n lunar:lunar\n },\n getGanIndex:function(){return this._p.ganIndex;},\n getZhiIndex:function(){return this._p.zhiIndex;},\n getGan:function(){return LunarUtil.GAN[this._p.ganIndex+1];},\n getZhi:function(){return LunarUtil.ZHI[this._p.zhiIndex+1];},\n getGanZhi:function(){return this.getGan()+this.getZhi();},\n getShengXiao:function(){return LunarUtil.SHENGXIAO[this._p.zhiIndex+1];},\n getPositionXi:function(){return LunarUtil.POSITION_XI[this._p.ganIndex + 1];},\n getPositionXiDesc:function(){return LunarUtil.POSITION_DESC[this.getPositionXi()];},\n getPositionYangGui:function(){return LunarUtil.POSITION_YANG_GUI[this._p.ganIndex + 1];},\n getPositionYangGuiDesc:function(){return LunarUtil.POSITION_DESC[this.getPositionYangGui()];},\n getPositionYinGui:function(){return LunarUtil.POSITION_YIN_GUI[this._p.ganIndex + 1];},\n getPositionYinGuiDesc:function(){return LunarUtil.POSITION_DESC[this.getPositionYinGui()];},\n getPositionFu:function(sect){return (1===sect?LunarUtil.POSITION_FU:LunarUtil.POSITION_FU_2)[this._p.ganIndex + 1];},\n getPositionFuDesc:function(sect){return LunarUtil.POSITION_DESC[this.getPositionFu(sect)];},\n getPositionCai:function(){return LunarUtil.POSITION_CAI[this._p.ganIndex + 1];},\n getPositionCaiDesc:function(){return LunarUtil.POSITION_DESC[this.getPositionCai()];},\n getNaYin:function(){return LunarUtil.NAYIN[this.getGanZhi()];},\n getTianShen:function(){\n return LunarUtil.TIAN_SHEN[(this._p.zhiIndex + LunarUtil.ZHI_TIAN_SHEN_OFFSET[this._p.lunar.getDayZhiExact()]) % 12 + 1];\n },\n getTianShenType:function(){return LunarUtil.TIAN_SHEN_TYPE[this.getTianShen()];},\n getTianShenLuck:function(){return LunarUtil.TIAN_SHEN_TYPE_LUCK[this.getTianShenType()];},\n getChong:function(){return LunarUtil.CHONG[this._p.zhiIndex];},\n getSha:function(){return LunarUtil.SHA[this.getZhi()];},\n getChongShengXiao:function(){\n var chong = this.getChong();\n for (var i = 0, j = LunarUtil.ZHI.length; i < j; i++) {\n if (LunarUtil.ZHI[i]===chong) {\n return LunarUtil.SHENGXIAO[i];\n }\n }\n return '';\n },\n getChongDesc:function(){return '(' + this.getChongGan() + this.getChong() + ')' + this.getChongShengXiao();},\n getChongGan:function(){return LunarUtil.CHONG_GAN[this._p.ganIndex];},\n getChongGanTie:function(){return LunarUtil.CHONG_GAN_TIE[this._p.ganIndex];},\n getYi:function(){return LunarUtil.getTimeYi(this._p.lunar.getDayInGanZhiExact(), this.getGanZhi());},\n getJi:function(){return LunarUtil.getTimeJi(this._p.lunar.getDayInGanZhiExact(), this.getGanZhi());},\n getNineStar:function(){\n var solarYmd = this._p.lunar.getSolar().toYmd();\n var jieQi = this._p.lunar.getJieQiTable();\n var asc = false;\n if (solarYmd>=jieQi[I18n.getMessage('jq.dongZhi')].toYmd() && solarYmd 22){\n return '23:00';\n }\n if(hour%2===0){\n hour-=1;\n }\n return (hour<10?'0':'')+hour+':00';\n },\n getMaxHm:function(){\n var hour = this._p.lunar.getHour();\n if (hour <1){\n return '00:59';\n } else if (hour > 22) {\n return '23:59';\n }\n if(hour%2!==0){\n hour+=1;\n }\n return (hour<10?'0':'')+hour+':59';\n },\n toString:function(){return this.getGanZhi();}\n };\n };\n return {\n fromYmdHms:function(lunarYear,lunarMonth,lunarDay,hour,minute,second){return _fromYmdHms(lunarYear,lunarMonth,lunarDay,hour,minute,second);}\n };\n })();\n var FotoUtil = (function(){\n var XIU_OFFSET = [11, 13, 15, 17, 19, 21, 24, 0, 2, 4, 7, 9];\n var _f=function(name,result,everyMonth,remark){\n return {\n _p:{\n name:name,\n result:result?result:'',\n everyMonth:!!everyMonth,\n remark:remark?remark:''\n },\n getName:function(){return this._p.name;},\n getResult:function(){return this._p.result;},\n isEveryMonth:function(){return this._p.everyMonth;},\n getRemark:function(){return this._p.remark;},\n toString:function(){return this._p.name;},\n toFullString:function(){\n var l = [this._p.name];\n if(this._p.result) {\n l.push(this._p.result);\n }\n if(this._p.remark) {\n l.push(this._p.remark);\n }\n return l.join(' ');\n }\n };\n };\n var _getXiu=function(m,d){\n return FotoUtil.XIU_27[(XIU_OFFSET[Math.abs(m)-1] + d - 1) % FotoUtil.XIU_27.length];\n };\n var dj='犯者夺纪';\n var js='犯者减寿';\n var ss='犯者损寿';\n var xl='犯者削禄夺纪';\n var jw='犯者三年内夫妇俱亡';\n var _y=_f('杨公忌');\n var _t=_f('四天王巡行', '', true);\n var _d=_f('斗降', dj, true);\n var _s=_f('月朔', dj, true);\n var _w=_f('月望', dj, true);\n var _h=_f('月晦', js, true);\n var _l=_f('雷斋日', js, true);\n var _j=_f('九毒日', '犯者夭亡,奇祸不测');\n var _r=_f('人神在阴', '犯者得病', true, '宜先一日即戒');\n var _m=_f('司命奏事', js, true, '如月小,即戒廿九');\n var _hh=_f('月晦', js, true, '如月小,即戒廿九');\n return {\n XIU_27:[\n '{xx.jiao}',\n '{xx.kang}',\n '{xx.di}',\n '{xx.fang}',\n '{xx.xin}',\n '{xx.tail}',\n '{xx.ji}',\n '{xx.dou}',\n '{xx.nv}',\n '{xx.xu}',\n '{xx.wei}',\n '{xx.shi}',\n '{xx.qiang}',\n '{xx.kui}',\n '{xx.lou}',\n '{xx.vei}',\n '{xx.mao}',\n '{xx.bi}',\n '{xx.zi}',\n '{xx.can}',\n '{xx.jing}',\n '{xx.gui}',\n '{xx.liu}',\n '{xx.xing}',\n '{xx.zhang}',\n '{xx.yi}',\n '{xx.zhen}'\n ],\n DAY_ZHAI_GUAN_YIN:['1-8','2-7','2-9','2-19','3-3','3-6','3-13','4-22','5-3','5-17','6-16','6-18','6-19','6-23','7-13','8-16','9-19','9-23','10-2','11-19','11-24','12-25'],\n FESTIVAL:{\n '1-1': [_f('天腊,玉帝校世人神气禄命', xl), _s],\n '1-3': [_f('万神都会', dj), _d],\n '1-5': [_f('五虚忌')],\n '1-6': [_f('六耗忌'), _l],\n '1-7': [_f('上会日', ss)],\n '1-8': [_f('五殿阎罗天子诞', dj), _t],\n '1-9': [_f('玉皇上帝诞', dj)],\n '1-13': [_y],\n '1-14': [_f('三元降', js), _t],\n '1-15': [_f('三元降', js), _f('上元神会', dj), _w, _t],\n '1-16': [_f('三元降', js)],\n '1-19': [_f('长春真人诞')],\n '1-23': [_f('三尸神奏事'), _t],\n '1-25': [_h, _f('天地仓开日', '犯者损寿,子带疾')],\n '1-27': [_d],\n '1-28': [_r],\n '1-29': [_t],\n '1-30': [_hh, _m, _t],\n '2-1': [_f('一殿秦广王诞', dj), _s],\n '2-2': [_f('万神都会', dj), _f('福德土地正神诞', '犯者得祸')],\n '2-3': [_f('文昌帝君诞', xl), _d],\n '2-6': [_f('东华帝君诞'), _l],\n '2-8': [_f('释迦牟尼佛出家', dj), _f('三殿宋帝王诞', dj), _f('张大帝诞', dj), _t],\n '2-11': [_y],\n '2-14': [_t],\n '2-15': [_f('释迦牟尼佛涅槃', xl), _f('太上老君诞', xl), _f('月望', xl, true), _t],\n '2-17': [_f('东方杜将军诞')],\n '2-18': [_f('四殿五官王诞', xl), _f('至圣先师孔子讳辰', xl)],\n '2-19': [_f('观音大士诞', dj)],\n '2-21': [_f('普贤菩萨诞')],\n '2-23': [_t],\n '2-25': [_h],\n '2-27': [_d],\n '2-28': [_r],\n '2-29': [_t],\n '2-30': [_hh, _m, _t],\n '3-1': [_f('二殿楚江王诞', dj), _s],\n '3-3': [_f('玄天上帝诞', dj), _d],\n '3-6': [_l],\n '3-8': [_f('六殿卞城王诞', dj), _t],\n '3-9': [_f('牛鬼神出', '犯者产恶胎'), _y],\n '3-12': [_f('中央五道诞')],\n '3-14': [_t],\n '3-15': [_f('昊天上帝诞', dj), _f('玄坛诞', dj), _w, _t],\n '3-16': [_f('准提菩萨诞', dj)],\n '3-19': [_f('中岳大帝诞'), _f('后土娘娘诞'), _f('三茅降')],\n '3-20': [_f('天地仓开日', ss), _f('子孙娘娘诞')],\n '3-23': [_t],\n '3-25': [_h],\n '3-27': [_f('七殿泰山王诞'), _d],\n '3-28': [_r, _f('苍颉至圣先师诞', xl), _f('东岳大帝诞')],\n '3-29': [_t],\n '3-30': [_hh, _m, _t],\n '4-1': [_f('八殿都市王诞', dj), _s],\n '4-3': [_d],\n '4-4': [_f('万神善会', '犯者失瘼夭胎'), _f('文殊菩萨诞')],\n '4-6': [_l],\n '4-7': [_f('南斗、北斗、西斗同降', js), _y],\n '4-8': [_f('释迦牟尼佛诞', dj), _f('万神善会', '犯者失瘼夭胎'), _f('善恶童子降', '犯者血死'), _f('九殿平等王诞'), _t],\n '4-14': [_f('纯阳祖师诞', js), _t],\n '4-15': [_w, _f('钟离祖师诞'), _t],\n '4-16': [_f('天地仓开日', ss)],\n '4-17': [_f('十殿转轮王诞', dj)],\n '4-18': [_f('天地仓开日', ss), _f('紫徽大帝诞', ss)],\n '4-20': [_f('眼光圣母诞')],\n '4-23': [_t],\n '4-25': [_h],\n '4-27': [_d],\n '4-28': [_r],\n '4-29': [_t],\n '4-30': [_hh, _m, _t],\n '5-1': [_f('南极长生大帝诞', dj), _s],\n '5-3': [_d],\n '5-5': [_f('地腊', xl), _f('五帝校定生人官爵', xl), _j, _y],\n '5-6': [_j, _l],\n '5-7': [_j],\n '5-8': [_f('南方五道诞'), _t],\n '5-11': [_f('天地仓开日', ss),_f('天下都城隍诞')],\n '5-12': [_f('炳灵公诞')],\n '5-13': [_f('关圣降', xl)],\n '5-14': [_f('夜子时为天地交泰', jw), _t],\n '5-15': [_w, _j, _t],\n '5-16': [_f('九毒日', jw), _f('天地元气造化万物之辰', jw)],\n '5-17': [_j],\n '5-18': [_f('张天师诞')],\n '5-22': [_f('孝娥神诞', dj)],\n '5-23': [_t],\n '5-25': [_j, _h],\n '5-26': [_j],\n '5-27': [_j, _d],\n '5-28': [_r],\n '5-29': [_t],\n '5-30': [_hh, _m, _t],\n '6-1': [_s],\n '6-3': [_f('韦驮菩萨圣诞'), _d, _y],\n '6-5': [_f('南赡部洲转大轮', ss)],\n '6-6': [_f('天地仓开日', ss), _l],\n '6-8': [_t],\n '6-10': [_f('金粟如来诞')],\n '6-14': [_t],\n '6-15': [_w, _t],\n '6-19': [_f('观世音菩萨成道', dj)],\n '6-23': [_f('南方火神诞', '犯者遭回禄'), _t],\n '6-24': [_f('雷祖诞', xl), _f('关帝诞', xl)],\n '6-25': [_h],\n '6-27': [_d],\n '6-28': [_r],\n '6-29': [_t],\n '6-30': [_hh, _m, _t],\n '7-1': [_s, _y],\n '7-3': [_d],\n '7-5': [_f('中会日', ss, false, '一作初七')],\n '7-6': [_l],\n '7-7': [_f('道德腊', xl), _f('五帝校生人善恶', xl), _f('魁星诞', xl)],\n '7-8': [_t],\n '7-10': [_f('阴毒日', '', false, '大忌')],\n '7-12': [_f('长真谭真人诞')],\n '7-13': [_f('大势至菩萨诞', js)],\n '7-14': [_f('三元降', js), _t],\n '7-15': [_w, _f('三元降', dj),_f('地官校籍', dj), _t],\n '7-16': [_f('三元降', js)],\n '7-18': [_f('西王母诞', dj)],\n '7-19': [_f('太岁诞', dj)],\n '7-22': [_f('增福财神诞', xl)],\n '7-23': [_t],\n '7-25': [_h],\n '7-27': [_d],\n '7-28': [_r],\n '7-29': [_y, _t],\n '7-30': [_f('地藏菩萨诞', dj), _hh, _m, _t],\n '8-1': [_s, _f('许真君诞')],\n '8-3': [_d, _f('北斗诞', xl), _f('司命灶君诞', '犯者遭回禄')],\n '8-5': [_f('雷声大帝诞', dj)],\n '8-6': [_l],\n '8-8': [_t],\n '8-10': [_f('北斗大帝诞')],\n '8-12': [_f('西方五道诞')],\n '8-14': [_t],\n '8-15': [_w, _f('太明朝元', '犯者暴亡', false, '宜焚香守夜'), _t],\n '8-16': [_f('天曹掠刷真君降', '犯者贫夭')],\n '8-18': [_f('天人兴福之辰', '', false, '宜斋戒,存想吉事')],\n '8-23': [_f('汉恒候张显王诞'), _t],\n '8-24': [_f('灶君夫人诞')],\n '8-25': [_h],\n '8-27': [_d, _f('至圣先师孔子诞', xl), _y],\n '8-28': [_r, _f('四天会事')],\n '8-29': [_t],\n '8-30': [_f('诸神考校', '犯者夺算'), _hh, _m, _t],\n '9-1': [_s, _f('南斗诞', xl), _f('北斗九星降世', dj, false, '此九日俱宜斋戒')],\n '9-3': [_d, _f('五瘟神诞')],\n '9-6': [_l],\n '9-8': [_t],\n '9-9': [_f('斗母诞', xl), _f('酆都大帝诞'), _f('玄天上帝飞升')],\n '9-10': [_f('斗母降', dj)],\n '9-11': [_f('宜戒')],\n '9-13': [_f('孟婆尊神诞')],\n '9-14': [_t],\n '9-15': [_w, _t],\n '9-17': [_f('金龙四大王诞', '犯者遭水厄')],\n '9-19': [_f('日宫月宫会合', js), _f('观世音菩萨诞', js)],\n '9-23': [_t],\n '9-25': [_h, _y],\n '9-27': [_d],\n '9-28': [_r],\n '9-29': [_t],\n '9-30': [_f('药师琉璃光佛诞', '犯者危疾'), _hh, _m, _t],\n '10-1': [_s, _f('民岁腊', dj), _f('四天王降', '犯者一年内死')],\n '10-3': [_d, _f('三茅诞')],\n '10-5': [_f('下会日', js), _f('达摩祖师诞', js)],\n '10-6': [_l, _f('天曹考察', dj)],\n '10-8': [_f('佛涅槃日', '', false, '大忌色欲'), _t],\n '10-10': [_f('四天王降', '犯者一年内死')],\n '10-11': [_f('宜戒')],\n '10-14': [_f('三元降', js), _t],\n '10-15': [_w, _f('三元降', dj), _f('下元水府校籍', dj), _t],\n '10-16': [_f('三元降', js), _t],\n '10-23': [_y, _t],\n '10-25': [_h],\n '10-27': [_d, _f('北极紫徽大帝降')],\n '10-28': [_r],\n '10-29': [_t],\n '10-30': [_hh, _m, _t],\n '11-1': [_s],\n '11-3': [_d],\n '11-4': [_f('至圣先师孔子诞', xl)],\n '11-6': [_f('西岳大帝诞')],\n '11-8': [_t],\n '11-11': [_f('天地仓开日', dj), _f('太乙救苦天尊诞', dj)],\n '11-14': [_t],\n '11-15': [_f('月望', '上半夜犯男死 下半夜犯女死'), _f('四天王巡行', '上半夜犯男死 下半夜犯女死')],\n '11-17': [_f('阿弥陀佛诞')],\n '11-19': [_f('太阳日宫诞', '犯者得奇祸')],\n '11-21': [_y],\n '11-23': [_f('张仙诞', '犯者绝嗣'), _t],\n '11-25': [_f('掠刷大夫降', '犯者遭大凶'), _h],\n '11-26': [_f('北方五道诞')],\n '11-27': [_d],\n '11-28': [_r],\n '11-29': [_t],\n '11-30': [_hh, _m, _t],\n '12-1': [_s],\n '12-3': [_d],\n '12-6': [_f('天地仓开日', js), _l],\n '12-7': [_f('掠刷大夫降', '犯者得恶疾')],\n '12-8': [_f('王侯腊', dj), _f('释迦如来成佛之辰'), _t, _f('初旬内戊日,亦名王侯腊', dj)],\n '12-12': [_f('太素三元君朝真')],\n '12-14': [_t],\n '12-15': [_w, _t],\n '12-16': [_f('南岳大帝诞')],\n '12-19': [_y],\n '12-20': [_f('天地交道', '犯者促寿')],\n '12-21': [_f('天猷上帝诞')],\n '12-23': [_f('五岳诞降'), _t],\n '12-24': [_f('司今朝天奏人善恶', '犯者得大祸')],\n '12-25': [_f('三清玉帝同降,考察善恶', '犯者得奇祸'), _h],\n '12-27': [_d],\n '12-28': [_r],\n '12-29': [_f('华严菩萨诞'), _t],\n '12-30': [_f('诸神下降,察访善恶', '犯者男女俱亡')]\n },\n OTHER_FESTIVAL:{\n '1-1': ['弥勒菩萨圣诞'],\n '1-6': ['定光佛圣诞'],\n '2-8': ['释迦牟尼佛出家'],\n '2-15': ['释迦牟尼佛涅槃'],\n '2-19': ['观世音菩萨圣诞'],\n '2-21': ['普贤菩萨圣诞'],\n '3-16': ['准提菩萨圣诞'],\n '4-4': ['文殊菩萨圣诞'],\n '4-8': ['释迦牟尼佛圣诞'],\n '4-15': ['佛吉祥日'],\n '4-28': ['药王菩萨圣诞'],\n '5-13': ['伽蓝菩萨圣诞'],\n '6-3': ['韦驮菩萨圣诞'],\n '6-19': ['观音菩萨成道'],\n '7-13': ['大势至菩萨圣诞'],\n '7-15': ['佛欢喜日'],\n '7-24': ['龙树菩萨圣诞'],\n '7-30': ['地藏菩萨圣诞'],\n '8-15': ['月光菩萨圣诞'],\n '8-22': ['燃灯佛圣诞'],\n '9-9': ['摩利支天菩萨圣诞'],\n '9-19': ['观世音菩萨出家'],\n '9-30': ['药师琉璃光佛圣诞'],\n '10-5': ['达摩祖师圣诞'],\n '10-20': ['文殊菩萨出家'],\n '11-17': ['阿弥陀佛圣诞'],\n '11-19': ['日光菩萨圣诞'],\n '12-8': ['释迦牟尼佛成道'],\n '12-23': ['监斋菩萨圣诞'],\n '12-29': ['华严菩萨圣诞']\n },\n getXiu:function(m,d){return _getXiu(m,d);}\n }\n })();\n var Foto = (function(){\n var _fromYmdHms=function(y,m,d,hour,minute,second){\n return _fromLunar(Lunar.fromYmdHms(y+Foto.DEAD_YEAR-1,m,d,hour,minute,second));\n };\n var _fromLunar=function(lunar){\n return {\n _p: {\n lunar: lunar\n },\n getLunar:function(){return this._p.lunar;},\n getYear:function(){\n var sy = this._p.lunar.getSolar().getYear();\n var y = sy-Foto.DEAD_YEAR;\n if(sy===this._p.lunar.getYear()){\n y++;\n }\n return y;\n },\n getMonth:function(){return this._p.lunar.getMonth();},\n getDay:function(){return this._p.lunar.getDay();},\n getYearInChinese:function(){\n var y = this.getYear()+'';\n var s = '';\n var zero = '0'.charCodeAt(0);\n for(var i=0,j=y.length;i -1) {\n if (I18n.getMessage('jz.wuYin') === dgz) {\n ret = true;\n }\n } else if ([I18n.getMessage('dz.si'), I18n.getMessage('dz.wu'), I18n.getMessage('dz.wei')].join(',').indexOf(mz) > -1) {\n if (I18n.getMessage('jz.jiaWu') === dgz) {\n ret = true;\n }\n } else if ([I18n.getMessage('dz.shen'), I18n.getMessage('dz.you'), I18n.getMessage('dz.xu')].join(',').indexOf(mz) > -1) {\n if (I18n.getMessage('jz.wuShen') === dgz) {\n ret = true;\n }\n } else if ([I18n.getMessage('dz.hai'), I18n.getMessage('dz.zi'), I18n.getMessage('dz.chou')].join(',').indexOf(mz) > -1) {\n if (I18n.getMessage('jz.jiaZi') === dgz) {\n ret = true;\n }\n }\n return ret;\n },\n toString:function(){\n return this.getYearInChinese()+'年'+this.getMonthInChinese()+'月'+this.getDayInChinese();\n },\n toFullString:function(){\n return '道歷'+this.getYearInChinese()+'年,天運'+this._p.lunar.getYearInGanZhi()+'年,'+this._p.lunar.getMonthInGanZhi()+'月,'+this._p.lunar.getDayInGanZhi()+'日。'+this.getMonthInChinese()+'月'+this.getDayInChinese()+'日,'+this._p.lunar.getTimeZhi()+'時。';\n }\n };\n };\n return {\n BIRTH_YEAR:-2697,\n fromYmdHms:function(y,m,d,hour,minute,second){return _fromYmdHms(y,m,d,hour,minute,second);},\n fromYmd:function(y,m,d){return _fromYmdHms(y,m,d,0,0,0);},\n fromLunar:function(lunar){return _fromLunar(lunar);}\n };\n })();\n var I18n = (function(){\n var _defaultLang = 'chs';\n var _lang = _defaultLang;\n var _inited = false;\n var _messages = {\n 'chs': {\n 'tg.jia': '甲',\n 'tg.yi': '乙',\n 'tg.bing': '丙',\n 'tg.ding': '丁',\n 'tg.wu': '戊',\n 'tg.ji': '己',\n 'tg.geng': '庚',\n 'tg.xin': '辛',\n 'tg.ren': '壬',\n 'tg.gui': '癸',\n 'dz.zi': '子',\n 'dz.chou': '丑',\n 'dz.yin': '寅',\n 'dz.mao': '卯',\n 'dz.chen': '辰',\n 'dz.si': '巳',\n 'dz.wu': '午',\n 'dz.wei': '未',\n 'dz.shen': '申',\n 'dz.you': '酉',\n 'dz.xu': '戌',\n 'dz.hai': '亥',\n 'zx.jian': '建',\n 'zx.chu': '除',\n 'zx.man': '满',\n 'zx.ping': '平',\n 'zx.ding': '定',\n 'zx.zhi': '执',\n 'zx.po': '破',\n 'zx.wei': '危',\n 'zx.cheng': '成',\n 'zx.shou': '收',\n 'zx.kai': '开',\n 'zx.bi': '闭',\n 'jz.jiaZi': '甲子',\n 'jz.yiChou': '乙丑',\n 'jz.bingYin': '丙寅',\n 'jz.dingMao': '丁卯',\n 'jz.wuChen': '戊辰',\n 'jz.jiSi': '己巳',\n 'jz.gengWu': '庚午',\n 'jz.xinWei': '辛未',\n 'jz.renShen': '壬申',\n 'jz.guiYou': '癸酉',\n 'jz.jiaXu': '甲戌',\n 'jz.yiHai': '乙亥',\n 'jz.bingZi': '丙子',\n 'jz.dingChou': '丁丑',\n 'jz.wuYin': '戊寅',\n 'jz.jiMao': '己卯',\n 'jz.gengChen': '庚辰',\n 'jz.xinSi': '辛巳',\n 'jz.renWu': '壬午',\n 'jz.guiWei': '癸未',\n 'jz.jiaShen': '甲申',\n 'jz.yiYou': '乙酉',\n 'jz.bingXu': '丙戌',\n 'jz.dingHai': '丁亥',\n 'jz.wuZi': '戊子',\n 'jz.jiChou': '己丑',\n 'jz.gengYin': '庚寅',\n 'jz.xinMao': '辛卯',\n 'jz.renChen': '壬辰',\n 'jz.guiSi': '癸巳',\n 'jz.jiaWu': '甲午',\n 'jz.yiWei': '乙未',\n 'jz.bingShen': '丙申',\n 'jz.dingYou': '丁酉',\n 'jz.wuXu': '戊戌',\n 'jz.jiHai': '己亥',\n 'jz.gengZi': '庚子',\n 'jz.xinChou': '辛丑',\n 'jz.renYin': '壬寅',\n 'jz.guiMao': '癸卯',\n 'jz.jiaChen': '甲辰',\n 'jz.yiSi': '乙巳',\n 'jz.bingWu': '丙午',\n 'jz.dingWei': '丁未',\n 'jz.wuShen': '戊申',\n 'jz.jiYou': '己酉',\n 'jz.gengXu': '庚戌',\n 'jz.xinHai': '辛亥',\n 'jz.renZi': '壬子',\n 'jz.guiChou': '癸丑',\n 'jz.jiaYin': '甲寅',\n 'jz.yiMao': '乙卯',\n 'jz.bingChen': '丙辰',\n 'jz.dingSi': '丁巳',\n 'jz.wuWu': '戊午',\n 'jz.jiWei': '己未',\n 'jz.gengShen': '庚申',\n 'jz.xinYou': '辛酉',\n 'jz.renXu': '壬戌',\n 'jz.guiHai': '癸亥',\n 'sx.rat': '鼠',\n 'sx.ox': '牛',\n 'sx.tiger': '虎',\n 'sx.rabbit': '兔',\n 'sx.dragon': '龙',\n 'sx.snake': '蛇',\n 'sx.horse': '马',\n 'sx.goat': '羊',\n 'sx.monkey': '猴',\n 'sx.rooster': '鸡',\n 'sx.dog': '狗',\n 'sx.pig': '猪',\n 'dw.long': '龙',\n 'dw.niu': '牛',\n 'dw.gou': '狗',\n 'dw.yang': '羊',\n 'dw.tu': '兔',\n 'dw.shu': '鼠',\n 'dw.ji': '鸡',\n 'dw.ma': '马',\n 'dw.hu': '虎',\n 'dw.zhu': '猪',\n 'dw.hou': '猴',\n 'dw.she': '蛇',\n 'dw.huLi': '狐',\n 'dw.yan': '燕',\n 'dw.bao': '豹',\n 'dw.yuan': '猿',\n 'dw.yin': '蚓',\n 'dw.lu': '鹿',\n 'dw.wu': '乌',\n 'dw.jiao': '蛟',\n 'dw.lang': '狼',\n 'dw.fu': '蝠',\n 'dw.zhang': '獐',\n 'dw.xu': '獝',\n 'dw.xie': '獬',\n 'dw.han': '犴',\n 'dw.he': '貉',\n 'dw.zhi': '彘',\n 'wx.jin': '金',\n 'wx.mu': '木',\n 'wx.shui': '水',\n 'wx.huo': '火',\n 'wx.tu': '土',\n 'wx.ri': '日',\n 'wx.yue': '月',\n 'n.zero': '〇',\n 'n.one': '一',\n 'n.two': '二',\n 'n.three': '三',\n 'n.four': '四',\n 'n.five': '五',\n 'n.six': '六',\n 'n.seven': '七',\n 'n.eight': '八',\n 'n.nine': '九',\n 'n.ten': '十',\n 'n.eleven': '十一',\n 'n.twelve': '十二',\n 'd.one': '初一',\n 'd.two': '初二',\n 'd.three': '初三',\n 'd.four': '初四',\n 'd.five': '初五',\n 'd.six': '初六',\n 'd.seven': '初七',\n 'd.eight': '初八',\n 'd.nine': '初九',\n 'd.ten': '初十',\n 'd.eleven': '十一',\n 'd.twelve': '十二',\n 'd.thirteen': '十三',\n 'd.fourteen': '十四',\n 'd.fifteen': '十五',\n 'd.sixteen': '十六',\n 'd.seventeen': '十七',\n 'd.eighteen': '十八',\n 'd.nighteen': '十九',\n 'd.twenty': '二十',\n 'd.twentyOne': '廿一',\n 'd.twentyTwo': '廿二',\n 'd.twentyThree': '廿三',\n 'd.twentyFour': '廿四',\n 'd.twentyFive': '廿五',\n 'd.twentySix': '廿六',\n 'd.twentySeven': '廿七',\n 'd.twentyEight': '廿八',\n 'd.twentyNine': '廿九',\n 'd.thirty': '三十',\n 'm.one': '正',\n 'm.two': '二',\n 'm.three': '三',\n 'm.four': '四',\n 'm.five': '五',\n 'm.six': '六',\n 'm.seven': '七',\n 'm.eight': '八',\n 'm.nine': '九',\n 'm.ten': '十',\n 'm.eleven': '冬',\n 'm.twelve': '腊',\n 'w.sun': '日',\n 'w.mon': '一',\n 'w.tues': '二',\n 'w.wed': '三',\n 'w.thur': '四',\n 'w.fri': '五',\n 'w.sat': '六',\n 'xz.aries': '白羊',\n 'xz.taurus': '金牛',\n 'xz.gemini': '双子',\n 'xz.cancer': '巨蟹',\n 'xz.leo': '狮子',\n 'xz.virgo': '处女',\n 'xz.libra': '天秤',\n 'xz.scorpio': '天蝎',\n 'xz.sagittarius': '射手',\n 'xz.capricornus': '摩羯',\n 'xz.aquarius': '水瓶',\n 'xz.pisces': '双鱼',\n 'bg.qian': '乾',\n 'bg.kun': '坤',\n 'bg.zhen': '震',\n 'bg.xun': '巽',\n 'bg.kan': '坎',\n 'bg.li': '离',\n 'bg.gen': '艮',\n 'bg.dui': '兑',\n 'ps.center': '中',\n 'ps.dong': '东',\n 'ps.nan': '南',\n 'ps.xi': '西',\n 'ps.bei': '北',\n 'ps.zhong': '中宫',\n 'ps.zhengDong': '正东',\n 'ps.zhengNan': '正南',\n 'ps.zhengXi': '正西',\n 'ps.zhengBei': '正北',\n 'ps.dongBei': '东北',\n 'ps.dongNan': '东南',\n 'ps.xiBei': '西北',\n 'ps.xiNan': '西南',\n 'ps.wai': '外',\n 'ps.fangNei': '房内',\n 'jq.dongZhi': '冬至',\n 'jq.xiaoHan': '小寒',\n 'jq.daHan': '大寒',\n 'jq.liChun': '立春',\n 'jq.yuShui': '雨水',\n 'jq.jingZhe': '惊蛰',\n 'jq.chunFen': '春分',\n 'jq.qingMing': '清明',\n 'jq.guYu': '谷雨',\n 'jq.liXia': '立夏',\n 'jq.xiaoMan': '小满',\n 'jq.mangZhong': '芒种',\n 'jq.xiaZhi': '夏至',\n 'jq.xiaoShu': '小暑',\n 'jq.daShu': '大暑',\n 'jq.liQiu': '立秋',\n 'jq.chuShu': '处暑',\n 'jq.baiLu': '白露',\n 'jq.qiuFen': '秋分',\n 'jq.hanLu': '寒露',\n 'jq.shuangJiang': '霜降',\n 'jq.liDong': '立冬',\n 'jq.xiaoXue': '小雪',\n 'jq.daXue': '大雪',\n 'sn.qingLong': '青龙',\n 'sn.baiHu': '白虎',\n 'sn.zhuQue': '朱雀',\n 'sn.xuanWu': '玄武',\n 'sn.mingTang': '明堂',\n 'sn.tianXing': '天刑',\n 'sn.tianDe': '天德',\n 'sn.jinKui': '金匮',\n 'sn.yuTang': '玉堂',\n 'sn.siMing': '司命',\n 'sn.tianLao': '天牢',\n 'sn.gouChen': '勾陈',\n 'sn.tianEn': '天恩',\n 'sn.muCang': '母仓',\n 'sn.shiYang': '时阳',\n 'sn.shengQi': '生气',\n 'sn.yiHou': '益后',\n 'sn.zaiSha': '灾煞',\n 'sn.tianHuo': '天火',\n 'sn.siJi': '四忌',\n 'sn.baLong': '八龙',\n 'sn.fuRi': '复日',\n 'sn.xuShi': '续世',\n 'sn.yueSha': '月煞',\n 'sn.yueXu': '月虚',\n 'sn.xueZhi': '血支',\n 'sn.tianZei': '天贼',\n 'sn.wuXu': '五虚',\n 'sn.tuFu': '土符',\n 'sn.guiJi': '归忌',\n 'sn.xueJi': '血忌',\n 'sn.yueDe': '月德',\n 'sn.yueEn': '月恩',\n 'sn.siXiang': '四相',\n 'sn.wangRi': '王日',\n 'sn.tianCang': '天仓',\n 'sn.buJiang': '不将',\n 'sn.wuHe': '五合',\n 'sn.mingFeiDui': '鸣吠对',\n 'sn.yueJian': '月建',\n 'sn.xiaoShi': '小时',\n 'sn.tuHu': '土府',\n 'sn.wangWang': '往亡',\n 'sn.yaoAn': '要安',\n 'sn.siShen': '死神',\n 'sn.tianMa': '天马',\n 'sn.jiuHu': '九虎',\n 'sn.qiNiao': '七鸟',\n 'sn.liuShe': '六蛇',\n 'sn.guanRi': '官日',\n 'sn.jiQi': '吉期',\n 'sn.yuYu': '玉宇',\n 'sn.daShi': '大时',\n 'sn.daBai': '大败',\n 'sn.xianChi': '咸池',\n 'sn.shouRi': '守日',\n 'sn.tianWu': '天巫',\n 'sn.fuDe': '福德',\n 'sn.liuYi': '六仪',\n 'sn.jinTang': '金堂',\n 'sn.yanDui': '厌对',\n 'sn.zhaoYao': '招摇',\n 'sn.jiuKong': '九空',\n 'sn.jiuKan': '九坎',\n 'sn.jiuJiao': '九焦',\n 'sn.xiangRi': '相日',\n 'sn.baoGuang': '宝光',\n 'sn.tianGang': '天罡',\n 'sn.yueXing': '月刑',\n 'sn.yueHai': '月害',\n 'sn.youHuo': '游祸',\n 'sn.chongRi': '重日',\n 'sn.shiDe': '时德',\n 'sn.minRi': '民日',\n 'sn.sanHe': '三合',\n 'sn.linRi': '临日',\n 'sn.shiYin': '时阴',\n 'sn.mingFei': '鸣吠',\n 'sn.siQi': '死气',\n 'sn.diNang': '地囊',\n 'sn.yueDeHe': '月德合',\n 'sn.jingAn': '敬安',\n 'sn.puHu': '普护',\n 'sn.jieShen': '解神',\n 'sn.xiaoHao': '小耗',\n 'sn.tianDeHe': '天德合',\n 'sn.yueKong': '月空',\n 'sn.yiMa': '驿马',\n 'sn.tianHou': '天后',\n 'sn.chuShen': '除神',\n 'sn.yuePo': '月破',\n 'sn.daHao': '大耗',\n 'sn.wuLi': '五离',\n 'sn.yinDe': '阴德',\n 'sn.fuSheng': '福生',\n 'sn.tianLi': '天吏',\n 'sn.zhiSi': '致死',\n 'sn.yuanWu': '元武',\n 'sn.yangDe': '阳德',\n 'sn.tianXi': '天喜',\n 'sn.tianYi': '天医',\n 'sn.yueYan': '月厌',\n 'sn.diHuo': '地火',\n 'sn.fourHit': '四击',\n 'sn.daSha': '大煞',\n 'sn.daHui': '大会',\n 'sn.tianYuan': '天愿',\n 'sn.liuHe': '六合',\n 'sn.wuFu': '五富',\n 'sn.shengXin': '圣心',\n 'sn.heKui': '河魁',\n 'sn.jieSha': '劫煞',\n 'sn.siQiong': '四穷',\n 'sn.chuShuiLong': '触水龙',\n 'sn.baFeng': '八风',\n 'sn.tianShe': '天赦',\n 'sn.wuMu': '五墓',\n 'sn.baZhuan': '八专',\n 'sn.yinCuo': '阴错',\n 'sn.siHao': '四耗',\n 'sn.yangCuo': '阳错',\n 'sn.siFei': '四废',\n 'sn.sanYin': '三阴',\n 'sn.xiaoHui': '小会',\n 'sn.yinDaoChongYang': '阴道冲阳',\n 'sn.danYin': '单阴',\n 'sn.guChen': '孤辰',\n 'sn.yinWei': '阴位',\n 'sn.xingHen': '行狠',\n 'sn.liaoLi': '了戾',\n 'sn.jueYin': '绝阴',\n 'sn.chunYang': '纯阳',\n 'sn.suiBo': '岁薄',\n 'sn.yinYangJiaoPo': '阴阳交破',\n 'sn.yinYangJuCuo': '阴阳俱错',\n 'sn.yinYangJiChong': '阴阳击冲',\n 'sn.zhuZhen': '逐阵',\n 'sn.yangCuoYinChong': '阳错阴冲',\n 'sn.qiFu': '七符',\n 'sn.tianGou': '天狗',\n 'sn.chengRi': '成日',\n 'sn.tianFu': '天符',\n 'sn.guYang': '孤阳',\n 'sn.jueYang': '绝阳',\n 'sn.chunYin': '纯阴',\n 'sn.yinShen': '阴神',\n 'sn.jieChu': '解除',\n 'sn.yangPoYinChong': '阳破阴冲',\n 'ss.biJian': '比肩',\n 'ss.jieCai': '劫财',\n 'ss.shiShen': '食神',\n 'ss.shangGuan': '伤官',\n 'ss.pianCai': '偏财',\n 'ss.zhengCai': '正财',\n 'ss.qiSha': '七杀',\n 'ss.zhengGuan': '正官',\n 'ss.pianYin': '偏印',\n 'ss.zhengYin': '正印',\n 's.none': '无',\n 's.huangDao': '黄道',\n 's.heiDao': '黑道',\n 's.goodLuck': '吉',\n 's.badLuck': '凶',\n 's.yin': '阴',\n 's.yang': '阳',\n 's.white': '白',\n 's.black': '黑',\n 's.blue': '碧',\n 's.green': '绿',\n 's.yellow': '黄',\n 's.red': '赤',\n 's.purple': '紫',\n 'jr.chuXi': '除夕',\n 'jr.chunJie': '春节',\n 'jr.yuanXiao': '元宵节',\n 'jr.longTou': '龙头节',\n 'jr.duanWu': '端午节',\n 'jr.qiXi': '七夕节',\n 'jr.zhongQiu': '中秋节',\n 'jr.chongYang': '重阳节',\n 'jr.laBa': '腊八节',\n 'jr.yuanDan': '元旦节',\n 'jr.qingRen': '情人节',\n 'jr.fuNv': '妇女节',\n 'jr.zhiShu': '植树节',\n 'jr.xiaoFei': '消费者权益日',\n 'jr.wuYi': '劳动节',\n 'jr.qingNian': '青年节',\n 'jr.erTong': '儿童节',\n 'jr.yuRen': '愚人节',\n 'jr.jianDang': '建党节',\n 'jr.jianJun': '建军节',\n 'jr.jiaoShi': '教师节',\n 'jr.guoQing': '国庆节',\n 'jr.wanShengYe': '万圣节前夜',\n 'jr.wanSheng': '万圣节',\n 'jr.pingAn': '平安夜',\n 'jr.shengDan': '圣诞节',\n 'ds.changSheng': '长生',\n 'ds.muYu': '沐浴',\n 'ds.guanDai': '冠带',\n 'ds.linGuan': '临官',\n 'ds.diWang': '帝旺',\n 'ds.shuai': '衰',\n 'ds.bing': '病',\n 'ds.si': '死',\n 'ds.mu': '墓',\n 'ds.jue': '绝',\n 'ds.tai': '胎',\n 'ds.yang': '养',\n 'h.first': '初候',\n 'h.second': '二候',\n 'h.third': '三候',\n 'h.qiuYinJie': '蚯蚓结',\n 'h.miJiao': '麋角解',\n 'h.shuiQuan': '水泉动',\n 'h.yanBei': '雁北乡',\n 'h.queShi': '鹊始巢',\n 'h.zhiShi': '雉始雊',\n 'h.jiShi': '鸡始乳',\n 'h.zhengNiao': '征鸟厉疾',\n 'h.shuiZe': '水泽腹坚',\n 'h.dongFeng': '东风解冻',\n 'h.zheChongShiZhen': '蛰虫始振',\n 'h.yuZhi': '鱼陟负冰',\n 'h.taJi': '獭祭鱼',\n 'h.houYan': '候雁北',\n 'h.caoMuMengDong': '草木萌动',\n 'h.taoShi': '桃始华',\n 'h.cangGeng': '仓庚鸣',\n 'h.yingHua': '鹰化为鸠',\n 'h.xuanNiaoZhi': '玄鸟至',\n 'h.leiNai': '雷乃发声',\n 'h.shiDian': '始电',\n 'h.tongShi': '桐始华',\n 'h.tianShu': '田鼠化为鴽',\n 'h.hongShi': '虹始见',\n 'h.pingShi': '萍始生',\n 'h.mingJiu': '鸣鸠拂奇羽',\n 'h.daiSheng': '戴胜降于桑',\n 'h.louGuo': '蝼蝈鸣',\n 'h.qiuYinChu': '蚯蚓出',\n 'h.wangGua': '王瓜生',\n 'h.kuCai': '苦菜秀',\n 'h.miCao': '靡草死',\n 'h.maiQiu': '麦秋至',\n 'h.tangLang': '螳螂生',\n 'h.juShi': '鵙始鸣',\n 'h.fanShe': '反舌无声',\n 'h.luJia': '鹿角解',\n 'h.tiaoShi': '蜩始鸣',\n 'h.banXia': '半夏生',\n 'h.wenFeng': '温风至',\n 'h.xiShuai': '蟋蟀居壁',\n 'h.yingShi': '鹰始挚',\n 'h.fuCao': '腐草为萤',\n 'h.tuRun': '土润溽暑',\n 'h.daYu': '大雨行时',\n 'h.liangFeng': '凉风至',\n 'h.baiLu': '白露降',\n 'h.hanChan': '寒蝉鸣',\n 'h.yingNai': '鹰乃祭鸟',\n 'h.tianDi': '天地始肃',\n 'h.heNai': '禾乃登',\n 'h.hongYanLai': '鸿雁来',\n 'h.xuanNiaoGui': '玄鸟归',\n 'h.qunNiao': '群鸟养羞',\n 'h.leiShi': '雷始收声',\n 'h.zheChongPiHu': '蛰虫坯户',\n 'h.shuiShiHe': '水始涸',\n 'h.hongYanLaiBin': '鸿雁来宾',\n 'h.queRu': '雀入大水为蛤',\n 'h.juYou': '菊有黄花',\n 'h.caiNai': '豺乃祭兽',\n 'h.caoMuHuangLuo': '草木黄落',\n 'h.zheChongXianFu': '蛰虫咸俯',\n 'h.shuiShiBing': '水始冰',\n 'h.diShi': '地始冻',\n 'h.zhiRu': '雉入大水为蜃',\n 'h.hongCang': '虹藏不见',\n 'h.tianQi': '天气上升地气下降',\n 'h.biSe': '闭塞而成冬',\n 'h.heDan': '鹖鴠不鸣',\n 'h.huShi': '虎始交',\n 'h.liTing': '荔挺出',\n 'ts.zhan': '占',\n 'ts.hu': '户',\n 'ts.win': '窗',\n 'ts.fang': '房',\n 'ts.chuang': '床',\n 'ts.lu': '炉',\n 'ts.zao': '灶',\n 'ts.dui': '碓',\n 'ts.mo': '磨',\n 'ts.xi': '栖',\n 'ts.chu': '厨',\n 'ts.ce': '厕',\n 'ts.cang': '仓',\n 'ts.cangKu': '仓库',\n 'ts.daMen': '大门',\n 'ts.men': '门',\n 'ts.tang': '堂',\n 'ly.xianSheng': '先胜',\n 'ly.xianFu': '先负',\n 'ly.youYin': '友引',\n 'ly.foMie': '佛灭',\n 'ly.daAn': '大安',\n 'ly.chiKou': '赤口',\n 'yj.jiSi': '祭祀',\n 'yj.qiFu': '祈福',\n 'yj.qiuSi': '求嗣',\n 'yj.kaiGuang': '开光',\n 'yj.suHui': '塑绘',\n 'yj.qiJiao': '齐醮',\n 'yj.zhaiJiao': '斋醮',\n 'yj.muYu': '沐浴',\n 'yj.chouShen': '酬神',\n 'yj.zaoMiao': '造庙',\n 'yj.siZhao': '祀灶',\n 'yj.fenXiang': '焚香',\n 'yj.xieTu': '谢土',\n 'yj.chuHuo': '出火',\n 'yj.diaoKe': '雕刻',\n 'yj.jiaQu': '嫁娶',\n 'yj.DingHun': '订婚',\n 'yj.naCai': '纳采',\n 'yj.wenMing': '问名',\n 'yj.naXu': '纳婿',\n 'yj.guiNing': '归宁',\n 'yj.anChuang': '安床',\n 'yj.heZhang': '合帐',\n 'yj.guanJi': '冠笄',\n 'yj.dingMeng': '订盟',\n 'yj.jinRenKou': '进人口',\n 'yj.caiYi': '裁衣',\n 'yj.wanMian': '挽面',\n 'yj.kaiRong': '开容',\n 'yj.xiuFen': '修坟',\n 'yj.qiZuan': '启钻',\n 'yj.poTu': '破土',\n 'yj.anZang': '安葬',\n 'yj.liBei': '立碑',\n 'yj.chengFu': '成服',\n 'yj.chuFu': '除服',\n 'yj.kaiShengFen': '开生坟',\n 'yj.heShouMu': '合寿木',\n 'yj.ruLian': '入殓',\n 'yj.yiJiu': '移柩',\n 'yj.puDu': '普渡',\n 'yj.ruZhai': '入宅',\n 'yj.anXiang': '安香',\n 'yj.anMen': '安门',\n 'yj.xiuZao': '修造',\n 'yj.qiJi': '起基',\n 'yj.dongTu': '动土',\n 'yj.shangLiang': '上梁',\n 'yj.shuZhu': '竖柱',\n 'yj.kaiJing': '开井开池',\n 'yj.zuoBei': '作陂放水',\n 'yj.chaiXie': '拆卸',\n 'yj.poWu': '破屋',\n 'yj.huaiYuan': '坏垣',\n 'yj.buYuan': '补垣',\n 'yj.faMuZuoLiang': '伐木做梁',\n 'yj.zuoZhao': '作灶',\n 'yj.jieChu': '解除',\n 'yj.kaiZhuYan': '开柱眼',\n 'yj.chuanPing': '穿屏扇架',\n 'yj.gaiWuHeJi': '盖屋合脊',\n 'yj.kaiCe': '开厕',\n 'yj.zaoCang': '造仓',\n 'yj.saiXue': '塞穴',\n 'yj.pingZhi': '平治道涂',\n 'yj.zaoQiao': '造桥',\n 'yj.zuoCe': '作厕',\n 'yj.zhuDi': '筑堤',\n 'yj.kaiChi': '开池',\n 'yj.faMu': '伐木',\n 'yj.kaiQu': '开渠',\n 'yj.jueJing': '掘井',\n 'yj.saoShe': '扫舍',\n 'yj.fangShui': '放水',\n 'yj.zaoWu': '造屋',\n 'yj.heJi': '合脊',\n 'yj.zaoChuChou': '造畜稠',\n 'yj.xiuMen': '修门',\n 'yj.dingSang': '定磉',\n 'yj.zuoLiang': '作梁',\n 'yj.xiuShi': '修饰垣墙',\n 'yj.jiaMa': '架马',\n 'yj.kaiShi': '开市',\n 'yj.guaBian': '挂匾',\n 'yj.naChai': '纳财',\n 'yj.qiuCai': '求财',\n 'yj.kaiCang': '开仓',\n 'yj.maiChe': '买车',\n 'yj.zhiChan': '置产',\n 'yj.guYong': '雇庸',\n 'yj.chuHuoCai': '出货财',\n 'yj.anJiXie': '安机械',\n 'yj.zaoCheQi': '造车器',\n 'yj.jingLuo': '经络',\n 'yj.yunNiang': '酝酿',\n 'yj.zuoRan': '作染',\n 'yj.guZhu': '鼓铸',\n 'yj.zaoChuan': '造船',\n 'yj.geMi': '割蜜',\n 'yj.zaiZhong': '栽种',\n 'yj.quYu': '取渔',\n 'yj.jieWang': '结网',\n 'yj.muYang': '牧养',\n 'yj.anDuiWei': '安碓磑',\n 'yj.xiYi': '习艺',\n 'yj.ruXue': '入学',\n 'yj.liFa': '理发',\n 'yj.tanBing': '探病',\n 'yj.jianGui': '见贵',\n 'yj.chengChuan': '乘船',\n 'yj.duShui': '渡水',\n 'yj.zhenJiu': '针灸',\n 'yj.chuXing': '出行',\n 'yj.yiXi': '移徙',\n 'yj.fenJu': '分居',\n 'yj.TiTou': '剃头',\n 'yj.zhengShou': '整手足甲',\n 'yj.naChu': '纳畜',\n 'yj.buZhuo': '捕捉',\n 'yj.tianLie': '畋猎',\n 'yj.jiaoNiuMa': '教牛马',\n 'yj.huiQinYou': '会亲友',\n 'yj.fuRen': '赴任',\n 'yj.qiuYi': '求医',\n 'yj.zhiBing': '治病',\n 'yj.ciSong': '词讼',\n 'yj.qiJiDongTu': '起基动土',\n 'yj.poWuHuaiYuan': '破屋坏垣',\n 'yj.gaiWu': '盖屋',\n 'yj.zaoCangKu': '造仓库',\n 'yj.liQuanJiaoYi': '立券交易',\n 'yj.jiaoYi': '交易',\n 'yj.liQuan': '立券',\n 'yj.anJi': '安机',\n 'yj.huiYou': '会友',\n 'yj.qiuYiLiaoBing': '求医疗病',\n 'yj.zhuShi': '诸事不宜',\n 'yj.yuShi': '馀事勿取',\n 'yj.xingSang': '行丧',\n 'yj.duanYi': '断蚁',\n 'yj.guiXiu': '归岫',\n 'xx.bi': '毕',\n 'xx.yi': '翼',\n 'xx.ji': '箕',\n 'xx.kui': '奎',\n 'xx.gui': '鬼',\n 'xx.di': '氐',\n 'xx.xu': '虚',\n 'xx.wei': '危',\n 'xx.zi': '觜',\n 'xx.zhen': '轸',\n 'xx.dou': '斗',\n 'xx.lou': '娄',\n 'xx.liu': '柳',\n 'xx.fang': '房',\n 'xx.xin': '心',\n 'xx.shi': '室',\n 'xx.can': '参',\n 'xx.jiao': '角',\n 'xx.niu': '牛',\n 'xx.vei': '胃',\n 'xx.xing': '星',\n 'xx.zhang': '张',\n 'xx.tail': '尾',\n 'xx.qiang': '壁',\n 'xx.jing': '井',\n 'xx.kang': '亢',\n 'xx.nv': '女',\n 'xx.mao': '昴',\n 'sz.chun': '春',\n 'sz.xia': '夏',\n 'sz.qiu': '秋',\n 'sz.dong': '冬',\n 'od.first': '孟',\n 'od.second': '仲',\n 'od.third': '季',\n 'yx.shuo': '朔',\n 'yx.jiShuo': '既朔',\n 'yx.eMeiXin': '蛾眉新',\n 'yx.eMei': '蛾眉',\n 'yx.xi': '夕',\n 'yx.shangXian': '上弦',\n 'yx.jiuYe': '九夜',\n 'yx.night': '宵',\n 'yx.jianYingTu': '渐盈凸',\n 'yx.xiaoWang': '小望',\n 'yx.wang': '望',\n 'yx.jiWang': '既望',\n 'yx.liDai': '立待',\n 'yx.juDai': '居待',\n 'yx.qinDai': '寝待',\n 'yx.gengDai': '更待',\n 'yx.jianKuiTu': '渐亏凸',\n 'yx.xiaXian': '下弦',\n 'yx.youMing': '有明',\n 'yx.eMeiCan': '蛾眉残',\n 'yx.can': '残',\n 'yx.xiao': '晓',\n 'yx.hui': '晦',\n 'ny.sangZhe': '桑柘',\n 'ny.baiLa': '白蜡',\n 'ny.yangLiu': '杨柳',\n 'ny.jinBo': '金箔',\n 'ny.haiZhong': '海中',\n 'ny.daHai': '大海',\n 'ny.shaZhong': '沙中',\n 'ny.luZhong': '炉中',\n 'ny.shanXia': '山下',\n 'ny.daLin': '大林',\n 'ny.pingDi': '平地',\n 'ny.luPang': '路旁',\n 'ny.biShang': '壁上',\n 'ny.jianFeng': '剑锋',\n 'ny.shanTou': '山头',\n 'ny.fuDeng': '覆灯',\n 'ny.jianXia': '涧下',\n 'ny.tianHe': '天河',\n 'ny.chengTou': '城头',\n 'ny.daYi': '大驿',\n 'ny.chaiChuan': '钗钏',\n 'ny.quanZhong': '泉中',\n 'ny.daXi': '大溪',\n 'ny.wuShang': '屋上',\n 'ny.piLi': '霹雳',\n 'ny.tianShang': '天上',\n 'ny.songBo': '松柏',\n 'ny.shiLiu': '石榴',\n 'ny.changLiu': '长流'\n },\n 'en': {\n 'tg.jia': 'Jia',\n 'tg.yi': 'Yi',\n 'tg.bing': 'Bing',\n 'tg.ding': 'Ding',\n 'tg.wu': 'Wu',\n 'tg.ji': 'Ji',\n 'tg.geng': 'Geng',\n 'tg.xin': 'Xin',\n 'tg.ren': 'Ren',\n 'tg.gui': 'Gui',\n 'dz.zi': 'Zi',\n 'dz.chou': 'Chou',\n 'dz.yin': 'Yin',\n 'dz.mao': 'Mao',\n 'dz.chen': 'Chen',\n 'dz.si': 'Si',\n 'dz.wu': 'Wu',\n 'dz.wei': 'Wei',\n 'dz.shen': 'Shen',\n 'dz.you': 'You',\n 'dz.xu': 'Xu',\n 'dz.hai': 'Hai',\n 'zx.jian': 'Build',\n 'zx.chu': 'Remove',\n 'zx.man': 'Full',\n 'zx.ping': 'Flat',\n 'zx.ding': 'Stable',\n 'zx.zhi': 'Hold',\n 'zx.po': 'Break',\n 'zx.wei': 'Danger',\n 'zx.cheng': 'Complete',\n 'zx.shou': 'Collect',\n 'zx.kai': 'Open',\n 'zx.bi': 'Close',\n 'jz.jiaZi': 'JiaZi',\n 'jz.yiChou': 'YiChou',\n 'jz.bingYin': 'BingYin',\n 'jz.dingMao': 'DingMao',\n 'jz.wuChen': 'WuChen',\n 'jz.jiSi': 'JiSi',\n 'jz.gengWu': 'GengWu',\n 'jz.xinWei': 'XinWei',\n 'jz.renShen': 'RenShen',\n 'jz.guiYou': 'GuiYou',\n 'jz.jiaXu': 'JiaXu',\n 'jz.yiHai': 'YiHai',\n 'jz.bingZi': 'BingZi',\n 'jz.dingChou': 'DingChou',\n 'jz.wuYin': 'WuYin',\n 'jz.jiMao': 'JiMao',\n 'jz.gengChen': 'GengChen',\n 'jz.xinSi': 'XinSi',\n 'jz.renWu': 'RenWu',\n 'jz.guiWei': 'GuiWei',\n 'jz.jiaShen': 'JiaShen',\n 'jz.yiYou': 'YiYou',\n 'jz.bingXu': 'BingXu',\n 'jz.dingHai': 'DingHai',\n 'jz.wuZi': 'WuZi',\n 'jz.jiChou': 'JiChou',\n 'jz.gengYin': 'GengYin',\n 'jz.xinMao': 'XinMao',\n 'jz.renChen': 'RenChen',\n 'jz.guiSi': 'GuiSi',\n 'jz.jiaWu': 'JiaWu',\n 'jz.yiWei': 'YiWei',\n 'jz.bingShen': 'BingShen',\n 'jz.dingYou': 'DingYou',\n 'jz.wuXu': 'WuXu',\n 'jz.jiHai': 'JiHai',\n 'jz.gengZi': 'GengZi',\n 'jz.xinChou': 'XinChou',\n 'jz.renYin': 'RenYin',\n 'jz.guiMao': 'GuiMao',\n 'jz.jiaChen': 'JiaChen',\n 'jz.yiSi': 'YiSi',\n 'jz.bingWu': 'BingWu',\n 'jz.dingWei': 'DingWei',\n 'jz.wuShen': 'WuShen',\n 'jz.jiYou': 'JiYou',\n 'jz.gengXu': 'GengXu',\n 'jz.xinHai': 'XinHai',\n 'jz.renZi': 'RenZi',\n 'jz.guiChou': 'GuiChou',\n 'jz.jiaYin': 'JiaYin',\n 'jz.yiMao': 'YiMao',\n 'jz.bingChen': 'BingChen',\n 'jz.dingSi': 'DingSi',\n 'jz.wuWu': 'WuWu',\n 'jz.jiWei': 'JiWei',\n 'jz.gengShen': 'GengShen',\n 'jz.xinYou': 'XinYou',\n 'jz.renXu': 'RenXu',\n 'jz.guiHai': 'GuiHai',\n 'sx.rat': 'Rat',\n 'sx.ox': 'Ox',\n 'sx.tiger': 'Tiger',\n 'sx.rabbit': 'Rabbit',\n 'sx.dragon': 'Dragon',\n 'sx.snake': 'Snake',\n 'sx.horse': 'Horse',\n 'sx.goat': 'Goat',\n 'sx.monkey': 'Monkey',\n 'sx.rooster': 'Rooster',\n 'sx.dog': 'Dog',\n 'sx.pig': 'Pig',\n 'dw.long': 'Dragon',\n 'dw.niu': 'Ox',\n 'dw.gou': 'Dog',\n 'dw.yang': 'Goat',\n 'dw.tu': 'Rabbit',\n 'dw.shu': 'Rat',\n 'dw.ji': 'Rooster',\n 'dw.ma': 'Horse',\n 'dw.hu': 'Tiger',\n 'dw.zhu': 'Pig',\n 'dw.hou': 'Monkey',\n 'dw.she': 'Snake',\n 'dw.huLi': 'Fox',\n 'dw.yan': 'Swallow',\n 'dw.bao': 'Leopard',\n 'dw.yuan': 'Ape',\n 'dw.yin': 'Earthworm',\n 'dw.lu': 'Deer',\n 'dw.wu': 'Crow',\n 'dw.lang': 'Wolf',\n 'dw.fu': 'Bat',\n 'wx.jin': 'Metal',\n 'wx.mu': 'Wood',\n 'wx.shui': 'Water',\n 'wx.huo': 'Fire',\n 'wx.tu': 'Earth',\n 'wx.ri': 'Sun',\n 'wx.yue': 'Moon',\n 'n.zero': '0',\n 'n.one': '1',\n 'n.two': '2',\n 'n.three': '3',\n 'n.four': '4',\n 'n.five': '5',\n 'n.six': '6',\n 'n.seven': '7',\n 'n.eight': '8',\n 'n.nine': '9',\n 'n.ten': '10',\n 'n.eleven': '11',\n 'n.twelve': '12',\n 'w.sun': 'Sunday',\n 'w.mon': 'Monday',\n 'w.tues': 'Tuesday',\n 'w.wed': 'Wednesday',\n 'w.thur': 'Thursday',\n 'w.fri': 'Friday',\n 'w.sat': 'Saturday',\n 'xz.aries': 'Aries',\n 'xz.taurus': 'Taurus',\n 'xz.gemini': 'Gemini',\n 'xz.cancer': 'Cancer',\n 'xz.leo': 'Leo',\n 'xz.virgo': 'Virgo',\n 'xz.libra': 'Libra',\n 'xz.scorpio': 'Scorpio',\n 'xz.sagittarius': 'Sagittarius',\n 'xz.capricornus': 'Capricornus',\n 'xz.aquarius': 'Aquarius',\n 'xz.pisces': 'Pisces',\n 'bg.qian': 'Qian',\n 'bg.kun': 'Kun',\n 'bg.zhen': 'Zhen',\n 'bg.xun': 'Xun',\n 'bg.kan': 'Kan',\n 'bg.li': 'Li',\n 'bg.gen': 'Gen',\n 'bg.dui': 'Dui',\n 'ps.center': 'Center',\n 'ps.dong': 'East',\n 'ps.nan': 'South',\n 'ps.xi': 'West',\n 'ps.bei': 'North',\n 'ps.zhong': 'Center',\n 'ps.zhengDong': 'East',\n 'ps.zhengNan': 'South',\n 'ps.zhengXi': 'West',\n 'ps.zhengBei': 'North',\n 'ps.dongBei': 'Northeast',\n 'ps.dongNan': 'Southeast',\n 'ps.xiBei': 'Northwest',\n 'ps.xiNan': 'Southwest',\n 'jq.dongZhi': 'Winter Solstice',\n 'jq.xiaoHan': 'Lesser Cold',\n 'jq.daHan': 'Great Cold',\n 'jq.liChun': 'Spring Beginning',\n 'jq.yuShui': 'Rain Water',\n 'jq.jingZhe': 'Awakening from Hibernation',\n 'jq.chunFen': 'Spring Equinox',\n 'jq.qingMing': 'Fresh Green',\n 'jq.guYu': 'Grain Rain',\n 'jq.liXia': 'Beginning of Summer',\n 'jq.xiaoMan': 'Lesser Fullness',\n 'jq.mangZhong': 'Grain in Ear',\n 'jq.xiaZhi': 'Summer Solstice',\n 'jq.xiaoShu': 'Lesser Heat',\n 'jq.daShu': 'Greater Heat',\n 'jq.liQiu': 'Beginning of Autumn',\n 'jq.chuShu': 'End of Heat',\n 'jq.baiLu': 'White Dew',\n 'jq.qiuFen': 'Autumnal Equinox',\n 'jq.hanLu': 'Cold Dew',\n 'jq.shuangJiang': 'First Frost',\n 'jq.liDong': 'Beginning of Winter',\n 'jq.xiaoXue': 'Light Snow',\n 'jq.daXue': 'Heavy Snow',\n 'sn.qingLong': 'Azure Dragon',\n 'sn.baiHu': 'White Tiger',\n 'sn.zhuQue': 'Rosefinch',\n 'sn.xuanWu': 'Black Tortoise',\n 'sn.tianEn': 'Serene Grace',\n 'sn.siShen': 'Death',\n 'sn.tianMa': 'Pegasus',\n 'sn.baLong': 'Eight Dragon',\n 'sn.jiuHu': 'Nine Tiger',\n 'sn.qiNiao': 'Seven Bird',\n 'sn.liuShe': 'Six Snake',\n 's.none': 'None',\n 's.goodLuck': 'Good luck',\n 's.badLuck': 'Bad luck',\n 's.yin': 'Yin',\n 's.yang': 'Yang',\n 's.white': 'White',\n 's.black': 'Black',\n 's.blue': 'Blue',\n 's.green': 'Green',\n 's.yellow': 'Yellow',\n 's.red': 'Red',\n 's.purple': 'Purple',\n 'jr.chuXi': 'Chinese New Year\\'s Eve',\n 'jr.chunJie': 'Luna New Year',\n 'jr.yuanXiao': 'Lantern Festival',\n 'jr.duanWu': 'Dragon Boat Festival',\n 'jr.qiXi': 'Begging Festival',\n 'jr.zhongQiu': 'Mid-Autumn Festival',\n 'jr.laBa': 'Laba Festival',\n 'jr.yuanDan': 'New Year\\'s Day',\n 'jr.qingRen': 'Valentine\\'s Day',\n 'jr.fuNv': 'Women\\'s Day',\n 'jr.xiaoFei': 'Consumer Rights Day',\n 'jr.zhiShu': 'Arbor Day',\n 'jr.wuYi': 'International Worker\\'s Day',\n 'jr.erTong': 'Children\\'s Day',\n 'jr.qingNian': 'Youth Day',\n 'jr.yuRen': 'April Fools\\' Day',\n 'jr.jianDang': 'Party\\'s Day',\n 'jr.jianJun': 'Army Day',\n 'jr.jiaoShi': 'Teachers\\' Day',\n 'jr.guoQing': 'National Day',\n 'jr.wanShengYe': 'All Saints\\' Eve',\n 'jr.wanSheng': 'All Saints\\' Day',\n 'jr.pingAn': 'Christmas Eve',\n 'jr.shengDan': 'Christmas Day',\n 'ts.zhan': 'At',\n 'ts.hu': 'Household',\n 'ts.zao': 'Cooker',\n 'ts.dui': 'Pestle',\n 'ts.xi': 'Habitat',\n 'ts.win': 'Window',\n 'ts.fang': 'Room',\n 'ts.chuang': 'Bed',\n 'ts.lu': 'Stove',\n 'ts.mo': 'Mill',\n 'ts.chu': 'Kitchen',\n 'ts.ce': 'Toilet',\n 'ts.cang': 'Depot',\n 'ts.cangKu': 'Depot',\n 'ts.daMen': 'Gate',\n 'ts.men': 'Door',\n 'ts.tang': 'Hall',\n 'ly.xianSheng': 'Win first',\n 'ly.xianFu': 'Lose first',\n 'ly.youYin': 'Friend\\'s referral',\n 'ly.foMie': 'Buddhism\\'s demise',\n 'ly.daAn': 'Great safety',\n 'ly.chiKou': 'Chikagoro',\n 'yj.jiSi': 'Sacrifice',\n 'yj.qiFu': 'Pray',\n 'yj.qiuSi': 'Seek heirs',\n 'yj.kaiGuang': 'Consecretion',\n 'yj.suHui': 'Paint sculptural',\n 'yj.qiJiao': 'Build altar',\n 'yj.zhaiJiao': 'Taoist rites',\n 'yj.muYu': 'Bathing',\n 'yj.chouShen': 'Reward gods',\n 'yj.zaoMiao': 'Build temple',\n 'yj.siZhao': 'Offer kitchen god',\n 'yj.fenXiang': 'Burn incense',\n 'yj.xieTu': 'Earth gratitude',\n 'yj.chuHuo': 'Expel the flame',\n 'yj.diaoKe': 'Carving',\n 'yj.jiaQu': 'Marriage',\n 'yj.DingHun': 'Engagement',\n 'yj.naCai': 'Proposing',\n 'yj.wenMing': 'Ask name',\n 'yj.naXu': 'Uxorilocal marriage',\n 'yj.guiNing': 'Visit parents',\n 'yj.anChuang': 'Bed placing',\n 'yj.heZhang': 'Make up accounts',\n 'yj.guanJi': 'Crowning adulthood',\n 'yj.dingMeng': 'Make alliance',\n 'yj.jinRenKou': 'Adopt',\n 'yj.caiYi': 'Dressmaking',\n 'yj.wanMian': 'Cosmeticsurgery',\n 'yj.kaiRong': 'Open face',\n 'yj.xiuFen': 'Grave repair',\n 'yj.qiZuan': 'Open coffin',\n 'yj.poTu': 'Break earth',\n 'yj.anZang': 'Burial',\n 'yj.liBei': 'Tombstone erecting',\n 'yj.chengFu': 'Formation of clothes',\n 'yj.chuFu': 'Mourning clothes removal',\n 'yj.kaiShengFen': 'Open grave',\n 'yj.heShouMu': 'Make coffin',\n 'yj.ruLian': 'Body placing',\n 'yj.yiJiu': 'Move coffin',\n 'yj.puDu': 'Save soul',\n 'yj.ruZhai': 'Enter house',\n 'yj.anXiang': 'Incenst placement',\n 'yj.anMen': 'Door placing',\n 'yj.xiuZao': 'Repair',\n 'yj.qiJi': 'Digging',\n 'yj.dongTu': 'Break ground',\n 'yj.shangLiang': 'Beam placing',\n 'yj.shuZhu': 'Erecting pillars',\n 'yj.kaiJing': 'Open pond and well',\n 'yj.zuoBei': 'Make pond and fill water',\n 'yj.chaiXie': 'Smash house',\n 'yj.poWu': 'Break house',\n 'yj.huaiYuan': 'Demolish',\n 'yj.buYuan': 'Mending',\n 'yj.faMuZuoLiang': 'Make beams',\n 'yj.zuoZhao': 'Make stove',\n 'yj.jieChu': 'Removal',\n 'yj.kaiZhuYan': 'Build beam',\n 'yj.chuanPing': 'Build door',\n 'yj.gaiWuHeJi': 'Cover house',\n 'yj.kaiCe': 'Open toilet',\n 'yj.zaoCang': 'Build depot',\n 'yj.saiXue': 'Block nest',\n 'yj.pingZhi': 'Repair roads',\n 'yj.zaoQiao': 'Build bridge',\n 'yj.zuoCe': 'Build toilet',\n 'yj.zhuDi': 'Fill',\n 'yj.kaiChi': 'Open pond',\n 'yj.faMu': 'Lumbering',\n 'yj.kaiQu': 'Canalization',\n 'yj.jueJing': 'Dig well',\n 'yj.saoShe': 'Sweep house',\n 'yj.fangShui': 'Drainage',\n 'yj.zaoWu': 'Build house',\n 'yj.heJi': 'Close ridge',\n 'yj.zaoChuChou': 'Livestock thickening',\n 'yj.xiuMen': 'Repair door',\n 'yj.dingSang': 'Fix stone',\n 'yj.zuoLiang': 'Beam construction',\n 'yj.xiuShi': 'Decorate wall',\n 'yj.jiaMa': 'Erect horse',\n 'yj.kaiShi': 'Opening',\n 'yj.guaBian': 'Hang plaque',\n 'yj.naChai': 'Accept wealth',\n 'yj.qiuCai': 'Seek wealth',\n 'yj.kaiCang': 'Open depot',\n 'yj.maiChe': 'Buy car',\n 'yj.zhiChan': 'Buy property',\n 'yj.guYong': 'Hire',\n 'yj.chuHuoCai': 'Delivery',\n 'yj.anJiXie': 'Build machine',\n 'yj.zaoCheQi': 'Build car',\n 'yj.jingLuo': 'Build loom',\n 'yj.yunNiang': 'Brew',\n 'yj.zuoRan': 'Dye',\n 'yj.guZhu': 'Cast',\n 'yj.zaoChuan': 'Build boat',\n 'yj.geMi': 'Harvest honey',\n 'yj.zaiZhong': 'Farming',\n 'yj.quYu': 'Fishing',\n 'yj.jieWang': 'Netting',\n 'yj.muYang': 'Graze',\n 'yj.anDuiWei': 'Build rub',\n 'yj.xiYi': 'Learn',\n 'yj.ruXue': 'Enter school',\n 'yj.liFa': 'Haircut',\n 'yj.tanBing': 'Visiting',\n 'yj.jianGui': 'Meet noble',\n 'yj.chengChuan': 'Ride boat',\n 'yj.duShui': 'Cross water',\n 'yj.zhenJiu': 'Acupuncture',\n 'yj.chuXing': 'Travel',\n 'yj.yiXi': 'Move',\n 'yj.fenJu': 'Live apart',\n 'yj.TiTou': 'Shave',\n 'yj.zhengShou': 'Manicure',\n 'yj.naChu': 'Feed livestock',\n 'yj.buZhuo': 'Catch',\n 'yj.tianLie': 'Hunt',\n 'yj.jiaoNiuMa': 'Train horse',\n 'yj.huiQinYou': 'Meet friends',\n 'yj.fuRen': 'Go post',\n 'yj.qiuYi': 'See doctor',\n 'yj.zhiBing': 'Treat',\n 'yj.ciSong': 'Litigation',\n 'yj.qiJiDongTu': 'Lay foundation',\n 'yj.poWuHuaiYuan': 'Demolish',\n 'yj.gaiWu': 'Build house',\n 'yj.zaoCangKu': 'Build depot',\n 'yj.liQuanJiaoYi': 'Covenant trade',\n 'yj.jiaoYi': 'Trade',\n 'yj.liQuan': 'Covenant',\n 'yj.anJi': 'Install machine',\n 'yj.huiYou': 'Meet friends',\n 'yj.qiuYiLiaoBing': 'Seek treatment',\n 'yj.zhuShi': 'Everything Sucks',\n 'yj.yuShi': 'Do nothing else',\n 'yj.xingSang': 'Funeral',\n 'yj.duanYi': 'Block ant hole',\n 'yj.guiXiu': 'Place beam',\n 'xx.bi': 'Finish',\n 'xx.yi': 'Wing',\n 'xx.ji': 'Sieve',\n 'xx.kui': 'Qui',\n 'xx.gui': 'Ghost',\n 'xx.di': 'Foundation',\n 'xx.xu': 'Virtual',\n 'xx.wei': 'Danger',\n 'xx.zi': 'Mouth',\n 'xx.zhen': 'Cross-bar',\n 'xx.dou': 'Fight',\n 'xx.lou': 'Weak',\n 'xx.liu': 'Willow',\n 'xx.fang': 'House',\n 'xx.xin': 'Heart',\n 'xx.shi': 'Room',\n 'xx.can': 'Join',\n 'xx.jiao': 'Horn',\n 'xx.niu': 'Ox',\n 'xx.vei': 'Stomach',\n 'xx.xing': 'Star',\n 'xx.zhang': 'Chang',\n 'xx.tail': 'Tail',\n 'xx.qiang': 'Wall',\n 'xx.jing': 'Well',\n 'xx.kang': 'Kang',\n 'xx.nv': 'Female',\n 'xx.mao': 'Mao',\n 'sz.chun': 'Spring',\n 'sz.xia': 'Summer',\n 'sz.qiu': 'Autumn',\n 'sz.dong': 'Winter',\n 'yx.shuo': 'New',\n 'yx.eMeiXin': 'New waxing',\n 'yx.eMei': 'Waxing',\n 'yx.xi': 'Evening',\n 'yx.shangXian': 'First quarter',\n 'yx.jiuYe': 'Nine night',\n 'yx.night': 'Night',\n 'yx.jianYingTu': 'Gibbous',\n 'yx.xiaoWang': 'Little full',\n 'yx.wang': 'Full',\n 'yx.jianKuiTu': 'Disseminating',\n 'yx.xiaXian': 'Third quarter',\n 'yx.eMeiCan': 'Waning waxing',\n 'yx.can': 'Waning',\n 'yx.xiao': 'Daybreak',\n 'yx.hui': 'Obscure',\n 'ny.sangZhe': 'Cudrania',\n 'ny.baiLa': 'Wax',\n 'ny.yangLiu': 'Willow',\n 'ny.jinBo': 'Foil',\n 'ny.haiZhong': 'Sea',\n 'ny.daHai': 'Ocean',\n 'ny.shaZhong': 'Sand',\n 'ny.luZhong': 'Stove',\n 'ny.shanXia': 'Piedmont',\n 'ny.daLin': 'Forest',\n 'ny.pingDi': 'Land',\n 'ny.luPang': 'Roadside',\n 'ny.biShang': 'Wall',\n 'ny.jianFeng': 'Blade',\n 'ny.shanTou': 'Hilltop',\n 'ny.fuDeng': 'Light',\n 'ny.jianXia': 'Valleyn',\n 'ny.tianHe': 'River',\n 'ny.chengTou': 'City',\n 'ny.daYi': 'Post',\n 'ny.chaiChuan': 'Ornaments',\n 'ny.quanZhong': 'Spring',\n 'ny.daXi': 'Stream',\n 'ny.wuShang': 'Roof',\n 'ny.piLi': 'Thunderbolt',\n 'ny.tianShang': 'Sky',\n 'ny.songBo': 'Coniferin',\n 'ny.shiLiu': 'Pomegranate',\n 'ny.changLiu': 'Flows'\n }\n };\n\n var _objs = {\n 'LunarUtil': LunarUtil,\n 'SolarUtil': SolarUtil,\n 'TaoUtil': TaoUtil,\n 'FotoUtil': FotoUtil,\n 'NineStarUtil': NineStarUtil\n };\n var _dictString = {\n 'LunarUtil': {\n 'TIAN_SHEN_TYPE': {},\n 'TIAN_SHEN_TYPE_LUCK': {},\n 'XIU_LUCK': {},\n 'LU': {},\n 'XIU': {},\n 'SHA': {},\n 'POSITION_DESC': {},\n 'NAYIN': {},\n 'WU_XING_GAN': {},\n 'WU_XING_ZHI': {},\n 'SHOU': {},\n 'GONG': {},\n 'FESTIVAL': {},\n 'ZHENG': {},\n 'ANIMAL': {},\n 'SHI_SHEN': {},\n 'XIU_SONG': {}\n },\n 'SolarUtil': {\n 'FESTIVAL': {}\n },\n 'TaoUtil': {\n 'BA_HUI': {},\n 'BA_JIE': {}\n }\n };\n var _dictNumber = {\n 'LunarUtil': {\n 'ZHI_TIAN_SHEN_OFFSET': {},\n 'CHANG_SHENG_OFFSET': {}\n }\n };\n var _dictArray = {\n 'LunarUtil': {\n 'ZHI_HIDE_GAN': {}\n }\n };\n var _arrays = {\n 'LunarUtil': {\n 'GAN': [],\n 'ZHI': [],\n 'JIA_ZI': [],\n 'ZHI_XING': [],\n 'XUN': [],\n 'XUN_KONG': [],\n 'CHONG': [],\n 'CHONG_GAN': [],\n 'CHONG_GAN_TIE': [],\n 'HE_GAN_5': [],\n 'HE_ZHI_6': [],\n 'SHENGXIAO': [],\n 'NUMBER': [],\n 'POSITION_XI': [],\n 'POSITION_YANG_GUI': [],\n 'POSITION_YIN_GUI': [],\n 'POSITION_FU': [],\n 'POSITION_FU_2': [],\n 'POSITION_CAI': [],\n 'POSITION_TAI_SUI_YEAR': [],\n 'POSITION_GAN': [],\n 'POSITION_ZHI': [],\n 'JIE_QI': [],\n 'JIE_QI_IN_USE': [],\n 'TIAN_SHEN': [],\n 'SHEN_SHA': [],\n 'PENGZU_GAN': [],\n 'PENGZU_ZHI': [],\n 'MONTH_ZHI': [],\n 'CHANG_SHENG': [],\n 'HOU': [],\n 'WU_HOU': [],\n 'POSITION_TAI_DAY': [],\n 'POSITION_TAI_MONTH': [],\n 'YI_JI': [],\n 'LIU_YAO': [],\n 'MONTH': [],\n 'SEASON': [],\n 'DAY': [],\n 'YUE_XIANG': []\n },\n 'SolarUtil': {\n 'WEEK': [],\n 'XINGZUO': []\n },\n 'TaoUtil': {\n 'AN_WU': []\n },\n 'FotoUtil': {\n 'XIU_27': []\n },\n 'NineStarUtil': {\n 'NUMBER': [],\n 'WU_XING': [],\n 'POSITION': [],\n 'LUCK_XUAN_KONG': [],\n 'YIN_YANG_QI_MEN': [],\n 'COLOR': []\n }\n };\n\n var _updateArray = function(c) {\n var v = _arrays[c];\n var o = _objs[c];\n for (var k in v) {\n var arr = v[k];\n for (var i = 0, j = arr.length; i < j; i++) {\n o[k][i] = arr[i].replace(/{(.[^}]*)}/g, function($0, $1) {\n return _getMessage($1);\n });\n }\n }\n };\n\n var _updateStringDictionary = function(c) {\n var v = _dictString[c];\n var o = _objs[c];\n for (var k in v) {\n var dict = v[k];\n for (var key in dict){\n var i = key.replace(/{(.[^}]*)}/g, function($0, $1) {\n return _getMessage($1);\n });\n o[k][i] = dict[key].replace(/{(.[^}]*)}/g, function($0, $1) {\n return _getMessage($1);\n });\n }\n }\n };\n\n var _updateNumberDictionary = function(c) {\n var v = _dictNumber[c];\n var o = _objs[c];\n for (var k in v) {\n var dict = v[k];\n for (var key in dict){\n var i = key.replace(/{(.[^}]*)}/g, function($0, $1) {\n return _getMessage($1);\n });\n o[k][i] = dict[key];\n }\n }\n };\n\n var _updateArrayDictionary = function(c) {\n var v = _dictArray[c];\n var o = _objs[c];\n for (var k in v) {\n var dict = v[k];\n for (var key in dict){\n var x = key.replace(/{(.[^}]*)}/g, function($0, $1) {\n return _getMessage($1);\n });\n var arr = dict[key];\n for (var i = 0, j = arr.length; i < j; i++) {\n arr[i] = arr[i].replace(/{(.[^}]*)}/g, function($0, $1) {\n return _getMessage($1);\n });\n }\n o[k][x] = arr;\n }\n }\n };\n\n var _update = function() {\n var c;\n for (c in _arrays) {\n _updateArray(c);\n }\n for (c in _dictString) {\n _updateStringDictionary(c);\n }\n for (c in _dictNumber) {\n _updateNumberDictionary(c);\n }\n for (c in _dictArray) {\n _updateArrayDictionary(c);\n }\n };\n\n var _setLanguage = function(lang) {\n if (_messages[lang]) {\n _lang = lang;\n _update();\n }\n };\n\n var _getLanguage = function() {\n return _lang;\n };\n\n var _setMessages = function(lang, messages) {\n if (!messages) {\n return;\n }\n if (!_messages[lang]) {\n _messages[lang] = {};\n }\n for (var key in messages) {\n _messages[lang][key] = messages[key];\n }\n _update();\n };\n\n var _getMessage = function(key) {\n var s = _messages[_lang][key];\n if (undefined === s) {\n s = _messages[_defaultLang][key];\n }\n if (undefined === s) {\n s = key;\n }\n return s;\n };\n\n var _initArray = function(c) {\n var v = _arrays[c];\n var o = _objs[c];\n for (var k in v) {\n v[k].length = 0;\n var arr = o[k];\n for (var i = 0, j = arr.length; i < j; i++) {\n v[k].push(arr[i]);\n }\n }\n };\n\n var _initDictionary = function(c, type) {\n var v;\n switch(type){\n case 'string':\n v = _dictString[c];\n break;\n case 'number':\n v = _dictNumber[c];\n break;\n case 'array':\n v = _dictArray[c];\n break;\n default:\n }\n var o = _objs[c];\n for (var k in v) {\n var dict = o[k];\n for (var key in dict) {\n v[k][key] = dict[key];\n }\n }\n };\n\n var _init = function() {\n if (_inited) {\n return;\n }\n _inited = true;\n var c;\n for (c in _arrays) {\n _initArray(c);\n }\n for (c in _dictString) {\n _initDictionary(c, 'string');\n }\n for (c in _dictNumber) {\n _initDictionary(c, 'number');\n }\n for (c in _dictArray) {\n _initDictionary(c, 'array');\n }\n _setLanguage(_defaultLang);\n };\n _init();\n return {\n getLanguage:function(){return _getLanguage();},\n setLanguage:function(lang){_setLanguage(lang);},\n getMessage:function(key){return _getMessage(key);},\n setMessages:function(lang,messages){_setMessages(lang,messages);}\n };\n })();\n return {\n ShouXingUtil:ShouXingUtil,\n SolarUtil:SolarUtil,\n LunarUtil:LunarUtil,\n FotoUtil:FotoUtil,\n TaoUtil:TaoUtil,\n NineStarUtil:NineStarUtil,\n Solar:Solar,\n Lunar:Lunar,\n Foto:Foto,\n Tao:Tao,\n NineStar:NineStar,\n EightChar:EightChar,\n SolarWeek:SolarWeek,\n SolarMonth:SolarMonth,\n SolarSeason:SolarSeason,\n SolarHalfYear:SolarHalfYear,\n SolarYear:SolarYear,\n LunarMonth:LunarMonth,\n LunarYear:LunarYear,\n LunarTime:LunarTime,\n HolidayUtil:HolidayUtil,\n I18n: I18n\n };\n});\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","// style-loader: Adds some css to the DOM by adding a \ No newline at end of file diff --git a/lxy_turning_step_bar_library/dist-theme/demo.html b/lxy_turning_step_bar_library/dist-theme/demo.html new file mode 100644 index 000000000..946ac7391 --- /dev/null +++ b/lxy_turning_step_bar_library/dist-theme/demo.html @@ -0,0 +1,9 @@ +
Click me!
\ No newline at end of file diff --git a/lxy_turning_step_bar_library/dist-theme/index.js b/lxy_turning_step_bar_library/dist-theme/index.js new file mode 100644 index 000000000..1b803116a --- /dev/null +++ b/lxy_turning_step_bar_library/dist-theme/index.js @@ -0,0 +1,7 @@ +(function(t,e){"object"===typeof exports&&"object"===typeof module?module.exports=e():"function"===typeof define&&define.amd?define("Lxy_turning_step_bar_library",[],e):"object"===typeof exports?exports["Lxy_turning_step_bar_library"]=e():t["Lxy_turning_step_bar_library"]=e()})(window,(function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"===typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/",n(n.s=0)}({0:function(t,e,n){n("2b45"),t.exports=n("41f5")},"24fb":function(t,e,n){"use strict";function r(t,e){var n=t[1]||"",r=t[3];if(!r)return n;if(e&&"function"===typeof btoa){var o=i(r),s=r.sources.map((function(t){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(t," */")}));return[n].concat(s).concat([o]).join("\n")}return[n].join("\n")}function i(t){var e=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),n="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(e);return"/*# ".concat(n," */")}t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n=r(e,t);return e[2]?"@media ".concat(e[2]," {").concat(n,"}"):n})).join("")},e.i=function(t,n,r){"string"===typeof t&&(t=[[null,t,""]]);var i={};if(r)for(var o=0;on.parts.length&&(r.parts.length=n.parts.length)}else{var s=[];for(i=0;i{const e={...t},n=i({active:+t.status==+this.value});return e.className=n,e})}},props:{list:{type:Array,default:()=>[{status:"1",title:"步骤条1",description:"2021年7月7日"},{status:"2",title:"步骤条2",description:"2021年11月19日"},{status:"3",title:"步骤条3",description:"2021年12月31日"}]},value:{type:String}}};var l=function(){var t=this,e=t._self._c;return e("ul",{staticClass:"lxy-steps"},t._l(t.infoList,(function(n,r){return e("li",{key:r,class:n.className},[t._t("default",(function(){return[e("div",{staticClass:"turning-steps-body"},[e("p",[t._v(" "+t._s(n.title))]),e("p",[t._v(" "+t._s(n.description))])])]}),{item:n})],2)})),0)},a=[],c=o(s,l,a,!1,null,null,null,null);const u=c.exports;function p(t,e,n){for(var r=0,i=[];rt&&(n=[...this.list,...Array(t-this.list.length%t).fill({})]);const r=n.map((e,n)=>{const r={...e};return(n+1)%t===0&&((n+1)%(2*t)===0?r._left=!0:r._right=!0),r}),o=p(r,t);this.listInfo=o.map((e,n)=>n%2?e.reverse().map((e,r)=>(e.order=n*t+r,e.even=!0,e)).reverse():e.map((e,r)=>(e.order=n*t+r,e))).flat(1).map(e=>{const n=i({"cell-left":e._left,"cell-right":e._right,"cell-even":e.even,noline:(e.order+1)%t===0});return e.className=n,e})},props:{itemWidth:{type:String,default:"30%"},list:{type:Array,default:()=>[{status:"1",title:"步骤条1",description:"2021年7月7日"},{status:"2",title:"步骤条2",description:"2021年11月19日"},{status:"3",title:"步骤条3",description:"2021年12月31日"}]},value:{type:String}}};var f=function(){var t=this,e=t._self._c;return e("ul",{ref:"tuning-steps",staticClass:"tuning-steps"},t._l(t.listInfo,(function(n,r){return e("li",{key:r,class:[n.className,n.status===t.currentValue?"active":"",n.status?"":"empty"],style:`flex-basis:${t.itemw};order:${n.order}`,on:{click:function(e){return t.handleClick(n,e)}}},[t._t("default",(function(){return[e("div",{staticClass:"turning-steps-body",staticStyle:{height:"200px"}},[e("p",[t._v(t._s(n.title))]),e("p",[t._v(t._s(n.description))])])]}),{item:n})],2)})),0)},h=[],v=o(d,f,h,!1,null,null,null,null);const m=v.exports;let g={install:function(t){t.component("steps-bar",u),t.component("turning-steps-bar",m)}};window.Vue&&window.Vue.use(g),t.StepsBar=u,t.TurningStepsBar=m,t.default=g,Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})})),function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode('.lxy-steps{display:flex;justify-content:space-between;align-items:center;padding:0;margin:0;counter-reset:order}.lxy-steps p{margin-top:0;margin-bottom:0}.lxy-steps li+li{margin-top:0}.lxy-steps>li{flex:auto;display:inline-flex;align-items:center;counter-increment:order;color:var(--active-steps-color)}.lxy-steps>li:last-child{flex:none}.lxy-steps>li:before{content:counter(order);flex-shrink:0;width:1.4em;line-height:1.4em;margin-right:.5em;text-align:center;border-radius:50%;border:1px solid}.lxy-steps>li.active:before{content:counter(order);flex-shrink:0;width:1.4em;line-height:1.4em;margin-right:.5em;text-align:center;border-radius:50%;border:1px solid}.lxy-steps>li:not(:last-child):after{content:"";flex:1;margin:0 1em;border-bottom:1px solid;opacity:.6}.lxy-steps>.active{color:var(--active-steps-color)}.lxy-steps>.active:before{color:#fff;background:var(--active-steps-color);border-color:var(--active-steps-color)}.lxy-steps>.active:after,.lxy-steps>.active~li{color:var(--normal-steps-color)}.turning-steps-body{display:flex;flex-direction:column}:root{--normal-steps-color: #666;--active-steps-color: #06e}.tuning-steps{display:flex;align-items:center;flex-wrap:wrap;padding:0 50px!important;margin:0;counter-reset:order}.tuning-steps p{margin-top:0;margin-bottom:0}.tuning-steps li+li{margin-top:0}.tuning-steps>li{cursor:pointer;flex:auto;display:inline-flex;align-items:center;counter-increment:order;color:var(--active-steps-color);flex-grow:0;position:relative}.tuning-steps>li:last-child{flex:none}.tuning-steps>li:not(.empty):not(.online):not(:last-child):after{content:"";flex:1;margin:0 1em;border-bottom:1px solid;opacity:.6}li.cell-left:last-child:after{content:"";flex:1;margin:0 1em;border-bottom:1px solid;opacity:.6}li.cell-left:not(:last-child):not(.empty):before{content:"";border-left:1px solid;border-top:1px solid;border-bottom:1px solid;border-radius:10px 0 0 10px;width:20px;height:100%;position:absolute;top:50%;left:-30px}.cell-left.active:before,.cell-right.active:before{border-color:var(--normal-steps-color)}li.cell-right:not(:last-child):before{content:"";border-right:1px solid;border-top:1px solid;border-bottom:1px solid;border-radius:0 10px 10px 0;width:20px;height:100%;position:absolute;top:50%;right:30px}.tuning-steps>.active:after,.tuning-steps>.active~li{color:var(--normal-steps-color)}.tuning-steps>.active,.tuning-steps>.cell-even.active:after{color:var(--active-steps-color)}.turning-steps-body{display:flex;flex-direction:column;justify-content:center;align-items:center}.online:after{content:"";display:none}.noline:after{display:none}.cell-left.active:after{color:var(--active-steps-color)}.empty:after{display:none}')),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}}()}})})); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/lxy_turning_step_bar_library/dist-theme/index.js.map b/lxy_turning_step_bar_library/dist-theme/index.js.map new file mode 100644 index 000000000..462c1d234 --- /dev/null +++ b/lxy_turning_step_bar_library/dist-theme/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://Lxy_turning_step_bar_library/webpack/universalModuleDefinition","webpack://Lxy_turning_step_bar_library/webpack/bootstrap","webpack://Lxy_turning_step_bar_library/./node_modules/css-loader/dist/runtime/api.js","webpack://Lxy_turning_step_bar_library/./node_modules/icon-font-loader/src/fontface.css?dab6","webpack://Lxy_turning_step_bar_library/./components/lxy-turning-step-bar/index.vue?aa8f","webpack://Lxy_turning_step_bar_library/components/lxy-turning-step-bar/index.vue","webpack://Lxy_turning_step_bar_library/./components/lxy-turning-step-bar/index.vue?a794","webpack://Lxy_turning_step_bar_library/./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://Lxy_turning_step_bar_library/./components/lxy-turning-step-bar/index.vue","webpack://Lxy_turning_step_bar_library/./components/lxy-turning-step-bar/index.js","webpack://Lxy_turning_step_bar_library/./node_modules/vue-style-loader/lib/listToStyles.js","webpack://Lxy_turning_step_bar_library/./node_modules/vue-style-loader/lib/addStylesClient.js","webpack://Lxy_turning_step_bar_library/./node_modules/icon-font-loader/src/fontface.css","webpack://Lxy_turning_step_bar_library/./lib/index.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","cssWithMappingToString","item","useSourceMap","content","cssMapping","btoa","sourceMapping","toComment","sourceURLs","sources","map","source","concat","sourceRoot","join","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","data","list","toString","this","mediaQuery","dedupe","alreadyImportedModules","length","id","_i","push","default","locals","add","render","_vm","_c","_self","staticStyle","attrs","status","itemWidth","on","hanldeClick","scopedSlots","_u","fn","current","staticClass","_t","index","_e","inIDE","dataSource","staticRenderFns","props","type","String","Array","components","TurningStepsBar","computed","$env","VUE_APP_DESIGNER","methods","e","console","log","$emit","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","component","listToStyles","parentId","styles","newStyles","css","media","part","parts","hasDocument","document","DEBUG","Error","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","ssrIdKey","isOldIE","navigator","test","userAgent","toLowerCase","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","createElement","appendChild","obj","update","remove","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","applyToTag","newObj","replaceText","textStore","replacement","filter","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","setAttribute","ssrId","firstChild","___CSS_LOADER_API_IMPORT___","_","arguments","isArray","apply","includes","classNames","C","v","f","a","u","B","A","S","g","$","active","className","title","description","N","_l","infoList","class","_v","_s","b","w","T","slice","O","isNaN","Number","listInfo","currentValue","target","replace","Math","floor","$refs","clientWidth","fill","_left","_right","reverse","order","even","flat","noline","R","ref","style","itemw","click","handleClick","height","V","W","y","Vue","use","StepsBar","defineProperties","error"],"mappings":"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","file":"index.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Lxy_turning_step_bar_library\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Lxy_turning_step_bar_library\"] = factory();\n\telse\n\t\troot[\"Lxy_turning_step_bar_library\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","// style-loader: Adds some css to the DOM by adding a ","import mod from \"-!../../node_modules/ifdef-loader/ifdef-loader.js??ref--14-0!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vusion-loader/index.js!../../node_modules/ifdef-loader/ifdef-loader.js??ref--1-3!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/ifdef-loader/ifdef-loader.js??ref--14-0!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vusion-loader/index.js!../../node_modules/ifdef-loader/ifdef-loader.js??ref--1-3!./index.vue?vue&type=script&lang=js\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5d696a85\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import LxyTurningStepBar from \"./index.vue\"\n\nexport default LxyTurningStepBar","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of