Repository: tgbot-collection/YYeTsBot Branch: master Commit: d4ae72f3dcad Files: 93 Total size: 1015.6 KB Directory structure: gitextract_3u5rcyng/ ├── .dockerignore ├── .gitattributes ├── .github/ │ ├── FUNDING.yml │ ├── dependabot.yml │ └── workflows/ │ └── docker.yaml ├── .gitignore ├── API.md ├── DEVELOPMENT.md ├── Dockerfile ├── LICENSE ├── Makefile ├── README.md ├── conf/ │ ├── yyets.dmesg.app.conf │ └── yyets.env ├── docker-compose.yml ├── requirements.txt ├── scripts/ │ ├── install.sh │ └── migrate_sub.py ├── setup.py ├── tea.yaml ├── yyets/ │ ├── BagAndDrag/ │ │ ├── README.md │ │ ├── bag.py │ │ ├── cfkv.py │ │ ├── convert_db.py │ │ ├── create_db.py │ │ ├── drag.py │ │ ├── sample.json │ │ └── zimuxia/ │ │ ├── convert_db.py │ │ └── zimuxia.py │ ├── __init__.py │ ├── healthcheck/ │ │ ├── check.py │ │ └── restart_service.py │ ├── management/ │ │ ├── format.json │ │ └── ui.py │ └── worker/ │ ├── .cargo-ok │ ├── README.md │ ├── public/ │ │ ├── 404.html │ │ ├── css/ │ │ │ ├── 3rd/ │ │ │ │ ├── animate.css │ │ │ │ ├── icons.css │ │ │ │ └── widgets.css │ │ │ ├── aYin.css │ │ │ ├── data.json │ │ │ ├── down-list-20180530.css │ │ │ ├── index.json │ │ │ └── jquery.mCustomScrollbar.css │ │ ├── fonts/ │ │ │ └── test.txt │ │ ├── index.html │ │ ├── js/ │ │ │ ├── aYin.js │ │ │ ├── rshare.js │ │ │ ├── search.js │ │ │ └── vue.js │ │ ├── resource.html │ │ └── search.html │ ├── workers-site/ │ │ ├── index.js │ │ └── package.json │ └── wrangler.toml ├── yyetsbot/ │ ├── config.py │ ├── fansub.py │ ├── utils.py │ └── yyetsbot.py └── yyetsweb/ ├── README.md ├── YYeTs-grafana.json ├── commands/ │ ├── common.py │ ├── douban_fix.py │ ├── grafana_test_data.py │ └── share_excel.py ├── common/ │ ├── __init__.py │ ├── dump_db.py │ ├── sync.py │ └── utils.py ├── databases/ │ ├── __init__.py │ ├── base.py │ ├── comment.py │ ├── douban.py │ ├── grafana.py │ ├── oauth.py │ ├── other.py │ ├── resources.py │ └── user.py ├── go.mod ├── go.sum ├── handlers/ │ ├── __init__.py │ ├── base.py │ ├── comment.py │ ├── douban.py │ ├── grafana.py │ ├── oauth.py │ ├── other.py │ ├── resources.py │ └── user.py ├── server.go ├── server.py └── tests/ └── router_test.py ================================================ FILE CONTENTS ================================================ ================================================ FILE: .dockerignore ================================================ mongo_data/* certs/* data/* logs/* YYeTsFE/node_modules/* .github/* assets/* conf/* tests/* yyetsweb/yyets.sqlite yyetsweb/subtitle_data ================================================ FILE: .gitattributes ================================================ yyets/worker/public/css/** linguist-vendored yyets/worker/public/fonts/* linguist-vendored yyets/worker/public/img/* linguist-vendored yyets/worker/public/js/* linguist-vendored yyets/worker/public/js/search.js -linguist-vendored yyets/worker/public/404.html linguist-vendored yyets/worker/public/resource.html linguist-vendored yyetsweb/templates/css/** linguist-vendored yyetsweb/templates/fonts/* linguist-vendored yyetsweb/templates/img/* linguist-vendored yyetsweb/templates/js/* linguist-vendored yyetsweb/templates/404.html linguist-vendored yyetsweb/templates/resource.html linguist-vendored yyetsweb/templates/js/common.js -linguist-vendored tests/data/* linguist-vendored ================================================ FILE: .github/FUNDING.yml ================================================ # These are supported funding model platforms github: BennyThink custom: https://buy.stripe.com/dR67vU4p13Ox73a6oq ================================================ FILE: .github/dependabot.yml ================================================ version: 2 updates: - package-ecosystem: "pip" directory: "/" schedule: interval: "daily" groups: all-dependencies: patterns: ["*"] ================================================ FILE: .github/workflows/docker.yaml ================================================ name: Build and push docker image on: push: branches: - 'master' paths-ignore: - '**.md' - 'LICENSE' jobs: docker: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 with: submodules: true - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Cache Docker layers uses: actions/cache@v3 with: path: /tmp/.buildx-cache key: ${{ runner.os }}-buildx-${{ github.sha }} restore-keys: | ${{ runner.os }}-buildx- - name: Login to DockerHub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Login to GitHub Container Registry uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Lower case for Docker Hub id: dh_string uses: ASzc/change-string-case-action@v5 with: string: ${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }} - name: Lower case for ghcr id: ghcr_string uses: ASzc/change-string-case-action@v5 with: string: ${{ github.event.repository.full_name }} - name: Build and push docker images uses: docker/build-push-action@v4 with: context: . platforms: linux/amd64, linux/arm64 push: true tags: | ${{ steps.dh_string.outputs.lowercase }} ghcr.io/${{ steps.ghcr_string.outputs.lowercase }} cache-from: type=local,src=/tmp/.buildx-cache cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max - name: Move cache run: | rm -rf /tmp/.buildx-cache mv /tmp/.buildx-cache-new /tmp/.buildx-cache - name: Notification to Telegram env: TOKEN: ${{ secrets.BOT_TOKEN }} run: | curl "https://api.telegram.org/bot$TOKEN/sendMessage?chat_id=260260121&text=Normal%20Build%20complete!" echo "YYeTsBot Build complete!" ================================================ FILE: .gitignore ================================================ # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest #*.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover .hypothesis/ .pytest_cache/ # Translations *.mo *.pot *.dat *.dir # Django stuff: *.log local_settings.py db.sqlite3 # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ # PyBuilder target/ # Jupyter Notebook .ipynb_checkpoints # pyenv .python-version # celery beat schedule file celerybeat-schedule # SageMath parsed files *.sage.py # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ /.idea/$CACHE_FILE$ /.idea/.gitignore /.idea/misc.xml /.idea/modules.xml /.idea/vcs.xml .idea/ /yyetsbot/data/cookies.dump /.idea/inspectionProfiles/profiles_settings.xml yyetsbot/data/ health_check/client.session /tools/worker/.idea/ /tools/worker/workers-site/node_modules/* /tools/worker/workers-site/worker/script.js /health_check/client-hc.session mongo_data/* certs/* data/* logs/* **/.DS_Store /yyetsweb/yyets_sqlite.db /yyetsweb/yyetsweb /yyetsweb/assets.go /yyetsweb/templates/sponsor/* /yyetsweb/templates/svg/* /yyetsweb/templates/index.css /yyetsweb/templates/logo* /yyetsweb/templates/*.json /yyetsweb/templates/* /yyetsweb/templates/data/* /yyetsweb/builds/ /builds/checksum-sha256sum.txt /yyetsweb/1.html !/env/ !/mongo_data/ /env/yyets.env !/docker-compose.override.yml /docker-compose.override.yml /yyetsweb/templates/dump/yyets_mongo.gz /yyetsweb/templates/dump/yyets_mysql.zip /yyetsweb/templates/dump/yyets_sqlite.zip /yyetsweb/subtitle_data/attachment/201001/17/758231_1263706947i2nW.rar /yyetsweb/subtitle_data/attachment/200912/4/212807_1259889699DJm8.rar ================================================ FILE: API.md ================================================ # 需求与待开发功能 ## FE - [x] group为admin特殊显示,评论接口已返回group信息 - [x] 评论楼中楼 - [x] 联合搜索,当本地数据库搜索不到数据时,会返回extra字段 - [x] 最新评论 - [x] 公告 - [x] 最新更新资源 - [x] API变更:登录时需要验证码 - [x] API变更:like API变更 PATCH `/api/user/` --> PATCH `/api/like/` - [x] 删除评论(admin only) - [x] ME:搜索API返回变更:目前包含了评论的结果,使用 `type`区分 - [ ] 搜索页面,通过评论ID,只显示该评论 - [ ] **独立公告和最近更新到新的页面** - [ ] **对评论的反应** - [ ] **分类** - [ ] 添加下载地址到已有资源 - [ ] 新增资源 - [ ] 删除资源、删除已有资源的下载 - [ ] 更改用户信息(添加邮箱) - [ ] 评论通知(浏览器通知,暂时隐藏了) # BE - [x] 联合搜索:字幕侠、new字幕组、追新番 - [x] grafana面板 - [x] 豆瓣接口 - [x] 评论通知:站内通知 - [x] 添加邮箱 - [x] 邮件通知 - [x] 添加下载地址到已有资源 - [x] 删除资源 - [x] 新建资源 - [ ] 找回密码 # 资源 ## 获取指定id的资源 * GET `/api/resource?id=10004` 数据结构参考 [sample.json](yyetsweb/templates/js/sample.json) **对于非官方、由用户提交的下载,与 `files` `dateline` 同级会有一个 `creator` 用于标明是谁创建的** **对于非官方、由用户提交的资源,与 `cnname` `enname` 同级会有一个 `creator` 用于标明是谁创建的** 如果没有,那么就是官方资源 ## 搜索 同时搜索资源和评论,会以type字段区分,评论会额外返回 `comment_id` * GET `/api/resource?keyword=权力的游戏` ```json { "data": [ { "id": 10733, "cnname": "权力的游戏", "enname": "Game of Thrones", "aliasname": "冰与火之歌 / 权力的游戏下载 / 权利的游戏 / 冰火", "channel": "tv", "channel_cn": "美剧", "area": "美国", "show_type": "", "expire": "1610372082", "views": 8691, "year": [ 2011 ], "origin": "yyets" } ], "extra": [], "comment": [ { "username": "Liyixin", "date": "2021-10-30 10:06:44", "comment": "我用阿里云盘分享了「权力的游戏.1-8季无删减版(1).1080P」,你可以不限速下载🚀\n复制这段内容打开「阿里云盘」App 即可获取\n链接:https://www.aliyundrive.com/s/hcUfFYnkhN5", "commentID": "617ca8b470a52cc3ef2b0dff", "resourceID": 10733, "resourceName": "权力的游戏", "origin": "comment" } ] } ``` 当数据库搜索不到资源时,会尝试从字幕侠、new字幕组和追新番搜索,返回如下 ```json { "data": [], "extra": [ { "url": "https://www.zimuxia.cn/portfolio/%e4%b8%9c%e5%9f%8e%e6%a2%a6%e9%ad%87", "name": "东城梦魇", "class": "ZimuxiaOnline" }, { "url": "https://www.zimuxia.cn/portfolio/%e9%bb%91%e8%89%b2%e6%ad%a2%e8%a1%80%e9%92%b3", "name": "黑色止血钳", "class": "ZimuxiaOnline" } ] } ``` ## 添加下载地址到已有资源 比如更新S01E05 * PATCH `http://127.0.0.1:8888/api/resource` ```json { "resource_id": 39894, "season_num": "1,对于电影纪录片等,应该是0或者101", "items": { "MP4": [ { "episode": "12", "name": "第五集.mp4", "size": "9.43GB", "dateline": "1628399290 单位秒", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|filszpwzec5|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:37", "passwd": "" } ] } ] }, "formats": [ "MP4" ] } ``` 返回201 ## 创建新资源 仅登录用户可用,用于创建新的资源,不包括 `data.list`。 * POST `http://127.0.0.1:8888/api/resource` ```json { "status": 1, "info": "OK", "data": { "info": { "id": "设置成任意值即可", "cnname": "中文名", "enname": "英文名", "aliasname": "别名", "channel": "movie/tv", "channel_cn": "电影/美剧", "area": "法国", "show_type": "", "expire": "1610401225", "views": 0 }, "list": [ ] } } ``` 返回 ```json { "status": true, "message": "success", "id": 50623 } ``` ## 删除资源 仅管理员可用,分成两种情况,一种是删除某个id全部资源,如39894;另外一种是删除这个资源下的某集下载 * POST `http://127.0.0.1:8888/api/resource` 均返回 202 ### 删除全部 ```json { "resource_id": 39894 } ``` ### 删除部分资源 会尽可能的匹配并删除对应的行 ```json { "resource_id": 39894, "meta": { "episode": "1", "name": "超235678-213.mp4", "size": "1.43GB", "dateline": "1628399290" } } ``` # Top 获取top信息,每类返回15条访问量最高的数据 * GET `/api/top` ```json { "ALL": [ { "data": { "info": { "id": 39894, "cnname": "速度与激情9", "enname": "F9: The Fast Saga", "aliasname": "F9狂野时速(港)/玩命关头9(台)/狂野时速9/速激9/FF9/Fast & Furious 9", "channel": "movie", "channel_cn": "电影", "area": "美国", "show_type": "", "expire": "1610401946", "views": 47466, "year": [ 2021 ] } } }, { "data": { "info": { "id": 38413, "cnname": "致命女人", "enname": "Why Women Kill", "aliasname": "女人为什么杀人/女人为何杀戮", "channel": "tv", "channel_cn": "美剧", "area": "美国", "show_type": "", "expire": "1610401185", "views": 39040, "year": [ 2019 ] } } } ], "US": [], "JP": [], "KR": [], "UK": [], "class": { "ALL": "全部", "US": "美国", "JP": "日本", "KR": "韩国", "UK": "英国" } } ``` # 个人中心 获取个人收藏 * GET `/api/like` ```json { "LIKE": [ { "data": { "info": { "id": 39523, "cnname": "禁忌女孩", "enname": "เด็กใหม่", "aliasname": "来路不明的转校生/Girl from Nowhere", "channel": "tv", "channel_cn": "泰剧", "area": "泰国", "show_type": "", "expire": "1610401752", "views": 979, "year": [ 2020 ] } } } ] } ``` # 用户 ## 登录或注册 * POST `/api/user`,提交json,字段 `username`, `password`,`captcha_id` 和 `captcha` 当验证码失效时,会返回303 See Other 返回json ## 获取当前登录用户信息 登录用户可用,未登录会返回401 * GET `/api/user` ```json { "username": "Benny", "date": "2021-06-12 13:55:50", "ip": "172.70.122.84", "browser": "Mozilla/5.0 (X11; Gentoo; rv:84.0) Gecko/20100101 Firefox/84.0", "like": [ 31346, 39894, 41382 ], "group": [ "admin" ], "email": { "verified": false, "address": "123@qq.com" } } ``` ## 更改用户信息 * PATCH `http://127.0.0.1:8888/api/user` * 目前只支持修改email字段,会发送验证邮件,1800秒之内只能验证一次,有效期24小时 暂不支持取消绑定 ```json { "email": "123@qq.com" } ``` response ```json { "status_code": 429, "status": false, "message": "try again in 1797s" } ``` ## 验证邮件 * POST `http://127.0.0.1:8888/api/user/email` 10次错误会被加到黑名单,账号注销 ```json { "code": "83216" } ``` response ```json { "status": true, "status_code": 201, "message": "success" } ``` # 获取全部剧集名称 * GET `/api/name` * GET `/api/name?human=1` 人类可读 # 添加或删除收藏 * PATCH `/api/like`,提交json,字段 `resource_id` # 评论 评论的基本数据格式: `children` 字段为 array/list,可套娃另外一条评论,目前暂时只支持两层(也不打算支持更多的啦)。 评论的 `resource_id` 必须相同 ## 普通评论 ```json { "username": "Benny", "date": "2021-06-17 10:54:19", "browser": "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.13; rv:85.1) Gecko/20100101 Firefox/85.1", "content": "test", "resource_id": 233, "id": "60cab95baa7f515ea291392b", "children": [ ], "childrenCount": 0 } ``` ## 嵌套评论 ```json { "username": "Benny", "date": "2021-06-17 10:54:19", "browser": "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.13; rv:85.1) Gecko/20100101 Firefox/85.1", "content": "test", "resource_id": 233, "id": "60cab95baa7f515ea291392b", "children": [ { "username": "Alex", "date": "2021-05-31 16:58:21", "browser": "PostmanRuntime/7.28.0", "content": "评论17", "id": "60c838a12a5620b7e4ba5dfc", "resource_id": 233 }, { "username": "Paul", "date": "2021-05-22 16:58:21", "browser": "PostmanRuntime/7.28.0", "content": "评论14", "id": "60c838a12a5620b7e4ba1111", "resource_id": 233 } ], "childrenCount": 2 } ``` ## 获取评论 * GET `/api/comment` 分页,支持URL参数: * resource_id: 资源id,id为233是留言板,id为-1会返回最新评论 * comment_id: 指定该参数,会只返回这条评论。如果是子评论,还会连带父评论一起返回 * size: 每页评论数量,默认5 * page: 当前页,默认1 * inner_size: 内嵌评论数量,默认5 * inner_page: 内嵌评论当前页,默认1 **注意:如上两个inner参数是对整个页面生效的,如要进行某个父评论的子评论分页,请参考下面的子评论分页接口 返回 楼中楼评论,group表示用户所属组,admin是管理员,user是普通用户 ```json { "data": [ { "username": "Benny", "date": "2021-06-22 18:26:42", "browser": "PostmanRuntime/7.28.0", "content": "父评论benny", "resource_id": 233, "type": "parent", "id": "60d1bae2d87ce6e9a2934a0f", "group": [ "admin" ] }, { "username": "Benny", "date": "2021-06-22 18:24:44", "browser": "PostmanRuntime/7.28.0", "content": "父评论benny", "resource_id": 233, "type": "parent", "group": [ "admin" ], "childrenCount": 22, "children": [ { "username": "test", "date": "2021-06-22 18:25:12", "browser": "PostmanRuntime/7.28.0", "content": "admin子评2论2", "resource_id": 233, "type": "child", "id": "60d1ba88d87ce6e9a2934a0c", "group": [ "user" ] }, { "username": "admin", "date": "2021-06-22 18:25:08", "browser": "PostmanRuntime/7.28.0", "content": "admin子评论2", "resource_id": 233, "type": "child", "id": "60d1ba84d87ce6e9a2934a0a", "group": [ "user" ] } ], "id": "60d1ba6cd87ce6e9a2934a08" } ], "count": 2, "resource_id": 233 } ``` ## 搜索评论 * GET `/api/comment/search` 分页,支持URL参数: * size: 每页评论数量,默认5 * page: 当前页,默认1 * keyword: 关键字 返回值与获取评论相同 ## 子评论分页 * GET `/api/comment/child` URL参数: * parent_id:父评论id * size: 每页评论数量,默认5 * page: 当前页,默认1 `/api/comment/child?parent_id=60dfc932802d2c69cf8774ce&size=2&page=2` 返回子评论 ```json { "data": [ { "username": "Benny", "date": "2021-07-03 10:22:13", "browser": "PostmanRuntime/7.28.1", "content": "子15", "resource_id": 233, "type": "child", "id": "60dfc9d5802d2c69cf877514", "childrenCount": 17, "group": [ "admin" ] }, { "username": "Benny", "date": "2021-07-03 10:22:11", "browser": "PostmanRuntime/7.28.1", "content": "子14", "resource_id": 233, "type": "child", "id": "60dfc9d3802d2c69cf877512", "group": [ "admin" ] } ], "count": 17 } ``` ## 获取验证码 * GET `/api/captcha?id=1234abc`,id是随机生成的字符串 API 返回字符串,形如 `data:image/png;base64,iVBORw0KGgoAAA....` ## 提交评论 * POST `/api/comment` 只有登录用户才可以发表评论,检查cookie `username` 是否为空来判断是否为登录用户;未登录用户提示“请登录后发表评论” `resource_id` 从URL中获取,id是上一步验证码的那个随机字符串id, `captcha` 是用户输入的验证码 ### 提交新评论 只需要提供如下四项信息即可 ```json { "resource_id": 39301, "content": "评论内容", "id": "1234abc", "captcha": "38op" } ``` 返回 HTTP 201添加评论成功,403/401遵循HTTP语义 ```json { "message": "评论成功/评论失败/etc" } ``` ### 提交楼中楼评论 还需要额外提供一个 `comment_id`,也就是 UUID,如 `60c838a12a5620b7e4ba5dfc` ```json { "resource_id": 39301, "content": "评论内容", "id": "1234abc", "captcha": "38op", "comment_id": "60c838a12a5620b7e4ba5dfc" } ``` ## 删除评论,软删除 * DELETE `/api/comment`,提交json数据 ```json { "comment_id": "60cab935e9f929e09c91392a" } ``` 不用关心comment_id是子评论还是父评论,会自动删除 返回被删除的数量,HTTP 200表示删除成功,404表示未找到这条留言 ```json { "status_code": 404, "message": "", "count": 0 } ``` ## 最新评论 * GET `api/comment/newest` page size参数同上 ```json { "data": [ { "username": "111", "date": "2021-07-11 10:22:59", "browser": "Mozi0.31.0", "content": "1111?", "resource_id": 233, "type": "parent", "id": "60ea53113178773", "group": [ "user" ], "cnname": "留言板" }, { "username": "11111222", "date": "2021-07-10 23:54:43", "browser": "Mozi3322.64", "content": "@abcd怎么下载啊\n", "resource_id": 37552, "type": "child", "id": "60e9c2c222111397e", "group": [ "user" ], "cnname": "黑寡妇" }, { "username": "1111", "date": "2021-07-10 23:41:06", "browser": "Moz) Chrom.864.67", "content": "我是1精彩", "resource_id": 41382, "type": "parent", "id": "60e9bf924ad7f2077381111", "group": [ "user" ], "cnname": "洛基" } ], "count": 294 } ``` ## 对评论的反应 仅对登录用户可用 * POST `/api/comment/reaction` 添加反应 201 * DELETE `/api/comment/reaction` 删除反应 202 verb 为任意字符串,包括emoji ```json { "comment_id": "60c46d6a6d7c5dd22d69fd3b,父评论子评论均可", "verb": "😍👍" } ``` 返回: * 201 成功添加反应 * 202 成功删除反应 * 404 评论没找到 用户添加的反应,在返回评论时可以看到,会额外多一个字段 `reactions`,子评论同理 ```json { "reactions": [ { "verb": "😍", "users": [ "user2" ] }, { "verb": "🤔", "users": [ "user3", "da" ] } ] } ``` # metrics ## 添加metrics * POST `/api/metrics`, json,字段 `type` ## 获取metrics * GET `/api/metrics`,默认返回最近7天数据,可选URL参数 `from`, `to`,如 `from=2021-03-12&to=2021-03=18 # Grafana * GET `/api/grafana/` * GET `/api/grafana/search` * GET `/api/grafana/query` # 黑名单 * GET `/api/blacklist` # 获取备份数据库信息 * GET `/api/db_dump` ```json { "yyets_mongo.gz": { "checksum": "b32e9d8e24c607a9f29889a926c15179d9179791", "date": "2021-06-14 12:59:51", "size": "6.0B" }, "yyets_mysql.zip": { "checksum": "6b24ae7cb7cef42951f7e2df183f0825512029e0", "date": "2021-06-14 12:59:51", "size": "11.0B" }, "yyets_sqlite.zip": { "checksum": "7e1659ab5cbc98b21155c3debce3015c39f1ec05", "date": "2021-06-14 12:59:51", "size": "15.0B" } } ``` # 公告 ## 添加公告 * POST `/api/announcement`, json 字段 content ## 获取公告 * GET `/api/announcement`,接受URL参数 size、page ```json { "data": [ { "username": "Benny", "date": "2021-06-15 16:28:16", "browser": "PostmanRuntime/7.28.0", "content": "hello" } ], "count": 1 } ``` # 豆瓣 ## 获取简介等信息 * GET `/api/douban?resource_id=34812` 第一次请求会比较慢 ```json { "name": "逃避可耻却有用", "doubanId": 26816519, "doubanLink": "https://movie.douban.com/subject/26816519/", "posterLink": "https://img2.doubanio.com/view/photo/s_ratio_poster/public/p2400201631.jpg", "resourceId": 34812, "rating": "8.4", "actors": [ "新垣结衣", "星野源", "大谷亮平", "藤井隆", "真野惠里菜", "成田凌", "山贺琴子", "宇梶刚士", "富田靖子", "古田新太", "石田百合子", "细田善彦", "古馆宽治", "叶山奖之" ], "directors": [ "金子文纪", "土井裕泰", "石井康晴" ], "genre": [ "喜剧" ], "releaseDate": "2016-10-11(日本)", "episodeCount": " 11", "episodeDuration": " 45分钟", "writers": [ "野木亚纪子", "海野纲弥" ], "year": "2016", "introduction": "森山实栗(新垣结衣饰)自研究生毕业之后就一直仕途不顺,最近更是惨遭解雇,处于“无业游民”的状态之下,日子过得十分凄惨。经由父亲的介绍,无处可去的实栗来到了名为津崎平匡(星野源饰)的单身男子家中,为其料理家事,就这样,二十五岁的实栗成为了一名家政妇。实栗心地善良手脚勤快,在她的安排和劳作下,平匡家中的一切被打理的井井有条,实栗因此获得了平匡的信赖,亦找到了生活的重心,重新振作了起来。然而好景不长,实栗的父母决定搬离此地,这也就意味着实栗必须“离职”。实在无法接受此事的实栗决定和平匡“契约结婚”,在外装做夫妻,在内依旧是雇主和职员。就这样,这对“孤男寡女”开始了他们的同居生活。" } ``` ## 获取海报 * GET `api/douban?resource_id=34812&type=image` 会返回相应格式(jpeg、webp、png等)的图片,与上次数据中 `posterLink`所看到的内容相同 # 验证码 ## 获取验证码 * GET `/api/captcha?id=1234abc`,id是随机生成的字符串 API 返回字符串,形如 `data:image/png;base64,iVBORw0KGgoAAA....` ## 校验验证码 除去评论中的校验验证码,如有额外需求,也可以使用 POST 方法校验 * POST `/api/captcha` ```json { "id": "1234abc", "captcha": "38op" } ``` # 豆瓣报错 ## 提交 * POST `/api/douban/report` ```json { "captcha_id": "用户输入的验证码", "id": "验证码id", "content": "内容难过-咔咔", "resource_id": 23133312 } ``` ## 查询 * GET `/api/douban/report` ```json { "data": [ { "resource_id": 2333, "content": [ "dddd", "1款大家咔咔", "1款大家dadadada-咔咔" ] }, { "resource_id": 23133, "content": [ "1款大家dadadada-咔咔" ] }, { "resource_id": 23133312, "content": [ "1款大家dadadada-咔咔" ] } ] } ``` # 通知 只有登录用户可以获取,只有楼主能够获取到通知,其他楼层的人获取不到。 ## 获取通知 * GET `http://127.0.0.1:8888/api/notification` 支持URL参数page和size,默认1和5,size是已读和未读共享的,优先返回未读数据 ```json { "username": "user1", "unread_item": [ { "username": "user3", "date": "2021-08-14 20:23:02", "browser": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:86.1) Gecko/20100101 Firefox/86.1", "content": "@user2u3 to u2", "resource_id": 233, "type": "child", "id": "6117b5a6598f80ca3ebb13ed", "reply_to_content": "@user1ajnkwa" }, { "username": "user3", "date": "2021-08-14 20:22:37", "browser": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:86.1) Gecko/20100101 Firefox/86.1", "content": "@user1u3", "resource_id": 233, "type": "child", "id": "6117b58dce422260bcbb13ec", "reply_to_content": "hello" } ], "read_item": [ { "username": "user2", "date": "2021-08-14 20:10:13", "browser": "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:86.1) Gecko/20100101 Firefox/86.1", "content": "@user1ajnkwa", "resource_id": 233, "type": "child", "id": "6117b2a59195e6b1ab86eb30", "reply_to_content": "hello" } ], "unread_count": 2, "read_count": 1 } ``` # 已读、未读消息 * PATCH `http://127.0.0.1:8888/api/notification` json body ```json { "comment_id": "61013c839633a80254ef2e38", "verb": "unread" } ``` verb只可以是 `read` 和 `unread` comment_id 是评论的id # 分类 最灵活的API! 推荐组合方式: 国家、分类 * GET `/api/category` 参数 `douban=True` 会返回豆瓣信息,默认不返回 支持如下参数,均为可选参数,可自由组合,URL参数可以URL编码,也可以不编码: ## 分页参数 * page 默认1 * size 默认15 ## channel 大分类,电影、电视剧、公开课,详细分类可以使用 `channel_cn` ```python [('movie', 12057), ('tv', 5428), ('openclass', 35), ('discuss', 1)] ``` ## channel_cn 推荐值: ```python [('电影', 12057), ('美剧', 2119), ('日剧', 1215), ('英剧', 641), ('纪录片', 314), ('韩剧', 212), ('动画', 126), ('泰剧', 112), ('加剧', 82), ('西剧', 62), ('澳剧', 61)] ``` 全部可选值: ```python [('电影', 12057), ('美剧', 2119), ('日剧', 1215), ('英剧', 641), ('纪录片', 314), ('韩剧', 212), ('动画', 126), ('泰剧', 112), ('加剧', 82), ('西剧', 62), ('澳剧', 61), ('真人秀', 51), ('法剧', 50), ('德剧', 41), ('公开课', 35), ('其剧', 34), ('越剧', 23), ('巴剧', 21), ('俄剧', 21), ('意剧', 19), ('墨剧', 16), ('印剧', 16), ('土剧', 16), ('\x00剧', 12), ('电视电影', 12), ('脱口秀', 10), ('挪威剧', 9), ('丹麦剧', 8), ('综艺', 7), ('葡萄牙剧', 6), ('颁奖礼', 5), ('以色列剧', 4), ('新剧', 4), ('菲律宾剧', 4), ('动漫', 4), ('瑞典剧', 4), ('新西兰剧', 4), ('神剧', 3), ('短视频', 3), ('舞台剧', 3), ('MV', 3), ('演讲', 3), ('颁奖典礼', 3), ('比利时剧', 3), ('南非剧', 3), ('电视剧', 3), ('晨间剧', 2), ('短片', 2), ('荷兰剧', 2), ('巴西电视剧', 2), ('爱尔兰剧', 2), ('汽车三贱客', 2), ('芬兰剧', 2), ('大剧', 2), ('美剧 律政', 1), ('美剧/英剧', 1), ('小镇疑云(美版)', 1), ('动画片', 1), ('埃剧', 1), ('探案', 1), ('纪录', 1), ('演唱会', 1), ('冰岛剧', 1), ('深夜剧', 1), ('萌剧', 1), ('律政/剧情', 1), ('2013年BBC历史记录片', 1), ('催眠剧', 1), ('波兰剧', 1), ('幼教', 1), ('约旦', 1), ('闹剧', 1), ('浪漫/喜剧', 1), ('悬疑/罪案', 1), ('BBC世界杯专题纪录片', 1), ('克罗地亚剧', 1), ('台剧', 1), ('墨西哥剧', 1), ('惊悚', 1), ('阿拉伯剧', 1), ('委内瑞拉电视剧', 1), ('音乐会', 1), ('巴西剧', 1), ('新闻', 1), ('土耳其剧', 1), ('约旦剧', 1), ('发布会', 1), ('丹麦瑞典合拍', 1), ('捷克剧', 1), ('越南剧', 1), ('剧情', 1), ('墨西哥电视剧', 1), ('韩综', 1), ('花絮', 1), ('', 1)] ``` ## area **推荐使用** 推荐值 ```python [('美国', 9057), ('日本', 2233), ('英国', 1637), ('法国', 902), ('韩国', 763), ('其他', 535), ('德国', 402), ('加拿大', 313), ('西班牙', 280), ('印度', 247), ('俄罗斯', 234), ('泰国', 191), ('澳大利亚', 182), ('意大利', 150), ('', 109), ('越南', 60), ('巴西', 54), ('大陆', 52), ('墨西哥', 40), ('土耳其', 35), ('新加坡', 23), ('香港', 20), ('埃及', 1), ('台湾', 1)] ``` ## show_type 不推荐使用!数据缺失非常严重 ```python [('', 16751), ('纪录片', 314), ('动画', 126), ('日剧', 110), ('真人秀', 51), ('电视电影', 12), ('脱口秀', 10), ('挪威剧', 9), ('美剧', 8), ('丹麦剧', 8), ('综艺', 7), ('葡萄牙剧', 6), ('颁奖礼', 5), ('以色列剧', 4), ('菲律宾剧', 4), ('动漫', 4), ('瑞典剧', 4), ('新西兰剧', 4), ('神剧', 3), ('英剧', 3), ('短视频', 3), ('舞台剧', 3), ('MV', 3), ('演讲', 3), ('颁奖典礼', 3), ('比利时剧', 3), ('南非剧', 3), ('晨间剧', 2), ('短片', 2), ('荷兰剧', 2), ('新剧', 2), ('巴西电视剧', 2), ('爱尔兰剧', 2), ('汽车三贱客', 2), ('芬兰剧', 2), ('泰剧', 1), ('美剧 律政', 1), ('美剧/英剧', 1), ('小镇疑云(美版)', 1), ('动画片', 1), ('探案', 1), ('纪录', 1), ('演唱会', 1), ('冰岛剧', 1), ('深夜剧', 1), ('萌剧', 1), ('律政/剧情', 1), ('2013年BBC历史记录片', 1), ('催眠剧', 1), ('波兰剧', 1), ('幼教', 1), ('约旦', 1), ('闹剧', 1), ('浪漫/喜剧', 1), ('韩剧', 1), ('悬疑/罪案', 1), ('西剧', 1), ('BBC世界杯专题纪录片', 1), ('克罗地亚剧', 1), ('墨西哥剧', 1), ('惊悚', 1), ('阿拉伯剧', 1), ('委内瑞拉电视剧', 1), ('音乐会', 1), ('巴西剧', 1), ('新闻', 1), ('土耳其剧', 1), ('约旦剧', 1), ('发布会', 1), ('丹麦瑞典合拍', 1), ('捷克剧', 1), ('越南剧', 1), ('剧情', 1), ('墨西哥电视剧', 1), ('韩综', 1), ('花絮', 1)] ``` ## 请求范例 全部使用 `size=1&douban=True`做为范例,响应结构如下 注意,由于并不是所有的资源都有豆瓣信息,因此有些可能douban字段为 `{}` ```json { "data": [ { "id": 30552, "cnname": "极限战队", "enname": "Ultraforce", "aliasname": "极端力量", "channel": "tv", "channel_cn": "美剧", "area": "美国", "show_type": "", "expire": "1610397126", "views": 0, "year": [ 2013 ], "douban": { "name": "极限战队", "doubanId": 1295384, "doubanLink": "https://movie.douban.com/subject/1295384/", "posterLink": "https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2512733819.jpg", "posterData": "base64编码的图片", "resourceId": 30552, "rating": "7.9", "actors": [ "卡斯帕·范·迪恩", "迪娜·迈耶", "丹妮丝·理查兹", "杰克·布塞", "尼尔·帕特里克·哈里斯", "克兰西·布朗", "塞斯·吉列姆", "帕特里克·茂顿", "迈克尔·艾恩塞德", "露·麦克拉纳罕", "马绍尔·贝尔", "埃里克·布鲁斯科特尔", "马特·莱文", "布蕾克·林斯利", "安东尼·瑞维瓦", "布兰达·斯特朗", "迪恩·诺里斯", "克里斯托弗·柯里", "莱诺尔·卡斯多夫", "罗伯特·斯莫特", "斯蒂芬·福特", "罗伯特·大卫·豪尔", "艾米·斯马特", "蒂莫西·奥门德森", "代尔·戴" ], "directors": [ "保罗·范霍文" ], "genre": [ "动作", "科幻", "惊悚", "冒险" ], "releaseDate": "1997-11-07", "episodeCount": "", "episodeDuration": "129 分钟", "writers": [ "爱德华·诺麦尔", "罗伯特·A·海因莱因" ], "year": "1997", "introduction": "高中生瑞科(卡斯帕•凡•迪恩CasperVanDien饰)毕业后,在女友卡门(丹妮丝•理查兹DeniseRichards饰)的鼓动下,违背了父亲的意志,加入了机械化步兵学院,卡门亦加入了海军学院。在他们参加训练不久后,地球遭到了来自外星球的昆虫袭击。瑞科的亲人均惨遭杀害,卡门将拍摄到的影像传送给了瑞科。悲愤交加的瑞科率领部下投入到了对抗外星昆虫的战斗中。然而,军队低估了这些昆虫的实力。在一次遭遇战中,10万军队惨遭杀戮,只剩瑞科、卡门等几人侥幸逃生。瑞科亲眼目睹了恐怖的杀戮场面,意外获知了这些昆虫变得如此聪明、强大的秘密。瑞科意识到必须制造更先进的武器才能对付这些昆虫,人类的反击开始了!" } } ], "count": 9057 } ``` * 日剧 `http://127.0.0.1:8888/api/category?channel_cn=日剧` * 国家为"美国"的资源 `http://127.0.0.1:8888/api/category?area=美国` * 美国的纪录片 `http://127.0.0.1:8888/api/category?&area=美国&channel_cn=纪录片` * 日本的电影 `http://127.0.0.1:8888/api/category?size=1&area=日本&channel=movie` 或 `channel_cn=电影` * 动漫 `http://127.0.0.1:8888/api/category?size=1&channel_cn=动漫` # 最新资源 * GET `/api/resource/latest` 可选URL参数 size,最大100,超过100无效。如 `http://127.0.0.1:8888/api/resource/latest?size=5` 即为获取最新5条数据 ```json { "data": [ { "name": "速度与激情9-F9 (2021) (1080p) [BluRay] [HD FULL].avi 1.52 GB", "timestamp": "1623415867", "size": "1.52GB", "resource_id": 39894, "res_name": "速度与激情9", "date": "2021-06-11 20:51:07" }, { "name": "洛基-E01", "timestamp": "1623415867", "size": "788.53MB", "resource_id": 41382, "res_name": "洛基", "date": "2021-06-11 20:51:07" }, { "name": "致命女人-EP01", "timestamp": "1623415867", "size": "790MB", "resource_id": 38413, "res_name": "致命女人", "date": "2021-06-11 20:51:07" } ] } ``` ================================================ FILE: DEVELOPMENT.md ================================================ # 项目手册 # 网站部署方式 ## 一键脚本 **支持amd64/arm64,请先安装 docker、docker-compose和curl** **为了安全考虑,安装完成后程序将监听在 127.0.0.1 。如有需要请自行修改 `docker-compose.yml`的127.0.0.1为0.0.0.0** ### Linux/macOS: ```bash bash -c "$(curl -fsSL https://raw.githubusercontent.com/tgbot-collection/YYeTsBot/master/scripts/install.sh)" ```` ### Windows 请再安装一个 [git for windows](https://gitforwindows.org/),然后桌面空白处右键,选择 `git bash here` 再然后 ```bash bash -c "$(curl -fsSL https://raw.githubusercontent.com/tgbot-collection/YYeTsBot/master/scripts/install.sh)" ```` ## docker-compose 参考 `yyetsweb`目录下的 `README` # bot 可以选择docker,也可以直接运行在机器上。 ## docker-compose * 参见 [这里](https://github.com/tgbot-collection/BotsRunner) * 本目录下的 `docker-compose.yml` 也可以作为参考 * nginx reverse proxy可以[参考这里](https://github.com/BennyThink/WebsiteRunner) * [参考这里获取数据库](yyetsweb/README.md) ```shell # 启动数据库 docker-compose up -d mongo # 导入数据库 docker yyets_mongo.gz 1234da:/tmp # 进入容器 docker-compose exec mongo bash mongorestore --gzip --archive=yyets_mongo.gz --nsFrom "share.*" --nsTo "zimuzu.*" exit # 开启服务 docker-compose up -d ``` ## replica set 配置方式 ```shell ln -s docker-compose-replica.yml docker-compose.override.yml docker-compose up -d mongo # 进入shell rs.initiate({ _id: "rs0", members: [{ _id: 0, host: "localhost:27017" }, { _id: 1, host: "mongo2:27017" }] }) # 调整优先级 cfg = rs.conf() cfg.members[0].priority = 0.5 cfg.members[1].priority = 0.5 cfg.members[2].priority = 1 # 最高 rs.reconfig(cfg) ``` ## 常规方式 ### 1. 环境 推荐使用Python 3.6+,环境要求 * redis * 可选MongoDB ```bash pip install -r requirements.txt ``` ### 2. 配置TOKEN 修改`config.py`,根据需求修改如下配置项 * TOKEN:bot token * USERNAME:人人影视的有效的用户名 * PASSWORD :人人影视的有效的密码 * MAINTAINER:维护者的Telegram UserID * REDIS:redis的地址,一般为localhost * MONGODB: mongodb的地址 ### 3. 导入数据(可选) 如果使用yyets,那么需要导入数据到MongoDB。可以在将数据导入到MySQL之后使用如下脚本导入数据到MongoDB ```shell python3 web/prepare/convert_db.py ``` ### 4. 运行 ```bash python /path/to/YYeTsBot/yyetsbot/bot.py ``` ### 5. systemd 单元文件 参考 `yyets.service` # 添加新的资源网站 欢迎各位开发提交新的资源网站!方法非常简单,重写 `BaseFansub`,实现`search_preview`和`search_result`,按照约定的格式返回数据。 然后把类名字添加到 `FANSUB_ORDER` 就可以了!是不是很简单! # 防爬 ## 1. referer 网站使用referer验证请求 ## 2. rate limit 404的访问会被计数,超过10次会被拉入黑名单,持续3600秒,再次访问会持续叠加。 # 持续部署 使用[Docker Hub Webhook](https://docs.docker.com/docker-hub/webhooks/) (顺便吐槽一句,这是个什么垃圾文档……自己实现validation吧) 参考listener [Webhook listener](https://github.com/tgbot-collection/Webhook) # 归档资源下载 ## Telegram 频道分享 * 包含了2021年1月11日为止的人人影视最新资源,MySQL为主。有兴趣的盆友可以用这个数据进行二次开发[戳我查看详情](https://t.me/mikuri520/668) * 字幕侠离线数据库 [从这里下载](https://t.me/mikuri520/715),这个数据比较粗糙,并且字幕侠网站还在,因此不建议使用这个 ## 本地下载 如果无法访问Telegram,可以使用如下网址下载数据 * [MongoDB](https://yyets.click/data/yyets_mongo.gz) * [MySQL](https://yyets.click/data/yyets_mysql.zip) * [SQLite](https://yyets.click/data/yyets_sqlite.zip) # API 文档 参考 [API.md](API.md) ================================================ FILE: Dockerfile ================================================ FROM python:3.12-alpine AS pybuilder RUN apk update && apk add --no-cache tzdata ca-certificates alpine-sdk libressl-dev libffi-dev cargo && \ apk add tiff-dev jpeg-dev openjpeg-dev zlib-dev freetype-dev lcms2-dev \ libwebp-dev tcl-dev tk-dev harfbuzz-dev fribidi-dev libimagequant-dev libxcb-dev libpng-dev COPY requirements.txt /requirements.txt RUN pip3 install --user -r /requirements.txt && rm /requirements.txt FROM python:3.12-alpine AS runner RUN apk update && apk add --no-cache libressl jpeg-dev openjpeg-dev libimagequant-dev tiff-dev freetype-dev libxcb-dev FROM alpine AS nodebuilder RUN apk add curl jq RUN wget $(curl -s https://api.github.com/repos/tgbot-collection/YYeTsFE/releases/tags/ads-2025-03-27 | jq -r '.assets[] | select(.name == "build.zip") | .browser_download_url') RUN unzip build.zip && rm build.zip FROM runner RUN apk add mongodb-tools mysql-client COPY . /YYeTsBot COPY --from=pybuilder /root/.local /usr/local COPY --from=pybuilder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=pybuilder /usr/share/zoneinfo /usr/share/zoneinfo COPY --from=nodebuilder /build /YYeTsBot/yyetsweb/templates/ ENV TZ=Asia/Shanghai WORKDIR /YYeTsBot/yyetsbot CMD ["python", "yyetsbot.py"] ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2021 Benny Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: Makefile ================================================ OS = darwin linux windows ARCH = amd64 arm64 WEB := $(shell cd yyetsweb;pwd) DATE:=$(shell date +"%Y-%m-%d %H:%M:%S") update: git pull git submodule update --remote docker-dev: make update docker build --build-arg env=dev -t bennythink/yyetsbot . docker-compose up -d docker: # production configuration cp .env YYeTsFE/.env # docker buildx create --use --name mybuilder docker buildx build --platform=linux/amd64,linux/arm64 -t bennythink/yyetsbot . --push clean: docker rmi bennythink/yyetsbot:latest || true rm -rf YYeTsFE/build rm -rf YYeTsFE/dist @rm -rf yyetsweb/builds @rm -f yyetsweb/assets.go current: echo "Installing dependencies..." cd $(WEB);go get -u github.com/go-bindata/go-bindata/... echo "Build static files..." make asset echo "Build current platform executable..." cd $(WEB); go build .; asset: cd $(WEB);go get -u github.com/go-bindata/go-bindata/... ;go install github.com/go-bindata/go-bindata/... cd $(WEB)/templates;~/go/bin/go-bindata -o assets.go ./... mv yyetsweb/templates/assets.go yyetsweb/assets.go frontend: cd YYeTsFE; yarn && yarn run release cp -R YYeTsFE/build/* yyetsweb/templates/ all: make clean make frontend make asset @echo "Build all platform executables..." @for o in $(OS) ; do \ for a in $(ARCH) ; do \ echo "Building $$o-$$a..."; \ if [ "$$o" = "windows" ]; then \ cd $(WEB);CGO_ENABLED=0 GOOS=$$o GOARCH=$$a go build -ldflags="-s -w -X 'main.buildTime=$(DATE)'" -o builds/yyetsweb-$$o-$$a.exe .; \ else \ cd $(WEB);CGO_ENABLED=0 GOOS=$$o GOARCH=$$a go build -ldflags="-s -w -X 'main.buildTime=$(DATE)'" -o builds/yyetsweb-$$o-$$a .; \ fi; \ done \ done @make universal @make checksum checksum: yyetsweb/builds/* @echo "Generating checksums..." if [ "$(shell uname)" = "Darwin" ]; then \ shasum -a 256 $^ >> $(WEB)/builds/checksum-sha256sum.txt ;\ else \ sha256sum $^ >> $(WEB)/builds/checksum-sha256sum.txt; \ fi universal: @echo "Building macOS universal binary..." docker run --rm -v $(WEB)/builds:/app/ bennythink/lipo-linux -create -output \ yyetsweb-darwin-universal \ yyetsweb-darwin-amd64 yyetsweb-darwin-arm64 file $(WEB)/builds/yyetsweb-darwin-universal release: git tag $(shell git rev-parse --short HEAD) git push --tags ci-test: docker run --rm bennythink/yyetsbot /bin/sh -c "cd /YYeTsBot/yyetsweb/tests;python -m unittest discover -p '*_test.py'" test: cd $(WEB)/tests;python -m unittest discover -p '*_test.py' ================================================ FILE: README.md ================================================ # YYeTsBot [![build docker image](https://github.com/tgbot-collection/YYeTsBot/actions/workflows/docker.yaml/badge.svg)](https://github.com/tgbot-collection/YYeTsBot/actions/workflows/docker.yaml) [![Docker Pulls](https://img.shields.io/docker/pulls/bennythink/yyetsbot)](https://hub.docker.com/r/bennythink/yyetsbot) ![](assets/index.png) 👉 前端[在这里](https://github.com/tgbot-collection/YYeTsFE) 👈 # 使用说明 直接发送想要看的剧集名称就可以了,可选分享网页或者链接(ed2k和磁力链接)。 搜索资源时,会按照我预定的优先级(人人影视离线、字幕侠)进行搜索,当然也可以使用命令强制某个字幕组,如 `/yyets_offline 逃避可耻` ## 命令 ``` start - 开始使用 help - 帮助 credits - 致谢 ping - 运行状态 settings - 获取公告 zimuxia_online - 字幕侠在线数据 newzmz_online - new字幕组在线数据 yyets_offline - 人人影视离线数据 ``` # 截图 ## 常规搜索 ![](assets/1.png) ## 资源分享站截图 本网站永久免费,并且没有任何限制。 ![](assets/new_resource.png) ![](assets/2.png) 支持收藏功能,会跨设备同步 ![](assets/like.png) ## 指定字幕组搜索 目前只支持YYeTsOffline、ZimuxiaOnline和NewzmzOnline ![](assets/3.png) # 如何下载磁力和电驴资源?迅雷提示资源敏感 ## 电驴资源 请下载使用 [eMule](https://www.emule-project.net/home/perl/general.cgi?l=42) ,然后添加如下两个server list * [server.met](http://www.server-met.de/) * [server list for emule](https://www.emule-security.org/serverlist/) ![](assets/emule.jpeg) 速度还可以哦 ## 磁力 使用百度网盘、115等离线,或使用utorrent等工具,记得更新下 [tracker list](https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt) 哦 # 小白使用 想要自己留一份资源,但是又不懂编程? 没关系!目前提供两种方式,请根据自己情况选择 “离线使用” 意味着可以断网使用,但是不会自动更新资源,需要手动更新数据库;“在线应用” 意味着需要有互联网才可以使用。 ## 离线 完整运行包 这个版本是新的UI,拥有全部的最新功能。运行在你本地的电脑上,不依赖外界环境。 [参考文档](https://github.com/tgbot-collection/YYeTsBot/blob/master/DEVELOPMENT.md#%E4%B8%80%E9%94%AE%E8%84%9A%E6%9C%AC) ## 离线 一键运行包 一键运行包。拥有比较新的UI,只不过只有最基础的搜索、查看资源的功能。使用方法步骤如下 1. 请到 [GitHub Release](https://github.com/tgbot-collection/YYeTsBot/releases) ,找最新的 `YYeTsBot 离线一键运行包` 2. windows:双击第一步下载的exe文件; macos/Linux,cd到你的目录, `chmod +x yyetsweb ; ./yyetsweb` 3. 程序会自动下载数据库并启动。等到出现启动提示时, 打开浏览器 http://127.0.0.1:8888 就可以看到熟悉的搜索界面啦! ## 在线 原生应用程序 使用tauri封装的网页。使用方法如下 1. 请到 [GitHub Release](https://github.com/tgbot-collection/YYeTsBot/releases) ,找最新的 `YYeTsBot App` 2. windows下载msi,macos下载dmg或tar.gz,Linux下载AppImage或deb(Debian based) 3. 安装后,打开App,就可以看到熟悉的搜索界面啦! # 开发 ## 网站开发 如何部署、参与开发、具体API接口,可以 [参考这个文档](DEVELOPMENT.md) ## Python Library 也可以作为Python Library去调用 `pip3 install yyets` ``` >>> from yyets import YYeTs >>> yy=YYeTs("逃避") [2021-09-21 19:22:32 __init__.py:54 I] Fetching 逃避可耻却有用...https://yyets.click/api/resource?id=34812 [2021-09-21 19:22:33 __init__.py:54 I] Fetching 无法逃避...https://yyets.click/api/resource?id=29540 [2021-09-21 19:22:35 __init__.py:54 I] Fetching 逃避者...https://yyets.click/api/resource?id=37089 >>> yy.result [, , ] >>> for y in yy.result: print(y) 逃避可耻却有用 - NIGERUHA HAJIDAGA YAKUNITATSU 无法逃避 - Inescapable 逃避者 - Shirkers >>> yy.result[0].cnname '逃避可耻却有用' >>> yy.result[0].list [{'season_num': '101', 'season_cn': '单剧', 'items': {'APP': [{'ite ``` # Credits * [人人影视](http://www.zmz2019.com/) * [追新番](http://www.fanxinzhui.com/) * [FIX字幕侠](https://www.zimuxia.cn/) * [new字幕组](https://newzmz.com/) # 支持我 觉得本项目对你有帮助?你可以通过以下方式表达你的感受: * 感谢字幕组 * 点一个star🌟和fork🍴 * 宣传,使用,提交问题报告 * 收藏[我的博客](https://dmesg.app/) * [Telegram Channel](https://t.me/mikuri520) ## 捐助 * [给我买杯咖啡?](https://www.buymeacoffee.com/bennythink) * [爱发电?](https://afdian.net/@BennyThink) * [GitHub Sponsor](https://github.com/sponsors/BennyThink) * [Stripe](https://buy.stripe.com/dR67vU4p13Ox73a6oq) stripe # License [MIT](LICENSE) ================================================ FILE: conf/yyets.dmesg.app.conf ================================================ server { listen 80; listen [::]:80; server_name yyetsdev.dmesg.app; index index.html index.htm index.php default.html default.htm default.php; location / { proxy_pass_header Server; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_pass http://yyets-web:8888; } access_log /var/log/nginx/yyetsdev.dmesg.app.log; } server { listen 443 ssl http2 ; listen [::]:443 ssl http2; server_name yyetsdev.dmesg.app; index index.html index.htm index.php default.html default.htm default.php; ssl_certificate /etc/nginx/certs/dmesg_cf_cert.pem; ssl_certificate_key /etc/nginx/certs/dmesg_cf_key.pem; ssl_session_timeout 20m; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_dhparam /etc/nginx/certs/dhparam.pem; ssl_ciphers 'TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; ssl_stapling on; ssl_stapling_verify on; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; add_header X-Frame-Options "SAMEORIGIN" always; add_header X-Xss-Protection "1; mode=block" always; add_header X-Content-Type-Options "nosniff" always; add_header Content-Security-Policy "default-src https: 'unsafe-inline' 'unsafe-eval' data:;"; add_header Referrer-Policy "no-referrer-when-downgrade"; location / { proxy_pass_header Server; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_pass http://yyets-web:8888; } access_log /var/log/nginx/yyetsdev.dmesg.app.log; } ================================================ FILE: conf/yyets.env ================================================ mongo=mongo redis=redis email_user=username email_password=passord email_host=mailhog email_port=1025 ================================================ FILE: docker-compose.yml ================================================ version: '3.1' services: redis: image: redis:7-alpine restart: always logging: driver: none mongo: image: mongo:6 restart: always volumes: - ./mongo_data/mongodb:/data/db command: --quiet logging: driver: none ports: - "127.0.0.1:27017:27017" meili: image: getmeili/meilisearch:v1.0.2 restart: always environment: - MEILI_HTTP_PAYLOAD_SIZE_LIMIT=1073741824 #1GiB volumes: - meilisearch_data:/meili_data mysql: image: ubuntu/mysql:8.0-22.04_beta restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: 'root' logging: driver: none command: "--skip-log-bin --default-authentication-plugin=mysql_native_password" bot: image: bennythink/yyetsbot depends_on: - redis - mongo restart: always env_file: - env/yyets.env web: image: bennythink/yyetsbot restart: always env_file: - env/yyets.env depends_on: - mongo - redis - mysql working_dir: /YYeTsBot/yyetsweb/ volumes: - ./subtitle_data:/YYeTsBot/yyetsweb/subtitle_data command: [ "python3","server.py","-h=0.0.0.0" ] ports: - "127.0.0.1:8888:8888" - "172.17.0.1:8888:8888" volumes: meilisearch_data: ================================================ FILE: requirements.txt ================================================ requests==2.32.5 pytelegrambotapi==4.29.1 beautifulsoup4==4.14.0 tgbot-ping==1.0.7 redis==6.4.0 apscheduler==3.11.0 pymongo==4.15.1 tornado==6.5.2 captcha==0.7.1 passlib==1.7.4 fakeredis==2.31.3 filetype==1.2.0 requests[socks] tqdm==4.67.1 retry==0.9.2 pymysql==1.1.2 git+https://github.com/tgbot-collection/python-akismet openpyxl==3.1.5 zhconv==1.4.3 jinja2==3.1.6 coloredlogs==15.0.1 meilisearch==0.33.0 pillow==12.1.1 pytz==2025.2 ================================================ FILE: scripts/install.sh ================================================ #!/bin/bash function splash() { echo "本脚本会在 ${HOME}/YYeTs 部署人人影视web" echo "你确定要继续吗?输入YES确认" read -r confirm if [ "$confirm" = "YES" ]; then echo "继续安装" else echo "取消安装" exit 1 fi } function prepare() { echo "[1/5] 准备中……" mkdir -p "${HOME}"/YYeTs cd "${HOME}"/YYeTs || exit } function prepare_compose() { echo "[2/5] 下载docker-compose.yml" curl -o docker-compose.yml https://raw.githubusercontent.com/tgbot-collection/YYeTsBot/master/docker-compose.yml sed -ie '58,59d' docker-compose.yml } function import_db() { echo "[3/5] 正在准备MongoDB" docker-compose up -d mongo echo "[4/5] 正在下载并导入数据库" curl -o /tmp/yyets_mongo.gz https://yyets.click/dump/yyets_mongo.gz file /tmp/yyets_mongo.gz docker cp /tmp/yyets_mongo.gz yyets_mongo_1:/tmp # special for windows result=$(uname -a | grep "Msys") if [[ "$result" != "" ]]; then echo "docker exec yyets_mongo_1 mongorestore --gzip --archive=/tmp/yyets_mongo.gz --nsFrom "share.*" --nsTo "zimuzu.*"" >windows.bat echo "docker exec yyets_mongo_1 rm /tmp/yyets_mongo.gz" >>windows.bat cmd "/C windows.bat" rm windows.bat else docker exec yyets_mongo_1 mongorestore --gzip --archive=/tmp/yyets_mongo.gz --nsFrom "share.*" --nsTo "zimuzu.*" docker exec yyets_mongo_1 rm /tmp/yyets_mongo.gz fi rm /tmp/yyets_mongo.gz } function up() { echo "[5/5] 启动中……" docker-compose up -d echo "部署成功。您可以访问 http://IP:8888 查看" } function deploy() { splash prepare prepare_compose import_db up } function cleanup() { echo "您确认要进行清理吗?网站将会停止运行,对应的的docker image也将会被清除。输入YES确认" read -r confirm if [ "$confirm" = "YES" ]; then echo "继续清理,可能会要求您进行sudo鉴权" docker-compose -f "${HOME}"/YYeTs/docker-compose.yml down sudo rm -rf "${HOME}"/YYeTs docker rmi bennythink/yyetsbot echo "清理完成。" else echo "取消清理" exit 1 fi } function upgrade() { docker pull bennythink/yyetsbot docker-compose -f "${HOME}"/YYeTs/docker-compose.yml up -d echo "更新成功" } select MENU_ITEM in "部署YYeTs" "清理YYeTs" "更新YYeTs"; do echo "准备$MENU_ITEM YYeTsWeb..." case $MENU_ITEM in "部署YYeTs") deploy ;; "清理YYeTs") cleanup ;; "更新YYeTs") upgrade ;; *) echo "无效的操作" ;; esac break done ================================================ FILE: scripts/migrate_sub.py ================================================ #!/usr/bin/env python3 # coding: utf-8 # YYeTsBot - migrate_sub.py import pymongo import pymysql from pymysql.cursors import DictCursor con = pymysql.connect(host="mysql", user="root", password="root", database="yyets", charset="utf8") cur = con.cursor(cursor=DictCursor) mongo_client = pymongo.MongoClient(host="mongo") col = mongo_client["zimuzu"]["subtitle"] cur.execute("select * from subtitle") # 56134 rows for sub in cur.fetchall(): col.insert_one(sub) ================================================ FILE: setup.py ================================================ #!/usr/bin/env python # -*- coding: utf-8 -*- # Note: To use the 'upload' functionality of this file, you must: # $ pipenv install twine --dev import io import os import sys from shutil import rmtree from setuptools import Command, setup # Package meta-data. NAME = "yyets" DESCRIPTION = "https://yyets.click/ wrapper" URL = "https://github.com/tgbot-collection/YYeTsBot" EMAIL = "benny.think@gmail.com" AUTHOR = "BennyThink" REQUIRES_PYTHON = ">=3.6.0" VERSION = "1.0.1" # What packages are required for this module to be executed? REQUIRED = ["requests"] # What packages are optional? EXTRAS = { # 'fancy feature': ['django'], } # The rest you shouldn't have to touch too much :) # ------------------------------------------------ # Except, perhaps the License and Trove Classifiers! # If you do change the License, remember to change the Trove Classifier for that! here = os.path.abspath(os.path.dirname(__file__)) # Import the README and use it as the long-description. # Note: this will only work if 'README.md' is present in your MANIFEST.in file! try: with io.open(os.path.join(here, "README.md"), encoding="utf-8") as f: long_description = "\n" + f.read() except FileNotFoundError: long_description = DESCRIPTION # Load the package's __version__.py module as a dictionary. about = {} if not VERSION: project_slug = NAME.lower().replace("-", "_").replace(" ", "_") with open(os.path.join(here, project_slug, "__version__.py")) as f: exec(f.read(), about) else: about["__version__"] = VERSION class UploadCommand(Command): """Support setup.py upload.""" description = "Build and publish the package." user_options = [] @staticmethod def status(s): """Prints things in bold.""" print("\033[1m{0}\033[0m".format(s)) def initialize_options(self): pass def finalize_options(self): pass def run(self): try: self.status("Removing previous builds…") rmtree(os.path.join(here, "dist")) except OSError: pass self.status("Building Source and Wheel (universal) distribution…") os.system("{0} setup.py sdist bdist_wheel --universal".format(sys.executable)) self.status("Uploading the package to PyPI via Twine…") os.system("twine upload dist/*") self.status("Pushing git tags…") os.system("git tag v{0}".format(about["__version__"])) os.system("git push --tags") sys.exit() # Where the magic happens: setup( name=NAME, version=about["__version__"], description=DESCRIPTION, long_description=long_description, long_description_content_type="text/markdown", author=AUTHOR, author_email=EMAIL, python_requires=REQUIRES_PYTHON, url=URL, # packages=find_packages(exclude=["tests", "*.tests", "*.tests.*", "tests.*"]), # If your package is a single module, use this instead of 'packages': packages=["yyets"], # entry_points={ # 'console_scripts': ['mycli=mymodule:cli'], # }, install_requires=REQUIRED, extras_require=EXTRAS, include_package_data=True, license="MIT", classifiers=[ # Trove classifiers # Full list: https://pypi.python.org/pypi?%3Aaction=list_classifiers "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", ], # $ setup.py publish support. cmdclass={ "upload": UploadCommand, }, ) ================================================ FILE: tea.yaml ================================================ # https://tea.xyz/what-is-this-file --- version: 1.0.0 codeOwners: - '0x2F119b4DdC0d33A1cAE392999513e8D253C9b4Db' - '0x56E743FD305c6858A4baD2893F2b2498441dF0Ce' quorum: 1 ================================================ FILE: yyets/BagAndDrag/README.md ================================================ # BagAndDrag Bag and Drag [original repo](https://github.com/tgbot-collection/BagAndDrag) 打包带走:-) ================================================ FILE: yyets/BagAndDrag/bag.py ================================================ #!/usr/local/bin/python3 # coding: utf-8 # BagAndDrag - bag.py # 1/10/21 15:29 # __author__ = "Benny " import contextlib import json import logging import os import pickle import sys import time import traceback import pymysql import requests logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(filename)s [%(levelname)s]: %(message)s') COOKIES = os.path.join(os.path.dirname(__file__), 'cookies.dump') USERNAME = os.environ.get("USERNAME") or "321" PASSWORD = os.environ.get("PASSWORD") or "xa31sge" GET_USER = "http://www.rrys2020.com/user/login/getCurUserTopInfo" AJAX_LOGIN = "http://www.rrys2020.com/User/Login/ajaxLogin" RESOURCE = "http://www.rrys2020.com/resource/{id}" SHARE_URL = "http://www.rrys2020.com/resource/ushare" # http://got002.com/api/v1/static/resource/detail?code=9YxN91 API_DATA = "http://got002.com/api/v1/static/resource/detail?code={code}" ua = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" def save_cookies(requests_cookiejar): with open(COOKIES, 'wb') as f: pickle.dump(requests_cookiejar, f) def load_cookies(): with contextlib.suppress(Exception): with open(COOKIES, 'rb') as f: return pickle.load(f) def login(): data = {"account": USERNAME, "password": PASSWORD, "remember": 1} logging.info("login in as %s", data) r = requests.post(AJAX_LOGIN, data=data, headers={"User-Agent": ua}) resp = r.json() if resp.get('status') == 1: logging.info("Login success! %s", r.cookies) save_cookies(r.cookies) else: logging.error("Login failed! %s", resp) sys.exit(1) r.close() def is_cookie_valid() -> bool: cookie = load_cookies() r = requests.get(GET_USER, cookies=cookie, headers={"User-Agent": ua}) return r.json()['status'] == 1 def insert_db(data: dict): try: # INSERT INTO resource VALUE(id,url,name,expire,data) sql = "INSERT INTO resource VALUE(%s,%s,%s,%s,%s,%s)" con = pymysql.Connect(host="127.0.0.1", user="root", password="root", database="yyets", charset="utf8mb4") cur = con.cursor() info = data["data"]["info"] id = info["id"] url = RESOURCE.format(id=id) name = '{cnname}\n{enname}\n{alias}'.format(cnname=info["cnname"], enname=info["enname"], alias=info["aliasname"]) expire = info["expire"] date = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(int(expire))) d = json.dumps(data, ensure_ascii=False, indent=2) cur.execute(sql, (id, url, name, expire, date, d)) con.commit() except Exception as e: logging.error("insert error %s", e) logging.error(traceback.format_exc()) def insert_error(rid, tb): logging.warning("Logging error into database %s", rid) sql = "INSERT INTO failure VALUE (%s,%s)" con = pymysql.Connect(host="127.0.0.1", user="root", password="root", database="yyets", charset="utf8mb4") cur = con.cursor() cur.execute(sql, (rid, tb)) con.commit() def __load_sample(): with open("sample.json") as f: return json.load(f) if __name__ == '__main__': d = __load_sample() insert_db(d) insert_error(2331, "eeeeee") ================================================ FILE: yyets/BagAndDrag/cfkv.py ================================================ #!/usr/local/bin/python3 # coding: utf-8 # BagAndDrag - cfkv.py # 1/17/21 12:08 # __author__ = "Benny " import json import os import pymysql con = pymysql.Connect(host="127.0.0.1", user="root", password="root", charset="utf8mb4", database="yyets", cursorclass=pymysql.cursors.DictCursor) cur = con.cursor() SIZE = 3000 cur.execute("select count(id) from resource") count = cur.fetchall()[0]["count(id)"] LIMIT = count // SIZE + 1 def convert_kv(): for i in range(1, LIMIT + 1): SQL = "select id,data from resource limit %d offset %d" % (SIZE, (i - 1) * SIZE) print(SQL) cur = con.cursor() cur.execute(SQL) data = cur.fetchall() write_data = [] for datum in data: write_data.append({ "key": str(datum["id"]), # keys need to be str "value": datum['data']} ) with open(f"kv/kv_data{i - 1}.json", "w") as f: json.dump(write_data, f, ensure_ascii=False) def verify_kv_data(): files = os.listdir("kv") rows = 0 for file in files: if file.startswith("kv_data"): with open(f"kv/{file}") as f: data = json.load(f) rows += len(data) print(rows, count) # assert rows == count def dump_index(): cur = con.cursor() indexes = {} cur.execute("select name, id from resource") data = cur.fetchall() for datum in data: name = datum["name"] rid = datum["id"] indexes[name] = rid with open("kv/index.json", "w") as f: write_data = [ { "key": "index", "value": json.dumps(indexes, ensure_ascii=False) } ] json.dump(write_data, f, ensure_ascii=False, indent=2) def generate_command(): files = os.listdir("kv") tpl = "wrangler kv:bulk put --namespace-id=01d666b5ebae464193998bb074f672cf {filename}" shell = [] for file in files: if file.endswith(".json"): shell.append(tpl.format(filename=file) + "\n") with open("kv/bulk.sh", "w") as f: f.writelines(shell) if __name__ == '__main__': convert_kv() verify_kv_data() dump_index() generate_command() ================================================ FILE: yyets/BagAndDrag/convert_db.py ================================================ #!/usr/local/bin/python3 # coding: utf-8 # BagAndDrag - convert_db.py # 1/12/21 18:24 # __author__ = "Benny " # convert to mongodb and con_sqlite import json import sqlite3 from typing import List import pymongo import pymysql import tqdm con_mysql = pymysql.Connect(host="127.0.0.1", user="root", password="root", charset="utf8mb4", database="yyets", cursorclass=pymysql.cursors.DictCursor ) mongo_client = pymongo.MongoClient() con_sqlite = sqlite3.connect("yyets.db") SIZE = 2000 def create_sqlite_database(): sql = [""" DROP TABLE IF EXISTS resource; """, """ create table resource ( id int primary key, url varchar(255) null unique , name text null, expire int null, expire_cst varchar(255) null, data longtext null ) """ ] cur = con_sqlite.cursor() for s in sql: cur.execute(s) con_sqlite.commit() def clear_mongodb(): mongo_client.drop_database("yyets") def sqlite_insert(data: List[dict]): cur = con_sqlite.cursor() sql = "INSERT INTO resource VALUES(?,?,?,?,?,?)" cur.executemany(sql, [list(i.values()) for i in data]) con_sqlite.commit() def mongodb_insert(data: List[dict]): db = mongo_client["yyets"] col = db["resource"] # deserialize data.data inserted = [] for i in data: i["data"] = json.loads(i["data"]) inserted.append(i) col.insert_many(inserted) def main(): create_sqlite_database() clear_mongodb() mysql_cur = con_mysql.cursor() mysql_cur.execute("select count(id) from resource") count = mysql_cur.fetchall()[0]["count(id)"] mysql_cur.execute("SELECT * FROM resource") with tqdm.tqdm(total=count * 2) as pbar: while True: data = mysql_cur.fetchmany(SIZE) if data: sqlite_insert(data) pbar.update(SIZE) mongodb_insert(data) pbar.update(SIZE) else: break if __name__ == '__main__': main() con_mysql.close() con_sqlite.close() mongo_client.close() ================================================ FILE: yyets/BagAndDrag/create_db.py ================================================ #!/usr/local/bin/python3 # coding: utf-8 # BagAndDrag - create_db.py # 1/10/21 15:23 # __author__ = "Benny " import pymysql con = pymysql.Connect(host="127.0.0.1", user="root", password="root", charset="utf8mb4") sql = [ "CREATE DATABASE yyets CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;", "use yyets", """ create table resource ( id int primary key, url varchar(255) null unique , name text null, expire int null, expire_cst varchar(255) null, data longtext null )charset utf8mb4; """, """ create table failure ( id int primary key not null, traceback longtext null )charset utf8mb4; """, ] cur = con.cursor() for s in sql: cur.execute(s) con.close() ================================================ FILE: yyets/BagAndDrag/drag.py ================================================ #!/usr/local/bin/python3 # coding: utf-8 # BagAndDrag - drag.py # 1/10/21 15:38 # __author__ = "Benny " import argparse import logging import time import traceback from concurrent.futures import ThreadPoolExecutor import requests from tqdm import tqdm from bag import (API_DATA, SHARE_URL, insert_db, insert_error, is_cookie_valid, load_cookies, login) logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(filename)s [%(levelname)s]: %(message)s') s = requests.session() ua = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" s.headers.update({"User-Agent": ua}) parser = argparse.ArgumentParser() # start_id, end_id, interval, concurrency parser.add_argument("-s", help="Start id", type=int, default=1) parser.add_argument("-e", help="End id", type=int, default=10) parser.add_argument("-i", help="Interval", default=5, type=int) parser.add_argument("-c", help="Concurrency", default=2, type=int) args = parser.parse_args() executor = ThreadPoolExecutor(max_workers=args.c) def get_api_json(resource_id): try: time.sleep(args.i) if not is_cookie_valid(): login() logging.info("resource id is %s", resource_id) res = s.post(SHARE_URL, data={"rid": resource_id}, cookies=load_cookies()).json() share_code = res['data'].split('/')[-1] logging.info("Share code is %s", share_code) data = s.get(API_DATA.format(code=share_code)).json() insert_db(data) except Exception: insert_error(resource_id, traceback.format_exc()) def main(): total = args.e + 1 - args.s list(tqdm(executor.map(get_api_json, range(args.s, args.e + 1)), total=total)) if __name__ == '__main__': main() ================================================ FILE: yyets/BagAndDrag/sample.json ================================================ { "status": 1, "info": "OK", "data": { "info": { "id": 34812, "cnname": "逃避可耻却有用", "enname": "NIGERUHA HAJIDAGA YAKUNITATSU", "aliasname": "逃避虽可耻但有用 / 雇佣妻子(港) / 月薪娇妻(台) / 逃跑是可耻但是有用 / 逃避虽可耻但很有用 / 逃避可耻但有用", "channel": "tv", "channel_cn": "日剧", "area": "日本", "show_type": "", "expire": "1610288883", "views": "0" }, "list": [ { "season_num": "101", "season_cn": "单剧", "items": { "APP": [ { "itemid": "554385", "episode": "12", "name": "yyets://N=逃避可耻却有用 人类加油!新春特别篇!!.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ganbare.Jinrui.Shinshun.Special.SP.Chi_Jap.HDTVrip.1280X720.mp4|S=1505489064|H=b7aae378e30689eab20125e3bff3bac1d16a043e|", "size": "", "yyets_trans": 0, "dateline": "1609622857", "files": [ { "way": "102", "way_cn": "百度云", "address": "https://pan.baidu.com/s/149tnE0DWW68jU5nMbdFH3w", "passwd": "x28a" }, { "way": "115", "way_cn": "微云", "address": "https://share.weiyun.com/Y2ooLgRe", "passwd": "" } ] }, { "itemid": "298235", "episode": "11", "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep11.Final.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=733784950|H=c464b9e32a999b417324b53cd92d2fbfa89b597a|", "size": "", "yyets_trans": 0, "dateline": "1491891741", "files": null }, { "itemid": "298234", "episode": "10", "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep10.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=733930391|H=3c572ede5b41a2368d0f64071ea733592876344a|", "size": "", "yyets_trans": 0, "dateline": "1491891741", "files": null }, { "itemid": "298233", "episode": "9", "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep09.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=629132305|H=129e9e73d44ccf575afc70eecdd171732fc89329|", "size": "", "yyets_trans": 0, "dateline": "1491891741", "files": null }, { "itemid": "298232", "episode": "8", "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep08.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=629207765|H=47e4573d0d72fa7d2394a377f467d0b352fce08f|", "size": "", "yyets_trans": 0, "dateline": "1491891741", "files": null }, { "itemid": "298231", "episode": "7", "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep07.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=629119647|H=bb2ff32f008d3d2e58371f34b83292ddde7b51e8|", "size": "", "yyets_trans": 0, "dateline": "1491891741", "files": null }, { "itemid": "298230", "episode": "6", "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep06.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=629239487|H=83f72df4cd440c22c8c5ab94b559773eb472c46d|", "size": "", "yyets_trans": 0, "dateline": "1491891741", "files": null }, { "itemid": "298229", "episode": "5", "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep05.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=629262958|H=30bb5f65bff74ebe60d848edd4748b3c3e7e76c7|", "size": "", "yyets_trans": 0, "dateline": "1491891741", "files": null }, { "itemid": "298228", "episode": "4", "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep04.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=629037391|H=3274e38c1ba20493a0bf62d4f7c65bec651dc3d2|", "size": "", "yyets_trans": 0, "dateline": "1491891741", "files": null }, { "itemid": "298227", "episode": "3", "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep03.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=628416378|H=9ac2a719d66b3626011c2d3366367a9d56c20e26|", "size": "", "yyets_trans": 0, "dateline": "1491891741", "files": null }, { "itemid": "298226", "episode": "2", "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep02.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|S=629086728|H=d21a081cc6a32daa85310ca6aad81e378f0b736e|", "size": "", "yyets_trans": 0, "dateline": "1491891741", "files": null }, { "itemid": "298225", "episode": "1", "name": "yyets://N=逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep01.Chi_Jap.HDTVrip.1280X720-ZhuixinFanV2.mp4|S=733967923|H=fa1a42ee8066da0aa2b66ca470814489160ad214|", "size": "", "yyets_trans": 0, "dateline": "1491891741", "files": null } ], "HR-HDTV": [ { "itemid": "554384", "episode": "12", "name": "逃避可耻却有用 人类加油!新春特别篇!!.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ganbare.Jinrui.Shinshun.Special.SP.Chi_Jap.HDTVrip.1280X720.mp4", "size": "1.4GB", "yyets_trans": 0, "dateline": "1609622857", "files": [ { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:4a6be139e640db770dbe266471e5cc81357c205e\u0026tr=http://tr.cili001.com:8070/announce\u0026tr=udp://p4p.arenabg.com:1337\u0026tr=udp://tracker.opentrackr.org:1337/announce\u0026tr=udp://open.demonii.com:1337", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "https://pan.baidu.com/s/149tnE0DWW68jU5nMbdFH3w", "passwd": "x28a" } ] }, { "itemid": "284973", "episode": "11", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep11.Final.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", "size": "699.79MB", "yyets_trans": 0, "dateline": "1482282868", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep11.Final.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|733784950|51a18ead729a833f58264700b963113a|h=ncojnutlufhohfrl42xr7t2m6lqdwzjf|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:78930bae5efe391ee6bcc4c7dcfa237b05a493f0\u0026tr=http://tracker.openbittorrent.com/announce\u0026tr=udp://tracker.openbittorrent.com:80/announce\u0026tr=udp://tr.cili001.com:6666/announce\u0026tr=http://tracker.publicbt.com/announce\u0026tr=udp://open.demonii.com:1337\u0026tr=udp://tracker.opentrackr.org:1337/announce\u0026tr=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1jHAM8aq", "passwd": "" } ] }, { "itemid": "284430", "episode": "10", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep10.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", "size": "699.93MB", "yyets_trans": 0, "dateline": "1481704074", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep10.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|733930391|15b6440bdd991d04a7ff6ba9d22e07d6|h=aodlfl4jgt7paj6v4vbolfjeho5d744t|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:1e50cd628d6829127534e5b9411d505efaea98f8\u0026tr=http://tracker.openbittorrent.com/announce\u0026tr=udp://tracker.openbittorrent.com:80/announce\u0026tr=udp://tr.cili001.com:6666/announce\u0026tr=http://tracker.publicbt.com/announce\u0026tr=udp://open.demonii.com:1337\u0026tr=udp://tracker.opentrackr.org:1337/announce\u0026tr=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1nvPP4db", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/DFw163629975", "passwd": "" } ] }, { "itemid": "283661", "episode": "9", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep09.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", "size": "599.99MB", "yyets_trans": 0, "dateline": "1481098725", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep09.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|629132305|9d5152f4f21f1a1bf053ce33abd41ad5|h=mwd7hctmq5ziym7ugc2vptn6ieazici3|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:7d047723d5697c68361b05eb20da1c50d224425e\u0026tr=http://tracker.openbittorrent.com/announce\u0026tr=udp://tracker.openbittorrent.com:80/announce\u0026tr=udp://tr.cili001.com:6666/announce\u0026tr=http://tracker.publicbt.com/announce\u0026tr=udp://open.demonii.com:1337\u0026tr=udp://tracker.opentrackr.org:1337/announce\u0026tr=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1nu9tJM5", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/9K9162939027", "passwd": "" } ] }, { "itemid": "282897", "episode": "8", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep08.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", "size": "600.06MB", "yyets_trans": 0, "dateline": "1480497463", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep08.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|629207765|1ba73a37879514eabd5ab2adf938be40|h=scdffp3xfc4e36fdhslh5p3sr76oh5a6|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:3ac5f75b4ad9e59f1a9752067eaa8ed9117a0931\u0026tr.1=http://tracker.openbittorrent.com/announce\u0026tr.2=udp://tracker.openbittorrent.com:80/announce\u0026tr.3=udp://tr.cili001.com:6666/announce\u0026tr.4=http://tracker.publicbt.com/announce\u0026tr.5=udp://open.demonii.com:1337\u0026tr.6=udp://tracker.opentrackr.org:1337/announce\u0026tr.7=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1kUGjaMb", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/Ula162377565", "passwd": "" } ] }, { "itemid": "282123", "episode": "7", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep07.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", "size": "599.98MB", "yyets_trans": 0, "dateline": "1479886413", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep07.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|629119647|1565719ed7d08c10a7bac9a740e3bdda|h=5pho2gfiivlv3rkhrh7q4dvsietozz5r|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:b8283af2cdca0b1b751f716423611e4795fbee77\u0026tr.1=http://tracker.openbittorrent.com/announce\u0026tr.2=udp://tracker.openbittorrent.com:80/announce\u0026tr.3=udp://tr.cili001.com:6666/announce\u0026tr.4=http://tracker.publicbt.com/announce\u0026tr.5=udp://open.demonii.com:1337\u0026tr.6=udp://tracker.opentrackr.org:1337/announce\u0026tr.7=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1qYfaU3E", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/AtK161811663", "passwd": "" } ] }, { "itemid": "281371", "episode": "6", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep06.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", "size": "600.09MB", "yyets_trans": 0, "dateline": "1479281049", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep06.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|629239487|9fc21b8ce21f0699f035404ad4baae6a|h=4yse343oq7vymc4qe6qtjyge2yfukf7q|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:0186d5447834e8051af6551faa4cfde44476aff5\u0026tr.1=http://tracker.openbittorrent.com/announce\u0026tr.2=udp://tracker.openbittorrent.com:80/announce\u0026tr.3=udp://tr.cili001.com:6666/announce\u0026tr.4=http://tracker.publicbt.com/announce\u0026tr.5=udp://open.demonii.com:1337\u0026tr.6=udp://tracker.opentrackr.org:1337/announce\u0026tr.7=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1slzXo3z", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/4ia161194698", "passwd": "" } ] }, { "itemid": "280656", "episode": "5", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep05.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", "size": "600.11MB", "yyets_trans": 0, "dateline": "1478670362", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep05.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|629262958|ba41b35dcfec2716f90ab664048f7e09|h=yrdanlqzxpqrsldgoi5aobjqhldxm6vq|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:f52c3ba04703cd4298e7a6a09ee87f520f700f7b\u0026tr.1=http://tracker.openbittorrent.com/announce\u0026tr.2=udp://tracker.openbittorrent.com:80/announce\u0026tr.3=udp://tr.cili001.com:6666/announce\u0026tr.4=http://tracker.publicbt.com/announce\u0026tr.5=udp://open.demonii.com:1337\u0026tr.6=udp://tracker.opentrackr.org:1337/announce\u0026tr.7=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1c1Rl1BU", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/fMW160612929", "passwd": "" } ] }, { "itemid": "280068", "episode": "4", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep04.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", "size": "599.9MB", "yyets_trans": 0, "dateline": "1478065113", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep04.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|629037391|07d320c3db4ad737e398cc7ba08c5216|h=yzfnqwlsvw2yloobhvkjf6yil6gc5kag|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:46ec914334a77f968d1c789b2f4a9fee8648435a\u0026tr.1=http://tracker.openbittorrent.com/announce\u0026tr.2=udp://tracker.openbittorrent.com:80/announce\u0026tr.3=udp://tr.cili001.com:6666/announce\u0026tr.4=http://tracker.publicbt.com/announce\u0026tr.5=udp://open.demonii.com:1337\u0026tr.6=udp://tracker.opentrackr.org:1337/announce\u0026tr.7=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1pKED1gv", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/cOt160028088", "passwd": "" } ] }, { "itemid": "279384", "episode": "3", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep03.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", "size": "599.3MB", "yyets_trans": 0, "dateline": "1477483732", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep03.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|628416378|8fdc3bd1714d5dab282f5e0f7cdf25be|h=on5tdwesk4maldu4txop3eutgihi2yyu|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:157d2fc48b9efbe8f846643652a7c2f3d7f14989\u0026tr.1=http://tracker.openbittorrent.com/announce\u0026tr.2=udp://tracker.openbittorrent.com:80/announce\u0026tr.3=udp://tr.cili001.com:6666/announce\u0026tr.4=http://tracker.publicbt.com/announce\u0026tr.5=udp://open.demonii.com:1337\u0026tr.6=udp://tracker.opentrackr.org:1337/announce\u0026tr.7=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1ge3yfL5", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/Ov3159483996", "passwd": "" } ] }, { "itemid": "278649", "episode": "2", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep02.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4", "size": "599.94MB", "yyets_trans": 0, "dateline": "1476868310", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep02.Chi_Jap.HDTVrip.1280X720-ZhuixinFan.mp4|629086728|3812eb6a3ef37b3ead6ad9c3a26efa24|h=jogqyi4cauhueoppsgcgdnprpbu7om3g|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:1e5a9180c2be2aa6a1e932479dae91ce082ca22d\u0026tr.1=http://tracker.openbittorrent.com/announce\u0026tr.2=udp://tracker.openbittorrent.com:80/announce\u0026tr.3=udp://tr.cili001.com:6666/announce\u0026tr.4=http://tracker.publicbt.com/announce\u0026tr.5=udp://open.demonii.com:1337\u0026tr.6=udp://tracker.opentrackr.org:1337/announce\u0026tr.7=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1gfHRfnt", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/2Tb158731035", "passwd": "" } ] }, { "itemid": "277958", "episode": "1", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep01.Chi_Jap.HDTVrip.1280X720-ZhuixinFanV2.mp4", "size": "699.97MB", "yyets_trans": 0, "dateline": "1476238571", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep01.Chi_Jap.HDTVrip.1280X720-ZhuixinFanV2.mp4|733967923|7116a9dfb86fceed3f5b71604e48745f|h=ku7saiivihhc26hcbx4cjsplvkum62ho|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:2a331028531d0254a2b1f30e55edf99b6b716e49\u0026tr.1=http://tracker.openbittorrent.com/announce\u0026tr.2=udp://tracker.openbittorrent.com:80/announce\u0026tr.3=udp://tr.cili001.com:6666/announce\u0026tr.4=http://tracker.publicbt.com/announce\u0026tr.5=udp://open.demonii.com:1337\u0026tr.6=udp://tracker.opentrackr.org:1337/announce\u0026tr.7=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1hrOugEK", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/Dde158319090", "passwd": "" } ] } ], "MP4": [ { "itemid": "554387", "episode": "12", "name": "逃避可耻却有用 人类加油!新春特别篇!!.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ganbare.Jinrui.Shinshun.Special.SP.Chi_Jap.HDTVrip.1280X720.mp4", "size": "1.4GB", "yyets_trans": 0, "dateline": "1609622857", "files": [ { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:4a6be139e640db770dbe266471e5cc81357c205e\u0026tr=http://tr.cili001.com:8070/announce\u0026tr=udp://p4p.arenabg.com:1337\u0026tr=udp://tracker.opentrackr.org:1337/announce\u0026tr=udp://open.demonii.com:1337", "passwd": "" } ] }, { "itemid": "284971", "episode": "11", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep11.Final.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", "size": "273.97MB", "yyets_trans": 0, "dateline": "1482265302", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep11.Final.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|287277713|c5e3cda7312d5c959b054ce1fe2d9648|h=yons5tync72soz55fil76fhasuyef2p5|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:e643ee71dcfc70ef5c768f4801937bee3474ab7c\u0026tr=http://tracker.openbittorrent.com/announce\u0026tr=udp://tracker.openbittorrent.com:80/announce\u0026tr=udp://tr.cili001.com:6666/announce\u0026tr=http://tracker.publicbt.com/announce\u0026tr=udp://open.demonii.com:1337\u0026tr=udp://tracker.opentrackr.org:1337/announce\u0026tr=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1nu7sDDJ", "passwd": "" } ] }, { "itemid": "284424", "episode": "10", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep10.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", "size": "250.46MB", "yyets_trans": 0, "dateline": "1481694187", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep10.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|262629609|5ddda8755130865fd0b506b897dd3933|h=56ncsvze3suc4pszccf3frhbw24u454u|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:64c03d502e04f592fa7dc86ea9b13ccce52c53e5\u0026tr=http://tracker.openbittorrent.com/announce\u0026tr=udp://tracker.openbittorrent.com:80/announce\u0026tr=udp://tr.cili001.com:6666/announce\u0026tr=http://tracker.publicbt.com/announce\u0026tr=udp://open.demonii.com:1337\u0026tr=udp://tracker.opentrackr.org:1337/announce\u0026tr=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1cvdJye", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/mcp163620606", "passwd": "" } ] }, { "itemid": "283576", "episode": "9", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep09.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", "size": "197.99MB", "yyets_trans": 0, "dateline": "1481091708", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep09.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|207609828|c3bf94d4f2e63139d7196f0297aa3882|h=lixjdvvffgkozmcbujjkeusdmx5uz6h4|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:f331279acc58e85d679418c7a11ebeefb4b02b42\u0026tr=http://tracker.openbittorrent.com/announce\u0026tr=udp://tracker.openbittorrent.com:80/announce\u0026tr=udp://tr.cili001.com:6666/announce\u0026tr=http://tracker.publicbt.com/announce\u0026tr=udp://open.demonii.com:1337\u0026tr=udp://tracker.opentrackr.org:1337/announce\u0026tr=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1miyMEbm", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/pU0162934266", "passwd": "" } ] }, { "itemid": "282890", "episode": "8", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep08.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", "size": "193.81MB", "yyets_trans": 0, "dateline": "1480490078", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep08.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|203226404|0b2c976116eead8cee3a086d112ce738|h=b56bqcmprjcnkhwez5siuz2dzzvfljo4|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:2fc115a1a26ed12f8d2f540e9f8699b989193e04\u0026tr.1=http://tracker.openbittorrent.com/announce\u0026tr.2=udp://tracker.openbittorrent.com:80/announce\u0026tr.3=udp://tr.cili001.com:6666/announce\u0026tr.4=http://tracker.publicbt.com/announce\u0026tr.5=udp://open.demonii.com:1337\u0026tr.6=udp://tracker.opentrackr.org:1337/announce\u0026tr.7=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1kUIkQ7X", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/NyN162369651", "passwd": "" } ] }, { "itemid": "282120", "episode": "7", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep07.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", "size": "205.1MB", "yyets_trans": 0, "dateline": "1479881031", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep07.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|215062889|ca0ffa335b3a595e41f71d3c8f277040|h=a65hvn5lzc5c6loc746tf3yexszea4eh|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:2d47c371eba87c52e7618a782b627a95fffed7b4\u0026tr.1=http://tracker.openbittorrent.com/announce\u0026tr.2=udp://tracker.openbittorrent.com:80/announce\u0026tr.3=udp://tr.cili001.com:6666/announce\u0026tr.4=http://tracker.publicbt.com/announce\u0026tr.5=udp://open.demonii.com:1337\u0026tr.6=udp://tracker.opentrackr.org:1337/announce\u0026tr.7=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1bo9Dwv1", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/8Tk161811666", "passwd": "" } ] }, { "itemid": "281368", "episode": "6", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep06.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", "size": "225.23MB", "yyets_trans": 0, "dateline": "1479275434", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep06.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|236167107|5d1ca5827f3cf88cb39bf55df64e017b|h=k2bzvh2zpyljsq6b2g5xbtci3s63q5xy|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:043c0fe675011d2d6a1fcba243e130864e5ab461\u0026tr.1=http://tracker.openbittorrent.com/announce\u0026tr.2=udp://tracker.openbittorrent.com:80/announce\u0026tr.3=udp://tr.cili001.com:6666/announce\u0026tr.4=http://tracker.publicbt.com/announce\u0026tr.5=udp://open.demonii.com:1337\u0026tr.6=udp://tracker.opentrackr.org:1337/announce\u0026tr.7=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1qYQxCBi", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/aXo161179959", "passwd": "" } ] }, { "itemid": "280651", "episode": "5", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep05.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", "size": "214.19MB", "yyets_trans": 0, "dateline": "1478665773", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep05.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|224589979|fc95f51dd77b80abcfc8d2be7955a0fe|h=wgrml4u6cey6iiyxgtx4ml6yrzqdx7ap|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:fb7c0b0c634af47bd5249873eecef81edaefbb5e\u0026tr.1=http://tracker.openbittorrent.com/announce\u0026tr.2=udp://tracker.openbittorrent.com:80/announce\u0026tr.3=udp://tr.cili001.com:6666/announce\u0026tr.4=http://tracker.publicbt.com/announce\u0026tr.5=udp://open.demonii.com:1337\u0026tr.6=udp://tracker.opentrackr.org:1337/announce\u0026tr.7=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1miLLJBi", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/zRI160610232", "passwd": "" } ] }, { "itemid": "280038", "episode": "4", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep04.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", "size": "191.02MB", "yyets_trans": 0, "dateline": "1478060356", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep04.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|200298651|b9e1eef644649f12ef4684f92fdb0379|h=5cvm2z6kxke24ti7gqpgcwesvsfejkvr|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:4edc1466dea534e178214ed701731f6a376996b1\u0026tr.1=http://tracker.openbittorrent.com/announce\u0026tr.2=udp://tracker.openbittorrent.com:80/announce\u0026tr.3=udp://tr.cili001.com:6666/announce\u0026tr.4=http://tracker.publicbt.com/announce\u0026tr.5=udp://open.demonii.com:1337\u0026tr.6=udp://tracker.opentrackr.org:1337/announce\u0026tr.7=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1hrZk4cc", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/DuN160026666", "passwd": "" } ] }, { "itemid": "279352", "episode": "3", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep03.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", "size": "230.2MB", "yyets_trans": 0, "dateline": "1477463950", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep03.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|241387154|923cd649dd5d48840a7f1c42d8ba3700|h=czevlgexn5os63rxulctjubd2u65ukf6|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:0f71cd2401057ef47cdc6ede0dcb1ebaec2e1618\u0026tr.1=http://tracker.openbittorrent.com/announce\u0026tr.2=udp://tracker.openbittorrent.com:80/announce\u0026tr.3=udp://tr.cili001.com:6666/announce\u0026tr.4=http://tracker.publicbt.com/announce\u0026tr.5=udp://open.demonii.com:1337\u0026tr.6=udp://tracker.opentrackr.org:1337/announce\u0026tr.7=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1gfPtce3", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/Xsc159444636", "passwd": "" } ] }, { "itemid": "278647", "episode": "2", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep02.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4", "size": "200.22MB", "yyets_trans": 0, "dateline": "1476861702", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep02.Chi_Jap.HDTVrip.852X480-ZhuixinFan.mp4|209947733|ed7626c02262f287b92f2472c5ed1a29|h=f5dwdur3fhjifrztundnr7psdhzzqihv|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:f5e244402d31013208dafea5e0231084cd4b3ed3\u0026tr.1=http://tracker.openbittorrent.com/announce\u0026tr.2=udp://tracker.openbittorrent.com:80/announce\u0026tr.3=udp://tr.cili001.com:6666/announce\u0026tr.4=http://tracker.publicbt.com/announce\u0026tr.5=udp://open.demonii.com:1337\u0026tr.6=udp://tracker.opentrackr.org:1337/announce\u0026tr.7=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1o8Rgrm6", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/POv158726721", "passwd": "" } ] }, { "itemid": "277951", "episode": "1", "name": "逃避可耻却有用.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep01.Chi_Jap.HDTVrip.852X480-ZhuixinFanV2.mp4", "size": "304.92MB", "yyets_trans": 0, "dateline": "1476216447", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%80%83%E9%81%BF%E5%8F%AF%E8%80%BB%E5%8D%B4%E6%9C%89%E7%94%A8.NIGERUHA.HAJIDAGA.YAKUNITATSU.Ep01.Chi_Jap.HDTVrip.852X480-ZhuixinFanV2.mp4|319730163|56c0ff1e0c00f4ae8b2636d6fa0c20ee|h=teyixuxqajhhehxiupbozfst3r5b5ytk|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:e4dcb4f8fc0f99416107da0beb6697ce77b8b66b\u0026tr.1=http://tracker.openbittorrent.com/announce\u0026tr.2=udp://tracker.openbittorrent.com:80/announce\u0026tr.3=udp://tr.cili001.com:6666/announce\u0026tr.4=http://tracker.publicbt.com/announce\u0026tr.5=udp://open.demonii.com:1337\u0026tr.6=udp://tracker.opentrackr.org:1337/announce\u0026tr.7=http://tr.cili001.com:6666/announce", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "http://pan.baidu.com/s/1kUTD9cj", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "http://ZiMuZuUSTV.ctfile.com/fs/07i158318898", "passwd": "" } ] } ] }, "formats": [ "APP", "HR-HDTV", "MP4" ] } ] } } ================================================ FILE: yyets/BagAndDrag/zimuxia/convert_db.py ================================================ #!/usr/local/bin/python3 # coding: utf-8 # YYeTsBot - convert_db.py # 2/5/21 13:46 # __author__ = "Benny " # convert to mongodb and con_sqlite import pymongo import pymysql import tqdm import json from typing import List con_mysql = pymysql.Connect(host="127.0.0.1", user="root", password="root", charset="utf8mb4", database="zimuxia", cursorclass=pymysql.cursors.DictCursor ) mongo_client = pymongo.MongoClient() SIZE = 2000 def clear_mongodb(): mongo_client.drop_database("zimuxia") def clear_mysql(): con_mysql.cursor().execute("truncate table resource;") con_mysql.commit() def mysql_insert(data: List[dict]): sql = "INSERT INTO resource VALUES(NULL,%(url)s,%(name)s,NULL,NULL,%(data)s)" cur = con_mysql.cursor() for i in data: cur.execute(sql, i) con_mysql.commit() def mongodb_insert(data: List[dict]): db = mongo_client["zimuxia"] col = db["resource"] col.insert_many(data) def main(): clear_mongodb() clear_mysql() with open("result.json") as f: data = json.load(f) # [{"url": "https://www.zimuxia.cn/portfolio/%e6%888b%e5%8f%8b", "name": "我家的女儿交不到男朋友", "data":""}] mysql_insert(data) mongodb_insert(data) if __name__ == '__main__': main() con_mysql.close() mongo_client.close() ================================================ FILE: yyets/BagAndDrag/zimuxia/zimuxia.py ================================================ #!/usr/local/bin/python3 # coding: utf-8 # YYeTsBot - zimuxia.py # 2/5/21 12:44 # __author__ = "Benny " import requests import random import time import json from bs4 import BeautifulSoup from urllib.parse import quote, unquote import tqdm import logging logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(filename)s [%(levelname)s]: %(message)s') list_url = "https://www.zimuxia.cn/%e6%88%91%e4%bb%ac%e7%9a%84%e4%bd%9c%e5%93%81?set={}" ua = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" s = requests.session() s.headers.update({"User-Agent": ua}) data = [] def get_list(): for index in tqdm.trange(1, 89): time.sleep(random.random()) url = list_url.format(index) list_html = s.get(url).text get_episode(list_html) def get_episode(html_text): soup = BeautifulSoup(html_text, 'html.parser') episodes = soup.find_all("div", class_="pg-item") for block in episodes: url = block.a['href'] name = unquote(url).split("https://www.zimuxia.cn/portfolio/")[1] logging.info("fetching %s", name) t = {"url": url, "name": name, "data": s.get(url).text} data.append(t) def write_json(): with open("result.json", "w") as f: json.dump(data, f, ensure_ascii=False, indent=4) if __name__ == '__main__': get_list() write_json() ================================================ FILE: yyets/__init__.py ================================================ #!/usr/local/bin/python3 # coding: utf-8 # YYeTsBot - __init__.py # 9/21/21 18:09 # __author__ = "Benny " import logging import requests API = "https://yyets.click/api/resource?" logging.basicConfig( level=logging.INFO, format="[%(asctime)s %(filename)s:%(lineno)d %(levelname).1s] %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) class Resource: def __init__(self): self.enname = None self.cnname = None def __str__(self): return f"{self.cnname} - {self.enname}" class YYeTs: def __init__(self, keyword: "str"): self.result = [] self.keyword = keyword self.search_api = f"{API}keyword={self.keyword}" self.resource_api = f"{API}id=%s" self.search() def search(self): data = requests.get(self.search_api).json() for info in data["data"]: r = Resource() setattr(r, "list", self.fetch(info)) for k, v in info.items(): setattr(r, k, v) self.result.append(r) def fetch(self, info): rid = info["id"] url = self.resource_api % rid headers = {"Referer": url} logging.info("Fetching %s...%s", info["cnname"], url) return requests.get(url, headers=headers).json()["data"]["list"] def __str__(self): return f"{self.keyword} - {self.search_api}" if __name__ == "__main__": ins = YYeTs("逃避可耻") for i in ins.result: print(i) ================================================ FILE: yyets/healthcheck/check.py ================================================ #!/usr/local/bin/python3 # coding: utf-8 # YYeTsBot - check.py # 1/22/21 16:36 # __author__ = "Benny " import logging import os import requests from apscheduler.schedulers.asyncio import AsyncIOScheduler from telethon import TelegramClient, events logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(filename)s [%(levelname)s]: %(message)s") logging.getLogger("apscheduler.executors.default").propagate = False api_id = int(os.environ.get("API_ID") or "3") api_hash = os.environ.get("API_HASH") or "4" bot_name = os.environ.get("BOT_NAME") or "yyets_bot" bot_token = os.environ.get("BOT_token") or "123" client = TelegramClient( "client-hc", api_id, api_hash, device_model="Benny-health-check", system_version="89", app_version="1.0.0" ) check_status = [] @client.on(events.NewMessage(incoming=True, pattern="(?i).*欢迎使用,直接发送想要的剧集标题给我就可以了.*", from_users=bot_name)) async def my_event_handler(event): logging.info("Okay it's working %s", event) check_status.clear() async def send_health_check(): if check_status: # restart it await bot_warning() else: await client.send_message(bot_name, "/start") check_status.append("check") async def bot_warning(): logging.warning("Bot seems to be down. Restarting now....") message = "Bot is down!!!" url = f"https://api.telegram.org/bot{bot_token}/sendMessage?chat_id=260260121&text={message}" resp = requests.get(url).json() logging.warning(resp) async def website_check(): home = "https://yyets.click/" top = "https://yyets.click/api/top" message = "" try: resp1 = requests.get(home) resp2 = requests.get(top) except Exception as e: message += f"Website is down. Requests error:{e}\n" resp1 = resp2 = "" if getattr(resp1, "status_code", 0) != 200: content = getattr(resp1, "content", None) message += f"Website home is down!!! {content}\n" if getattr(resp2, "status_code", 0) != 200: content = getattr(resp1, "content", None) message += f"Website top is down!!! {content}\n" if message: url = f"https://api.telegram.org/bot{bot_token}/sendMessage?chat_id=260260121&text={message}" resp = requests.get(url).json() logging.error(resp) logging.error(message) else: logging.info("It's working home: %s bytes; top: %s bytes", len(resp1.content), len(resp2.content)) if __name__ == "__main__": scheduler = AsyncIOScheduler() scheduler.add_job(send_health_check, "interval", seconds=300) scheduler.add_job(website_check, "interval", seconds=60) scheduler.start() client.start() client.run_until_disconnected() ================================================ FILE: yyets/healthcheck/restart_service.py ================================================ #!/usr/local/bin/python3 # coding: utf-8 # untitled - restart_service.py # 9/18/21 11:54 # __author__ = "Benny " import logging.handlers import subprocess import requests filename = "yyets_restart.log" formatter = logging.Formatter("[%(asctime)s %(filename)s:%(lineno)d %(levelname).1s] %(message)s", "%Y-%m-%d %H:%M:%S") handler = logging.handlers.RotatingFileHandler(filename, maxBytes=1024 * 1024 * 100) handler.setFormatter(formatter) logger = logging.getLogger() logger.addHandler(handler) logger.setLevel(logging.INFO) URL = "https://yyets.click/api/top" # URL = "https://www.baidu.com/" req = requests.get(URL) if req.status_code != 200: logger.error("error! %s", req) cmd = "/usr/bin/docker-compose -f /home/WebsiteRunner/docker-compose.yml restart mongo yyets-web nginx" subprocess.check_output(cmd.split()) else: logger.info("YYeTs is running %s", req) ================================================ FILE: yyets/management/format.json ================================================ { "status": 1, "info": "OK", "data": { "info": { "id": 99999, "cnname": "中文名", "enname": "英文名", "aliasname": "别名", "channel": "movie/tv", "channel_cn": "电影/美剧", "area": "法国", "show_type": "", "expire": "1610401225", "views": 0 }, "list": [ { "season_num": "0", "season_cn": "正片", "items": { "MP4": [ { "itemid": "428324", "episode": "0", "name": "name", "size": "1.43GB", "yyets_trans": 0, "dateline": "1565351112", "files": [ { "way": "1", "way_cn": "电驴", "address": "", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "", "passwd": "" }, { "way": "9", "way_cn": "网盘", "address": "", "passwd": "" }, { "way": "115", "way_cn": "微云", "address": "", "passwd": "" } ] } ] }, "formats": [ "MP4" ] } ] } } ================================================ FILE: yyets/management/ui.py ================================================ #!/usr/local/bin/python3 # coding: utf-8 # YYeTsBot - ui.py # 2/8/21 17:55 # __author__ = "Benny " import json import time import PySimpleGUI as sg # All the stuff inside your window. channel_map = { "movie": "电影", "tv": "电视剧" } complete = { "status": 1, "info": "OK", "data": { "info": {}, "list": [ { "season_num": "1", "season_cn": "第一季", "items": {}, "formats": [ "MP4" ] } ] } } dl = { "itemid": "", "episode": "0", "name": "", "size": "", "yyets_trans": 0, "dateline": str(int(time.time())), "files": [ { "way": "1", "way_cn": "电驴", "address": "", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "", "passwd": "" }, { "way": "9", "way_cn": "百度网盘", "address": "", "passwd": "" }, { "way": "115", "way_cn": "115网盘", "address": "", "passwd": "" } ] } item_structure = { "MP4": [ ] } def get_value(): for i in range(1, int(episode_input[1].get()) + 1): d = dl.copy() d["episode"] = str(i) d["name"] = "{}第{}集".format(cn_input[1].get(), i) item_structure["MP4"].append(d) info_structure = { "id": 0, "cnname": cn_input[1].get(), "enname": en_input[1].get(), "aliasname": alias_input[1].get(), "channel": channel_input[1].get(), "channel_cn": channel_map.get(channel_input[1].get(), ""), "area": area_input[1].get(), "show_type": "", "expire": "1610401225", "views": 0 } complete["data"]["info"] = info_structure complete["data"]["list"][0]["items"] = item_structure with open("sample.json", "w") as f: json.dump(complete, f, indent=4, ensure_ascii=False) cn_input = [sg.Text('cn name'), sg.InputText()] en_input = [sg.Text('en name'), sg.InputText()] alias_input = [sg.Text('alias name'), sg.InputText()] channel_input = [sg.Text('channel'), sg.Combo(['movie', 'tv'], "tv")] area_input = [sg.Text('area'), sg.Combo(['美国', '日本', '韩国', '英国'], "美国")] episode_input = [sg.Text('episode count'), sg.InputText()] layout = [cn_input, en_input, alias_input, channel_input, area_input, episode_input, [sg.Button('Ok')] ] # Create the Window window = sg.Window('Management', layout) # Event Loop to process "events" and get the "values" of the inputs while True: event, values = window.read() if event == sg.WIN_CLOSED or event == 'Cancel': # if user closes window or clicks cancel break if event == "Ok": print('You entered ', values[0], values[1], values[2]) get_value() break window.close() ================================================ FILE: yyets/worker/.cargo-ok ================================================ ================================================ FILE: yyets/worker/README.md ================================================ # Cloudflare Worker部署方式 **This worker is deprecated. No further updates from now on.** ## 1. 安装wrangler等工具 [Cloudflare Docs](https://developers.cloudflare.com/workers/cli-wrangler) ## 2. 导入数据到MySQL ## 3. 生成KV数据 参考 `BagAndDrag/cfkv.py` ## 4. 导入数据 ```shell cd kv_data bash bulk.sh ``` **注意,Cloudflare KV免费版有每日1000条写入的限制** ## 4. 配置代码 * 修改`worker/public/js/search.js`中的`baseURL`为你的URL * 如绑定自定义域名,还需要修改`worker/workers-site/index.js`中的`Access-Control-Allow-Origin`为你的域名 ## 5. 发布到Worker Site 配置 `wrangler.toml`,修改`account_id`, `kv_namespaces`等,然后: ```shell wrangler publish ``` 就可以了。 ================================================ FILE: yyets/worker/public/404.html ================================================

404 Not Found

Oh dang! We couldn't find that page.

a sad crab is unable to unable to lasso a paper airplane. 404 not found.
================================================ FILE: yyets/worker/public/css/3rd/animate.css ================================================ @charset "UTF-8"; /*! * animate.css -http://daneden.me/animate * Version - 3.5.1 * Licensed under the MIT license - http://opensource.org/licenses/MIT * * Copyright (c) 2016 Daniel Eden */ .animated { -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .animated.infinite { -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; } .animated.hinge { -webkit-animation-duration: 2s; animation-duration: 2s; } .animated.flipOutX, .animated.flipOutY, .animated.bounceIn, .animated.bounceOut { -webkit-animation-duration: .75s; animation-duration: .75s; } @-webkit-keyframes bounce { from, 20%, 53%, 80%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); -webkit-transform: translate3d(0,0,0); transform: translate3d(0,0,0); } 40%, 43% { -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); -webkit-transform: translate3d(0, -30px, 0); transform: translate3d(0, -30px, 0); } 70% { -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); -webkit-transform: translate3d(0, -15px, 0); transform: translate3d(0, -15px, 0); } 90% { -webkit-transform: translate3d(0,-4px,0); transform: translate3d(0,-4px,0); } } @keyframes bounce { from, 20%, 53%, 80%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); -webkit-transform: translate3d(0,0,0); transform: translate3d(0,0,0); } 40%, 43% { -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); -webkit-transform: translate3d(0, -30px, 0); transform: translate3d(0, -30px, 0); } 70% { -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); -webkit-transform: translate3d(0, -15px, 0); transform: translate3d(0, -15px, 0); } 90% { -webkit-transform: translate3d(0,-4px,0); transform: translate3d(0,-4px,0); } } .bounce { -webkit-animation-name: bounce; animation-name: bounce; -webkit-transform-origin: center bottom; transform-origin: center bottom; } @-webkit-keyframes flash { from, 50%, to { opacity: 1; } 25%, 75% { opacity: 0; } } @keyframes flash { from, 50%, to { opacity: 1; } 25%, 75% { opacity: 0; } } .flash { -webkit-animation-name: flash; animation-name: flash; } /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ @-webkit-keyframes pulse { from { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 50% { -webkit-transform: scale3d(1.05, 1.05, 1.05); transform: scale3d(1.05, 1.05, 1.05); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes pulse { from { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 50% { -webkit-transform: scale3d(1.05, 1.05, 1.05); transform: scale3d(1.05, 1.05, 1.05); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } .pulse { -webkit-animation-name: pulse; animation-name: pulse; } @-webkit-keyframes rubberBand { from { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 30% { -webkit-transform: scale3d(1.25, 0.75, 1); transform: scale3d(1.25, 0.75, 1); } 40% { -webkit-transform: scale3d(0.75, 1.25, 1); transform: scale3d(0.75, 1.25, 1); } 50% { -webkit-transform: scale3d(1.15, 0.85, 1); transform: scale3d(1.15, 0.85, 1); } 65% { -webkit-transform: scale3d(.95, 1.05, 1); transform: scale3d(.95, 1.05, 1); } 75% { -webkit-transform: scale3d(1.05, .95, 1); transform: scale3d(1.05, .95, 1); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes rubberBand { from { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 30% { -webkit-transform: scale3d(1.25, 0.75, 1); transform: scale3d(1.25, 0.75, 1); } 40% { -webkit-transform: scale3d(0.75, 1.25, 1); transform: scale3d(0.75, 1.25, 1); } 50% { -webkit-transform: scale3d(1.15, 0.85, 1); transform: scale3d(1.15, 0.85, 1); } 65% { -webkit-transform: scale3d(.95, 1.05, 1); transform: scale3d(.95, 1.05, 1); } 75% { -webkit-transform: scale3d(1.05, .95, 1); transform: scale3d(1.05, .95, 1); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } .rubberBand { -webkit-animation-name: rubberBand; animation-name: rubberBand; } @-webkit-keyframes shake { from, to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 10%, 30%, 50%, 70%, 90% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 20%, 40%, 60%, 80% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); } } @keyframes shake { from, to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 10%, 30%, 50%, 70%, 90% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 20%, 40%, 60%, 80% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); } } .shake { -webkit-animation-name: shake; animation-name: shake; } @-webkit-keyframes headShake { 0% { -webkit-transform: translateX(0); transform: translateX(0); } 6.5% { -webkit-transform: translateX(-6px) rotateY(-9deg); transform: translateX(-6px) rotateY(-9deg); } 18.5% { -webkit-transform: translateX(5px) rotateY(7deg); transform: translateX(5px) rotateY(7deg); } 31.5% { -webkit-transform: translateX(-3px) rotateY(-5deg); transform: translateX(-3px) rotateY(-5deg); } 43.5% { -webkit-transform: translateX(2px) rotateY(3deg); transform: translateX(2px) rotateY(3deg); } 50% { -webkit-transform: translateX(0); transform: translateX(0); } } @keyframes headShake { 0% { -webkit-transform: translateX(0); transform: translateX(0); } 6.5% { -webkit-transform: translateX(-6px) rotateY(-9deg); transform: translateX(-6px) rotateY(-9deg); } 18.5% { -webkit-transform: translateX(5px) rotateY(7deg); transform: translateX(5px) rotateY(7deg); } 31.5% { -webkit-transform: translateX(-3px) rotateY(-5deg); transform: translateX(-3px) rotateY(-5deg); } 43.5% { -webkit-transform: translateX(2px) rotateY(3deg); transform: translateX(2px) rotateY(3deg); } 50% { -webkit-transform: translateX(0); transform: translateX(0); } } .headShake { -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-name: headShake; animation-name: headShake; } @-webkit-keyframes swing { 20% { -webkit-transform: rotate3d(0, 0, 1, 15deg); transform: rotate3d(0, 0, 1, 15deg); } 40% { -webkit-transform: rotate3d(0, 0, 1, -10deg); transform: rotate3d(0, 0, 1, -10deg); } 60% { -webkit-transform: rotate3d(0, 0, 1, 5deg); transform: rotate3d(0, 0, 1, 5deg); } 80% { -webkit-transform: rotate3d(0, 0, 1, -5deg); transform: rotate3d(0, 0, 1, -5deg); } to { -webkit-transform: rotate3d(0, 0, 1, 0deg); transform: rotate3d(0, 0, 1, 0deg); } } @keyframes swing { 20% { -webkit-transform: rotate3d(0, 0, 1, 15deg); transform: rotate3d(0, 0, 1, 15deg); } 40% { -webkit-transform: rotate3d(0, 0, 1, -10deg); transform: rotate3d(0, 0, 1, -10deg); } 60% { -webkit-transform: rotate3d(0, 0, 1, 5deg); transform: rotate3d(0, 0, 1, 5deg); } 80% { -webkit-transform: rotate3d(0, 0, 1, -5deg); transform: rotate3d(0, 0, 1, -5deg); } to { -webkit-transform: rotate3d(0, 0, 1, 0deg); transform: rotate3d(0, 0, 1, 0deg); } } .swing { -webkit-transform-origin: top center; transform-origin: top center; -webkit-animation-name: swing; animation-name: swing; } @-webkit-keyframes tada { from { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 10%, 20% { -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); } 30%, 50%, 70%, 90% { -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); } 40%, 60%, 80% { -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes tada { from { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 10%, 20% { -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); } 30%, 50%, 70%, 90% { -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); } 40%, 60%, 80% { -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } .tada { -webkit-animation-name: tada; animation-name: tada; } /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ @-webkit-keyframes wobble { from { -webkit-transform: none; transform: none; } 15% { -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); } 30% { -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); } 45% { -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); } 60% { -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); } 75% { -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); } to { -webkit-transform: none; transform: none; } } @keyframes wobble { from { -webkit-transform: none; transform: none; } 15% { -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); } 30% { -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); } 45% { -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); } 60% { -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); } 75% { -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); } to { -webkit-transform: none; transform: none; } } .wobble { -webkit-animation-name: wobble; animation-name: wobble; } @-webkit-keyframes jello { from, 11.1%, to { -webkit-transform: none; transform: none; } 22.2% { -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); transform: skewX(-12.5deg) skewY(-12.5deg); } 33.3% { -webkit-transform: skewX(6.25deg) skewY(6.25deg); transform: skewX(6.25deg) skewY(6.25deg); } 44.4% { -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); transform: skewX(-3.125deg) skewY(-3.125deg); } 55.5% { -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); transform: skewX(1.5625deg) skewY(1.5625deg); } 66.6% { -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); transform: skewX(-0.78125deg) skewY(-0.78125deg); } 77.7% { -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); transform: skewX(0.390625deg) skewY(0.390625deg); } 88.8% { -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); transform: skewX(-0.1953125deg) skewY(-0.1953125deg); } } @keyframes jello { from, 11.1%, to { -webkit-transform: none; transform: none; } 22.2% { -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); transform: skewX(-12.5deg) skewY(-12.5deg); } 33.3% { -webkit-transform: skewX(6.25deg) skewY(6.25deg); transform: skewX(6.25deg) skewY(6.25deg); } 44.4% { -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); transform: skewX(-3.125deg) skewY(-3.125deg); } 55.5% { -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); transform: skewX(1.5625deg) skewY(1.5625deg); } 66.6% { -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); transform: skewX(-0.78125deg) skewY(-0.78125deg); } 77.7% { -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); transform: skewX(0.390625deg) skewY(0.390625deg); } 88.8% { -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); transform: skewX(-0.1953125deg) skewY(-0.1953125deg); } } .jello { -webkit-animation-name: jello; animation-name: jello; -webkit-transform-origin: center; transform-origin: center; } @-webkit-keyframes bounceIn { from, 20%, 40%, 60%, 80%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } 20% { -webkit-transform: scale3d(1.1, 1.1, 1.1); transform: scale3d(1.1, 1.1, 1.1); } 40% { -webkit-transform: scale3d(.9, .9, .9); transform: scale3d(.9, .9, .9); } 60% { opacity: 1; -webkit-transform: scale3d(1.03, 1.03, 1.03); transform: scale3d(1.03, 1.03, 1.03); } 80% { -webkit-transform: scale3d(.97, .97, .97); transform: scale3d(.97, .97, .97); } to { opacity: 1; -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes bounceIn { from, 20%, 40%, 60%, 80%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } 20% { -webkit-transform: scale3d(1.1, 1.1, 1.1); transform: scale3d(1.1, 1.1, 1.1); } 40% { -webkit-transform: scale3d(.9, .9, .9); transform: scale3d(.9, .9, .9); } 60% { opacity: 1; -webkit-transform: scale3d(1.03, 1.03, 1.03); transform: scale3d(1.03, 1.03, 1.03); } 80% { -webkit-transform: scale3d(.97, .97, .97); transform: scale3d(.97, .97, .97); } to { opacity: 1; -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } .bounceIn { -webkit-animation-name: bounceIn; animation-name: bounceIn; } @-webkit-keyframes bounceInDown { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: translate3d(0, -3000px, 0); transform: translate3d(0, -3000px, 0); } 60% { opacity: 1; -webkit-transform: translate3d(0, 25px, 0); transform: translate3d(0, 25px, 0); } 75% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 90% { -webkit-transform: translate3d(0, 5px, 0); transform: translate3d(0, 5px, 0); } to { -webkit-transform: none; transform: none; } } @keyframes bounceInDown { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: translate3d(0, -3000px, 0); transform: translate3d(0, -3000px, 0); } 60% { opacity: 1; -webkit-transform: translate3d(0, 25px, 0); transform: translate3d(0, 25px, 0); } 75% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 90% { -webkit-transform: translate3d(0, 5px, 0); transform: translate3d(0, 5px, 0); } to { -webkit-transform: none; transform: none; } } .bounceInDown { -webkit-animation-name: bounceInDown; animation-name: bounceInDown; } @-webkit-keyframes bounceInLeft { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: translate3d(-3000px, 0, 0); transform: translate3d(-3000px, 0, 0); } 60% { opacity: 1; -webkit-transform: translate3d(25px, 0, 0); transform: translate3d(25px, 0, 0); } 75% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 90% { -webkit-transform: translate3d(5px, 0, 0); transform: translate3d(5px, 0, 0); } to { -webkit-transform: none; transform: none; } } @keyframes bounceInLeft { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: translate3d(-3000px, 0, 0); transform: translate3d(-3000px, 0, 0); } 60% { opacity: 1; -webkit-transform: translate3d(25px, 0, 0); transform: translate3d(25px, 0, 0); } 75% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 90% { -webkit-transform: translate3d(5px, 0, 0); transform: translate3d(5px, 0, 0); } to { -webkit-transform: none; transform: none; } } .bounceInLeft { -webkit-animation-name: bounceInLeft; animation-name: bounceInLeft; } @-webkit-keyframes bounceInRight { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } from { opacity: 0; -webkit-transform: translate3d(3000px, 0, 0); transform: translate3d(3000px, 0, 0); } 60% { opacity: 1; -webkit-transform: translate3d(-25px, 0, 0); transform: translate3d(-25px, 0, 0); } 75% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); } 90% { -webkit-transform: translate3d(-5px, 0, 0); transform: translate3d(-5px, 0, 0); } to { -webkit-transform: none; transform: none; } } @keyframes bounceInRight { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } from { opacity: 0; -webkit-transform: translate3d(3000px, 0, 0); transform: translate3d(3000px, 0, 0); } 60% { opacity: 1; -webkit-transform: translate3d(-25px, 0, 0); transform: translate3d(-25px, 0, 0); } 75% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); } 90% { -webkit-transform: translate3d(-5px, 0, 0); transform: translate3d(-5px, 0, 0); } to { -webkit-transform: none; transform: none; } } .bounceInRight { -webkit-animation-name: bounceInRight; animation-name: bounceInRight; } @-webkit-keyframes bounceInUp { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } from { opacity: 0; -webkit-transform: translate3d(0, 3000px, 0); transform: translate3d(0, 3000px, 0); } 60% { opacity: 1; -webkit-transform: translate3d(0, -20px, 0); transform: translate3d(0, -20px, 0); } 75% { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0); } 90% { -webkit-transform: translate3d(0, -5px, 0); transform: translate3d(0, -5px, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes bounceInUp { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } from { opacity: 0; -webkit-transform: translate3d(0, 3000px, 0); transform: translate3d(0, 3000px, 0); } 60% { opacity: 1; -webkit-transform: translate3d(0, -20px, 0); transform: translate3d(0, -20px, 0); } 75% { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0); } 90% { -webkit-transform: translate3d(0, -5px, 0); transform: translate3d(0, -5px, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .bounceInUp { -webkit-animation-name: bounceInUp; animation-name: bounceInUp; } @-webkit-keyframes bounceOut { 20% { -webkit-transform: scale3d(.9, .9, .9); transform: scale3d(.9, .9, .9); } 50%, 55% { opacity: 1; -webkit-transform: scale3d(1.1, 1.1, 1.1); transform: scale3d(1.1, 1.1, 1.1); } to { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } } @keyframes bounceOut { 20% { -webkit-transform: scale3d(.9, .9, .9); transform: scale3d(.9, .9, .9); } 50%, 55% { opacity: 1; -webkit-transform: scale3d(1.1, 1.1, 1.1); transform: scale3d(1.1, 1.1, 1.1); } to { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } } .bounceOut { -webkit-animation-name: bounceOut; animation-name: bounceOut; } @-webkit-keyframes bounceOutDown { 20% { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0); } 40%, 45% { opacity: 1; -webkit-transform: translate3d(0, -20px, 0); transform: translate3d(0, -20px, 0); } to { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } } @keyframes bounceOutDown { 20% { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0); } 40%, 45% { opacity: 1; -webkit-transform: translate3d(0, -20px, 0); transform: translate3d(0, -20px, 0); } to { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } } .bounceOutDown { -webkit-animation-name: bounceOutDown; animation-name: bounceOutDown; } @-webkit-keyframes bounceOutLeft { 20% { opacity: 1; -webkit-transform: translate3d(20px, 0, 0); transform: translate3d(20px, 0, 0); } to { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } } @keyframes bounceOutLeft { 20% { opacity: 1; -webkit-transform: translate3d(20px, 0, 0); transform: translate3d(20px, 0, 0); } to { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } } .bounceOutLeft { -webkit-animation-name: bounceOutLeft; animation-name: bounceOutLeft; } @-webkit-keyframes bounceOutRight { 20% { opacity: 1; -webkit-transform: translate3d(-20px, 0, 0); transform: translate3d(-20px, 0, 0); } to { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } } @keyframes bounceOutRight { 20% { opacity: 1; -webkit-transform: translate3d(-20px, 0, 0); transform: translate3d(-20px, 0, 0); } to { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } } .bounceOutRight { -webkit-animation-name: bounceOutRight; animation-name: bounceOutRight; } @-webkit-keyframes bounceOutUp { 20% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 40%, 45% { opacity: 1; -webkit-transform: translate3d(0, 20px, 0); transform: translate3d(0, 20px, 0); } to { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } } @keyframes bounceOutUp { 20% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 40%, 45% { opacity: 1; -webkit-transform: translate3d(0, 20px, 0); transform: translate3d(0, 20px, 0); } to { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } } .bounceOutUp { -webkit-animation-name: bounceOutUp; animation-name: bounceOutUp; } @-webkit-keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .fadeIn { -webkit-animation-name: fadeIn; animation-name: fadeIn; } @-webkit-keyframes fadeInDown { from { opacity: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInDown { from { opacity: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInDown { -webkit-animation-name: fadeInDown; animation-name: fadeInDown; } @-webkit-keyframes fadeInDownBig { from { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInDownBig { from { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInDownBig { -webkit-animation-name: fadeInDownBig; animation-name: fadeInDownBig; } @-webkit-keyframes fadeInLeft { from { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInLeft { from { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInLeft { -webkit-animation-name: fadeInLeft; animation-name: fadeInLeft; } @-webkit-keyframes fadeInLeftBig { from { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInLeftBig { from { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInLeftBig { -webkit-animation-name: fadeInLeftBig; animation-name: fadeInLeftBig; } @-webkit-keyframes fadeInRight { from { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInRight { from { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInRight { -webkit-animation-name: fadeInRight; animation-name: fadeInRight; } @-webkit-keyframes fadeInRightBig { from { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInRightBig { from { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInRightBig { -webkit-animation-name: fadeInRightBig; animation-name: fadeInRightBig; } @-webkit-keyframes fadeInUp { from { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInUp { from { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInUp { -webkit-animation-name: fadeInUp; animation-name: fadeInUp; } @-webkit-keyframes fadeInUpBig { from { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInUpBig { from { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInUpBig { -webkit-animation-name: fadeInUpBig; animation-name: fadeInUpBig; } @-webkit-keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } } @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } } .fadeOut { -webkit-animation-name: fadeOut; animation-name: fadeOut; } @-webkit-keyframes fadeOutDown { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } } @keyframes fadeOutDown { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } } .fadeOutDown { -webkit-animation-name: fadeOutDown; animation-name: fadeOutDown; } @-webkit-keyframes fadeOutDownBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } } @keyframes fadeOutDownBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } } .fadeOutDownBig { -webkit-animation-name: fadeOutDownBig; animation-name: fadeOutDownBig; } @-webkit-keyframes fadeOutLeft { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } } @keyframes fadeOutLeft { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } } .fadeOutLeft { -webkit-animation-name: fadeOutLeft; animation-name: fadeOutLeft; } @-webkit-keyframes fadeOutLeftBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } } @keyframes fadeOutLeftBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } } .fadeOutLeftBig { -webkit-animation-name: fadeOutLeftBig; animation-name: fadeOutLeftBig; } @-webkit-keyframes fadeOutRight { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } } @keyframes fadeOutRight { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } } .fadeOutRight { -webkit-animation-name: fadeOutRight; animation-name: fadeOutRight; } @-webkit-keyframes fadeOutRightBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } } @keyframes fadeOutRightBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } } .fadeOutRightBig { -webkit-animation-name: fadeOutRightBig; animation-name: fadeOutRightBig; } @-webkit-keyframes fadeOutUp { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } } @keyframes fadeOutUp { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } } .fadeOutUp { -webkit-animation-name: fadeOutUp; animation-name: fadeOutUp; } @-webkit-keyframes fadeOutUpBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } } @keyframes fadeOutUpBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } } .fadeOutUpBig { -webkit-animation-name: fadeOutUpBig; animation-name: fadeOutUpBig; } @-webkit-keyframes flip { from { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); transform: perspective(400px) rotate3d(0, 1, 0, -360deg); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 40% { -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 50% { -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 80% { -webkit-transform: perspective(400px) scale3d(.95, .95, .95); transform: perspective(400px) scale3d(.95, .95, .95); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } to { -webkit-transform: perspective(400px); transform: perspective(400px); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } } @keyframes flip { from { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); transform: perspective(400px) rotate3d(0, 1, 0, -360deg); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 40% { -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 50% { -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 80% { -webkit-transform: perspective(400px) scale3d(.95, .95, .95); transform: perspective(400px) scale3d(.95, .95, .95); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } to { -webkit-transform: perspective(400px); transform: perspective(400px); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } } .animated.flip { -webkit-backface-visibility: visible; backface-visibility: visible; -webkit-animation-name: flip; animation-name: flip; } @-webkit-keyframes flipInX { from { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transform: perspective(400px) rotate3d(1, 0, 0, 90deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; opacity: 0; } 40% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transform: perspective(400px) rotate3d(1, 0, 0, -20deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 60% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); transform: perspective(400px) rotate3d(1, 0, 0, 10deg); opacity: 1; } 80% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); transform: perspective(400px) rotate3d(1, 0, 0, -5deg); } to { -webkit-transform: perspective(400px); transform: perspective(400px); } } @keyframes flipInX { from { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transform: perspective(400px) rotate3d(1, 0, 0, 90deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; opacity: 0; } 40% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transform: perspective(400px) rotate3d(1, 0, 0, -20deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 60% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); transform: perspective(400px) rotate3d(1, 0, 0, 10deg); opacity: 1; } 80% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); transform: perspective(400px) rotate3d(1, 0, 0, -5deg); } to { -webkit-transform: perspective(400px); transform: perspective(400px); } } .flipInX { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; -webkit-animation-name: flipInX; animation-name: flipInX; } @-webkit-keyframes flipInY { from { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); transform: perspective(400px) rotate3d(0, 1, 0, 90deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; opacity: 0; } 40% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); transform: perspective(400px) rotate3d(0, 1, 0, -20deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 60% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); transform: perspective(400px) rotate3d(0, 1, 0, 10deg); opacity: 1; } 80% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); transform: perspective(400px) rotate3d(0, 1, 0, -5deg); } to { -webkit-transform: perspective(400px); transform: perspective(400px); } } @keyframes flipInY { from { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); transform: perspective(400px) rotate3d(0, 1, 0, 90deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; opacity: 0; } 40% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); transform: perspective(400px) rotate3d(0, 1, 0, -20deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 60% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); transform: perspective(400px) rotate3d(0, 1, 0, 10deg); opacity: 1; } 80% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); transform: perspective(400px) rotate3d(0, 1, 0, -5deg); } to { -webkit-transform: perspective(400px); transform: perspective(400px); } } .flipInY { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; -webkit-animation-name: flipInY; animation-name: flipInY; } @-webkit-keyframes flipOutX { from { -webkit-transform: perspective(400px); transform: perspective(400px); } 30% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transform: perspective(400px) rotate3d(1, 0, 0, -20deg); opacity: 1; } to { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transform: perspective(400px) rotate3d(1, 0, 0, 90deg); opacity: 0; } } @keyframes flipOutX { from { -webkit-transform: perspective(400px); transform: perspective(400px); } 30% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transform: perspective(400px) rotate3d(1, 0, 0, -20deg); opacity: 1; } to { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transform: perspective(400px) rotate3d(1, 0, 0, 90deg); opacity: 0; } } .flipOutX { -webkit-animation-name: flipOutX; animation-name: flipOutX; -webkit-backface-visibility: visible !important; backface-visibility: visible !important; } @-webkit-keyframes flipOutY { from { -webkit-transform: perspective(400px); transform: perspective(400px); } 30% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); transform: perspective(400px) rotate3d(0, 1, 0, -15deg); opacity: 1; } to { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); transform: perspective(400px) rotate3d(0, 1, 0, 90deg); opacity: 0; } } @keyframes flipOutY { from { -webkit-transform: perspective(400px); transform: perspective(400px); } 30% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); transform: perspective(400px) rotate3d(0, 1, 0, -15deg); opacity: 1; } to { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); transform: perspective(400px) rotate3d(0, 1, 0, 90deg); opacity: 0; } } .flipOutY { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; -webkit-animation-name: flipOutY; animation-name: flipOutY; } @-webkit-keyframes lightSpeedIn { from { -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); transform: translate3d(100%, 0, 0) skewX(-30deg); opacity: 0; } 60% { -webkit-transform: skewX(20deg); transform: skewX(20deg); opacity: 1; } 80% { -webkit-transform: skewX(-5deg); transform: skewX(-5deg); opacity: 1; } to { -webkit-transform: none; transform: none; opacity: 1; } } @keyframes lightSpeedIn { from { -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); transform: translate3d(100%, 0, 0) skewX(-30deg); opacity: 0; } 60% { -webkit-transform: skewX(20deg); transform: skewX(20deg); opacity: 1; } 80% { -webkit-transform: skewX(-5deg); transform: skewX(-5deg); opacity: 1; } to { -webkit-transform: none; transform: none; opacity: 1; } } .lightSpeedIn { -webkit-animation-name: lightSpeedIn; animation-name: lightSpeedIn; -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } @-webkit-keyframes lightSpeedOut { from { opacity: 1; } to { -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); transform: translate3d(100%, 0, 0) skewX(30deg); opacity: 0; } } @keyframes lightSpeedOut { from { opacity: 1; } to { -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); transform: translate3d(100%, 0, 0) skewX(30deg); opacity: 0; } } .lightSpeedOut { -webkit-animation-name: lightSpeedOut; animation-name: lightSpeedOut; -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } @-webkit-keyframes rotateIn { from { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate3d(0, 0, 1, -200deg); transform: rotate3d(0, 0, 1, -200deg); opacity: 0; } to { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: none; transform: none; opacity: 1; } } @keyframes rotateIn { from { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate3d(0, 0, 1, -200deg); transform: rotate3d(0, 0, 1, -200deg); opacity: 0; } to { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: none; transform: none; opacity: 1; } } .rotateIn { -webkit-animation-name: rotateIn; animation-name: rotateIn; } @-webkit-keyframes rotateInDownLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: none; transform: none; opacity: 1; } } @keyframes rotateInDownLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: none; transform: none; opacity: 1; } } .rotateInDownLeft { -webkit-animation-name: rotateInDownLeft; animation-name: rotateInDownLeft; } @-webkit-keyframes rotateInDownRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: none; transform: none; opacity: 1; } } @keyframes rotateInDownRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: none; transform: none; opacity: 1; } } .rotateInDownRight { -webkit-animation-name: rotateInDownRight; animation-name: rotateInDownRight; } @-webkit-keyframes rotateInUpLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: none; transform: none; opacity: 1; } } @keyframes rotateInUpLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: none; transform: none; opacity: 1; } } .rotateInUpLeft { -webkit-animation-name: rotateInUpLeft; animation-name: rotateInUpLeft; } @-webkit-keyframes rotateInUpRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, -90deg); transform: rotate3d(0, 0, 1, -90deg); opacity: 0; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: none; transform: none; opacity: 1; } } @keyframes rotateInUpRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, -90deg); transform: rotate3d(0, 0, 1, -90deg); opacity: 0; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: none; transform: none; opacity: 1; } } .rotateInUpRight { -webkit-animation-name: rotateInUpRight; animation-name: rotateInUpRight; } @-webkit-keyframes rotateOut { from { -webkit-transform-origin: center; transform-origin: center; opacity: 1; } to { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate3d(0, 0, 1, 200deg); transform: rotate3d(0, 0, 1, 200deg); opacity: 0; } } @keyframes rotateOut { from { -webkit-transform-origin: center; transform-origin: center; opacity: 1; } to { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate3d(0, 0, 1, 200deg); transform: rotate3d(0, 0, 1, 200deg); opacity: 0; } } .rotateOut { -webkit-animation-name: rotateOut; animation-name: rotateOut; } @-webkit-keyframes rotateOutDownLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; opacity: 1; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } } @keyframes rotateOutDownLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; opacity: 1; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } } .rotateOutDownLeft { -webkit-animation-name: rotateOutDownLeft; animation-name: rotateOutDownLeft; } @-webkit-keyframes rotateOutDownRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; opacity: 1; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } } @keyframes rotateOutDownRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; opacity: 1; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } } .rotateOutDownRight { -webkit-animation-name: rotateOutDownRight; animation-name: rotateOutDownRight; } @-webkit-keyframes rotateOutUpLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; opacity: 1; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } } @keyframes rotateOutUpLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; opacity: 1; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } } .rotateOutUpLeft { -webkit-animation-name: rotateOutUpLeft; animation-name: rotateOutUpLeft; } @-webkit-keyframes rotateOutUpRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; opacity: 1; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, 90deg); transform: rotate3d(0, 0, 1, 90deg); opacity: 0; } } @keyframes rotateOutUpRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; opacity: 1; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, 90deg); transform: rotate3d(0, 0, 1, 90deg); opacity: 0; } } .rotateOutUpRight { -webkit-animation-name: rotateOutUpRight; animation-name: rotateOutUpRight; } @-webkit-keyframes hinge { 0% { -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; } 20%, 60% { -webkit-transform: rotate3d(0, 0, 1, 80deg); transform: rotate3d(0, 0, 1, 80deg); -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; } 40%, 80% { -webkit-transform: rotate3d(0, 0, 1, 60deg); transform: rotate3d(0, 0, 1, 60deg); -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; opacity: 1; } to { -webkit-transform: translate3d(0, 700px, 0); transform: translate3d(0, 700px, 0); opacity: 0; } } @keyframes hinge { 0% { -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; } 20%, 60% { -webkit-transform: rotate3d(0, 0, 1, 80deg); transform: rotate3d(0, 0, 1, 80deg); -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; } 40%, 80% { -webkit-transform: rotate3d(0, 0, 1, 60deg); transform: rotate3d(0, 0, 1, 60deg); -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; opacity: 1; } to { -webkit-transform: translate3d(0, 700px, 0); transform: translate3d(0, 700px, 0); opacity: 0; } } .hinge { -webkit-animation-name: hinge; animation-name: hinge; } /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ @-webkit-keyframes rollIn { from { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); } to { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes rollIn { from { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); } to { opacity: 1; -webkit-transform: none; transform: none; } } .rollIn { -webkit-animation-name: rollIn; animation-name: rollIn; } /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ @-webkit-keyframes rollOut { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } } @keyframes rollOut { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } } .rollOut { -webkit-animation-name: rollOut; animation-name: rollOut; } @-webkit-keyframes zoomIn { from { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } 50% { opacity: 1; } } @keyframes zoomIn { from { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } 50% { opacity: 1; } } .zoomIn { -webkit-animation-name: zoomIn; animation-name: zoomIn; } @-webkit-keyframes zoomInDown { from { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } @keyframes zoomInDown { from { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } .zoomInDown { -webkit-animation-name: zoomInDown; animation-name: zoomInDown; } @-webkit-keyframes zoomInLeft { from { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } @keyframes zoomInLeft { from { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } .zoomInLeft { -webkit-animation-name: zoomInLeft; animation-name: zoomInLeft; } @-webkit-keyframes zoomInRight { from { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } @keyframes zoomInRight { from { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } .zoomInRight { -webkit-animation-name: zoomInRight; animation-name: zoomInRight; } @-webkit-keyframes zoomInUp { from { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } @keyframes zoomInUp { from { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } .zoomInUp { -webkit-animation-name: zoomInUp; animation-name: zoomInUp; } @-webkit-keyframes zoomOut { from { opacity: 1; } 50% { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } to { opacity: 0; } } @keyframes zoomOut { from { opacity: 1; } 50% { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } to { opacity: 0; } } .zoomOut { -webkit-animation-name: zoomOut; animation-name: zoomOut; } @-webkit-keyframes zoomOutDown { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } to { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); -webkit-transform-origin: center bottom; transform-origin: center bottom; -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } @keyframes zoomOutDown { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } to { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); -webkit-transform-origin: center bottom; transform-origin: center bottom; -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } .zoomOutDown { -webkit-animation-name: zoomOutDown; animation-name: zoomOutDown; } @-webkit-keyframes zoomOutLeft { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); } to { opacity: 0; -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); transform: scale(.1) translate3d(-2000px, 0, 0); -webkit-transform-origin: left center; transform-origin: left center; } } @keyframes zoomOutLeft { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); } to { opacity: 0; -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); transform: scale(.1) translate3d(-2000px, 0, 0); -webkit-transform-origin: left center; transform-origin: left center; } } .zoomOutLeft { -webkit-animation-name: zoomOutLeft; animation-name: zoomOutLeft; } @-webkit-keyframes zoomOutRight { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); } to { opacity: 0; -webkit-transform: scale(.1) translate3d(2000px, 0, 0); transform: scale(.1) translate3d(2000px, 0, 0); -webkit-transform-origin: right center; transform-origin: right center; } } @keyframes zoomOutRight { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); } to { opacity: 0; -webkit-transform: scale(.1) translate3d(2000px, 0, 0); transform: scale(.1) translate3d(2000px, 0, 0); -webkit-transform-origin: right center; transform-origin: right center; } } .zoomOutRight { -webkit-animation-name: zoomOutRight; animation-name: zoomOutRight; } @-webkit-keyframes zoomOutUp { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } to { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); -webkit-transform-origin: center bottom; transform-origin: center bottom; -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } @keyframes zoomOutUp { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } to { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); -webkit-transform-origin: center bottom; transform-origin: center bottom; -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } .zoomOutUp { -webkit-animation-name: zoomOutUp; animation-name: zoomOutUp; } @-webkit-keyframes slideInDown { from { -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes slideInDown { from { -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .slideInDown { -webkit-animation-name: slideInDown; animation-name: slideInDown; } @-webkit-keyframes slideInLeft { from { -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes slideInLeft { from { -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .slideInLeft { -webkit-animation-name: slideInLeft; animation-name: slideInLeft; } @-webkit-keyframes slideInRight { from { -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes slideInRight { from { -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .slideInRight { -webkit-animation-name: slideInRight; animation-name: slideInRight; } @-webkit-keyframes slideInUp { from { -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes slideInUp { from { -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .slideInUp { -webkit-animation-name: slideInUp; animation-name: slideInUp; } @-webkit-keyframes slideOutDown { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } } @keyframes slideOutDown { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } } .slideOutDown { -webkit-animation-name: slideOutDown; animation-name: slideOutDown; } @-webkit-keyframes slideOutLeft { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } } @keyframes slideOutLeft { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } } .slideOutLeft { -webkit-animation-name: slideOutLeft; animation-name: slideOutLeft; } @-webkit-keyframes slideOutRight { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } } @keyframes slideOutRight { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } } .slideOutRight { -webkit-animation-name: slideOutRight; animation-name: slideOutRight; } @-webkit-keyframes slideOutUp { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } } @keyframes slideOutUp { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } } .slideOutUp { -webkit-animation-name: slideOutUp; animation-name: slideOutUp; } ================================================ FILE: yyets/worker/public/css/3rd/icons.css ================================================ @charset "utf-8"; @IMPORT url("../font-awesome.min.css"); ================================================ FILE: yyets/worker/public/css/3rd/widgets.css ================================================ @charset "utf-8"; ================================================ FILE: yyets/worker/public/css/aYin.css ================================================ @charset "utf-8"; /*webkit核心浏览器滚动条设置*/ /* ::-webkit-scrollbar{width: 10px;height:10px;} ::-webkit-scrollbar-track{border-radius: 0px;background: rgba(0,0,0,0.1);} ::-webkit-scrollbar-thumb{border-radius: 5px;background: rgba(0,0,0,0.2);} ::-webkit-scrollbar-thumb:hover{border-radius: 5px;background: rgba(0,0,0,0.4);} */ ================================================ FILE: yyets/worker/public/css/data.json ================================================ { "status": 1, "info": "OK", "data": { "info": { "id": 10060, "cnname": "铁皮人", "enname": "Tin Man", "aliasname": "", "channel": "tv", "channel_cn": "美剧", "area": "美国", "show_type": "", "expire": "1610371223", "views": "0" }, "list": [ { "season_num": "102", "season_cn": "MINI剧", "items": { "APP": [ { "itemid": "323953", "episode": "3", "name": "yyets://N=铁皮人.Tin.Man.Part3.中英字幕.BD.720p-人人影视.mp4|S=1327396629|H=1dd3a8b0ab765f4fd77f62e15b6635b932f5f9f7|", "size": "", "yyets_trans": 0, "dateline": "1493450710", "files": [ { "way": "102", "way_cn": "百度云", "address": "https://pan.baidu.com/s/1rbm_tYCCWWj-Mn7GBwCP_g", "passwd": "" }, { "way": "115", "way_cn": "微云", "address": "http://url.cn/5ZsPVGj", "passwd": "" } ] }, { "itemid": "323952", "episode": "2", "name": "yyets://N=铁皮人.Tin.Man.Part2.中英字幕.BD.720p-人人影视.mp4|S=1315079304|H=68edc943d6d9c67b0727c79e9b8531170559d459|", "size": "", "yyets_trans": 0, "dateline": "1493450699", "files": [ { "way": "102", "way_cn": "百度云", "address": "https://pan.baidu.com/s/1rbm_tYCCWWj-Mn7GBwCP_g", "passwd": "" }, { "way": "115", "way_cn": "微云", "address": "http://url.cn/5ZsPVGj", "passwd": "" } ] }, { "itemid": "323951", "episode": "1", "name": "yyets://N=铁皮人.Tin.Man.Part1.中英字幕.BD.720p-人人影视.mp4|S=1372733541|H=657ad3f2efd48057f5bea2e0ab111d9f429a785c|", "size": "", "yyets_trans": 0, "dateline": "1493450684", "files": [ { "way": "102", "way_cn": "百度云", "address": "https://pan.baidu.com/s/1rbm_tYCCWWj-Mn7GBwCP_g", "passwd": "" }, { "way": "115", "way_cn": "微云", "address": "http://url.cn/5ZsPVGj", "passwd": "" } ] } ], "MP4": [ { "itemid": "429977", "episode": "3", "name": "铁皮人.Tin.Man.Part3.中英字幕.BD.720p-人人影视.mp4", "size": "1.24GB", "yyets_trans": 0, "dateline": "1566559500", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%93%81%E7%9A%AE%E4%BA%BA.Tin.Man.Part3.%E4%B8%AD%E8%8B%B1%E5%AD%97%E5%B9%95.BD.720p-%E4%BA%BA%E4%BA%BA%E5%BD%B1%E8%A7%86.mp4|1327396629|23b315a8d9e4a3f711494ccae4fc766e|h=mccx743p3l67dy7fqsrrqfhu4i6q3ohs|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:fd23ad303b7121f91f56ecfd09faf0595a83c63e&tr=udp://9.rarbg.to:2710/announce&tr=udp://9.rarbg.me:2710/announce&tr=http://tr.cili001.com:8070/announce&tr=http://tracker.trackerfix.com:80/announce&tr=udp://open.demonii.com:1337&tr=udp://tracker.opentrackr.org:1337/announce&tr=udp://p4p.arenabg.com:1337&tr=wss://tracker.openwebtorrent.com&tr=wss://tracker.btorrent.xyz&tr=wss://tracker.fastcast.nz", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "https://ZiMuZuUSTV.ctfile.com/fs/1939455-394367733", "passwd": "" } ] }, { "itemid": "429976", "episode": "2", "name": "铁皮人.Tin.Man.Part2.中英字幕.BD.720p-人人影视.mp4", "size": "1.22GB", "yyets_trans": 0, "dateline": "1566559500", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%93%81%E7%9A%AE%E4%BA%BA.Tin.Man.Part2.%E4%B8%AD%E8%8B%B1%E5%AD%97%E5%B9%95.BD.720p-%E4%BA%BA%E4%BA%BA%E5%BD%B1%E8%A7%86.mp4|1315079304|7c602e1f24fd9f1fa65924eee0c4fd7d|h=mzg633nkorz7kmq53z2ecccnkchdle4m|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:a40429e64c8e1a300f502045ddda8c74d45bd6a0&tr=udp://9.rarbg.to:2710/announce&tr=udp://9.rarbg.me:2710/announce&tr=http://tr.cili001.com:8070/announce&tr=http://tracker.trackerfix.com:80/announce&tr=udp://open.demonii.com:1337&tr=udp://tracker.opentrackr.org:1337/announce&tr=udp://p4p.arenabg.com:1337&tr=wss://tracker.openwebtorrent.com&tr=wss://tracker.btorrent.xyz&tr=wss://tracker.fastcast.nz", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "https://ZiMuZuUSTV.ctfile.com/fs/1939455-394335534", "passwd": "" } ] }, { "itemid": "429975", "episode": "1", "name": "铁皮人.Tin.Man.Part1.中英字幕.BD.720p-人人影视.mp4", "size": "1.28GB", "yyets_trans": 0, "dateline": "1566559500", "files": [ { "way": "1", "way_cn": "电驴", "address": "ed2k://|file|%E9%93%81%E7%9A%AE%E4%BA%BA.Tin.Man.Part1.%E4%B8%AD%E8%8B%B1%E5%AD%97%E5%B9%95.BD.720p-%E4%BA%BA%E4%BA%BA%E5%BD%B1%E8%A7%86.mp4|1372733541|58587c085040239c982ab8d7ff485515|h=nbd6y4jgdnwmh6ezarm2cfxiy5aw3qtp|/", "passwd": "" }, { "way": "2", "way_cn": "磁力", "address": "magnet:?xt=urn:btih:f2798104a57a380c0db44940ed180fad16930ede&tr=udp://9.rarbg.to:2710/announce&tr=udp://9.rarbg.me:2710/announce&tr=http://tr.cili001.com:8070/announce&tr=http://tracker.trackerfix.com:80/announce&tr=udp://open.demonii.com:1337&tr=udp://tracker.opentrackr.org:1337/announce&tr=udp://p4p.arenabg.com:1337&tr=wss://tracker.openwebtorrent.com&tr=wss://tracker.btorrent.xyz&tr=wss://tracker.fastcast.nz", "passwd": "" }, { "way": "12", "way_cn": "诚通网盘", "address": "https://ZiMuZuUSTV.ctfile.com/fs/1939455-394335532", "passwd": "" } ] } ] }, "formats": [ "APP", "MP4" ] } ] } } ================================================ FILE: yyets/worker/public/css/down-list-20180530.css ================================================ @charset "utf-8"; @IMPORT url("3rd/icons.css"); @IMPORT url("3rd/animate.css"); @IMPORT url("3rd/widgets.css"); html{font-size:14px;} body { background:#fff; padding: 0;margin: 0; color:#666; font: 14px/150% "Lucida Grande", Lucida Sans Unicode, Hiragino Sans GB, WenQuanYi Micro Hei, Verdana, Aril, sans-serif;-webkit-text-size-adjust: none; -webkit-font-smoothing: antialiased;} ul{margin:0; padding:0;} li{list-style: none;} a{blr:expression(this.onFocus=this.blur()); cursor: pointer;text-decoration: none;} a,input,button{outline:none!important;} a:hover {text-decoration: none;} embed{display:none;} .iframe-wrap{position: absolute; left:-10000px; top:-10000px;} .down-img{background-image: url(../img/grid16.png); } /* code by ayin86@163.com css&js分别有1323种颜色 chsname=["红","红橙","橙","橙黄","黄","黄草","草绿","草绿-绿","绿","绿-水绿","水绿","水绿-青","青","青蓝","蓝","蓝靛","靛","靛紫","紫","紫粉","粉","粉-洋红","洋红","洋红-红","灰"]; engname=["red","red-orange","orange","orange-yellow","yellow","yellow-chartreuse","chartreuse","chartreuse-green","green","green-aquamarine","aquamarine","aquamarine-cyan","cyan","cyan-blue","blue","blue-indigo","indigo","indigo-purple","purple","purple-pink","pink","pink-violetred","violetred","violetred-red","gray"]; colors=["re","ro","or","oy","ye","yc","ch","cg","gr","ga","aq","ac","cy","cb","bl","bi","in","ip","pu","pp","pi","pv","vi","vr","gy"]; */ .bg-re-l1 { background-color: #fad1d1 !important; } .bg-re-l2 { background-color: #f5a3a3 !important; } .bg-re-l3 { background-color: #f07575 !important; } .bg-re-l4 { background-color: #eb4747 !important; } .bg-re-l5 { background-color: #e61919 !important; } .bg-re-l6 { background-color: #b81414 !important; } .bg-re-l7 { background-color: #8a0f0f !important; } .bg-re-l8 { background-color: #5c0a0a !important; } .bg-re-l9 { background-color: #2e0505 !important; } .bg-re-m1 { background-color: #f2d9d9 !important; } .bg-re-m2 { background-color: #e6b3b3 !important; } .bg-re-m3 { background-color: #d98c8c !important; } .bg-re-m4 { background-color: #cc6666 !important; } .bg-re-m5 { background-color: #bf4040 !important; } .bg-re-m6 { background-color: #993333 !important; } .bg-re-m7 { background-color: #732626 !important; } .bg-re-m8 { background-color: #4d1919 !important; } .bg-re-m9 { background-color: #260d0d !important; } .bg-re-d1 { background-color: #ebe0e0 !important; } .bg-re-d2 { background-color: #d6c2c2 !important; } .bg-re-d3 { background-color: #c2a3a3 !important; } .bg-re-d4 { background-color: #ad8585 !important; } .bg-re-d5 { background-color: #996666 !important; } .bg-re-d6 { background-color: #7a5252 !important; } .bg-re-d7 { background-color: #5c3d3d !important; } .bg-re-d8 { background-color: #3d2929 !important; } .bg-re-d9 { background-color: #1f1414 !important; } .bg-re-l1 { background-color: #fad1d1 !important; } .bg-re-l2 { background-color: #f5a3a3 !important; } .bg-re-l3 { background-color: #f07575 !important; } .bg-re-l4 { background-color: #eb4747 !important; } .bg-re-l5 { background-color: #e61919 !important; } .bg-re-l6 { background-color: #b81414 !important; } .bg-re-l7 { background-color: #8a0f0f !important; } .bg-re-l8 { background-color: #5c0a0a !important; } .bg-re-l9 { background-color: #2e0505 !important; } .bg-re-m1 { background-color: #f2d9d9 !important; } .bg-re-m2 { background-color: #e6b3b3 !important; } .bg-re-m3 { background-color: #d98c8c !important; } .bg-re-m4 { background-color: #cc6666 !important; } .bg-re-m5 { background-color: #bf4040 !important; } .bg-re-m6 { background-color: #993333 !important; } .bg-re-m7 { background-color: #732626 !important; } .bg-re-m8 { background-color: #4d1919 !important; } .bg-re-m9 { background-color: #260d0d !important; } .bg-re-d1 { background-color: #ebe0e0 !important; } .bg-re-d2 { background-color: #d6c2c2 !important; } .bg-re-d3 { background-color: #c2a3a3 !important; } .bg-re-d4 { background-color: #ad8585 !important; } .bg-re-d5 { background-color: #996666 !important; } .bg-re-d6 { background-color: #7a5252 !important; } .bg-re-d7 { background-color: #5c3d3d !important; } .bg-re-d8 { background-color: #3d2929 !important; } .bg-re-d9 { background-color: #1f1414 !important; } .bg-ro-l1 { background-color: #fadbd1 !important; } .bg-ro-l2 { background-color: #f5b8a3 !important; } .bg-ro-l3 { background-color: #f09475 !important; } .bg-ro-l4 { background-color: #eb7047 !important; } .bg-ro-l5 { background-color: #e64d19 !important; } .bg-ro-l6 { background-color: #b83d14 !important; } .bg-ro-l7 { background-color: #8a2e0f !important; } .bg-ro-l8 { background-color: #5c1f0a !important; } .bg-ro-l9 { background-color: #2e0f05 !important; } .bg-ro-m1 { background-color: #f2dfd9 !important; } .bg-ro-m2 { background-color: #e6bfb3 !important; } .bg-ro-m3 { background-color: #d99f8c !important; } .bg-ro-m4 { background-color: #cc7f66 !important; } .bg-ro-m5 { background-color: #bf6040 !important; } .bg-ro-m6 { background-color: #994d33 !important; } .bg-ro-m7 { background-color: #733926 !important; } .bg-ro-m8 { background-color: #4d2619 !important; } .bg-ro-m9 { background-color: #26130d !important; } .bg-ro-d1 { background-color: #ebe3e0 !important; } .bg-ro-d2 { background-color: #d6c7c2 !important; } .bg-ro-d3 { background-color: #c2aba3 !important; } .bg-ro-d4 { background-color: #ad8f85 !important; } .bg-ro-d5 { background-color: #997366 !important; } .bg-ro-d6 { background-color: #7a5c52 !important; } .bg-ro-d7 { background-color: #5c453d !important; } .bg-ro-d8 { background-color: #3d2e29 !important; } .bg-ro-d9 { background-color: #1f1714 !important; } .bg-or-l1 { background-color: #fae6d1 !important; } .bg-or-l2 { background-color: #f5cca3 !important; } .bg-or-l3 { background-color: #f0b375 !important; } .bg-or-l4 { background-color: #eb9947 !important; } .bg-or-l5 { background-color: #e68019 !important; } .bg-or-l6 { background-color: #b86614 !important; } .bg-or-l7 { background-color: #8a4d0f !important; } .bg-or-l8 { background-color: #5c330a !important; } .bg-or-l9 { background-color: #2e1905 !important; } .bg-or-m1 { background-color: #f2e6d9 !important; } .bg-or-m2 { background-color: #e6ccb3 !important; } .bg-or-m3 { background-color: #d9b38c !important; } .bg-or-m4 { background-color: #cc9966 !important; } .bg-or-m5 { background-color: #bf8040 !important; } .bg-or-m6 { background-color: #996633 !important; } .bg-or-m7 { background-color: #734d26 !important; } .bg-or-m8 { background-color: #4d3319 !important; } .bg-or-m9 { background-color: #26190d !important; } .bg-or-d1 { background-color: #ebe6e0 !important; } .bg-or-d2 { background-color: #d6ccc2 !important; } .bg-or-d3 { background-color: #c2b3a3 !important; } .bg-or-d4 { background-color: #ad9985 !important; } .bg-or-d5 { background-color: #998066 !important; } .bg-or-d6 { background-color: #7a6652 !important; } .bg-or-d7 { background-color: #5c4d3d !important; } .bg-or-d8 { background-color: #3d3329 !important; } .bg-or-d9 { background-color: #1f1914 !important; } .bg-oy-l1 { background-color: #faf0d1 !important; } .bg-oy-l2 { background-color: #f5e0a3 !important; } .bg-oy-l3 { background-color: #f0d175 !important; } .bg-oy-l4 { background-color: #ebc247 !important; } .bg-oy-l5 { background-color: #e6b319 !important; } .bg-oy-l6 { background-color: #b88f14 !important; } .bg-oy-l7 { background-color: #8a6b0f !important; } .bg-oy-l8 { background-color: #5c470a !important; } .bg-oy-l9 { background-color: #2e2405 !important; } .bg-oy-m1 { background-color: #f2ecd9 !important; } .bg-oy-m2 { background-color: #e6d9b3 !important; } .bg-oy-m3 { background-color: #d9c68c !important; } .bg-oy-m4 { background-color: #ccb366 !important; } .bg-oy-m5 { background-color: #bf9f40 !important; } .bg-oy-m6 { background-color: #998033 !important; } .bg-oy-m7 { background-color: #736026 !important; } .bg-oy-m8 { background-color: #4d4019 !important; } .bg-oy-m9 { background-color: #26200d !important; } .bg-oy-d1 { background-color: #ebe8e0 !important; } .bg-oy-d2 { background-color: #d6d1c2 !important; } .bg-oy-d3 { background-color: #c2baa3 !important; } .bg-oy-d4 { background-color: #ada385 !important; } .bg-oy-d5 { background-color: #998c66 !important; } .bg-oy-d6 { background-color: #7a7052 !important; } .bg-oy-d7 { background-color: #5c543d !important; } .bg-oy-d8 { background-color: #3d3829 !important; } .bg-oy-d9 { background-color: #1f1c14 !important; } .bg-ye-l1 { background-color: #fafad1 !important; } .bg-ye-l2 { background-color: #f5f5a3 !important; } .bg-ye-l3 { background-color: #f0f075 !important; } .bg-ye-l4 { background-color: #ebeb47 !important; } .bg-ye-l5 { background-color: #e5e619 !important; } .bg-ye-l6 { background-color: #b8b814 !important; } .bg-ye-l7 { background-color: #8a8a0f !important; } .bg-ye-l8 { background-color: #5c5c0a !important; } .bg-ye-l9 { background-color: #2e2e05 !important; } .bg-ye-m1 { background-color: #f2f2d9 !important; } .bg-ye-m2 { background-color: #e5e6b3 !important; } .bg-ye-m3 { background-color: #d9d98c !important; } .bg-ye-m4 { background-color: #cccc66 !important; } .bg-ye-m5 { background-color: #bfbf40 !important; } .bg-ye-m6 { background-color: #999933 !important; } .bg-ye-m7 { background-color: #737326 !important; } .bg-ye-m8 { background-color: #4d4d19 !important; } .bg-ye-m9 { background-color: #26260d !important; } .bg-ye-d1 { background-color: #ebebe0 !important; } .bg-ye-d2 { background-color: #d6d6c2 !important; } .bg-ye-d3 { background-color: #c2c2a3 !important; } .bg-ye-d4 { background-color: #adad85 !important; } .bg-ye-d5 { background-color: #999966 !important; } .bg-ye-d6 { background-color: #7a7a52 !important; } .bg-ye-d7 { background-color: #5c5c3d !important; } .bg-ye-d8 { background-color: #3d3d29 !important; } .bg-ye-d9 { background-color: #1f1f14 !important; } .bg-yc-l1 { background-color: #f0fad1 !important; } .bg-yc-l2 { background-color: #e0f5a3 !important; } .bg-yc-l3 { background-color: #d1f075 !important; } .bg-yc-l4 { background-color: #c2eb47 !important; } .bg-yc-l5 { background-color: #b3e619 !important; } .bg-yc-l6 { background-color: #8fb814 !important; } .bg-yc-l7 { background-color: #6b8a0f !important; } .bg-yc-l8 { background-color: #475c0a !important; } .bg-yc-l9 { background-color: #242e05 !important; } .bg-yc-m1 { background-color: #ecf2d9 !important; } .bg-yc-m2 { background-color: #d9e6b3 !important; } .bg-yc-m3 { background-color: #c6d98c !important; } .bg-yc-m4 { background-color: #b3cc66 !important; } .bg-yc-m5 { background-color: #9fbf40 !important; } .bg-yc-m6 { background-color: #809933 !important; } .bg-yc-m7 { background-color: #607326 !important; } .bg-yc-m8 { background-color: #404d19 !important; } .bg-yc-m9 { background-color: #20260d !important; } .bg-yc-d1 { background-color: #e8ebe0 !important; } .bg-yc-d2 { background-color: #d1d6c2 !important; } .bg-yc-d3 { background-color: #bac2a3 !important; } .bg-yc-d4 { background-color: #a3ad85 !important; } .bg-yc-d5 { background-color: #8c9966 !important; } .bg-yc-d6 { background-color: #707a52 !important; } .bg-yc-d7 { background-color: #545c3d !important; } .bg-yc-d8 { background-color: #383d29 !important; } .bg-yc-d9 { background-color: #1c1f14 !important; } .bg-ch-l1 { background-color: #e6fad1 !important; } .bg-ch-l2 { background-color: #ccf5a3 !important; } .bg-ch-l3 { background-color: #b3f075 !important; } .bg-ch-l4 { background-color: #99eb47 !important; } .bg-ch-l5 { background-color: #80e619 !important; } .bg-ch-l6 { background-color: #66b814 !important; } .bg-ch-l7 { background-color: #4d8a0f !important; } .bg-ch-l8 { background-color: #335c0a !important; } .bg-ch-l9 { background-color: #1a2e05 !important; } .bg-ch-m1 { background-color: #e6f2d9 !important; } .bg-ch-m2 { background-color: #cce6b3 !important; } .bg-ch-m3 { background-color: #b3d98c !important; } .bg-ch-m4 { background-color: #99cc66 !important; } .bg-ch-m5 { background-color: #80bf40 !important; } .bg-ch-m6 { background-color: #669933 !important; } .bg-ch-m7 { background-color: #4d7326 !important; } .bg-ch-m8 { background-color: #334d19 !important; } .bg-ch-m9 { background-color: #1a260d !important; } .bg-ch-d1 { background-color: #e6ebe0 !important; } .bg-ch-d2 { background-color: #ccd6c2 !important; } .bg-ch-d3 { background-color: #b3c2a3 !important; } .bg-ch-d4 { background-color: #99ad85 !important; } .bg-ch-d5 { background-color: #809966 !important; } .bg-ch-d6 { background-color: #667a52 !important; } .bg-ch-d7 { background-color: #4d5c3d !important; } .bg-ch-d8 { background-color: #333d29 !important; } .bg-ch-d9 { background-color: #191f14 !important; } .bg-cg-l1 { background-color: #dbfad1 !important; } .bg-cg-l2 { background-color: #b8f5a3 !important; } .bg-cg-l3 { background-color: #94f075 !important; } .bg-cg-l4 { background-color: #70eb47 !important; } .bg-cg-l5 { background-color: #4ce619 !important; } .bg-cg-l6 { background-color: #3db814 !important; } .bg-cg-l7 { background-color: #2e8a0f !important; } .bg-cg-l8 { background-color: #1f5c0a !important; } .bg-cg-l9 { background-color: #0f2e05 !important; } .bg-cg-m1 { background-color: #dff2d9 !important; } .bg-cg-m2 { background-color: #bfe6b3 !important; } .bg-cg-m3 { background-color: #9fd98c !important; } .bg-cg-m4 { background-color: #7fcc66 !important; } .bg-cg-m5 { background-color: #60bf40 !important; } .bg-cg-m6 { background-color: #4c9933 !important; } .bg-cg-m7 { background-color: #397326 !important; } .bg-cg-m8 { background-color: #264d19 !important; } .bg-cg-m9 { background-color: #13260d !important; } .bg-cg-d1 { background-color: #e3ebe0 !important; } .bg-cg-d2 { background-color: #c7d6c2 !important; } .bg-cg-d3 { background-color: #abc2a3 !important; } .bg-cg-d4 { background-color: #8fad85 !important; } .bg-cg-d5 { background-color: #739966 !important; } .bg-cg-d6 { background-color: #5c7a52 !important; } .bg-cg-d7 { background-color: #455c3d !important; } .bg-cg-d8 { background-color: #2e3d29 !important; } .bg-cg-d9 { background-color: #171f14 !important; } .bg-gr-l1 { background-color: #d1fad1 !important; } .bg-gr-l2 { background-color: #a3f5a3 !important; } .bg-gr-l3 { background-color: #75f075 !important; } .bg-gr-l4 { background-color: #47eb47 !important; } .bg-gr-l5 { background-color: #19e619 !important; } .bg-gr-l6 { background-color: #14b814 !important; } .bg-gr-l7 { background-color: #0f8a0f !important; } .bg-gr-l8 { background-color: #0a5c0a !important; } .bg-gr-l9 { background-color: #052e05 !important; } .bg-gr-m1 { background-color: #d9f2d9 !important; } .bg-gr-m2 { background-color: #b3e6b3 !important; } .bg-gr-m3 { background-color: #8cd98c !important; } .bg-gr-m4 { background-color: #66cc66 !important; } .bg-gr-m5 { background-color: #40bf40 !important; } .bg-gr-m6 { background-color: #339933 !important; } .bg-gr-m7 { background-color: #267326 !important; } .bg-gr-m8 { background-color: #194d19 !important; } .bg-gr-m9 { background-color: #0d260d !important; } .bg-gr-d1 { background-color: #e0ebe0 !important; } .bg-gr-d2 { background-color: #c2d6c2 !important; } .bg-gr-d3 { background-color: #a3c2a3 !important; } .bg-gr-d4 { background-color: #85ad85 !important; } .bg-gr-d5 { background-color: #669966 !important; } .bg-gr-d6 { background-color: #527a52 !important; } .bg-gr-d7 { background-color: #3d5c3d !important; } .bg-gr-d8 { background-color: #293d29 !important; } .bg-gr-d9 { background-color: #141f14 !important; } .bg-ga-l1 { background-color: #d1fadb !important; } .bg-ga-l2 { background-color: #a3f5b8 !important; } .bg-ga-l3 { background-color: #75f094 !important; } .bg-ga-l4 { background-color: #47eb70 !important; } .bg-ga-l5 { background-color: #19e64d !important; } .bg-ga-l6 { background-color: #14b83d !important; } .bg-ga-l7 { background-color: #0f8a2e !important; } .bg-ga-l8 { background-color: #0a5c1f !important; } .bg-ga-l9 { background-color: #052e0f !important; } .bg-ga-m1 { background-color: #d9f2df !important; } .bg-ga-m2 { background-color: #b3e6bf !important; } .bg-ga-m3 { background-color: #8cd99f !important; } .bg-ga-m4 { background-color: #66cc80 !important; } .bg-ga-m5 { background-color: #40bf60 !important; } .bg-ga-m6 { background-color: #33994d !important; } .bg-ga-m7 { background-color: #267339 !important; } .bg-ga-m8 { background-color: #194d26 !important; } .bg-ga-m9 { background-color: #0d2613 !important; } .bg-ga-d1 { background-color: #e0ebe3 !important; } .bg-ga-d2 { background-color: #c2d6c7 !important; } .bg-ga-d3 { background-color: #a3c2ab !important; } .bg-ga-d4 { background-color: #85ad8f !important; } .bg-ga-d5 { background-color: #669973 !important; } .bg-ga-d6 { background-color: #527a5c !important; } .bg-ga-d7 { background-color: #3d5c45 !important; } .bg-ga-d8 { background-color: #293d2e !important; } .bg-ga-d9 { background-color: #141f17 !important; } .bg-aq-l1 { background-color: #d1fae6 !important; } .bg-aq-l2 { background-color: #a3f5cc !important; } .bg-aq-l3 { background-color: #75f0b3 !important; } .bg-aq-l4 { background-color: #47eb99 !important; } .bg-aq-l5 { background-color: #19e680 !important; } .bg-aq-l6 { background-color: #14b866 !important; } .bg-aq-l7 { background-color: #0f8a4d !important; } .bg-aq-l8 { background-color: #0a5c33 !important; } .bg-aq-l9 { background-color: #052e1a !important; } .bg-aq-m1 { background-color: #d9f2e6 !important; } .bg-aq-m2 { background-color: #b3e6cc !important; } .bg-aq-m3 { background-color: #8cd9b3 !important; } .bg-aq-m4 { background-color: #66cc99 !important; } .bg-aq-m5 { background-color: #40bf80 !important; } .bg-aq-m6 { background-color: #339966 !important; } .bg-aq-m7 { background-color: #26734d !important; } .bg-aq-m8 { background-color: #194d33 !important; } .bg-aq-m9 { background-color: #0d261a !important; } .bg-aq-d1 { background-color: #e0ebe6 !important; } .bg-aq-d2 { background-color: #c2d6cc !important; } .bg-aq-d3 { background-color: #a3c2b3 !important; } .bg-aq-d4 { background-color: #85ad99 !important; } .bg-aq-d5 { background-color: #669980 !important; } .bg-aq-d6 { background-color: #527a66 !important; } .bg-aq-d7 { background-color: #3d5c4d !important; } .bg-aq-d8 { background-color: #293d33 !important; } .bg-aq-d9 { background-color: #141f19 !important; } .bg-ac-l1 { background-color: #d1faf0 !important; } .bg-ac-l2 { background-color: #a3f5e0 !important; } .bg-ac-l3 { background-color: #75f0d1 !important; } .bg-ac-l4 { background-color: #47ebc2 !important; } .bg-ac-l5 { background-color: #19e6b3 !important; } .bg-ac-l6 { background-color: #14b88f !important; } .bg-ac-l7 { background-color: #0f8a6b !important; } .bg-ac-l8 { background-color: #0a5c47 !important; } .bg-ac-l9 { background-color: #052e24 !important; } .bg-ac-m1 { background-color: #d9f2ec !important; } .bg-ac-m2 { background-color: #b3e6d9 !important; } .bg-ac-m3 { background-color: #8cd9c6 !important; } .bg-ac-m4 { background-color: #66ccb3 !important; } .bg-ac-m5 { background-color: #40bf9f !important; } .bg-ac-m6 { background-color: #339980 !important; } .bg-ac-m7 { background-color: #267360 !important; } .bg-ac-m8 { background-color: #194d40 !important; } .bg-ac-m9 { background-color: #0d2620 !important; } .bg-ac-d1 { background-color: #e0ebe8 !important; } .bg-ac-d2 { background-color: #c2d6d1 !important; } .bg-ac-d3 { background-color: #a3c2ba !important; } .bg-ac-d4 { background-color: #85ada3 !important; } .bg-ac-d5 { background-color: #66998c !important; } .bg-ac-d6 { background-color: #527a70 !important; } .bg-ac-d7 { background-color: #3d5c54 !important; } .bg-ac-d8 { background-color: #293d38 !important; } .bg-ac-d9 { background-color: #141f1c !important; } .bg-cy-l1 { background-color: #d1fafa !important; } .bg-cy-l2 { background-color: #a3f5f5 !important; } .bg-cy-l3 { background-color: #75f0f0 !important; } .bg-cy-l4 { background-color: #47ebeb !important; } .bg-cy-l5 { background-color: #19e5e6 !important; } .bg-cy-l6 { background-color: #14b8b8 !important; } .bg-cy-l7 { background-color: #0f8a8a !important; } .bg-cy-l8 { background-color: #0a5c5c !important; } .bg-cy-l9 { background-color: #052e2e !important; } .bg-cy-m1 { background-color: #d9f2f2 !important; } .bg-cy-m2 { background-color: #b3e5e6 !important; } .bg-cy-m3 { background-color: #8cd9d9 !important; } .bg-cy-m4 { background-color: #66cccc !important; } .bg-cy-m5 { background-color: #40bfbf !important; } .bg-cy-m6 { background-color: #339999 !important; } .bg-cy-m7 { background-color: #267373 !important; } .bg-cy-m8 { background-color: #194d4d !important; } .bg-cy-m9 { background-color: #0d2626 !important; } .bg-cy-d1 { background-color: #e0ebeb !important; } .bg-cy-d2 { background-color: #c2d6d6 !important; } .bg-cy-d3 { background-color: #a3c2c2 !important; } .bg-cy-d4 { background-color: #85adad !important; } .bg-cy-d5 { background-color: #669999 !important; } .bg-cy-d6 { background-color: #527a7a !important; } .bg-cy-d7 { background-color: #3d5c5c !important; } .bg-cy-d8 { background-color: #293d3d !important; } .bg-cy-d9 { background-color: #141f1f !important; } .bg-cb-l1 { background-color: #d1f0fa !important; } .bg-cb-l2 { background-color: #a3e0f5 !important; } .bg-cb-l3 { background-color: #75d1f0 !important; } .bg-cb-l4 { background-color: #47c2eb !important; } .bg-cb-l5 { background-color: #19b3e6 !important; } .bg-cb-l6 { background-color: #148fb8 !important; } .bg-cb-l7 { background-color: #0f6b8a !important; } .bg-cb-l8 { background-color: #0a475c !important; } .bg-cb-l9 { background-color: #05242e !important; } .bg-cb-m1 { background-color: #d9ecf2 !important; } .bg-cb-m2 { background-color: #b3d9e6 !important; } .bg-cb-m3 { background-color: #8cc6d9 !important; } .bg-cb-m4 { background-color: #66b3cc !important; } .bg-cb-m5 { background-color: #409fbf !important; } .bg-cb-m6 { background-color: #338099 !important; } .bg-cb-m7 { background-color: #266073 !important; } .bg-cb-m8 { background-color: #19404d !important; } .bg-cb-m9 { background-color: #0d2026 !important; } .bg-cb-d1 { background-color: #e0e8eb !important; } .bg-cb-d2 { background-color: #c2d1d6 !important; } .bg-cb-d3 { background-color: #a3bac2 !important; } .bg-cb-d4 { background-color: #85a3ad !important; } .bg-cb-d5 { background-color: #668c99 !important; } .bg-cb-d6 { background-color: #52707a !important; } .bg-cb-d7 { background-color: #3d545c !important; } .bg-cb-d8 { background-color: #29383d !important; } .bg-cb-d9 { background-color: #141c1f !important; } .bg-bl-l1 { background-color: #d1e5fa !important; } .bg-bl-l2 { background-color: #a3ccf5 !important; } .bg-bl-l3 { background-color: #75b2f0 !important; } .bg-bl-l4 { background-color: #4799eb !important; } .bg-bl-l5 { background-color: #197fe6 !important; } .bg-bl-l6 { background-color: #1466b8 !important; } .bg-bl-l7 { background-color: #0f4c8a !important; } .bg-bl-l8 { background-color: #0a335c !important; } .bg-bl-l9 { background-color: #05192e !important; } .bg-bl-m1 { background-color: #d9e6f2 !important; } .bg-bl-m2 { background-color: #b3cce6 !important; } .bg-bl-m3 { background-color: #8cb2d9 !important; } .bg-bl-m4 { background-color: #6699cc !important; } .bg-bl-m5 { background-color: #407fbf !important; } .bg-bl-m6 { background-color: #336699 !important; } .bg-bl-m7 { background-color: #264c73 !important; } .bg-bl-m8 { background-color: #19334d !important; } .bg-bl-m9 { background-color: #0d1926 !important; } .bg-bl-d1 { background-color: #e0e6eb !important; } .bg-bl-d2 { background-color: #c2ccd6 !important; } .bg-bl-d3 { background-color: #a3b3c2 !important; } .bg-bl-d4 { background-color: #8599ad !important; } .bg-bl-d5 { background-color: #667f99 !important; } .bg-bl-d6 { background-color: #52667a !important; } .bg-bl-d7 { background-color: #3d4c5c !important; } .bg-bl-d8 { background-color: #29333d !important; } .bg-bl-d9 { background-color: #14191f !important; } .bg-bi-l1 { background-color: #d1dbfa !important; } .bg-bi-l2 { background-color: #a3b8f5 !important; } .bg-bi-l3 { background-color: #7594f0 !important; } .bg-bi-l4 { background-color: #4770eb !important; } .bg-bi-l5 { background-color: #194ce6 !important; } .bg-bi-l6 { background-color: #143db8 !important; } .bg-bi-l7 { background-color: #0f2e8a !important; } .bg-bi-l8 { background-color: #0a1f5c !important; } .bg-bi-l9 { background-color: #050f2e !important; } .bg-bi-m1 { background-color: #d9dff2 !important; } .bg-bi-m2 { background-color: #b3bfe6 !important; } .bg-bi-m3 { background-color: #8c9fd9 !important; } .bg-bi-m4 { background-color: #667fcc !important; } .bg-bi-m5 { background-color: #4060bf !important; } .bg-bi-m6 { background-color: #334c99 !important; } .bg-bi-m7 { background-color: #263973 !important; } .bg-bi-m8 { background-color: #19264d !important; } .bg-bi-m9 { background-color: #0d1326 !important; } .bg-bi-d1 { background-color: #e0e3eb !important; } .bg-bi-d2 { background-color: #c2c7d6 !important; } .bg-bi-d3 { background-color: #a3abc2 !important; } .bg-bi-d4 { background-color: #858fad !important; } .bg-bi-d5 { background-color: #667399 !important; } .bg-bi-d6 { background-color: #525c7a !important; } .bg-bi-d7 { background-color: #3d455c !important; } .bg-bi-d8 { background-color: #292e3d !important; } .bg-bi-d9 { background-color: #14171f !important; } .bg-in-l1 { background-color: #d1d1fa !important; } .bg-in-l2 { background-color: #a3a3f5 !important; } .bg-in-l3 { background-color: #7575f0 !important; } .bg-in-l4 { background-color: #4747eb !important; } .bg-in-l5 { background-color: #1919e6 !important; } .bg-in-l6 { background-color: #1414b8 !important; } .bg-in-l7 { background-color: #0f0f8a !important; } .bg-in-l8 { background-color: #0a0a5c !important; } .bg-in-l9 { background-color: #05052e !important; } .bg-in-m1 { background-color: #d9d9f2 !important; } .bg-in-m2 { background-color: #b3b3e6 !important; } .bg-in-m3 { background-color: #8c8cd9 !important; } .bg-in-m4 { background-color: #6666cc !important; } .bg-in-m5 { background-color: #4040bf !important; } .bg-in-m6 { background-color: #333399 !important; } .bg-in-m7 { background-color: #262673 !important; } .bg-in-m8 { background-color: #19194d !important; } .bg-in-m9 { background-color: #0d0d26 !important; } .bg-in-d1 { background-color: #e0e0eb !important; } .bg-in-d2 { background-color: #c2c2d6 !important; } .bg-in-d3 { background-color: #a3a3c2 !important; } .bg-in-d4 { background-color: #8585ad !important; } .bg-in-d5 { background-color: #666699 !important; } .bg-in-d6 { background-color: #52527a !important; } .bg-in-d7 { background-color: #3d3d5c !important; } .bg-in-d8 { background-color: #29293d !important; } .bg-in-d9 { background-color: #14141f !important; } .bg-ip-l1 { background-color: #dbd1fa !important; } .bg-ip-l2 { background-color: #b8a3f5 !important; } .bg-ip-l3 { background-color: #9475f0 !important; } .bg-ip-l4 { background-color: #7047eb !important; } .bg-ip-l5 { background-color: #4d19e6 !important; } .bg-ip-l6 { background-color: #3d14b8 !important; } .bg-ip-l7 { background-color: #2e0f8a !important; } .bg-ip-l8 { background-color: #1f0a5c !important; } .bg-ip-l9 { background-color: #0f052e !important; } .bg-ip-m1 { background-color: #dfd9f2 !important; } .bg-ip-m2 { background-color: #bfb3e6 !important; } .bg-ip-m3 { background-color: #9f8cd9 !important; } .bg-ip-m4 { background-color: #8066cc !important; } .bg-ip-m5 { background-color: #6040bf !important; } .bg-ip-m6 { background-color: #4d3399 !important; } .bg-ip-m7 { background-color: #392673 !important; } .bg-ip-m8 { background-color: #26194d !important; } .bg-ip-m9 { background-color: #130d26 !important; } .bg-ip-d1 { background-color: #e3e0eb !important; } .bg-ip-d2 { background-color: #c7c2d6 !important; } .bg-ip-d3 { background-color: #aba3c2 !important; } .bg-ip-d4 { background-color: #8f85ad !important; } .bg-ip-d5 { background-color: #736699 !important; } .bg-ip-d6 { background-color: #5c527a !important; } .bg-ip-d7 { background-color: #453d5c !important; } .bg-ip-d8 { background-color: #2e293d !important; } .bg-ip-d9 { background-color: #17141f !important; } .bg-pu-l1 { background-color: #e5d1fa !important; } .bg-pu-l2 { background-color: #cca3f5 !important; } .bg-pu-l3 { background-color: #b275f0 !important; } .bg-pu-l4 { background-color: #9947eb !important; } .bg-pu-l5 { background-color: #7f19e6 !important; } .bg-pu-l6 { background-color: #6614b8 !important; } .bg-pu-l7 { background-color: #4c0f8a !important; } .bg-pu-l8 { background-color: #330a5c !important; } .bg-pu-l9 { background-color: #19052e !important; } .bg-pu-m1 { background-color: #e6d9f2 !important; } .bg-pu-m2 { background-color: #ccb3e6 !important; } .bg-pu-m3 { background-color: #b28cd9 !important; } .bg-pu-m4 { background-color: #9966cc !important; } .bg-pu-m5 { background-color: #7f40bf !important; } .bg-pu-m6 { background-color: #663399 !important; } .bg-pu-m7 { background-color: #4c2673 !important; } .bg-pu-m8 { background-color: #33194d !important; } .bg-pu-m9 { background-color: #190d26 !important; } .bg-pu-d1 { background-color: #e6e0eb !important; } .bg-pu-d2 { background-color: #ccc2d6 !important; } .bg-pu-d3 { background-color: #b3a3c2 !important; } .bg-pu-d4 { background-color: #9985ad !important; } .bg-pu-d5 { background-color: #7f6699 !important; } .bg-pu-d6 { background-color: #66527a !important; } .bg-pu-d7 { background-color: #4c3d5c !important; } .bg-pu-d8 { background-color: #33293d !important; } .bg-pu-d9 { background-color: #19141f !important; } .bg-pp-l1 { background-color: #f0d1fa !important; } .bg-pp-l2 { background-color: #e0a3f5 !important; } .bg-pp-l3 { background-color: #d175f0 !important; } .bg-pp-l4 { background-color: #c247eb !important; } .bg-pp-l5 { background-color: #b319e6 !important; } .bg-pp-l6 { background-color: #8f14b8 !important; } .bg-pp-l7 { background-color: #6b0f8a !important; } .bg-pp-l8 { background-color: #470a5c !important; } .bg-pp-l9 { background-color: #24052e !important; } .bg-pp-m1 { background-color: #ecd9f2 !important; } .bg-pp-m2 { background-color: #d9b3e6 !important; } .bg-pp-m3 { background-color: #c68cd9 !important; } .bg-pp-m4 { background-color: #b366cc !important; } .bg-pp-m5 { background-color: #9f40bf !important; } .bg-pp-m6 { background-color: #803399 !important; } .bg-pp-m7 { background-color: #602673 !important; } .bg-pp-m8 { background-color: #40194d !important; } .bg-pp-m9 { background-color: #200d26 !important; } .bg-pp-d1 { background-color: #e8e0eb !important; } .bg-pp-d2 { background-color: #d1c2d6 !important; } .bg-pp-d3 { background-color: #baa3c2 !important; } .bg-pp-d4 { background-color: #a385ad !important; } .bg-pp-d5 { background-color: #8c6699 !important; } .bg-pp-d6 { background-color: #70527a !important; } .bg-pp-d7 { background-color: #543d5c !important; } .bg-pp-d8 { background-color: #38293d !important; } .bg-pp-d9 { background-color: #1c141f !important; } .bg-pi-l1 { background-color: #fad1fa !important; } .bg-pi-l2 { background-color: #f5a3f5 !important; } .bg-pi-l3 { background-color: #f075f0 !important; } .bg-pi-l4 { background-color: #eb47eb !important; } .bg-pi-l5 { background-color: #e619e5 !important; } .bg-pi-l6 { background-color: #b814b8 !important; } .bg-pi-l7 { background-color: #8a0f8a !important; } .bg-pi-l8 { background-color: #5c0a5c !important; } .bg-pi-l9 { background-color: #2e052e !important; } .bg-pi-m1 { background-color: #f2d9f2 !important; } .bg-pi-m2 { background-color: #e6b3e5 !important; } .bg-pi-m3 { background-color: #d98cd9 !important; } .bg-pi-m4 { background-color: #cc66cc !important; } .bg-pi-m5 { background-color: #bf40bf !important; } .bg-pi-m6 { background-color: #993399 !important; } .bg-pi-m7 { background-color: #732673 !important; } .bg-pi-m8 { background-color: #4d194d !important; } .bg-pi-m9 { background-color: #260d26 !important; } .bg-pi-d1 { background-color: #ebe0eb !important; } .bg-pi-d2 { background-color: #d6c2d6 !important; } .bg-pi-d3 { background-color: #c2a3c2 !important; } .bg-pi-d4 { background-color: #ad85ad !important; } .bg-pi-d5 { background-color: #996699 !important; } .bg-pi-d6 { background-color: #7a527a !important; } .bg-pi-d7 { background-color: #5c3d5c !important; } .bg-pi-d8 { background-color: #3d293d !important; } .bg-pi-d9 { background-color: #1f141f !important; } .bg-pv-l1 { background-color: #fad1f0 !important; } .bg-pv-l2 { background-color: #f5a3e0 !important; } .bg-pv-l3 { background-color: #f075d1 !important; } .bg-pv-l4 { background-color: #eb47c2 !important; } .bg-pv-l5 { background-color: #e619b2 !important; } .bg-pv-l6 { background-color: #b8148f !important; } .bg-pv-l7 { background-color: #8a0f6b !important; } .bg-pv-l8 { background-color: #5c0a47 !important; } .bg-pv-l9 { background-color: #2e0524 !important; } .bg-pv-m1 { background-color: #f2d9ec !important; } .bg-pv-m2 { background-color: #e6b3d9 !important; } .bg-pv-m3 { background-color: #d98cc6 !important; } .bg-pv-m4 { background-color: #cc66b2 !important; } .bg-pv-m5 { background-color: #bf409f !important; } .bg-pv-m6 { background-color: #99337f !important; } .bg-pv-m7 { background-color: #732660 !important; } .bg-pv-m8 { background-color: #4d1940 !important; } .bg-pv-m9 { background-color: #260d20 !important; } .bg-pv-d1 { background-color: #ebe0e8 !important; } .bg-pv-d2 { background-color: #d6c2d1 !important; } .bg-pv-d3 { background-color: #c2a3ba !important; } .bg-pv-d4 { background-color: #ad85a3 !important; } .bg-pv-d5 { background-color: #99668c !important; } .bg-pv-d6 { background-color: #7a5270 !important; } .bg-pv-d7 { background-color: #5c3d54 !important; } .bg-pv-d8 { background-color: #3d2938 !important; } .bg-pv-d9 { background-color: #1f141c !important; } .bg-vi-l1 { background-color: #fad1e6 !important; } .bg-vi-l2 { background-color: #f5a3cc !important; } .bg-vi-l3 { background-color: #f075b3 !important; } .bg-vi-l4 { background-color: #eb4799 !important; } .bg-vi-l5 { background-color: #e61980 !important; } .bg-vi-l6 { background-color: #b81466 !important; } .bg-vi-l7 { background-color: #8a0f4d !important; } .bg-vi-l8 { background-color: #5c0a33 !important; } .bg-vi-l9 { background-color: #2e051a !important; } .bg-vi-m1 { background-color: #f2d9e6 !important; } .bg-vi-m2 { background-color: #e6b3cc !important; } .bg-vi-m3 { background-color: #d98cb3 !important; } .bg-vi-m4 { background-color: #cc6699 !important; } .bg-vi-m5 { background-color: #bf4080 !important; } .bg-vi-m6 { background-color: #993366 !important; } .bg-vi-m7 { background-color: #73264d !important; } .bg-vi-m8 { background-color: #4d1933 !important; } .bg-vi-m9 { background-color: #260d1a !important; } .bg-vi-d1 { background-color: #ebe0e6 !important; } .bg-vi-d2 { background-color: #d6c2cc !important; } .bg-vi-d3 { background-color: #c2a3b3 !important; } .bg-vi-d4 { background-color: #ad8599 !important; } .bg-vi-d5 { background-color: #996680 !important; } .bg-vi-d6 { background-color: #7a5266 !important; } .bg-vi-d7 { background-color: #5c3d4d !important; } .bg-vi-d8 { background-color: #3d2933 !important; } .bg-vi-d9 { background-color: #1f1419 !important; } .bg-vr-l1 { background-color: #fad1db !important; } .bg-vr-l2 { background-color: #f5a3b8 !important; } .bg-vr-l3 { background-color: #f07594 !important; } .bg-vr-l4 { background-color: #eb4770 !important; } .bg-vr-l5 { background-color: #e6194c !important; } .bg-vr-l6 { background-color: #b8143d !important; } .bg-vr-l7 { background-color: #8a0f2e !important; } .bg-vr-l8 { background-color: #5c0a1f !important; } .bg-vr-l9 { background-color: #2e050f !important; } .bg-vr-m1 { background-color: #f2d9df !important; } .bg-vr-m2 { background-color: #e6b3bf !important; } .bg-vr-m3 { background-color: #d98c9f !important; } .bg-vr-m4 { background-color: #cc667f !important; } .bg-vr-m5 { background-color: #bf4060 !important; } .bg-vr-m6 { background-color: #99334c !important; } .bg-vr-m7 { background-color: #732639 !important; } .bg-vr-m8 { background-color: #4d1926 !important; } .bg-vr-m9 { background-color: #260d13 !important; } .bg-vr-d1 { background-color: #ebe0e3 !important; } .bg-vr-d2 { background-color: #d6c2c7 !important; } .bg-vr-d3 { background-color: #c2a3ab !important; } .bg-vr-d4 { background-color: #ad858f !important; } .bg-vr-d5 { background-color: #996673 !important; } .bg-vr-d6 { background-color: #7a525c !important; } .bg-vr-d7 { background-color: #5c3d45 !important; } .bg-vr-d8 { background-color: #3d292e !important; } .bg-vr-d9 { background-color: #1f1417 !important; } .bg-gy-l1 { background-color: #f2f2f2 !important; } .bg-gy-l2 { background-color: #e6e6e6 !important; } .bg-gy-l3 { background-color: #d9d9d9 !important; } .bg-gy-l4 { background-color: #cccccc !important; } .bg-gy-l5 { background-color: #bfbfbf !important; } .bg-gy-l6 { background-color: #b3b3b3 !important; } .bg-gy-l7 { background-color: #a6a6a6 !important; } .bg-gy-l8 { background-color: #999999 !important; } .bg-gy-l9 { background-color: #8c8c8c !important; } .bg-gy-m1 { background-color: #b3b3b3 !important; } .bg-gy-m2 { background-color: #a6a6a6 !important; } .bg-gy-m3 { background-color: #999999 !important; } .bg-gy-m4 { background-color: #8c8c8c !important; } .bg-gy-m5 { background-color: #808080 !important; } .bg-gy-m6 { background-color: #737373 !important; } .bg-gy-m7 { background-color: #666666 !important; } .bg-gy-m8 { background-color: #595959 !important; } .bg-gy-m9 { background-color: #4d4d4d !important; } .bg-gy-d1 { background-color: #808080 !important; } .bg-gy-d2 { background-color: #737373 !important; } .bg-gy-d3 { background-color: #666666 !important; } .bg-gy-d4 { background-color: #595959 !important; } .bg-gy-d5 { background-color: #4d4d4d !important; } .bg-gy-d6 { background-color: #404040 !important; } .bg-gy-d7 { background-color: #333333 !important; } .bg-gy-d8 { background-color: #262626 !important; } .bg-gy-d9 { background-color: #1a1a1a !important; } .bg-re { background-color: #ff0000; } .bg-ro { background-color: #ff4000; } .bg-or { background-color: #ff8000; } .bg-oy { background-color: #ffbf00; } .bg-ye { background-color: #ffff00; } .bg-yc { background-color: #bfff00; } .bg-ch { background-color: #80ff00; } .bg-cg { background-color: #40ff00; } .bg-gr { background-color: #00ff00; } .bg-ga { background-color: #00ff40; } .bg-aq { background-color: #00ff80; } .bg-ac { background-color: #00ffbf; } .bg-cy { background-color: #00ffff; } .bg-cb { background-color: #00bfff; } .bg-bl { background-color: #007fff; } .bg-bi { background-color: #0040ff; } .bg-in { background-color: #0000ff; } .bg-ip { background-color: #4000ff; } .bg-pu { background-color: #7f00ff; } .bg-pp { background-color: #bf00ff; } .bg-pi { background-color: #ff00ff; } .bg-pv { background-color: #ff00bf; } .bg-vi { background-color: #ff0080; } .bg-vr { background-color: #ff0040; } .bg-gy { background-color: #000; } .bg-wh { background-color: #fff; } .bg-bk { background-color: #000; } .bg-tr { background-color: transparent; } .bg-re-l { background-color: #e61919; } .bg-ro-l { background-color: #e64d19; } .bg-or-l { background-color: #e68019; } .bg-oy-l { background-color: #e6b319; } .bg-ye-l { background-color: #e5e619; } .bg-yc-l { background-color: #b3e619; } .bg-ch-l { background-color: #80e619; } .bg-cg-l { background-color: #4ce619; } .bg-gr-l { background-color: #19e619; } .bg-ga-l { background-color: #19e64d; } .bg-aq-l { background-color: #19e680; } .bg-ac-l { background-color: #19e6b3; } .bg-cy-l { background-color: #19e5e6; } .bg-cb-l { background-color: #19b3e6; } .bg-bl-l { background-color: #197fe6; } .bg-bi-l { background-color: #194ce6; } .bg-in-l { background-color: #1919e6; } .bg-ip-l { background-color: #4d19e6; } .bg-pu-l { background-color: #7f19e6; } .bg-pp-l { background-color: #b319e6; } .bg-pi-l { background-color: #e619e5; } .bg-pv-l { background-color: #e619b2; } .bg-vi-l { background-color: #e61980; } .bg-vr-l { background-color: #e6194c; } .bg-gy-l { background-color: #bfbfbf; } .bg-re-m { background-color: #bf4040; } .bg-ro-m { background-color: #bf6040; } .bg-or-m { background-color: #bf8040; } .bg-oy-m { background-color: #bf9f40; } .bg-ye-m { background-color: #bfbf40; } .bg-yc-m { background-color: #9fbf40; } .bg-ch-m { background-color: #80bf40; } .bg-cg-m { background-color: #60bf40; } .bg-gr-m { background-color: #40bf40; } .bg-ga-m { background-color: #40bf60; } .bg-aq-m { background-color: #40bf80; } .bg-ac-m { background-color: #40bf9f; } .bg-cy-m { background-color: #40bfbf; } .bg-cb-m { background-color: #409fbf; } .bg-bl-m { background-color: #407fbf; } .bg-bi-m { background-color: #4060bf; } .bg-in-m { background-color: #4040bf; } .bg-ip-m { background-color: #6040bf; } .bg-pu-m { background-color: #7f40bf; } .bg-pp-m { background-color: #9f40bf; } .bg-pi-m { background-color: #bf40bf; } .bg-pv-m { background-color: #bf409f; } .bg-vi-m { background-color: #bf4080; } .bg-vr-m { background-color: #bf4060; } .bg-gy-m { background-color: #808080; } .bg-re-d { background-color: #996666; } .bg-ro-d { background-color: #997366; } .bg-or-d { background-color: #998066; } .bg-oy-d { background-color: #998c66; } .bg-ye-d { background-color: #999966; } .bg-yc-d { background-color: #8c9966; } .bg-ch-d { background-color: #809966; } .bg-cg-d { background-color: #739966; } .bg-gr-d { background-color: #669966; } .bg-ga-d { background-color: #669973; } .bg-aq-d { background-color: #669980; } .bg-ac-d { background-color: #66998c; } .bg-cy-d { background-color: #669999; } .bg-cb-d { background-color: #668c99; } .bg-bl-d { background-color: #667f99; } .bg-bi-d { background-color: #667399; } .bg-in-d { background-color: #666699; } .bg-ip-d { background-color: #736699; } .bg-pu-d { background-color: #7f6699; } .bg-pp-d { background-color: #8c6699; } .bg-pi-d { background-color: #996699; } .bg-pv-d { background-color: #99668c; } .bg-vi-d { background-color: #996680; } .bg-vr-d { background-color: #996673; } .bg-gy-d { background-color: #4d4d4d; } .t-re-l1 { color: #fad1d1 !important; } .t-re-l2 { color: #f5a3a3 !important; } .t-re-l3 { color: #f07575 !important; } .t-re-l4 { color: #eb4747 !important; } .t-re-l5 { color: #e61919 !important; } .t-re-l6 { color: #b81414 !important; } .t-re-l7 { color: #8a0f0f !important; } .t-re-l8 { color: #5c0a0a !important; } .t-re-l9 { color: #2e0505 !important; } .t-re-m1 { color: #f2d9d9 !important; } .t-re-m2 { color: #e6b3b3 !important; } .t-re-m3 { color: #d98c8c !important; } .t-re-m4 { color: #cc6666 !important; } .t-re-m5 { color: #bf4040 !important; } .t-re-m6 { color: #993333 !important; } .t-re-m7 { color: #732626 !important; } .t-re-m8 { color: #4d1919 !important; } .t-re-m9 { color: #260d0d !important; } .t-re-d1 { color: #ebe0e0 !important; } .t-re-d2 { color: #d6c2c2 !important; } .t-re-d3 { color: #c2a3a3 !important; } .t-re-d4 { color: #ad8585 !important; } .t-re-d5 { color: #996666 !important; } .t-re-d6 { color: #7a5252 !important; } .t-re-d7 { color: #5c3d3d !important; } .t-re-d8 { color: #3d2929 !important; } .t-re-d9 { color: #1f1414 !important; } .t-re-l1 { color: #fad1d1 !important; } .t-re-l2 { color: #f5a3a3 !important; } .t-re-l3 { color: #f07575 !important; } .t-re-l4 { color: #eb4747 !important; } .t-re-l5 { color: #e61919 !important; } .t-re-l6 { color: #b81414 !important; } .t-re-l7 { color: #8a0f0f !important; } .t-re-l8 { color: #5c0a0a !important; } .t-re-l9 { color: #2e0505 !important; } .t-re-m1 { color: #f2d9d9 !important; } .t-re-m2 { color: #e6b3b3 !important; } .t-re-m3 { color: #d98c8c !important; } .t-re-m4 { color: #cc6666 !important; } .t-re-m5 { color: #bf4040 !important; } .t-re-m6 { color: #993333 !important; } .t-re-m7 { color: #732626 !important; } .t-re-m8 { color: #4d1919 !important; } .t-re-m9 { color: #260d0d !important; } .t-re-d1 { color: #ebe0e0 !important; } .t-re-d2 { color: #d6c2c2 !important; } .t-re-d3 { color: #c2a3a3 !important; } .t-re-d4 { color: #ad8585 !important; } .t-re-d5 { color: #996666 !important; } .t-re-d6 { color: #7a5252 !important; } .t-re-d7 { color: #5c3d3d !important; } .t-re-d8 { color: #3d2929 !important; } .t-re-d9 { color: #1f1414 !important; } .t-ro-l1 { color: #fadbd1 !important; } .t-ro-l2 { color: #f5b8a3 !important; } .t-ro-l3 { color: #f09475 !important; } .t-ro-l4 { color: #eb7047 !important; } .t-ro-l5 { color: #e64d19 !important; } .t-ro-l6 { color: #b83d14 !important; } .t-ro-l7 { color: #8a2e0f !important; } .t-ro-l8 { color: #5c1f0a !important; } .t-ro-l9 { color: #2e0f05 !important; } .t-ro-m1 { color: #f2dfd9 !important; } .t-ro-m2 { color: #e6bfb3 !important; } .t-ro-m3 { color: #d99f8c !important; } .t-ro-m4 { color: #cc7f66 !important; } .t-ro-m5 { color: #bf6040 !important; } .t-ro-m6 { color: #994d33 !important; } .t-ro-m7 { color: #733926 !important; } .t-ro-m8 { color: #4d2619 !important; } .t-ro-m9 { color: #26130d !important; } .t-ro-d1 { color: #ebe3e0 !important; } .t-ro-d2 { color: #d6c7c2 !important; } .t-ro-d3 { color: #c2aba3 !important; } .t-ro-d4 { color: #ad8f85 !important; } .t-ro-d5 { color: #997366 !important; } .t-ro-d6 { color: #7a5c52 !important; } .t-ro-d7 { color: #5c453d !important; } .t-ro-d8 { color: #3d2e29 !important; } .t-ro-d9 { color: #1f1714 !important; } .t-or-l1 { color: #fae6d1 !important; } .t-or-l2 { color: #f5cca3 !important; } .t-or-l3 { color: #f0b375 !important; } .t-or-l4 { color: #eb9947 !important; } .t-or-l5 { color: #e68019 !important; } .t-or-l6 { color: #b86614 !important; } .t-or-l7 { color: #8a4d0f !important; } .t-or-l8 { color: #5c330a !important; } .t-or-l9 { color: #2e1905 !important; } .t-or-m1 { color: #f2e6d9 !important; } .t-or-m2 { color: #e6ccb3 !important; } .t-or-m3 { color: #d9b38c !important; } .t-or-m4 { color: #cc9966 !important; } .t-or-m5 { color: #bf8040 !important; } .t-or-m6 { color: #996633 !important; } .t-or-m7 { color: #734d26 !important; } .t-or-m8 { color: #4d3319 !important; } .t-or-m9 { color: #26190d !important; } .t-or-d1 { color: #ebe6e0 !important; } .t-or-d2 { color: #d6ccc2 !important; } .t-or-d3 { color: #c2b3a3 !important; } .t-or-d4 { color: #ad9985 !important; } .t-or-d5 { color: #998066 !important; } .t-or-d6 { color: #7a6652 !important; } .t-or-d7 { color: #5c4d3d !important; } .t-or-d8 { color: #3d3329 !important; } .t-or-d9 { color: #1f1914 !important; } .t-oy-l1 { color: #faf0d1 !important; } .t-oy-l2 { color: #f5e0a3 !important; } .t-oy-l3 { color: #f0d175 !important; } .t-oy-l4 { color: #ebc247 !important; } .t-oy-l5 { color: #e6b319 !important; } .t-oy-l6 { color: #b88f14 !important; } .t-oy-l7 { color: #8a6b0f !important; } .t-oy-l8 { color: #5c470a !important; } .t-oy-l9 { color: #2e2405 !important; } .t-oy-m1 { color: #f2ecd9 !important; } .t-oy-m2 { color: #e6d9b3 !important; } .t-oy-m3 { color: #d9c68c !important; } .t-oy-m4 { color: #ccb366 !important; } .t-oy-m5 { color: #bf9f40 !important; } .t-oy-m6 { color: #998033 !important; } .t-oy-m7 { color: #736026 !important; } .t-oy-m8 { color: #4d4019 !important; } .t-oy-m9 { color: #26200d !important; } .t-oy-d1 { color: #ebe8e0 !important; } .t-oy-d2 { color: #d6d1c2 !important; } .t-oy-d3 { color: #c2baa3 !important; } .t-oy-d4 { color: #ada385 !important; } .t-oy-d5 { color: #998c66 !important; } .t-oy-d6 { color: #7a7052 !important; } .t-oy-d7 { color: #5c543d !important; } .t-oy-d8 { color: #3d3829 !important; } .t-oy-d9 { color: #1f1c14 !important; } .t-ye-l1 { color: #fafad1 !important; } .t-ye-l2 { color: #f5f5a3 !important; } .t-ye-l3 { color: #f0f075 !important; } .t-ye-l4 { color: #ebeb47 !important; } .t-ye-l5 { color: #e5e619 !important; } .t-ye-l6 { color: #b8b814 !important; } .t-ye-l7 { color: #8a8a0f !important; } .t-ye-l8 { color: #5c5c0a !important; } .t-ye-l9 { color: #2e2e05 !important; } .t-ye-m1 { color: #f2f2d9 !important; } .t-ye-m2 { color: #e5e6b3 !important; } .t-ye-m3 { color: #d9d98c !important; } .t-ye-m4 { color: #cccc66 !important; } .t-ye-m5 { color: #bfbf40 !important; } .t-ye-m6 { color: #999933 !important; } .t-ye-m7 { color: #737326 !important; } .t-ye-m8 { color: #4d4d19 !important; } .t-ye-m9 { color: #26260d !important; } .t-ye-d1 { color: #ebebe0 !important; } .t-ye-d2 { color: #d6d6c2 !important; } .t-ye-d3 { color: #c2c2a3 !important; } .t-ye-d4 { color: #adad85 !important; } .t-ye-d5 { color: #999966 !important; } .t-ye-d6 { color: #7a7a52 !important; } .t-ye-d7 { color: #5c5c3d !important; } .t-ye-d8 { color: #3d3d29 !important; } .t-ye-d9 { color: #1f1f14 !important; } .t-yc-l1 { color: #f0fad1 !important; } .t-yc-l2 { color: #e0f5a3 !important; } .t-yc-l3 { color: #d1f075 !important; } .t-yc-l4 { color: #c2eb47 !important; } .t-yc-l5 { color: #b3e619 !important; } .t-yc-l6 { color: #8fb814 !important; } .t-yc-l7 { color: #6b8a0f !important; } .t-yc-l8 { color: #475c0a !important; } .t-yc-l9 { color: #242e05 !important; } .t-yc-m1 { color: #ecf2d9 !important; } .t-yc-m2 { color: #d9e6b3 !important; } .t-yc-m3 { color: #c6d98c !important; } .t-yc-m4 { color: #b3cc66 !important; } .t-yc-m5 { color: #9fbf40 !important; } .t-yc-m6 { color: #809933 !important; } .t-yc-m7 { color: #607326 !important; } .t-yc-m8 { color: #404d19 !important; } .t-yc-m9 { color: #20260d !important; } .t-yc-d1 { color: #e8ebe0 !important; } .t-yc-d2 { color: #d1d6c2 !important; } .t-yc-d3 { color: #bac2a3 !important; } .t-yc-d4 { color: #a3ad85 !important; } .t-yc-d5 { color: #8c9966 !important; } .t-yc-d6 { color: #707a52 !important; } .t-yc-d7 { color: #545c3d !important; } .t-yc-d8 { color: #383d29 !important; } .t-yc-d9 { color: #1c1f14 !important; } .t-ch-l1 { color: #e6fad1 !important; } .t-ch-l2 { color: #ccf5a3 !important; } .t-ch-l3 { color: #b3f075 !important; } .t-ch-l4 { color: #99eb47 !important; } .t-ch-l5 { color: #80e619 !important; } .t-ch-l6 { color: #66b814 !important; } .t-ch-l7 { color: #4d8a0f !important; } .t-ch-l8 { color: #335c0a !important; } .t-ch-l9 { color: #1a2e05 !important; } .t-ch-m1 { color: #e6f2d9 !important; } .t-ch-m2 { color: #cce6b3 !important; } .t-ch-m3 { color: #b3d98c !important; } .t-ch-m4 { color: #99cc66 !important; } .t-ch-m5 { color: #80bf40 !important; } .t-ch-m6 { color: #669933 !important; } .t-ch-m7 { color: #4d7326 !important; } .t-ch-m8 { color: #334d19 !important; } .t-ch-m9 { color: #1a260d !important; } .t-ch-d1 { color: #e6ebe0 !important; } .t-ch-d2 { color: #ccd6c2 !important; } .t-ch-d3 { color: #b3c2a3 !important; } .t-ch-d4 { color: #99ad85 !important; } .t-ch-d5 { color: #809966 !important; } .t-ch-d6 { color: #667a52 !important; } .t-ch-d7 { color: #4d5c3d !important; } .t-ch-d8 { color: #333d29 !important; } .t-ch-d9 { color: #191f14 !important; } .t-cg-l1 { color: #dbfad1 !important; } .t-cg-l2 { color: #b8f5a3 !important; } .t-cg-l3 { color: #94f075 !important; } .t-cg-l4 { color: #70eb47 !important; } .t-cg-l5 { color: #4ce619 !important; } .t-cg-l6 { color: #3db814 !important; } .t-cg-l7 { color: #2e8a0f !important; } .t-cg-l8 { color: #1f5c0a !important; } .t-cg-l9 { color: #0f2e05 !important; } .t-cg-m1 { color: #dff2d9 !important; } .t-cg-m2 { color: #bfe6b3 !important; } .t-cg-m3 { color: #9fd98c !important; } .t-cg-m4 { color: #7fcc66 !important; } .t-cg-m5 { color: #60bf40 !important; } .t-cg-m6 { color: #4c9933 !important; } .t-cg-m7 { color: #397326 !important; } .t-cg-m8 { color: #264d19 !important; } .t-cg-m9 { color: #13260d !important; } .t-cg-d1 { color: #e3ebe0 !important; } .t-cg-d2 { color: #c7d6c2 !important; } .t-cg-d3 { color: #abc2a3 !important; } .t-cg-d4 { color: #8fad85 !important; } .t-cg-d5 { color: #739966 !important; } .t-cg-d6 { color: #5c7a52 !important; } .t-cg-d7 { color: #455c3d !important; } .t-cg-d8 { color: #2e3d29 !important; } .t-cg-d9 { color: #171f14 !important; } .t-gr-l1 { color: #d1fad1 !important; } .t-gr-l2 { color: #a3f5a3 !important; } .t-gr-l3 { color: #75f075 !important; } .t-gr-l4 { color: #47eb47 !important; } .t-gr-l5 { color: #19e619 !important; } .t-gr-l6 { color: #14b814 !important; } .t-gr-l7 { color: #0f8a0f !important; } .t-gr-l8 { color: #0a5c0a !important; } .t-gr-l9 { color: #052e05 !important; } .t-gr-m1 { color: #d9f2d9 !important; } .t-gr-m2 { color: #b3e6b3 !important; } .t-gr-m3 { color: #8cd98c !important; } .t-gr-m4 { color: #66cc66 !important; } .t-gr-m5 { color: #40bf40 !important; } .t-gr-m6 { color: #339933 !important; } .t-gr-m7 { color: #267326 !important; } .t-gr-m8 { color: #194d19 !important; } .t-gr-m9 { color: #0d260d !important; } .t-gr-d1 { color: #e0ebe0 !important; } .t-gr-d2 { color: #c2d6c2 !important; } .t-gr-d3 { color: #a3c2a3 !important; } .t-gr-d4 { color: #85ad85 !important; } .t-gr-d5 { color: #669966 !important; } .t-gr-d6 { color: #527a52 !important; } .t-gr-d7 { color: #3d5c3d !important; } .t-gr-d8 { color: #293d29 !important; } .t-gr-d9 { color: #141f14 !important; } .t-ga-l1 { color: #d1fadb !important; } .t-ga-l2 { color: #a3f5b8 !important; } .t-ga-l3 { color: #75f094 !important; } .t-ga-l4 { color: #47eb70 !important; } .t-ga-l5 { color: #19e64d !important; } .t-ga-l6 { color: #14b83d !important; } .t-ga-l7 { color: #0f8a2e !important; } .t-ga-l8 { color: #0a5c1f !important; } .t-ga-l9 { color: #052e0f !important; } .t-ga-m1 { color: #d9f2df !important; } .t-ga-m2 { color: #b3e6bf !important; } .t-ga-m3 { color: #8cd99f !important; } .t-ga-m4 { color: #66cc80 !important; } .t-ga-m5 { color: #40bf60 !important; } .t-ga-m6 { color: #33994d !important; } .t-ga-m7 { color: #267339 !important; } .t-ga-m8 { color: #194d26 !important; } .t-ga-m9 { color: #0d2613 !important; } .t-ga-d1 { color: #e0ebe3 !important; } .t-ga-d2 { color: #c2d6c7 !important; } .t-ga-d3 { color: #a3c2ab !important; } .t-ga-d4 { color: #85ad8f !important; } .t-ga-d5 { color: #669973 !important; } .t-ga-d6 { color: #527a5c !important; } .t-ga-d7 { color: #3d5c45 !important; } .t-ga-d8 { color: #293d2e !important; } .t-ga-d9 { color: #141f17 !important; } .t-aq-l1 { color: #d1fae6 !important; } .t-aq-l2 { color: #a3f5cc !important; } .t-aq-l3 { color: #75f0b3 !important; } .t-aq-l4 { color: #47eb99 !important; } .t-aq-l5 { color: #19e680 !important; } .t-aq-l6 { color: #14b866 !important; } .t-aq-l7 { color: #0f8a4d !important; } .t-aq-l8 { color: #0a5c33 !important; } .t-aq-l9 { color: #052e1a !important; } .t-aq-m1 { color: #d9f2e6 !important; } .t-aq-m2 { color: #b3e6cc !important; } .t-aq-m3 { color: #8cd9b3 !important; } .t-aq-m4 { color: #66cc99 !important; } .t-aq-m5 { color: #40bf80 !important; } .t-aq-m6 { color: #339966 !important; } .t-aq-m7 { color: #26734d !important; } .t-aq-m8 { color: #194d33 !important; } .t-aq-m9 { color: #0d261a !important; } .t-aq-d1 { color: #e0ebe6 !important; } .t-aq-d2 { color: #c2d6cc !important; } .t-aq-d3 { color: #a3c2b3 !important; } .t-aq-d4 { color: #85ad99 !important; } .t-aq-d5 { color: #669980 !important; } .t-aq-d6 { color: #527a66 !important; } .t-aq-d7 { color: #3d5c4d !important; } .t-aq-d8 { color: #293d33 !important; } .t-aq-d9 { color: #141f19 !important; } .t-ac-l1 { color: #d1faf0 !important; } .t-ac-l2 { color: #a3f5e0 !important; } .t-ac-l3 { color: #75f0d1 !important; } .t-ac-l4 { color: #47ebc2 !important; } .t-ac-l5 { color: #19e6b3 !important; } .t-ac-l6 { color: #14b88f !important; } .t-ac-l7 { color: #0f8a6b !important; } .t-ac-l8 { color: #0a5c47 !important; } .t-ac-l9 { color: #052e24 !important; } .t-ac-m1 { color: #d9f2ec !important; } .t-ac-m2 { color: #b3e6d9 !important; } .t-ac-m3 { color: #8cd9c6 !important; } .t-ac-m4 { color: #66ccb3 !important; } .t-ac-m5 { color: #40bf9f !important; } .t-ac-m6 { color: #339980 !important; } .t-ac-m7 { color: #267360 !important; } .t-ac-m8 { color: #194d40 !important; } .t-ac-m9 { color: #0d2620 !important; } .t-ac-d1 { color: #e0ebe8 !important; } .t-ac-d2 { color: #c2d6d1 !important; } .t-ac-d3 { color: #a3c2ba !important; } .t-ac-d4 { color: #85ada3 !important; } .t-ac-d5 { color: #66998c !important; } .t-ac-d6 { color: #527a70 !important; } .t-ac-d7 { color: #3d5c54 !important; } .t-ac-d8 { color: #293d38 !important; } .t-ac-d9 { color: #141f1c !important; } .t-cy-l1 { color: #d1fafa !important; } .t-cy-l2 { color: #a3f5f5 !important; } .t-cy-l3 { color: #75f0f0 !important; } .t-cy-l4 { color: #47ebeb !important; } .t-cy-l5 { color: #19e5e6 !important; } .t-cy-l6 { color: #14b8b8 !important; } .t-cy-l7 { color: #0f8a8a !important; } .t-cy-l8 { color: #0a5c5c !important; } .t-cy-l9 { color: #052e2e !important; } .t-cy-m1 { color: #d9f2f2 !important; } .t-cy-m2 { color: #b3e5e6 !important; } .t-cy-m3 { color: #8cd9d9 !important; } .t-cy-m4 { color: #66cccc !important; } .t-cy-m5 { color: #40bfbf !important; } .t-cy-m6 { color: #339999 !important; } .t-cy-m7 { color: #267373 !important; } .t-cy-m8 { color: #194d4d !important; } .t-cy-m9 { color: #0d2626 !important; } .t-cy-d1 { color: #e0ebeb !important; } .t-cy-d2 { color: #c2d6d6 !important; } .t-cy-d3 { color: #a3c2c2 !important; } .t-cy-d4 { color: #85adad !important; } .t-cy-d5 { color: #669999 !important; } .t-cy-d6 { color: #527a7a !important; } .t-cy-d7 { color: #3d5c5c !important; } .t-cy-d8 { color: #293d3d !important; } .t-cy-d9 { color: #141f1f !important; } .t-cb-l1 { color: #d1f0fa !important; } .t-cb-l2 { color: #a3e0f5 !important; } .t-cb-l3 { color: #75d1f0 !important; } .t-cb-l4 { color: #47c2eb !important; } .t-cb-l5 { color: #19b3e6 !important; } .t-cb-l6 { color: #148fb8 !important; } .t-cb-l7 { color: #0f6b8a !important; } .t-cb-l8 { color: #0a475c !important; } .t-cb-l9 { color: #05242e !important; } .t-cb-m1 { color: #d9ecf2 !important; } .t-cb-m2 { color: #b3d9e6 !important; } .t-cb-m3 { color: #8cc6d9 !important; } .t-cb-m4 { color: #66b3cc !important; } .t-cb-m5 { color: #409fbf !important; } .t-cb-m6 { color: #338099 !important; } .t-cb-m7 { color: #266073 !important; } .t-cb-m8 { color: #19404d !important; } .t-cb-m9 { color: #0d2026 !important; } .t-cb-d1 { color: #e0e8eb !important; } .t-cb-d2 { color: #c2d1d6 !important; } .t-cb-d3 { color: #a3bac2 !important; } .t-cb-d4 { color: #85a3ad !important; } .t-cb-d5 { color: #668c99 !important; } .t-cb-d6 { color: #52707a !important; } .t-cb-d7 { color: #3d545c !important; } .t-cb-d8 { color: #29383d !important; } .t-cb-d9 { color: #141c1f !important; } .t-bl-l1 { color: #d1e5fa !important; } .t-bl-l2 { color: #a3ccf5 !important; } .t-bl-l3 { color: #75b2f0 !important; } .t-bl-l4 { color: #4799eb !important; } .t-bl-l5 { color: #197fe6 !important; } .t-bl-l6 { color: #1466b8 !important; } .t-bl-l7 { color: #0f4c8a !important; } .t-bl-l8 { color: #0a335c !important; } .t-bl-l9 { color: #05192e !important; } .t-bl-m1 { color: #d9e6f2 !important; } .t-bl-m2 { color: #b3cce6 !important; } .t-bl-m3 { color: #8cb2d9 !important; } .t-bl-m4 { color: #6699cc !important; } .t-bl-m5 { color: #407fbf !important; } .t-bl-m6 { color: #336699 !important; } .t-bl-m7 { color: #264c73 !important; } .t-bl-m8 { color: #19334d !important; } .t-bl-m9 { color: #0d1926 !important; } .t-bl-d1 { color: #e0e6eb !important; } .t-bl-d2 { color: #c2ccd6 !important; } .t-bl-d3 { color: #a3b3c2 !important; } .t-bl-d4 { color: #8599ad !important; } .t-bl-d5 { color: #667f99 !important; } .t-bl-d6 { color: #52667a !important; } .t-bl-d7 { color: #3d4c5c !important; } .t-bl-d8 { color: #29333d !important; } .t-bl-d9 { color: #14191f !important; } .t-bi-l1 { color: #d1dbfa !important; } .t-bi-l2 { color: #a3b8f5 !important; } .t-bi-l3 { color: #7594f0 !important; } .t-bi-l4 { color: #4770eb !important; } .t-bi-l5 { color: #194ce6 !important; } .t-bi-l6 { color: #143db8 !important; } .t-bi-l7 { color: #0f2e8a !important; } .t-bi-l8 { color: #0a1f5c !important; } .t-bi-l9 { color: #050f2e !important; } .t-bi-m1 { color: #d9dff2 !important; } .t-bi-m2 { color: #b3bfe6 !important; } .t-bi-m3 { color: #8c9fd9 !important; } .t-bi-m4 { color: #667fcc !important; } .t-bi-m5 { color: #4060bf !important; } .t-bi-m6 { color: #334c99 !important; } .t-bi-m7 { color: #263973 !important; } .t-bi-m8 { color: #19264d !important; } .t-bi-m9 { color: #0d1326 !important; } .t-bi-d1 { color: #e0e3eb !important; } .t-bi-d2 { color: #c2c7d6 !important; } .t-bi-d3 { color: #a3abc2 !important; } .t-bi-d4 { color: #858fad !important; } .t-bi-d5 { color: #667399 !important; } .t-bi-d6 { color: #525c7a !important; } .t-bi-d7 { color: #3d455c !important; } .t-bi-d8 { color: #292e3d !important; } .t-bi-d9 { color: #14171f !important; } .t-in-l1 { color: #d1d1fa !important; } .t-in-l2 { color: #a3a3f5 !important; } .t-in-l3 { color: #7575f0 !important; } .t-in-l4 { color: #4747eb !important; } .t-in-l5 { color: #1919e6 !important; } .t-in-l6 { color: #1414b8 !important; } .t-in-l7 { color: #0f0f8a !important; } .t-in-l8 { color: #0a0a5c !important; } .t-in-l9 { color: #05052e !important; } .t-in-m1 { color: #d9d9f2 !important; } .t-in-m2 { color: #b3b3e6 !important; } .t-in-m3 { color: #8c8cd9 !important; } .t-in-m4 { color: #6666cc !important; } .t-in-m5 { color: #4040bf !important; } .t-in-m6 { color: #333399 !important; } .t-in-m7 { color: #262673 !important; } .t-in-m8 { color: #19194d !important; } .t-in-m9 { color: #0d0d26 !important; } .t-in-d1 { color: #e0e0eb !important; } .t-in-d2 { color: #c2c2d6 !important; } .t-in-d3 { color: #a3a3c2 !important; } .t-in-d4 { color: #8585ad !important; } .t-in-d5 { color: #666699 !important; } .t-in-d6 { color: #52527a !important; } .t-in-d7 { color: #3d3d5c !important; } .t-in-d8 { color: #29293d !important; } .t-in-d9 { color: #14141f !important; } .t-ip-l1 { color: #dbd1fa !important; } .t-ip-l2 { color: #b8a3f5 !important; } .t-ip-l3 { color: #9475f0 !important; } .t-ip-l4 { color: #7047eb !important; } .t-ip-l5 { color: #4d19e6 !important; } .t-ip-l6 { color: #3d14b8 !important; } .t-ip-l7 { color: #2e0f8a !important; } .t-ip-l8 { color: #1f0a5c !important; } .t-ip-l9 { color: #0f052e !important; } .t-ip-m1 { color: #dfd9f2 !important; } .t-ip-m2 { color: #bfb3e6 !important; } .t-ip-m3 { color: #9f8cd9 !important; } .t-ip-m4 { color: #8066cc !important; } .t-ip-m5 { color: #6040bf !important; } .t-ip-m6 { color: #4d3399 !important; } .t-ip-m7 { color: #392673 !important; } .t-ip-m8 { color: #26194d !important; } .t-ip-m9 { color: #130d26 !important; } .t-ip-d1 { color: #e3e0eb !important; } .t-ip-d2 { color: #c7c2d6 !important; } .t-ip-d3 { color: #aba3c2 !important; } .t-ip-d4 { color: #8f85ad !important; } .t-ip-d5 { color: #736699 !important; } .t-ip-d6 { color: #5c527a !important; } .t-ip-d7 { color: #453d5c !important; } .t-ip-d8 { color: #2e293d !important; } .t-ip-d9 { color: #17141f !important; } .t-pu-l1 { color: #e5d1fa !important; } .t-pu-l2 { color: #cca3f5 !important; } .t-pu-l3 { color: #b275f0 !important; } .t-pu-l4 { color: #9947eb !important; } .t-pu-l5 { color: #7f19e6 !important; } .t-pu-l6 { color: #6614b8 !important; } .t-pu-l7 { color: #4c0f8a !important; } .t-pu-l8 { color: #330a5c !important; } .t-pu-l9 { color: #19052e !important; } .t-pu-m1 { color: #e6d9f2 !important; } .t-pu-m2 { color: #ccb3e6 !important; } .t-pu-m3 { color: #b28cd9 !important; } .t-pu-m4 { color: #9966cc !important; } .t-pu-m5 { color: #7f40bf !important; } .t-pu-m6 { color: #663399 !important; } .t-pu-m7 { color: #4c2673 !important; } .t-pu-m8 { color: #33194d !important; } .t-pu-m9 { color: #190d26 !important; } .t-pu-d1 { color: #e6e0eb !important; } .t-pu-d2 { color: #ccc2d6 !important; } .t-pu-d3 { color: #b3a3c2 !important; } .t-pu-d4 { color: #9985ad !important; } .t-pu-d5 { color: #7f6699 !important; } .t-pu-d6 { color: #66527a !important; } .t-pu-d7 { color: #4c3d5c !important; } .t-pu-d8 { color: #33293d !important; } .t-pu-d9 { color: #19141f !important; } .t-pp-l1 { color: #f0d1fa !important; } .t-pp-l2 { color: #e0a3f5 !important; } .t-pp-l3 { color: #d175f0 !important; } .t-pp-l4 { color: #c247eb !important; } .t-pp-l5 { color: #b319e6 !important; } .t-pp-l6 { color: #8f14b8 !important; } .t-pp-l7 { color: #6b0f8a !important; } .t-pp-l8 { color: #470a5c !important; } .t-pp-l9 { color: #24052e !important; } .t-pp-m1 { color: #ecd9f2 !important; } .t-pp-m2 { color: #d9b3e6 !important; } .t-pp-m3 { color: #c68cd9 !important; } .t-pp-m4 { color: #b366cc !important; } .t-pp-m5 { color: #9f40bf !important; } .t-pp-m6 { color: #803399 !important; } .t-pp-m7 { color: #602673 !important; } .t-pp-m8 { color: #40194d !important; } .t-pp-m9 { color: #200d26 !important; } .t-pp-d1 { color: #e8e0eb !important; } .t-pp-d2 { color: #d1c2d6 !important; } .t-pp-d3 { color: #baa3c2 !important; } .t-pp-d4 { color: #a385ad !important; } .t-pp-d5 { color: #8c6699 !important; } .t-pp-d6 { color: #70527a !important; } .t-pp-d7 { color: #543d5c !important; } .t-pp-d8 { color: #38293d !important; } .t-pp-d9 { color: #1c141f !important; } .t-pi-l1 { color: #fad1fa !important; } .t-pi-l2 { color: #f5a3f5 !important; } .t-pi-l3 { color: #f075f0 !important; } .t-pi-l4 { color: #eb47eb !important; } .t-pi-l5 { color: #e619e5 !important; } .t-pi-l6 { color: #b814b8 !important; } .t-pi-l7 { color: #8a0f8a !important; } .t-pi-l8 { color: #5c0a5c !important; } .t-pi-l9 { color: #2e052e !important; } .t-pi-m1 { color: #f2d9f2 !important; } .t-pi-m2 { color: #e6b3e5 !important; } .t-pi-m3 { color: #d98cd9 !important; } .t-pi-m4 { color: #cc66cc !important; } .t-pi-m5 { color: #bf40bf !important; } .t-pi-m6 { color: #993399 !important; } .t-pi-m7 { color: #732673 !important; } .t-pi-m8 { color: #4d194d !important; } .t-pi-m9 { color: #260d26 !important; } .t-pi-d1 { color: #ebe0eb !important; } .t-pi-d2 { color: #d6c2d6 !important; } .t-pi-d3 { color: #c2a3c2 !important; } .t-pi-d4 { color: #ad85ad !important; } .t-pi-d5 { color: #996699 !important; } .t-pi-d6 { color: #7a527a !important; } .t-pi-d7 { color: #5c3d5c !important; } .t-pi-d8 { color: #3d293d !important; } .t-pi-d9 { color: #1f141f !important; } .t-pv-l1 { color: #fad1f0 !important; } .t-pv-l2 { color: #f5a3e0 !important; } .t-pv-l3 { color: #f075d1 !important; } .t-pv-l4 { color: #eb47c2 !important; } .t-pv-l5 { color: #e619b2 !important; } .t-pv-l6 { color: #b8148f !important; } .t-pv-l7 { color: #8a0f6b !important; } .t-pv-l8 { color: #5c0a47 !important; } .t-pv-l9 { color: #2e0524 !important; } .t-pv-m1 { color: #f2d9ec !important; } .t-pv-m2 { color: #e6b3d9 !important; } .t-pv-m3 { color: #d98cc6 !important; } .t-pv-m4 { color: #cc66b2 !important; } .t-pv-m5 { color: #bf409f !important; } .t-pv-m6 { color: #99337f !important; } .t-pv-m7 { color: #732660 !important; } .t-pv-m8 { color: #4d1940 !important; } .t-pv-m9 { color: #260d20 !important; } .t-pv-d1 { color: #ebe0e8 !important; } .t-pv-d2 { color: #d6c2d1 !important; } .t-pv-d3 { color: #c2a3ba !important; } .t-pv-d4 { color: #ad85a3 !important; } .t-pv-d5 { color: #99668c !important; } .t-pv-d6 { color: #7a5270 !important; } .t-pv-d7 { color: #5c3d54 !important; } .t-pv-d8 { color: #3d2938 !important; } .t-pv-d9 { color: #1f141c !important; } .t-vi-l1 { color: #fad1e6 !important; } .t-vi-l2 { color: #f5a3cc !important; } .t-vi-l3 { color: #f075b3 !important; } .t-vi-l4 { color: #eb4799 !important; } .t-vi-l5 { color: #e61980 !important; } .t-vi-l6 { color: #b81466 !important; } .t-vi-l7 { color: #8a0f4d !important; } .t-vi-l8 { color: #5c0a33 !important; } .t-vi-l9 { color: #2e051a !important; } .t-vi-m1 { color: #f2d9e6 !important; } .t-vi-m2 { color: #e6b3cc !important; } .t-vi-m3 { color: #d98cb3 !important; } .t-vi-m4 { color: #cc6699 !important; } .t-vi-m5 { color: #bf4080 !important; } .t-vi-m6 { color: #993366 !important; } .t-vi-m7 { color: #73264d !important; } .t-vi-m8 { color: #4d1933 !important; } .t-vi-m9 { color: #260d1a !important; } .t-vi-d1 { color: #ebe0e6 !important; } .t-vi-d2 { color: #d6c2cc !important; } .t-vi-d3 { color: #c2a3b3 !important; } .t-vi-d4 { color: #ad8599 !important; } .t-vi-d5 { color: #996680 !important; } .t-vi-d6 { color: #7a5266 !important; } .t-vi-d7 { color: #5c3d4d !important; } .t-vi-d8 { color: #3d2933 !important; } .t-vi-d9 { color: #1f1419 !important; } .t-vr-l1 { color: #fad1db !important; } .t-vr-l2 { color: #f5a3b8 !important; } .t-vr-l3 { color: #f07594 !important; } .t-vr-l4 { color: #eb4770 !important; } .t-vr-l5 { color: #e6194c !important; } .t-vr-l6 { color: #b8143d !important; } .t-vr-l7 { color: #8a0f2e !important; } .t-vr-l8 { color: #5c0a1f !important; } .t-vr-l9 { color: #2e050f !important; } .t-vr-m1 { color: #f2d9df !important; } .t-vr-m2 { color: #e6b3bf !important; } .t-vr-m3 { color: #d98c9f !important; } .t-vr-m4 { color: #cc667f !important; } .t-vr-m5 { color: #bf4060 !important; } .t-vr-m6 { color: #99334c !important; } .t-vr-m7 { color: #732639 !important; } .t-vr-m8 { color: #4d1926 !important; } .t-vr-m9 { color: #260d13 !important; } .t-vr-d1 { color: #ebe0e3 !important; } .t-vr-d2 { color: #d6c2c7 !important; } .t-vr-d3 { color: #c2a3ab !important; } .t-vr-d4 { color: #ad858f !important; } .t-vr-d5 { color: #996673 !important; } .t-vr-d6 { color: #7a525c !important; } .t-vr-d7 { color: #5c3d45 !important; } .t-vr-d8 { color: #3d292e !important; } .t-vr-d9 { color: #1f1417 !important; } .t-gy-l1 { color: #f2f2f2 !important; } .t-gy-l2 { color: #e6e6e6 !important; } .t-gy-l3 { color: #d9d9d9 !important; } .t-gy-l4 { color: #cccccc !important; } .t-gy-l5 { color: #bfbfbf !important; } .t-gy-l6 { color: #b3b3b3 !important; } .t-gy-l7 { color: #a6a6a6 !important; } .t-gy-l8 { color: #999999 !important; } .t-gy-l9 { color: #8c8c8c !important; } .t-gy-m1 { color: #b3b3b3 !important; } .t-gy-m2 { color: #a6a6a6 !important; } .t-gy-m3 { color: #999999 !important; } .t-gy-m4 { color: #8c8c8c !important; } .t-gy-m5 { color: #808080 !important; } .t-gy-m6 { color: #737373 !important; } .t-gy-m7 { color: #666666 !important; } .t-gy-m8 { color: #595959 !important; } .t-gy-m9 { color: #4d4d4d !important; } .t-gy-d1 { color: #808080 !important; } .t-gy-d2 { color: #737373 !important; } .t-gy-d3 { color: #666666 !important; } .t-gy-d4 { color: #595959 !important; } .t-gy-d5 { color: #4d4d4d !important; } .t-gy-d6 { color: #404040 !important; } .t-gy-d7 { color: #333333 !important; } .t-gy-d8 { color: #262626 !important; } .t-gy-d9 { color: #1a1a1a !important; } .t-re { color: #ff0000 !important; } .t-ro { color: #ff4000 !important; } .t-or { color: #ff8000 !important; } .t-oy { color: #ffbf00 !important; } .t-ye { color: #ffff00 !important; } .t-yc { color: #bfff00 !important; } .t-ch { color: #80ff00 !important; } .t-cg { color: #40ff00 !important; } .t-gr { color: #00ff00 !important; } .t-ga { color: #00ff40 !important; } .t-aq { color: #00ff80 !important; } .t-ac { color: #00ffbf !important; } .t-cy { color: #00ffff !important; } .t-cb { color: #00bfff !important; } .t-bl { color: #007fff !important; } .t-bi { color: #0040ff !important; } .t-in { color: #0000ff !important; } .t-ip { color: #4000ff !important; } .t-pu { color: #7f00ff !important; } .t-pp { color: #bf00ff !important; } .t-pi { color: #ff00ff !important; } .t-pv { color: #ff00bf !important; } .t-vi { color: #ff0080 !important; } .t-vr { color: #ff0040 !important; } .t-gy { color: #000 !important; } .t-wh { color: #fff !important; } .t-bk { color: #000 !important; } .t-tr { color: transparent !important; } .t-re-l { color: #e61919 !important; } .t-ro-l { color: #e64d19 !important; } .t-or-l { color: #e68019 !important; } .t-oy-l { color: #e6b319 !important; } .t-ye-l { color: #e5e619 !important; } .t-yc-l { color: #b3e619 !important; } .t-ch-l { color: #80e619 !important; } .t-cg-l { color: #4ce619 !important; } .t-gr-l { color: #19e619 !important; } .t-ga-l { color: #19e64d !important; } .t-aq-l { color: #19e680 !important; } .t-ac-l { color: #19e6b3 !important; } .t-cy-l { color: #19e5e6 !important; } .t-cb-l { color: #19b3e6 !important; } .t-bl-l { color: #197fe6 !important; } .t-bi-l { color: #194ce6 !important; } .t-in-l { color: #1919e6 !important; } .t-ip-l { color: #4d19e6 !important; } .t-pu-l { color: #7f19e6 !important; } .t-pp-l { color: #b319e6 !important; } .t-pi-l { color: #e619e5 !important; } .t-pv-l { color: #e619b2 !important; } .t-vi-l { color: #e61980 !important; } .t-vr-l { color: #e6194c !important; } .t-gy-l { color: #bfbfbf !important; } .t-re-m { color: #bf4040 !important; } .t-ro-m { color: #bf6040 !important; } .t-or-m { color: #bf8040 !important; } .t-oy-m { color: #bf9f40 !important; } .t-ye-m { color: #bfbf40 !important; } .t-yc-m { color: #9fbf40 !important; } .t-ch-m { color: #80bf40 !important; } .t-cg-m { color: #60bf40 !important; } .t-gr-m { color: #40bf40 !important; } .t-ga-m { color: #40bf60 !important; } .t-aq-m { color: #40bf80 !important; } .t-ac-m { color: #40bf9f !important; } .t-cy-m { color: #40bfbf !important; } .t-cb-m { color: #409fbf !important; } .t-bl-m { color: #407fbf !important; } .t-bi-m { color: #4060bf !important; } .t-in-m { color: #4040bf !important; } .t-ip-m { color: #6040bf !important; } .t-pu-m { color: #7f40bf !important; } .t-pp-m { color: #9f40bf !important; } .t-pi-m { color: #bf40bf !important; } .t-pv-m { color: #bf409f !important; } .t-vi-m { color: #bf4080 !important; } .t-vr-m { color: #bf4060 !important; } .t-gy-m { color: #808080 !important; } .t-re-d { color: #996666 !important; } .t-ro-d { color: #997366 !important; } .t-or-d { color: #998066 !important; } .t-oy-d { color: #998c66 !important; } .t-ye-d { color: #999966 !important; } .t-yc-d { color: #8c9966 !important; } .t-ch-d { color: #809966 !important; } .t-cg-d { color: #739966 !important; } .t-gr-d { color: #669966 !important; } .t-ga-d { color: #669973 !important; } .t-aq-d { color: #669980 !important; } .t-ac-d { color: #66998c !important; } .t-cy-d { color: #669999 !important; } .t-cb-d { color: #668c99 !important; } .t-bl-d { color: #667f99 !important; } .t-bi-d { color: #667399 !important; } .t-in-d { color: #666699 !important; } .t-ip-d { color: #736699 !important; } .t-pu-d { color: #7f6699 !important; } .t-pp-d { color: #8c6699 !important; } .t-pi-d { color: #996699 !important; } .t-pv-d { color: #99668c !important; } .t-vi-d { color: #996680 !important; } .t-vr-d { color: #996673 !important; } .t-gy-d { color: #4d4d4d !important; } .bg-re-hl1 { background-color: #fad1df !important; } .bg-re-hl2 { background-color: #f5a3b8 !important; } .bg-re-hl3 { background-color: #f0758a !important; } .bg-re-hl4 { background-color: #eb4755 !important; } .bg-re-hl5 { background-color: #e61919 !important; } .bg-re-hl6 { background-color: #b82214 !important; } .bg-re-hl7 { background-color: #8a240f !important; } .bg-re-hl8 { background-color: #5c1f0a !important; } .bg-re-hl9 { background-color: #2e1305 !important; } .bg-re-hm1 { background-color: #f2d9e1 !important; } .bg-re-hm2 { background-color: #e6b3bf !important; } .bg-re-hm3 { background-color: #d98c99 !important; } .bg-re-hm4 { background-color: #cc666e !important; } .bg-re-hm5 { background-color: #bf4040 !important; } .bg-re-hm6 { background-color: #993b33 !important; } .bg-re-hm7 { background-color: #733326 !important; } .bg-re-hm8 { background-color: #4d2619 !important; } .bg-re-hm9 { background-color: #26150d !important; } .bg-re-hd1 { background-color: #ebe0e4 !important; } .bg-re-hd2 { background-color: #d6c2c7 !important; } .bg-re-hd3 { background-color: #c2a3a8 !important; } .bg-re-hd4 { background-color: #ad8588 !important; } .bg-re-hd5 { background-color: #996666 !important; } .bg-re-hd6 { background-color: #7a5552 !important; } .bg-re-hd7 { background-color: #5c423d !important; } .bg-re-hd8 { background-color: #3d2e29 !important; } .bg-re-hd9 { background-color: #1f1814 !important; } .bg-ro-hl1 { background-color: #fad1d4 !important; } .bg-ro-hl2 { background-color: #f5a3a3 !important; } .bg-ro-hl3 { background-color: #f07f75 !important; } .bg-ro-hl4 { background-color: #eb6347 !important; } .bg-ro-hl5 { background-color: #e64d19 !important; } .bg-ro-hl6 { background-color: #b84b14 !important; } .bg-ro-hl7 { background-color: #8a420f !important; } .bg-ro-hl8 { background-color: #5c330a !important; } .bg-ro-hl9 { background-color: #2e1d05 !important; } .bg-ro-hm1 { background-color: #f2d9db !important; } .bg-ro-hm2 { background-color: #e6b3b3 !important; } .bg-ro-hm3 { background-color: #d9938c !important; } .bg-ro-hm4 { background-color: #cc7766 !important; } .bg-ro-hm5 { background-color: #bf6040 !important; } .bg-ro-hm6 { background-color: #995533 !important; } .bg-ro-hm7 { background-color: #734626 !important; } .bg-ro-hm8 { background-color: #4d3319 !important; } .bg-ro-hm9 { background-color: #261c0d !important; } .bg-ro-hd1 { background-color: #ebe0e1 !important; } .bg-ro-hd2 { background-color: #d6c2c2 !important; } .bg-ro-hd3 { background-color: #c2a6a3 !important; } .bg-ro-hd4 { background-color: #ad8b85 !important; } .bg-ro-hd5 { background-color: #997366 !important; } .bg-ro-hd6 { background-color: #7a5f52 !important; } .bg-ro-hd7 { background-color: #5c4a3d !important; } .bg-ro-hd8 { background-color: #3d3329 !important; } .bg-ro-hd9 { background-color: #1f1a14 !important; } .bg-or-hl1 { background-color: #fad8d1 !important; } .bg-or-hl2 { background-color: #f5b8a3 !important; } .bg-or-hl3 { background-color: #f09e75 !important; } .bg-or-hl4 { background-color: #eb8b47 !important; } .bg-or-hl5 { background-color: #e68019 !important; } .bg-or-hl6 { background-color: #b87414 !important; } .bg-or-hl7 { background-color: #8a610f !important; } .bg-or-hl8 { background-color: #5c470a !important; } .bg-or-hl9 { background-color: #2e2705 !important; } .bg-or-hm1 { background-color: #f2ddd9 !important; } .bg-or-hm2 { background-color: #e6bfb3 !important; } .bg-or-hm3 { background-color: #d9a68c !important; } .bg-or-hm4 { background-color: #cc9166 !important; } .bg-or-hm5 { background-color: #bf8040 !important; } .bg-or-hm6 { background-color: #996f33 !important; } .bg-or-hm7 { background-color: #735926 !important; } .bg-or-hm8 { background-color: #4d4019 !important; } .bg-or-hm9 { background-color: #26220d !important; } .bg-or-hd1 { background-color: #ebe2e0 !important; } .bg-or-hd2 { background-color: #d6c7c2 !important; } .bg-or-hd3 { background-color: #c2ada3 !important; } .bg-or-hd4 { background-color: #ad9685 !important; } .bg-or-hd5 { background-color: #998066 !important; } .bg-or-hd6 { background-color: #7a6952 !important; } .bg-or-hd7 { background-color: #5c523d !important; } .bg-or-hd8 { background-color: #3d3829 !important; } .bg-or-hd9 { background-color: #1f1d14 !important; } .bg-oy-hl1 { background-color: #fae2d1 !important; } .bg-oy-hl2 { background-color: #f5cca3 !important; } .bg-oy-hl3 { background-color: #f0bd75 !important; } .bg-oy-hl4 { background-color: #ebb447 !important; } .bg-oy-hl5 { background-color: #e6b319 !important; } .bg-oy-hl6 { background-color: #b89c14 !important; } .bg-oy-hl7 { background-color: #8a800f !important; } .bg-oy-hl8 { background-color: #5c5c0a !important; } .bg-oy-hl9 { background-color: #2b2e05 !important; } .bg-oy-hm1 { background-color: #f2e3d9 !important; } .bg-oy-hm2 { background-color: #e6ccb3 !important; } .bg-oy-hm3 { background-color: #d9b98c !important; } .bg-oy-hm4 { background-color: #ccaa66 !important; } .bg-oy-hm5 { background-color: #bf9f40 !important; } .bg-oy-hm6 { background-color: #998833 !important; } .bg-oy-hm7 { background-color: #736c26 !important; } .bg-oy-hm8 { background-color: #4d4d19 !important; } .bg-oy-hm9 { background-color: #24260d !important; } .bg-oy-hd1 { background-color: #ebe5e0 !important; } .bg-oy-hd2 { background-color: #d6ccc2 !important; } .bg-oy-hd3 { background-color: #c2b5a3 !important; } .bg-oy-hd4 { background-color: #ada085 !important; } .bg-oy-hd5 { background-color: #998c66 !important; } .bg-oy-hd6 { background-color: #7a7452 !important; } .bg-oy-hd7 { background-color: #5c593d !important; } .bg-oy-hd8 { background-color: #3d3d29 !important; } .bg-oy-hd9 { background-color: #1e1f14 !important; } .bg-ye-hl1 { background-color: #faecd1 !important; } .bg-ye-hl2 { background-color: #f5e0a3 !important; } .bg-ye-hl3 { background-color: #f0db75 !important; } .bg-ye-hl4 { background-color: #ebdd47 !important; } .bg-ye-hl5 { background-color: #e5e619 !important; } .bg-ye-hl6 { background-color: #aab814 !important; } .bg-ye-hl7 { background-color: #758a0f !important; } .bg-ye-hl8 { background-color: #475c0a !important; } .bg-ye-hl9 { background-color: #202e05 !important; } .bg-ye-hm1 { background-color: #f2ead9 !important; } .bg-ye-hm2 { background-color: #e6d9b3 !important; } .bg-ye-hm3 { background-color: #d9cc8c !important; } .bg-ye-hm4 { background-color: #ccc466 !important; } .bg-ye-hm5 { background-color: #bfbf40 !important; } .bg-ye-hm6 { background-color: #909933 !important; } .bg-ye-hm7 { background-color: #667326 !important; } .bg-ye-hm8 { background-color: #404d19 !important; } .bg-ye-hm9 { background-color: #1e260d !important; } .bg-ye-hd1 { background-color: #ebe7e0 !important; } .bg-ye-hd2 { background-color: #d6d1c2 !important; } .bg-ye-hd3 { background-color: #c2bda3 !important; } .bg-ye-hd4 { background-color: #adaa85 !important; } .bg-ye-hd5 { background-color: #999966 !important; } .bg-ye-hd6 { background-color: #777a52 !important; } .bg-ye-hd7 { background-color: #575c3d !important; } .bg-ye-hd8 { background-color: #383d29 !important; } .bg-ye-hd9 { background-color: #1b1f14 !important; } .bg-yc-hl1 { background-color: #faf7d1 !important; } .bg-yc-hl2 { background-color: #f5f5a3 !important; } .bg-yc-hl3 { background-color: #e6f075 !important; } .bg-yc-hl4 { background-color: #cfeb47 !important; } .bg-yc-hl5 { background-color: #b3e619 !important; } .bg-yc-hl6 { background-color: #81b814 !important; } .bg-yc-hl7 { background-color: #578a0f !important; } .bg-yc-hl8 { background-color: #335c0a !important; } .bg-yc-hl9 { background-color: #162e05 !important; } .bg-yc-hm1 { background-color: #f2f0d9 !important; } .bg-yc-hm2 { background-color: #e5e6b3 !important; } .bg-yc-hm3 { background-color: #d2d98c !important; } .bg-yc-hm4 { background-color: #bbcc66 !important; } .bg-yc-hm5 { background-color: #9fbf40 !important; } .bg-yc-hm6 { background-color: #779933 !important; } .bg-yc-hm7 { background-color: #537326 !important; } .bg-yc-hm8 { background-color: #334d19 !important; } .bg-yc-hm9 { background-color: #17260d !important; } .bg-yc-hd1 { background-color: #ebeae0 !important; } .bg-yc-hd2 { background-color: #d6d6c2 !important; } .bg-yc-hd3 { background-color: #bfc2a3 !important; } .bg-yc-hd4 { background-color: #a7ad85 !important; } .bg-yc-hd5 { background-color: #8c9966 !important; } .bg-yc-hd6 { background-color: #6d7a52 !important; } .bg-yc-hd7 { background-color: #4f5c3d !important; } .bg-yc-hd8 { background-color: #333d29 !important; } .bg-yc-hd9 { background-color: #191f14 !important; } .bg-ch-hl1 { background-color: #f3fad1 !important; } .bg-ch-hl2 { background-color: #e0f5a3 !important; } .bg-ch-hl3 { background-color: #c7f075 !important; } .bg-ch-hl4 { background-color: #a7eb47 !important; } .bg-ch-hl5 { background-color: #80e619 !important; } .bg-ch-hl6 { background-color: #58b814 !important; } .bg-ch-hl7 { background-color: #388a0f !important; } .bg-ch-hl8 { background-color: #1f5c0a !important; } .bg-ch-hl9 { background-color: #0c2e05 !important; } .bg-ch-hm1 { background-color: #eef2d9 !important; } .bg-ch-hm2 { background-color: #d9e6b3 !important; } .bg-ch-hm3 { background-color: #bfd98c !important; } .bg-ch-hm4 { background-color: #a2cc66 !important; } .bg-ch-hm5 { background-color: #80bf40 !important; } .bg-ch-hm6 { background-color: #5e9933 !important; } .bg-ch-hm7 { background-color: #407326 !important; } .bg-ch-hm8 { background-color: #264d19 !important; } .bg-ch-hm9 { background-color: #11260d !important; } .bg-ch-hd1 { background-color: #e9ebe0 !important; } .bg-ch-hd2 { background-color: #d1d6c2 !important; } .bg-ch-hd3 { background-color: #b8c2a3 !important; } .bg-ch-hd4 { background-color: #9cad85 !important; } .bg-ch-hd5 { background-color: #809966 !important; } .bg-ch-hd6 { background-color: #637a52 !important; } .bg-ch-hd7 { background-color: #475c3d !important; } .bg-ch-hd8 { background-color: #2e3d29 !important; } .bg-ch-hd9 { background-color: #161f14 !important; } .bg-cg-hl1 { background-color: #e9fad1 !important; } .bg-cg-hl2 { background-color: #ccf5a3 !important; } .bg-cg-hl3 { background-color: #a8f075 !important; } .bg-cg-hl4 { background-color: #7eeb47 !important; } .bg-cg-hl5 { background-color: #4ce619 !important; } .bg-cg-hl6 { background-color: #30b814 !important; } .bg-cg-hl7 { background-color: #1a8a0f !important; } .bg-cg-hl8 { background-color: #0a5c0a !important; } .bg-cg-hl9 { background-color: #052e09 !important; } .bg-cg-hm1 { background-color: #e8f2d9 !important; } .bg-cg-hm2 { background-color: #cce6b3 !important; } .bg-cg-hm3 { background-color: #acd98c !important; } .bg-cg-hm4 { background-color: #88cc66 !important; } .bg-cg-hm5 { background-color: #60bf40 !important; } .bg-cg-hm6 { background-color: #449933 !important; } .bg-cg-hm7 { background-color: #2d7326 !important; } .bg-cg-hm8 { background-color: #194d19 !important; } .bg-cg-hm9 { background-color: #0d260f !important; } .bg-cg-hd1 { background-color: #e6ebe0 !important; } .bg-cg-hd2 { background-color: #ccd6c2 !important; } .bg-cg-hd3 { background-color: #b0c2a3 !important; } .bg-cg-hd4 { background-color: #92ad85 !important; } .bg-cg-hd5 { background-color: #739966 !important; } .bg-cg-hd6 { background-color: #587a52 !important; } .bg-cg-hd7 { background-color: #405c3d !important; } .bg-cg-hd8 { background-color: #293d29 !important; } .bg-cg-hd9 { background-color: #141f15 !important; } .bg-gr-hl1 { background-color: #dffad1 !important; } .bg-gr-hl2 { background-color: #b8f5a3 !important; } .bg-gr-hl3 { background-color: #8af075 !important; } .bg-gr-hl4 { background-color: #55eb47 !important; } .bg-gr-hl5 { background-color: #19e619 !important; } .bg-gr-hl6 { background-color: #14b822 !important; } .bg-gr-hl7 { background-color: #0f8a24 !important; } .bg-gr-hl8 { background-color: #0a5c1f !important; } .bg-gr-hl9 { background-color: #052e13 !important; } .bg-gr-hm1 { background-color: #e1f2d9 !important; } .bg-gr-hm2 { background-color: #bfe6b3 !important; } .bg-gr-hm3 { background-color: #99d98c !important; } .bg-gr-hm4 { background-color: #6fcc66 !important; } .bg-gr-hm5 { background-color: #40bf40 !important; } .bg-gr-hm6 { background-color: #33993c !important; } .bg-gr-hm7 { background-color: #267333 !important; } .bg-gr-hm8 { background-color: #194d26 !important; } .bg-gr-hm9 { background-color: #0d2615 !important; } .bg-gr-hd1 { background-color: #e4ebe0 !important; } .bg-gr-hd2 { background-color: #c7d6c2 !important; } .bg-gr-hd3 { background-color: #a8c2a3 !important; } .bg-gr-hd4 { background-color: #88ad85 !important; } .bg-gr-hd5 { background-color: #669966 !important; } .bg-gr-hd6 { background-color: #527a55 !important; } .bg-gr-hd7 { background-color: #3d5c42 !important; } .bg-gr-hd8 { background-color: #293d2e !important; } .bg-gr-hd9 { background-color: #141f18 !important; } .bg-ga-hl1 { background-color: #d5fad1 !important; } .bg-ga-hl2 { background-color: #a3f5a3 !important; } .bg-ga-hl3 { background-color: #75f080 !important; } .bg-ga-hl4 { background-color: #47eb63 !important; } .bg-ga-hl5 { background-color: #19e64d !important; } .bg-ga-hl6 { background-color: #14b84b !important; } .bg-ga-hl7 { background-color: #0f8a42 !important; } .bg-ga-hl8 { background-color: #0a5c33 !important; } .bg-ga-hl9 { background-color: #052e1d !important; } .bg-ga-hm1 { background-color: #dbf2d9 !important; } .bg-ga-hm2 { background-color: #b3e6b3 !important; } .bg-ga-hm3 { background-color: #8cd993 !important; } .bg-ga-hm4 { background-color: #66cc77 !important; } .bg-ga-hm5 { background-color: #40bf60 !important; } .bg-ga-hm6 { background-color: #339955 !important; } .bg-ga-hm7 { background-color: #267346 !important; } .bg-ga-hm8 { background-color: #194d33 !important; } .bg-ga-hm9 { background-color: #0d261c !important; } .bg-ga-hd1 { background-color: #e1ebe0 !important; } .bg-ga-hd2 { background-color: #c2d6c2 !important; } .bg-ga-hd3 { background-color: #a3c2a6 !important; } .bg-ga-hd4 { background-color: #85ad8b !important; } .bg-ga-hd5 { background-color: #669973 !important; } .bg-ga-hd6 { background-color: #527a5f !important; } .bg-ga-hd7 { background-color: #3d5c4a !important; } .bg-ga-hd8 { background-color: #293d33 !important; } .bg-ga-hd9 { background-color: #141f1a !important; } .bg-aq-hl1 { background-color: #d1fad8 !important; } .bg-aq-hl2 { background-color: #a3f5b8 !important; } .bg-aq-hl3 { background-color: #75f09e !important; } .bg-aq-hl4 { background-color: #47eb8b !important; } .bg-aq-hl5 { background-color: #19e680 !important; } .bg-aq-hl6 { background-color: #14b874 !important; } .bg-aq-hl7 { background-color: #0f8a61 !important; } .bg-aq-hl8 { background-color: #0a5c47 !important; } .bg-aq-hl9 { background-color: #052e27 !important; } .bg-aq-hm1 { background-color: #d9f2dd !important; } .bg-aq-hm2 { background-color: #b3e6bf !important; } .bg-aq-hm3 { background-color: #8cd9a6 !important; } .bg-aq-hm4 { background-color: #66cc91 !important; } .bg-aq-hm5 { background-color: #40bf80 !important; } .bg-aq-hm6 { background-color: #33996f !important; } .bg-aq-hm7 { background-color: #267359 !important; } .bg-aq-hm8 { background-color: #194d40 !important; } .bg-aq-hm9 { background-color: #0d2622 !important; } .bg-aq-hd1 { background-color: #e0ebe2 !important; } .bg-aq-hd2 { background-color: #c2d6c7 !important; } .bg-aq-hd3 { background-color: #a3c2ad !important; } .bg-aq-hd4 { background-color: #85ad96 !important; } .bg-aq-hd5 { background-color: #669980 !important; } .bg-aq-hd6 { background-color: #527a69 !important; } .bg-aq-hd7 { background-color: #3d5c52 !important; } .bg-aq-hd8 { background-color: #293d38 !important; } .bg-aq-hd9 { background-color: #141f1d !important; } .bg-ac-hl1 { background-color: #d1fae2 !important; } .bg-ac-hl2 { background-color: #a3f5cc !important; } .bg-ac-hl3 { background-color: #75f0bd !important; } .bg-ac-hl4 { background-color: #47ebb4 !important; } .bg-ac-hl5 { background-color: #19e6b3 !important; } .bg-ac-hl6 { background-color: #14b89c !important; } .bg-ac-hl7 { background-color: #0f8a80 !important; } .bg-ac-hl8 { background-color: #0a5c5c !important; } .bg-ac-hl9 { background-color: #052b2e !important; } .bg-ac-hm1 { background-color: #d9f2e3 !important; } .bg-ac-hm2 { background-color: #b3e6cc !important; } .bg-ac-hm3 { background-color: #8cd9b9 !important; } .bg-ac-hm4 { background-color: #66ccaa !important; } .bg-ac-hm5 { background-color: #40bf9f !important; } .bg-ac-hm6 { background-color: #339988 !important; } .bg-ac-hm7 { background-color: #26736c !important; } .bg-ac-hm8 { background-color: #194d4d !important; } .bg-ac-hm9 { background-color: #0d2426 !important; } .bg-ac-hd1 { background-color: #e0ebe5 !important; } .bg-ac-hd2 { background-color: #c2d6cc !important; } .bg-ac-hd3 { background-color: #a3c2b5 !important; } .bg-ac-hd4 { background-color: #85ada0 !important; } .bg-ac-hd5 { background-color: #66998c !important; } .bg-ac-hd6 { background-color: #527a74 !important; } .bg-ac-hd7 { background-color: #3d5c59 !important; } .bg-ac-hd8 { background-color: #293d3d !important; } .bg-ac-hd9 { background-color: #141e1f !important; } .bg-cy-hl1 { background-color: #d1faec !important; } .bg-cy-hl2 { background-color: #a3f5e0 !important; } .bg-cy-hl3 { background-color: #75f0db !important; } .bg-cy-hl4 { background-color: #47ebdd !important; } .bg-cy-hl5 { background-color: #19e5e6 !important; } .bg-cy-hl6 { background-color: #14aab8 !important; } .bg-cy-hl7 { background-color: #0f758a !important; } .bg-cy-hl8 { background-color: #0a475c !important; } .bg-cy-hl9 { background-color: #05202e !important; } .bg-cy-hm1 { background-color: #d9f2ea !important; } .bg-cy-hm2 { background-color: #b3e6d9 !important; } .bg-cy-hm3 { background-color: #8cd9cc !important; } .bg-cy-hm4 { background-color: #66ccc4 !important; } .bg-cy-hm5 { background-color: #40bfbf !important; } .bg-cy-hm6 { background-color: #339199 !important; } .bg-cy-hm7 { background-color: #266673 !important; } .bg-cy-hm8 { background-color: #19404d !important; } .bg-cy-hm9 { background-color: #0d1e26 !important; } .bg-cy-hd1 { background-color: #e0ebe7 !important; } .bg-cy-hd2 { background-color: #c2d6d1 !important; } .bg-cy-hd3 { background-color: #a3c2bd !important; } .bg-cy-hd4 { background-color: #85adaa !important; } .bg-cy-hd5 { background-color: #669999 !important; } .bg-cy-hd6 { background-color: #52777a !important; } .bg-cy-hd7 { background-color: #3d575c !important; } .bg-cy-hd8 { background-color: #29383d !important; } .bg-cy-hd9 { background-color: #141b1f !important; } .bg-cb-hl1 { background-color: #d1faf7 !important; } .bg-cb-hl2 { background-color: #a3f5f5 !important; } .bg-cb-hl3 { background-color: #75e6f0 !important; } .bg-cb-hl4 { background-color: #47cfeb !important; } .bg-cb-hl5 { background-color: #19b3e6 !important; } .bg-cb-hl6 { background-color: #1481b8 !important; } .bg-cb-hl7 { background-color: #0f578a !important; } .bg-cb-hl8 { background-color: #0a335c !important; } .bg-cb-hl9 { background-color: #05162e !important; } .bg-cb-hm1 { background-color: #d9f2f0 !important; } .bg-cb-hm2 { background-color: #b3e5e6 !important; } .bg-cb-hm3 { background-color: #8cd2d9 !important; } .bg-cb-hm4 { background-color: #66bbcc !important; } .bg-cb-hm5 { background-color: #409fbf !important; } .bg-cb-hm6 { background-color: #337799 !important; } .bg-cb-hm7 { background-color: #265373 !important; } .bg-cb-hm8 { background-color: #19334d !important; } .bg-cb-hm9 { background-color: #0d1726 !important; } .bg-cb-hd1 { background-color: #e0ebea !important; } .bg-cb-hd2 { background-color: #c2d6d6 !important; } .bg-cb-hd3 { background-color: #a3bfc2 !important; } .bg-cb-hd4 { background-color: #85a7ad !important; } .bg-cb-hd5 { background-color: #668c99 !important; } .bg-cb-hd6 { background-color: #526d7a !important; } .bg-cb-hd7 { background-color: #3d4f5c !important; } .bg-cb-hd8 { background-color: #29333d !important; } .bg-cb-hd9 { background-color: #14191f !important; } .bg-bl-hl1 { background-color: #d1f3fa !important; } .bg-bl-hl2 { background-color: #a3e0f5 !important; } .bg-bl-hl3 { background-color: #75c7f0 !important; } .bg-bl-hl4 { background-color: #47a7eb !important; } .bg-bl-hl5 { background-color: #197fe6 !important; } .bg-bl-hl6 { background-color: #1458b8 !important; } .bg-bl-hl7 { background-color: #0f388a !important; } .bg-bl-hl8 { background-color: #0a1f5c !important; } .bg-bl-hl9 { background-color: #050c2e !important; } .bg-bl-hm1 { background-color: #d9eef2 !important; } .bg-bl-hm2 { background-color: #b3d9e6 !important; } .bg-bl-hm3 { background-color: #8cbfd9 !important; } .bg-bl-hm4 { background-color: #66a1cc !important; } .bg-bl-hm5 { background-color: #407fbf !important; } .bg-bl-hm6 { background-color: #335d99 !important; } .bg-bl-hm7 { background-color: #264073 !important; } .bg-bl-hm8 { background-color: #19264d !important; } .bg-bl-hm9 { background-color: #0d1126 !important; } .bg-bl-hd1 { background-color: #e0e9eb !important; } .bg-bl-hd2 { background-color: #c2d1d6 !important; } .bg-bl-hd3 { background-color: #a3b8c2 !important; } .bg-bl-hd4 { background-color: #859cad !important; } .bg-bl-hd5 { background-color: #667f99 !important; } .bg-bl-hd6 { background-color: #52637a !important; } .bg-bl-hd7 { background-color: #3d475c !important; } .bg-bl-hd8 { background-color: #292e3d !important; } .bg-bl-hd9 { background-color: #14161f !important; } .bg-bi-hl1 { background-color: #d1e9fa !important; } .bg-bi-hl2 { background-color: #a3ccf5 !important; } .bg-bi-hl3 { background-color: #75a8f0 !important; } .bg-bi-hl4 { background-color: #477eeb !important; } .bg-bi-hl5 { background-color: #194ce6 !important; } .bg-bi-hl6 { background-color: #1430b8 !important; } .bg-bi-hl7 { background-color: #0f198a !important; } .bg-bi-hl8 { background-color: #0a0a5c !important; } .bg-bi-hl9 { background-color: #08052e !important; } .bg-bi-hm1 { background-color: #d9e8f2 !important; } .bg-bi-hm2 { background-color: #b3cce6 !important; } .bg-bi-hm3 { background-color: #8cacd9 !important; } .bg-bi-hm4 { background-color: #6688cc !important; } .bg-bi-hm5 { background-color: #4060bf !important; } .bg-bi-hm6 { background-color: #334499 !important; } .bg-bi-hm7 { background-color: #262d73 !important; } .bg-bi-hm8 { background-color: #19194d !important; } .bg-bi-hm9 { background-color: #0f0d26 !important; } .bg-bi-hd1 { background-color: #e0e6eb !important; } .bg-bi-hd2 { background-color: #c2ccd6 !important; } .bg-bi-hd3 { background-color: #a3b0c2 !important; } .bg-bi-hd4 { background-color: #8592ad !important; } .bg-bi-hd5 { background-color: #667399 !important; } .bg-bi-hd6 { background-color: #52587a !important; } .bg-bi-hd7 { background-color: #3d405c !important; } .bg-bi-hd8 { background-color: #29293d !important; } .bg-bi-hd9 { background-color: #15141f !important; } .bg-in-hl1 { background-color: #d1dffa !important; } .bg-in-hl2 { background-color: #a3b8f5 !important; } .bg-in-hl3 { background-color: #758af0 !important; } .bg-in-hl4 { background-color: #4755eb !important; } .bg-in-hl5 { background-color: #1919e6 !important; } .bg-in-hl6 { background-color: #2214b8 !important; } .bg-in-hl7 { background-color: #240f8a !important; } .bg-in-hl8 { background-color: #1f0a5c !important; } .bg-in-hl9 { background-color: #13052e !important; } .bg-in-hm1 { background-color: #d9e1f2 !important; } .bg-in-hm2 { background-color: #b3bfe6 !important; } .bg-in-hm3 { background-color: #8c99d9 !important; } .bg-in-hm4 { background-color: #666ecc !important; } .bg-in-hm5 { background-color: #4040bf !important; } .bg-in-hm6 { background-color: #3b3399 !important; } .bg-in-hm7 { background-color: #332673 !important; } .bg-in-hm8 { background-color: #26194d !important; } .bg-in-hm9 { background-color: #150d26 !important; } .bg-in-hd1 { background-color: #e0e4eb !important; } .bg-in-hd2 { background-color: #c2c7d6 !important; } .bg-in-hd3 { background-color: #a3a8c2 !important; } .bg-in-hd4 { background-color: #8588ad !important; } .bg-in-hd5 { background-color: #666699 !important; } .bg-in-hd6 { background-color: #55527a !important; } .bg-in-hd7 { background-color: #423d5c !important; } .bg-in-hd8 { background-color: #2e293d !important; } .bg-in-hd9 { background-color: #18141f !important; } .bg-ip-hl1 { background-color: #d1d4fa !important; } .bg-ip-hl2 { background-color: #a3a3f5 !important; } .bg-ip-hl3 { background-color: #8075f0 !important; } .bg-ip-hl4 { background-color: #6347eb !important; } .bg-ip-hl5 { background-color: #4d19e6 !important; } .bg-ip-hl6 { background-color: #4b14b8 !important; } .bg-ip-hl7 { background-color: #420f8a !important; } .bg-ip-hl8 { background-color: #330a5c !important; } .bg-ip-hl9 { background-color: #1d052e !important; } .bg-ip-hm1 { background-color: #d9dbf2 !important; } .bg-ip-hm2 { background-color: #b3b3e6 !important; } .bg-ip-hm3 { background-color: #938cd9 !important; } .bg-ip-hm4 { background-color: #7766cc !important; } .bg-ip-hm5 { background-color: #6040bf !important; } .bg-ip-hm6 { background-color: #553399 !important; } .bg-ip-hm7 { background-color: #462673 !important; } .bg-ip-hm8 { background-color: #33194d !important; } .bg-ip-hm9 { background-color: #1c0d26 !important; } .bg-ip-hd1 { background-color: #e0e1eb !important; } .bg-ip-hd2 { background-color: #c2c2d6 !important; } .bg-ip-hd3 { background-color: #a6a3c2 !important; } .bg-ip-hd4 { background-color: #8b85ad !important; } .bg-ip-hd5 { background-color: #736699 !important; } .bg-ip-hd6 { background-color: #5f527a !important; } .bg-ip-hd7 { background-color: #4a3d5c !important; } .bg-ip-hd8 { background-color: #33293d !important; } .bg-ip-hd9 { background-color: #1a141f !important; } .bg-pu-hl1 { background-color: #d8d1fa !important; } .bg-pu-hl2 { background-color: #b8a3f5 !important; } .bg-pu-hl3 { background-color: #9e75f0 !important; } .bg-pu-hl4 { background-color: #8b47eb !important; } .bg-pu-hl5 { background-color: #7f19e6 !important; } .bg-pu-hl6 { background-color: #7414b8 !important; } .bg-pu-hl7 { background-color: #610f8a !important; } .bg-pu-hl8 { background-color: #470a5c !important; } .bg-pu-hl9 { background-color: #27052e !important; } .bg-pu-hm1 { background-color: #ddd9f2 !important; } .bg-pu-hm2 { background-color: #bfb3e6 !important; } .bg-pu-hm3 { background-color: #a68cd9 !important; } .bg-pu-hm4 { background-color: #9066cc !important; } .bg-pu-hm5 { background-color: #7f40bf !important; } .bg-pu-hm6 { background-color: #6e3399 !important; } .bg-pu-hm7 { background-color: #592673 !important; } .bg-pu-hm8 { background-color: #40194d !important; } .bg-pu-hm9 { background-color: #220d26 !important; } .bg-pu-hd1 { background-color: #e2e0eb !important; } .bg-pu-hd2 { background-color: #c7c2d6 !important; } .bg-pu-hd3 { background-color: #ada3c2 !important; } .bg-pu-hd4 { background-color: #9685ad !important; } .bg-pu-hd5 { background-color: #7f6699 !important; } .bg-pu-hd6 { background-color: #69527a !important; } .bg-pu-hd7 { background-color: #523d5c !important; } .bg-pu-hd8 { background-color: #38293d !important; } .bg-pu-hd9 { background-color: #1d141f !important; } .bg-pp-hl1 { background-color: #e2d1fa !important; } .bg-pp-hl2 { background-color: #cca3f5 !important; } .bg-pp-hl3 { background-color: #bd75f0 !important; } .bg-pp-hl4 { background-color: #b447eb !important; } .bg-pp-hl5 { background-color: #b319e6 !important; } .bg-pp-hl6 { background-color: #9c14b8 !important; } .bg-pp-hl7 { background-color: #7f0f8a !important; } .bg-pp-hl8 { background-color: #5c0a5c !important; } .bg-pp-hl9 { background-color: #2e052b !important; } .bg-pp-hm1 { background-color: #e3d9f2 !important; } .bg-pp-hm2 { background-color: #ccb3e6 !important; } .bg-pp-hm3 { background-color: #b98cd9 !important; } .bg-pp-hm4 { background-color: #aa66cc !important; } .bg-pp-hm5 { background-color: #9f40bf !important; } .bg-pp-hm6 { background-color: #883399 !important; } .bg-pp-hm7 { background-color: #6c2673 !important; } .bg-pp-hm8 { background-color: #4d194d !important; } .bg-pp-hm9 { background-color: #260d24 !important; } .bg-pp-hd1 { background-color: #e5e0eb !important; } .bg-pp-hd2 { background-color: #ccc2d6 !important; } .bg-pp-hd3 { background-color: #b5a3c2 !important; } .bg-pp-hd4 { background-color: #a085ad !important; } .bg-pp-hd5 { background-color: #8c6699 !important; } .bg-pp-hd6 { background-color: #74527a !important; } .bg-pp-hd7 { background-color: #593d5c !important; } .bg-pp-hd8 { background-color: #3d293d !important; } .bg-pp-hd9 { background-color: #1f141e !important; } .bg-pi-hl1 { background-color: #ecd1fa !important; } .bg-pi-hl2 { background-color: #e0a3f5 !important; } .bg-pi-hl3 { background-color: #db75f0 !important; } .bg-pi-hl4 { background-color: #dd47eb !important; } .bg-pi-hl5 { background-color: #e619e5 !important; } .bg-pi-hl6 { background-color: #b814aa !important; } .bg-pi-hl7 { background-color: #8a0f75 !important; } .bg-pi-hl8 { background-color: #5c0a47 !important; } .bg-pi-hl9 { background-color: #2e0520 !important; } .bg-pi-hm1 { background-color: #ead9f2 !important; } .bg-pi-hm2 { background-color: #d9b3e6 !important; } .bg-pi-hm3 { background-color: #cc8cd9 !important; } .bg-pi-hm4 { background-color: #c366cc !important; } .bg-pi-hm5 { background-color: #bf40bf !important; } .bg-pi-hm6 { background-color: #993391 !important; } .bg-pi-hm7 { background-color: #732666 !important; } .bg-pi-hm8 { background-color: #4d1940 !important; } .bg-pi-hm9 { background-color: #260d1e !important; } .bg-pi-hd1 { background-color: #e7e0eb !important; } .bg-pi-hd2 { background-color: #d1c2d6 !important; } .bg-pi-hd3 { background-color: #bda3c2 !important; } .bg-pi-hd4 { background-color: #aa85ad !important; } .bg-pi-hd5 { background-color: #996699 !important; } .bg-pi-hd6 { background-color: #7a5277 !important; } .bg-pi-hd7 { background-color: #5c3d57 !important; } .bg-pi-hd8 { background-color: #3d2938 !important; } .bg-pi-hd9 { background-color: #1f141b !important; } .bg-pv-hl1 { background-color: #f7d1fa !important; } .bg-pv-hl2 { background-color: #f5a3f5 !important; } .bg-pv-hl3 { background-color: #f075e5 !important; } .bg-pv-hl4 { background-color: #eb47cf !important; } .bg-pv-hl5 { background-color: #e619b2 !important; } .bg-pv-hl6 { background-color: #b81481 !important; } .bg-pv-hl7 { background-color: #8a0f57 !important; } .bg-pv-hl8 { background-color: #5c0a33 !important; } .bg-pv-hl9 { background-color: #2e0516 !important; } .bg-pv-hm1 { background-color: #f0d9f2 !important; } .bg-pv-hm2 { background-color: #e6b3e5 !important; } .bg-pv-hm3 { background-color: #d98cd2 !important; } .bg-pv-hm4 { background-color: #cc66bb !important; } .bg-pv-hm5 { background-color: #bf409f !important; } .bg-pv-hm6 { background-color: #993377 !important; } .bg-pv-hm7 { background-color: #732653 !important; } .bg-pv-hm8 { background-color: #4d1933 !important; } .bg-pv-hm9 { background-color: #260d17 !important; } .bg-pv-hd1 { background-color: #eae0eb !important; } .bg-pv-hd2 { background-color: #d6c2d6 !important; } .bg-pv-hd3 { background-color: #c2a3bf !important; } .bg-pv-hd4 { background-color: #ad85a7 !important; } .bg-pv-hd5 { background-color: #99668c !important; } .bg-pv-hd6 { background-color: #7a526d !important; } .bg-pv-hd7 { background-color: #5c3d4f !important; } .bg-pv-hd8 { background-color: #3d2933 !important; } .bg-pv-hd9 { background-color: #1f1419 !important; } .bg-vi-hl1 { background-color: #fad1f3 !important; } .bg-vi-hl2 { background-color: #f5a3e0 !important; } .bg-vi-hl3 { background-color: #f075c7 !important; } .bg-vi-hl4 { background-color: #eb47a7 !important; } .bg-vi-hl5 { background-color: #e61980 !important; } .bg-vi-hl6 { background-color: #b81458 !important; } .bg-vi-hl7 { background-color: #8a0f38 !important; } .bg-vi-hl8 { background-color: #5c0a1f !important; } .bg-vi-hl9 { background-color: #2e050c !important; } .bg-vi-hm1 { background-color: #f2d9ee !important; } .bg-vi-hm2 { background-color: #e6b3d9 !important; } .bg-vi-hm3 { background-color: #d98cbf !important; } .bg-vi-hm4 { background-color: #cc66a2 !important; } .bg-vi-hm5 { background-color: #bf4080 !important; } .bg-vi-hm6 { background-color: #99335d !important; } .bg-vi-hm7 { background-color: #732640 !important; } .bg-vi-hm8 { background-color: #4d1926 !important; } .bg-vi-hm9 { background-color: #260d11 !important; } .bg-vi-hd1 { background-color: #ebe0e9 !important; } .bg-vi-hd2 { background-color: #d6c2d1 !important; } .bg-vi-hd3 { background-color: #c2a3b8 !important; } .bg-vi-hd4 { background-color: #ad859c !important; } .bg-vi-hd5 { background-color: #996680 !important; } .bg-vi-hd6 { background-color: #7a5263 !important; } .bg-vi-hd7 { background-color: #5c3d47 !important; } .bg-vi-hd8 { background-color: #3d292e !important; } .bg-vi-hd9 { background-color: #1f1416 !important; } .bg-vr-hl1 { background-color: #fad1e9 !important; } .bg-vr-hl2 { background-color: #f5a3cc !important; } .bg-vr-hl3 { background-color: #f075a8 !important; } .bg-vr-hl4 { background-color: #eb477e !important; } .bg-vr-hl5 { background-color: #e6194c !important; } .bg-vr-hl6 { background-color: #b81430 !important; } .bg-vr-hl7 { background-color: #8a0f19 !important; } .bg-vr-hl8 { background-color: #5c0a0a !important; } .bg-vr-hl9 { background-color: #2e0805 !important; } .bg-vr-hm1 { background-color: #f2d9e8 !important; } .bg-vr-hm2 { background-color: #e6b3cc !important; } .bg-vr-hm3 { background-color: #d98cac !important; } .bg-vr-hm4 { background-color: #cc6688 !important; } .bg-vr-hm5 { background-color: #bf4060 !important; } .bg-vr-hm6 { background-color: #993344 !important; } .bg-vr-hm7 { background-color: #73262d !important; } .bg-vr-hm8 { background-color: #4d1919 !important; } .bg-vr-hm9 { background-color: #260f0d !important; } .bg-vr-hd1 { background-color: #ebe0e6 !important; } .bg-vr-hd2 { background-color: #d6c2cc !important; } .bg-vr-hd3 { background-color: #c2a3b0 !important; } .bg-vr-hd4 { background-color: #ad8592 !important; } .bg-vr-hd5 { background-color: #996673 !important; } .bg-vr-hd6 { background-color: #7a5258 !important; } .bg-vr-hd7 { background-color: #5c3d40 !important; } .bg-vr-hd8 { background-color: #3d2929 !important; } .bg-vr-hd9 { background-color: #1f1514 !important; } .t-re-hl1 { color: #fad1df !important; } .t-re-hl2 { color: #f5a3b8 !important; } .t-re-hl3 { color: #f0758a !important; } .t-re-hl4 { color: #eb4755 !important; } .t-re-hl5 { color: #e61919 !important; } .t-re-hl6 { color: #b82214 !important; } .t-re-hl7 { color: #8a240f !important; } .t-re-hl8 { color: #5c1f0a !important; } .t-re-hl9 { color: #2e1305 !important; } .t-re-hm1 { color: #f2d9e1 !important; } .t-re-hm2 { color: #e6b3bf !important; } .t-re-hm3 { color: #d98c99 !important; } .t-re-hm4 { color: #cc666e !important; } .t-re-hm5 { color: #bf4040 !important; } .t-re-hm6 { color: #993b33 !important; } .t-re-hm7 { color: #733326 !important; } .t-re-hm8 { color: #4d2619 !important; } .t-re-hm9 { color: #26150d !important; } .t-re-hd1 { color: #ebe0e4 !important; } .t-re-hd2 { color: #d6c2c7 !important; } .t-re-hd3 { color: #c2a3a8 !important; } .t-re-hd4 { color: #ad8588 !important; } .t-re-hd5 { color: #996666 !important; } .t-re-hd6 { color: #7a5552 !important; } .t-re-hd7 { color: #5c423d !important; } .t-re-hd8 { color: #3d2e29 !important; } .t-re-hd9 { color: #1f1814 !important; } .t-ro-hl1 { color: #fad1d4 !important; } .t-ro-hl2 { color: #f5a3a3 !important; } .t-ro-hl3 { color: #f07f75 !important; } .t-ro-hl4 { color: #eb6347 !important; } .t-ro-hl5 { color: #e64d19 !important; } .t-ro-hl6 { color: #b84b14 !important; } .t-ro-hl7 { color: #8a420f !important; } .t-ro-hl8 { color: #5c330a !important; } .t-ro-hl9 { color: #2e1d05 !important; } .t-ro-hm1 { color: #f2d9db !important; } .t-ro-hm2 { color: #e6b3b3 !important; } .t-ro-hm3 { color: #d9938c !important; } .t-ro-hm4 { color: #cc7766 !important; } .t-ro-hm5 { color: #bf6040 !important; } .t-ro-hm6 { color: #995533 !important; } .t-ro-hm7 { color: #734626 !important; } .t-ro-hm8 { color: #4d3319 !important; } .t-ro-hm9 { color: #261c0d !important; } .t-ro-hd1 { color: #ebe0e1 !important; } .t-ro-hd2 { color: #d6c2c2 !important; } .t-ro-hd3 { color: #c2a6a3 !important; } .t-ro-hd4 { color: #ad8b85 !important; } .t-ro-hd5 { color: #997366 !important; } .t-ro-hd6 { color: #7a5f52 !important; } .t-ro-hd7 { color: #5c4a3d !important; } .t-ro-hd8 { color: #3d3329 !important; } .t-ro-hd9 { color: #1f1a14 !important; } .t-or-hl1 { color: #fad8d1 !important; } .t-or-hl2 { color: #f5b8a3 !important; } .t-or-hl3 { color: #f09e75 !important; } .t-or-hl4 { color: #eb8b47 !important; } .t-or-hl5 { color: #e68019 !important; } .t-or-hl6 { color: #b87414 !important; } .t-or-hl7 { color: #8a610f !important; } .t-or-hl8 { color: #5c470a !important; } .t-or-hl9 { color: #2e2705 !important; } .t-or-hm1 { color: #f2ddd9 !important; } .t-or-hm2 { color: #e6bfb3 !important; } .t-or-hm3 { color: #d9a68c !important; } .t-or-hm4 { color: #cc9166 !important; } .t-or-hm5 { color: #bf8040 !important; } .t-or-hm6 { color: #996f33 !important; } .t-or-hm7 { color: #735926 !important; } .t-or-hm8 { color: #4d4019 !important; } .t-or-hm9 { color: #26220d !important; } .t-or-hd1 { color: #ebe2e0 !important; } .t-or-hd2 { color: #d6c7c2 !important; } .t-or-hd3 { color: #c2ada3 !important; } .t-or-hd4 { color: #ad9685 !important; } .t-or-hd5 { color: #998066 !important; } .t-or-hd6 { color: #7a6952 !important; } .t-or-hd7 { color: #5c523d !important; } .t-or-hd8 { color: #3d3829 !important; } .t-or-hd9 { color: #1f1d14 !important; } .t-oy-hl1 { color: #fae2d1 !important; } .t-oy-hl2 { color: #f5cca3 !important; } .t-oy-hl3 { color: #f0bd75 !important; } .t-oy-hl4 { color: #ebb447 !important; } .t-oy-hl5 { color: #e6b319 !important; } .t-oy-hl6 { color: #b89c14 !important; } .t-oy-hl7 { color: #8a800f !important; } .t-oy-hl8 { color: #5c5c0a !important; } .t-oy-hl9 { color: #2b2e05 !important; } .t-oy-hm1 { color: #f2e3d9 !important; } .t-oy-hm2 { color: #e6ccb3 !important; } .t-oy-hm3 { color: #d9b98c !important; } .t-oy-hm4 { color: #ccaa66 !important; } .t-oy-hm5 { color: #bf9f40 !important; } .t-oy-hm6 { color: #998833 !important; } .t-oy-hm7 { color: #736c26 !important; } .t-oy-hm8 { color: #4d4d19 !important; } .t-oy-hm9 { color: #24260d !important; } .t-oy-hd1 { color: #ebe5e0 !important; } .t-oy-hd2 { color: #d6ccc2 !important; } .t-oy-hd3 { color: #c2b5a3 !important; } .t-oy-hd4 { color: #ada085 !important; } .t-oy-hd5 { color: #998c66 !important; } .t-oy-hd6 { color: #7a7452 !important; } .t-oy-hd7 { color: #5c593d !important; } .t-oy-hd8 { color: #3d3d29 !important; } .t-oy-hd9 { color: #1e1f14 !important; } .t-ye-hl1 { color: #faecd1 !important; } .t-ye-hl2 { color: #f5e0a3 !important; } .t-ye-hl3 { color: #f0db75 !important; } .t-ye-hl4 { color: #ebdd47 !important; } .t-ye-hl5 { color: #e5e619 !important; } .t-ye-hl6 { color: #aab814 !important; } .t-ye-hl7 { color: #758a0f !important; } .t-ye-hl8 { color: #475c0a !important; } .t-ye-hl9 { color: #202e05 !important; } .t-ye-hm1 { color: #f2ead9 !important; } .t-ye-hm2 { color: #e6d9b3 !important; } .t-ye-hm3 { color: #d9cc8c !important; } .t-ye-hm4 { color: #ccc466 !important; } .t-ye-hm5 { color: #bfbf40 !important; } .t-ye-hm6 { color: #909933 !important; } .t-ye-hm7 { color: #667326 !important; } .t-ye-hm8 { color: #404d19 !important; } .t-ye-hm9 { color: #1e260d !important; } .t-ye-hd1 { color: #ebe7e0 !important; } .t-ye-hd2 { color: #d6d1c2 !important; } .t-ye-hd3 { color: #c2bda3 !important; } .t-ye-hd4 { color: #adaa85 !important; } .t-ye-hd5 { color: #999966 !important; } .t-ye-hd6 { color: #777a52 !important; } .t-ye-hd7 { color: #575c3d !important; } .t-ye-hd8 { color: #383d29 !important; } .t-ye-hd9 { color: #1b1f14 !important; } .t-yc-hl1 { color: #faf7d1 !important; } .t-yc-hl2 { color: #f5f5a3 !important; } .t-yc-hl3 { color: #e6f075 !important; } .t-yc-hl4 { color: #cfeb47 !important; } .t-yc-hl5 { color: #b3e619 !important; } .t-yc-hl6 { color: #81b814 !important; } .t-yc-hl7 { color: #578a0f !important; } .t-yc-hl8 { color: #335c0a !important; } .t-yc-hl9 { color: #162e05 !important; } .t-yc-hm1 { color: #f2f0d9 !important; } .t-yc-hm2 { color: #e5e6b3 !important; } .t-yc-hm3 { color: #d2d98c !important; } .t-yc-hm4 { color: #bbcc66 !important; } .t-yc-hm5 { color: #9fbf40 !important; } .t-yc-hm6 { color: #779933 !important; } .t-yc-hm7 { color: #537326 !important; } .t-yc-hm8 { color: #334d19 !important; } .t-yc-hm9 { color: #17260d !important; } .t-yc-hd1 { color: #ebeae0 !important; } .t-yc-hd2 { color: #d6d6c2 !important; } .t-yc-hd3 { color: #bfc2a3 !important; } .t-yc-hd4 { color: #a7ad85 !important; } .t-yc-hd5 { color: #8c9966 !important; } .t-yc-hd6 { color: #6d7a52 !important; } .t-yc-hd7 { color: #4f5c3d !important; } .t-yc-hd8 { color: #333d29 !important; } .t-yc-hd9 { color: #191f14 !important; } .t-ch-hl1 { color: #f3fad1 !important; } .t-ch-hl2 { color: #e0f5a3 !important; } .t-ch-hl3 { color: #c7f075 !important; } .t-ch-hl4 { color: #a7eb47 !important; } .t-ch-hl5 { color: #80e619 !important; } .t-ch-hl6 { color: #58b814 !important; } .t-ch-hl7 { color: #388a0f !important; } .t-ch-hl8 { color: #1f5c0a !important; } .t-ch-hl9 { color: #0c2e05 !important; } .t-ch-hm1 { color: #eef2d9 !important; } .t-ch-hm2 { color: #d9e6b3 !important; } .t-ch-hm3 { color: #bfd98c !important; } .t-ch-hm4 { color: #a2cc66 !important; } .t-ch-hm5 { color: #80bf40 !important; } .t-ch-hm6 { color: #5e9933 !important; } .t-ch-hm7 { color: #407326 !important; } .t-ch-hm8 { color: #264d19 !important; } .t-ch-hm9 { color: #11260d !important; } .t-ch-hd1 { color: #e9ebe0 !important; } .t-ch-hd2 { color: #d1d6c2 !important; } .t-ch-hd3 { color: #b8c2a3 !important; } .t-ch-hd4 { color: #9cad85 !important; } .t-ch-hd5 { color: #809966 !important; } .t-ch-hd6 { color: #637a52 !important; } .t-ch-hd7 { color: #475c3d !important; } .t-ch-hd8 { color: #2e3d29 !important; } .t-ch-hd9 { color: #161f14 !important; } .t-cg-hl1 { color: #e9fad1 !important; } .t-cg-hl2 { color: #ccf5a3 !important; } .t-cg-hl3 { color: #a8f075 !important; } .t-cg-hl4 { color: #7eeb47 !important; } .t-cg-hl5 { color: #4ce619 !important; } .t-cg-hl6 { color: #30b814 !important; } .t-cg-hl7 { color: #1a8a0f !important; } .t-cg-hl8 { color: #0a5c0a !important; } .t-cg-hl9 { color: #052e09 !important; } .t-cg-hm1 { color: #e8f2d9 !important; } .t-cg-hm2 { color: #cce6b3 !important; } .t-cg-hm3 { color: #acd98c !important; } .t-cg-hm4 { color: #88cc66 !important; } .t-cg-hm5 { color: #60bf40 !important; } .t-cg-hm6 { color: #449933 !important; } .t-cg-hm7 { color: #2d7326 !important; } .t-cg-hm8 { color: #194d19 !important; } .t-cg-hm9 { color: #0d260f !important; } .t-cg-hd1 { color: #e6ebe0 !important; } .t-cg-hd2 { color: #ccd6c2 !important; } .t-cg-hd3 { color: #b0c2a3 !important; } .t-cg-hd4 { color: #92ad85 !important; } .t-cg-hd5 { color: #739966 !important; } .t-cg-hd6 { color: #587a52 !important; } .t-cg-hd7 { color: #405c3d !important; } .t-cg-hd8 { color: #293d29 !important; } .t-cg-hd9 { color: #141f15 !important; } .t-gr-hl1 { color: #dffad1 !important; } .t-gr-hl2 { color: #b8f5a3 !important; } .t-gr-hl3 { color: #8af075 !important; } .t-gr-hl4 { color: #55eb47 !important; } .t-gr-hl5 { color: #19e619 !important; } .t-gr-hl6 { color: #14b822 !important; } .t-gr-hl7 { color: #0f8a24 !important; } .t-gr-hl8 { color: #0a5c1f !important; } .t-gr-hl9 { color: #052e13 !important; } .t-gr-hm1 { color: #e1f2d9 !important; } .t-gr-hm2 { color: #bfe6b3 !important; } .t-gr-hm3 { color: #99d98c !important; } .t-gr-hm4 { color: #6fcc66 !important; } .t-gr-hm5 { color: #40bf40 !important; } .t-gr-hm6 { color: #33993c !important; } .t-gr-hm7 { color: #267333 !important; } .t-gr-hm8 { color: #194d26 !important; } .t-gr-hm9 { color: #0d2615 !important; } .t-gr-hd1 { color: #e4ebe0 !important; } .t-gr-hd2 { color: #c7d6c2 !important; } .t-gr-hd3 { color: #a8c2a3 !important; } .t-gr-hd4 { color: #88ad85 !important; } .t-gr-hd5 { color: #669966 !important; } .t-gr-hd6 { color: #527a55 !important; } .t-gr-hd7 { color: #3d5c42 !important; } .t-gr-hd8 { color: #293d2e !important; } .t-gr-hd9 { color: #141f18 !important; } .t-ga-hl1 { color: #d5fad1 !important; } .t-ga-hl2 { color: #a3f5a3 !important; } .t-ga-hl3 { color: #75f080 !important; } .t-ga-hl4 { color: #47eb63 !important; } .t-ga-hl5 { color: #19e64d !important; } .t-ga-hl6 { color: #14b84b !important; } .t-ga-hl7 { color: #0f8a42 !important; } .t-ga-hl8 { color: #0a5c33 !important; } .t-ga-hl9 { color: #052e1d !important; } .t-ga-hm1 { color: #dbf2d9 !important; } .t-ga-hm2 { color: #b3e6b3 !important; } .t-ga-hm3 { color: #8cd993 !important; } .t-ga-hm4 { color: #66cc77 !important; } .t-ga-hm5 { color: #40bf60 !important; } .t-ga-hm6 { color: #339955 !important; } .t-ga-hm7 { color: #267346 !important; } .t-ga-hm8 { color: #194d33 !important; } .t-ga-hm9 { color: #0d261c !important; } .t-ga-hd1 { color: #e1ebe0 !important; } .t-ga-hd2 { color: #c2d6c2 !important; } .t-ga-hd3 { color: #a3c2a6 !important; } .t-ga-hd4 { color: #85ad8b !important; } .t-ga-hd5 { color: #669973 !important; } .t-ga-hd6 { color: #527a5f !important; } .t-ga-hd7 { color: #3d5c4a !important; } .t-ga-hd8 { color: #293d33 !important; } .t-ga-hd9 { color: #141f1a !important; } .t-aq-hl1 { color: #d1fad8 !important; } .t-aq-hl2 { color: #a3f5b8 !important; } .t-aq-hl3 { color: #75f09e !important; } .t-aq-hl4 { color: #47eb8b !important; } .t-aq-hl5 { color: #19e680 !important; } .t-aq-hl6 { color: #14b874 !important; } .t-aq-hl7 { color: #0f8a61 !important; } .t-aq-hl8 { color: #0a5c47 !important; } .t-aq-hl9 { color: #052e27 !important; } .t-aq-hm1 { color: #d9f2dd !important; } .t-aq-hm2 { color: #b3e6bf !important; } .t-aq-hm3 { color: #8cd9a6 !important; } .t-aq-hm4 { color: #66cc91 !important; } .t-aq-hm5 { color: #40bf80 !important; } .t-aq-hm6 { color: #33996f !important; } .t-aq-hm7 { color: #267359 !important; } .t-aq-hm8 { color: #194d40 !important; } .t-aq-hm9 { color: #0d2622 !important; } .t-aq-hd1 { color: #e0ebe2 !important; } .t-aq-hd2 { color: #c2d6c7 !important; } .t-aq-hd3 { color: #a3c2ad !important; } .t-aq-hd4 { color: #85ad96 !important; } .t-aq-hd5 { color: #669980 !important; } .t-aq-hd6 { color: #527a69 !important; } .t-aq-hd7 { color: #3d5c52 !important; } .t-aq-hd8 { color: #293d38 !important; } .t-aq-hd9 { color: #141f1d !important; } .t-ac-hl1 { color: #d1fae2 !important; } .t-ac-hl2 { color: #a3f5cc !important; } .t-ac-hl3 { color: #75f0bd !important; } .t-ac-hl4 { color: #47ebb4 !important; } .t-ac-hl5 { color: #19e6b3 !important; } .t-ac-hl6 { color: #14b89c !important; } .t-ac-hl7 { color: #0f8a80 !important; } .t-ac-hl8 { color: #0a5c5c !important; } .t-ac-hl9 { color: #052b2e !important; } .t-ac-hm1 { color: #d9f2e3 !important; } .t-ac-hm2 { color: #b3e6cc !important; } .t-ac-hm3 { color: #8cd9b9 !important; } .t-ac-hm4 { color: #66ccaa !important; } .t-ac-hm5 { color: #40bf9f !important; } .t-ac-hm6 { color: #339988 !important; } .t-ac-hm7 { color: #26736c !important; } .t-ac-hm8 { color: #194d4d !important; } .t-ac-hm9 { color: #0d2426 !important; } .t-ac-hd1 { color: #e0ebe5 !important; } .t-ac-hd2 { color: #c2d6cc !important; } .t-ac-hd3 { color: #a3c2b5 !important; } .t-ac-hd4 { color: #85ada0 !important; } .t-ac-hd5 { color: #66998c !important; } .t-ac-hd6 { color: #527a74 !important; } .t-ac-hd7 { color: #3d5c59 !important; } .t-ac-hd8 { color: #293d3d !important; } .t-ac-hd9 { color: #141e1f !important; } .t-cy-hl1 { color: #d1faec !important; } .t-cy-hl2 { color: #a3f5e0 !important; } .t-cy-hl3 { color: #75f0db !important; } .t-cy-hl4 { color: #47ebdd !important; } .t-cy-hl5 { color: #19e5e6 !important; } .t-cy-hl6 { color: #14aab8 !important; } .t-cy-hl7 { color: #0f758a !important; } .t-cy-hl8 { color: #0a475c !important; } .t-cy-hl9 { color: #05202e !important; } .t-cy-hm1 { color: #d9f2ea !important; } .t-cy-hm2 { color: #b3e6d9 !important; } .t-cy-hm3 { color: #8cd9cc !important; } .t-cy-hm4 { color: #66ccc4 !important; } .t-cy-hm5 { color: #40bfbf !important; } .t-cy-hm6 { color: #339199 !important; } .t-cy-hm7 { color: #266673 !important; } .t-cy-hm8 { color: #19404d !important; } .t-cy-hm9 { color: #0d1e26 !important; } .t-cy-hd1 { color: #e0ebe7 !important; } .t-cy-hd2 { color: #c2d6d1 !important; } .t-cy-hd3 { color: #a3c2bd !important; } .t-cy-hd4 { color: #85adaa !important; } .t-cy-hd5 { color: #669999 !important; } .t-cy-hd6 { color: #52777a !important; } .t-cy-hd7 { color: #3d575c !important; } .t-cy-hd8 { color: #29383d !important; } .t-cy-hd9 { color: #141b1f !important; } .t-cb-hl1 { color: #d1faf7 !important; } .t-cb-hl2 { color: #a3f5f5 !important; } .t-cb-hl3 { color: #75e6f0 !important; } .t-cb-hl4 { color: #47cfeb !important; } .t-cb-hl5 { color: #19b3e6 !important; } .t-cb-hl6 { color: #1481b8 !important; } .t-cb-hl7 { color: #0f578a !important; } .t-cb-hl8 { color: #0a335c !important; } .t-cb-hl9 { color: #05162e !important; } .t-cb-hm1 { color: #d9f2f0 !important; } .t-cb-hm2 { color: #b3e5e6 !important; } .t-cb-hm3 { color: #8cd2d9 !important; } .t-cb-hm4 { color: #66bbcc !important; } .t-cb-hm5 { color: #409fbf !important; } .t-cb-hm6 { color: #337799 !important; } .t-cb-hm7 { color: #265373 !important; } .t-cb-hm8 { color: #19334d !important; } .t-cb-hm9 { color: #0d1726 !important; } .t-cb-hd1 { color: #e0ebea !important; } .t-cb-hd2 { color: #c2d6d6 !important; } .t-cb-hd3 { color: #a3bfc2 !important; } .t-cb-hd4 { color: #85a7ad !important; } .t-cb-hd5 { color: #668c99 !important; } .t-cb-hd6 { color: #526d7a !important; } .t-cb-hd7 { color: #3d4f5c !important; } .t-cb-hd8 { color: #29333d !important; } .t-cb-hd9 { color: #14191f !important; } .t-bl-hl1 { color: #d1f3fa !important; } .t-bl-hl2 { color: #a3e0f5 !important; } .t-bl-hl3 { color: #75c7f0 !important; } .t-bl-hl4 { color: #47a7eb !important; } .t-bl-hl5 { color: #197fe6 !important; } .t-bl-hl6 { color: #1458b8 !important; } .t-bl-hl7 { color: #0f388a !important; } .t-bl-hl8 { color: #0a1f5c !important; } .t-bl-hl9 { color: #050c2e !important; } .t-bl-hm1 { color: #d9eef2 !important; } .t-bl-hm2 { color: #b3d9e6 !important; } .t-bl-hm3 { color: #8cbfd9 !important; } .t-bl-hm4 { color: #66a1cc !important; } .t-bl-hm5 { color: #407fbf !important; } .t-bl-hm6 { color: #335d99 !important; } .t-bl-hm7 { color: #264073 !important; } .t-bl-hm8 { color: #19264d !important; } .t-bl-hm9 { color: #0d1126 !important; } .t-bl-hd1 { color: #e0e9eb !important; } .t-bl-hd2 { color: #c2d1d6 !important; } .t-bl-hd3 { color: #a3b8c2 !important; } .t-bl-hd4 { color: #859cad !important; } .t-bl-hd5 { color: #667f99 !important; } .t-bl-hd6 { color: #52637a !important; } .t-bl-hd7 { color: #3d475c !important; } .t-bl-hd8 { color: #292e3d !important; } .t-bl-hd9 { color: #14161f !important; } .t-bi-hl1 { color: #d1e9fa !important; } .t-bi-hl2 { color: #a3ccf5 !important; } .t-bi-hl3 { color: #75a8f0 !important; } .t-bi-hl4 { color: #477eeb !important; } .t-bi-hl5 { color: #194ce6 !important; } .t-bi-hl6 { color: #1430b8 !important; } .t-bi-hl7 { color: #0f198a !important; } .t-bi-hl8 { color: #0a0a5c !important; } .t-bi-hl9 { color: #08052e !important; } .t-bi-hm1 { color: #d9e8f2 !important; } .t-bi-hm2 { color: #b3cce6 !important; } .t-bi-hm3 { color: #8cacd9 !important; } .t-bi-hm4 { color: #6688cc !important; } .t-bi-hm5 { color: #4060bf !important; } .t-bi-hm6 { color: #334499 !important; } .t-bi-hm7 { color: #262d73 !important; } .t-bi-hm8 { color: #19194d !important; } .t-bi-hm9 { color: #0f0d26 !important; } .t-bi-hd1 { color: #e0e6eb !important; } .t-bi-hd2 { color: #c2ccd6 !important; } .t-bi-hd3 { color: #a3b0c2 !important; } .t-bi-hd4 { color: #8592ad !important; } .t-bi-hd5 { color: #667399 !important; } .t-bi-hd6 { color: #52587a !important; } .t-bi-hd7 { color: #3d405c !important; } .t-bi-hd8 { color: #29293d !important; } .t-bi-hd9 { color: #15141f !important; } .t-in-hl1 { color: #d1dffa !important; } .t-in-hl2 { color: #a3b8f5 !important; } .t-in-hl3 { color: #758af0 !important; } .t-in-hl4 { color: #4755eb !important; } .t-in-hl5 { color: #1919e6 !important; } .t-in-hl6 { color: #2214b8 !important; } .t-in-hl7 { color: #240f8a !important; } .t-in-hl8 { color: #1f0a5c !important; } .t-in-hl9 { color: #13052e !important; } .t-in-hm1 { color: #d9e1f2 !important; } .t-in-hm2 { color: #b3bfe6 !important; } .t-in-hm3 { color: #8c99d9 !important; } .t-in-hm4 { color: #666ecc !important; } .t-in-hm5 { color: #4040bf !important; } .t-in-hm6 { color: #3b3399 !important; } .t-in-hm7 { color: #332673 !important; } .t-in-hm8 { color: #26194d !important; } .t-in-hm9 { color: #150d26 !important; } .t-in-hd1 { color: #e0e4eb !important; } .t-in-hd2 { color: #c2c7d6 !important; } .t-in-hd3 { color: #a3a8c2 !important; } .t-in-hd4 { color: #8588ad !important; } .t-in-hd5 { color: #666699 !important; } .t-in-hd6 { color: #55527a !important; } .t-in-hd7 { color: #423d5c !important; } .t-in-hd8 { color: #2e293d !important; } .t-in-hd9 { color: #18141f !important; } .t-ip-hl1 { color: #d1d4fa !important; } .t-ip-hl2 { color: #a3a3f5 !important; } .t-ip-hl3 { color: #8075f0 !important; } .t-ip-hl4 { color: #6347eb !important; } .t-ip-hl5 { color: #4d19e6 !important; } .t-ip-hl6 { color: #4b14b8 !important; } .t-ip-hl7 { color: #420f8a !important; } .t-ip-hl8 { color: #330a5c !important; } .t-ip-hl9 { color: #1d052e !important; } .t-ip-hm1 { color: #d9dbf2 !important; } .t-ip-hm2 { color: #b3b3e6 !important; } .t-ip-hm3 { color: #938cd9 !important; } .t-ip-hm4 { color: #7766cc !important; } .t-ip-hm5 { color: #6040bf !important; } .t-ip-hm6 { color: #553399 !important; } .t-ip-hm7 { color: #462673 !important; } .t-ip-hm8 { color: #33194d !important; } .t-ip-hm9 { color: #1c0d26 !important; } .t-ip-hd1 { color: #e0e1eb !important; } .t-ip-hd2 { color: #c2c2d6 !important; } .t-ip-hd3 { color: #a6a3c2 !important; } .t-ip-hd4 { color: #8b85ad !important; } .t-ip-hd5 { color: #736699 !important; } .t-ip-hd6 { color: #5f527a !important; } .t-ip-hd7 { color: #4a3d5c !important; } .t-ip-hd8 { color: #33293d !important; } .t-ip-hd9 { color: #1a141f !important; } .t-pu-hl1 { color: #d8d1fa !important; } .t-pu-hl2 { color: #b8a3f5 !important; } .t-pu-hl3 { color: #9e75f0 !important; } .t-pu-hl4 { color: #8b47eb !important; } .t-pu-hl5 { color: #7f19e6 !important; } .t-pu-hl6 { color: #7414b8 !important; } .t-pu-hl7 { color: #610f8a !important; } .t-pu-hl8 { color: #470a5c !important; } .t-pu-hl9 { color: #27052e !important; } .t-pu-hm1 { color: #ddd9f2 !important; } .t-pu-hm2 { color: #bfb3e6 !important; } .t-pu-hm3 { color: #a68cd9 !important; } .t-pu-hm4 { color: #9066cc !important; } .t-pu-hm5 { color: #7f40bf !important; } .t-pu-hm6 { color: #6e3399 !important; } .t-pu-hm7 { color: #592673 !important; } .t-pu-hm8 { color: #40194d !important; } .t-pu-hm9 { color: #220d26 !important; } .t-pu-hd1 { color: #e2e0eb !important; } .t-pu-hd2 { color: #c7c2d6 !important; } .t-pu-hd3 { color: #ada3c2 !important; } .t-pu-hd4 { color: #9685ad !important; } .t-pu-hd5 { color: #7f6699 !important; } .t-pu-hd6 { color: #69527a !important; } .t-pu-hd7 { color: #523d5c !important; } .t-pu-hd8 { color: #38293d !important; } .t-pu-hd9 { color: #1d141f !important; } .t-pp-hl1 { color: #e2d1fa !important; } .t-pp-hl2 { color: #cca3f5 !important; } .t-pp-hl3 { color: #bd75f0 !important; } .t-pp-hl4 { color: #b447eb !important; } .t-pp-hl5 { color: #b319e6 !important; } .t-pp-hl6 { color: #9c14b8 !important; } .t-pp-hl7 { color: #7f0f8a !important; } .t-pp-hl8 { color: #5c0a5c !important; } .t-pp-hl9 { color: #2e052b !important; } .t-pp-hm1 { color: #e3d9f2 !important; } .t-pp-hm2 { color: #ccb3e6 !important; } .t-pp-hm3 { color: #b98cd9 !important; } .t-pp-hm4 { color: #aa66cc !important; } .t-pp-hm5 { color: #9f40bf !important; } .t-pp-hm6 { color: #883399 !important; } .t-pp-hm7 { color: #6c2673 !important; } .t-pp-hm8 { color: #4d194d !important; } .t-pp-hm9 { color: #260d24 !important; } .t-pp-hd1 { color: #e5e0eb !important; } .t-pp-hd2 { color: #ccc2d6 !important; } .t-pp-hd3 { color: #b5a3c2 !important; } .t-pp-hd4 { color: #a085ad !important; } .t-pp-hd5 { color: #8c6699 !important; } .t-pp-hd6 { color: #74527a !important; } .t-pp-hd7 { color: #593d5c !important; } .t-pp-hd8 { color: #3d293d !important; } .t-pp-hd9 { color: #1f141e !important; } .t-pi-hl1 { color: #ecd1fa !important; } .t-pi-hl2 { color: #e0a3f5 !important; } .t-pi-hl3 { color: #db75f0 !important; } .t-pi-hl4 { color: #dd47eb !important; } .t-pi-hl5 { color: #e619e5 !important; } .t-pi-hl6 { color: #b814aa !important; } .t-pi-hl7 { color: #8a0f75 !important; } .t-pi-hl8 { color: #5c0a47 !important; } .t-pi-hl9 { color: #2e0520 !important; } .t-pi-hm1 { color: #ead9f2 !important; } .t-pi-hm2 { color: #d9b3e6 !important; } .t-pi-hm3 { color: #cc8cd9 !important; } .t-pi-hm4 { color: #c366cc !important; } .t-pi-hm5 { color: #bf40bf !important; } .t-pi-hm6 { color: #993391 !important; } .t-pi-hm7 { color: #732666 !important; } .t-pi-hm8 { color: #4d1940 !important; } .t-pi-hm9 { color: #260d1e !important; } .t-pi-hd1 { color: #e7e0eb !important; } .t-pi-hd2 { color: #d1c2d6 !important; } .t-pi-hd3 { color: #bda3c2 !important; } .t-pi-hd4 { color: #aa85ad !important; } .t-pi-hd5 { color: #996699 !important; } .t-pi-hd6 { color: #7a5277 !important; } .t-pi-hd7 { color: #5c3d57 !important; } .t-pi-hd8 { color: #3d2938 !important; } .t-pi-hd9 { color: #1f141b !important; } .t-pv-hl1 { color: #f7d1fa !important; } .t-pv-hl2 { color: #f5a3f5 !important; } .t-pv-hl3 { color: #f075e5 !important; } .t-pv-hl4 { color: #eb47cf !important; } .t-pv-hl5 { color: #e619b2 !important; } .t-pv-hl6 { color: #b81481 !important; } .t-pv-hl7 { color: #8a0f57 !important; } .t-pv-hl8 { color: #5c0a33 !important; } .t-pv-hl9 { color: #2e0516 !important; } .t-pv-hm1 { color: #f0d9f2 !important; } .t-pv-hm2 { color: #e6b3e5 !important; } .t-pv-hm3 { color: #d98cd2 !important; } .t-pv-hm4 { color: #cc66bb !important; } .t-pv-hm5 { color: #bf409f !important; } .t-pv-hm6 { color: #993377 !important; } .t-pv-hm7 { color: #732653 !important; } .t-pv-hm8 { color: #4d1933 !important; } .t-pv-hm9 { color: #260d17 !important; } .t-pv-hd1 { color: #eae0eb !important; } .t-pv-hd2 { color: #d6c2d6 !important; } .t-pv-hd3 { color: #c2a3bf !important; } .t-pv-hd4 { color: #ad85a7 !important; } .t-pv-hd5 { color: #99668c !important; } .t-pv-hd6 { color: #7a526d !important; } .t-pv-hd7 { color: #5c3d4f !important; } .t-pv-hd8 { color: #3d2933 !important; } .t-pv-hd9 { color: #1f1419 !important; } .t-vi-hl1 { color: #fad1f3 !important; } .t-vi-hl2 { color: #f5a3e0 !important; } .t-vi-hl3 { color: #f075c7 !important; } .t-vi-hl4 { color: #eb47a7 !important; } .t-vi-hl5 { color: #e61980 !important; } .t-vi-hl6 { color: #b81458 !important; } .t-vi-hl7 { color: #8a0f38 !important; } .t-vi-hl8 { color: #5c0a1f !important; } .t-vi-hl9 { color: #2e050c !important; } .t-vi-hm1 { color: #f2d9ee !important; } .t-vi-hm2 { color: #e6b3d9 !important; } .t-vi-hm3 { color: #d98cbf !important; } .t-vi-hm4 { color: #cc66a2 !important; } .t-vi-hm5 { color: #bf4080 !important; } .t-vi-hm6 { color: #99335d !important; } .t-vi-hm7 { color: #732640 !important; } .t-vi-hm8 { color: #4d1926 !important; } .t-vi-hm9 { color: #260d11 !important; } .t-vi-hd1 { color: #ebe0e9 !important; } .t-vi-hd2 { color: #d6c2d1 !important; } .t-vi-hd3 { color: #c2a3b8 !important; } .t-vi-hd4 { color: #ad859c !important; } .t-vi-hd5 { color: #996680 !important; } .t-vi-hd6 { color: #7a5263 !important; } .t-vi-hd7 { color: #5c3d47 !important; } .t-vi-hd8 { color: #3d292e !important; } .t-vi-hd9 { color: #1f1416 !important; } .t-vr-hl1 { color: #fad1e9 !important; } .t-vr-hl2 { color: #f5a3cc !important; } .t-vr-hl3 { color: #f075a8 !important; } .t-vr-hl4 { color: #eb477e !important; } .t-vr-hl5 { color: #e6194c !important; } .t-vr-hl6 { color: #b81430 !important; } .t-vr-hl7 { color: #8a0f19 !important; } .t-vr-hl8 { color: #5c0a0a !important; } .t-vr-hl9 { color: #2e0805 !important; } .t-vr-hm1 { color: #f2d9e8 !important; } .t-vr-hm2 { color: #e6b3cc !important; } .t-vr-hm3 { color: #d98cac !important; } .t-vr-hm4 { color: #cc6688 !important; } .t-vr-hm5 { color: #bf4060 !important; } .t-vr-hm6 { color: #993344 !important; } .t-vr-hm7 { color: #73262d !important; } .t-vr-hm8 { color: #4d1919 !important; } .t-vr-hm9 { color: #260f0d !important; } .t-vr-hd1 { color: #ebe0e6 !important; } .t-vr-hd2 { color: #d6c2cc !important; } .t-vr-hd3 { color: #c2a3b0 !important; } .t-vr-hd4 { color: #ad8592 !important; } .t-vr-hd5 { color: #996673 !important; } .t-vr-hd6 { color: #7a5258 !important; } .t-vr-hd7 { color: #5c3d40 !important; } .t-vr-hd8 { color: #3d2929 !important; } .t-vr-hd9 { color: #1f1514 !important; } /* chsname=["红","红橙","橙","橙黄","黄","黄草","草绿","草绿-绿","绿","绿-水绿","水绿","水绿-青","青","青蓝","蓝","蓝靛","靛","靛紫","紫","紫粉","粉","粉-洋红","洋红","洋红-红","灰"]; engname=["red","red-orange","orange","orange-yellow","yellow","yellow-chartreuse","chartreuse","chartreuse-green","green","green-aquamarine","aquamarine","aquamarine-cyan","cyan","cyan-blue","blue","blue-indigo","indigo","indigo-purple","purple","purple-pink","pink","pink-violetred","violetred","violetred-red","gray"]; colors=["re","ro","or","oy","ye","yc","ch","cg","gr","ga","aq","ac","cy","cb","bl","bi","in","ip","pu","pp","pi","pv","vi","vr","gy"]; */ .fixfloat:after { content: "."; height: 0; display: block; visibility: hidden; clear: both; } .fullbox { top: 0; right: 0; bottom: 0; left: 0; } .fa { display: inline-block; font: normal normal normal 14px/1 FontAwesome; font-size: inherit; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .thidden { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .block-group { display: table; } .block-group li { display: table-cell; width: 1%; } .block-group li .mui-btn { width: 100%; } .inline-wrapper { font-size: 0; } .inline-wrapper li { display: inline-block; padding: 10px; font-size: 1rem; } .fix-cx { transform: translateX(-50%); } .fix-cy { transform: translateY(-50%); } .fix-c { transform: translateX(-50%) translateY(-50%); } /*header css start*/ .ad-box { position: relative; } .ad-box a img { max-height: 320px; width: 100%; object-fit: cover; } .ad-box .fa { position: absolute; right: 10px; bottom: 10px; color: #000; cursor: pointer; } .ad-box .fa:hover { color: #197fe6; } .ui-limit { width: 1200px; margin: 0 auto; position: relative; } .ui-header { background-color: rgba(25, 51, 77, 0.95); width: 100%; min-width: 1200px; z-index: 99; } .ui-header .ui-limit { position: relative; padding-top: 100px; } .ui-header .ui-limit .logo-wrapper { position: absolute; top: 20px; left: 50%; transform: translateX(-50%); } .ui-header .ui-limit .logo-wrapper .logo { text-align: center; float: left; } .ui-header .ui-limit .logo-wrapper .logo:before { display: inline-block; font: normal normal normal 14px/1 FontAwesome; font-size: inherit; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; content: "\f008"; font-size: 3.5rem; padding-right: 10px; line-height: 5rem; color: #1466b8; } .ui-header .ui-limit .logo-wrapper .desc { font-size: 3rem; color: #6699cc; line-height: 5rem; float: left; font-family: "微软雅黑"; font-weight: bold; } .ui-header .ui-limit .btn-group { position: absolute; bottom: 20px; right: 0; } .ui-header .ui-limit .btn-group .btn .fa { margin-right: 5px; } .ui-header .ui-limit .view-count { position: absolute; bottom: 20px; left: 0; line-height: 34px; background-color: #19334d; border: 1px solid #19334d; border-radius: 5px; padding: 0 15px; } .ui-header .ui-limit .view-count .desc { color: #197fe6; } .ui-header .ui-limit .view-count .desc .fa { margin-right: 5px; } .ui-header .ui-limit .view-count .count { color: #fff; } .ui-header .ui-limit .count-down { text-align: center; padding: 20px; } .ui-header .ui-limit .count-down .minfo { font-size: 1.8rem; color: #6699cc; } .ui-header .ui-limit .count-down .minfo .count { display: inline-block; padding: 10px 0; width: 40px; border-radius: 4px; color: #fff; margin: 0 10px; background-color: #19334d; } .ui-header .ui-limit .count-down .sinfo { color: #336699; font-size: 1.2rem; } .ui-header .ui-limit .film-title { text-align: center; padding: 20px 0 30px 0; font-size: 1.4rem; color: #fff; } .ui-header .ui-limit .share-info { text-align: center; width: 600px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 0 auto; padding: 20px 0 30px 0; font-size: 1.4rem; color: #6699cc; } .ui-header .ui-limit .share-info:before { content: "["; color: #336699; } .ui-header .ui-limit .share-info:after { content: "]"; color: #336699; } body.view-flat .infobar { display: block; } body.view-flat .tab-info { display: none; } body.view-flat .tab-side > li.active .tab-info { display: block!important; } body.view-flat .tab-content > .tab-pane { display: block; } body.view-flat .down-list > li .down-links { transition: none!important; } body.view-tabs .infobar { display: none; } body.view-film .ui-header .btn-group .btn-toggle-view, body.view-single .ui-header .btn-group .btn-toggle-view { display: none; } body.view-film .ui-header .btn-group .btn-default, body.view-single .ui-header .btn-group .btn-default { border-radius: 4px !important; } body.view-film .pane-single, body.view-single .pane-single { min-height: 350px; } body.view-film .pane-single .download-box, body.view-single .pane-single .download-box { text-align: center; position: relative; } body.view-film .pane-single .download-box a, body.view-single .pane-single .download-box a { margin-bottom: 0; font-size: 1.4rem; line-height: 50px; } body.view-film .pane-single .download-box .btn-download, body.view-single .pane-single .download-box .btn-download { display: block; width: 129px; padding: 0 10px; font-size: 1.2rem; margin: 20px auto; line-height: 50px; } body.view-film .down-list .down-links, body.view-single .down-list .down-links { visibility: visible!important; opacity: 1!important; height: 50px; } .ui-content { width: 100%; min-height: 650px; } .ui-content .row-content { padding: 40px 0 0 0; font-size: 0; } .ui-content .row-content .col-box { display: inline-block; padding: 0 15px; margin: 0; float: left; } .ui-content .row-content .col-box.col-sidebar { width: 15%; min-height: 300px; margin-bottom: 20px; } .ui-content .row-content .col-box.col-sidebar .sidebar-warpper { width: 154px; background-color: #19334d; border-radius: 5px; overflow: hidden; } .ui-content .row-content .col-box.col-sidebar .sidebar-warpper .scroll-wrapper { max-height: 550px; overflow: auto; } .ui-content .row-content .col-box.col-sidebar .sidebar-warpper .tab-side { width: 154px; padding: 15px 0; } .ui-content .row-content .col-box.col-sidebar .sidebar-warpper .tab-side > li { line-height: 3rem; font-size: 1.4rem; text-align: center; } .ui-content .row-content .col-box.col-sidebar .sidebar-warpper .tab-side > li > a { display: block; width: 100%; background-color: #19334d; color: #6699cc; padding: 0; } .ui-content .row-content .col-box.col-sidebar .sidebar-warpper .tab-side > li > a:hover { background-color: rgba(38, 76, 115, 0.3); } .ui-content .row-content .col-box.col-sidebar .sidebar-warpper .tab-side > li .tab-info { display: none; margin-bottom: 10px; } .ui-content .row-content .col-box.col-sidebar .sidebar-warpper .tab-side > li .tab-info > li { font-size: 1rem; line-height: 2rem; white-space: nowrap; } .ui-content .row-content .col-box.col-sidebar .sidebar-warpper .tab-side > li .tab-info > li > a { display: block; width: 100%; background-color: #19334d; color: #407fbf; padding: 0; } .ui-content .row-content .col-box.col-sidebar .sidebar-warpper .tab-side > li .tab-info > li > a:hover { background-color: rgba(38, 76, 115, 0.3); } .ui-content .row-content .col-box.col-sidebar .sidebar-warpper .tab-side > li .tab-info > li > a .fa { margin-right: 5px; } .ui-content .row-content .col-box.col-sidebar .sidebar-warpper .tab-side > li .tab-info > li > a .badge { font-size: .8rem; margin-left: 5px; background-color: #264c73; color: #6699cc; font-weight: normal; } .ui-content .row-content .col-box.col-sidebar .sidebar-warpper .tab-side > li .tab-info > li.active > a { background-color: rgba(38, 76, 115, 0.5); color: #407fbf; } .ui-content .row-content .col-box.col-sidebar .sidebar-warpper .tab-side > li.active > a { background-color: #264c73; color: #407fbf; } .ui-content .row-content .col-box.col-sidebar .sidebar-warpper.sidebar-warpper-fixed { position: fixed; top: 40px; } .ui-content .row-content .col-box.col-infomation { width: 85%; } .panel { box-shadow: none; background-color: transparent; border-radius: 0; border: none; } .panel .panel-heading { padding: 0; text-align: center; font-size: 1.6rem; line-height: 4rem; position: relative; } .panel .panel-heading .desc { background-color: #fff; z-index: 2; position: relative; padding: 0 1rem; } .panel .panel-body { padding: 0; } .panel.panel-has-tabs .panel-heading { line-height: 3rem; text-align: left; } .tab-content > li, .tab-content > div { display: inline-block; width: 100%; font-size: 1rem; min-height: 550px; } .tab-content.ani-fade > li, .tab-content.ani-fade > div { position: absolute; opacity: 0; z-index: -1; transition: all 0.5s cubic-bezier(0.78, 0.02, 0.2, 1), z-index 0s 0.12s; } .tab-content.ani-fade > li.active, .tab-content.ani-fade > div.active { opacity: 1; z-index: 1; } .tab-content > .active { display: inline-block; } .tab-content .tab-pane { min-height: 120px; } .tab-content .tab-pane:after { content: "."; height: 0; display: block; visibility: hidden; clear: both; } .tab-content .tab-pane > .tab-header { border-bottom: 1px solid #e6e6e6; width: 100%; text-align: left; font-size: 0; overflow: hidden; height: 34px; } .tab-content .tab-pane > .tab-header > li, .tab-content .tab-pane > .tab-header > div { display: inline-block; margin: 0 0.3rem -2px 0.3rem; cursor: pointer; font-size: 1.4rem; } .tab-content .tab-pane > .tab-header > li a, .tab-content .tab-pane > .tab-header > div a { text-decoration: none; color: #4d4d4d; display: inline-block; padding: 0 .5rem .8rem .5rem; } .tab-content .tab-pane > .tab-header > li a .fa, .tab-content .tab-pane > .tab-header > div a .fa { margin-right: 5px; } .tab-content .tab-pane > .tab-header > li a .badge, .tab-content .tab-pane > .tab-header > div a .badge { line-height: 1.5rem; display: inline; vertical-align: top; border-radius: 20px; margin: 0 0 0 5px; background-color: #197fe6; } .tab-content .tab-pane > .tab-header > li.active, .tab-content .tab-pane > .tab-header > div.active { border-bottom: 2px solid #b81414; color: #e61919; } .tab-content .tab-pane > .tab-header > li.active a, .tab-content .tab-pane > .tab-header > div.active a { color: #e61919; } .tab-content .tab-pane > .tab-header > li.active a .badge, .tab-content .tab-pane > .tab-header > div.active a .badge { background-color: #e61919; } .infobar { padding: 10px; line-height: 2.5rem; font-size: 1.4rem; font-weight: bold; border-bottom: 2px solid #197fe6; } .infobar .badge { line-height: 1.5rem; display: inline; vertical-align: middle; border-radius: 20px; margin: 0 0 0 5px; background-color: #197fe6; } .down-img { width: 16px; height: 16px; display: inline-block; background-position: 0 0; } .down-img.down-img-thunder, .down-img.down-img--1 { background-position: -68px 0; } .down-img.down-img-yyets { background-position: -51px 0; } .down-img.down-img-baidu, .down-img.down-img-102 { background-position: -17px -17px; } .down-img.down-img-tencent, .down-img.down-img-108 { background-position: 0 -17px; } .down-img.down-img-emule, .down-img.down-img-1 { background-position: -34px -17px; } .down-img.down-img-magent, .down-img.down-img-2 { background-position: -51px -17px; } .down-img.down-img-fantasy, .down-img.down-img-114 { background-position: -51px -34px; } .down-img.down-img-CT, .down-img.down-img-12 { background-position: 0 -34px; } .down-img.down-img-MI, .down-img.down-img-999 { background-position: -68px -17px; } .down-img.down-img-default { background-position: 0 0; } .down-img.down-img-cloud, .down-img.down-img-9 { background-position: -17px 0; } .down-img.down-img-acfun, .down-img.down-img-103 { background-position: -17px -34px; } .down-img.down-img-bilibili, .down-img.down-img-104 { background-position: -34px -34px; } .down-img.down-img-youku, .down-img.down-img-105 { background-position: -17px -51px; } .down-img.down-img-shouhu, .down-img.down-img-106 { background-position: -34px -51px; } .down-img.down-img-leshi, .down-img.down-img-107 { background-position: 0 -51px; } .down-img.down-img-weiyun, .down-img.down-img-108 { background-position: -68px -34px; } .tooltip-filename .tooltip-inner { max-width: 800px; font-size: 1rem; } .tooltip-copy .tooltip-inner { font-size: 1rem; white-space: nowrap; } .down-list > li { font-size: 1.2rem; padding: 10px; border-bottom: 1px dotted #d9d9d9; transition: all 0.5s cubic-bezier(0.78, 0.02, 0.2, 1), z-index 0s 0.12s; } .down-list > li .title { margin: 0; padding: 0; font-size: 0; } .down-list > li .title:after { content: "."; height: 0; display: block; visibility: hidden; clear: both; } .down-list > li .title > span { display: inline-block; font-size: 1.2rem; line-height: 38px; float: left; } .down-list > li .title > span.episode { color: #197fe6; float: left; padding-right: 10px; } .down-list > li .title > span.filename { color: #808080; padding-right: 10px; max-width: 680px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .down-list > li .title > span.filesize { color: #bfbfbf; } .down-list > li .title > span.date { float: right; color: #bfbfbf; } .down-list > li .title .down-links { height: 38px!important; visibility: visible!important; opacity: 1!important; padding: 0!important; float: left; } .down-list > li .title .down-links > li { margin: 0 .5rem 0 0; } .down-list > li .down-links { font-size: 0; line-height: 1rem; transition: all 0.5s cubic-bezier(0.78, 0.02, 0.2, 1), z-index 0s 0.12s; padding: 0; height: 0; opacity: 0; visibility: hidden; } .down-list > li .down-links > li { display: inline-block; position: relative; line-height: 1rem; margin: .3rem .5rem .3rem 0; } .down-list > li .down-links > li .btn { padding: .3rem 1rem; height: 38px; border-radius: 4px; border: 1px solid #d9d9d9; background-color: #fff; position: relative; z-index: 2; } .down-list > li .down-links > li .btn .desc { display: inline-block; margin: 0; font-size: 1.2rem; padding: 0; line-height: 2rem; } .down-list > li .down-links > li .btn .desc .fa { margin-left: 10px; color: #d9d9d9; font-size: 1rem; } .down-list > li .down-links > li .btn:hover { background-color: #197fe6; border: 1px solid #197fe6; color: #fff; } .down-list > li .down-links > li .btn:hover .desc .fa { color: #fff; } .down-list > li .down-links > li .copy-link { content: "1"; display: inline-block; width: 20px; height: 0; background-color: rgba(0, 0, 0, 0); font-size: 1rem; position: relative; right: 0; top: 0; } .down-list > li .down-links > li .copy-link:before { display: inline-block; font: normal normal normal 14px/1 FontAwesome; font-size: inherit; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; position: absolute; left: -5px; top: -19px; line-height: 38px; z-index: 0; padding-left: 3px; content: "\f0c5"; color: #bfbfbf; cursor: pointer; width: 26px; height: 38px; text-align: center; border-radius: 4px; background-color: #fff; border: 1px solid #d9d9d9; } .down-list > li .down-links > li .copy-link:hover:before { background-color: #197fe6; border: 1px solid #fff; color: #fff; } .down-list > li .down-links > li .copy-pass { content: "1"; display: inline-block; width: 26px; height: 0; background-color: rgba(0, 0, 0, 0); font-size: 1rem; position: relative; right: 0; top: 0; } .down-list > li .down-links > li .copy-pass:before { display: inline-block; font: normal normal normal 14px/1 FontAwesome; font-size: inherit; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; position: absolute; left: -5px; top: -19px; line-height: 38px; z-index: 1; padding-left: 3px; content: "\f084"; color: #bfbfbf; cursor: pointer; width: 30px; height: 38px; text-align: center; border-radius: 4px; background-color: #fff; border: 1px solid #d9d9d9; } .down-list > li .down-links > li .copy-pass:hover:before { background-color: #e68019; border: 1px solid #fff; color: #fff; } .down-list > li .down-links > li:hover .down-popup { opacity: 1; z-index: 10; visibility: visible; } .down-list > li:hover { background-color: #f2f2f2; } .down-list > li:hover .down-links { height: 50px; padding: 0; visibility: visible; opacity: 1; } .down-list > li:last-child .down-popup, .down-list > li:nth-last-child(2) .down-popup { top: -289px; } .down-popup { position: absolute; top: 100%; left: 0; opacity: 0; transition: all 0.5s cubic-bezier(0.78, 0.02, 0.2, 1), z-index 0s 0.12s; z-index: 3; visibility: hidden; background-color: #264c73; border-radius: 5px; box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.2); font-size: 1rem; } .down-popup .panel-inner-down .panel-heading { font-size: 1.2rem; line-height: 2rem; color: #407fbf; } .down-popup .panel-inner-down .panel-heading .fa { float: right; margin-top: 5px; } .down-popup .panel-inner-down .panel-heading .fa:hover { color: #8cb2d9; } .down-popup .panel-inner-down .panel-body { padding-top: 0; } .down-popup .panel-inner-down .panel-body .btn { width: 100%; display: block; font-size: 1.2rem; background-color: #19334d; border: 1px solid #0d1926; color: #6699cc; height: auto; margin-bottom: 10px; padding: 0 10px; line-height: 3rem; } .down-popup .panel-inner-down .panel-body .desc { margin: 0; color: #6699cc; line-height: 1.5rem; text-indent: 2rem; } .down-list-toolbar { float: right; margin: 20px 0; position: relative; border: 1px solid #e6e6e6; background-color: #e6e6e6; border-radius: 4px; padding: 5px 5px 5px 10px; } .down-list-toolbar .title { display: inline-block; font-size: 1.2rem; color: #4d4d4d; line-height: 36px; margin: 0; } .down-list-toolbar .btn-group { display: inline-block; } .down-list-toolbar .btn-group .btn { padding: 0 1rem; height: 38px; line-height: 38px; border-radius: 4px; border: 1px solid #d9d9d9; background-color: #fff; position: relative; z-index: 2; } .down-list-toolbar .btn-group .btn .desc { display: inline-block; margin: 0; font-size: 1.2rem; padding: 0; line-height: 2rem; } .down-list-toolbar .btn-group .btn .desc .fa { margin-left: 10px; color: #d9d9d9; font-size: 1rem; } .down-list-toolbar .btn-group .btn:hover { background-color: #197fe6; border: 1px solid #197fe6; color: #fff; } .down-list-toolbar .btn-group .btn:hover .desc .fa { color: #fff; } .ui-footer { background-color: #19334d; padding: 0; } .ui-footer .ui-limit { font-size: 0; } .ui-footer .ui-limit .foot-group { display: inline-block; vertical-align: top; font-size: 0; width: 300px; height: 200px; } .ui-footer .ui-limit .foot-group li { line-height: 2rem; font-size: 1.2rem; width: 50%; display: inline-block; color: rgba(255, 255, 255, 0.8); } .ui-footer .ui-limit .foot-group li a { color: rgba(255, 255, 255, 0.8); } .ui-footer .ui-limit .foot-group li:hover { color: #197fe6; } .ui-footer .ui-limit .foot-group li:hover a { color: #197fe6; } .ui-footer .ui-limit .foot-links { width: 150px; font-size: 0; } .ui-footer .ui-limit .foot-links li { width: 100%; } .ui-footer .ui-limit .foot-contact { width: 400px; } .ui-footer .ui-limit .foot-contact li { text-align: center; margin-bottom: 40px; } .ui-footer .ui-limit .foot-contact li .title { color: rgba(255, 255, 255, 0.8); } .ui-footer .ui-limit .foot-contact li .desc { color: rgba(255, 255, 255, 0.4); } .ui-footer .ui-limit .foot-contact li .desc a { color: rgba(255, 255, 255, 0.4); } .ui-footer .ui-limit .foot-contact li:hover .desc { color: #197fe6; } .ui-footer .ui-limit .foot-contact li:hover .desc a { color: #197fe6; } .ui-footer .ui-limit .foot-qrcode { width: 650px; } .ui-footer .ui-limit .foot-qrcode li { width: 25%; text-align: center; line-height: 1.5rem; } .ui-footer .ui-limit .foot-qrcode li img { width: 70%; } .ui-footer .ui-limit .foot-qrcode li .title { line-height: 2rem; color: rgba(255, 255, 255, 0.8); } .ui-footer .ui-limit .foot-qrcode li .desc { color: rgba(255, 255, 255, 0.4); } .ui-footer .copyright { text-align: center; font-size: 1.2rem; padding: 40px 0 30px 0; color: #fff; background-color: rgba(13, 25, 38, 0.5); } .ui-footer .copyright p { margin-bottom: 0; } .ui-footer.ui-footer-simple { padding: 0; } .ui-footer.ui-footer-simple .copyright { background-color: #19334d; } .ui-footer.ui-footer-fixed { position: fixed; bottom: 0; left: 0; right: 0; } .IE .ui-header .ui-limit .logo-wrapper { padding-left: 4.5rem; } .IE .ui-header .ui-limit .logo-wrapper .logo::before { position: absolute; left: 0; top: 35px; } .mCSB_inside > .mCSB_container { margin-right: 0; } ================================================ FILE: yyets/worker/public/css/index.json ================================================ { "越狱\nPrison Break\n逃": 10004, "死亡地带\nThe Dead Zone\n": 10010, "伪装者\nThe Pretender\n": 10017, "橘子郡男孩\nTHE OC\nThe.O.C / 橘镇风云 /桔子镇": 10022, "威尔和格蕾丝\nWill and Grace\n威尔与格蕾丝": 10026, "黑锅\nTraveler\n逃亡之旅": 10052, "棕榈泉疑云\nHidden Palms\n": 10053, "降世神通 最后的气宗\nAvatar: The Last Airbender\n": 10054, "恐怖大师\nMasters Of Horror\n": 10055, "时间旅人\nJourneyman\n时间旅者": 10057 } ================================================ FILE: yyets/worker/public/css/jquery.mCustomScrollbar.css ================================================ /* == malihu jquery custom scrollbar plugin == Plugin URI: http://manos.malihu.gr/jquery-custom-content-scroller */ /* CONTENTS: 1. BASIC STYLE - Plugin's basic/essential CSS properties (normally, should not be edited). 2. VERTICAL SCROLLBAR - Positioning and dimensions of vertical scrollbar. 3. HORIZONTAL SCROLLBAR - Positioning and dimensions of horizontal scrollbar. 4. VERTICAL AND HORIZONTAL SCROLLBARS - Positioning and dimensions of 2-axis scrollbars. 5. TRANSITIONS - CSS3 transitions for hover events, auto-expanded and auto-hidden scrollbars. 6. SCROLLBAR COLORS, OPACITY AND BACKGROUNDS 6.1 THEMES - Scrollbar colors, opacity, dimensions, backgrounds etc. via ready-to-use themes. */ /* ------------------------------------------------------------------------------------------------------------------------ 1. BASIC STYLE ------------------------------------------------------------------------------------------------------------------------ */ .mCustomScrollbar{ -ms-touch-action: pinch-zoom; touch-action: pinch-zoom; /* direct pointer events to js */ } .mCustomScrollbar.mCS_no_scrollbar, .mCustomScrollbar.mCS_touch_action{ -ms-touch-action: auto; touch-action: auto; } .mCustomScrollBox{ /* contains plugin's markup */ position: relative; overflow: hidden; height: 100%; max-width: 100%; outline: none; direction: ltr; } .mCSB_container{ /* contains the original content */ overflow: hidden; width: auto; height: auto; } /* ------------------------------------------------------------------------------------------------------------------------ 2. VERTICAL SCROLLBAR y-axis ------------------------------------------------------------------------------------------------------------------------ */ .mCSB_inside > .mCSB_container{ margin-right: 30px; } .mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{ margin-right: 0; } /* non-visible scrollbar */ .mCS-dir-rtl > .mCSB_inside > .mCSB_container{ /* RTL direction/left-side scrollbar */ margin-right: 0; margin-left: 30px; } .mCS-dir-rtl > .mCSB_inside > .mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{ margin-left: 0; } /* RTL direction/left-side scrollbar */ .mCSB_scrollTools{ /* contains scrollbar markup (draggable element, dragger rail, buttons etc.) */ position: absolute; width: 16px; height: auto; left: auto; top: 0; right: 0; bottom: 0; } .mCSB_outside + .mCSB_scrollTools{ right: -26px; } /* scrollbar position: outside */ .mCS-dir-rtl > .mCSB_inside > .mCSB_scrollTools, .mCS-dir-rtl > .mCSB_outside + .mCSB_scrollTools{ /* RTL direction/left-side scrollbar */ right: auto; left: 0; } .mCS-dir-rtl > .mCSB_outside + .mCSB_scrollTools{ left: -26px; } /* RTL direction/left-side scrollbar (scrollbar position: outside) */ .mCSB_scrollTools .mCSB_draggerContainer{ /* contains the draggable element and dragger rail markup */ position: absolute; top: 0; left: 0; bottom: 0; right: 0; height: auto; } .mCSB_scrollTools a + .mCSB_draggerContainer{ margin: 20px 0; } .mCSB_scrollTools .mCSB_draggerRail{ width: 2px; height: 100%; margin: 0 auto; -webkit-border-radius: 16px; -moz-border-radius: 16px; border-radius: 16px; } .mCSB_scrollTools .mCSB_dragger{ /* the draggable element */ cursor: pointer; width: 100%; height: 30px; /* minimum dragger height */ z-index: 1; } .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ /* the dragger element */ position: relative; width: 4px; height: 100%; margin: 0 auto; -webkit-border-radius: 16px; -moz-border-radius: 16px; border-radius: 16px; text-align: center; } .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{ width: 12px; /* auto-expanded scrollbar */ } .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ width: 8px; /* auto-expanded scrollbar */ } .mCSB_scrollTools .mCSB_buttonUp, .mCSB_scrollTools .mCSB_buttonDown{ display: block; position: absolute; height: 20px; width: 100%; overflow: hidden; margin: 0 auto; cursor: pointer; } .mCSB_scrollTools .mCSB_buttonDown{ bottom: 0; } /* ------------------------------------------------------------------------------------------------------------------------ 3. HORIZONTAL SCROLLBAR x-axis ------------------------------------------------------------------------------------------------------------------------ */ .mCSB_horizontal.mCSB_inside > .mCSB_container{ margin-right: 0; margin-bottom: 30px; } .mCSB_horizontal.mCSB_outside > .mCSB_container{ min-height: 100%; } .mCSB_horizontal > .mCSB_container.mCS_no_scrollbar_x.mCS_x_hidden{ margin-bottom: 0; } /* non-visible scrollbar */ .mCSB_scrollTools.mCSB_scrollTools_horizontal{ width: auto; height: 16px; top: auto; right: 0; bottom: 0; left: 0; } .mCustomScrollBox + .mCSB_scrollTools.mCSB_scrollTools_horizontal, .mCustomScrollBox + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal{ bottom: -26px; } /* scrollbar position: outside */ .mCSB_scrollTools.mCSB_scrollTools_horizontal a + .mCSB_draggerContainer{ margin: 0 20px; } .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail{ width: 100%; height: 2px; margin: 7px 0; } .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger{ width: 30px; /* minimum dragger width */ height: 100%; left: 0; } .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ width: 100%; height: 4px; margin: 6px auto; } .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{ height: 12px; /* auto-expanded scrollbar */ margin: 2px auto; } .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ height: 8px; /* auto-expanded scrollbar */ margin: 4px 0; } .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft, .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{ display: block; position: absolute; width: 20px; height: 100%; overflow: hidden; margin: 0 auto; cursor: pointer; } .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft{ left: 0; } .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{ right: 0; } /* ------------------------------------------------------------------------------------------------------------------------ 4. VERTICAL AND HORIZONTAL SCROLLBARS yx-axis ------------------------------------------------------------------------------------------------------------------------ */ .mCSB_container_wrapper{ position: absolute; height: auto; width: auto; overflow: hidden; top: 0; left: 0; right: 0; bottom: 0; margin-right: 30px; margin-bottom: 30px; } .mCSB_container_wrapper > .mCSB_container{ padding-right: 30px; padding-bottom: 30px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .mCSB_vertical_horizontal > .mCSB_scrollTools.mCSB_scrollTools_vertical{ bottom: 20px; } .mCSB_vertical_horizontal > .mCSB_scrollTools.mCSB_scrollTools_horizontal{ right: 20px; } /* non-visible horizontal scrollbar */ .mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden + .mCSB_scrollTools.mCSB_scrollTools_vertical{ bottom: 0; } /* non-visible vertical scrollbar/RTL direction/left-side scrollbar */ .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden + .mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal, .mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_scrollTools.mCSB_scrollTools_horizontal{ right: 0; } /* RTL direction/left-side scrollbar */ .mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_scrollTools.mCSB_scrollTools_horizontal{ left: 20px; } /* non-visible scrollbar/RTL direction/left-side scrollbar */ .mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden + .mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal{ left: 0; } .mCS-dir-rtl > .mCSB_inside > .mCSB_container_wrapper{ /* RTL direction/left-side scrollbar */ margin-right: 0; margin-left: 30px; } .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden > .mCSB_container{ padding-right: 0; } .mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden > .mCSB_container{ padding-bottom: 0; } .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden{ margin-right: 0; /* non-visible scrollbar */ margin-left: 0; } /* non-visible horizontal scrollbar */ .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden{ margin-bottom: 0; } /* ------------------------------------------------------------------------------------------------------------------------ 5. TRANSITIONS ------------------------------------------------------------------------------------------------------------------------ */ .mCSB_scrollTools, .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCSB_scrollTools .mCSB_buttonUp, .mCSB_scrollTools .mCSB_buttonDown, .mCSB_scrollTools .mCSB_buttonLeft, .mCSB_scrollTools .mCSB_buttonRight{ -webkit-transition: opacity .2s ease-in-out, background-color .2s ease-in-out; -moz-transition: opacity .2s ease-in-out, background-color .2s ease-in-out; -o-transition: opacity .2s ease-in-out, background-color .2s ease-in-out; transition: opacity .2s ease-in-out, background-color .2s ease-in-out; } .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar, /* auto-expanded scrollbar */ .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail, .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar, .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail{ -webkit-transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out; -moz-transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out; -o-transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out; transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out; } /* ------------------------------------------------------------------------------------------------------------------------ 6. SCROLLBAR COLORS, OPACITY AND BACKGROUNDS ------------------------------------------------------------------------------------------------------------------------ */ /* ---------------------------------------- 6.1 THEMES ---------------------------------------- */ /* default theme ("light") */ .mCSB_scrollTools{ opacity: 0.75; filter: "alpha(opacity=75)"; -ms-filter: "alpha(opacity=75)"; } .mCS-autoHide > .mCustomScrollBox > .mCSB_scrollTools, .mCS-autoHide > .mCustomScrollBox ~ .mCSB_scrollTools{ opacity: 0; filter: "alpha(opacity=0)"; -ms-filter: "alpha(opacity=0)"; } .mCustomScrollbar > .mCustomScrollBox > .mCSB_scrollTools.mCSB_scrollTools_onDrag, .mCustomScrollbar > .mCustomScrollBox ~ .mCSB_scrollTools.mCSB_scrollTools_onDrag, .mCustomScrollBox:hover > .mCSB_scrollTools, .mCustomScrollBox:hover ~ .mCSB_scrollTools, .mCS-autoHide:hover > .mCustomScrollBox > .mCSB_scrollTools, .mCS-autoHide:hover > .mCustomScrollBox ~ .mCSB_scrollTools{ opacity: 1; filter: "alpha(opacity=100)"; -ms-filter: "alpha(opacity=100)"; } .mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.4); filter: "alpha(opacity=40)"; -ms-filter: "alpha(opacity=40)"; } .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.75); filter: "alpha(opacity=75)"; -ms-filter: "alpha(opacity=75)"; } .mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.85); filter: "alpha(opacity=85)"; -ms-filter: "alpha(opacity=85)"; } .mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.9); filter: "alpha(opacity=90)"; -ms-filter: "alpha(opacity=90)"; } .mCSB_scrollTools .mCSB_buttonUp, .mCSB_scrollTools .mCSB_buttonDown, .mCSB_scrollTools .mCSB_buttonLeft, .mCSB_scrollTools .mCSB_buttonRight{ background-image: url(mCSB_buttons.png); /* css sprites */ background-repeat: no-repeat; opacity: 0.4; filter: "alpha(opacity=40)"; -ms-filter: "alpha(opacity=40)"; } .mCSB_scrollTools .mCSB_buttonUp{ background-position: 0 0; /* sprites locations light: 0 0, -16px 0, -32px 0, -48px 0, 0 -72px, -16px -72px, -32px -72px dark: -80px 0, -96px 0, -112px 0, -128px 0, -80px -72px, -96px -72px, -112px -72px */ } .mCSB_scrollTools .mCSB_buttonDown{ background-position: 0 -20px; /* sprites locations light: 0 -20px, -16px -20px, -32px -20px, -48px -20px, 0 -92px, -16px -92px, -32px -92px dark: -80px -20px, -96px -20px, -112px -20px, -128px -20px, -80px -92px, -96px -92px, -112 -92px */ } .mCSB_scrollTools .mCSB_buttonLeft{ background-position: 0 -40px; /* sprites locations light: 0 -40px, -20px -40px, -40px -40px, -60px -40px, 0 -112px, -20px -112px, -40px -112px dark: -80px -40px, -100px -40px, -120px -40px, -140px -40px, -80px -112px, -100px -112px, -120px -112px */ } .mCSB_scrollTools .mCSB_buttonRight{ background-position: 0 -56px; /* sprites locations light: 0 -56px, -20px -56px, -40px -56px, -60px -56px, 0 -128px, -20px -128px, -40px -128px dark: -80px -56px, -100px -56px, -120px -56px, -140px -56px, -80px -128px, -100px -128px, -120px -128px */ } .mCSB_scrollTools .mCSB_buttonUp:hover, .mCSB_scrollTools .mCSB_buttonDown:hover, .mCSB_scrollTools .mCSB_buttonLeft:hover, .mCSB_scrollTools .mCSB_buttonRight:hover{ opacity: 0.75; filter: "alpha(opacity=75)"; -ms-filter: "alpha(opacity=75)"; } .mCSB_scrollTools .mCSB_buttonUp:active, .mCSB_scrollTools .mCSB_buttonDown:active, .mCSB_scrollTools .mCSB_buttonLeft:active, .mCSB_scrollTools .mCSB_buttonRight:active{ opacity: 0.9; filter: "alpha(opacity=90)"; -ms-filter: "alpha(opacity=90)"; } /* theme: "dark" */ .mCS-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.15); } .mCS-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); } .mCS-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: rgba(0,0,0,0.85); } .mCS-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: rgba(0,0,0,0.9); } .mCS-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -80px 0; } .mCS-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -80px -20px; } .mCS-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -80px -40px; } .mCS-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -80px -56px; } /* ---------------------------------------- */ /* theme: "light-2", "dark-2" */ .mCS-light-2.mCSB_scrollTools .mCSB_draggerRail, .mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail{ width: 4px; background-color: #fff; background-color: rgba(255,255,255,0.1); -webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px; } .mCS-light-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ width: 4px; background-color: #fff; background-color: rgba(255,255,255,0.75); -webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px; } .mCS-light-2.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-light-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ width: 100%; height: 4px; margin: 6px auto; } .mCS-light-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.85); } .mCS-light-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-light-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.9); } .mCS-light-2.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px 0; } .mCS-light-2.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -20px; } .mCS-light-2.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -40px; } .mCS-light-2.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -56px; } /* theme: "dark-2" */ .mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.1); -webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px; } .mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); -webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px; } .mCS-dark-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } .mCS-dark-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-dark-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } .mCS-dark-2.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px 0; } .mCS-dark-2.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -20px; } .mCS-dark-2.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -40px; } .mCS-dark-2.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -56px; } /* ---------------------------------------- */ /* theme: "light-thick", "dark-thick" */ .mCS-light-thick.mCSB_scrollTools .mCSB_draggerRail, .mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail{ width: 4px; background-color: #fff; background-color: rgba(255,255,255,0.1); -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; } .mCS-light-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ width: 6px; background-color: #fff; background-color: rgba(255,255,255,0.75); -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; } .mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail{ width: 100%; height: 4px; margin: 6px 0; } .mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ width: 100%; height: 6px; margin: 5px auto; } .mCS-light-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.85); } .mCS-light-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-light-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.9); } .mCS-light-thick.mCSB_scrollTools .mCSB_buttonUp{ background-position: -16px 0; } .mCS-light-thick.mCSB_scrollTools .mCSB_buttonDown{ background-position: -16px -20px; } .mCS-light-thick.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -20px -40px; } .mCS-light-thick.mCSB_scrollTools .mCSB_buttonRight{ background-position: -20px -56px; } /* theme: "dark-thick" */ .mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.1); -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; } .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; } .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } .mCS-dark-thick.mCSB_scrollTools .mCSB_buttonUp{ background-position: -96px 0; } .mCS-dark-thick.mCSB_scrollTools .mCSB_buttonDown{ background-position: -96px -20px; } .mCS-dark-thick.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -100px -40px; } .mCS-dark-thick.mCSB_scrollTools .mCSB_buttonRight{ background-position: -100px -56px; } /* ---------------------------------------- */ /* theme: "light-thin", "dark-thin" */ .mCS-light-thin.mCSB_scrollTools .mCSB_draggerRail{ background-color: #fff; background-color: rgba(255,255,255,0.1); } .mCS-light-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ width: 2px; } .mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail{ width: 100%; } .mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ width: 100%; height: 2px; margin: 7px auto; } /* theme "dark-thin" */ .mCS-dark-thin.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.15); } .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); } .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } .mCS-dark-thin.mCSB_scrollTools .mCSB_buttonUp{ background-position: -80px 0; } .mCS-dark-thin.mCSB_scrollTools .mCSB_buttonDown{ background-position: -80px -20px; } .mCS-dark-thin.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -80px -40px; } .mCS-dark-thin.mCSB_scrollTools .mCSB_buttonRight{ background-position: -80px -56px; } /* ---------------------------------------- */ /* theme "rounded", "rounded-dark", "rounded-dots", "rounded-dots-dark" */ .mCS-rounded.mCSB_scrollTools .mCSB_draggerRail{ background-color: #fff; background-color: rgba(255,255,255,0.15); } .mCS-rounded.mCSB_scrollTools .mCSB_dragger, .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger, .mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger{ height: 14px; } .mCS-rounded.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ width: 14px; margin: 0 1px; } .mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger, .mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger, .mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger, .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger{ width: 14px; } .mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ height: 14px; margin: 1px 0; } .mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{ width: 16px; /* auto-expanded scrollbar */ height: 16px; margin: -1px 0; } .mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ width: 4px; /* auto-expanded scrollbar */ } .mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{ height: 16px; /* auto-expanded scrollbar */ width: 16px; margin: 0 -1px; } .mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ height: 4px; /* auto-expanded scrollbar */ margin: 6px 0; } .mCS-rounded.mCSB_scrollTools .mCSB_buttonUp{ background-position: 0 -72px; } .mCS-rounded.mCSB_scrollTools .mCSB_buttonDown{ background-position: 0 -92px; } .mCS-rounded.mCSB_scrollTools .mCSB_buttonLeft{ background-position: 0 -112px; } .mCS-rounded.mCSB_scrollTools .mCSB_buttonRight{ background-position: 0 -128px; } /* theme "rounded-dark", "rounded-dots-dark" */ .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); } .mCS-rounded-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.15); } .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } .mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -80px -72px; } .mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -80px -92px; } .mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -80px -112px; } .mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -80px -128px; } /* theme "rounded-dots", "rounded-dots-dark" */ .mCS-rounded-dots.mCSB_scrollTools_vertical .mCSB_draggerRail, .mCS-rounded-dots-dark.mCSB_scrollTools_vertical .mCSB_draggerRail{ width: 4px; } .mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail, .mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{ background-color: transparent; background-position: center; } .mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail{ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAANElEQVQYV2NkIAAYiVbw//9/Y6DiM1ANJoyMjGdBbLgJQAX/kU0DKgDLkaQAvxW4HEvQFwCRcxIJK1XznAAAAABJRU5ErkJggg=="); background-repeat: repeat-y; opacity: 0.3; filter: "alpha(opacity=30)"; -ms-filter: "alpha(opacity=30)"; } .mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{ height: 4px; margin: 6px 0; background-repeat: repeat-x; } .mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonUp{ background-position: -16px -72px; } .mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonDown{ background-position: -16px -92px; } .mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -20px -112px; } .mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonRight{ background-position: -20px -128px; } /* theme "rounded-dots-dark" */ .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail{ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYV2NkIAAYSVFgDFR8BqrBBEifBbGRTfiPZhpYjiQFBK3A6l6CvgAAE9kGCd1mvgEAAAAASUVORK5CYII="); } .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -96px -72px; } .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -96px -92px; } .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -100px -112px; } .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -100px -128px; } /* ---------------------------------------- */ /* theme "3d", "3d-dark", "3d-thick", "3d-thick-dark" */ .mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-repeat: repeat-y; background-image: -moz-linear-gradient(left, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0) 100%); background-image: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(255,255,255,0.5)), color-stop(100%,rgba(255,255,255,0))); background-image: -webkit-linear-gradient(left, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); background-image: -o-linear-gradient(left, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); background-image: -ms-linear-gradient(left, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); background-image: linear-gradient(to right, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); } .mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ background-repeat: repeat-x; background-image: -moz-linear-gradient(top, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0) 100%); background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.5)), color-stop(100%,rgba(255,255,255,0))); background-image: -webkit-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); background-image: -o-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); background-image: -ms-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); background-image: linear-gradient(to bottom, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); } /* theme "3d", "3d-dark" */ .mCS-3d.mCSB_scrollTools_vertical .mCSB_dragger, .mCS-3d-dark.mCSB_scrollTools_vertical .mCSB_dragger{ height: 70px; } .mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger, .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger{ width: 70px; } .mCS-3d.mCSB_scrollTools, .mCS-3d-dark.mCSB_scrollTools{ opacity: 1; filter: "alpha(opacity=30)"; -ms-filter: "alpha(opacity=30)"; } .mCS-3d.mCSB_scrollTools .mCSB_draggerRail, .mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ -webkit-border-radius: 16px; -moz-border-radius: 16px; border-radius: 16px; } .mCS-3d.mCSB_scrollTools .mCSB_draggerRail, .mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail{ width: 8px; background-color: #000; background-color: rgba(0,0,0,0.2); box-shadow: inset 1px 0 1px rgba(0,0,0,0.5), inset -1px 0 1px rgba(255,255,255,0.2); } .mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-3d.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-3d.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #555; } .mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ width: 8px; } .mCS-3d.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{ width: 100%; height: 8px; margin: 4px 0; box-shadow: inset 0 1px 1px rgba(0,0,0,0.5), inset 0 -1px 1px rgba(255,255,255,0.2); } .mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ width: 100%; height: 8px; margin: 4px auto; } .mCS-3d.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px -72px; } .mCS-3d.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -92px; } .mCS-3d.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -112px; } .mCS-3d.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -128px; } /* theme "3d-dark" */ .mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.1); box-shadow: inset 1px 0 1px rgba(0,0,0,0.1); } .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{ box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); } .mCS-3d-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px -72px; } .mCS-3d-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -92px; } .mCS-3d-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -112px; } .mCS-3d-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -128px; } /* ---------------------------------------- */ /* theme: "3d-thick", "3d-thick-dark" */ .mCS-3d-thick.mCSB_scrollTools, .mCS-3d-thick-dark.mCSB_scrollTools{ opacity: 1; filter: "alpha(opacity=30)"; -ms-filter: "alpha(opacity=30)"; } .mCS-3d-thick.mCSB_scrollTools, .mCS-3d-thick-dark.mCSB_scrollTools, .mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer{ -webkit-border-radius: 7px; -moz-border-radius: 7px; border-radius: 7px; } .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; } .mCSB_inside + .mCS-3d-thick.mCSB_scrollTools_vertical, .mCSB_inside + .mCS-3d-thick-dark.mCSB_scrollTools_vertical{ right: 1px; } .mCS-3d-thick.mCSB_scrollTools_vertical, .mCS-3d-thick-dark.mCSB_scrollTools_vertical{ box-shadow: inset 1px 0 1px rgba(0,0,0,0.1), inset 0 0 14px rgba(0,0,0,0.5); } .mCS-3d-thick.mCSB_scrollTools_horizontal, .mCS-3d-thick-dark.mCSB_scrollTools_horizontal{ bottom: 1px; box-shadow: inset 0 1px 1px rgba(0,0,0,0.1), inset 0 0 14px rgba(0,0,0,0.5); } .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ box-shadow: inset 1px 0 0 rgba(255,255,255,0.4); width: 12px; margin: 2px; position: absolute; height: auto; top: 0; bottom: 0; left: 0; right: 0; } .mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ box-shadow: inset 0 1px 0 rgba(255,255,255,0.4); } .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #555; } .mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ height: 12px; width: auto; } .mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer{ background-color: #000; background-color: rgba(0,0,0,0.05); box-shadow: inset 1px 1px 16px rgba(0,0,0,0.1); } .mCS-3d-thick.mCSB_scrollTools .mCSB_draggerRail{ background-color: transparent; } .mCS-3d-thick.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px -72px; } .mCS-3d-thick.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -92px; } .mCS-3d-thick.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -112px; } .mCS-3d-thick.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -128px; } /* theme: "3d-thick-dark" */ .mCS-3d-thick-dark.mCSB_scrollTools{ box-shadow: inset 0 0 14px rgba(0,0,0,0.2); } .mCS-3d-thick-dark.mCSB_scrollTools_horizontal{ box-shadow: inset 0 1px 1px rgba(0,0,0,0.1), inset 0 0 14px rgba(0,0,0,0.2); } .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ box-shadow: inset 1px 0 0 rgba(255,255,255,0.4), inset -1px 0 0 rgba(0,0,0,0.2); } .mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ box-shadow: inset 0 1px 0 rgba(255,255,255,0.4), inset 0 -1px 0 rgba(0,0,0,0.2); } .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #777; } .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer{ background-color: #fff; background-color: rgba(0,0,0,0.05); box-shadow: inset 1px 1px 16px rgba(0,0,0,0.1); } .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: transparent; } .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px -72px; } .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -92px; } .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -112px; } .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -128px; } /* ---------------------------------------- */ /* theme: "minimal", "minimal-dark" */ .mCSB_outside + .mCS-minimal.mCSB_scrollTools_vertical, .mCSB_outside + .mCS-minimal-dark.mCSB_scrollTools_vertical{ right: 0; margin: 12px 0; } .mCustomScrollBox.mCS-minimal + .mCSB_scrollTools.mCSB_scrollTools_horizontal, .mCustomScrollBox.mCS-minimal + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal, .mCustomScrollBox.mCS-minimal-dark + .mCSB_scrollTools.mCSB_scrollTools_horizontal, .mCustomScrollBox.mCS-minimal-dark + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal{ bottom: 0; margin: 0 12px; } /* RTL direction/left-side scrollbar */ .mCS-dir-rtl > .mCSB_outside + .mCS-minimal.mCSB_scrollTools_vertical, .mCS-dir-rtl > .mCSB_outside + .mCS-minimal-dark.mCSB_scrollTools_vertical{ left: 0; right: auto; } .mCS-minimal.mCSB_scrollTools .mCSB_draggerRail, .mCS-minimal-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: transparent; } .mCS-minimal.mCSB_scrollTools_vertical .mCSB_dragger, .mCS-minimal-dark.mCSB_scrollTools_vertical .mCSB_dragger{ height: 50px; } .mCS-minimal.mCSB_scrollTools_horizontal .mCSB_dragger, .mCS-minimal-dark.mCSB_scrollTools_horizontal .mCSB_dragger{ width: 50px; } .mCS-minimal.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.2); filter: "alpha(opacity=20)"; -ms-filter: "alpha(opacity=20)"; } .mCS-minimal.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-minimal.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.5); filter: "alpha(opacity=50)"; -ms-filter: "alpha(opacity=50)"; } /* theme: "minimal-dark" */ .mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.2); filter: "alpha(opacity=20)"; -ms-filter: "alpha(opacity=20)"; } .mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.5); filter: "alpha(opacity=50)"; -ms-filter: "alpha(opacity=50)"; } /* ---------------------------------------- */ /* theme "light-3", "dark-3" */ .mCS-light-3.mCSB_scrollTools .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{ width: 6px; background-color: #000; background-color: rgba(0,0,0,0.2); } .mCS-light-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ width: 6px; } .mCS-light-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-light-3.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_draggerRail{ width: 100%; height: 6px; margin: 5px 0; } .mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ width: 12px; } .mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ height: 12px; margin: 2px 0; } .mCS-light-3.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px -72px; } .mCS-light-3.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -92px; } .mCS-light-3.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -112px; } .mCS-light-3.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -128px; } /* theme "dark-3" */ .mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); } .mCS-dark-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } .mCS-dark-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-dark-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } .mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.1); } .mCS-dark-3.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px -72px; } .mCS-dark-3.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -92px; } .mCS-dark-3.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -112px; } .mCS-dark-3.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -128px; } /* ---------------------------------------- */ /* theme "inset", "inset-dark", "inset-2", "inset-2-dark", "inset-3", "inset-3-dark" */ .mCS-inset.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{ width: 12px; background-color: #000; background-color: rgba(0,0,0,0.2); } .mCS-inset.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ width: 6px; margin: 3px 5px; position: absolute; height: auto; top: 0; bottom: 0; left: 0; right: 0; } .mCS-inset.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ height: 6px; margin: 5px 3px; position: absolute; width: auto; top: 0; bottom: 0; left: 0; right: 0; } .mCS-inset.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{ width: 100%; height: 12px; margin: 2px 0; } .mCS-inset.mCSB_scrollTools .mCSB_buttonUp, .mCS-inset-2.mCSB_scrollTools .mCSB_buttonUp, .mCS-inset-3.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px -72px; } .mCS-inset.mCSB_scrollTools .mCSB_buttonDown, .mCS-inset-2.mCSB_scrollTools .mCSB_buttonDown, .mCS-inset-3.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -92px; } .mCS-inset.mCSB_scrollTools .mCSB_buttonLeft, .mCS-inset-2.mCSB_scrollTools .mCSB_buttonLeft, .mCS-inset-3.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -112px; } .mCS-inset.mCSB_scrollTools .mCSB_buttonRight, .mCS-inset-2.mCSB_scrollTools .mCSB_buttonRight, .mCS-inset-3.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -128px; } /* theme "inset-dark", "inset-2-dark", "inset-3-dark" */ .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); } .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } .mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.1); } .mCS-inset-dark.mCSB_scrollTools .mCSB_buttonUp, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonUp, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px -72px; } .mCS-inset-dark.mCSB_scrollTools .mCSB_buttonDown, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonDown, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -92px; } .mCS-inset-dark.mCSB_scrollTools .mCSB_buttonLeft, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonLeft, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -112px; } .mCS-inset-dark.mCSB_scrollTools .mCSB_buttonRight, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonRight, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -128px; } /* theme "inset-2", "inset-2-dark" */ .mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: transparent; border-width: 1px; border-style: solid; border-color: #fff; border-color: rgba(255,255,255,0.2); -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail{ border-color: #000; border-color: rgba(0,0,0,0.2); } /* theme "inset-3", "inset-3-dark" */ .mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail{ background-color: #fff; background-color: rgba(255,255,255,0.6); } .mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.6); } .mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); } .mCS-inset-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } .mCS-inset-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-inset-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.75); } .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.85); } .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.9); } /* ---------------------------------------- */ ================================================ FILE: yyets/worker/public/fonts/test.txt ================================================ 1234 ================================================ FILE: yyets/worker/public/index.html ================================================ 人人影视下载分享

人人影视下载分享

By Benny


这是我偷过来的,嘿嘿😝

这个 Telegram Bot 里去使用,或者使用下方搜索框

有问题联系 Benny小可爱

a happy crab is wearing a cowboy hat and holding a lasso. 200 success.
================================================ FILE: yyets/worker/public/js/aYin.js ================================================ /*! * copyright 2017 aYin's Lib * ayin86@163.com yinzhijun@dhcc.com.cn * only for authorized use. * contain open source project:"jquery-Browser,jquery cookie" */ (function($){ $.AllInOne = function(options,callback){ var settings={ //from:src, //obj:obj, //to:continer, //onload:function(){alert(1)} } var opts=$.extend(settings,options); if($("body").find(".iframe-wrap").size()==0){ $("body").append("
"); } var ifw=$("body").find(".iframe-wrap"); var objclass=opts.obj.split(",")[0].replace(".",""); if($(".iframe-"+objclass).size()==0){ ifw.append("